今回は、Unity上でカットシーンを作ることができる、Timelineの機能を紹介しようと思います。
Timelineとは
Timelineは、Unityが公式に提供しているカットシーンを作成するための機能です。
アニメーション、エフェクトやサウンドの再生、オブジェクトのアクティブ/非アクティブなどの機能を組み合わせた演出がTimelineEditor上で簡単に作成することができます。
また、UnityのCinemachineという機能と連携しているため演出中のカメラも簡単につけることが出来ます。
さらに、コードを書けばユーザー自身で機能を拡張できるのでプロジェクトに応じて必要な機能を随時追加することができます。
頑張れば、下記のような映像もTimelineで作成することができます。
(プロジェクトデータがUnity-chan!公式サイトで配布されていて中身を見ることもできます)
unity-chan! – The Phantom Knowledge
Timelineの作成方法
Timelineは、TimelineAssetというものをGameObjectに紐づけることで動作するため、まずは空のゲームオブジェクトを作成します。
その次にUnityのメニューバーから
Window>Sequencing>Timeline
を選び、TimelineEditorを開きます。
そして、作成したゲームオブジェクトを選択すると
このような表示になりますので、Createボタンを押しTimelineAssetを作成します。
そうすると、GameObjectにPlayableDirectorというコンポーネントがアタッチされ、そのコンポーネントのPlayableという項目に先ほど保存したTimelineAssetの参照が入っています。
TimelineEditorの説明
これがTimelineEditorです。
Track
左側にあるのがTrackです。
Trackは、左上のAddボタンを押すと作成することができます。
Trackは、参照を持っているオブジェクトに対して何を行うかを定義したものです。Trackにオブジェクトの参照を持つことをバインド、と呼びます。
Trackの列には時系列に沿って複数のClipと呼ばれるものを配置して、オブジェクトを操作します。
Clip
Clipは、Trackの操作をどのタイミングで、どういったパラメータで操作するかを定義することができます。Track上で右クリックすると、そのTrackに必要なClipを作成するメニューが出てきます。
Add 〇〇 Clipで作成するか、Add From 〇〇Clipで作成元のアセットを指定して作成することができます。
Unityが用意しているTrackの機能
Animation Track
Animation Clipの再生や、Timeline上で作成したAnimationを再生することができます。
Record機能を使うと、オブジェクトの移動や回転・スケールアニメーションを簡単につけることができます。
TimelineのAnimation Trackの使い方 pic.twitter.com/d1eReJz5GN
— 唯くん (@atama_nenetti) 2020年1月2日
Activation Track
GameObjectのActive/非Activeを切り替えることができます。
Clipが開始するタイミングでGameObjectをActiveにし、Clipが終了するタイミングで非Activeにする機能です。
Activation Trackには、Post-playback stateという設定があり、TimelineAssetの再生が終了した際に、バインドされているオブジェクトに対して何を行うかを設定することができる項目です。デフォルトはLeave As Isになっています。
Active
再生が終了したらバインドされているオブジェクトをActiveにします。
InActive
再生が終了したらバインドされているオブジェクトを非Activeにします。
Revert
再生が終了したら、バインドされているオブジェクトを再生が開始する前のActive状態に戻します。
Leave As Is(デフォルト)
再生が終了した時のActive状態を保持します。
Audio Track
サウンド・BGMを再生する機能です。
設定項目にVolumeやPanがありますが、このトラック上全てのクリップに対して反映されてしまうため、Audio Trackを分割するか、Volumeに関してはClipの設定の方で対応するなどの注意が必要です。
また、Loopに関してはClipで設定できます。
Cinemachine Track
Cinemacineというカメラのカットを簡単に作成する機能を扱う機能です。Cinemachineについてはこの記事では取りあげません。
Control Track
ParticleSystem、PlayableDirector、GameObjectのActivationを制御するTrackです。
ITimeControlインターフェースを実装しているMonoBehaviourを扱う時にもこのTrackを使用します。
Playable Track
カスタムトラックを自作するときに使用します。コードを書いてカスタムトラックを自作する方法は、別の記事でまとめます。
Signal Track
Unity2019から追加された機能です。こちらも別の記事でまとめます。
TimelineのTips
Timelineのロック
Timelineは、そのままだと他のゲームオブジェクトを触ったりした際にTimeline Editorの表示が消えてしまいます。これは、デフォルトで現在選択されているオブジェクトにアタッチされているTimeline Assetを表示しているため、選択が解除されると表示も解除されてしまうためです。
これを回避するためにはEditor右上の鍵マークをクリックすると、TimelineEditorをロックすることができます。ロックといっても、オブジェクトの選択が解除されても表示が解除されないようになるだけですので積極的に使用することをお勧めいたします。
TimelineAssetをアタッチしたオブジェクトがPrefab化できない
TimelineAssetをアタッチしたゲームオブジェクトをPrefab化しようとすると、うまくいかないことがあると思います。これは、TimelineEditorのPreviewボタンを押して、Previewを解除するとPrefab化できるようになります。
Trackのグループ化
TimelineEditor上でTrackを作成しているうちに、量が多くて分かりにくくなってくると思います。そういった場合は、Track Groupという機能で複数のTrackをまとめると見やすくなります。
AddボタンからTrack Groupを選び、まとめたいTrackを作成したTrack Groupにドラッグアンドドロップするだけです。
終わりに
Timelineの作成方法と、公式が提供している機能をざっくりと説明しました。
後日、カスタムトラックを自作するPlayable Trackと、Signal Trackについて解説記事を書こうと思います。
コメント