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が抱えていた問題
拡張の敷居の高さ
DirectorがHideInspectorで参照を隠し持っている
問題とはいうがそもそも想定外かもただキャラやギミックでも使いたいじゃん?
なら独自のTimelineっぽいシステムを作ろう
GUIDではなく階層で保存しているので再利用性が高い!しかし、独自システムはメンテが大変だからパフォーマンスが許容できるならTimelineに一本化したいらしい。
Timelineでゲームスタート演出
VirtualCameraのブレンドは座標なので気軽にカメラ移動させるのが楽でよさそう。
Timelineエディター拡張 入門
TrackEditorやClipEditorを継承してoverrideしエラー表示やバインド判定を独自定義など挙動を拡張できる。SpineやADXもやってたなー。
以上。みんな苦労しているのを感じた。
この記事が気に入ったらサポートをしてみませんか?