Unityのタイムラインでボイロ1分動画を作ってみて。
年始帰省中にUnityのタイムライン機能を探り探り使って1分動画作ってみた。
Unity WebGL Player | AkaneTyaban01
(音が出ます。操作はニコニ立体と同じ、リプレイは実装してないのでF5で。Lip Syncが動かないのは後で修正する予定)
--------------
基本的な所は毎度おなじみテラシュールウェアを、特に
tsubakit1.hateblo.jpのタイムラインとスクリプトの連携周りを参考に。
こんな感じになりました。
今回やってみたかったこと
●会話に合わせたモーション・表情・リップシンク設定
●カメラ操作スクリプト・カメラ注視スクリプトのタイムラインに合わせたON-OFF
弄ってみてわかったこと
●AudioTruckはAudioSourceセットしなくても動く。
●AudioTruckはAudioSourceのAudioClipをタイムラインに合わせて置き換えて鳴らすわけじゃないらしい
●AnimationTruckにはAnimatorは要るっぽいがControllerはNoneでも動く。
●PlayableAssetとかPlayableBehaviourのスクリプトどうしたら良いのかわからん
●別にPlayableAssetやPlayableBehaviourを使わなくても、ITimeControlでスクリプトとかの動作をコントロールすることは出来る
遭遇した問題
●モーションと表情のために複数のAnimationTruckに同じAnimatorを与えると、表情が変わる辺りでBlendShapeの変化を記録したAnimationClipに引っ張られたのか接地がおかしなことになった。
→AvatarMaskも効果なかったので、体の動きと顔で別々にAnimatorを持たせた。Akane_BとHead(2)の2つがあるのはそのため。
●上記『AudioClipをタイムラインに合わせて置き換えて鳴らすわけじゃない』故に、Lip SyncのためにAudioClipをタイムラインに合わせて入れ替える仕組みが必要になった
→AudioClipのリストを作り、OnControlTimeStart()でCountに応じたClipの入れ替えとLip Syncの開始。OnControlTimeStop()でCountを増やすというゴリ押し実装。
● timelineIKLook.csを作り、カメラ注視の全体のウェイトをOnControlTimeStart()とOnControlTimeStop()で0と1で切り替えたらパッと変化してしまう。
→ 初めtimelineIKLook.cs内でSmoothDampを使おうとしたが、クリップの開始時、終了時に一回だけ処理されるのを忘れてたので意図した挙動にならなかった。結局素直にIKのスクリプト側を改良。
感想
慣れたら色々使えそうだなぁと思いました(小並感)
前の歌うボイスロイドの時はAEでの表情の切り替えがとてつもなくめんどくさかったけど
for.hatenablog.jpコレだと表情のモーションクリップ作ればブレンドも簡単だし、実況動画の動く立ち絵
素材を作るとかも出来そう。
…リソースがあればだけどww
あとTwitterのボイロ30秒動画とかやってる方々すげぇなぁと思った、話作り的な意味で。台本考えるの大変。
---------------------
さて、茜ちゃんモデルの修正と続きに戻るか。