nekodorif - specifications - katochan - animation |
猫どりふ 落下物のアニメーション仕様書 |
概要 :::猫どりふ落下物は、伺かのSERIKO/1.2をベースとしたアニメーション表現機能を備えます。 アニメーションパターン定義ファイルを記述することにより、落下物の全身アニメーションを行ったり、落下物を複雑な経路で落下させることが可能となります。 :::本仕様書は 伺かのSERIKO/1.2仕様を理解の上でご利用ください。 伺かの関連仕様書 SERIKO/1.2 :::猫どりふのアニメーション機能は、伺かのSERIKO/1.2をベースとして機能追加/削減したものです。 伺かのSERIKO/1.2とは挙動が異なることがあります。 基本構造 :::落下物のディレクトリにアニメーションパターン定義ファイルsurface[0/1/2]a.txtを置くことにより、 指定したサーフェスがアニメーションするようになります。 home +-katochan +-sakura +-surface0.png +-surface0a.txt :::surface[0/1/2]a@ゴースト名.txtを作成すると、指定したゴーストでは当該アニメーション定義としてそのファイルが使用されます。 例えば surface1a@まゆら.txt を作成すると、まゆらに落ちる落下物ではこの定義ファイルが使用され、 他のゴーストではデフォルトのsurface1a.txtが利用されるようになります。 surface[0/1/2]a.txt :::記述フォーマットについては 伺かのsurface[id]a.txtに準じますのでそちらを参照ください。 以下では 伺かとの差分について解説します。 ■アニメーショングループ数 1つのベースサーフィスが持てるアニメーショングループの数は最大で 4 です(3interval〜まで)。 ■intervalエントリ always/runonce/sometimes/rarelyをサポートします。neverは全く発動しません。 ■アニメーションメソッド overlayメソッドはサポートしません。 また、猫どりふ独自のメソッドが定義されています。 伺か互換メソッド base、move 猫どりふ独自メソッド step、base+move、base+step step 全体の移動です。offsetx,offsetyには、x,yそれぞれの方向への移動量を記述します。 元位置を基準としたオフセット値への移動であるmoveと異なり、stepでは元位置そのものにx,yが加算されます。 0pattern0,0,20,move,1,0 0pattern1,0,20,move,1,0 0pattern2,0,20,move,1,0 0pattern3,0,20,move,1,0 上のように書くと落下物は右に1dotずれた位置で静止しますが、 0pattern0,0,20,step,1,0 0pattern1,0,20,step,1,0 0pattern2,0,20,step,1,0 0pattern3,0,20,step,1,0 stepで書くと落下物は右に移動していきます。 surfaceidパラメータは無視されます。 base+move baseとmoveを同時に行います。surfaceidパラメータ、offsetx/yパラメータはともに有効です。 base+step baseとstepを同時に行います。surfaceidパラメータ、offsetx/yパラメータはともに有効です。 ■無効なサーフィスID baseにおいて無効なサーフィスIDが指定された場合、伺かではsurface0へリダイレクトされますが、猫どりふ落下物では 前の状態が保持されます(サーフィス切り替えが発生しない)。 ■サーフィス枚数 ひとつの落下物で使用できるサーフィスの枚数は64枚までです。 ■@ゴースト付きサーフィスの扱い surface[id]@ゴースト.bmp/pngも自動的に正しく処理します。surface[id]a.txt内で@ゴーストを付けて指定する必要はありません。 というより、付けると正常に読めませんのでつけないで下さい。 例 surface2@双葉.pngが存在すれば、単に 0pattern0,2,100,move,0,10 と書けばゴーストが双葉時にちゃんと読みます。 ■排他アニメーション runonce動作中は他のアニメーショングループ(always/sometimes/rarely)は発動しません。 注意 :::katochan.txtのfall.typeやslide.typeエントリで指定された挙動とSERIKOアニメは並列に動作します。 stepを利用して落下時の動作をプログラムしたい場合は、fall.typeとslide.typeをともにnoneとしておくのが基本です。 |