unity-camera について
unity-camera は、Scene View カメラと Game Camera を操作する Unity スキルモジュールです。カメラの作成やプロパティ設定、構図調整、カリング、正投影切り替え、画面撮影に対応します。
主な機能
- 01Scene View の構図とフォーカス調整
- 02Game Camera の作成と一覧表示
- 03カメラプロパティの取得と編集
- 04カリングマスクと投影方式の設定
- 05Game Camera の画面撮影
- 06Scene View の画面撮影
活用シーン
- 01Scene View でオブジェクトに構図を合わせる
- 02カメラの FOV やクリップ面を設定
- 03カメラ画面またはエディタービューを撮影
MCP 対応
入力にはスキルの説明がありますが、MCP クライアントへの機能公開方法は記載されていません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-cameraインストール後、Claude Code で/unity-cameraを入力して読み込まれたか確認します。
詳細
このモジュールのスキルを呼び出す前に: 名前や説明からパラメーターを推測してスキルを呼び出そうとしている場合は、いったん停止してください。まずこのファイルを読むか、
GET /skills/recommend?includeSchema=trueでスキーマを取得してください。recommend/schema からパラメーター定義をすでに取得している場合は、そのまま dryRun に進んでかまいません。
トリガー
- Scene View の構図調整
- カメラの作成や調整
- FOV やクリッピングプレーンの調整
- Scene View の構図調整、カメラの作成や調整、FOV やクリッピングプレーンの変更
カメラスキル
Scene View カメラとゲームカメラ(作成、トランスフォーム、プロパティ、スクリーンショット、カリング、正投影の切り替え)を制御します。
動作モード
- 承認(デフォルト):変更を伴うスキル(
camera_set_transform、camera_create、camera_set_properties、camera_set_culling_mask、camera_screenshot、camera_sceneview_screenshot、camera_set_orthographic、camera_align_view_to_object、camera_look_at)にはユーザーの許可が必要です。許可すると、サーバー側で1回実行され、結果が返されます。 - 自動/バイパス:これらのスキルは直接実行されます。
- クエリスキル(
camera_get_info、camera_get_properties、camera_list)はSkillMode.SemiAutoです。許可なしで、3つのモードすべてで実行されます。 - このモジュールには、削除/PlayMode/再読み込み/高リスクのスキルはありません(NeverInSemi はありません)。
ガードレール
次のことはしないでください(よくある誤り):
camera_move/camera_rotateは存在しません → Scene View にはcamera_set_transformを、ゲームカメラにはgameobject_set_transformを使用してくださいcamera_set_fovは存在しません →fieldOfViewパラメーターを指定してcamera_set_propertiesを使用してくださいcamera_*スキルは異なる2種類のカメラを制御します。camera_set_transform/camera_look_at/camera_align_view_to_objectは Scene View カメラを制御し、camera_create/camera_set_properties/camera_screenshotはゲームカメラを制御しますcamera_deleteは存在しません → カメラの GameObject にgameobject_deleteを使用してください
振り分け:
- Cinemachine の仮想カメラには
cinemachineモジュールを使用してください - ゲームカメラのコンポーネントプロパティには
camera_set_properties/camera_get_properties(このモジュール)を使用してください - スクリーンショットには3つの方法があります。
scene_screenshot(scene モジュール)はゲームビューの最終合成画像(すべてのカメラと UI を含み、Play モードでは実行時のライブフレーム)を取得します。camera_screenshot(このモジュール)は単一のゲームカメラによるオフスクリーンレンダリングを取得します。camera_sceneview_screenshot(このモジュール)はエディターの Scene View(開発者のビューポート。グリッド/ギズモを含む)を取得します
スキル
camera_align_view_to_object
Scene View カメラを、オブジェクトを見る向きに合わせます。 パラメーター:
name(string、任意):対象の GameObject 名。instanceId(int、任意):対象の GameObject インスタンス ID。path(string、任意):対象の GameObject の階層パス。
camera_get_info
エディターの Scene View ビューポートカメラの位置と回転を取得します。これは開発者のビューポートであり、シーン内の Camera コンポーネントではありません。そのため、対象パラメーターは必要ありません。ゲームカメラの状態を確認するには camera_get_properties を使用してください(カメラを探すには camera_list を使用)。camera_create でカメラを作成した直後に、そのトランスフォームを確認したい場合、camera_get_info には表示されません。
パラメーター: なし。
camera_set_transform
ピボット(視点の中心となるワールド座標。目の位置ではありません)、回転、サイズを指定して Scene View カメラを設定します。 パラメーター:
posX、posY、posZ(float):ピボット。視点の中心となるワールド座標で、目の位置ではありません。rotX、rotY、rotZ(float):回転(オイラー角)。size(float、任意):Scene View のサイズ(ズーム)(デフォルトは 5)。instant(bool、任意):true:即時に適用して読み戻します。false:アニメーションで適用します(デフォルトは true)。
戻り値: { success, message, pivot, rotation, size, orthographic }。さらに instant=true の場合は cameraPosition(目の位置)、instant=false の場合は animating: true が返されます。
camera_look_at
Scene View カメラをワールド空間の点にフォーカスします。即座に適用されます。 パラメーター:
x、y、z(float):ターゲットの点。targetNameまたは GameObject の検索には対応していません。オブジェクトにフォーカスするには、camera_align_view_to_objectを使用してください。
戻り値: { success, pivot, rotation, size }。
camera_create
新しい Game Camera を作成します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| name | string | いいえ | "New Camera" | 新しいカメラ GameObject の名前 |
| x | float | いいえ | 0 | 位置 X |
| y | float | いいえ | 1 | 位置 Y |
| z | float | いいえ | -10 | 位置 Z |
| addAudioListener | bool | いいえ | false | AudioListener コンポーネントも追加するかどうか |
戻り値: { success, name, instanceId }
camera_get_properties
Game Camera のプロパティを取得します(name/instanceId/path に対応)。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| name | string | いいえ | null | カメラ GameObject の名前 |
| instanceId | int | いいえ | 0 | カメラ GameObject の Instance ID |
| path | string | いいえ | null | カメラ GameObject の Hierarchy パス |
戻り値: { success, name, fieldOfView, nearClipPlane, farClipPlane, orthographic, orthographicSize, depth, cullingMask, clearFlags, backgroundColor, rect }
camera_set_properties
Game Camera のプロパティを設定します(FOV、クリップ面、クリアフラグ、背景色、深度)。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| name | string | いいえ | null | カメラ GameObject の名前 |
| instanceId | int | いいえ | 0 | カメラ GameObject の Instance ID |
| path | string | いいえ | null | カメラ GameObject の Hierarchy パス |
| fieldOfView | float? | いいえ | null | カメラの視野角 |
| nearClipPlane | float? | いいえ | null | ニアクリップ面までの距離 |
| farClipPlane | float? | いいえ | null | ファークリップ面までの距離 |
| depth | float? | いいえ | null | カメラのレンダリング深度 |
| clearFlags | string | いいえ | null | クリアフラグ:Skybox、Color、SolidColor、Depth、Nothing。Color と SolidColor は、内部では同じ CameraClearFlags 値を指す2つの名前です。そのため、どちらも受け付けられ、レスポンスでは常に Color として返されます。書き込みが無視されたと解釈しないでください |
| bgR | float? | いいえ | null | 背景色の赤成分(0-1) |
| bgG | float? | いいえ | null | 背景色の緑成分(0-1) |
| bgB | float? | いいえ | null | 背景色の青成分(0-1) |
| bgA | float? | いいえ | null | 背景色のアルファ値(0-1) |
省略した bg* チャンネルは、カメラの現在の値が維持されるため、アルファ値だけを設定することもできます。
戻り値: { success, name, applied, fieldOfView, nearClipPlane, farClipPlane, orthographic, orthographicSize, depth, cullingMask, clearFlags, backgroundColor, rect } — レスポンスには書き込み後のカメラの状態が含まれ、applied には実際に変更されたパラメーターが、渡したとおりの名前で列挙されます(背景色のチャンネルは backgroundColor にまとめられず、bgR、bgG、bgB、bgA として個別に表示されます)。そのため、applied に含まれないパラメーターは指定されていません。このレスポンスが確認手段となるため、2回目の camera_get_properties 呼び出しは不要です。解析できない clearFlags が指定された場合は、何も適用される前に SEMANTIC_INVALID と validValues を伴って呼び出し全体が拒否されます。そのため、同じ呼び出しに含まれる数値パラメーターが一部だけ書き込まれることはありません。
camera_set_culling_mask
レイヤー名(カンマ区切り)でゲームカメラのカリングマスクを設定します。
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| layerNames | string | Yes | - | カンマ区切りのレイヤー名 |
| name | string | No | null | カメラのGameObject名 |
| instanceId | int | No | 0 | カメラのGameObjectのインスタンスID |
| path | string | No | null | カメラのGameObjectの階層パス |
戻り値: { success, cullingMask, layers } — layers には、結果のマスクに含まれるレイヤー名が一覧表示されます。
camera_screenshot
ゲームカメラのスクリーンショットをファイルに保存します。
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| savePath | string | No | "Assets/screenshot.png" | スクリーンショットの保存先ファイルパス |
| width | int | No | 1920 | スクリーンショットの幅(ピクセル) |
| height | int | No | 1080 | スクリーンショットの高さ(ピクセル) |
| name | string | No | null | カメラのGameObject名 |
| instanceId | int | No | 0 | カメラのGameObjectのインスタンスID |
| path | string | No | null | カメラのGameObjectの階層パス |
| returnImage | bool | No | false | ファイルシステムにアクセスできないクライアント向けに、レスポンスでPNGをbase64(imageBase64)としても返します |
| maxDimension | int | No | 1280 | returnImage=true の場合のみ使用されます。返される画像(保存ファイルではありません)を縮小し、長辺をこの値以下にします。256~4096の範囲に制限されます |
戻り値: { success, path, width, height }。returnImage=true の場合は、さらに { imageBase64, imageWidth, imageHeight, imageBytes } が返されます。base64のペイロードが8MBを超える場合、スキルは maxDimension を小さくするよう求めるエラーを返します。path のファイルは引き続き保存されます。
camera_sceneview_screenshot
エディターのシーンビュー(開発者が編集に使用するビューポート。カメラに映らないオブジェクトを含むシーン全体を見渡せます)をキャプチャします。scene_screenshot(ゲームビュー/プレイヤーカメラ)や camera_screenshot(1台のゲームカメラ)とは異なります。デフォルトでは、グリッド/ギズモ/選択状態を含むシーンビュー全体をキャプチャします(画面上の表示を読み取ります)。エディタービルドで内部APIが使用できない場合は、クリーンなオフスクリーンレンダリングに自動でフォールバックします。オーバーレイをキャプチャするには、シーンビューウィンドウを開いて表示しておく必要があります。
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| filename | string | No | "sceneview.png" | ファイル名のみ(パス区切り文字なし)。Assets/Screenshots/ に保存されます |
| includeOverlays | bool | No | true | true = グリッド/ギズモ/選択状態を含むシーンビュー全体(未対応の場合はクリーンなレンダリングにフォールバック)。false = クリーンなオフスクリーンシーンレンダリングのみ |
| returnImage | bool | No | false | ファイルシステムにアクセスできないクライアント向けに、レスポンスでPNGをbase64(imageBase64)としても返します |
| maxDimension | int | No | 1280 | returnImage=true の場合のみ使用されます。返される画像(保存ファイルではありません)を縮小し、長辺をこの値以下にします。256~4096の範囲に制限されます |
戻り値: { success, path, width, height, mode, note } — mode は "screen_with_overlays" または "offscreen_clean" です。returnImage=true の場合は、さらに { imageBase64, imageWidth, imageHeight, imageBytes } が返されます。base64のペイロードが8MBを超える場合、スキルは maxDimension を小さくするよう求めるエラーを返します。path のファイルは引き続き保存されます。
returnImageの使用ヒント: ファイルを読み取れるローカルエージェント(ローカルのUnity Editorで動作するClaude Codeなど)は、通常 returnImage を省略し、path にあるPNGを読み取ることをおすすめします。トークンの節約になります。Unityプロジェクトのファイルシステムにアクセスできないリモート/MCPクライアントでは、returnImage=true を使用してください。
camera_set_orthographic
ゲームカメラを正投影モードと透視投影モードの間で切り替えます。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| orthographic | bool | はい | - | 正投影の場合は True、透視投影の場合は false |
| orthographicSize | float? | いいえ | null | 正投影サイズ(正投影モードの場合のみ適用) |
| name | string | いいえ | null | カメラの GameObject の名前 |
| instanceId | int | いいえ | 0 | カメラの GameObject のインスタンス ID |
| path | string | いいえ | null | カメラの GameObject の階層パス |
戻り値: { success, orthographic, orthographicSize }
camera_list
シーン内のすべてのカメラを一覧表示します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|
戻り値: { count, cameras: [{ name, instanceId, path, depth, orthographic, enabled }] }
正確なシグネチャ
正確な名前、パラメーター、デフォルト値、戻り値は、このファイルではなく GET /skills/schema または unity_skills.get_skill_schema() で定義されています。