Making Physics Objects

Falling ball

このチュートリアルでは以下の内容について学ぶことができます

  • 物理演算をプロジェクトに追加する
  • オブジェクトの位置をランダムで決定
  • 物理の値の設定
  • Code and Web Incが作成したPhysics Editorの利用

下記のリンクからサンプルプロジェクトをダウンロードできます。 Anonymous Creative GroupのMatthew Peacockが作成してくれました。

.psdファイルのサイズは 768×1024 です.iPad Mini 向けのプロジェクトを作成しましょう.

falling.psdには、以下のレイヤーが含まれています

  • sb1 .. sb13 のボール画像のレイヤー
  • logo
  • background

仮想の壁の作成

Physics > Environmental propertiesをクリックして、環境を設定します

  • Hybrid
  • Create Virtual walls around the screen
    • Bottom

バーチャルウォール(仮想の壁)の設定を有効にします。ここでは、底辺(Bottom)のみを有効にしました。

Hybrid は物体の形をチェックするためのデバックモードなので,商用向けにビルドするときには、Normalに戻してください


Layer Properites

全てのsbXXレイヤーを選択して,layer propertiesを開いてください。一度に同じpropertiesを設定することができます。

Layer Properties ウィンドウで、初期の表示位置をランダムに設定します。

  • Randomize position

    • X between 0 and 1024
    • Y between -300 and 0
  • Export Properties

  • Render as sb1

ボールの形は一緒なので、Render as にsb1 を指定して、描画時に sb1を利用します。


Physics Body - Dynamic

ball画像の各レイヤーの複数選択を保持したまま、次に,Physicsツールセットから Set body propertiesをクリックしてください

以下のプロパティが全てのボールに適用します。

  • Dynamic
  • Shape Circle

壁は静的な動かない物体ですが、ボールは動的な(Dynamic)な丸い形状の形に設定されました。


Physics Body - Staic

ロゴのレイヤーを選択して,Static bodyとpoly.luaを設定します。poly.luaは、後述のPhysics Editorで作成された物理形状をデータファイルです。

  • Static
  • Polygon
    • poly.lua

静的な物体として、Staticとし、形状に Polygonを指定し、そのデータファイルとして poly.luaを設定します。

補足

  • Kinematic bodyは重力に影響せず落下しない特別な物体です。他のオブジェクトが衝突した場合は、物理法則に従います。
  • isSensorをtrueにすると,衝突してもセンサーのオブジェクトが動くことはありません。衝突のイベント通知のみが発生します。.

Physics Editorの利用

Physics Editorは画像にポリゴンの形を指定するサードパーティ製のツールです.luaファイルにポリゴンの座標データが出力されています。

Physics Editorで画像の形状を指定する場合は、まず一旦 Publishして、画像出力を行い、その画像をPhysics Editorで開きます。

ロゴ画像の場合は、page1ですので、build4/assets/images/p1 フォルダに出力されています。

build4/assets/images/p1/logo.pngのロゴ画像のファイルをPhysics Editorにドラッグ&ドロップします。

Physics Editorの 識別子(ID)は logo とファイル名と同じにする必要があります.

Hybridモード

Hybrid環境を作成したので,ロゴに緑のレイヤーが被っていることが確認できると思います.緑色の部分が静的な物理オブジェクトです。ボールは動的な(dynamic)物体なので,オレンジ色になっています。

Physics Editorの使い方を知りたい場合はCodeAndWebをチェックしてください.


results matching ""

    No results matching ""