ロードされたときに.z位置を2000に設定してバックグラウンドで遠くに見えるムービークリップがあるとします...どこに表示されるかについて確実にx点とy点を設定するにはどうすればよいですか舞台の上で?方程式はありますか?
例えば;
original.x = 200;
original.y = 200;
original.z = 0;
new.z = 2000;
new.x = original.x*10;
new.y = original.y*10;
ロードされたときに.z位置を2000に設定してバックグラウンドで遠くに見えるムービークリップがあるとします...どこに表示されるかについて確実にx点とy点を設定するにはどうすればよいですか舞台の上で?方程式はありますか?
例えば;
original.x = 200;
original.y = 200;
original.z = 0;
new.z = 2000;
new.x = original.x*10;
new.y = original.y*10;
実際の x 点と y 点を 3D 空間の点 (_x、_y、_z を使用) で分離する必要があります。あなたから遠く離れたものは何でもあるという基本的な考えを使用して、消失点の原点と、物が背景に消える速さを定義する「焦点距離」(カメラのレンズを考えてください) を定義する必要があります。値をいじってみてください。ただし、通常は 200 前後で十分に機能します。これにより、次のような単純なものが得られるはずです。ここで、my_mc は、影響を与えたいオブジェクトです。
my_mc._x = 0;
my_mc._y = 0;
my_mc._z = 200;
var scaleRatio = focalLength/(focalLength + my_mc._z);
my_mc.x = origin.x + my_mc._x * scaleRatio;
my_mc.y = origin.y + my_mc._y * scaleRatio;
my_mc.scaleX = my_mc.scaleY = scaleRatio;
kirupa には、このテーマに関する非常に優れたチュートリアルがいくつかあります。これを試してください (as2 にもありますが、理論は同じです) http://www.kirupa.com/developer/actionscript/3dexplore.htm