Unity の Timeline アセットでシーンのゲームオブジェクトを指定した時間だけ表示できます。
スクリプトではコルーチンを使ったり、残り時間を手動で計測する必要がありますが、 Timeline を使えば、動画編集のように指定した時間帯にクリップを配置するだけです。

今回は、Timeline ウィンドウの表示、 Timeline アセットの作成、シーンのゲームオブジェクト(テキスト)をタイムラインの表示させたい時間帯にクリップとして配置する手順を紹介します。
※ Unity のバージョンは 2021.3.25f1 Personal <DX11> です。
※表示されている 3D モデルは無料アセット「Old Sea Port」を使用しています。
※ゲームのテキストのフォントには「水面字」を使用しています。
Timeline エディターウィンドウの表示
Timeline エディターウィンドウを表示するには Unity のメニュー「Window」→「Sequencing」→「Timeline」を選択します。

Timeline アセットの作成
ゲームオブジェクト群の時間による制御を編集するために、そのシーンに Timeline のゲームオブジェクトを作成します。
紹介する 2 つの方法のうち、 1 番目の方法では、最初にアセットを作成して、それをシーンに追加します。
Project ウィンドウのアセットフォルダ内で右クリックして、メニュー「Create」→「Timeline」を選択します。

作成した Timeline アセットを任意でリネームして、Project ウィンドウから Hierarchy ウィンドウにドラッグ&ドロップすると、そのシーンのゲームオブジェクトを時間経過で制御するタイムラインのゲームオブジェクトを作成できます。

2 番目の方法として、Hierarchy ウィンドウで右クリックメニュー Create Empty を選択して、空のゲームオブジェクトを作成して、Timeline エディタ―ウィンドウの Create ボタンを押した後に、.playable ファイルを作成して、そのシーンのタイムラインゲームオブジェクトを作成することもできます。

時間経過で表示させるテキストの Timeline への配置
始めに、時間経過で表示させるテキストのゲームオブジェクトをシーンに作成・配置します。
Hierarchy ウィンドウで、右クリックして、メニュー「UI」→「Legacy」→「Text」を選択して、 Text ゲームオブジェクトを Canvas 内に作成します。
※ Canvas がない場合は自動的に作成されます。

Timeline のゲームオブジェクトをシーンに配置したら、それを選択した状態で、 制御したい同じシーンのゲームオブジェクト(例では Text )を Timeline エディタ―ウィンドウにドラッグ&ドロップして追加します。
タイムライン上に配置されたゲームオブジェクトなどの枠をクリップと呼びます。
左を起点とした時間軸の中に Text のクリップを配置したら、その表示時間に合わせて左辺と右辺をドラッグ&ドロップで移動させて、テキストの表示時間を指定します。

テスト
シーンを再生すると、タイムラインが再生され、テキストのクリップの範囲に時間が経過すると、テキストが表示されました。
※このタイムラインの Playable Director コンポーネントの設定で Play On Awake にチェックを入れているため、シーン再生と同時にこのタイムラインも再生されました。


まとめ
今回は、 Unity の Timeline アセットを作成して、シーンのゲームオブジェクト(例では Text)をタイムラインにクリップとして配置して、表示する時間の範囲を指定する手順を紹介しました。
C# のプログラムではコルーチンや時間を手動で計測して行わなければならない処理を Timeline を使うことで簡単に設定することができました。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン
- Timeline エディターウィンドウ – Unity マニュアル
- クリップの配置 – Unity マニュアル
- Unityのタイムライン機能を使って字幕まで表示してみた! | SHERPA TIMES
- 水面字 – fub工房 – BOOTH
記事一覧 → Compota-Soft-Press
コメント