Papervision3Dを試す
前々からFlash、特に3D周りをやりたいと思っていたのですが、
開発環境の作り方を教えて頂いたのでこちらにメモです。
用意するもの
-
- ActionScript2.0および3.0で使用できる3Dのライブラリ
- FlashDevelop
-
- フリーのコードエディタ。主にActionScript向け。
- FlexSDK
2.FlexSDKのダウンロード
こちらのページの[Latest Milestone Release Builds]の[Adobe Flex SDK]をダウンロードして解凍。
flex_sdk_3.〜というフォルダが出来上がるので任意の場所に移動。
※自分はc:\直下に置きました。
3.Papervision3D(以下pv3d)のダウンロード
pv3dはSubversion形式で公開されています。
WindowsではTortoiseSVNあたりを利用する必要があります。
http://papervision3d.googlecode.com/svn/trunk/をチェックアウトすればOKです。
4.FlesSDKの設定
まずライブラリ用のディレクトリを作成します。
※自分はC:\flex_sdk_3.〜\frameworks\sources
その中にpv3dの/as3/trunk/src/の中身をコピーします。
次にコンフィグファイルの設定をします。
場所はC:\flex_sdk_3〜\frameworks\flex-config.xmlです。
これの
<source-path> <path-element>sources</path-element> </source-path>
5.FlashDevelopの設定
Tools->Program Setting を選択します。左メニューのAS3Contextを選択し以下を入力
Default Flash Version→10を入力
Flex SDK Location→FlexSDKへのパスを入力
次に左メニューのFlashViewerを選択し、Movie Display StyleをPopupとします。
最後にTools->Global Classpathsを選択し、Add Classpath..からpv3dへのパスを入力します。
これで設定は終わりです。
サンプル
New ProjectからAS3 Projectを作成し、Main.asで以下のサンプルを作成しました。
package { import flash.display.*; import flash.events.*; import org.papervision3d.view.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.objects.parsers.DAE; import org.papervision3d.scenes.Scene3D; import org.papervision3d.cameras.Camera3D; import org.papervision3d.render.BasicRenderEngine; public class Main extends Sprite { private var viewport:Viewport3D; private var camera:Camera3D; private var scene:Scene3D; private var renderer:BasicRenderEngine; private var colladaObj:DAE; private var mySphere:Sphere; public function Main() { initStage(); initPv3d(); createObj(); } private function initStage():void { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.quality = StageQuality.MEDIUM; } private function initPv3d():void { viewport = new Viewport3D(640, 480, true, true); viewport.opaqueBackground = 0xFFFFFF; addChild(viewport); scene = new Scene3D(); camera = new Camera3D(); renderer = new BasicRenderEngine(); } private function createObj():void { colladaObj = new DAE(); colladaObj.load("first.dae"); scene.addChild(colladaObj); mySphere = new Sphere(null,600,40,40); scene.addChild( mySphere ); addEventListener(Event.ENTER_FRAME, handler); } private function handler(event:Event):void { renderer.renderScene(scene, camera, viewport); } } }
これでビルドして下のような球体が表示されれば
pv3dの設定がきちんとされています。
次は3Dモデルのインポートを試してみます。