表示テーマ
Cameraと画面出力
ゲームCameraとSceneView Camera
GameViewはScene内の有効なCameraで描画します。SceneViewは制作中に操作する視点です。SceneViewで見えるからといって、ゲームCameraが同じ場所を見ているとは限りません。
3DはPerspectiveCamera、2DはOrthographicCameraを使用します。3Dを平行投影にする場合はPerspectiveCameraの投影方式をOrthographicへ変更します。
投影と表示範囲
- NearClip/FarClip:描画する距離の範囲です。
- FovY:透視投影の縦画角です。単位は度です。
- OrthographicSize:3D平行投影で写す縦範囲の半分です。
- Enabled/IsMain/Priority:有効状態とCameraの選択・出力順に使います。
- CullingMask:表示するRendererのLayerを選びます。
NearClipを極端に小さくし、FarClipを極端に大きくすると深度精度が悪くなります。Sceneの実際の大きさに合わせて指定してください。
左右で違う物体を描く
- Cameraを2つ作り、両方を有効にします。
- 左CameraのViewportを
X=0, Y=0, 幅=0.5, 高さ=1にします。 - 右Cameraを
X=0.5, Y=0, 幅=0.5, 高さ=1にします。 - 左だけに出すRendererと右だけに出すRendererで、表示レイヤーを分けます。
- 左CameraのCullingMaskは左のLayerだけ、右Cameraは右のLayerだけにします。
確認結果:各Cameraは自分のLayerに属するRendererだけを描きます。Skyboxだけが見える場合、Camera自体は描画していて、対象のLayer・位置・クリップ範囲が合っていない可能性があります。
RendererのSubMesh内に別のMaterialを設定しても、CameraのLayer選別とは別です。描画Layerと衝突Layerも異なります。
RenderTextureを貼る
- ProjectでRenderTextureを作成し、Inspectorで幅・高さを設定して保存します。
- 撮影用Cameraの「出力テクスチャ」にそのAssetを設定します。
- 映像を貼るPlaneなどのRendererを作ります。
- Rendererの個別Material設定で、ベースカラーテクスチャへRenderTextureを設定します。
- モニターの見え方を確認します。最初はMetallicを0にし、照明の影響が強い場合はUnlitのMaterialで切り分けます。
撮影Cameraが自分の出力を貼ったPlaneも撮ると、自己参照になる場合があります。CullingMaskでモニターのLayerを撮影対象から外してください。
Cameraごとの効果
Cameraのポストプロセス設定には露出・色補正・RenderPassesがあります。反射とAOはそれぞれ独立した有効設定を確認します。複数Cameraでは、どのCameraを編集しているかを先に確認してください。
SceneViewへの効果はRenderPassesのSceneView出力設定にも依存します。GameViewとSceneViewのチェックを個別Passへ設定する方式ではありません。
追従と揺れ
CameraControllerで追従対象、オフセット、補間速度、注視先と操作機器を設定します。CameraShakeは揺れの強度・継続時間を制御します。CameraのTransformを別のScriptから同時に書くと処理が競合するため、制御元を揃えます。