概要
- Unityでの開発中に発生するエラーログを自動で検知し、バックエンドサーバー経由でLLM(OpenAIやGeminiなど)に解析させ、解決策をUnityエディタ上に直接表示するデバッグ支援ツールを構築しました。
- 本記事では、バックエンドエンジニアとUnityエンジニアのタッグで取り組んだ本システムの仕組みや、実際に使ってみて感じたメリット・課題感をまとめています。
背景
- Unity開発において、エラーが発生した際に「エラーログとスタックトレースをコピー ➔ ブラウザを開く ➔ ChatGPT等の画面に貼り付けてプロンプトを入力する」という一連の作業は、開発のテンポを削ぐ大きなストレスでした。
- 「エディタ内でエラーが起きた瞬間に、自動でAIが原因と修正案を教えてくれたら開発効率が格段に上がるのでは?」という課題意識から、Unityのエディタ拡張とPythonバックエンドサーバーを組み合わせたシームレスな自動デバッグ環境の構築を目指しました。
実装編(Unity・Python)
- 開発の手間を削減しつつ拡張性とセキュリティを高めるため、Unityから直接外部APIを叩くのではなく、ローカルにバックエンドサーバー(
Python / FastAPI)を挟む3層アーキテクチャを採用しました。
システム設計図
役割分担と全体の流れ
Unityエンジニア担当(フロントエンド)
Application.logMessageReceivedをフックしてエラーメッセージやスタックトレースを検知。- バックエンドAPIへHTTP POSTリクエストを送信。
- 返ってきた回答を専用のカスタムエディタウィンドウ(LLM Debug Assistant)に描画。
バックエンドエンジニア担当(サーバーサイド)
- Unityからのリクエストを受け取る
FastAPIサーバーの構築。 - プロンプトの整形(システムプロンプトの付与、出力フォーマットの指定)。
- レートリミット / キャッシュ制御: 短時間の連続エラー送信をガードし、APIの課金爆発や無限ループを防止。
- LLM API(
Gemini / OpenAI)との通信とレスポンスのパース。
いいと思ったこと
- 非エンジニアメンバーのヘルプコストの大幅な削減
- UIデザイナーや3Dアニメーターなど、非エンジニアのメンバーが簡単なエラーにぶち当たった際、その都度エンジニアを呼び出すケースは少なくありません。エディタ上でAIが即座にわかりやすい解決策を提示してくれるため、エンジニアのサポートコストの削減や、チーム全体の作業手が止まる時間の短縮に繋がります。
- コンテキストスイッチの完全排除
- ブラウザとUnityを行き来する必要がなくなり、エディタ画面だけでエラーの原因特定から修正案の確認まで完結するため、開発リズムが途切れません。
- バックエンドを挟むことによる安全性と柔軟性
- APIキーをUnityプロジェクト内に保持する必要がなく安全です。また、バックエンド側でプロンプトの調整や重複エラーのキャッシュ処理を行えるため、トークン消費の節約や速度向上に繋がりました。
- 初心者や慣れない機能のデバッグ補助として強力
NullReferenceExceptionのような単純な参照外れから、Unity特有のシリアライズやライフサイクルに関するややこしいエラーまで、的確な初期アプローチを示してくれるため解決までの時間が大幅に短縮されました。
あんまりよくないと思ったこと
- シーンの構造やコンポーネント依存の把握には限界がある
- 送られる情報はテキストのログとスタックトレースのみのため、「Inspector上でどのGameObjectにアタッチされているか」といった複雑なコンテキストまではAIが判別できず、的外れなアドバイスになることがあります。
- 大量のエラー発生時の挙動制御
Update()内で毎フレーム発生するようなエラーの場合、サーバー側のガード(レートリミットやキャッシュ)をすり抜けると通信負荷がかかるため、Unity側での送信制御ルールを厳密にする必要があります。
- 開発環境のセットアップコスト
- Pythonサーバーをローカル(またはDocker)で起動しておく必要があり、Unity単体で完結するアセットと比べると初期構築の手間がわずかに発生します。
スクショ
- 実際のUnityエディタ上の挙動と画面構成です。
1. 待機状態
- エラーが発生していない、または初期化直後の画面です。自動検知フラグやエンドポイントの設定が可能です。
2. シンプルなエラーの検知と回答
NullReferenceExceptionが発生した際、即座にログをフックして原因と対策(NullチェックやInspector確認)が表示されます。
…
記事の続きは下のURLをクリック!
https://rightcode.co.jp/blogs/56792
もっと上を目指したあなたへ
現在、ライトコードでは「WEBエンジニア」「データエンジニア」「ゲーム・XRエンジニア」「UI/UXデザイナー」「PM/PMO」などのポジションで積極採用中です!
ライトコードは、技術力に定評のある受託開発をメインにしているIT企業。
有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です!
- もっと大きなことに挑戦したい!
- エンジニアとしてもっと成長したい!
- モダンな技術に触れたい!
現状に満足していない方は、まずは一度、【Wantedly内の弊社ページ】をのぞいてみてください。