AnimatorとAnimationclipによるアニメーションの開始・終了はシーンの開始と同時にスタートするか、
衝突検出やコントローラ操作などのスクリプトによる制御で開始・終了、または状態遷移する。
それと異なり、タイムラインによるアニメーション制御ではスクリプト無しで、時間を指定したアニメーションの開始・終了を設定できる。
アニメーションの他に、サウンドやスクリプトの起動なども設定できる。
Window -> Sequencing -> Timeline でタイムラインウインドウを表示しておく
タイムラインを記録するファイルを保存する
このファイルはProjectのWindowで右クリック → Create → Timeline からでも作成できる。
Timelineのファイル(playable)をHierarchに配置する(ProjectからDnD)
タイムラインにトラックを追加する
トラックに追加した例。ここでは複数のゲームオブジェクトをタイムラインにバインドしている。タイムラインに登録できるゲームオブジェクトにはアニメーションが設定されていて、Animatorが有効になっている。
アニメーションクリップをタイムラインのトラックに追加する。アニメーションクリップは使い回し可能。
タイムラインのトラックに配置したアニメーションクリップには、クリップの前後について設定がある。
Hold アニメーションクリップの先頭・最終フレームのパラメータの値を維持してクリップの開始前、開始後にも影響を与える
None タイムラインのアニメーションクリップは影響しない。代わりにAnimatorが影響を与える。
Timelineの再生終了後は、オブジェクトは自身のAnimatorのAnimationclipを再生する。
Timelineの再生終了でゲームのシーンが停止はしない。シーンの再生は続く。
Animationclip自身にLoop再生の設定がある事に注意する。
TimelineやAnimatorはAnimationclipのLoop設定を実行する。
TimelineにはAnimationclipのLoop設定を変更する設定がある。
3,2,1とカウントダウンしてスタート。
ゲートオープン。
分かりにくい所を試しておく。
Timelineに幾つかのオブジェクトのAnimatorを結び付けておく(Bind)
バインドされたオブジェクトのアニメータを無視してTimelineのアニメーショントラックのAnimationclipを実行させることができる。
Wrap Modeで
None タイムライン再生終了後 オブジェクトをバインドから解放
Hold タイムライン再生終了時の状態を維持してオブジェクトを解放しない
Loop タイムラインをループする
を指定できる。
解放されたオブジェクトは、自身のAnimatorでアニメーションを開始する。
TimelineのAnimation Trackでアニメーションクリップの前後の拡張が None の場合、その区間ではAnimatorによるアニメーションが再生される。
TimelineのAnimation Trackでアニメーションクリップの開始位置をOffsetとして指定できる。
Animationclipの設定
Loop Time AssetsからAnimationclipを選択してAnimationclip自身のInspectorで設定する。
オブジェクトのInspectorのAnimatorコンポーネントの設定
Apply Root Motion アニメーションの開始位置をオブジェクトの現在位置を基準にする。
(かなりの応用問題)
改造版Roll a Ballはコルーチンにより5秒後に次のステージをロードするようになっている。
これをステージクリア判定でステージクリア演出のTimelineを再生開始し、次のシーンを読み込むPlayableをTimelineに配置することでシーン遷移を実現するように修正する。