メインコンテンツまでスキップ

カメラ

カメラは、見る人に何が見えるか、見る人がどう動き回れるかを決めます。操作モード、レンズ、ミニマップなどの追加ビューを設定しましょう。

操作モード​

モード見る人ができること
noneカメラを動かせません。動かすのはあなたです
orbitドラッグで対象のまわりを回り、スクロールでズームします
flyキーとマウスで自由に飛び回ります
firstPersonその場から見回します。ポインターはキャプチャされます
lockポインターはキャプチャされ、カメラはオブジェクトを追い続けます
キャラクターには lock を使いましょう

firstPerson は、カメラをオブジェクトから切り離します。モデルのまわりを歩いて見るだけならこれで十分です。ただし、カメラが体についていかなくなるので、キャラクターには使えません。

lock もポインターをキャプチャしますが、カメラはオブジェクトに付いたままです。マウスの動きは、代わりにスクリプトに渡されます。一人称視点のゲームには、こちらを使ってください。

orbit の設定​

orbit は、商品ビューアに向いているので初期モードになっています。設定がいちばん多いモードです。

設定役割
targetカメラが回る中心の点
enableRotate · enablePan · enableZoom使えるジェスチャー
minDistance · maxDistance見る人がどこまで近づけるか、離れられるか
minPolarAngle · maxPolarAngle上下にどこまで回り込めるか
enableDamping · dampingFactor指を離したあと、動きがどれだけ滑り続けるか
autoRotate · autoRotateSpeedゆっくりした自動回転

商品ビューアでは、ほぼ必ず極角(polar angle)を制限してください。制限しないと、見る人が床の下に回り込んでシーンを下から見られてしまいます。どんなライティングにしても、下からの眺めはきれいに見えません。

レンズ​

  • fov は視野角で、単位は度です。50 で自然に見えます。値を下げると、ズームしたような平坦な見た目になります。値を上げると、広く映り、迫力のある見た目になります。
  • near と far は、描画する範囲を決めます。near より近いものと、far より遠いものは切り取られます。
表面がちらつくとき

far が near に比べて大きすぎると、近くに重なった表面がちらつき始めます。これを Z ファイティングと呼びます。直すときは、まず near を上げてください。far を下げるより、ずっと効果があります。

fly の設定​

fly モードでは、見る人はキーで移動します。キーは変更できます。プロジェクトで名前を付けたキー割り当てを使うこともできます。移動の速さは、速度とブースト倍率で決まります。初期設定では、Shift を押している間ブーストがかかります。

追加ビュー​

追加ビュー(Extra camera view)は、カメラからもう 1 つの映像を、メインの映像の上に描画します。ミニマップ、バックミラー、監視モニターに使います。

すでにカメラを持っているオブジェクトに追加して、描画先を選びます。

  • screen:画面上の長方形です。位置と大きさを、画面に対する割合で指定します。
  • texture:マテリアルで表示できる画像です。

texture を使うと、実際に映るモニターをつくれます。カメラの映像をテクスチャに描画し、そのテクスチャをシーン内の画面のオブジェクトに貼ります。すると、その画面にワールドの別の場所が映ります。

追加ビューは、メインの映像のあとに、並べた順番で描画されます。

追加ビューは、そのたびにシーン全体を描画し直します

モニターが 2 つあれば、シーンは 3 回描画されます。追加ビューは必要な場所だけで使い、不要な場所ではオフにしてください。

スクリプトでカメラを切り替える​

シーンは、一度に 1 つのカメラを通して描画されます。スクリプトからは、どのカメラが有効かを確認し、別のカメラに切り替えられます。

ctx.camera.entity();
ctx.camera.setActive(securityCam);
ctx.camera.pose();

カメラの位置は、常にカメラのトランスフォームで決まります。カメラを動かすには、トランスフォームに書き込みます。orbit モードと firstPerson モードでは回転を操作側が決めるので、書き込んだ回転は上書きされます。書き込んだ位置はそのまま使われます。詳しくは ctx API を参照してください。

ゲーム操作でカメラを動かしている場合、そのカメラ自身の操作モードは無視されます。そうしないと、毎フレーム 2 つの操作がぶつかってしまうからです。


次へ: プレハブ — オブジェクトのまとまりを使い回し、何千ものコピーを描画します。