Away3D v2.1.0の使い方(5)- らせん
June 29, 2008
The Flash Blogのpapervision3DらせんサンプルをAway3Dに移植。
らせんを完成させるまでの考え方
1.y軸等間隔にPlaneオブジェクトを配置

2.rotationYに回転角度をセット

var num:int = 10; // 10個Planeを生成
var anglePer:Number = 360 / num; //1回転360度割る10個で回転角度36度ずつになる
for(var i:int=0; i < num; i++ )
{
var p:Plane = new Plane({width:W,height:H});
p.rotationY = i*anglePer;// 36度ずつ回転させる
(省略)
view.scene.addChild(p);
}
3.zプロパティをセット

for(var i:int=0; i < num; i++)
{
var p:Plane = new Plane({width:W,height:H});
p.rotationY = i*anglePer;// 36ずつ回転させる
p.z = Math.cos(i*anglePer) * RADIUS;
(省略)
view.scene.addChild(p);
}
4.xプロパティをセット

for(var i:int=0; i < num; i++)
{
var p:Plane = new Plane({width:W,height:H});
p.rotationY = i*anglePer;// 36ずつ回転させる
p.x = Math.cos(i*anglePer) * RADIUS;
p.z = Math.cos(i*anglePer) * RADIUS;
(省略)
view.scene.addChild(p);
}
5.mouseYの位置に反応して、らせんが上下する動きをつける
(ENTER_FRAME内処理)
var distY:Number = (mouseY - stage.stageHeight/2) * 0.1;
camera.y += distY;
if(camera.y < MIN_Y) camera.y = MIN_Y;
if(camera.y > MAX_Y) camera.y = MAX_Y;
6.mouseXの位置に反応して、らせんが回転する動きをつける
var distX:Number = (mouseX - stage.stageWidth/2) * 0.0005;
angle += distX;
camera.x = Math.cos(angle)*500;
camera.z = Math.sin(angle)*500;
カメラを回転させる際、Camera3Dではダメ。TargetCamera3Dを使う必要あり。
カメラのzプロパティはMath.sin()を使わないと回転しなかった。
これに伴い3.の計算式もMath.sin()を使うように変更。
テクスチャつけたり、サイズかえたりして冒頭のサンプルになる。
タグ:
Trackback
Trackback URL for this entry:



















