C# スクリプトを使って Timeline をやってみよう - 2019.3

Tutorial

·

Beginner

·

+10XP

·

15 mins

·

(18)

Unity Technologies

C# スクリプトを使って Timeline をやってみよう - 2019.3

このチュートリアルでは、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 アセットの作成

画像 01:Director コンポーネントと Timeline アセットの作成


4. 希望するアニメーショントラックの追加と設定 (画像 02).


画像 02:簡単な飛行アニメーションを使った Timeline

画像 02:簡単な飛行アニメーションを使った Timeline


5. Director に TimelinePlayer という名前の新しいスクリプトコンポーネントを追加し、スクリプトエディターで開きます。


6. UnityEngine.Playables 名前空間を追加します:


[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

7. クラス定義の中で、Playable Director とコントロール・パネルへの参照を作成します:


[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

8. Start を Awake に変更し、 Update メソッドを削除します。


9. Awakeの中で、Playable Director の参照を設定し、Director の開始時と停止時に呼び出されるコールバック関数を登録します:


[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

次の 2 つのステップで定義される Director_Played および Director_Stopped は、戻り値が void 型の関数で、唯一のパラメーターは PlayableDirector 型です。


10. Director_Played は、Timeline が再生を開始すると、Timeline を開始するために使用される UI パネルを非表示にします。


[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

11. Director_Stopped は、Timeline が停止した後に UI パネルを表示します。


[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

12. 最後に、Timeline を開始する関数を定義する準備ができました:


[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

13. フルスクリプトは以下のようになっているはずです:


[@portabletext/react] Unknown block type "code", specify a component for it in the `components.types` prop

14. 変更を保存して、Unity エディターに戻ります。


15. GameObject のドロップダウンから UI > Button の順に選択して UI ボタンを作成します。


16. + 記号をクリックして OnClick イベントを追加します。Director を Object スロットにドラッグして、TimelinePlayer > StartTimeline() の順に選択します (画像 03)。


画像 03:Timeline を開始するための OnClick イベントの追加

画像 03:Timeline を開始するための OnClick イベントの追加


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


画像 04:Timeline Player の設定

画像 04:Timeline Player の設定


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


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

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


画像 06:Timeline 再生中はボタンが非表示になります。

画像 06:Timeline 再生中はボタンが非表示になります。


19. 再生モードを終了します。


2. まとめ

Timeline は既に多用途でパワフルなシステムですが、スクリプトによってさらに強化されています。


Complete this tutorial