9月6日の夕方に Unity Hub をダウンロードして、その夜のうちに Claude Code が Unity の中で船に操舵室を乗せ、追いかけるカメラを作りました。私が手で書いたコードは C# のファイル1本だけです。
Unity を触るのは今回が初めてでした。途中で調べ直さずに進んだ所も、止まった所も、時刻つきでそのまま残しています。読んだ人が同じ順番で再現できることを優先しました。

この記事で分かること
- Unity を入れて、青い海に赤い箱の船を置き、キーボードで動かすまでの実際の手順(2時間)
- Claude Code から Unity を操作する「Unity MCP」に、公式と非公式の2種類があること
- 公式 MCP の「無料」がどこまで本当か(カード登録の門と、その内側で何が動くか)
- 2026年9月の時点で、公式ドキュメントどおりに進めない箇所がどこにあるか
- Claude Code に日本語で2文頼んだら、Unity の中で何が起きたか
環境
- Windows 11、RTX 5090(VRAM 32GB)、RAM 64GB
- Unity Hub → Unity 6.6(6000.6.0f1。2026年8月31日公開の通常版。LTS ではありません)
- Visual Studio Community 2026(Unity Hub が一緒に入れました)
- Node.js v24.18.0(Claude Code を入れたときに入っていたもの)
- Claude Code v2.1.263、Unity 公式 MCP(AI Assistant パッケージ 2.19 プレビュー)

何を作ったか
青い平面の海の上に、赤い細長い箱の船が浮いています。W と S で前進・後進、A と D で旋回します。そこまでが第1段階で、手で作りました。
第2段階では Claude Code が、船の上に白い操舵室を乗せ、船の後ろ斜め上から追いかけるカメラを付けました。船が旋回すると、カメラも後ろに回り込みます。
(ここに再生中のゲーム画面のスクリーンショットを入れる:赤い船・白い操舵室・青い海)
Unity Hub とエディタ本体を入れる(17:55〜18:42)
Unity は2段構えです。まず「Unity Hub」という管理アプリを入れ、その中からエディタ本体を選んで入れます。unity.com の「Unity をダウンロード」を押すと Hub のインストーラ(UnityHubSetup.exe)が落ちてきます。
最初に戸惑ったのは、ダウンロードページが「Windows 検出済み」と表示しているのに、下に並ぶ手順の図が Mac 向け(.dmg、Applications フォルダ、Launchpad)だったことです。Windows では exe を実行するだけで、Applications に入れる操作はありません。

Hub にサインインすると「Unity CLI が利用可能になりました」というポップアップが出ました。AI エージェントがターミナルから Unity を操作するための新しいコマンドの案内です。初回起動の最初の画面で AI エージェント向けの案内が出るのが、2026年9月の空気です。今回は閉じて進みました。
Hub の「セットアップする」は、私が選ぶ前にエディタ本体のダウンロードを始めていました。入ったのは Unity 6.6(6000.6.0f1)です。あとで調べると、これは出てから6日しか経っていない通常版で、長期サポート版は 6.3 でした。経験者ならここで止めて 6.3 LTS に入れ替えます。私はそれを知らずに、そのまま進みました。 結果として、この記事の範囲では 6.6 で困ることはありませんでした。
エディタ本体は 18:37 には起動していました。ダウンロード開始から20分ほどです。

プロジェクトを作る
Hub の「新しいプロジェクト」を開くと、テンプレートが12種類並びます(Universal 2D、Universal 3D、High Definition 3D、VR、Mixed Reality など)。既定で選ばれている「Universal 3D」のまま、名前を ShipOnSea にして作りました。18:42 に空のシーンが開きました。

作成画面には「AI Assistant を使用」「Unity CLI を使用」というチェックボックスが最初から付いています。どちらも外したままにしました。

日本語化したら 2GB の別ソフトが降ってきた
メニューを日本語にしたかったので、Hub の「インストール」→ 歯車 → 「モジュールを加える」から言語パックの日本語を入れました。すると Visual Studio Installer が起動し、Visual Studio Community 2026(2.14GB)のインストールが始まりました。

「モジュールを加える」の画面で、Visual Studio に最初からチェックが入っていたためです。C# を書くためのエディタが PC に無いと Hub が判断すると、既定でオンになります。日本語パックを選んだつもりが、2GB の別ソフトも一緒に選んでいました。これは止めずに待ちました。C# のファイルを開くときに必要になるからです。18:51 に始まって、終わったのは 19:41 でした。
日本語化のもう1つの落とし穴は、エディタの Edit → Preferences に「Languages」という項目が無かったことです。この項目は、言語パックが入った状態でエディタを起動したときにだけ現れます。パックが入る前に探しても見つかりません。

再起動後、メニューバー(ファイル/編集/アセット/ゲームオブジェクト/コンポーネント/サービス/ウィンドウ/ヘルプ)とタブ(シーン/ゲーム/インスペクター/プロジェクト/コンソール)は日本語になりました。Hierarchy、Layout、Asset Store、Assets、Packages は英語のまま残りました。日本語化は部分的で、混在します。
海と船とカメラを置く
ここからは Unity の画面操作です。

海は、ゲームオブジェクト → 3D オブジェクト → 平面(Plane)で板を1枚出し、名前を Sea、スケールを X 20・Y 1・Z 20 にしました。Plane は1枚が 10m 四方なので、200m 四方の海になります。色は、プロジェクトで 作成 → レンダリング → マテリアル を作り、ベースマップの色を 1E5A8A(濃い青)にして、板にドラッグしました。
ここで一度「落とせない」と感じました。シーンの板の上にマテリアルを落としても、手応えのある表示が出ないためです。実際には適用されていて、Hierarchy で Sea を選び、インスペクターの Mesh Renderer → Materials を開くと「要素 0」に SeaMaterial が入っていました。確かめる場所はここです。

船は、3D オブジェクト → キューブ を出して、名前を Ship、位置を Y 0.5(箱の高さが1なので半分だけ海面から出す)、スケールを X 2・Y 1・Z 4 にしました。Z が船の前方向です。色は B23A3A(暗い赤)です。
カメラは Main Camera の位置を (0, 12, -18)、回転を X 30 にして、海を斜め上から見下ろす位置に固定しました。「ゲーム」タブに切り替えると、青い海の手前に赤い箱が映ります。

船を動かすスクリプト(手で書いた唯一のコード)
プロジェクトで 作成 → スクリプティング → MonoBehaviour スクリプト を作り、名前を ShipController にしました。この名前は中身の class 名と一致している必要があります。ダブルクリックすると Visual Studio が開くので、中身を全部消して次を貼り、保存します。
using UnityEngine;
using UnityEngine.InputSystem;
// 船を前進・後進・左右旋回させるスクリプト
// W / ↑ : 前進 S / ↓ : 後進(半分の速さ) A / ← : 左旋回 D / → : 右旋回
public class ShipController : MonoBehaviour
{
public float speed = 5f; // 前進の速さ(メートル/秒)
public float turnSpeed = 60f; // 旋回の速さ(度/秒)
void Update()
{
var kb = Keyboard.current;
if (kb == null) return; // キーボードが無い環境では何もしない
float forward = 0f;
if (kb.wKey.isPressed || kb.upArrowKey.isPressed) forward = 1f;
if (kb.sKey.isPressed || kb.downArrowKey.isPressed) forward = -0.5f;
float turn = 0f;
if (kb.aKey.isPressed || kb.leftArrowKey.isPressed) turn = -1f;
if (kb.dKey.isPressed || kb.rightArrowKey.isPressed) turn = 1f;
// 船の向いている方向へ進み、Y軸(上下の軸)まわりに回す
transform.Translate(Vector3.forward * forward * speed * Time.deltaTime);
transform.Rotate(0f, turn * turnSpeed * Time.deltaTime, 0f);
}
}
Update は毎フレーム呼ばれる関数です。キーボードの状態を見て、押されていれば船の向きに進め、Y 軸まわりに回します。Time.deltaTime を掛けているのは、画面の描画速度が変わっても動く速さが変わらないようにするためです。
Keyboard.current を使っているのには理由があります。Universal 3D テンプレートのプロジェクトは、設定ファイル(ProjectSettings.asset)の activeInputHandler が 1、つまり新しい Input System だけが有効です。ネット上の古い記事にある Input.GetAxis を貼ると、再生した瞬間にエラーになります。
Unity に戻り、プロジェクトの ShipController を Hierarchy の Ship の文字の上にドラッグして取り付け、再生ボタンを押し、ゲーム画面を1回クリックしてから W・A・S・D を押すと、赤い箱が動きました。19:59 です。
MCP とは何か(20:00〜)
MCP は Model Context Protocol の略で、AI が外部の道具を操作するための共通の約束事です。Anthropic が2024年11月に公開したオープンな規格で、Claude Code のほか、Cursor や OpenAI の Codex、Unity の公式ツールなどが対応しています。
仕組みは2者で成り立ちます。「MCP サーバー」は道具を持っている側で、たとえば「シーンの中身を読む」「箱を置く」「マテリアルを割り当てる」といった道具の一覧と使い方を決まった形式で公開します。「MCP クライアント」は AI 側で、Claude Code がこれにあたります。AI は会話の流れに応じて道具を呼び、結果を受け取って次の判断をします。
たとえるなら、AI にとっての USB-C です。MCP 以前は「Claude と Unity をつなぐ専用ケーブル」を道具ごとに作る必要がありました。共通の口ができたので、Unity 側が MCP サーバーを1つ用意すれば、Claude でも Cursor でも同じサーバーにつなげます。
第1段階では私がマウスで箱を置きました。第2段階では私が Claude Code に日本語で頼み、Claude Code が MCP の道具を呼んで同じ操作を Unity の中で実行します。「AI が Unity を触るための手」が MCP です。
Unity MCP には公式と非公式がある
その手には2種類あります。
| Unity 公式 MCP | OSS の mcp-unity | |
|---|---|---|
| 作り手 | Unity 社(AI Assistant パッケージの一部) | コミュニティ(MIT ライセンス) |
| 中継の仕組み | エディタ内の Unity Bridge + Unity 配布の relay | エディタ内の WebSocket サーバー + 同梱の Node.js サーバー |
| 必要なもの | Unity アカウント、Unity Cloud へのプロジェクト登録 | Node.js 18 以上 |
| Claude Code の設定 | Unity 側の画面から自動(のはず) | 手で書く |
| 保守 | Unity | 作者次第 |
一言でまとめると、公式は「門は厳しいが中は整っている」、OSS は「門は無いが自分で確かめながら進む」です。今回は公式を選び、途中で一度 OSS に切り替えると決め、最後に公式へ戻りました。その経緯が、この記事でいちばん役に立つ部分だと思います。

公式 MCP の「無料」はどこまで本当か(実測)
Unity の AI 機能ページには「MCP server is free」「will not consume Unity credits」と書いてあります。一方で、14日の無料試用という言葉もあります。どちらが本当かを、押した順に書きます。
Unity エディタのツールバーにある「AI」のドロップダウンを開くと「Install AI tools」というボタンがあります(日本語化しても、ここは英語のままです)。押すと規約への同意画面が出ます。内容は「AI Assistant は評価版だが商用利用してよい」「利用はクレジットで管理され、価格や条件は変わりうる」「利用データは収集・分析される」「生成物が第三者の権利を侵害しないかは利用者の責任」でした。
同意すると、こう出ました。「あなたの組織には AI を含むサブスクリプションがなく、アカウントに席もない。AI を使うには両方が必要」。「Manage subscription」を押すと Unity Cloud のダッシュボードが開き、「Start a free 14-day trial」から Checkout に進みます。
Checkout の画面は、試用は0円ですが、手順の3番目が Payment で、右下にこう書いてあります。「試用が終わると月 11.00 ドル(税別)の有料プランに自動で切り替わる。いつでも解約できる。表示される保留額は支払い方法確認のための一時的な与信で、請求ではない」。つまりカード登録が必須で、解約を忘れなければ無料、です。なお AI 機能ページには月10ドルとあり、Checkout の11ドルと食い違っていました。どちらが正しいかは分かりません。

私はここでカードを登録せず、OSS の mcp-unity に切り替えると決めました。 記事は個人サイト向けなので登録するなら個人事業のカードですが、放置すると課金される仕組みに、その日のうちに乗る理由がありませんでした。
ところが、OSS を入れる前にパッケージマネージャーを開くと、一覧に「Assistant 2.19(Pre)」が入っていました。「Install AI tools」を押した時点で、パッケージ自体は入っていたのです。そこで 編集 → プロジェクト設定 → AI → Unity MCP Server を開くと、Unity Bridge の Status は Running(緑)でした。サブスクも試用もカードも無しで、公式 MCP の橋は動いていました。

整理すると、こうです。「サブスクがない」という警告は、エディタ内の AI アシスタント(クレジットを使う機能)のものでした。MCP の橋には効いていません。「MCP サーバーは無料」は実測でも正しく、ただしそこへ辿り着く途中に、カード登録つきの試用へ誘導する画面が挟まっています。画面の流れに沿って進むと、「有料なのか」と引き返すか、カードを登録して14日後に11ドル引かれるかのどちらかになります。

この時点で、OSS はやめて公式に戻りました。
公式ドキュメントどおりに進めない一歩
Unity のドキュメント「Get started with Unity MCP」には、Unity MCP Server の設定画面に「Integrations」という欄があり、Claude Code の行の「Configure」を押せば自動で設定される、と書いてあります。
今回入った版(Assistant 2.19 プレビュー)には、その欄がありませんでした。「Other Connections」に「No other connections」と出るだけです。プレビュー版なので、ドキュメントと画面がずれています。
ドキュメントには手動の方法も載っていて、Unity が PC に置いた中継プログラム(Windows では %USERPROFILE%\.unity\relay\relay_win.exe)を、--mcp 付きで MCP クライアントに登録する、というものです。Claude Code 側の正規のコマンドで登録します。
まず中継プログラムがあることを確かめます。PowerShell で次を実行します。
dir "$env:USERPROFILE\.unity\relay"
私の環境では relay_win.exe(約100MB)が出ました。次に、Unity のプロジェクトのフォルダに移動してから登録します。登録は「どのフォルダで実行したか」に紐づくので、先に移動します(パスは Unity Hub のプロジェクト一覧に出ているものです)。
cd "C:\Users\hidek\Documents\ビジネス全般整理\50_開発\ShipOnSea"
claude mcp add unity-mcp -- "$env:USERPROFILE\.unity\relay\relay_win.exe" --mcp
claude mcp list
3つ目で unity-mcp: ...\relay_win.exe --mcp - ✔ Connected と出れば登録できています。設定はプロジェクトの中ではなく、ユーザーフォルダの .claude.json の、このプロジェクト専用の欄に書かれます。
公式の手順書どおりではあります。ただし、素人ができるかと言われれば、できません。本来の想定は Unity の画面のボタン1つで、そのボタンが無い。止まった先でターミナルを開いてコマンドを打つ、という手順は、経験者に聞かなければ辿り着けません。2026年9月の時点で、Unity 公式 MCP と Claude Code をつなぐ最後の一歩は、プレビュー版の欠けによって、画面の操作だけでは完了しません。 Unity 側が Configure ボタンを実装すれば消える種類の壁です。
つないだ直後に Unity が出す警告
Claude Code を起動して最初の依頼を打つと、Unity 側に「New MCP Connection」というウィンドウが出ます。赤い帯で「claude-code has connected. This application is unsigned or not recognized and may be dangerous!」と出て、許可する内容として「エディタのコマンド実行/シーンとゲームオブジェクトの変更/スクリプトの作成と編集/プロジェクト内の全ファイルへのアクセス」が並びます。

これは Unity が知らない第三者アプリ全般に出す定型の警告です。パスが自分の PC の claude.exe であることを確かめて Allow を押しました。Unity 側の設定画面に「claude-code claude.exe Accepted」が緑で出て、接続は完了です。
ちなみに、登録を忘れて Claude Code を起動した最初の1回は、Claude Code が「Unity MCP のツールがこのセッションに載っていない」と判断し、Unity のログファイル(Logs/Editor.log)を直接読んで代用しました。結果は正しかったのですが、目的の MCP 経由ではありません。返答の冒頭に「Called unity-mcp」と出るかどうかで見分けられます。

日本語で2文頼んだ結果
1文目はこれです。
Ship の上に、白い小さな箱を乗せて操舵室にして。Ship の子オブジェクトにして、名前は Bridge。船尾寄り(Z のマイナス側)に置いて、海面より上に出るようにして。終わったらシーンを保存して。
Claude Code は MCP の道具を11回呼び、Ship の子として Bridge を作り、白いマテリアルを新規に作って割り当て、シーンを保存しました。途中で「見た目を確認します」と、自分でエディタの画面を撮って確かめています。Ship のスケールが (2, 1, 4) なので子の座標が伸びることを計算して、甲板の上面にちょうど乗る位置に置いていました。所要は1分34秒です。
2文目はこれです。
Main Camera を、船を追いかけるカメラにして。船の後ろ斜め上から見下ろし、船が旋回したらカメラも後ろに回り込むようにして。新しいスクリプト FollowCamera.cs を作って Main Camera に付けて。ShipController.cs は触らないで。再生モードに入って船を動かし、カメラが追いかけることを確認してから、シーンを保存して。
Claude Code は FollowCamera.cs を新しく作って Main Camera に付け、再生モードに入り、Input System 経由で W と D を押した状態を自分で作って船を走らせ、旋回中と停止後のカメラ位置を数値で報告しました(開始 (0, 6, −12)、旋回中は外側に約4mふくらみ、停止後は誤差 0.00004 で真後ろ)。エディタが後ろに回っても再生が進むように一時的に変えた設定を、終了後に既定へ戻したことも申告しています。所要は5分7秒、エラー・警告は0件でした。

私は Unity の画面を触っていません。第1段階で手作業だった「箱を置く・色を付ける・保存する」が日本語1文になり、「スクリプトを書く・取り付ける・再生して確かめる」も1文になりました。
最後に git を入れた理由
締めに、Claude Code に「git init して最初のコミットを作って」と頼みました。git はファイルの変更履歴を残す仕組みで、今日の「船が動く・操舵室がある・カメラが追う」という正常な状態を写真として残しておけば、次に壊れてもここに戻れます。Unity の「元に戻す」はエディタを閉じると消えますが、git はファイルとして残ります。
このとき Claude Code は2つ確認を返してきました。「コミットの作者名をどうするか」と「Unity が生成した設定ファイルに Unity のアカウント名が入っているが、含めてよいか」です。前者は匿名の役割名(developer)にし、後者は「あとで検討」にしました。リポジトリを公開する前に決める必要があります。
この記録から、技術顧問として言えること
「AI で作れる」は本当でした。ただし、AI が作れるようになるまでの道に、AI では越えられない一歩がいくつかあります。 今回で言えば、Hub が勝手に選ぶ版、日本語化で降ってくる 2GB、カード登録へ誘導する画面、そしてドキュメントにあるはずのボタンが無いプレビュー版です。どれもコードの話ではなく、道具の「門」の話です。
門の前で止まるか、越えるかを決めるのは、その門が何なのかを知っている人がそばにいるかどうかです。今回は私が Cowork の Claude に聞きながら進みました。組織で同じことをやるなら、その役を誰が持つかを先に決めておくと、2時間で済むものが2週間になりません。
まとめ
- Unity の導入から船を動かすまでは約2時間でした。手で書いたコードは C# の1ファイルだけです
- Unity MCP には Unity 公式と OSS(mcp-unity)の2種類があり、できることは今回の範囲では大差ありません。違いは作り手と入口の条件です
- 公式 MCP の橋は、サブスク・試用・カード無しで動きました。ただし途中にカード登録つきの試用へ誘導する画面があり、14日後に月11ドルに自動で切り替わります
- 2026年9月時点のプレビュー版には「Configure」ボタンが無く、Claude Code との接続はターミナルでの手動登録が要ります。ここだけは画面の操作で完了しません
- つないだあとは、日本語の1文で操舵室が、もう1文で追従カメラができました。Claude Code は再生モードで自分で試験して結果を数値で報告します
「うちでも AI に作らせたいが、最初の門をどう越えるか分からない」という方は、無料の30分オンライン診断で状況をお伺いします。門の場所が分かれば、その先は1文で進みます。
この事例のような実装を、現場で動くまで一緒に進めたい方へ
AI×IoTの技術顧問として、月額契約で継続伴走しています。PoC設計・技術判断・組織設計・ベンダー管理・実装支援まで、現場で動くまで一緒に進めます。受託開発(請負)ではありません。
→ AI技術顧問サービスの詳細 / 無料30分オンライン診断 / 料金一覧





