Camera は,世界をキャプチャしてプレイヤーに表示するデバイスです。 カメラをカスタマイズして調整することで,独自性の高い表現力を発揮することができます。 シーン内では,カメラを好きな数だけ追加できます。 レンダリングの順序や,スクリーン上の位置,又は,スクリーンの一部だけを表示する,など設定することも可能です。
プロパティ: | 特徴: |
---|---|
Clear Flags | 画面のどの部分をクリアするかを決定します。 複数のカメラを使用して,異なるゲーム要素を描画する際に便利です。 |
Background | カメラによってレンダリングされるオブジェクトのレイヤーを含めたり,取り除いたりします。 インスペクタのオブジェクトにレイヤーを割り当てます。 |
Culling Mask | カメラによってレンダリングされるオブジェクトのレイヤーを含めたり,取り除いたりします。 インスペクタのオブジェクトにレイヤーを割り当てます。 |
Projection | 景色をシミュレートするカメラの機能を切り替えます。 |
Perspective | カメラがそのままの景色でオブジェクトをレンダリングします。 |
Orthographic | カメラが景色感なしで,オブジェクトを均一にレンダリングします。 |
Size (Orthographic に設定した場合) | Orthographic に設定した場合のカメラのビューポイントのサイズ。 |
Field of view (Perspective 選択時) | ローカルな Y 軸に沿って測定された,カメラのビュー角度の幅。(単位: °) |
Clipping Planes | レンダリングを開始および停止するカメラからの距離。 |
Near | 描画が行われるカメラに対して最も近い点。 |
Far | 描画が行われるカメラに対して最も遠い点。 |
Normalized View Port Rect | 画面座標内で画面上でこのカメラ ビューが描画される場所を示す 4 つ値 (値 0–1)。 |
X | カメラ ビューが描画される開始の水平位置。 |
Y | カメラ ビューが描画される開始の垂直位置。 |
W (Width) | 画面上のカメラの出力の幅。 |
H (Height) | 画面上のカメラの出力の高さ。 |
Depth | 描画順でのカメラの位置。 大きい値のカメラが,小さい値のカメラの上に描画されます。 |
Rendering Path | カメラが使用するレンダリング方法を定義するオプション。 |
Use Player Settings | このカメラは,プレイヤー設定でいずれの Rendering Path されても使用します。 |
Vertex Lit | このカメラでレンダリングされたオブジェクトはすべて,Vertex-Lit オブジェクトとしてレンダリングされます。 |
Forward | すべてのオブジェクトがマテリアルごとに 1 つのパスでレンダリングされます。 |
Deferred Lighting (Unity Pro のみ) | ライティングなしで,すべてのオブジェクトが 1 回描画され,すべてのオブジェクトのライティングがレンダリング キューの最後で一緒にレンダリングされます。 |
Target Texture (Unity Pro のみ) | カメラ ビューのRender Texture への参照。 この参照を作成すると,この画面に対して,このカメラをレンダリングする機能が無効になります。 |
HDR | HDR カメラでハイダイナミックレンジ レンダリングをオンにします。 |
カメラは,プレイヤーにゲームを表示するのに重要です。 想像できるあらゆる種類の効果が得られるよう,カメラをカスタマイズ,記述またはパレンディングできます。 パズル ゲームの場合,パズル全体のビューに対して,カメラを静止に維持できます。 FPSシューティングの場合,カメラをプレイヤーのキャラクターに親子関係を設定して,キャラクター目線に配置することができます。 レース ゲームの場合,カメラがプレイヤーの後を追跡させることができます。
複数のカメラを作成し,それぞれに異なる「Depth」を割り当てることができます。 低いDepthから高いDepthにカメラが描画されます。 言い換えると,Depthが 2 のカメラは,Depthが 1 のカメラの上に描画されます。Normalized View Port Rectangleプロパティの値を調整して,画面上のカメラのビューのサイズ変更や配置を行うことができます。 これにより,ミサイル カムや,マップ ビュー,バック ミラーのような複数の小さいビューを作成できます。
Unity は,異なるレンダリング パスをサポートしています。 ゲームの内容や対象のプラットフォーム / ハードウェアに応じて,どのパスを使用するかを選ぶ必要があります。 レンダリング パスによって,主に光や影に影響する機能およびパフォーマンス特性が異なります。 プロジェクトに使用されるレンダリング パスはプレイヤー設定で選択されます。 さらに,各カメラに対して,レンダリング パスを無効にできます。
レンダリング パスの詳細については,Rendering Path のページ を参照してください。
各カメラは,そのビューをレンダリングする際に,色と深さに関する情報を記憶します。 描画されない画面の部分は空で,デフォルトではスカイボックスが表示されます。 複数のカメラを使用する場合,それぞれのカメラがバッファに色と深さに関する情報を記憶し,各カメラがレンダリングを行う際に,より多くのデータを蓄積します。 シーンで任意のカメラがそのビューをレンダリングするため,Clear Flagsを設定して,バッファ情報の異なる集合をクリアできます。 これは,次の 4 つのオプションを選択することで行うことができます。
これはデフォルトの設定です。 画面の空白の部分には,現在のカメラのスカイボックスが表示されます。 現在のカメラにスカイボックスが設定されない場合,Render Settings ( で表示) で選択したスカイボックスに戻ります。 これにより,「Background Color」に戻ります。 そうでない場合は,Skybox コンポーネント をカメラに追加できます。 スカイボックスを新規作成したい場合は,このガイド を参照してください。
画面の空白の部分には,現在のカメラの「Background Color」が表示されます。
環境内でプレイヤーの銃を切り取らずに描画したい場合,1 台のカメラに対してDepthを 0 に設定して,環境を描画し,もう 1 台のカメラのDepthを 1 に設定して,武器のみを描画させます。 武器を表示するカメラのClear Flagsは,Depth onlyに設定する必要があります。 これにより,環境の映像表示が画面に維持されますが,各オブジェクトが 3D 空間に存在する場所に関する情報はすべて破棄されます。 銃が描画されると,銃がどの程度壁に近いかに関係なく,不透明な部分が描画されたものをすべて完全に覆います。
「銃は,カメラの深さバッファが描画前にクリアされた後に,最後に描画されます」
このモードでは,色および深さバッファのいずれもクリアされません。 その結果,各フレームが次のフレーム上に描画され,シミのように見える効果が得られます。 これは通常ゲームでは使用されず,カスタムのシェーダーと併用される場合に最適です。
NearとFar Clip Plane プロパティは,カメラのビューの開始および終了場所を決定します。 カメラの方向に対して垂直に面が配置され,その位置から測定されます。Near planeは,レンダリングされる最も近い場所で,Far planeは最も遠い場所になります。
また,切り取り面は,バッファの精度が画面上にどのように分配されるかを決定します。 一般に,精度を高めるには,Near planeをできる限り遠くに移動する移動させる必要があります。
近くまたは遠くの切り取り面は,カメラのビューのフィールドで定義された面と共に,一般的にカメラの 錐台 と知られているものを記述します。 Unity では,オブジェクトをレンダリングする際に,この錐台外にあるオブジェクトは表示されません。 これは,錐台カリングと呼ばれます。 錐台カリングは,ゲーム内でオクルージョン カリングが使用されているか否かに関係なく発生します。
パフォーマンス上の理由から,より小さいオブジェクトを早めに間引きたい場合があるでしょう。 例えば,小さい岩や破片を大きい建物よりもより少ない距離で非表示にできます。 これを行うには,小さいオブジェクトを 別のレイヤー に置き,Camera.layerCullDistances スクリプト機能を使用して,レイヤーごとの間引き距離を設定できます。
「Culling Mask」は,レイヤーを使用してオブジェクトのグループを選択的にレンダリングするのに使用されます。レイヤーの使用法については,ここ を参照してください。
異なるレイヤーにユーザー インターフェースを配置し,UI レイヤー自体で個々のカメラでユーザー インターフェース自体をレンダリングするのが一般的です。
また,UI をその他のカメラ ビューの上に表示するには,Clear FlagsをDepth onlyに設定し,UI カメラの「Depth」をその他のカメラよりも高くする必要があります。
「Normalized Viewport Rectangles」は,現在のカメラ ビューが描画される画面の一定の部分を定義するためのものです。 画面の左下ににマップ ビューを,右上にミサイルチップ ビューを配置できます。 少し設計を行うだけで,「Viewport Rectangle」を使用して,独自の動作を作成できます。
「Normalized Viewport Rectangle」を使用して,2 プレイヤー用に 2 分割した画面効果を簡単に作成できます。 2 台のカメラを作成後,カメラの H 値を 0.5 に設定し,プレイヤー 1 の Y 値を 0.5 に,プレイヤー 2 の Y 値を 0 に変更します。これにより,プレイヤー 1 のカメラが画面の半分上から上部に表示され,プレイヤー 2 のカメラが下部で始まり,画面の半分で停止します。
カメラを「Orthographic」にすると,カメラ のビューからすべての景色が削除されます。 これはアイソメトリックまたは 2D ゲームの作成に便利です。
フォグは Orthographic カメラ モードで均一にレンダリングされるため,期待通りには表示されません。 理由については,コンポーネントリファレンスの Render Settings を参照してください。
この機能は,Unity Advance ライセンスでのみ使用できます。 カメラのビューを,別のオブジェクトに適用される Texture に配置します。 これにより,競技場のビデオ モニターや監視カメラ,反射などを簡単に作成できます。