カメラ
カメラのテクニック

複数のカメラを使用する

シーン作成とき Unity シーンにはカメラが一つだけ含まれていて、ほとんどの場合、それだけで十分です。ですが、シーン内に好きなだけカメラを持つこともできます。それらカメラのビューは下記で説明するように、さまざまな方法で組み合わせることができます。

カメラの切り替え

デフォルトでは、一つのカメラレンダーで画面全体をカバーします。つまり、一度に見えるカメラビューは一つだけです(見えているカメラが depth プロパティーの一番高い値を持っています)。スクリプトでカメラをオフにして他のカメラをオンにすることで、カメラから別のカメラへシーンビューの“カット”ができます。例えば、全体マップビューとファーストパーソンビューを切り替えるのに使います。

using UnityEngine;
using System.Collections;

public class ExampleScript : MonoBehaviour {
    public Camera firstPersonCamera;
    public Camera overheadCamera;

    public void ShowOverheadView() {
        firstPersonCamera.enabled = false;
        overheadCamera.enabled = true;
    }
    
    public void ShowFirstPersonView() {
        firstPersonCamera.enabled = true;
        overheadCamera.enabled = false;
    }
}

C# の例

var firstPersonCamera: Camera;
var overheadCamera: Camera;

function ShowOverheadView() {
    firstPersonCamera.enabled = false;
    overheadCamera.enabled = true;
}

function ShowFirstPersonView() {
    firstPersonCamera.enabled = true;
    overheadCamera.enabled = false;
}

Javascript の例

大枠のカメラビュー内で別のカメラをレンダリングする

通常(デフォルトセッティングでは)、少なくとも一つのカメラビューが画面全体をカバーしますが、画面内の一部のエリアで別のビューを表示するのも便利です。例えば、ドライビングゲーム内でバックミラーを表示する場合、ファーストパーソンビューの画面の隅に全体マップを表示する場合などです。Viewport Rect プロパティーを使用してコンピューター画面上のカメラサイズを設定することができます。

ビューポートの座標は画面に対して“正規化”されます。下と左のエッジは0.0座標、上と右のエッジは1.0座標になります。0.5の座標値は全体の半分です。ビューポートサイズに加えて、小さなビューのカメラの depth プロパティー値は背景カメラよりも高く設定すべきです。正確な値は重要ではありませんが、より高い depth 値を持つカメラは、低い depth 値のカメラの上にレンダリングされます。

カメラ
カメラのテクニック