20190415 Roppongi.unity #2 LT
Roppongi.unity #2 LT分かった気になる!TimelineSignals青木とと@lycoris102
View Slide
だれ? 2@lycoris102青木ととねんれい:29しごと: 株式会社キッズスターかぞく: 妻と2歳半の息子#Unityアンバサダー#Gotanda.unity#UnityDesigner’sCafe#勉強会主催/サポート#ボードゲーム#音ゲー
3あーSignalsね、Timelineの、分かる分かるー名前だけでも覚えていってね!……くらいになるのが今日のゴール
4Timelineそもそもってなんだっけ?
5複数のアニメーション/音声などを時系列に沿って再生するための機能およびエディタのことUnity2017.1.0で正式にリリースされましたTimelineのおさらい
6Timelineアセットを作成してPlayableDirectorコンポーネントにアタッチTimelineのおさらいTimelineの再生を再生したり止めたり、中身を置き換えたりする君
7ControlTrackはPrefabの生成制御やParcticleSystem/他のPlayableDirectorの再生制御など「誰が」「どうする」を表す TrackAnimationTrackアニメーションを行うAudioTrack音声を再生するActivationTrackActiveを切り替えControlTrackいろいろできるぞTimelineのおさらい
8「何を」「いつ」「どのくらい」を指定する ClipAnimationTrackであれば再生するAnimationClipを指定する AudioTrackであれば再生するAudioClipを指定するTimelineのおさらい
Timelineのおさらい 9Unity2019からはPackageManagerにて管理されるようになりましたUnity2017〜2018では組み込みで提供されています
10SignalsUnity2019でTimelineに追加される新機能Timeline上で任意のメソッドを呼び出すための仕組み
11お題ジャンプするタイミングで TimeScaleを変更してスローにするSignalsの使い方
12Signalsの使い方TimeScaleを変更する関数をpublicで定義したclassを用意する(TimeScaleController)
13Signalsの使い方Signalアセットを作成する
14Signalsの使い方Signalと処理は1:1の関係を持つので、異なる処理を呼び出す場合は複数Signalを作成する2つのアセットを作成TimeScaleSlowSignalTimeScaleResetSignal
15Signalsの使い方SignalReceiverをアタッチしたGameObjectを用意先ほど作成したTimeScaleControllerもアタッチしておく(同一GameObjectでなくてもOK)
16Signalsの使い方Signalと処理を紐づける
17Signalsの使い方SignalTrackSignalを通知するを追加しつつSignalReceiverを持つGameObjectを指定するTimelineに
18Signalsの使い方Signalを配置する
19完成!Signalsの使い方
20今回はSignal 2つで済んだけどTimeScaleの値のレパートリーが増やす時に逐次Signalを増やしたくない……TimeScaleだとそんな困らないかもだけど、テキスト差し替えたいケース等で増えがち早送り?別のスロー?
21Marker/MarkerReceiver値も合わせて通知できるようにしたを使用するSlowResetSignalTimescaleMarker0.1f1f0.1f1fSignalReceiverChange()Change()SignalReceiver側でSignal毎に挙動/引数を設定するMarkerReceiverOnNotify()Markerは通知毎に値を設定できる
22TimeScaleMarkerMarkerを継承INotificationを実装
23TimeScaleMarkerをTimelineのMarkerエリアに配置してTimeScaleの値を設定する
24TimeScaleMarkerReceiver通知が来た時の挙動を定義INotification が引数として渡ってくるのでTimeScaleMarkerとしてキャストする
25https://forum.unity.com/threads/new-in-2019-1-marker-customization.594712/(A)もしMarkerが任意のTrack上にあるならばTrackの対象として指定したGameObjectに(B)もしMarkerがTimelineのMarkerエリアにあるならばPlayableDirectorをアタッチしたGameObjectにTimeScaleMarkerReceiverをアタッチ
26(B)もしMarkerがTimelineのMarkerエリアにあるならばPlayableDirectorをアタッチしたGameObjectにTimeScaleMarkerReceiverをアタッチ
27完成!Signalsの使い方
28Signalsどういう時に使っていく?
29DOTweenやiTweenで作った演出をシーケンシャルに管理したり カットシーンにおける字幕や吹き出しテキストの切り替えを行ったり タワーディフェンスやシューティングなど 敵の出現タイミング制御に使ったり 操作のタイミングで一時停止させてチュートリアルみたいな使い方してみたり
30あなたは何に使いますか?
この作品はユニティちゃんライセンス条項の元に 提供されています© UTJ/UCL
分かった気になる!TimelineSignals青木とと@lycoris102