見出し画像

Unity Timeline/Playable API 完全に理解した 勉強会メモ

表題の通り、自分もよく使うUnity Timelineの勉強会に参加してきたので現地で取ったメモを残しておきます。後半はほぼ感想。

ちなみにTimelineがどういう機能かというと、オブジェクトのアクティブ切り替えやアニメーションやサウンド再生をまとめて管理できるカットシーンやバトル演出に使えるやつ。これだけ聞くと便利だけどTimelineで管理するオブジェクトをGUIDを参照しているため再利用性が著しく悪く拡張性も悪いのでそれなりに大きいプロジェクトで利用するとどうにも使いにくいUnityお前そーゆーとこやぞ。

全編動画はYouTubeに公開されています。

Timelineでポストエフェクトを動かそう

ポストエフェクトをアニメーションさせたいけどAnimationClipで使えない問題をどうするか。

Unityで使えるポストエフェクト

URP標準のVolume

  • GlobalまたはLocalのVolumeで空間に対してパラメータを設定

  • パラメータ自体は専用のScritableObject(VolumeProfile)から設定

  • シーン中に適当なObjectを置いてVolumeComponentから設定

CinemachineVolumeSettings

  • CinemachineVirtualCameraのExtensionsから利用

  • VirtualCamera毎にパラメータを設定

  • パラメータ自体はScritableObject(VolumeProfile)から設定

CinemachineTrackでポストエフェクトを制御するとアニメーションキーの数だけVirtualCameraにVolumeの設定が必要で辛い。

AnimationClipでキーを打てるもの、打てないものって?

SerializableなStructのフィールドは打てる、Classのフィールドは打てない。VolumeProfileはClass(アドレスがわからない)だからAnimationClipでキーを打てない。

結論

Structでラッパーを作ればアニメーションできる!

Timelineの歴史とTimeline Likeなシステムを作った話

コロプラでは独自のTimelineっぽいシステムを使っている。カットシーンはTimelineを使い、キャラやギミックをシーケンシャルに動かすのは独自システム。

Timelineが抱えていた問題

  1. 拡張の敷居の高さ

  2. DirectorがHideInspectorで参照を隠し持っている

問題とはいうがそもそも想定外かもただキャラやギミックでも使いたいじゃん?

なら独自のTimelineっぽいシステムを作ろう

GUIDではなく階層で保存しているので再利用性が高い!しかし、独自システムはメンテが大変だからパフォーマンスが許容できるならTimelineに一本化したいらしい。

Timelineでゲームスタート演出

VirtualCameraのブレンドは座標なので気軽にカメラ移動させるのが楽でよさそう。

Timelineエディター拡張 入門

TrackEditorやClipEditorを継承してoverrideしエラー表示やバインド判定を独自定義など挙動を拡張できる。SpineやADXもやってたなー。

以上。みんな苦労しているのを感じた。

この記事が気に入ったらサポートをしてみませんか?