« まぶしいトップページ | メイン | いろいろと直接リストを見られるように »
2007年10月03日
アニメーションライブラリ:: 周辺を実装中
Tweet @jin1016をフォローアニメーションのコア部分は以前書いたエンベロープとチャンネルがあればほとんど出来たようなものです。
でも、それだけではアニメーションを表示することは出来ません。
アニメーションを表示するためにはその周辺にいろいろと必要です。
ということで、現在はツールとともにその周辺を実装しています。
UI 周り以外のソースコードは共用される予定なので、ツールが出来れば、再生用のライブラリも出来たようなものです。
ラフなコンポーネント図は一応描いてますが、整理していないので文章のみで概要を。
・アニメーションコア
データを保持し、トラバース出来るだけ。
・レンダラー
トラバースへ渡すオブジェクトが描画する先。
レンダラを切り替えることで、異なる方法での描画にも対応する。
・タイムキーパー/スケジューラ
時間を管理するコンポーネント。
周期、もしくは単発で指定時間に通知してくれる。
時間と通知オブジェクトを渡すことで、イベントをスケジューリングし、時間になると通知オブジェクトの通知メソッドがコールされる。
どのような処理をするかは通知オブジェクト次第。
時間は、リファレンスクロックを取得するオブジェクトを設定することで、他とある程度同期を取れるようにする。
VBlank を基準とするゲームで使用されない ( VBlank ごとに通知メソッドをコールするぐらいか ) と思われるが、ツールでは使う。
ムービー再生エンジンでは必須 ( 今回はアニメなので関係ないが )。
・ストレージ/ストリーム
データ取得元を抽象化する。
ストレージへパスを渡すことでストリームが得られるので、そのストリームから読み込みを行う。
・画像リポジトリ
名前、もしくはキーで画像を取得できる。
キャッシュメカニズム ( 開放タイミングをどうするか ) に悩み中。
・アニメーションリポジトリ
名前、もしくはキーでアニメーションを取得できる。
現状は以上のような感じ。
変わる可能性もある。
なんか、コアよりも周りのが大変。
投稿者 Takenori : 2007年10月03日 15:37
comments powered by Disqus