Unityのバージョン Unity2018.3.9f1
はじめに
今回はTimelineで使われるPlayableDirectorコンポーネントのプロパティについての記事になります!
Timeline
を再生する上でPlayableDirector
コンポーネントがアタッチされていることが必須です。
なので、Timeline
を上手く操るにはPlayableDirector
の知識は大切といえるででしょう。
ということで、早速みていきましょう!
そもそもPlayableDirectorコンポーネントとは?
公式のドキュメントにはこのように書かれていました。
Playable Director コンポーネントは、タイムラインインスタンスとタイムラインアセットの間のリンクを格納します。Playable Director コンポーネントは、いつタイムラインインスタンスを再生するか、どのようにタイムラインインスタンスがその時計を更新するか、および、タイムラインインスタンスが再生を終了したとき何を発生させるかを制御します。
Playable Director コンポーネント - Unity マニュアル
タイムラインアセットとタイムラインインスタンスというのはTimeline
において重要な考え方なのですが、とりあえずそれを置いておいて簡単にまとめると、いつ再生を開始するか、いつどの時点で再生を進めるかを制御するということです。
ちなみにタイムラインアセットはProjectビュー
に表示されているアセットのことで、トラックとクリップの設定を保存します。
タイムラインインスタンスは実際にHierarchyビュー
に配置されるもののことで、タイムラインアセットを使ってシーンのゲームオブジェクトをアニメーション化する役割を持ちます。
PlayableDirector
コンポーネントはこれら二つを繋ぐ架け橋のようなものといえるかもしれませんね。
プロパティの説明
プロパティというのは、Inspectorビュー
に表示されるパラメータのことです。
ただUnityの公式でこのように表現されているのですが、正直C#のプロパティとなにか関係があるのかはよく分かっていません・・・。
余談はおいておいて、PlayableDirector
コンポーネントには5つ(7つ)のプロパティを持ちます。
プロパティ名 | 意味 |
---|---|
Playable | タイムラインアセットとシーンのゲームオブジェクトを関連づける |
Update Method | タイムラインインスタンスがそのタイミングを更新するために使用するクロックソースを設定する |
Play on Awake | ゲームプレイを開始するときにタイムラインインスタンスを再生するかどうか |
Wrap Mode | タイムラインインスタンスが再生を終了するときの動作 |
Initial Time | タイムラインインスタンスが再生を開始する時間 (秒) |
一つ一つみてみましょう。
Playable
PlayableDirector
コンポーネントを手動でアタッチした場合は関連づけたいタイムラインアセットを選択します。
この操作によってただのゲームオブジェクトが選択したタイムラインアセットのタイムラインインスタンスにすることができます。
また、Timeline Edotor
から作成した場合は自動的に設定してくれます。
Update Method
タイムラインインスタンスがそのタイミングを更新するために使用するクロックソースを設定することができます。
クロックソースというのは、なんの時間を基準に再生速度を決めるかを設定するものです。
基本はGame Time
で良いと思います。
クロックソースの種類 | 意味 |
---|---|
DSP | 正確なオーディオスケジューリングのサンプルを選択します。これを選択すると、タイムラインインスタンスは、オーディオを処理するのと同じクロックソースを使用します。DSP はデジタル信号処理の略です。 |
Game Time | ゲームクロックと同じクロックソースを使用する場合に選択します。このクロックソースは タイムスケール の影響を受けます。 |
Unscaled Game Time | ゲームクロックと同じクロックソースを使用する場合に選択します。ただし、タイムスケール の影響は受けません。 |
Manual | クロックソースを使用せず、スクリプトを使用してクロック時間を手動で設定する場合に選択します。 |
Playable Director コンポーネント - Unity マニュアル
Play on Awake
ゲームプレイを開始した(再生ボタンを押した)ときに自動で再生するかを設定します。
チェックがついていれば、自動で再生されるというわけですね。
Wrap Mode
Wrap Mode
には3つの種類があります。
名前 | 意味 |
---|---|
Hold | タイムラインインスタンスを 1 回再生し、再生が中断されるまで最後のフレームを維持します。 |
Loop | 再生が中断されるまで、シーケンスを繰り返し再生します。 |
None | シーケンスを 1 回再生し、アニメーション化したすべてのプロパティーを再生前の値にリセットします。 |
これらによって再生が終わったときにどうするかを設定できます。
みたかんじPing Pongはないみたいですね。
Initial Time
再生するのに何秒待ってから再生をするかを設定することができます。
基本は0で良いのではないでしょうか。
スクリプトから再生する方法
Play On Awake
以外にもスクリプトから再生する方法もあります。
こちらの方を用いたい場合も多いと思うので、一応紹介をしてこの記事を終わりたいと思います。
using UnityEngine; using UnityEngine.Playables; //これを忘れずに追加する public class TimelineTest : MonoBehaviour { [SerializeField] private PlayableDirector _director; private void Start() { _director.Play(); } }
さいごに
とりあえず主要なプロパティを紹介してみました。
実は条件に応じてCurrent Time
とBindings
というプロパティが表示されるのですが、正直さほど重要ではないので割愛させていただきました。
もし気になる方は、是非公式のマニュアルを見てみてください!