// _______________________________________________________________________ Densuke_Oyaji_Tama_Walking // http://code.google.com/p/papervision3d/downloads/list の Papervision3D_sourc_docs_examples_rev28.zip 内のHelloWorldファイルを元に // 電脳コイルのキャラクター:でんすけ、おやじ、サッチー(たま)を歩かせるファイルを作成しました。 // PlaneとCylinderのオブジェクト作成およびそれらにMovieClipのテキスチャを当てはめるexampleファイルです。 // file modified by oyspe 2007.11.28 http://geek.oyspe.com package { import flash.display.*; import flash.events.*; // Import Papervision3D import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; public class main extends Sprite { // ___________________________________________________________________ vars3D var container :Sprite; var scene:Scene3D; var camera:Camera3D; var wall3D:Cylinder; var densuke:Plane; var oyaji:Plane var tama:Plane; // ___________________________________________________________________ main function main() { init3D(); // onEnterFrame this.addEventListener( Event.ENTER_FRAME, loop3D ); } // ___________________________________________________________________ init3D function init3D():void { // Create container sprite and center it in the stage container = new Sprite(); addChild( container ); container.x = 280; container.y = 200; // Create scene scene = new Scene3D( container ); // Create camera camera = new Camera3D(); // Add Densuke Image addDensuke(); //Add Oyaji Image addOyaji(); //Add Tama Image addTama(); //Add Space Image addSpace(); } // ___________________________________________________________________ loop function addDensuke():void { //planeに貼り付ける画像を引数に入れる //Bitmapライブラリシンボルから画像もってくる場合はBitmapAssetMaterialを使用する、MovieClipライブラリシンボルからもってくる場合は以下のようにMovieAssetMaterialを使用する。 var materialDensuke :MovieAssetMaterial = new MovieAssetMaterial( "densuke",true,null ); //MovieAssetMaterialインスタンスのプロパティanimatedをtrueにしないとMovieClipのアニメーションが再生されない materialDensuke.animated =true; // Load densuke. densuke = new Plane( materialDensuke,920, 720, 8, 8); // Position densuke //rotationXはX軸に対して回転 densuke.rotationX = 0; densuke.rotationY = 16; densuke.x=-700; densuke.y= -500; densuke.z=-200; scene.addChild( densuke ); } // ___________________________________________________________________ loop function addOyaji():void { var materialOyaji :MovieAssetMaterial = new MovieAssetMaterial( "oyaji2",true,null ); materialOyaji.animated =true; oyaji = new Plane( materialOyaji, 500, 900, 8, 8); oyaji.rotationY = 10; oyaji.x=50; oyaji.y= -560; oyaji.z=-200; scene.addChild( oyaji ); } // ___________________________________________________________________ loop function addTama():void { var materialTama :MovieAssetMaterial = new MovieAssetMaterial( "Tama",true,null ); materialTama.animated =true; tama = new Plane( materialTama, 1260, 1305, 8, 8); tama.rotationY = 30; tama.x=850; tama.y= -60; tama.z=-200; scene.addChild( tama ); } // ___________________________________________________________________ loop function addSpace():void { var materialSpace :MovieAssetMaterial = new MovieAssetMaterial( "wall",true,null); wall3D = new Cylinder( materialSpace,3000,2000,100,6,0,null); // Position plane wall3D.z = 3100; // Add to scene scene.addChild( wall3D ); } // ___________________________________________________________________ loop function loop3D(event:Event):void { // Move camera with the mouse //カメラの移動範囲の指定 camera.x = -container.mouseX*3; camera.y = container.mouseY*4; wall3D.yaw( -2); // Render the scene scene.renderCamera( camera ); } } }