mieki256's diary



2014/08/31() [n年前の日記]

#1 [dxruby] 多関節キャラエディタ GMCMT のプロジェクトファイルをDXRubyで表示

数日前に弄ってた Ruby + DXRuby のソースを今のうちに一応アップロードしておこうかと。まだ、基本ポーズを表示するところまでしかできてないけど。

_多関節スプライトエディタGMCMT

例えば、以下のような感じのデータを作ってみたりして。
gmcmt_ss.png

GMCMT はpng画像エクスポート機能があるので、下のような感じのアニメgif画像も作れる。
run_anime.gif


以下は、プロジェクトファイルを Ruby + DXRuby で読み込んで表示してみた例。
gmcmtanimeobj_rb_ss.png

ソースは以下。

_gmcmtanimeobj.rb
_main.rb
# GMCMTのプロジェクトファイルを読んで基本ポーズを表示してみるテスト

require 'dxruby'
require_relative 'gmcmtanimeobj.rb'

obj = GmcmtAnimeObj.new("walk_test.gmp")
bx, by = 320, 240
brot = 0

Window.loop do
  break if Input.keyPush?(K_ESCAPE)    # ESCキーで終了

  brot += 1 if Input.keyDown?(K_UP)    # 本体角度をキー入力で変更
  brot -= 1 if Input.keyDown?(K_DOWN)

  obj.draw_grid(bx, by) # グリッドを描画
  obj.draw(bx, by, brot) # 全パーツを描画
end

一応、実験に使った GMCMT のプロジェクトファイル一式(.gmp、.gms、画像ファイル)と上記のRubyソースも zip にして置いておきます。Public Domain / CC0ってことで。 *1

_sample_my_2.zip (27.4KB)

とりあえず、プロジェクトファイルがテキストファイル(ini(?)、json)で保存されてる限りは、ご覧のとおり、Rubyその他で読み込んでゲームに使うのも比較的容易なのでありがたいなと。これがもしバイナリファイルだったら、解析するだけでも面倒で、途中で投げ出してたはず。

できればDXRuby上でモーション再生までしてみたいけど、今後しばらくは別のことを勉強しなきゃいけない感じだったりするので、今回はここまで。

ゲームに使うとしたら。 :

ゲームに使うとしたら、画像描画の優先順位(プライオリティ値)が後々絡んできそうな気がする。複数のキャラが画面内に登場するだろうし。どうしたもんか。
  • 座標計算だけは事前にしておいて、最後にプライオリティ値に従って描画順を前後させるか。
  • それとも、背景画像その他をどのプライオリティ値で描画するか事前に厳密に決めておいて、その範囲内で各キャラのプライオリティ値が収まるようにするか。
後者の方が楽だろうか。どうなんだろう。

*1: GMCMTのプロジェクトファイルのライセンスはどうなるのか、ちょっとよく分からないけど、データファイルにまでライセンスが強制される事例ってあまり聞かないので、たぶん問題無いのではないかなと…。

以上です。

過去ログ表示

Prev - 2014/08 - 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
31

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project