« まぶしいトップページ | メイン | いろいろと直接リストを見られるように »

2007年10月03日

アニメーションライブラリ:: 周辺を実装中

    

アニメーションのコア部分は以前書いたエンベロープとチャンネルがあればほとんど出来たようなものです。
でも、それだけではアニメーションを表示することは出来ません。
アニメーションを表示するためにはその周辺にいろいろと必要です。
ということで、現在はツールとともにその周辺を実装しています。
UI 周り以外のソースコードは共用される予定なので、ツールが出来れば、再生用のライブラリも出来たようなものです。

ラフなコンポーネント図は一応描いてますが、整理していないので文章のみで概要を。

・アニメーションコア
データを保持し、トラバース出来るだけ。

・レンダラー
トラバースへ渡すオブジェクトが描画する先。
レンダラを切り替えることで、異なる方法での描画にも対応する。

・タイムキーパー/スケジューラ
時間を管理するコンポーネント。
周期、もしくは単発で指定時間に通知してくれる。
時間と通知オブジェクトを渡すことで、イベントをスケジューリングし、時間になると通知オブジェクトの通知メソッドがコールされる。
どのような処理をするかは通知オブジェクト次第。
時間は、リファレンスクロックを取得するオブジェクトを設定することで、他とある程度同期を取れるようにする。
VBlank を基準とするゲームで使用されない ( VBlank ごとに通知メソッドをコールするぐらいか ) と思われるが、ツールでは使う。
ムービー再生エンジンでは必須 ( 今回はアニメなので関係ないが )。

・ストレージ/ストリーム
データ取得元を抽象化する。
ストレージへパスを渡すことでストリームが得られるので、そのストリームから読み込みを行う。

・画像リポジトリ
名前、もしくはキーで画像を取得できる。
キャッシュメカニズム ( 開放タイミングをどうするか ) に悩み中。

・アニメーションリポジトリ
名前、もしくはキーでアニメーションを取得できる。

現状は以上のような感じ。
変わる可能性もある。

なんか、コアよりも周りのが大変。



投稿者 Takenori : 2007年10月03日 15:37




comments powered by Disqus
Total : Today : Yesterday : なかのひと