mieki256's diary



2014/11/20(木) [n年前の日記]

#1 [cg_tools][dxruby][spriter] Spriter用のデータを作り直し

先日 Spriter で作ったデータは、パーツ数が多過ぎて何が何だか分からないので、数パーツだけ使った簡単なデータを作って眺めていたり。

Spriter の保存ファイルはそのままだとXML形式(.scml)で保存されるけど、json形式(.scon)でも保存できることに今頃気付いた。RubyでXML解析をするなら Nokogiri を使いたいところだけど、しかし Nokogiri はインストール時にハマったりするし。さりとて Ruby に標準でついてる REXML とやらは処理速度が遅いと聞くし。などと悩んでたけど、Spriter が json形式でも保存できるなら、ココは json を使ったほうがヨサゲかなと思えてきたり。ただ、内容を確認するなら json より XML のほうがまだ分かりやすいので、眺めているのは XML だったりして。

とりあえず、分かった点は以下。

animation タグがアニメーション種類の情報を持っている。例えば、defaultpose、walk、run というアニメーション種類を作ったら、
  <animation id="0" name="defaultpose" length="960" interval="16">
    ...
  </animation>

  <animation id="1" name="walk" length="960" interval="16">
    ...
  </animation>

  <animation id="2" name="run" length="960" interval="16">
    ...
  </animation>
といった形で記録される。 interval に 16ms ではなく 16.6ms 等を指定できれば60FPSに近づけられるのだけど、どうやら小数点以下は指定できないらしい。60FPSを前提にしてデータを作るなら、16ms か 17ms を指定して、微妙にフレームレートがずれちゃうけど、そこは我慢するしかナサゲ。

mainline タグは、キーフレーム情報を持っている。例えばキーフレームが2つあるなら、mainline タグの中に <key 〜> 〜 </key> が2つ記録される。
        <animation id="0" name="move" length="960" interval="16">
            <mainline>
                <key id="0" curve_type="cubic" c1="0.7349" c2="0.9581">
                  ...
                </key>
                <key id="1" time="480" curve_type="cubic" c1="0.6744" c2="0.9535">
                  ...
                </key>
            </mainline>

obj_info タグは、bone(ボーン、骨) の数を示してる。例えば bone の数が2つなら以下のようになる。
        <obj_info name="bone_000" type="bone" w="30.956" h="10"/>
        <obj_info name="bone_003" type="bone" w="64.7619" h="10"/>
w が bone の長さ、h が bone の幅。どうやら bone は、横に伸びる形で考えてサイズ指定されている。おそらく画面の右方向が 0度として扱われている予感。

以上です。

過去ログ表示

Prev - 2014/11 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project