2011年1月1日土曜日

アニメーションライブラリの進捗具合

今開発中のアニメーションライブラリの進捗具合についてです。

開発も進んで、相当速くなってきたのと、メモリの使用効率もそこそこによくなってきました。コア機能については、そこそこに充実してきましたので、一旦開発を止めて、Tweener互換ライブラリに着手しようと思っています。Tweener互換機能が実装できたらテストを行って、version1.0として初リリースを行おうと思います。

各Tweenライブラリの開発元で用意しているベンチで比べても、同等もしくは高速という感じになってきたので、パフォーマンスは魅力的な部分だと思いますが、いまどき速いくらいじゃ魅力もないので、魅力的な機能を入れていかないと使ってもらえないだろうなと思っています。

まず1つ目がTweener互換機能。TweenerのSWCと入れ替えるだけで、今までのコードを修正することなく、アニメーションのパフォーマンスが上がるというもの。特に、大量のアニメーションを並列で動かすときに、差が出ると思います。逆に1つのオブジェクトを動かすくらいなら大差はないと思います。

ただし、完全互換は難しいと思っています。そもそもベースが違うし。TweenerクラスとSpecialPropertyとAuxFunctionsクラスは残すことになると思いますが、それ以外は残さないと思います。もし、拡張ライブラリ等でPropertyInfoObjとかアタッチするようなことがあれば、動かないでしょう。TweenerクラスとSpecialPropertyクラスだけ使っていれば、基本的に問題ないようにしようと思っています。

あと、もう一つ特徴的な機能としてFlex対応というところ。これもまだ未着手ですが、コアの部分では対応済みです。

Flexの場合、通常は24fpsで動かすことになりますが、アニメーションで24fpsは正直スムーズな動きとは言えません。ぬるぬる感を出そうとすると60fpsくらいが丁度いいです。そこで、通常時は24fps、アニメーション時はもっと高いフレームレートを出すために、通常のタイマーからFlex向けのタイマーへの差し替え機能を提供しています。

通常時はDisplayObjectクラスのENTER_FRAMEによるタイマー処理を行っていますが、TimerクラスのTIMERイベントによるタイマー処理を行うように変更できます。このタイマーは標準で10ms単位でイベントを呼び出すようにしており、またTimerEventのupdateAfterEventの呼び出しを行いますので、24fpsでも24fps以上のフレームレートで再描画が行われます。

0 件のコメント:

コメントを投稿