0

少し奥行きのあるMovieClipが欲しいのですが。Flash CS3を使用する必要があるため、rotationX、rotationY、rotationZを使用できません。

最初の画像は、私が今持っているフラットなムービークリップです。二つ目は私が持っているべきものです。

ここに画像の説明を入力してください ここに画像の説明を入力してください

すでにマトリックスを使ってみましたが、うまくいきませんでした。私はそれについて質問をしました、そしてそこで誰かが私が望む結果を得るために私が3Dエンジンを使うべきであると推測しました。

3Dにする必要があったのはMovieClipだったので、今はMovieClipSpriteを使用しました。

var movieClipSprite:MovieClipSprite = new MovieClipSprite(myMC);
var view:View3D = new View3D({x:200,y:200});
        
var cam:Camera3D = new Camera3D();
cam.zoom = 1;
cam.y = 100;            
view.camera = cam;
cam.lookAt(new Number3D(0, 0, 0));
    
this.addChild(view);
view.scene.addSprite(movieClipSprite);
view.render();

カメラをどのように交換したかは関係ありません。常に同じ結果が得られました。フラットムービークリップ。

次に、Away3Dのドキュメントを読みました

MovieClipSprite:テクスチャとしてムービークリップを使用する球形のビルボード(常にカメラに面している)スプライトオブジェクト。シーン内のZソートされた三角形にインラインで個々の表示オブジェクトを描画します。

だからいつも同じ結果になると思います。

MovieMaterialでも何かを試しましたが、うまくいきませんでした。

ムービークリップを遠近法で表現するのを手伝ってくれませんか。

どうもありがとう!

ヴィンセント

4

1 に答える 1

2

enter_frame関数の「view.render」はありますか?

それはflashdevelopとAway3d4.0​​で私のために働きました:

    public var aSprite:Plane = new Plane(new ColorMaterial(0xFF0000));
    public var cam:Camera3D = new Camera3D();
    public var view:View3D = new View3D(null,cam);

    public function test() 
    {
        this.addChild(view);

        var vec:Vector3D = new Vector3D();
        cam.y = -300;
        cam.lookAt(vec);

        view.scene.addChild(aSprite);
        this.addEventListener(Event.ENTER_FRAME, onFrame);
    }

    public function onFrame(e:Event):void
    {
        view.render();
    }
于 2011-06-08T12:07:17.507 に答える