Skip to content

カメラについて

3D 空間を描画するためには、 1 つ以上のカメラが必要です。 UniversalCameraArcRotateCamera を使いましょう。 WebXR 用のカメラも用意されています。

UniversalCamera

キーボード、マウス、タッチ、ゲームパッドなどを使った、 FPS スタイルのゲームに向いているカメラです。当たり判定や重力の設定も可能です。

ts
import { Scene } from "@babylonjs/core/scene";
import { UniversalCamera } from "@babylonjs/core/Cameras/universalCamera";
import { Vector3 } from "@babylonjs/core/Maths/math.vector";

declare const scene: Scene;

const camera = new UniversalCamera("camera", Vector3.One(), scene);
camera.setTarget(Vector3.Zero());
camera.attachControl(true);

当たり判定を付ける

js
scene.collisionsEnabled = true;
camera.checkCollisions = true;

anyMesh.checkCollisions = true; // メッシュとカメラが当たるようにします

重力を設定する

js
camera.applyGravity = true;
camera.needMoveForGravity(true);

WARNING

自動的に重力に従って下に落ちてしまうので、 Ground などのメッシュを用意しましょう

ArcRotateCamera

指定した地点を中心に回転するカメラです。見下ろし視点のゲームやモデルビューアに向いています。

ts
import { ArcRotateCamera } from "@babylonjs/core/Cameras/arcRotateCamera";
import { Scene } from "@babylonjs/core/scene";
import { Vector3 } from "@babylonjs/core/Maths/math.vector";

declare const scene: Scene;

const camera = new ArcRotateCamera("camera", 0, 0, 5, Vector3.Zero(), scene);
camera.attachControl(true);