Unity AI AssistantとProfilerで性能ボトルネックを自然言語で診断する実践ガイド

Unity AI完全マスターシリーズ
第1回 — Unity AI Assistant入門:Ask・Plan・Agentモード完全解説
第2回 — Unity MCP完全ガイド:Claude Code・Codex・Gemini・CursorをUnity Editorに接続する
第3回 — Unity MCPカスタムツールの作り方:McpTool Deep Diveと4つの登録方式
第4回 — Unity SkillsシステムでAIワークフローを自動化する:SKILL.md完全ガイド
Appendix — Unity MCPビルトインツール完全リファレンス:51個のツールパラメータ・有効化ガイド
第5回 — Unity AI AssistantのProject Overview自動生成:AIがプロジェクトを理解するようにする方法
第6回 — Unity AI Assistant × Profiler:性能ボトルネックを自然言語で診断する実践ガイド (この記事)

Unity Profilerは強力なツールです。しかし、タイムラインを手動でスクロールしながら数値を一つひとつ解釈する作業は、思った以上に時間と経験を要します。フレームスパイクを一つ追いかけているうちに、気づけば1時間が過ぎていた——そんな経験をお持ちの方も多いでしょう。Unity AI Assistantは、その解釈プロセスに自然言語で入るための経路を提供します。Unity 6.3(com.unity.ai.assistant 2.7)を基準に執筆しています。

TL;DR
– AssistantはProfilerデータを直接記録しません。プロファイリングセッションのキャプチャは必ずご自身で行ってください。
– Assistantウィンドウで自然言語の質問を入力すると、Assistantが利用可能なプロファイリングデータを自動確認し、分析オプションを提示します。
– Profilerウィンドウで特定のサンプルやフレームを選択し、Ask Assistantをクリックすると、データが自動的に添付されます。
– 保存済みセッションのみ・アクティブセッションのみ・両方・データなしの4つのシナリオ別分岐をこの記事でまとめます。
– 分析結果はタイミングパターン、メモリ動作、潜在的なパフォーマンス上の懸念事項の形でAssistantウィンドウに表示されます。

目次

  1. 自分のプロジェクトをUnity AIが診断してくれる
  2. 前提条件 — Assistantはデータを直接記録しない
  3. エントリポイント1 — Assistantウィンドウから始める
  4. 4つのデータシナリオ別分岐
  5. エントリポイント2 — Profilerウィンドウから始める
  6. 分析結果を読み解く
  7. よくある質問
  8. まとめ
  9. あわせて読みたい

自分のプロジェクトをUnity AIが診断してくれる

Unity ProfilerはCPU、GPU、メモリ、レンダリング、物理など数十のモジュールから毎秒数千のサンプルを収集します。問題は、そのデータ量が膨大だという点です。どのフレームがスパイクしているかはすぐわかりますが、その原因を正確に突き止めるにはCPUタイムラインを深く掘り下げ、コールスタックを逆にたどる必要があります。

20年以上のゲーム開発経験を振り返ると、コードを書くよりデバッグに費やした時間の方が多かったと言っても過言ではありません。多くの方が共感されることと思います。性能問題の半分以上は「どこを見ればいいか」を素早く把握できるかどうかで勝負が決まります。その最初のコンテキスト探索を自然言語で短縮できれば、診断から解決までのスピードは格段に向上します。

Unity AI AssistantのProfiler連携は、まさにこの点を狙っています。すでにキャプチャしたProfilerデータをAssistantに渡すと、タイミングパターン・メモリ動作・潜在的なパフォーマンス上の懸念事項を要約して説明してくれます。複雑なタイムライン解釈の最初のステップをAIが担ってくれる構造です。

前提条件 — Assistantはデータを直接記録しない

始める前に、まず押さえておくべき重要な点があります。

AssistantはProfilerデータを直接記録しません。 プロファイリングセッションのキャプチャは、ユーザー自身がProfilerウィンドウで行う必要があります。Assistantが分析できるのは、すでに存在する保存済みセッションまたはアクティブセッションに限られます。

この制約を理解しておくことが重要です。Profilerデータが全くない状態で「なぜゲームが遅いのか?」と質問しても、Assistantは分析の代わりにOpen Profilerオプションを案内します。データがあって初めて分析が始まります。

必須条件のまとめ:

条件 説明
Profilerデータ 保存済み.dataファイルまたはアクティブなプロファイリングセッションのいずれか
Assistantの有効化 Unity EditorでAssistantが有効になっている必要があります

Unityはプロファイリングセッションをプロジェクト内に.dataファイルとして保存します。このファイルを開くか、アクティブセッションを維持した状態でAssistantに質問すれば分析が可能になります。

エントリポイント1 — Assistantウィンドウから始める

Profilerを先に開く必要はありません。Assistantウィンドウから直接、性能に関する質問を投げかけるのが最初のエントリポイントです。

手順

ステップ1: Unity EditorでAssistantウィンドウを開きます。

ステップ2: 性能に関する質問を入力して送信します。公式ドキュメントが提示するサンプル質問は次のとおりです。

Why is my game running slowly?
What is causing high CPU usage in my project?

これらの質問はAssistantがProfilerデータの照会を開始するトリガーになります。同様のパターンの自然言語質問であれば同じように機能します。

ステップ3: Assistantが利用可能なプロファイリングデータを自動確認します。その後、2つのオプションが提示されます。

  • Open Profiler — Profilerウィンドウを開くよう案内
  • Analyze — 利用可能なプロファイリングセッションに対して表示

ステップ4: プロジェクトに存在するデータの状態によって、次のステップが変わります。この分岐がこのワークフローで最も重要な部分です。

4つのデータシナリオ別分岐

AssistantはプロジェクトにどのようなProfilerデータがあるかによって異なる動作をします。4つのシナリオに分かれます。

クエリ入力 データ 状態? 保存セッションのみ リスト→Analyze選択 アクティブのみ 自動でアクティブ使用 保存+アクティブ リストから選択可能 データなし Profilerを開くよう案内 Assistantウィンドウで結果確認

各シナリオでAssistantがどのように動作するかをまとめます。

シナリオ1 — 保存済みセッションのみ

過去のプロファイリング作業で.dataファイルとして保存したセッションがあり、現在アクティブなセッションはない状態です。

Assistantは保存済みプロファイリングセッションの一覧を表示します。希望するセッション横のAnalyzeを選択すると、そのセッションを分析し、タイミングパターン・メモリ動作・潜在的な性能上の懸念事項を要約した結果を提供します。

シナリオ2 — アクティブセッションのみ

保存済みセッションはないが、Profilerウィンドウにアクティブなプロファイリングセッションが開いている状態です。

この場合、Assistantはアクティブセッションを自動的に使用します。あらかじめ保存する必要はありません。分析結果はそのままAssistantウィンドウに表示されます。

シナリオ3 — 保存済みセッションとアクティブセッションが両方ある

最も選択肢が多い状況です。Assistantは保存済みセッションとアクティブセッションの両方を一覧に表示します。アクティブセッションを分析したい場合は、該当項目横のAnalyzeを選択します。この場合もセッションを先に保存する必要はありません。

シナリオ4 — プロファイリングデータが全くない

まだProfilerを実行したことがない、またはデータがない状態で質問した場合です。

Assistantは分析にプロファイリングデータが必要であることを説明し、Open Profilerオプションを表示します。このオプションを選択するとProfilerウィンドウが開きます。そこでプロファイリングセッションを記録した後、再度質問を実行すれば分析が始まります。Unityはプロファイリングセッションをプロジェクト内に.dataファイルとして保存します。

エントリポイント2 — Profilerウィンドウから始める

すでにProfilerウィンドウでデータを分析しているなら、Assistantをわざわざ別途開く必要はありません。Profilerウィンドウ内から直接Assistantに接続する第2のエントリポイントを活用できます。

このワークフローは、特定のフレームやサンプルに対して集中的な説明や最適化の指針が必要な場合に特に有効です。

手順

ステップ1: Unity EditorでProfilerウィンドウを開きます。

ステップ2: 保存済みのプロファイリングセッションを読み込むか、新しく記録します。

ステップ3: Timelineなどのサポートされているビューに切り替えます。

ステップ4: 分析したいProfilerサンプルまたはフレームを選択します。

ステップ5: Ask Assistantを選択します。

Unity ProfilerのTimelineビューでサンプルを選択し、Ask Assistantボタンで分析をリクエストする画面

選択したサンプルに基づいて自動的に提案された質問とともにプロンプトが表示されます。このプロンプトは送信前に直接編集できます。選択したプロファイリングデータは自動的に添付されます。

ステップ6: プロンプトを送信します。分析結果がAssistantウィンドウに表示されます。

ステップ7: 結果を確認した後、別のサンプルを選択したり質問を絞り込んで、性能問題をさらに深く探索します。

2つのエントリポイントの比較

項目 Assistantウィンドウから開始 Profilerウィンドウから開始
開始位置 Assistantウィンドウ Profilerウィンドウ
データ選択方法 Assistantが自動確認しオプション提示 ユーザーが直接サンプル・フレームを選択
適した状況 全般的な性能質問、Profilerを開く前 特定のサンプル・フレームの集中分析
プロンプト編集 ユーザーが直接入力 選択サンプルに基づく自動提案+編集可能
分析結果の表示場所 Assistantウィンドウ Assistantウィンドウ

どちらの方法も同じ分析パイプラインを使用し、結果は常にAssistantウィンドウに表示されます。

分析結果を読み解く

どちらのエントリポイントを使用しても、分析結果はAssistantウィンドウに3つのカテゴリで表示されます。

カテゴリ 説明
タイミングパターン(Timing Patterns) フレームごとのCPU消費時間の推移、スパイク発生区間
メモリ動作(Memory Behavior) 割り当て・解放パターン、ガベージコレクションの発生状況
潜在的な性能上の懸念事項(Potential Performance Concerns) 将来問題になりうるパターンへの警告

3つのカテゴリのうち「潜在的な性能上の懸念事項」は、現在目に見える問題だけでなく、スケールアップ時に問題になる可能性があるパターンも含んでいます。現在のフレームレートが問題なくても、この項目を確認する習慣をつけることが重要です。

分析結果を受け取った後は、別のサンプルを選択したり質問を絞り込んで探索を続けることができます。Assistantは会話のコンテキストを維持するため、「先ほどの分析結果でGC Allocが最も大きい関数はどれですか?」といったフォローアップ質問も自然に続けられます。

Askモードで診断し、Agentモードで修正する

公式ドキュメントには明記されていませんが、Profiler分析は構造的にAskモードで動作するものと推測されます。Askモードはプロジェクトを読み取り専用で照会し、分析結果をテキストで返すことに特化しています。Profilerデータを読み取り、タイミングパターン・メモリ動作・性能上の懸念事項を要約する作業は、まさにこの特性と一致します。

この特性を理解すると、実践的なワークフローが見えてきます。

  1. Askモード — 診断: Profilerデータを渡し、「GC Allocが最も多い関数はどれか」「フレームスパイクの原因は何か」と質問します。Assistantがボトルネックを特定してくれます。
  2. Agentモード — 修正: ボトルネックの原因が特定されたら、Agentモードに切り替えて「GC Allocを減らすためにオブジェクトプーリングを追加してほしい」のように実際のコード修正を依頼します。Agentモードはプロジェクトを直接変更できます。

診断はAskモード、修正はAgentモード。2つのモードを組み合わせることが、性能最適化においてAssistantを最も効果的に活用する方法だと考えています。

画像・スクリーンショットを活用する

性能分析以外にも、Assistantはエディタのスクリーンショットを添付して質問する方法もサポートしています。例えばピンクのマテリアルのようなレンダリングエラーが発生した際にエディタビューをキャプチャして「Why is my cube pink?」と質問すると、Assistantが画像を分析してシェーダーの欠落やURPの設定問題などを診断してくれます。Profilerベースの性能診断と組み合わせることで、より広範なデバッグワークフローを構築できます。

よくある質問

Q. Profilerデータなしで「性能最適化の方法」を聞くとどうなりますか?

A. データなしで一般的な最適化の質問をすると、Assistantは一般的なガイダンスを提供するかOpen Profilerオプションを案内します。実際のプロジェクトデータに基づく具体的な分析にはProfilerセッションが必要です。

Q. .dataファイルはどこに保存されますか?

A. Unityはプロファイリングセッションをプロジェクト内に.dataファイルとして保存します。正確なパスはProfilerウィンドウの保存機能から指定・確認できます。

Q. アクティブセッションを分析する際、先に保存する必要がありますか?

A. 必要ありません。保存済みセッションとアクティブセッションが両方ある場合、アクティブセッション横のAnalyzeを選択すれば保存なしですぐに分析できます。

Q. ProfilerウィンドウのどのビューでAsk Assistantを使用できますか?

A. 公式ドキュメントでは、Timelineなどのサポートされているビューに切り替えてから使用するよう明記しています。他にどのビューがサポートされているかは、ドキュメントに明確な記載がありません。

Q. 分析にUnity Creditsは消費されますか?

A. AssistantによるProfilerデータの分析はAI処理を伴うため、Unity Creditsが消費される可能性があります。正確な消費量はUnity AIの使用ポリシーをご確認ください。

まとめ

Unity AI AssistantのProfiler連携は2つの観点から実用的です。

まず、参入障壁が低い点です。Profilerウィンドウを先に開かなくても、Assistantウィンドウからの質問一つで分析を開始でき、Profilerデータがなければ直接Profilerを開くよう案内してくれます。ワークフローのどの時点でも自然につながります。

次に、タイムライン解釈の最初のステップを委任できる点です。数千のサンプルの中からどこを先に見るべきかをAIが要約してくれることで、開発者は原因を追跡して修正するという本質的な作業に集中できます。

ただし一つ覚えておきたいのは、分析の品質はProfilerセッションの品質に左右されるという点です。代表的なフレームスパイクが含まれたセッション、再現可能な状況でキャプチャしたデータをAssistantに渡すことで、より有意義な結果が得られます。AIに適切なコンテキストを渡すことも、開発者の重要なスキルです。


← 前の回: 第5回 — Unity AI AssistantのProject Overview自動生成:AIがプロジェクトを理解するようにする方法

コメントする