Unity+UnrealEngine4+Blog.

UnityやUnrealEngine4とかについて学習したことを書いてます

Timelineの新機能signalの使い方

 

前回のPlayableの記事↓でSignalの使用方法まで書けなかったので書きます。

 

nabesi777.hatenablog.com

 

 今回はTimelineの中でFlareの輝きの強さを途中で変更するという内容で作っていきたいと思います。

 

HierarchyにFlareを作成!

f:id:nabesi777:20190525220405p:plain

 

LensFlareコンポーネントと、タイムラインから呼び出したい関数が書かれたスクリプトをアタッチします。またSignalを使用するために必要な、SignalReceiverも併せてアタッチします。

f:id:nabesi777:20190525220422p:plain

 

スクリプトの内容は以下通りです。外部からアクセスできるよう、メソッドはpublicにするのを忘れないようにしないといけません。

 

 AnimationCurveを使った値の変更がうまく動かなかったので、単にFlareの輝きを強くする為に、Brightnessに8を入れただけのスクリプトです。(余計なものが書いてて分かりにくくすみません・・)動的に値を入れたい場合はタイムライン中に毎フレーム呼ばれるPlayableBehaviourのPrepareFrameメソッドを使わないといけないかもしれません。

 

 

 

 

続いてスクリプトとTimelineを繋ぐためのSignalをProject内に作成します。

後述しますが、これはTimelineのSignalトラックへドラッグ&ドロップで入れて使用します。

 

Signalの作成

f:id:nabesi777:20190525220330p:plain

 

 作成ができたら、FlareにAddComponentしたsignalReceiverの設定をしていきます。

使用するsignalを選択して、

f:id:nabesi777:20190525220517p:plain

 

呼び出すメソッドを選択します。

f:id:nabesi777:20190525220702p:plain

 

 次はタイムラインの設定です。

タイムラインへsignalTrackを新規で作成。

f:id:nabesi777:20190525220756p:plain

 

 signalReceiverがアタッチされたオブジェクトを格納。

(ここではFlare)

f:id:nabesi777:20190525221456p:plain

 

このトラックへ最初に作成していたSignalを入れます。

f:id:nabesi777:20190525221048p:plain

f:id:nabesi777:20190525221704p:plain

 

 最後の設定です。入れたSignalをクリックしてInspectorを見ます。

f:id:nabesi777:20190525221718p:plain

 

EmitSignalへ使用するSignalを選択したのち

f:id:nabesi777:20190525221201p:plain

 

AddSignalReceiverをクリックして、Eventの設定をします。

f:id:nabesi777:20190525221747p:plain

 

 これで完成です!初めてだと手順が多いように思いますが、慣れるとすぐにできるようになります。

 

再生した様子

f:id:nabesi777:20190525230845g:plain



 タイムライン中にスクリプトを使用することのできるSignalとPlayableを比べてみると

Signalの方が専用のスクリプトを作成しなくとも、通常のスクリプトのメソッドを呼び出せる事と馴染みのあるEventシステムを使用するので手軽に作成できますのでPlayableトラックを作成するより心理的に楽ですが、PlayableBehaviourには便利な専用のメソッドがあるので状況に応じて使い分けるのがいいのかなと思いました。