3Dスプライトの派生位置とスケーリングを取得し、それらを2Dスプライトに設定しようとしています。
私はこのように最初の部分を行うことができました:
var p:Point = sprite3d.local3DToGlobal(new Vector3D(0,0,0));
billboard.x = p.x;
billboard.y = p.y;
しかし、スケーリング部分を正しく取得できません。私はこれを試しています:
var mat:Matrix3D = sprite3d.transform.getRelativeMatrix3D(stage); // get derived matrix(?)
var scaleV:Vector3D = mat.decompose()[2]; // get scaling vector from derived matrix
var scale:Number = scaleV.length;
billboard.scaleX = scale;
billboard.scaleY = scale;
...しかし、結果は明らかに間違っています。
PS。私が何を達成しようとしているのかと尋ねられるかもしれません。「ビルボード」の3Dスプライト、つまり回転を除くすべての3D変換の影響を受けるスプライトを作成しようとしています。したがって、これらのスプライトは常に「カメラ」に面しています。