Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Unity] 分かった気になる! Timeline Signals / Timeline Signals Tutorial

[Unity] 分かった気になる! Timeline Signals / Timeline Signals Tutorial

20190415 Roppongi.unity #2 LT

lycoris102

April 15, 2019
Tweet

More Decks by lycoris102

Other Decks in Programming

Transcript

  1. Roppongi.unity #2 LT
    分かった気になる!
    Timeline
    Signals
    青木とと@lycoris102

    View Slide

  2. だれ? 2
    @lycoris102
    青木とと
    ねんれい:29
    しごと: 株式会社キッズスター
    かぞく: 妻と2歳半の息子
    #Unityアンバサダー
    #Gotanda.unity
    #UnityDesigner’sCafe
    #勉強会主催/サポート
    #ボードゲーム
    #音ゲー

    View Slide

  3. 3
    あーSignalsね、Timelineの、分かる分かるー
    名前だけでも覚えていってね!
    ……くらいになるのが今日のゴール

    View Slide

  4. 4
    Timeline
    そもそも
    ってなんだっけ?

    View Slide

  5. 5
    複数のアニメーション/音声などを
    時系列に沿って再生するための
    機能およびエディタのこと
    Unity2017.1.0で正式にリリースされました
    Timelineのおさらい

    View Slide

  6. 6
    Timelineアセットを作成して
    PlayableDirectorコンポーネントにアタッチ
    Timelineのおさらい
    Timelineの再生を再生したり止めたり、中身を置き換えたりする君

    View Slide

  7. 7
    ControlTrackはPrefabの生成制御やParcticleSystem/他のPlayableDirectorの再生制御など
    「誰が」「どうする」を表す Track
    Animation
    Track
    アニメーションを行う
    Audio
    Track
    音声を再生する
    Activation
    Track
    Activeを切り替え
    Control
    Track
    いろいろできるぞ
    Timelineのおさらい

    View Slide

  8. 8
    「何を」「いつ」「どのくらい」を指定する Clip
    AnimationTrackであれば再生するAnimationClipを指定する

    AudioTrackであれば再生するAudioClipを指定する
    Timelineのおさらい

    View Slide

  9. Timelineのおさらい 9
    Unity2019からは
    PackageManagerにて
    管理されるようになりました
    Unity2017〜2018では組み込みで提供されています

    View Slide

  10. 10
    Signals
    Unity2019で
    Timelineに追加される新機能
    Timeline上で
    任意のメソッドを呼び出すための仕組み

    View Slide

  11. 11
    お題
    ジャンプするタイミングで

    TimeScaleを変更してスローにする
    Signalsの使い方

    View Slide

  12. 12
    Signalsの使い方
    TimeScale
    を変更する関数を
    publicで定義した
    classを用意する
    (TimeScaleController)

    View Slide

  13. 13
    Signalsの使い方
    Signal
    アセットを作成する

    View Slide

  14. 14
    Signalsの使い方
    Signalと処理は1:1の関係を持つので、異なる処理を呼び出す場合は複数Signalを作成する
    2つのアセットを作成
    TimeScaleSlowSignal
    TimeScaleResetSignal

    View Slide

  15. 15
    Signalsの使い方
    SignalReceiver
    をアタッチした
    GameObjectを用意
    先ほど作成した
    TimeScaleController
    もアタッチしておく
    (同一GameObjectでなくてもOK)

    View Slide

  16. 16
    Signalsの使い方
    Signalと処理を
    紐づける

    View Slide

  17. 17
    Signalsの使い方
    Signal
    Track
    Signalを通知する
    を追加しつつ
    SignalReceiverを持つ
    GameObjectを指定する
    Timelineに

    View Slide

  18. 18
    Signalsの使い方
    Signalを配置する

    View Slide

  19. 19
    完成!
    Signalsの使い方

    View Slide

  20. 20
    今回はSignal 2つで済んだけど
    TimeScaleの値のレパートリーが増やす時に
    逐次Signalを増やしたくない……
    TimeScaleだとそんな困らないかもだけど、テキスト差し替えたいケース等で増えがち
    早送り?
    別のスロー?

    View Slide

  21. 21
    Marker/MarkerReceiver
    値も合わせて通知できるようにした
    を使用する
    Slow
    Reset
    Signal
    Timescale
    Marker
    0.1f
    1f
    0.1f
    1f
    SignalReceiver
    Change()
    Change()
    SignalReceiver側で
    Signal毎に挙動/引数を設定する
    MarkerReceiver
    OnNotify()
    Markerは通知毎に値を設定できる

    View Slide

  22. 22
    TimeScaleMarker
    Markerを継承
    INotificationを実装

    View Slide

  23. 23
    TimeScaleMarkerをTimelineの
    Markerエリアに配置して
    TimeScaleの値を設定する

    View Slide

  24. 24
    TimeScaleMarkerReceiver
    通知が来た時の挙動を定義
    INotification が引数として渡ってくるので
    TimeScaleMarkerとしてキャストする

    View Slide

  25. 25
    https://forum.unity.com/threads/new-in-2019-1-marker-customization.594712/
    (A)もしMarkerが任意のTrack上にあるならば
    Trackの対象として指定したGameObjectに
    (B)もしMarkerがTimelineのMarkerエリアにあるならば
    PlayableDirectorをアタッチしたGameObjectに
    TimeScaleMarkerReceiverをアタッチ

    View Slide

  26. 26
    (B)もしMarkerがTimelineのMarkerエリアにあるならば
    PlayableDirectorをアタッチしたGameObjectに
    TimeScaleMarkerReceiverをアタッチ

    View Slide

  27. 27
    完成!
    Signalsの使い方

    View Slide

  28. 28
    Signals
    どういう時に
    使っていく?

    View Slide

  29. 29
    DOTweenやiTweenで作った演出を
    シーケンシャルに管理したり
    カットシーンにおける
    字幕や吹き出しテキストの切り替えを行ったり
    タワーディフェンスやシューティングなど

    敵の出現タイミング制御に使ったり
    操作のタイミングで一時停止させて
    チュートリアルみたいな使い方してみたり

    View Slide

  30. 30
    あなたは何に使いますか?

    View Slide

  31. この作品はユニティちゃんライセンス条項の元に

    提供されています
    © UTJ/UCL

    View Slide

  32. 分かった気になる!
    Timeline
    Signals
    青木とと@lycoris102

    View Slide