C++幼女先輩

プログラミング成分多め

タイムライン使ってみる AnimationClip Unity2018.3

タイムラインとは

Unity2017のあたりでPreviewで入った機能 カットシーンやリアルタイムムービーシーンの再生等で使う
単純に決められたムービーの再生だけではなく、今のシーンからシームレスにオブジェクトを動かしたり可能
また、エディタ拡張でClassを派生させることで、かなりのカスタマイズが可能である

タイムラインの作り

PlayableDirectorが全体の制御を行う
TimelineAssetに全ての中身が入っている
TimelineAssetにはTimelineTrackがあり、トラック単位での制御が可能である
TimelineTrackには複数のClipを作り、実際の動作を作る

その他、Trackをグループ化するTrackGroup等がある

タイムラインの再生前にPlayableDirectorが、Clipに対してオブジェクトをバインドし、ヒエラルキーにオブジェクトをInstantiateし
時間で再生停止をコントロールする

また、 Clipを拡張するには下記の4つを作る事になる(全部が必要ではないこともある)
- Track
- Clip
- Behaviour
- Mixer

タイムライン生成

タイムラインはコンポーネントなので、何かのゲームオブジェクトを選び
Window->Sequence->Timeline でCreateする
これでTimelineAssetファイルを作成することが出来る

AnimationTrack

まずは簡単なキャラを移動させるタイムラインを作る
Timeline左側で右クリックし、AnimationTrackを作る
今回は画面上にあるUnityChanを動かしたいので、None(Animator) にヒエラルキー上のUnityChanを指定する
トラックの右側で右クリックし Add from AnimationClip をおすと、アニメーション選択画面が出るので
例えば Runのアニメーションを選択する
Clipの長さはドラッグドロップで設定できる

f:id:murasame-labo:20190419032059p:plain

次はクリップの設定だ
クリップを選択してInspectorをいじる
イージングやディレイなどを設定できるが、とりあえずは Positionを動かす
Z方向に歩かせてみる

f:id:murasame-labo:20190419032553p:plain

これで再生してみる

f:id:murasame-labo:20190419032645p:plain

キャー 相対座標ではなく絶対座標であり 今回の例では(0,0,5)の位置にワープした・・

tsubakit1.hateblo.jp

この座標に関しては面倒で、以前はAnimationControllerの有無で絶対座標、相対座標が変わっていたが、2018.3からは変更された

Trackを選択するとInspectorにて TrackOffsetsの項目がある
f:id:murasame-labo:20190419041742p:plain
Apply Transform Offsets にすると、絶対座標(ムービー、カットシーン向け)
Apply Scene Offsetsにすると現在からの相対座標で動く
今回は攻撃のカットシーンをやってみたいので SceneOffsetsにする

移動

Z方向に少し移動させたい
通常ではTrackの赤丸の録画ボタンをおし、キーフレーム打ちたい位置にタイムラインシーケンスを設定し、UnityChanのPositionで右クリックで Add Keyframeを行い
シーケンスを動かし、動かしたい位置にUnityChanを動かし 再びKeyframeを打てばよいのだが
なんと、Humanoidはこの録画ボタンがきかず 動かせない!!
ところが、簡単なやり方がある

先ほどのAnimationTrackを右クリックし Add Override Trackを選択し、そのOverrideTrackにて上記のキーフレームを打てば
Humanoidでも移動してくれる

f:id:murasame-labo:20190419041813p:plain
f:id:murasame-labo:20190419041822p:plain

実行すると、現在位置から動いてくれた

f:id:murasame-labo:20190419041930p:plain

無限クリップからアニメーションクリップへの変換

docs.unity3d.com

の通り、無限クリップから変換 クリップを右クリックして Convert to animation clipを押すだけ

f:id:murasame-labo:20190419042303p:plain