Main Content

物理演算エンジンNapeを触ってみる (PhysicsEditor, TexturePacker)

nape_

こんにちは。

前回の大阪てら子で僕が発表した、物理演算エンジン『Nape』についてまとめました。

Nape とは

Napeは、物理演算エンジンとして有名な Box2D よりも、「軽くて使いやすい」「バージョンごとに急に仕様が変わらない」というコメントを見て興味を持ちました。

また、AIRアプリとしてGPUのパワーを引き出せるStage3D用のフレームワーク Starling とも相性が良いそうなので触ってみました。Napeの動作デモページはこちら

速度比較の動画も有りましたので貼ります。

YouTube Preview Image

 

関連リンク

 

触ってみた雑感

This movie requires Flash Player 9

Spaceクラスに、Body(剛体)と Constraint(滑車やジョイント)を add して、
重力/引力・X/Y方向の力・回転力など、お馴染みのプロパティをいじることで自由に扱えるのは、Box2Dともさほど変わらないですが、
以下のようなpng画像を指定するだけで、その形状のBodyオブジェクトを使えるのは便利だと思いました。

坊主

 

Bodyオブジェクトのヒット判定アウトラインを抽出する『PhysicsEditor』

ただ、上記のやり方では動的にアウトラインを計算するため、その分事前に処理が必要になるので、実践では、あらかじめ画像のアウトライン座標データを用意しておくことが望ましいです。

その時に便利なのが、『PhysicsEditor』です。

YouTube Preview Image

 
画像のアウトラインを調整してIDを付加したソースを、さまざまなツールで扱える形式に書き出せます。
エクスポートできる形式も、

  • Box2D(AS3)
  • Box2D(XML)
  • QuickBox2D(AS3)
  • Corona
  • Nape(AS3)
  • Nape(Haxe)

などに対応しています。

ただし、現行バージョンの Nape 2.0.8 と PhysicsEditor 1.0.9 の組み合わせでは、不具合があるらしくコンパイル時にエラーがでてしまいます。

この症状をググッたところ、対応策らしきエントリーがいくつかヒットしました。
こちらのエントリーからダウンロードできる修正済みデータを参考に、以下のように書き換えることでとりあえずは動作しました。

 
nape-starling-physicseditor.zip 内の PhysicsData.as の init関数定義文から上(1行目から195行目まで)を、
PhysicsEditor からエクスポートした PhysicsData.as の同じ箇所に丸々上書きコピペした上で、

body.cbType = cbtype(“null”);
↓以下に置換する
cbtype(body.cbTypes,””);

s.cbType = cbType;
↓以下に置換する
cbtype(s.cbTypes,””);

cbType = cbtype(“null”);
を削除

製作者の方もサポート大変だとは思いますが、次期バージョンアップでは直して頂きたいものですね。

 

スプライトシート作成に便利な『TexturePacker』

次に、スプライトシート作りに便利な『TexturePacker』の紹介です。

スプライトシートにすることで、複数の画像素材を1つのファイルにまとめて、ファイルサイズ減量&リクエストを減らす事ができるので、多くの素材を高速で扱うゲーム制作に必携のツールらしいです。

FlashUnpacker』を併せてインストールすると、swfを分解して取り込んでくれるので尚良しです!
以下に、わかりやすそうなチュートリアルのリンクを貼っておきますね。

 

PhysicsEditor と TexturePacker、お高いんでしょ? → ブロガーならライセンスキーもらえます

便利な上記2つのツールについて、@ProjectNya の人がつぶやいていました。

 
このページから申し込むことで、本当は有料のところが、ブロガーとして申請すればタダでライセンスキーを発行してもらえます。
僕もさっそく取得しました。
条件はブログもってたらとりあえずOKみたいです。

はやくしろ!!間にあわなくなってもしらんぞ――――っ!!
ということで、ありがとうございましたーー!

Comments

  1. Commented on

    […] 【ブログ更新】 物理演算エンジンNapeを触ってみる (PhysicsEditor, TexturePacker) – sakotsu inspire blog […]

Compose Comment