7月の進捗報告
やったこと
- 会話のUI周り
- インゲームの組み込み
- 追加のエッチシーン作成(途中)
1. 会話のUI周り
会話のUI周りでは、メッセージログとセーブ、ロードができる仕組みを実装しました。
メッセージウィンドウの色や枠などは今後調整する予定でいます。
2. インゲームの組み込み
1つ目のエッチシーンをUnityに組み込む作業をしました。見た目は以下のような感じです。
実装した内容は、
1. 衣装等の切り替え
2. オートピストン
3. パンツの着脱操作
4. フィニッシュと絶頂ゲージの実装
衣装の切り替えは色々実装中です。例として、パンツの色、靴下の色、衣装の上下着脱、パンツ着脱、靴下着脱、髪型の変更、衣装などなどあります。
以下、一部衣装の切り替えの内容です。
オートピストンは以下の感じで動きます。
動作のスピードは右の矢印アイコンで上げ下げできるような仕様になっていて、スピード上限は特定のスキルを開放すると上げることができるようにしようと考えてます。
パンツの着脱やずらしはマウス操作でできるように実装しています。
フィニッシュと絶頂ゲージは画面の右上部分に設置しています。上がヒロインの絶頂ゲージで下がプレイヤーのゲージになります。プレイヤーのゲージは青色ゲージが溜まった後、白色ゲージが貯まるようになり、白がフルになると自動でフィニッシュする仕様となっています。また、フィニッシュは青色ゲージが溜まった時点でマニュアルでできるようになっています。
3. 追加のエッチシーンの作成(途中)
イラスト絶賛制作中です。
以下、開発視点の話
Live2DのUnity用SDKを使っていて、色々想定した動きが実現できないケースがあった場合、色々拡張したりしました。
例えば、CubismAutoEyeBlinkInputで目の開け閉めを自動でやってくれるコンポーネントがあるけれど、デフォルトでは目の開け具合を調整することができない(1.0fに矯正される)ため、その値を外から変更できるようにしたり、パンツや脚などにPolygon2DColiderコンポーネント追加したいが、そのコライダーがアニメーションに追従してこないのを追従できるコンポーネントを作ったりなど。
アニメーションは、基本Live2D側でキーフレームをうって、motion.jsonを書き出して取り込んでいます。そこから、Animatorを使って再生等を制御しています。
ただし、AnimatorのTransitionは一切使わないようにしています。実装や状態の管理が複雑化してしまうため、アニメーションの遷移はすべてスクリプト側で制御、CrossFadeで再生させています。
CubismのAnimatorで詰まったのが、勘違いでステートで設定するBehavoirにCubismFadeStateObserverを手動で設定したことが原因で挙動が不安定になってしまったことに気づくのに時間がかかったことです。Base Layer側でCubismFadeStateObserverをアタッチしているので、ステートの方でもアタッチしてしまうと重複してしまっていました。
参考ドキュメント:https://docs.live2d.com/cubism-sdk-tutorials/motionfade/