Wonderfulで始めるAlternativa3D

入門編4. 座標・配置・回転

Alternativa3Dが表現する3D空間の座標系は、右手系座標で基本Z座標の+が上、-が下、Y座標の+が奥、-が手前、X座標の+が右、-が左となっています。

Z座標が上下ということで、Flash(やグラフィックツール)の座標やPv3D(左手系、Z+が奥、Y+が上)に慣れていると、かなり戸惑うことになるかもしれません。

なお、画面に表示される時は、カメラの位置や、カメラの回転によって変わります。
Alternativa3Dの座標系をそのまま画面に反映させる場合は、カメラの位置をY座標をマイナスにして、中心を向かせます。

以下は、
赤(暗):x=-300、赤(明):x=300
緑(暗):y=-300、緑(明):y=300
青(暗):z=-300、青(明):z=300
に配置しています。
またBasic Templateでは、カメラがZ=-1000の位置にあるので、Y=-500に配置して、中央(0,0,0)を向かせています。

このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得


・src

3D座標への3Dオブジェクトの配置

3Dオブジェクト(プリミティブ)を3D座標上に配置するには、2つの方法があります。

1.FlashDisplayObjectインスタンス同様、xyzプロパティを利用する方法

box.x=300;box.y=100;box.z=200;

2.3Dオブジェクトの位置を表すcoordsプロパティとPoint3Dを利用する方法

coodsプロパティは、Alternativa3Dオブジェクトの座標位置を表すプロパティで、型はPoint3D型です。
Point3D(x:Number = 0, y:Number = 0, z:Number = 0)

box.coords=new Point3D(300,100,200);

Point3Dは3D座標(及びベクトル)を扱うalternativa.typesパッケージのクラスで flash.geom.Vector3Dに近い物です。 Alternativa3D自体は、Player9時代から開発されており、10から実装されたVector3Dはありませんでしたので、独自の座標型を持っているわけです。ちなみに、Vector3Dも右手系の座標です。

SampleTemplateでも、カメラのlookAtさせる座標で使われています。

// カメラの座標を中央に向かせる
template.cameraContoller.lookAt(new Point3D());

なおPoint3Dはベクトルを扱うクラスでもありますので、メソッドには、外積や内積、正規化を求める物などが一通り揃っています。

 

3Dオブジェクトの回転

以下は、Alternativa3Dの座標系において、+方向に回転させた場合の方向です。
3Dオブジェクトの回転は、rotationX、rotationY、rotationZプロパティを利用します。
なお、flash.display.DisplayObjectのrotationX、rotationY、rotationZと違い、単位はradian(ラジアン)です。

下のサンプルは、左からそれぞれx軸、y軸、z軸を正回転させています。

このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得

このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得

このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。

Adobe Flash Player を取得

box.rotationX+= 2*Math.PI /180; box.rotationY+= 2*Math.PI /180; box.rotationZ+= 2*Math.PI /180;


参考

http://docs.alternativaplatform.com/display/TDEN/Coordinates+system

Menu

入門編

初級編

7. Sprite3Dとは?

8. MovieClipMaterial

中級(インタラクティブ編)

1. インタラクティブなオブジェクト

2. 反応するモデルと反応しないモデル

3. サーフェースごとのマウスイベント

4. フェースごとのマウスイベント

中級(コントローラー編)

1. コントローラーとは?

2. コントローラーをカスタマイズ

3. 重力・衝突判定

4. LookAt

中級(カメラ&View編)

1. カメラZOOMとFOV

2. 複数のカメラとView

3. Viewのクリッピング

中級(メッシュ作成編)

1. 頂点を作成する

2. 面を作成する

3. 表面を作成する

4. UVを設定する

5. メッシュを作る

実践・応用編

1. 読み込んだ画像で絵本を作る

3. GoogleNexusOne

4. 3Dスロット

5. ルービックキューブ

実験編

1. 3dsの読み込みと操作

2. イラレで作ったpathを押し出す

3. 押し出しによるText3D

4. 自作のマテリアルクラスを作る

5. フラットシェーディングマテリアル

6. 衝突判定を利用した跳ね返り

7. Sprite3Dによるパーティクル表現

8. Sprite3Dでピクセルレンダー

9. Objectのグロー、ブラー