私は次のチュートリアルに基づいていくつかのコードを書いています:
http://active.tutsplus.com/tutorials/3d/quick-tip-displaying-a-3d-model-with-papervision3d/
例からコードをコピーし、自分のアセットへのパスを追加しました。
[Embed(source="/Models/daeModel/cow.dae", mimeType="application/octet-stream")]
private var CowModelClass:Class;
[Embed(source="/Models/daeModel/Cow.png")]
private var CowTextureClass:Class;
[Embed(source="/Models/SkyDome/images.jpg")]
private var SkyTextureClass:Class;
[Embed(source="/Textures/grass-texture.jpg")]
private var GrassTextureClass:Class;
上記のアセットは、スカイドーム(球)の下の草(平面)に立っているCollada牛モデルを表示するために使用されます。そのため、私のコードはチュートリアルとは少し異なり、DAEではなくColladaをロードしています。
import org.papervision3d.objects.parsers.Collada;
Flash CS3で公開しましたが、.swfは完全に機能します。牛のモデルのディスプレイ、草の飛行機、スカイドームがすべて表示されます。
残念ながら、Flash CS3は埋め込まれていないため、アセットは実行時にロードされます。
アセットを埋め込むには、次を使用してmxmlc.exeを使用して.asをコンパイルします。
-static-link-runtime-shared-libraries=true
コンパイルエラーは発生しません。
ただし、.swfを実行すると、芝生の平面とスカイドームはテクスチャが埋め込まれた状態で正常に表示されますが、Colladaモデルは表示されません。
私自身のデバッグテキストでは、モデルの幅が0と表示されているため、モデルが読み込まれていないように見えます。モデルの3D座標を移動して、モデルの座標を中心とする3Dテキストを移動できるため、Colladaクラスは引き続き正常に機能します。テキストは表示されますが、モデルは表示されません。
簡単な変更を加えるだけで、モデルのテクスチャ「Cow.png」を芝生の平面に適用して確認でき、問題なく表示されます。テクスチャはモデルと同じフォルダにあるので、モデルの場所へのパスをナビゲートすることは問題ではないことを私は知っています。
mxmlcでコンパイルした後にColladaモデルが表示されない理由を誰かが知っていますか?
コマンドラインパラメータなど、明らかなものがありませんか?
それが失敗した場合、このモデルを埋め込む他の方法はありますか?