アニメーションの制御

これまでは、Xファイルのアニメーションをただ最初から再生していたのですが、ちょっとまじめにムービーを作ろうと思うと、再生位置を指定したり出来ないと不便なので、そこら辺を細かく編集できるようにしていました。
ついでに、無計画に拡張を続けたアニメーション周りの整理も。


6時間かかった…


今のシステムでは、

  • メインのタイムラインとXファイルアニメーションのタイムラインが別
  • Xファイルのアニメーションはアニメーションブレンディングが出来る
  • 独自に複数のタイムラインを持ったサブグラフが存在する
  • サブグラフがXファイルアニメーションを持つことがある
  • サブグラフ内でアニメーションブレンディングが出来る

書いていて良くわからなくなりましたが、とりあえず、それぞれのローカル時間を制御する部分が多数あり、エディタ上では特定の時間特定の状態になるよう表示したいため、いい加減に制御しているとめちゃめちゃになってしまうわけです。
今までの処理はちょっといい加減に管理&エディタ上での管理方法と実行時の管理方法がかなり異なったためプレビュー時と実行時の結果が微妙に違っていやな感じでした。そこで、実行時ベースの管理方法で一括管理することにし、その管理方法も少し階層的にして整理しました。すぐに出来ると思っていたのですが、途中でぐしゃぐしゃになってきたため、すごく時間がかかってしまいました。
まぁ、とりあえず6時間かかってようやくまともに動くようになったという感じです。(結局いやな感じの良くわからないコードになりました)


で、そのおかげで再生位置の指定と再生速度の指定ができるようになりました。プレビュー時と実行時の差もほとんどなくなったため、いい感じにムービーが作成できそうです。


とりあえず、簡易ムービーメーカーとしてはそこそこの仕上がりになりそうです。長いムービーを作成するのが苦手なのが難点ですが。。。