うーん、今どきすごい仕様です。
こんな出だしでスミマセンが、気を取りなおして、PhysicsEditor でシェイプを作る利点を書いてみたいと思います。
通常、リアルタイム処理を目的とした軽量の物理エンジンの場合、シェイプの形状には制約があります。
Box2D もそうで、Convex (凸)型の形状しかシェイプに登録できません。Concave (凹)型は NG です。
かと言って、それではとても不便なので、Convex 型のシェイプを組み合わせて、あたかも1つのシェイプように Concave 型のシェイプをつくります。
こうなるともう、グラフィックエディタから座標を読み取って…、などという方法ではとてもやっていられません。
PhysicsEditor で、やってしまいましょう。
例として、ひらがなの「ん」という文字をシェイプ化してみます。下のような画像を用意しました。
Concave型シェイプ |
PhysicsEditor を起動して、ウィンドウ左の Shapes リストに、画像ファイルをドラッグ&ドロップします。
「シェイプ自動生成ボタン」をクリックして Tracer ウィンドウを表示させます。
自動シェイプ作成ボタンをクリック |
Tracerウィンドウ |
Tolerance パラメータを調整して、シェイプの細かさを調整します。あまり細かすぎると、物理エンジンでの処理が重くなるので注意です。
最後に OK ボタンを押して、シェイプを生成します。以下のようになりました。
あれ? 1つの Concave 型シェイプになっていますね? どうしたんでしょう?
でも、ご安心を! これが PhysicsEditor を使うことの利点です。
データを Box2D 用フォーマットにエクスポートするときに、自動的に複数の Convex 型のシェイプに分割してくれるのです。
今回の場合は、合計13個の b2PolygonShape のデータが出力されました。以下が、そのデータの一部を表示したものです。
これを全て手でやろうとしたら大変ですね。
まだまだ、荒いツールと言わざるを得ない PhysicsEditor ですが、これがあるとないとじゃ大違いという事が、分かって頂けたのではないかと思います。
0 件のコメント:
コメントを投稿