«コミュニティデッキ3D版<ガジェットを作ってみよう編その2> | ホーム | Flash CS3を使用したガジェットのデバッグ。ActionScript3編»
コミュニティデッキ3D版<物理エンジンで遊んでみよう編>
まだまだ引き続きコミュニティデッキ3D版で遊びましょう。
今回は物理エンジンを試してみます。
物理エンジンサンプル
コミュニティデッキ3D版には物理エンジンを使用したサンプルとして、「物理エンジンサンプル」という3Dガジェットが2つ同梱されています。シンプルな箱モデルを物理空間に置いただけのサンプルです。他のサンプルガジェットのようにマウスの右ドラッグでモデルを回転させたりすることはできませんが、左クリックで掴んで、そのままドラッグで持ち上げたりすることができます。当たり判定(コリジョン)も持っているので、スクリーンショットのように二つ重ねたりすることも可能です。
今回は、この物理エンジンサンプルと同じように、他のサンプルガジェットを同じ物理空間に置いてみます。
Xファイルサンプルを物理空間に置いてみよう
それではサンプルガジェットのXファイルサンプルを物理空間に置いてみることにしましょう。Xファイルサンプルのガジェットフォルダはsample_xですので、そのフォルダ内のgadget3d.xmlをテキストエディタなどで開いて編集します。
実は、物理空間に置くだけなら変更する点はたったの一箇所だけです。gadget3d.xmlの中のsceneタグのアトリビュートとしてdynamics="false"となっている部分を、dynamics="true"に変更するだけです。この部分を変更してガジェットを起動するとモニターモデルが物理空間に落ちてきます。マウスで持ち上げたり物理エンジンサンプルをぶつけたりできるようになっているので試してみてください。
いろいろな設定
物理空間に存在するガジェットの場合、質量やコリジョンの大きさなど、通常の3Dガジェットにはない設定をすることができます。つまりdynamics="true"の場合だけ有効になる設定です。これらの設定はobject要素のアトリビュートとして指定します。具体的な設定値については、以下にまとめましたのでこれを参考にいろいろと試してみてください。
| アトリビュート名 | 説明 | 値 | 省略時 |
|---|---|---|---|
| shape | コリジョンの形状 | sphere, box | sphere |
| position | 物理空間内の初期位置 | x, y, zの値をコンマ区切りで指定 | 0,5,0 |
| mass | 質量 | キログラムを数値で指定 | 10 |
| radius | コリジョンが球の場合の半径 | 数値で指定 | 1 |
| boxSize | コリジョンが箱の場合のサイズ | x, y, zの値をコンマ区切りで指定 | 1,1,1 |
ちなみに、上記のサンプル(モニター)の場合だと、shape属性を"box"、boxSize属性を"0.4,0.4,0.4"とすると見た目とコリジョン形状がぴったりあっておすすめです。
トラックバック
このエントリーのトラックバックURL:
http://www.anthill.jp/mt/p-tb.cgi/399
コメント