まだお勉強中

現状整理 †

分析の観点で考えています。実装とは大幅に異なる可能性があります。

描画に関する主要な機能は3+αのエンジンに分けられる。 仮にUrd/Berd/Skuldとする。

Urd †

一言で言うとdescript.txt + surface.txt + SSPの設定
責務永続化readonlyデータの保持、管理
持っているデータサーフェイス毎の定義(collision, animation, element)、キャラクタ毎の定義(alignmenttodesktop, defaultsurface等)
提供するサービスデータのread、永続化

Berd †

一言で言うと起動中のプロパティ値
責務各種プロパティ値の保持、値変更の際のイベント発行
持っているデータ喋り速度、スケール、透明度、キャラ毎の現在のサーフェイス、alignment、位置
提供するサービスデータのread/write、イベント発行

Skuld †

一言で言うとスケジューラ
責務タイムラインの保持、実行(決められた時刻に決められたコマンドを呼ぶ)
持っているデータタイムライン(何ms後に何をするか)
提供するサービスタイムラインの実行

タイムラインから呼ばれるコマンド †

SakuraScript?に明示的に書くコマンドの他に、以下のようなものもある。

  • neverでないアニメーション終了時に、次のアニメーション開始タイミングを決める
  • バルーン、選択肢等のタイムアウト

その他 †

SakuraScript?パーサ †

文法解釈し、全てのコマンドをタイムライン上に並べていく。実際は分解する所までしかやらないで、一つのコマンドが終わったら、次のコマンドを実行すべき時間が確定するのかな?

レンダラー †

必要な描画作業を行う。

シナリオ †

あんなこといいな、できたらいいな?

CROWの動的SERIKO †

起動中のゴーストが自らsurface.txtを書き換える。 ネットワークから動的にダウンロードするゴーストや、複雑な成長をするゴースト。

ゴーストエディタ †

  • 起動中のゴーストのsurface.txtを書き換えて、ワンクリックでテストしてセーブ。
  • SHIORIレスでアニメーション定義だけをごりごり書いてデバッグできるツール。

こないだの重力ゴースト †

起動中のゴーストにmoveを外部から送ったり、さらに上書き的にmoveさせたり、特定の位置まで動かしてから外部ツールが何かをしたり(同期が必要、の意)。

デスクトップNScripter †

特に今と変わらないけど、例えばバルーンレス(デスクトップに直接書いちゃう)とか。

方針 †

BerdとUrdの一体化 †

全部ファイルで永続化。ゴースト側から読み書き可能にする。 多分もうなってるんじゃないかな。

APIは非同期 †

タイムラインをバイパスしていきなりコマンド呼ぶのはリスキーな気がする。 とすると、呼び出し時はSkuldに渡して、必要に応じてイベントを発行してもらう。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-09-22 (月) 13:19:48 (3836d)