タイムライン使ってみる 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の長さはドラッグドロップで設定できる
次はクリップの設定だ
クリップを選択してInspectorをいじる
イージングやディレイなどを設定できるが、とりあえずは Positionを動かす
Z方向に歩かせてみる
これで再生してみる
キャー 相対座標ではなく絶対座標であり 今回の例では(0,0,5)の位置にワープした・・
この座標に関しては面倒で、以前はAnimationControllerの有無で絶対座標、相対座標が変わっていたが、2018.3からは変更された
Trackを選択するとInspectorにて TrackOffsetsの項目がある
Apply Transform Offsets にすると、絶対座標(ムービー、カットシーン向け)
Apply Scene Offsetsにすると現在からの相対座標で動く
今回は攻撃のカットシーンをやってみたいので SceneOffsetsにする
移動
Z方向に少し移動させたい
通常ではTrackの赤丸の録画ボタンをおし、キーフレーム打ちたい位置にタイムラインシーケンスを設定し、UnityChanのPositionで右クリックで Add Keyframeを行い
シーケンスを動かし、動かしたい位置にUnityChanを動かし 再びKeyframeを打てばよいのだが
なんと、Humanoidはこの録画ボタンがきかず 動かせない!!
ところが、簡単なやり方がある
先ほどのAnimationTrackを右クリックし Add Override Trackを選択し、そのOverrideTrackにて上記のキーフレームを打てば
Humanoidでも移動してくれる
実行すると、現在位置から動いてくれた
無限クリップからアニメーションクリップへの変換
の通り、無限クリップから変換 クリップを右クリックして Convert to animation clipを押すだけ