Unreal EngineとChatGPTを簡単に連携できる「HttpGPT」プラグインを試してみた
こんにちは、ゲームソリューショングループの入井です。
以前、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と対話できる機能を実装した例が紹介されています。
今回紹介したプラグインを活用することで、このように今までにないシステムをゲームに実装することが可能になると思われます。