C# スクリプトを使って Timeline をやってみよう - 2019.3
Tutorial
·
Beginner
·
+10XP
·
15 mins
·
(18)
Unity Technologies

このチュートリアルでは、C# スクリプトから Playable Director を使って Timeline を始めます。
Languages available:
1. C# スクリプトを使って Timeline をやってみよう
スクリプトによって Timeline を開始することで、どの Timeline をいつ再生するかをコントロールすることができます。特にカットシーンやインタラクティブな映画に便利です。
スクリプトで Playable Director を制御する場合、Playable Director の起動時と停止時にコールバック関数を呼び出すことができます。一般的な使い方としては、カットシーン開始時にプレイヤー入力を無効にして NPC/敵の行動や移動を防ぎ、Timeline が停止した後にゲーム状態を再開させるというものがあります。
このスクリプトは、Timeline が開始されたときにコールバック関数を実行し、停止したときに別の関数を実行します。
1. GameObject ドロップダウンから Create Empty を選択して、新しい GameObject を作成します。名前は Director とします。
2. Window ドロップダウンから Sequencing > Timeline の順に選択して Timeline ウインドウを開きます。
3. Director を選択した状態で、Create をクリックして Playable Director コンポーネントをアタッチし、Timeline アセットを作成します (画像 01)。

画像 01:Director コンポーネントと Timeline アセットの作成
4. 希望するアニメーショントラックの追加と設定 (画像 02).

画像 02:簡単な飛行アニメーションを使った Timeline
5. Director に TimelinePlayer という名前の新しいスクリプトコンポーネントを追加し、スクリプトエディターで開きます。
6. UnityEngine.Playables 名前空間を追加します:
7. クラス定義の中で、Playable Director とコントロール・パネルへの参照を作成します:
8. Start を Awake に変更し、 Update メソッドを削除します。
9. Awakeの中で、Playable Director の参照を設定し、Director の開始時と停止時に呼び出されるコールバック関数を登録します:
次の 2 つのステップで定義される Director_Played および Director_Stopped は、戻り値が void 型の関数で、唯一のパラメーターは PlayableDirector 型です。
10. Director_Played は、Timeline が再生を開始すると、Timeline を開始するために使用される UI パネルを非表示にします。
11. Director_Stopped は、Timeline が停止した後に UI パネルを表示します。
12. 最後に、Timeline を開始する関数を定義する準備ができました:
13. フルスクリプトは以下のようになっているはずです:
14. 変更を保存して、Unity エディターに戻ります。
15. GameObject のドロップダウンから UI > Button の順に選択して UI ボタンを作成します。
16. + 記号をクリックして OnClick イベントを追加します。Director を Object スロットにドラッグして、TimelinePlayer > StartTimeline() の順に選択します (画像 03)。

画像 03:Timeline を開始するための OnClick イベントの追加
17. Hierarchy ビューで Director を選択します。Inspector の Timeline Player コンポーネントで、ボタンまたはその親キャンバスを Control パネルというラベルのついたスロットにドラッグします(画像 04)。

画像 04:Timeline Player の設定
18. 再生モードに入り、ボタンをクリックして Timeline を開始します。Timeline が停止している間、ボタンは表示されたままです (画像 05)。Timeline が再生されている間は非表示になっています (画像 06)。Timeline の再生が終了すると、ボタンが再び表示されます。

画像 05:Timeline が再生されていないときは、スタートボタンが表示されたままになります。

画像 06:Timeline 再生中はボタンが非表示になります。
19. 再生モードを終了します。
2. まとめ
Timeline は既に多用途でパワフルなシステムですが、スクリプトによってさらに強化されています。