株式会社antsのホームページへようこそ。

GIZMO 3D(仮称)はじめました <後編>

0
Posted in Lab. By ohura

前回に引き続き今回は実際に3Dのガジェットを作るための情報を紹介していきます。3Dのガジェットを作るには①表示モデルの準備②制御するSWFの準備③設定ファイルの準備の3つの作業を行う必要があります。

1. 表示するモデルを準備する

Xファイル(DirectXのモデル データ)は各種3Dオーサリング ツールからエクスポートできます。antsではLightwave3Dを使用してデータを作成しています。サンプルの3Dガジェットでは、表示できるデータとして、以下の要件を満たす必要があります。

  • モデルは1つのみ
  • X形式のテキスト フォーマットのみ
  • テクスチャはXデータからの相対パスで指定する
  • モーションは複数持つことができる

2. モデルを制御するSWFを準備する

GIZMO 3Dでは、通常のGIZMOのコンポーネントを使った機能のほかに、モデルの表示状態を変更する機能が追加されています。コンポーネントのGizmo.gcommand()メソッドを使って、拡張された機能を呼び出すことができます。詳しい使い方は、3Dサンプル ガジェットのFLAファイルおよび拡張された機能一覧表をご覧ください。

■3Dサンプル ガジェットのFLAファイルへのリンク
gizmo3d_sample_fla.zip
■拡張された機能一覧表
モデル位置を変更する
  Gizmo.gcommand(“Gizmo3D.setPosition”, “posX,posY,posZ“);
   posX X座標
   posY Y座標
posZ Z座標
モデルを回転させる
  Gizmo.gcommand(“Gizmo3D.setRotate”, “rotX,rotY,rotZ“);
   posX X軸回転(単位はラジアン)
   posY Y軸回転(単位はラジアン)
   posZ Z軸回転(単位はラジアン)
アニメーションを再生する
  Gizmo.gcommand(“Gizmo3D.startMotion”, “name“);
   name アニメーション名
アニメーションの再生を停止する
  Gizmo.gcommand(“Gizmo3D.stopMotion”, “”);
カメラ位置を変更する
  Gizmo.gcommand(“Gizmo3D.setCamPosition”, “[posX],[posY],[posZ]“);
   posX X座標
   posY Y座標
   posZ Z座標
モデルの特定フレームを表示する
  Gizmo.gcommand(“Gizmo3D.NodeOn”, “name“);
   name フレーム名
モデルの特定フレームを非表示にする
  Gizmo.gcommand(“Gizmo3D.NodeOff”, “name“);
   name フレーム名

3. ガジェット設定ファイルを準備する

1、2で準備したXファイル、制御用SWFを取りまとめる設定ファイル「gadget.xml」を作成する必要があります。親レイヤーを通常のSWFで用意し、子レイヤーで3Dモデルを表示するという構成になります。3Dのレイヤーでは親レイヤーからのオフセット座標、レイヤーのサイズ、初期化パラメータを指定できます。

gadget.xml

<gadget type="layered">
  <swf type="main">3d_base_new.swf</swf>
  <swf type="3d" offsetX="20" offsetY="15" width="256" height="256" name="3d">param3d.xml</swf>
</gadget>

■初期化パラメータXML view  カメラの設定 vsp 視点位置 vrp 注視点位置 fov 画角(単位度) aspect アスペクト比 light  標準平行光源の設定 direction 方向 diffuse ディフューズ色 ambient 環境光の色 model  表示するモデル fname シーンファイルのファイル名 screen  スクリーン設定 transparent 透過するかどうか?(1で透過) color 背景色