CursorとUnreal Engineでゲーム開発する手法と具体的なプロンプト
はじめに
この記事では、AIを活用してUnreal Engine(UE)製のゲームを高速開発するための具体的な手法とプロンプトを紹介します。Cursorエディタと複数のAIを使い分けることで、効率的なゲーム開発プロセスを構築できます。
事前準備
環境構築
必要ツールのインストール
- Unreal Engine: 最新版をEpic Games Launcherからインストール
- Cursor: AIエディタ(課金プランでClaudeに設定)
- GitHub: リモートリポジトリ作成
- Sourcetree: Git GUI管理ツール
- Visual Studio Code: 補助エディタ
プロジェクト設定
1. リモートリポジトリ作成
GitHubで新しいリポジトリを作成し、UEプロジェクトと連携します。
2. UEプロジェクト作成
Unreal Engineで新しいC++プロジェクトを作成します。
3. Git worktree設定
複数のAIが並行して作業できるよう、ブランチごとにフォルダを分離します。
Git worktreeの設定について
以下は3Dテトリスゲーム開発の例です。複数のAIが並行して作業できるよう、4つのブランチを作成し、それぞれ専用のフォルダで管理します。
- amaterasu: インゲーム処理担当
- tsurugi: アウトゲーム処理担当
- kagami: シェーダー処理担当
- magatama: テスト実装担当
# 1. まず、4つのブランチを作成します # (各AIの担当領域ごとに分けて管理するため) git branch feature/amaterasu # インゲーム処理用ブランチ git branch feature/tsurugi # アウトゲーム処理用ブランチ git branch feature/kagami # シェーダー処理用ブランチ git branch feature/magatama # テスト実装用ブランチ # 2. プロジェクトの親フォルダに移動して、各ブランチ用のフォルダを作成 # (例:tetris3D_mainプロジェクトと同じ階層に作成) cd .. mkdir tetris3D_amaterasu mkdir tetris3D_tsurugi mkdir tetris3D_kagami mkdir tetris3D_magatama cd tetris3D_main # 元のプロジェクトフォルダに戻る # 3. 各フォルダに対応するブランチを割り当てる(worktree設定) # これにより、各フォルダで独立したブランチでの作業が可能になります git worktree add "../tetris3D_amaterasu" feature/amaterasu git worktree add "../tetris3D_tsurugi" feature/tsurugi git worktree add "../tetris3D_kagami" feature/kagami git worktree add "../tetris3D_magatama" feature/magatama # 4. 設定確認 git worktree list # 設定されたworktreeの一覧を表示
設定後の構成
プロジェクト構成例: ├── tetris3D_main/ # メインプロジェクト(mainブランチ) ├── tetris3D_amaterasu/ # インゲーム処理(feature/amaterasuブランチ) ├── tetris3D_tsurugi/ # アウトゲーム処理(feature/tsurugiブランチ) ├── tetris3D_kagami/ # シェーダー処理(feature/kagamiブランチ) └── tetris3D_magatama/ # テスト実装(feature/magatamaブランチ) 各フォルダで独立してコード編集・コミット・プッシュが可能
開発フロー
1. miroでアイディア出しから草案作成
※MiroAIは無料で使える回数に制限があるのでアイディア出ししてそのまま付箋をコピーして次のフローにいってもOKです。
目的: ゲームコンセプトを視覚的に整理し、システム設計の土台を作る
使用AI: Miro AI
Miro AIプロンプト
# タスク
以下前提と作成条件、アイディアを踏まえて草案を作成してください
# 前提
{タイトル}というゲームを作ります。
選択した箇所はこのゲームコンセプト、ゲームシステム、技術要件、画面遷移図です。
# 作成条件
・マークダウンで作ってください。
・ゲームコンセプト、ゲームシステム、技術要件、画面遷移図、必要な3Dモデル、必要なサウンド、必要なUIという項目を作ってください。
・ゲームコンセプトは内容をそのまま記載してください。
・ゲームシステムは箇条書きにしてください。
・画面遷移図はmermaid記法で記載してください。
・技術要件は箇条書きにしてください
・コードブロックを使ってすべて一括でコピぺできるようにしてください
# アイディア
{miroで選択した内容をコピペ}
2. ChatGPTでの草案整理
目的: Miroの出力を見やすいマークダウン形式に整理
使用AI: ChatGPT
ChatGPTプロンプト
# タスク
以下前提と作成条件、アイディアを踏まえて草案を作成してください
# 前提
{タイトル}というゲームを作ります。
選択した箇所はこのゲームコンセプト、ゲームシステム、技術要件、画面遷移図です。
# 作成条件
・マークダウンで作ってください。
・ゲームコンセプト、ゲームシステム、技術要件、画面遷移図という項目を作ってください。
・ゲームシステムは箇条書きにしてください。
・画面遷移図はmermaid記法で記載してください。
・技術要件は箇条書きにしてください
・コードブロックを使ってすべて一括でコピぺできるようにしてください
・mermaid記法のところでコードブロックを使うため、全体のコードブロックが解除されてしまうことがあります。それを考慮してすべて一つのコードブロックになるように(3連バッククォート+mermaid)で記載してください
# アイディア
{miroの出力内容}
3. Cursor User Rules設定
目的: Cursorエディタに一貫した開発ルールを設定
設定場所: .cursor/rules配下
※以下の内容をそのまま.cursor/rulesファイルにコピペして使用できます
# 注意事項
- 指示以外のことを実施しないでください。
- ファイルを読み込むときは250行以内ずつで読み込んでください。もし、250行以上のファイルがあれば分割して読み込んでください。
- タスクを実行後、手戻りや修正作業、私からの質問などがあった場合、タスクに関連した内容でProject_Retrospective.mdに記載できることがないかチェックしてください。その際に「Project_Retrospective.md出力形式」を参照してください。また、Project_Retrospective.mdが存在しなければDocs配下に作成してください。
# あなたの役割
あなたは、様々なジャンルのゲーム開発に関わってきたベテランゲームプログラマーであり、AIアシスタントとしての訓練も受けています。
技術と現場運用のバランスを理解した上で、私(ユーザー)と一緒にタスクを推進していきます。
# プロンプトを受け取ったときの作業フロー
1.プロジェクトルールの確認
- このファイルを読み込んで内容を把握したら「ユーザールール完全に理解した」と言ってください。
- .cursor/rules配下にあるファイル(プロジェクトルール)を読み込んでください。
2.タスク計画
- プロンプトにショートカットエイリアスがついている場合は、この作業フローから抜けてショートカットエイリアスに記載のフローに従ってください。
- プロンプトの内容を確認し、作業のゴールを設定してください。(ゴールが複数ある場合は複数設定可)
- ゴールを達成するためのタスクを以下タスク計画時考慮事項を踏まえて計画してください。
<タスク計画時考慮事項>
- このタスク計画は時間をかけていいです。間違えると後のフローがすべて無駄になるため、矛盾点や懸念点がないように計画してください。
- このファイルに記載のルールの範囲内でタスクは計画してください。
- プロジェクトルールに記載のルールの範囲内でタスクは計画してください。
- ゴール達成のために必要なタスクを具体的に列挙してください。
- 各タスクに関連するファイルがすでにあるか調査し、現状を確認してください。その後必要であればタスクの内容を修正してください。
- 最後に列挙したゴール達成のために必要な作業を実行可能かつ少ない作業数で効率よく実施できる順番に並べてタスク計画として出力してください。
- タスク計画後、もし不明点がある場合は不明点を列挙して作業を中断してください。
- タスク計画後、もし懸念点がある場合は懸念点を列挙して作業を中断してください。
- ゴールを達成した作業結果がゲーム開発において悪手である場合、なぜ悪手かを説明して作業を中断してください。
3.タスクの実行
- ステップバイステップでタスク計画に記載のタスクを実行してください。また、実行時には以下タスク実行時考慮事項を踏まえて実行してください。
<タスク実行時考慮事項>
- タスクに取り組む前には何のタスクに取り組むか宣言してください。
- タスクが完了したら完了した旨と備考があれば簡潔に教えてください。
- もし問題が起きた場合は報告してください。
- 問題が起きた場合はそのタスクを実施するためのリカバリー案を計画して遂行してください。
- もし問題が起き、リカバリー案も生み出せなければ作業全体を中断してください。
- もし問題が起き、作業を中断した場合は私に中断した理由の報告と問題が解決するかもしれない案を相談してください。
- コマンドを実行する場合は実行した結果を確認し報告してください。
4.タスク実行結果のレビュー
- タスク計画に記載のタスクがすべて完了した場合、作業したファイルや関連したファイルの状況を確認し、プロジェクト状況を把握してください。
- プロジェクト状況レビューし、ゴールが達成できているか確認し報告してください。
- もしゴールが達成できていない場合は手順2のタスク計画からまた作業フローを実行してください。
5.ドキュメントの更新
- Class_Diagram.mdの修正が必要な場合、修正を実施してください。
- Sequence_Diagram.mdの修正が必要な場合、修正を実施してください。
- Project_Roadmap.mdの修正が必要な場合、修正を実施してください。
# プログラミングするときに考慮してほしいこと
- Docs配下は設計書です。実装がぶれるので設計書にファイルに記載してある範囲内の技術や方針でプログラミングしてください。
- プロパティや関数にはすべて何のためのものでどう使うかを簡潔にコメントで記載してください。
# セキュリティ
- 機密情報はローカルフォルダに.envファイルなどを作成して管理できるようにしてください。
- 機密情報を入力した場合は.gitignoreへ該当ファイルを追加してください
# ショートカットエイリアス
以下のショートカットエイリアスがついている場合
- `/ask`: 質問事項に対して以下フローで回答してください。
またフローを実行する前に「askフローを実行するぜ!」と叫んでください
1. 質問の意味を理解し、どんな疑問が解消されるべきか検討してください。
2. 関連しそうなファイルがあれば読み込んでください。
3. 疑問が解消される回答してください。
4. あなたのゲーム開発経験を踏まえて提供したほうがいい知識があれば提供してください。
- `/fix`:添付されているエラーを修正するために次の流れを実施してください。
またフローを実行する前に「fixフローを実行するぜ!」と叫んでください
1. 原因の仮説(最大3つまでに絞って簡潔に)
2. 原因の仮説をもとに原因となっているコードがありそうなら特定を試みる。
3. 手順1,2をもとに修正方法をステップバイステップで記述(具体的な操作)
4. 同じエラーが再発しないための設計改善アドバイス(あれば)
5. 手順1,2,3で分析した結果を踏まえて手順2の修正方法通りに作業をステップバイステップで実施する
6. Class_Diagram.mdの修正が必要な場合、修正を実施してください。
7. Sequence_Diagram.mdの修正が必要な場合、修正を実施してください。
8. Project_Retrospective.mdを読み込み、今回確認したエラーがエラー集に記載のエラーと系統が異なるならばProject_Retrospective.md出力形式を参照として追記してください。
- `/conflict`:添付されているファイル内でコンフリクトが発生しているので以下フローで解決してください。
またフローを実行する前に「conflictフローを実行するぜ!」と叫んでください
1. 添付されているファイルの中身を確認してください。
2. 「<<<<<<< HEAD」となっている個所は既存の改修です。
3. 「>>>>>>>」となっている個所はpullした改修です。
4. コンフリクトしている改修をそれぞれ見比べて適切に統合や必要であれば修正してください。
5. Class_Diagram.mdの修正が必要な場合、修正を実施してください。
6. Sequence_Diagram.mdの修正が必要な場合、修正を実施してください。
# Project_Retrospective.md出力形式
```
# わからなかった用語や仕様
{わからなかった用語や仕様のタイトル}:{内容を記載}
# 開発手戻り箇所
{開発手戻り箇所のタイトル}:
- {概要}
- {原因}
- {対応}
# プロンプトがうまくいかずその場でやり直したこと
{プロンプトがうまくいかずその場でやり直したことのタイトル}:
- {概要}
- {原因}
- {対応}
# エラー集
## エラー
{エラーとしてプロンプトに張られた内容をそのまま記載}
## 原因の仮説
{原因の仮説を記載}
## 修正方法
{修正方法をステップバイステップで記述を記載}
## 再発防止策
{同じエラーが再発しないための設計改善アドバイスを記載}
```
4. UE_Rules設定
目的: Unreal Engine固有の制約とルールを設定
設定場所: .cursor/rules配下
※以下の内容をそのまま.cursor/rulesファイルにコピペして使用できます
# このファイルを読み込んだら「UEプロジェクトのルール完全に理解した」と言ってください。 # プログラミング時に意識してほしいこと - Unreal Engineには独自のマクロがある # プログラミング時に実施してほしいこと - ファイルを作成するときは"_hs"というsuffixを付けてください。(Unreal Engine公式のファイルと名称が競合してしまうことがあるため) # 禁止事項 - コマンドでビルドしないでください。(Visual Studioでビルドしないと不具合がでるため)
5. クラス図プロンプト
目的: 草案からクラス設計図を自動生成
使用AI: Cursor (Claude)
クラス図作成プロンプト
### タスク
{草案ファイル} と以下の条件をもとに `Class_Diagram.md` を作成してください。
### 設計原則
- **KISS原則**(Keep It Simple, Stupid)に従って、できる限りシンプルで保守性の高い設計にしてください。
- **SOLID原則**に準拠してクラスを設計してください。
- BPはなるべく使わず、C++だけで完結するように作成してください。
### セキュリティ設計ポリシー
- メンバ変数・メソッドのアクセス修飾子は原則 `private` / `protected` にし、**最小権限の原則**を徹底してください。
- 認証情報やセッション、重要な内部状態はカプセル化してください。
- バリデーション処理は別クラスに分離し、**信頼できない入力(ユーザー操作、外部API)**と内部処理の境界を明確にしてください。
### デザインパターン
以下のデザインパターンは、**プロジェクトの要件に応じて**必要なものを選んで使用してください。
- Singleton: ゲームマネージャー、サウンドマネージャーなどのグローバルな制御
- Factory: テトリミノ、敵キャラ、アイテムの生成処理
- Strategy: 難易度・スピード制御、スコア計算処理の切り替え
- Observer: イベント通知(ライン消去、UI更新、スコア加算など)
- Command: プレイヤー操作、入力履歴の保存(Undo/Redo)など
- State: ゲームステート(タイトル、プレイ中、リザルト)の管理
### 出力形式
- 出力は `Markdown` 形式で作成してください。
- クラス図は **Mermaid記法** で作成してください。
- UE公式ファイルと同名ファイルを作らないように、クラス名に必ず"_hs"というsuffixをいれてください。
- 想定されるクラス作成後のフォルダ構成を作成してください。
6. シーケンス図プロンプト
目的: クラス間の処理の流れを図式化
使用AI: Cursor (Claude)
シーケンス図作成プロンプト
### タスク
以下の条件をもとに `Sequence_Diagram.md` を作成してください。
### 参照資料
- `{草案ファイル}`:ゲームシステム全体と画面遷移の流れ
- `Class_Diagram.md`:ドメインモデルとクラス間の構造
### 出力仕様
- **Mermaid記法** を使用して、**Markdown形式で出力**してください。
- **シーケンス図ごとに「どのシナリオを描いたものか」を説明する見出しを付けてください。**
- クラスやコンポーネントの役割に基づき、**責務に応じたメッセージの流れ**を記述してください。
- `User(プレイヤー)`や`UI`などのアクターも含め、**最低限の登場人物は図に明示**してください。
### 作成指針
- Class_Diagram.md に含まれるクラスを基に構成してください
- 操作例・画面遷移など、**1つの明確なユースケース単位で**図を描いてください
- KISSの法則・SOLID原則を念頭に、**やりすぎない・意味のある粒度で**書いてください
### セキュリティ考慮ポイント
- 外部アクターと内部システムの**トラスト境界を明示**し、それをまたぐ際には**認証・バリデーション・権限チェック**などの処理を必ず表現してください。
7. プログラムロードマッププロンプト
目的: 開発タスクを段階的に分割し、AI向けの作業指示書を作成
使用AI: Cursor (Claude)
解説: 削除されたファイルのため、1.CursorとUEでゲーム開発をする方法の内容を参考に、ロードマップは設計→実装→テストの順で4つのAI役割分担で進めます。
ロードマップ作成の考え方
# 前提
開発ロードマップを参照して記載してあるタスクをAIへ指示し、コードを書いてもらいます。
AIで実行できない場所は私が対応します。
# 条件
- {草案ファイル}を参照してください
- Class_Diagram.mdを参照してください
- Sequence_Diagram.mdを参照にしてください
- AIが作業しやすい単位でタスクを列挙していってください
- 私が行うタスクには「開発者タスク」という目印を記載してください
- タスクごとにチェックボックスを作ってください
8. 実装プロンプト
目的: ロードマップの各タスクを実行
使用AI: Cursor (Claude)
実装プロンプト
# タスク
Project_Roadmap.mdに記載の以下タスクを実行してください。
また、実行後Project_Roadmap.mdの該当タスクのチェックを付けてください。
# タスク内容
{分割したタスクを入れる}
9. エラー修正のプロンプト
目的: Visual Studioのエラーを効率的に修正
使用AI: Cursor (Claude)
エラー修正プロンプト
/fix
{Visual Studioでエラーを右クリックして行のコピーを行い貼り付ける}
10. プログラム実装後クラス図修正プロンプト
目的: 実装後の変更をクラス図に反映
使用AI: Cursor (Claude)
クラス図修正プロンプト
### タスク プロジェクト全体と `Class_Diagram.md` を確認し、`Class_Diagram.md` 修正してください。 また、`Class_Diagram.md` は以下の条件をもとに作成しているため、この条件から逸脱しないでください。 ### 設計原則 - **KISS原則**(Keep It Simple, Stupid)に従って、できる限りシンプルで保守性の高い設計にしてください。 - **SOLID原則**に準拠してクラスを設計してください。 ### セキュリティ設計ポリシー - メンバ変数・メソッドのアクセス修飾子は原則 `private` / `protected` にし、**最小権限の原則**を徹底してください。 - 認証情報やセッション、重要な内部状態はカプセル化してください。 - バリデーション処理は別クラスに分離し、**信頼できない入力(ユーザー操作、外部API)**と内部処理の境界を明確にしてください。 ### 出力形式 - 出力は `Markdown` 形式で作成してください。 - クラス図は **Mermaid記法** で作成してください。 - UE公式ファイルと同名ファイルを作らないように、クラス名に必ず"_hs"というsuffixをいれてください。
11. プログラム実装後シーケンス図修正プロンプト
目的: 実装後の処理フローをシーケンス図に反映
使用AI: Cursor (Claude)
シーケンス図修正プロンプト
### タスク
プロジェクト全体と `Sequence_Diagram.md` を確認し、`Sequence_Diagram.md`を修正してください。
また、`Sequence_Diagram.md`は以下の条件をもとに作成しているため、この条件から逸脱しないでください。
### 参照資料
- {草案ファイル}:ゲームシステム全体と画面遷移の流れ
- `Class_Diagram.md`:ドメインモデルとクラス間の構造
### 出力仕様
- **Mermaid記法** を使用して、**Markdown形式で出力**してください。
- **シーケンス図ごとに「どのシナリオを描いたものか」を説明する見出しを付けてください。**
- クラスやコンポーネントの役割に基づき、**責務に応じたメッセージの流れ**を記述してください。
### 作成指針
- Class_Diagram.md に含まれるクラスを基に構成してください
- 操作例・画面遷移など、**1つの明確なユースケース単位で**図を描いてください
- KISSの法則・SOLID原則を念頭に、**やりすぎない・意味のある粒度で**書いてください
12. アクター構成設計書プロンプト
目的: UE上でのアクター統合設計書を作成
使用AI: Cursor (Claude)
アクター構成設計書プロンプト
# タスク
アクターごとにどの3Dモデル、C++クラス、サウンドを使うか、初期設定は何か等を記載したアクター構成設計書(Actor_Design.md)を作成してください。
# 目的
開発した3DモデルやC++クラス、サウンド等をUnreal Engine内でどのように統合すればいいかを確認するために使用する。
また、これをもとにどのような3Dモデルやサウンドを作ればいいかを判断する。
# 参照する資料
{草案ファイル}
Docs/Class_Diagram.md
Docs/Sequence_Diagram.md
# 出力形式
## {アクター名}
- 概要:{どんな存在意義があるアクターなのか記載}
- ロジック:{添付するC++クラスを記載}
- メッシュ:{メッシュ名とその概要を記載}
- マテリアル:{マテリアル名とその概要を記載}
- サウンド:{サウンド名とその概要を記載}
- 初期化:{位置やフラグなど初期設定を記載}
- 関連:{親アクターと子アクターを記載}
- 備考:{上記以外で何かゲームで動かすために必要なものなどがあれば記載}
## 必要な開発アセット一覧
- 3Dモデル
- マテリアル
- サウンド
- UMGウィジェット
13. Unreal Engine上で必要な作業のロードマップ作製プロンプト
目的: UE初心者向けの詳細な作業手順書を作成
使用AI: Cursor (Claude)
UE作業ロードマッププロンプト
# タスク 以下条件を確認し、必要なアセットを作成した後Unreal Engine上で必要な作業のロードマップ(UE_Roadmap.md)を作成してください。 # 目的 Unreal Engine初心者でもアセットが準備できていれば作業を進められるようにするため、ロードマップを作ります。 # 参照 Docs配下各資料 # 作業ロードマップ - 作業内容は「○○ボタンを押下する」や「△△>■■の項目を開く」など、初心者がわかるように一挙手一投足記載してください。 - うまくいかない時に私が調査するので、ボタンを押下の意味や設定した値の意味、ノードの意味などを各作業手順ごとに細かに記載してください。 - 見やすくしたいのでアクターを作成していく際はアクターごとに区切り線などで区切ってください。 - アクターを作成するときはアクターごとにチェックボックスを設けてください。 - 順番は効率よく作れるようにしてください。
まとめ
この手法の利点
- 効率性: 複数のAIを並行活用することで開発速度が大幅に向上
- 品質保証: 設計原則とセキュリティポリシーを徹底
- 再現性: プロンプトテンプレート化により手法の標準化が可能
- 学習効果: UE初心者でも段階的に学習しながら開発可能
注意点
- ファイル読み込みは250行以内ずつに制限
- UEファイルとの名前競合を避けるため”_hs”サフィックス必須
- Visual Studioでのビルドが必要(コマンドビルド禁止)
- セキュリティ設計ポリシーの遵守
この手法により、AIを活用した効率的なUnreal Engineゲーム開発が実現できます。各プロンプトを参考に、あなたのプロジェクトに合わせてカスタマイズしてご利用ください。
