Unreal EngineとChatGPTを簡単に連携できる「HttpGPT」プラグインを試してみた

2023.05.27

こんにちは、ゲームソリューショングループの入井です。

以前、UnityとChatGPTを連携する方法についての記事を書きました。

Unityと同じくゲームエンジンであるUnreal EngineでもChatGPTと連携する方法がないか探したところ、専用のプラグインが配布されているのを見つけました。

今回は、そのプラグインを使ってUnreal EngineとChatGPTの連携を実現する方法についてご紹介します。

プラグインについて

HttpGPTプラグインを使うことで、Unreal Engine内からChatGPTのAPIを非同期HTTPリクエストで呼び出すことができます。ChatGPTだけでなく、画像生成APIであるDALL-Eもこのプラグインから使用することができます。

セットアップ方法

UEエディタのProject Settings画面にてプラグイン導入後、オプション画面でOpenAI APIのキーをセットします。

オプション内ではAPIのモデルを選択することができます。GPT-3.5やGPT-4の他、text-davinci系なども選択可能です。今回はgpt-3.5-turboにしました。

エディタ内での動作確認

上部メニューのTools → HttpGPT → HttpGPT Chatを開くと、チャット画面が開きます。

このチャット画面では、ChatGPT APIを使った対話を行うことが可能です。

これにより、プラグインによるAPI連携が正常に動作するかが確認できます。APIキーの設定等に間違いがなければ、こちらのテキスト入力に対するChatGPTからの回答が表示されます。

なお、画像の通り、この画面経由での対話時はUnreal EngineやHttpGPTプラグインについての質問に答えられるよう、あらかじめプロンプトが設定されています。

ゲーム内への組み込み

ここからは、実際のゲーム画面上でChatGPTとの連携を試していきます。

UIの用意

Unreal EngineのUI設定機能を使用して、ChatGPTと対話を行うためのテキスト入力欄と送信ボタンが入ったUIクラスを作成します。

ChatGPTからの回答は、Print Stringで画面上に出力する想定です。

ブループリントの設定

先ほど作成したUIクラスにて、ChatGPTとの連携を行うブループリントを設定していきます。

テキスト入力から回答出力までの全体の流れは、以下のとおりです。

処理の開始部分から詳細を見ていきます。

UI上の送信ボタンのクリックイベントを起点に、Send Message with Default Options関数を呼び出しています。この関数は、ChatGPT APIにリクエストを送るためのものです。Default Optionsとあるように、他にもSend Message Witch Custom Optionsという、API呼び出しの設定を細かく変えられる関数もありますが、今回は普通に呼び出しできれば良いので使ってません。Message入力ピンには、テキスト入力UIの内容を渡しています。

レスポンスを受け取った後の処理は、以下の通りです。

Send Message with Default Options関数のProcess CompletedピンをPrint Stringに接続しています。これにより、APIリクエストの結果を受け取ったタイミングでPrint Stringが実行されます。

Print Stringで出力するための文字列は、ChatGPT APIからのレスポンス結果が入るように処理を繋げています。具体的には、Send Message with Default Options関数のResponceから、Choices配列の1番目の値を取得し、その中から回答文のテキストが入っているプロパティをPrint Stringに送っています。ここで扱っている構造体のフォーマットは、Open AI APIドキュメントに記載されているレスポンスフォーマットと同一です。

OpenAI API - Chat completions - Response format

実行結果

以下の画像のように、テキストの入力内容に対するChatGPTからの回答がPrint Stringによってゲーム画面上に表示されました。

まとめ

今回紹介するプラグインを使うことで、Unreal Engineで開発しているゲームにChat GPTの機能を組み込むことができました。そのために必要な作業も簡単なブループリントを繋げるだけで良く、複雑なコードなどを書いたりする必要はありませんでした。

ゲームとChat GPTのような生成AIを組み合わせることで、様々なことが実現できるようになります。

例えば、ゲーム内のNPCの会話内容をリアルタイムに自動生成させる、ということも可能です。以下の記事では、既存のゲームにModとしてChatGPT APIとの連携機能を組み込み、ゲーム内でNPCと対話できる機能を実装した例が紹介されています。

今回紹介したプラグインを活用することで、このように今までにないシステムをゲームに実装することが可能になると思われます。