トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     Alternativa3dで、3Dデータをロードする際のメソッドの役割について
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
piggy
Åê¹ÆNo.46933
投稿日時: 2011-1-28 17:25
新米
居住地:
投稿: 18
使用環境:
Alternativa3dで、3Dデータをロードする際のメソッドの役割について
こんにちは。

Flashの3Dエンジン「Alternativa3d_7.6」の検証をしております。

「Alternativa3DExamples\src\parsersexample」内にある
「ParsersExample.as」の解読を進めているのですが、
不明な点があって投稿させていただきました。

以下にスクリプトを抜粋します。
(import処理やonEnterFrame処理の箇所は割愛します)

引用:

var loader3ds:URLLoader = new URLLoader();
loader3ds.dataFormat = URLLoaderDataFormat.BINARY;
loader3ds.load(new URLRequest("parsersexample/model.3DS"));
loader3ds.addEventListener(Event.COMPLETE, on3dsLoad);

var loaderCollada:URLLoader = new URLLoader();
loaderCollada.dataFormat = URLLoaderDataFormat.TEXT;
loaderCollada.load(new URLRequest("parsersexample/model.DAE"));
loaderCollada.addEventListener(Event.COMPLETE, onColladaLoad);

private function on3dsLoad(e:Event):void {
 // Model parsing
 var parser:Parser3DS = new Parser3DS();
 parser.parse((e.target as URLLoader).data, "parsersexample/");
 trace(parser.objects);
 ★↓不明点1
 var mesh:Mesh = parser.getObjectByName("Cylinder01") as Mesh;
 mesh.x -= 100;
 rootContainer.addChild(mesh);
 
 ★↓不明点2
 // Loading of textures
 var materialLoader:MaterialLoader = new MaterialLoader();
 materialLoader.load(parser.textureMaterials);
}

private function onColladaLoad(e:Event):void {
 // Model parsing
 var parser:ParserCollada = new ParserCollada();
 parser.parse(XML((e.target as URLLoader).data), "parsersexample/");
 trace(parser.objects);
 var mesh:Mesh = parser.getObjectByName("Cylinder01") as Mesh;
 mesh.x = 100;

 ★↓不明点3
 mesh.weldVertices();
 mesh.weldFaces();

 rootContainer.addChild(mesh);

 // Loading of textures
 var materialLoader:MaterialLoader = new MaterialLoader();
 materialLoader.load(parser.textureMaterials);

}



上記のように不明な箇所が3つあります。

■不明点1:
var mesh:Mesh = parser.getObjectByName("Cylinder01") as Mesh;

この部分の処理は、「3dsファイル内の"Cylinder01"モデルのメッシュ情報(=ポリゴン情報)を変数meshに格納する」
でよろしいでしょうか?

その場合、"Cylinder01"という名称を取得するには、3dsファイルをモデリングソフトなどで開いてモデル名を調べるしかないのでしょうか?

■不明点2:
var materialLoader:MaterialLoader = new MaterialLoader();

「Alternativa3d」では、モデルデータとテクスチャデータは分けなければならないのでしょうか?
(サンプルでは、モデルデータと同階層にtexture.jpgが置いてあります)
モデルデータ上で設定したテクスチャ情報は反映されない、
ということでしょうか…?

■不明点3:
mesh.weldVertices();
mesh.weldFaces();

この処理が何をしているのかわかりません。
この処理を無くしてもモデルが生成されました。
Colladaファイル特有の処理なのでしょうか?
(英文のマニュアルを見て頂点情報もしくはUVマップに関係したものだろうか?と思っているのですが…)

AS3に関する理解が足りず、勘違いなどしているかとは
思いますが、
もしよろしければご教示いただけると助かります。

よろしくお願いいたします。

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » Alternativa3dで、3Dデータをロードする際のメソッドの役割について piggy 2011-1-28 17:25
     Re: Alternativa3dで、3Dデータをロードする際のメソッドの役割について ゲスト 2011-1-28 23:51
       Re: Alternativa3dで、3Dデータをロードする際のメソッドの役割について piggy 2011-1-31 10:57

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops