ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Unity の Camera コンポーネント
Unity の Camera は、シーンを画面に描画する「目」の役割を担うコンポーネントです。新規シーンには「Main Camera」が 1 つ配置されており、Tag が MainCamera になっています。スクリプトから Camera.main で参照できる便利なやつです。

主要パラメータ一覧
| 項目 | 説明 |
|---|---|
| Clear Flags | 毎フレームのクリア方法(Skybox / Solid Color / Depth only / Don't Clear) |
| Background | Solid Color 時の塗り色 |
| Culling Mask | 描画する Layer を選択。UI 専用カメラ等で使う |
| Projection | Perspective(遠近感) / Orthographic(平行投影) |
| Field of View | Perspective の画角(縦方向の度数、既定 60) |
| Size | Orthographic の表示半高さ(ワールド単位) |
| Clipping Planes (Near/Far) | 描画距離。Near 0.3、Far 1000 が既定 |
| Viewport Rect | 画面のどの矩形に描くか(0〜1 正規化)。分割画面に |
| Depth | 複数カメラの描画順(小→大の順で重ねる) |
| Rendering Path | Forward / Deferred 等(パイプライン依存) |
| Target Texture | RenderTexture に描画(ミニマップ・ポータル等) |
| HDR / MSAA / Allow Dynamic Resolution | レンダリング品質 |
Perspective と Orthographic
| Projection | 特徴 | 典型用途 |
|---|---|---|
| Perspective | 遠くは小さく見える(人間の目に近い) | 3D アクション / FPS / 一般的なゲーム |
| Orthographic | 遠近感なし。すべて同じスケール | 2D ゲーム / RTS / 等角投影 / UI |
Field of View の感覚値
| FoV (度) | 用途 |
|---|---|
| 30〜45 | 狙撃・スコープ |
| 60〜75 | 一般 3rd Person / 落ち着いた画 |
| 75〜90 | ★ FPS の標準(広め) |
| 100〜110 | 動きの激しい FPS、VR 自由視点 |
| 120 以上 | 魚眼風 / 演出 |
Clipping Planes の注意
Near を 0.3 と既定にしてあるのは、Z バッファの精度が Near と Far の比率で決まるためです。Near を 0.01 まで下げて Far を 10000 にすると Z ファイティング(点滅)が起きます:
// ❌ NG: 比率が大きすぎる
camera.nearClipPlane = 0.01f;
camera.farClipPlane = 10000f;
// → ratio = 1,000,000 → Z ファイティング
// ✅ OK: 比率は 10000〜100000 程度に抑える
camera.nearClipPlane = 0.3f;
camera.farClipPlane = 1000f;
Viewport Rect で分割画面
// 2 人プレイの上下分割
playerOneCamera.rect = new Rect(0, 0.5f, 1, 0.5f); // 上半分
playerTwoCamera.rect = new Rect(0, 0, 1, 0.5f); // 下半分
// 左右分割
playerOneCamera.rect = new Rect(0, 0, 0.5f, 1);
playerTwoCamera.rect = new Rect(0.5f, 0, 0.5f, 1);
// ミニマップ(右上の小窓)
miniMap.rect = new Rect(0.75f, 0.75f, 0.25f, 0.25f);
miniMap.depth = playerOneCamera.depth + 1; // 重ねる
複数カメラと Depth
UI 専用カメラやミニマップなど、複数のカメラを使うときは Depth が描画順を決めます。値が大きいカメラが手前に描画されます。重ねる場合は奥のカメラの Clear Flags を Solid Color、手前を Depth only にするのが基本構成。
Cinemachine(カメラ制御のデファクト)
Unity 公式の Cinemachine パッケージは、追従カメラ / 視点切替 / カットシーン / 障害物回避 / 手ブレ風効果をコード書かずに実現できる定番ツールです。新規プロジェクトは基本これを採用。
Window → Package Manager → Cinemachine → Install
→ GameObject → Cinemachine → Virtual Camera
主要 Virtual Camera タイプ:
- CinemachineVirtualCamera : 単体カメラ。Follow / LookAt 設定
- CinemachineFreeLook : 3 段階の高さで自由視点(3rd Person)
- CinemachineBlendListCamera : 複数カメラのブレンド遷移
- CinemachineClearShot : 障害物が無い角度を自動選択
- CinemachineDollyTrack + DollyCart : レール上を動かす(映画的カット)
主要 Extension:
- CinemachineCollider : 障害物に当たらないよう自動回避
- CinemachineImpulse : 爆発などの揺れ
- CinemachineConfiner : カメラを領域内に閉じ込める
スクリプトでカメラ制御
using UnityEngine;
public class FollowCamera : MonoBehaviour
{
public Transform target;
public float distance = 5f;
public float height = 2f;
public float smooth = 5f;
void LateUpdate() // 物理 / Update の後で動かす(カクつき防止)
{
if (!target) return;
Vector3 desired = target.position - target.forward * distance + Vector3.up * height;
transform.position = Vector3.Lerp(transform.position, desired, Time.deltaTime * smooth);
transform.LookAt(target.position + Vector3.up * 1.5f);
}
}
// ワールド ↔ スクリーン座標の変換
Camera cam = Camera.main;
Vector3 screen = cam.WorldToScreenPoint(player.position);
Ray ray = cam.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit)) { /* クリック対象 */ }
URP / HDRP の追加機能
| 機能 | 用途 |
|---|---|
| Camera Stack(URP) | Base + Overlay 構成。UI カメラを重ねる現代手法 |
| Volume + Post-Process | Bloom / Depth of Field / Color Adjustments など被写界深度等のポスト処理 |
| Camera Anti-aliasing | FXAA / SMAA / TAA |
| Renderer Features | Outline / Decal などをパイプラインに追加 |
| Physical Camera(HDRP) | 焦点距離 / センサーサイズ / 絞り等の実写的設定 |
典型的なハマりどころ
| 症状 | 原因 | 対処 |
|---|---|---|
| 真っ黒 / Skybox が映らない | Clear Flags が Don't Clear | Skybox に戻す |
| UI だけ消える | Culling Mask が UI Layer を除外 | UI チェック |
| カメラがカクつく | Update で動かしている | LateUpdate に |
| 遠景がチラつく | Near / Far 比が大きい | Near を上げる |
| FoV を変えると酔う | VR / FPS で広すぎる | 60〜80 度で再調整 |
| Camera.main が null | MainCamera Tag が未設定 | Tag を MainCamera に |
FAQ
Q: 2D ゲームで Orthographic Size をどう決める?
A: Size = 画面縦のワールド単位 / 2。100 ppu のスプライトでフル HD 縦 1080 をワールド 10 で見せたいなら Size = 5。
Q: Cinemachine と素のカメラ制御、どちらが推奨?
A: 新規は Cinemachine を強く推奨。Damping / 障害物回避 / 切替が容易で、コード量が激減します。
Q: マルチカメラとシングルカメラ、どちらが軽い?
A: シングルが軽量。マルチカメラはレンダリングコストが線形に増えるので、UI Camera Stack 等で必要なときのみ。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
- オブジェクトの追加方法
- 地形
- キャラクター
- カメラ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- UE5のレベルブループリントでキャラクターをスポーンさせる方法 2026-06-13 13:26:37
- UE5のEvent Tickノードの使い方|毎フレーム処理とDelta Seconds 2026-06-13 13:26:37
- Reactのよくあるエラーと対処まとめ|環境構築・npm関連 2026-06-13 13:26:36
- UE5のビューポートの使い方|視点操作・ビューモード・投影の基本 2026-06-13 13:26:36
- UE5でAI Move ToがBlockedで失敗する原因と対処方法|NavMesh確認 2026-06-13 13:26:36
- UE5のWorld Compositionとは|サブレベルによる大規模ワールドと非推奨化 2026-06-13 13:26:35
- C++のコンパイルと実行方法|g++の使い方とオプション 2026-06-13 13:26:35
- .protoのgo_packageオプションとは|Goコード生成時のパッケージ指定 2026-06-13 13:26:34
- C++の開発環境構築|コンパイラとIDEの選び方・Hello World 2026-06-13 13:26:34
- gRPCクイックスタート|.proto定義からサーバ・クライアント実装まで 2026-06-13 13:26:33
- C++の関数まとめ|標準入出力(printf・cout・cin)と関数の基本 2026-06-13 13:26:33
- C#・Visual Studioのよくあるエラーと対処まとめ 2026-06-13 13:26:33
- UE5でSet Input Mode UI Onlyを解除する方法|Game Onlyに戻す 2026-06-13 13:26:32
- UE5のアウトライナーとは|アクターの一覧・整理・親子付け 2026-06-13 13:26:32
- UE5エディタの自動保存の頻度を変更する方法|Auto Save設定 2026-06-13 13:26:31
コメントを削除してもよろしいでしょうか?