new-unity-project について
Unity ゲームの構想を、実行可能でバージョン管理されたプロジェクトに進めるためのガイド付きスキルです。質問、Editor のバックグラウンド導入、プロジェクトやパッケージの設定、ビジュアル基盤、専門スキルへの引き継ぎを調整します。
主な機能
- 01構想と対象プラットフォームの段階的な決定
- 02Unity Editor のバックグラウンド導入
- 03URP プロジェクトとバージョン管理の設定
- 04パッケージ選定と導入のガイド
- 05ビジュアル基盤と収益化作業の引き継ぎ
活用シーン
- 01ゲームの構想から Unity プロジェクトを開始
- 02対象プラットフォームに応じた Editor モジュールの選択
- 03パッケージとバージョン管理の設定
- 04ゲームプレイ開発前のビジュアル調整
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ unity-technologies/ skills --skill new-unity-projectインストール後、Claude Code で/new-unity-projectを入力して読み込まれたか確認します。
詳細
新しい Unity プロジェクト
アイデアから、実行可能でバージョン管理された Unity プロジェクトまでを導くフローです。このスキルが担うのはフロー、つまり質問、その順序、質問中に時間のかかるインストールをバックグラウンドで実行すること、そして引き継ぎです。コマンドをあらためて説明することは意図的に避け、実際の作業はほかのスキルに委ねます。
委譲先(実際のコマンドはこちらを参照してください。独自に作り直さないでください):
unity-cli— CLI のインストール、認証/ライセンス、Editor のインストール、プロジェクトの作成、ソース管理、プロジェクトを開く操作。このフローの基盤となるのは、「ゼロから新しいプロジェクトをブートストラップする」ワークフローです。unity-package-management— Pipeline のpackageコマンドを使ったパッケージのインストール(代替手段として C# スクリプト)、およびジャンル/プラットフォーム/収益化方法に応じたパッケージの選択。urp-postprocessing、ui、2d-pixel-perfect— ビジュアルの基本設定(ステップ 6):ポストプロセッシングボリュームの設定、HUD フレームワークの選択、2D のピクセルパーフェクト設定。implement-in-app-purchases、levelplay-unity-integration、build-live-game— 収益化/バックエンドの統合(最後に呼び出します)。
一度に進めるのは 1 ステップずつです。 現在のステップの質問だけを尋ね、次に進む前にユーザーの回答を待ってください。プラットフォームと収益化方法の回答によってインストール内容が変わるため、最初にすべてを尋ねたり、内容が決まる前にプロジェクトのひな型を作成したりしないでください。
ステップ 1 の前に:委譲先のスキルが読み込まれているか確認する
クライアントが一覧表示するスキルの中に unity-cli、unity-package-management、urp-postprocessing、ui があるか確認してください。最初の 2 つには、このフローで委譲するコマンドが含まれています。ステップ 6 では、最後の 2 つが必須とされています。このスキルしか読み込まれていないクライアントには、ほかのスキルはありません。
いずれかが不足している場合は、どのスキルが不足しているかと、そのスキルが何をするものかをユーザーに伝えてください。開始前に Unity スキルをインストールするか提案し、ユーザーの許可なくインストールしないでください。インストールするとエージェントの設定が変更されるためです。
- Claude Code で、4 つすべてがインストールされていない場合:
unity setup claude --format jsonを実行すると、すべてを含む Unity プラグインがインストールされます。すでにインストール済みのスキルがあると重複します。古い CLI ではunity setupが使えないため、その場合は次の方法を使ってください。新しくインストールしたスキルは次のセッション、または/reload-pluginsの実行後に読み込まれます。それまでは、報告されたskillsPathからスキルを読み込んでください。 - それ以外の場合(スキルが一部だけインストールされている場合も含む): ユーザー自身のターミナルで
npx skills add Unity-Technologies/skills -gを実行するよう依頼してください。Node.js が必要です。プロンプトに従って、不足しているスキルとクライアントをユーザーが選択します。スキルの配置先はプロンプトで選択するため、こちらでは実行しないでください。クライアントが参照するスキルフォルダーにそのコマンドが書き込まない場合は、github.com/Unity-Technologies/skills のskillsフォルダーから、不足している各スキルのフォルダーをコピーするようユーザーに伝えてください。
新しくインストールしたスキルは、クライアントを再起動するまで読み込まれないことがあります。一覧に表示されない場合は、インストーラーでの配置先をユーザーに尋ね、そこから SKILL.md を読み込んでください。
必須スキルが 2 つ不足していても、作業を止めないでください。ユーザーがそのスキルなしで進めることを希望する場合は、その項目についてステップ 6 の独自のガイダンスを使って続行してください。詳しいガイダンスを省略したことがわかるよう、最終報告では不足しているスキル名を伝えてください。残りの 2 つには独自に推測してはならないコマンドが含まれています。unity skill show を実行すれば、unity-cli をインストールせずにその内容を表示できます。unity-package-management がない場合、ステップ 5 は実行できません。そのため、ステップ 2 で Editor のインストールを始める前にその旨を伝え、ユーザーに判断してもらってください。
フロー — そして、並行処理できる箇所
- コンセプト — 何を作るのかを決めます。
- プラットフォームと収益化 — プラットフォームが決まったらすぐに、バックグラウンドでエディターのインストールを開始します(数分かかります)。その間も会話を続けます。
- (合流) エディターとプラットフォームモジュールのインストールが完了します。
- プロジェクトとソース管理 — 2D/3Dに合ったURPテンプレートから作成し、gitを初期化します。
- パッケージ — エディターが開いたら
package addコマンドでインストールし、開いていなければC#スクリプトを使います。 - ビジュアルの初期設定 — ポストプロセス、カメラ、品質レベル、UIスタック、レンダーパイプラインに適したシェーダーを設定し、最初のフレームが手つかずのテンプレートのように見えないようにします。
- 保存と最初のコミット。
- 収益化/バックエンドを引き継ぎます。
ガイド付きのフローをそのままの手順書より選ぶ理由は、数分かかるエディターのインストールを、ユーザーがコンセプトに関する質問に答える時間と並行して進められるため、セットアップが瞬時に感じられることです。
ステップ1 — コンセプト
クライアントに複数選択式の質問ツールがある場合は、それを使って質問します(Claude CodeではAskUserQuestion、Copilot CLIではask_user、VS CodeではaskQuestions)。ユーザーがすばやく選べるようにしつつ、自由回答も受け付けます。ツールがない場合は、通常のテキストで質問します。次の点を確認してください。
- ジャンル/コアループ — プラットフォーマー、見下ろし型シューティング、パズル、放置系、RPG、レース、カード、タワーディフェンス、シミュレーション、ハイパーカジュアル、一人称視点など。
- 次元とビジュアル — 2Dか3Dか、アートスタイル(ピクセルアート、ローポリ、スタイライズド、リアル、UIのみ)。
- ゲームプレイ — 「プレイヤーが瞬間ごとに何をするのか」を一文で表したもの。
- 規模 — 1画面のプロトタイプか、複数シーンのゲームか、シングルプレイヤーかマルチプレイヤーか。
プロジェクト名も決めます。2~4行のプロジェクト概要を書き、読み上げて確認します。この概要をもとに、テンプレート(ステップ4)、パッケージ(ステップ5)、ビジュアルの初期設定(ステップ6)を決めます。ユーザーが挙げた配色や雰囲気を表す言葉、またビジュアルがピクセルアートかどうかを記録してください。
ステップ2 — プラットフォームと収益化を決めて、インストールを開始
インストール内容に影響するため、次の2つを決めます。
- 対象プラットフォーム(複数選択):デスクトップ(Win/macOS/Linux)、モバイル(iOS/Android)、WebGL、コンソール。これらはエディターのモジュール(ステップ3)に対応し、モバイル/WebGLではパッケージを絞り込む理由になります。
- 収益化:なし/プレミアム/アプリ内課金/広告/組み合わせ。この選択で決まるのは、ステップ8で呼び出す引き継ぎ用スキルだけです。今は統合しないでください。
使用するエディターバージョンを確認します(デフォルト:最新のLTS。LTS、Tech、ベータ版の違いについてはunity-cliを参照してください)。間違ったバージョンをインストールしないよう、インストールを開始する前に、今確認してください。
次に、前提条件を確認し、作業を続けている間に実行できるよう、バックグラウンドタスクとしてエディターのインストールを開始します。正確な構文、プラットフォームごとのモジュール名、認証/ライセンスの設定については、unity-cliスキルを参照してください。
unity --version
unity auth status --format json # if signed out: unity auth login
unity license status --format json # if none active: unity license activate
# Start in the BACKGROUND, then go straight back to the conversation. Module names per platform
# (android / ios / webgl / …) are in the unity-cli skill.
unity install lts --module <platform-modules> --yes --accept-eula
そのインストールはバックグラウンドタスクとして実行してください(完了するまで待たないでください)。ほかに質問がなければ、そのまま待っていても問題ありません。並行処理の効果があるのは、会話と重ねて進められる場合だけです。
ステップ3 — 合流:エディターの準備完了
プロジェクトを作成する前に、バックグラウンドでのインストールが完了したことを確認します。
unity editors --installed --format json
失敗した場合は、エラーを提示して(unity-cliのトラブルシューティングを参照してください)、そこで停止します。エディターがなければ、その後の作業は何も進められません。
ステップ 4 — プロジェクトとソース管理の作成
unity-cli の「Bootstrap a new project from scratch」ワークフローに厳密に従ってください。
- Editor が提示する実際のテンプレート ID を一覧表示し(
unity templates list --type core)、2D/3D だけでなく、レンダーパイプラインに基づいて選択してください。ID を推測しないでください。デフォルトでは URP を選びます。 3D にはcom.unity.template.urp-blank(「Universal 3D」)、2D にはcom.unity.template.universal-2d(「Universal 2D」)を選びます。com.unity.template.3d/com.unity.template.2dは Built-in Render Pipeline のテンプレートです。Unity 6.5 で非推奨となり、6.7 で削除されるため、ユーザーが Built-in を明示的に希望した場合にのみ選択してください。選択したものが JSON のrenderPipelineフィールドと一致することを確認してください(現行リリースでは universal-2d の値は空なので、このテンプレートは ID で照合します)。 unity projects create "<Name>" --path <dir> --editor-version <v> --template <id>で作成します。- ソース管理を設定します。どれを使うかユーザーに確認し、決めつけないでください。 Git(GitHub/GitLab。アセットの多いゲームでは
--git-lfsを追加)、または Unity Version Control(--vcs uvcs。大容量のバイナリアセットをネイティブに処理できるため、LFS は不要)、あるいはローカルのみのgit init+ Unity の.gitignoreから選びます。unity projects create --vcs … --git-token-from-stdin --no-initial-commitを使うと、トークンを標準入力から渡して一度に公開できます。パッケージと.metaファイルが揃う前に CLI が空のプロジェクトをコミットしないよう、--no-initial-commitを指定してください。最初の正式なコミット/チェックインはステップ 7 で行います。正確なフラグについてはunity-cliワークフローを参照してください。
ステップ 5 — パッケージ
概要に基づいて具体的なパッケージリストを作成し、unity-package-management スキルを使ってインストールします(manifest.json は絶対に手作業で編集しないでください)。Editor を開き、準備が整って com.unity.pipeline
(ステップ 6 でインストールします)が利用可能になったら、そのスキルの package add コマンドを使います。ステップ 6 で Editor を開くため、初回起動前にパッケージをインストールする必要がある場合は、代わりにスキルの C# インストーラースクリプトを使用してください(-quit の注意点に従ってください)。ジャンル/プラットフォーム/収益化からパッケージを選ぶ方法は、そのスキルを読んでください。
テンプレートにはレンダーパイプラインがすでに含まれています。Built-in テンプレートのプロジェクトに com.unity.render-pipelines.universal を追加してはいけません(URP アセットが割り当てられず、マテリアルがピンク色になります)。逆の場合も同様です。インストール前に最終的なリストをユーザーに読み上げ、インストール後に manifest.json を確認してください。
ステップ 6 — ビジュアルの基礎設定
新しいテンプレートは正しくレンダリングされますが、トーンマッピングがなく、品質設定も初期状態のままで、色も単調です。そのままにしておくと、エージェントが OnGUI を使い、シェーダー名を推測するようになり、白っぽいマテリアルやマゼンタ色のマテリアルが発生します。ゲームプレイの作業に入る前に、この最低限の設定を適用してください。
まず、Editor を開く前に unity pipeline install --project-path "<project-path>" を実行してください。 Editor 内で C# を実行する場合も、下記の unity command capture screenshot を使う場合も、プロジェクトに com.unity.pipeline パッケージが必要です。プロジェクト作成時にこのパッケージをデフォルトで追加するようになる前の CLI では、プロジェクトにパッケージがありません(新しい CLI ではすでに追加されているため、このインストールを実行しても変更はありません)。また、ステップ 5 でも追加されません。このステップでは、-batchmode -executeMethod を付けて Editor のバイナリを起動し、パッケージをインストールしますが、その処理ではパッケージに触れないためです。プロジェクトを開く前にインストールするのが推奨される順序です。インストールにより Packages/manifest.json が更新され、Unity はプロジェクトの読み込み時にこれを読み取ります。すでに開いているプロジェクトに対して実行すると、書き込みが PIPELINE_MANIFEST_WRITE_FAILED で失敗する場合があります(Editor を閉じてから再実行するようユーザーに伝えてください)。または、書き込みは成功しても、開いている Editor はウィンドウにフォーカスが戻るまでパッケージを読み込みません。後者の場合、unity status は STATUS_PIPELINE_LOAD_PENDING を報告します。Editor のウィンドウに切り替えるようユーザーに伝えてください。
このパッケージがないと、以下の処理はすべて接続に失敗します。unity-cli が説明する Safe Mode の失敗と同じように見えますが、原因は異なります。
その後、unity open "<project-path>"(Step 7 でも必要です)を実行し、unity status
でエディターの準備完了が報告されるまで待ってから、以下の各項目を C# を実行して適用します。これらのコマンドと構文は unity-cli が管理します。ここで独自に導き出さないでください。
エディターの準備が整ったら、スキルの中から unity-pipeline を探してください。これは Pipeline パッケージ独自のガイドであり、パッケージフォルダーから読み込むクライアントはありません。見つからない場合は、今すぐ SKILL.md を読んでください。パッケージ内の .claude/skills/unity-pipeline/ にあります。プロジェクトにパッケージが埋め込まれている場合は Packages/com.unity.pipeline/、そうでない場合は Library/PackageCache/com.unity.pipeline@* フォルダーにあります。末尾の文字列はバージョンではなくハッシュであることが多いため、正確な名前は Library/PackageCache を一覧表示して確認してください。
後のセッションでクライアントに読み込ませるには、unity skill install <client> --local でコピーを配置できます。ただし、プロジェクトスコープを持つクライアントに限ります(該当するクライアントは unity skill install --list で確認できます。Claude Desktop にはありません)。これにより、隣に unity-cli のプロジェクト用コピーも書き込まれます。unity-cli スキルは一度実行することを推奨していますが、ここではユーザーから依頼があるまで待ち、open の後にプロジェクトフォルダーから実行してください。Unity プラグインがインストールされた Claude Code では、プラグインにすでに unity-cli が含まれているため、ここまでは行いません。その場合は、ユーザーの許可を得て、代わりに unity-pipeline フォルダーをプロジェクトの .claude/skills/ にコピーしてください。コピーを配置できない場合は、セッションごとにパッケージ内のコピーを再度読んでください。
項目 1、2、5、6 は、Step 4 のデフォルトである URP テンプレートを前提としています。 ユーザーが Built-in を明示的に選択した場合は、記載どおりには実行しないでください。UniversalAdditionalCameraData、Light2D、urp-postprocessing ボリュームフレームワーク、およびすべての Universal Render Pipeline/* シェーダーは、Built-in には存在しない URP の型であるため、生成された C# はコンパイルできません。Built-in では、項目 3 と 4 は記載どおり適用できます。ポストプロセスにはレガシーの Post Processing Stack を使用し、シェーダー名は Standard / Unlit/Color です。ユーザーが Built-in を希望しているため、migrate-birp-to-urp は使わないでください。
- ポストプロセス。 トーンマッピング(ACES)、低めのブルーム(強度 0.5~1、しきい値 0.9)、控えめなビネット(≈ 0.25)を適用したグローバルボリュームを設定し、メインカメラの
UniversalAdditionalCameraDataでrenderPostProcessing = trueにします。必須サブスキル:urp-postprocessing— このスキルのコードテンプレートはボリュームを作成し、HDR とボリュームレイヤーマスクを確認します。ロードされていない場合は、これらの値を使ってボリュームを作成し、HDR とレイヤーマスクを自分で確認してください。 - カメラとライト。 2D → 正射投影にし、ブリーフのパレットから単色の背景色を設定します。テンプレートシーンに
Light2Dがない場合は、Global タイプのLight2Dをシーンに追加します(Sprite-Lit シェーダーはライトがないと黒く表示されます)。3D → 透視投影にし、テンプレートのディレクショナルライトとスカイボックスを維持して、メインライトのシャドウを有効にします。 - 品質ティア。 まず
QualitySettings.namesを読み取ります。ティア名はテンプレートごとに異なります。次にQualitySettings.SetQualityLevelで、主なターゲットに合ったものを選択します。デスクトップでは最も高いティア、モバイル/WebGL では最も低いティアを選びます。カラー空間は Linear のままにし、Input System はテンプレートの設定を維持します。 - UI スタック。 HUD とメニューには uGUI Canvas + TextMeshPro または UI Toolkit を使用します。
OnGUIは絶対に使用しないでください。 必須サブスキル:uiはプロジェクトに合わせてどちらを使うか選択します。ロードされていない場合は、ブリーフに基づいてどちらかを選び、最終レポートで選択したものとその理由を伝えてください。 - マテリアルとシェーダー。 URP では
Universal Render Pipeline/Lit、…/Unlit、…/2D/Sprite-Lit-Default、または…/2D/Sprite-Unlit-Defaultを使用します。URP ではStandardとUnlit/Colorはピンク色や色あせた表示になります。Shader.FindよりもGraphicsSettings.currentRenderPipeline.defaultMaterial/.default2DMaterialを優先し、Shader.Findがnullを返した場合はエラーとして扱います。defaultRenderPipelineではなくcurrentRenderPipelineを使用してください。品質ティアには独自のパイプラインアセットが設定されることがあり、上記の項目 3 でティアを設定したためです。 - ピクセルアートのみ。 スプライトには Point フィルターモードを設定し、Pixel Perfect Camera を使用します。
2d-pixel-perfectを参照してください。ロードされていない場合は、この 2 つを自分で設定し、「Before Step 1」に記載されたインストール方法を最終レポートに記載してください。
シーンを保存し、次の両方を確認します。unity logs は使わないでください。 これは CLI 自身のログを読み取るもので、Editor のログではありません。そのため、シーンの状態にかかわらず問題がないと報告されます。
- Editor 側でレンダーパイプラインやシェーダーのエラーがないこと。
unity-cliを通じて Editor コンソールを読むか、Editor.logを直接読み取ってください。プラットフォームごとのパスは、そのスキルの「Recovering from Safe Mode」セクションに記載されています。 unity command capture screenshot --output baseline.pngの結果が、平坦なグレーではなく、ライティングとトーンマッピングが適用された表示になっていること。
ステップ 7 — 保存して最初のコミット
プロジェクトはステップ 6 ですでに開いているため、.meta ファイルが存在します。ステップ 4 で設定した VCS を使って、最初のコミットを作成します。
unity open "<project-path>" # only if not already open; for headless/CI use the
# "Import & save headlessly" method in unity-package-management
- Git(GitHub/GitLab/ローカル):
すべてのcd "<project-path>" git add -A git status # Library/ Temp/ obj/ Build/ must NOT be staged git commit -m "Initial Unity project: <Name>".csとアセットは、それぞれの.metaと一緒にコミットする必要があります。 - Unity Version Control(UVCS): UVCS クライアント/ワークスペース(ステップ 4 で作成)からチェックインします。
gitを使う手順はありません。生成フォルダーは引き続き ignore ルールで除外されます。
いずれのコミットの前にも、ステップ 6 でスキルをプロジェクトにミラーリングした場合(Claude Code 用の .claude/skills/ など)は、それらを含めるか除外するかをユーザーに確認してください。
ステップ 4 で --no-initial-commit を指定せずに --vcs で公開した場合、CLI はすでに空のプロジェクトの初期コミットを作成しています。コミットを重複させず、ここでは追加のコミットを作成してください。
ステップ 8 — 引き継ぎ
ステップ 2 の収益化方式に基づいて、実際の統合に対応するスキルを呼び出します。
- IAP → implement-in-app-purchases
- 広告 → levelplay-unity-integration
- アカウント/クラウドセーブ/エコノミー/リモート設定/リーダーボード → build-live-game
対応するスキルが読み込まれていない場合は、記憶を頼りに統合するのではなく、「ステップ 1 の前」にあるインストール手順を次のステップとして提示します。
プロジェクトのパス、Editor のバージョン、レンダーパイプラインとテンプレート、インストール済みパッケージ、適用したビジュアルベースライン、不足していたスキル、次のステップを報告します。
対象範囲 — このスキルで行わないこと
- ゲームプレイの足場づくりは行いません。 実行可能で、各種設定が連携したビジュアルの土台を備えるプロジェクトを作成するところまでが対象です。実際のゲーム(シーン、コントローラー、アート)の制作は次の会話で行います。そこで
unity-cliMCP サーバーと Package Manager を使い、Editor と連携して作業してください。ジャンルを問わず使える汎用的な骨組みは、使い捨てのモック用プリミティブになりがちです。そのため、このスキルでは意図的にクリーンな出発点を用意するところで止めます。ビジュアルベースライン(ステップ 6)はコンテンツではなく設定です。 - コマンドリファレンスではありません。 構文については
unity-cli/unity-package-managementを参照してください。
チェックリスト
- ステップ 1 の前に委任先のスキル(
unity-cli、unity-package-management、urp-postprocessing、ui)を確認した。不足しているものがあればインストールを案内したか、最終報告で明記した - コンセプト概要をまとめ、確認した(ジャンル、ルック、ゲームプレイ、スコープ、名前)
- プラットフォームと収益化方式を記録し、Editor のバージョンを選択した
- Editor とプラットフォームモジュールをインストールした(ステップ 2 の間にバックグラウンドで開始)
- 明示的に Built-in を指定された場合を除き、URP テンプレート(
urp-blank/universal-2d)からプロジェクトを作成した。Unity 用.gitignoreを使って git を初期化した -
package add(または初回起動前にスキルの C# スクリプト)でパッケージをインストールした。manifest.jsonを確認し、テンプレートにレンダーパイプラインのパッケージを追加していない - Editor の準備ができたら、パッケージフォルダーから
unity-pipelineを読み込んだ。あるいはユーザーの同意を得てプロジェクトにコピーした - ビジュアルベースラインを適用した:グローバル Volume(トーンマッピング、ブルーム、ビネット)とカメラのポストプロセッシングを有効にした。対象に合わせて品質ティアを設定し、UI スタックを選択した(
OnGUIは使用しない)。URP のシェーダー名を確認し、スクリーンショットを確認した - プロジェクトを開いて保存し、
.metaファイルを作成した。初回コミットを行い、Library/を除外した - 該当する場合、収益化/バックエンドのスキルに引き継いだ
よくある間違い
- 質問している間にバックグラウンドで進めず、Editor のインストール完了を待ってしまう。
- バックグラウンドインストールを始める前にバージョンを確認せず、誤った Editor をインストールする。
- 質問を最初にすべて尋ねる。プラットフォームや収益化方式の回答によって、必要なモジュールとパッケージが変わります。
- パッケージコマンドまたはスキルのスクリプトを使わず、
manifest.jsonを手作業で編集する(unity-package-managementを参照)。 - 必須のサブスキルが読み込まれていないのに、ユーザーに伝えたりインストールを案内したりせず、記憶を頼りにその作業を行う。
Library//Temp//obj//Build/をコミットする、または.metaファイルなしでスクリプトをコミットする。- Editor モジュールが不足している。モバイル向けには
android/ios、WebGL にはwebglが必要です。 - 名前が一致するという理由で
com.unity.template.2d/.3dを選ぶ。これらは Built-in パイプライン用のテンプレートです。universal-2d/urp-blankを使ってください。 - ビジュアルベースラインを省略してテンプレートの単調なデフォルト設定のまま進め、その後 URP で
OnGUIを使って HUD を作り、Shader.Find("Standard")を使ってマテリアルを作成する。