金曜日, 3月 20, 2009

actionscript2とpapervision3D

papervisionXがどうとか騒がれている2009年の3月ですが、Flash Player8(もしかすると7)で3Dっぽいものを動作させなければならないのでpapervisionについて調べてる。
が、古い情報はなかなか見つからない。検索結果と見られるページ全部をある時期に戻せたらいいのに。メディアアートに文化財保存修復学科的なものがあればいいのに。

svnからpapervision3Dを全部check outすると、一応as2のsrcもあるのだけど、as3用のpritivesのようなSphereやCylinderがない。wikiにあるとの情報だったが、wikiもう見られない。

3Dに関しては全然知識がなく、ここ数日でわかったことは、立体を作るためには三角形をひたすら組み合わせるということ。

自分で書くのは大変そうなのでinternet archiveで探してサルベージ。

objectフォルダに入れておく。とりあえずSphereは動いた。
ファミコンで鉄拳2とか観て自分を奮い立てる。

import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.scenes.Scene3D;

import org.papervision3d.objects.Sphere;

var container:MovieClip;
var scene:Scene3D;
var camera:Camera3D;
var sphere:Sphere;

init3D();
this.onEnterFrame = loop3D;

function init3D():Void {
container = this.createEmptyMovieClip("container", this.getNextHighestDepth());
container._x = 275;
container._y = 200;

scene = new Scene3D(container);

camera = new Camera3D();
camera.z = -2000;
camera.zoom = 1;
camera.focus = 500;

var material:WireframeMaterial = new WireframeMaterial(0xffffff);

sphere = new Sphere(material, 400, 10, 10);

scene.push(sphere);
}

function loop3D():Void {
sphere.rotationY = container._xmouse / 2;
sphere.rotationX = container._ymouse / 2;

scene.renderCamera(camera);
}

0 件のコメント: