もんりぃ is undefined.

育児ネタとか、技術ネタとか。

Unity 2017.1 の Timeline で気になるコト

はじめに

  • 今担当しているプロジェクトで Timeline を使う機会があったので、色々と調べてみた。
  • かなり便利な機能なので、積極的に使っていきたい所存。
  • だが、ちょっと気になる点があるので、纏めてみる。
  • Timeline の使い方とかを纏めた記事ではないので悪しからず。

現状の理解

  • 元々 Timeline は Animator の上位に位置する概念だと理解している。
    • Animator だけでは不可能な複数の GameObject に跨がるシーケンシャルな操作ができる。
  • UnityEngine.Timeline.ITimeControl というインタフェースを実装することで、Timeline からのイベントを受け取れる。
    • Control Track を追加して、そこに Clip として Control Playable Asset を追加すれば送られてくる。

気になる点

Animator との共存

  • Animation Track による個別のアニメーションについては、あくまで AnimationClip を再生するモノなので Animator が居ないと再生できない。
  • じゃあ、 Animation Track により再生されるアニメーションと、Animator 自身により再生されるアニメーションはどちらが強いのか?
  • 軽く実験してみたところ、並列で動かせるっぽいが果たして仕様だと信じて良いものか…?
    • 「Sprite 差し替えでコマアニメを行うループアニメーション」を Animator の Default State にセットし、「フェードインするアニメーション」を Timeline から発火させたところ、問題無く動きはした。

ITimeControl のイベント登録タイミング

  • はじめから Control Playable Asset の Source Game Object のコンポーネントとしてアタッチ済のスクリプトITimeControl を実装したところ問題無く動いた。
  • が、「よーし、じゃあオヂサン UniRx 用の Wrapper 作っちゃうぞー」とか思って「 OnControlTimeStartAsObservable() 的なメソッドが呼び出されたときにはじめて ITimeControlスクリプトを AddComponent する」といった実装をしたところ、一切イベントが発火しなかった。
  • これがバグなのか仕様なのか…?
    • メンドイので、まだ Issue Tracker は調べてない。

ITimeControlOnControlTimeStop() が呼ばれないことがある

  • Timeline 自体の終端フレームと Clip の終端フレームが一致している場合に、 OnControlTimeStop() が呼ばれない。
  • Clip の終端を1フレーム手前に動かしたところ、問題無く動いた。
  • これは…バグ…だよね…?
    • メンドイので、まだ Issue Tracker は調べてない。

所感

  • まぁ、まだリリースされて日が浅いので、多少のバグはあるのかな?という感想。
  • それを差し置いても、とても便利なので、社内に展開してみんなが使いこなせるようになりたい!
    • 表現の幅がメッチャ広がる!!!
  • 何か情報お持ちの方は教えてくださいませ。