Unity の Timeline 機能では、時間経過に合わせてゲームオブジェクトの有効・無効化、アニメーション・サウンドの再生などをスクリプトを作成しないで制御できます。



今回は、Unity の Timeline の中にネストした Timeline をクリップとして配置する手順を紹介します。
これにより、何度も使う小さなタイムラインを、様々なタイムラインの中に入れ子でクリップとして効率よく配置できます。
※ Unity のバージョンは 2021.3.25f1 Personal <DX11> です。
※表示されている 3D モデルは無料アセット「Old Sea Port」を使用しています。
※ゲームのテキストのフォントには「水面字」を使用しています。
ネストとは
入れ子構造、タイムラインで言えば、タイムラインのクリップとしてタイムラインが入っている状態です。
これにより、何度も使うタイムラインを作っておいて、様々なタイムラインの中で用いることができます。
ネストとは、あるものの中に、それと同じ形や種類の(一回り小さい)ものが入っている状態や構造のこと。ITの分野では、コンピュータプログラムやデータ構造において、ある構造の内部に同じ構造が含まれている状態のことを指す。
ネスト(入れ子)とは – 意味をわかりやすく – IT用語辞典 e-Words
ネストさせるタイムラインの作成
画面に「Ready」「Go!」と 2 つのメッセージを時間で分けて表示するタイムラインを作成します。
Project ウィンドウの作成したいフォルダの余白で右クリックして、メニュー「Create」→「Timeline」を選択してタイムラインアセットを作成します。
#わかりやすいように名前を変更します。例では ReadyGo にします。

作成したタイムラインアセットを Hierarchy ウィンドウにドラッグ&ドロップしてシーンのゲームオブジェクトとして作成します。

追加したタイムラインのゲームオブジェクトを選択して Timeline ウィンドウを表示します。
※ Timeline ウィンドウが表示されていない場合は、メインメニュー「Window」→「Sequencing」「Timeline」で表示しましょう。

Ready と Go! の 2 個の Text ゲームオブジェクトを作成します。
Inspector ウィンドウでそれぞれの Text プロパティに「Ready」「Go!」を設定します。
Inspector ウィンドウの左上のチェックボックスのチェックを外して、初期状態では非アクティブ、非表示の状態にしておきます。

先ほど追加したタイムラインのゲームオブジェクトを選択して、作成した二つの Text ゲームオブジェクトを、 Timeline ウィンドウの同じ行にドラッグ&ドロップして Control Track に並べて配置すれば完成です。
※ Text ゲームオブジェクトを Timeline ウィンドウの空の部分にドラッグ&ドロップすると Control Track が自動的に作成されます。

Timeline ウィンドウ内の再生ボタンを押すと、テキストが順番に表示されました。


タイムラインをネストする
作成したタイムラインを、別の上位のタイムラインの中に配置します。
上位のタイムラインのゲームオブジェクトは、先ほどと同じ手順でタイムラインのアセットとゲームオブジェクトを作成して、Timeline ウィンドウで、メッセージを画面下側に表示する Text ゲームオブジェクトを、 Control Track にドラッグ&ドロップして再生時間の前半に配置したものです。
※タイムラインの長さの設定については、後述する関連記事を参照してください。
上位のタイムラインのゲームオブジェクトを選択してから、先ほど作った Ready Go! 2 つのテキストを順番に表示するタイムラインのゲームオブジェクトを Timeline ウィンドウの空行にドラッグ&ドロップします。

これで、先ほど作成したタイムラインが上位のタイムラインの中の Control Track にネストされました。
テスト
Timeline ウィンドウ内の再生ボタンを押して Game ウィンドウで表示すると、上位のタイムラインのクリップの再生と同じように、入れ子にした Ready Go のタイムラインもクリップとして再生されました。



関連記事
タイムラインの長さの設定については以下を参照してください。

まとめ
今回は、Unity の Timeline の中にネストした Timeline をクリップとして配置する手順を紹介しました。
これにより、何度も使う小さなタイムラインを、様々なタイムラインの中に入れ子でクリップとして効率よく配置できます。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン
- Timeline エディターウィンドウ – Unity マニュアル
- タイムライン設定 – Unity マニュアル
記事一覧 → Compota-Soft-Press
コメント