- 2008年10月29日 (水)
- Tweet
Alternativa3Dを試してみる Part.03 : CameraとCameraController
AS3の3Dライブラリ「Alternativa3D」を学習するシリーズ第三回目、今回はカメラについて調べてみました。
3Dの初期化について
まだ解説してませんでしたが、PV3Dと同じくカメラ・シーン・ビューの3要素がありこれらを初期化することからはじめます。
[source:javascript]
// シーンの初期化
scene = new Scene3D();
// シーンのルートを設定(ここに色んな3DオブジェクトをaddChildしていきます)
scene.root = new Object3D();
// カメラを初期化
camera = new Camera3D();
// scene.rootにカメラをaddChild
scene.root.addChild(camera);
// ビューを初期化
view = new View();
addChild(view);
// ビューにカメラを設定
view.camera = camera;
[/source]
そして、Event.ENTER_FRAMEのハンドラーでレンダリングを行います。
[source:javascript]
scene.calculate();
[/source]
初期化に関するスクリプトは若干記法が違えど、流れはPV3Dと変わりませんでした。
カメラコントローラー
Alternativa3Dにはカメラをマウスとキーボードで簡単に制御できるようにCameraControllerというクラスが用意されています。どういうことができるかというと次のサンプルをご確認ください。
キーボードに対応しており制御方向は次のとおり。
- W — 前に進みます
- S — 後に進みます
- A — 左に進みます
- D — 右に進みます
- SPACE — 上に進みます
- Z — 下に進みます
- UP — 上を向きます
- DOWN — 下を向きます
- LEFT — 左に傾けます
- RIGHT — 右に傾けます
- SHIFT — 押しながらで別のキーを押すと進むスピードを高速にします
カメラコントローラーは次のとおりカスタマイズができます。
[source:javascript]
// 1.カメラコントローラーを初期化 引数はマウスイベントを受け取るDisplayObject
cameraController = new CameraController(stage);
// 2.カメラコントローラーが制御するカメラを指定
cameraController.camera = camera;
// 3.キーボード操作を可能にする機能
cameraController.setDefaultBindings();
// 4.衝突したらカメラを進まなくさせるかの設定
cameraController.checkCollisions = true;
// 5.衝突判定の半径(球の形で判定)
cameraController.collisionRadius = 0;
// 6.カメラの目標点を設定
cameraController.lookAt(new Point3D());
// 7.カメラコントローラーの制御の設定
cameraController.controlsEnabled = true;
[/source]
今回のソース
- src (130行, asファイル)
投稿者 : 池田 泰延
BookMark
ブックマークはこちらからどうぞ。