「DXRubyとスプライトエディタ」関連ファイル一式
2014/12/01 by mieki256
スプライトエディタ Spriter のプロジェクトファイルを、DXRubyで表示してみるスクリプト一式です。
同梱ファイル
- main.rb ... ひとまずアニメ表示してみるスクリプト
- spritersconparser.rb ... 実際の処理をするスクリプト
- cubicbezier.rb ... Spriterの Cubic補間を検証してみるスクリプト
- doc/*.html ... ドキュメント
- img00/* ... サンプル Spriter ファイル、及び画像
動作確認環境
- Windows7 x64
- Ruby 1.9.3 p545 mingw32
- DXRuby 1.4.1
使い方
ひとまず動作する様子を見てみる
ruby main.rb
を実行してください。アニメが表示されるはずです。
任意の Spriterファイルを表示する
ruby spritersconparser.rb Spriterファイル.scon
という形で実行してください。表示テストができます。(.scml(.xml)ではなく、.scon(json)を指定することに注意)
他のスクリプトから呼び出して使いたい
以下が記述例です。
require 'dxruby'
require_relative 'spritersconparser'
ani = SpriterSconParser.new("img00/girl_spriter.scon")
ani.set_anime("default", "run")
Window.loop do
ani.draw(320, 240 + 120)
ani.update
end
水平垂直反転表示や、回転表示も対応済みです。詳しくは、doc/index.html を見てください。
現在分かってる不具合
-
Spriter上で全体を管理するボーンを入れようとした場合、0度以外で作ってしまうと、反転表示の向きがおかしくなる。
- 全体を管理するボーンを入れる場合、0度のボーン(右方向に向かって伸びるボーン)にしてください。
-
処理が重い。
- 使うとしたら、大きいボスキャラを一体だけ出す時ぐらいしか使えないかも…。
- プレイヤーキャラや、わらわら出てくる雑魚敵に使うと、たぶん処理落ちします。
-
これは Spriter の問題ですが、時間の値が整数のみなので、60FPS(1フレーム16.666...ms)ピッタリのデータを作れません。
- 1フレーム 16ms、62.5FPSで設定して、1秒 = 960ms (16ms x 60フレーム) と思いながらデータを作ればOKかなと。
ライセンス
スクリプトソースや、サンプル画像、サンプルSpriterファイルは、Public Domain とします。