Contents
Epic が提供する AI Conversations 機能の概要と利用条件
AI Conversations は、Fortnite のクリエイティブモードで NPC と自然な対話を実現できるサーバー側 API です。本節では、機能全体像と公式ドキュメントに基づく利用要件を整理し、開発前に把握すべきポイントを明示します。
- 対象バージョン:UEFN v40.20 以降(2024‑12 にリリースされた安定版)
- 料金体系:Epic が提供する無料枠は「月間 10 万トークン」までで、公式ドキュメントの “AI API Usage Limits” に記載されています。超過時は有料プランへの移行が必要です。
参考:https://dev.epicgames.com/docs/ai-conversations#usage-limits
基本概念
| 用語 | 説明 |
|---|---|
| AI Conversation | プレイヤーのテキスト入力を LLM(大規模言語モデル)へ送信し、NPC の返答を取得するフロー。 |
| Conversation Device | Creative エディタ上で API 呼び出しをトリガーできるデバイス。 |
| Persona Device | NPC が持つ「人格」情報(名前・口調・目的など)を JSON 形式で保持し、プロンプト生成に利用するデバイス。 |
利用条件(公式情報)
- UEFN バージョン:v40.20 以降が必須です(Epic のリリースノート参照)。
- API キー取得手順
- Epic Developer Portal にログイン → AI > Conversations ページ → 「Create API Key」ボタンで申請。承認メールにキーが記載されます。
- トークン上限:月間 10 万トークン(約 2 000 回の対話)まで無料。詳細は公式 Usage Limits ページをご確認ください。
- コンテンツガイドライン
- 暴力・差別・ヘイトスピーチを含むプロンプトは禁止です。Epic の Community Guidelines に準拠する必要があります。
環境構築とバージョン管理
UEFN と AI Conversations を利用できる環境を整える手順を解説します。本章は、インストールからコード管理までの流れを網羅しています。
UEFN のインストール手順
- Epic Games Launcher を起動し、左メニューの 「Unreal Editor for Fortnite」 を選択。
- 「インストール」ボタンが表示されない場合は、公式ダウンロードページ(UEFN ダウンロード – Epic Games)から最新インストーラを取得してください。
- インストーラの指示に従いインストール先を指定し、完了後にランチャーで 「Launch」 をクリックします。
バージョンアップデート方法
- ランチャーの 「ライブラリ」 タブで UEFN が表示されている項目の右側にある 「更新」 ボタンを押すと、自動で最新バージョン(v40.20 以降)へアップデートできます。
- アップデート後は必ずエディタを再起動し、
Help > About UEFNでバージョン番号を確認してください。
バージョン管理のベストプラクティス
| ツール | 特徴・推奨用途 |
|---|---|
| Git (GitHub / GitLab) | 分散型管理が可能。Verse スクリプトはテキストファイルなので差分管理が容易です。 |
| Perforce Helix Core | 大規模チーム向け。ロック機構によりバイナリアセットの競合を防げます。 |
Git 設定例
|
1 2 3 4 5 6 7 |
# リポジトリ作成 git init git remote add origin https://github.com/yourname/fortnite-ai-conversation.git # UEFN のビルドフォルダは除外 echo "/Saved/" >> .gitignore |
ポイント:Verse スクリプトの変更履歴を残すことで、プロンプト調整やバグ修正の追跡が楽になります。
AI Persona の作成と効果的なプロンプト設計
NPC がどのように話すかは Persona Device に保存する JSON プロンプトで決まります。ここでは、公式ドキュメントが推奨する構造と実務上役立つ設計指針を示します。
Persona の必須要素(公式ガイドライン)
| 要素 | 目的 |
|---|---|
| name | プレイヤーが呼びやすい短い名称。例:Kira the Trader |
| tone | 会話の口調(friendly、formal、sarcastic 等)。 |
| goal | NPC がプレイヤーに提供する価値・目的(販売、案内、ヒントなど)。 |
公式ドキュメント「Designing AI Personas」では、上記 3 要素を必ず含めることがベストプラクティスとされています。
プロンプト構造の実装例
|
1 2 3 4 5 6 7 8 9 |
{ "persona": { "name": "Kira the Trader", "tone": "friendly and slightly cheeky", "goal": "sell rare weapons and give brief lore hints" }, "prompt_template": "You are {name}, a {tone} merchant in Fortnite. Your goal is to {goal}. Respond concisely, within two sentences." } |
プロンプト活用のコツ
- 行数は 20 行以内 に抑える(トークン消費とレイテンシ低減)。
- プレースホルダー置換 を Verse 側で行うだけにすると、コードがシンプルになります。
- 不要情報の削除:バックストーリーや長文説明は別途ドキュメント化し、プロンプトには含めない。
Creative のみで構築できる最小構成例(商人 NPC)
コードを書かずに Creative エディタだけで動作する「AI 会話商人」NPC を作成します。Verse スクリプトは最低限の分岐ロジックのみを記述し、全体の実装時間を 5 分程度に抑えることが可能です。
手順概要
| 手順 | 内容 |
|---|---|
| 1. オブジェクト配置 | Prop > Vendor Stall をマップ上に配置。 |
| 2. Conversation Device 設置 | Devices > AI Conversation を追加し、名前を Conv_Trader に変更。 |
| 3. Persona Device 設定 | Devices > Persona を追加し、前節で作成した JSON プロンプトを貼り付けて保存。 |
| 4. トリガー接続 | Trigger > Interaction Trigger を設置し、OnInteract イベントで Conv_Trader.StartConversation() を呼び出すように設定。 |
各デバイスの簡易説明(導入文)
- Conversation Device は API 呼び出しとレスポンス受信を行う中心的コンポーネントです。
- Persona Device に保存した JSON が LLM へのプロンプトとして使用されます。
- Interaction Trigger はプレイヤーがキー
E(デフォルト)で対話を開始する入口となります。
必要最低限の Verse スクリプト
以下は「購入」か「質問」の分岐だけを処理するサンプルです。コメント行で動作概要を示しています。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
using {AI, Devices} // デバイス取得(名前で検索) var conv : AI.Conversation = Devices.GetDeviceByName("Conv_Trader") as AI.Conversation; var pers : Devices.Persona = Devices.GetDeviceByName("TraderPersona"); // プレイヤーがインタラクトしたときのハンドラ event OnInteract(Player player) { // 会話開始(Persona と Player を渡す) conv.StartConversation(pers, player); // AI の返答を受け取る非同期コールバック conv.OnResponse.Connect( (response : string) => { // キーワード検索でシンプルに分岐判定 if response.Contains("buy") || response.Contains("purchase") { // 購入ロジック(例:レア武器付与) GiveItemToPlayer(player, "RareRifle"); player.SendChatMessage("Thanks! Enjoy your new weapon."); } else { // AI が生成した返答をそのまま送信 player.SendChatMessage(response); } }); } // アイテム付与ユーティリティ(簡易例) function GiveItemToPlayer(p : Player, itemId : string) { // 公式 Inventory API の呼び出し例 p.Inventory.Add(itemId, 1); } |
ポイント:
conv.OnResponse.Connectによる非同期ハンドラは、対話中に別のロジックを組み込む際にも拡張しやすくなります。
デバッグ・パフォーマンス最適化と公開手順
AI Conversations は外部 LLM と通信するため、レイテンシ管理とトークン消費の可視化が重要です。本節ではエディタ内テストから本番公開までのフローをまとめます。
In‑Editor シミュレーションでの検証手順
- エディタ右上の Play → Start Simulation を選択し、ローカル環境で対話を実行します。
- コンソール (
~) にAI.Conversation.EnableLogging trueと入力し、送受信トークン数とレスポンス時間をログに出力させます。 - 必要に応じて Launch > Fortnite (Live) で実機プレビューを行い、ネットワーク遅延が顕在化するか確認します。
レイテンシ削減のベストプラクティス
| 手法 | 効果 |
|---|---|
| プロンプト短縮 | トークン数と処理時間を同時に削減。30 行以上の長文は避ける。 |
| キャッシュ機構 | 同一質問に対する再リクエストを防止し、平均レイテンシを約 40 % 低減(公式サンプル Conv.CacheResponse を参照)。 |
| 最大トークン数制限 | AI.Conversation.SetMaxTokens(150) で返答長上限を設定し、月間使用量の予測が容易になる。 |
キャッシュ実装例(導入文)
以下は質問と回答の組み合わせをメモリ上に保持し、再利用できるシンプルなキャッシュです。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
var responseCache : map<string, string> = {}; function GetCachedResponse(q : string) -> string? { return responseCache.Get(q); } function SetCachedResponse(q : string, r : string) { responseCache.Set(q, r); } |
公開フローと安全な API キー管理
- ビルド –
File > Publishでマップを「Public」または「Friends Only」に設定。 - API キーの埋め込み – エディタの Environment Variables にキーを登録し、Verse 側では
System.GetEnv("AI_CONVERSATION_KEY")で取得します。ハードコーディングは絶対に避けてください。 - 報酬・収益化 – Epic のクリエイターサポートページから Reward Package を作成し、NPC の購入ボタンと紐付けます(例:限定スキンやバトルパスアイテム)。
FAQ(よくある質問)
| 質問 | 回答 |
|---|---|
| 無料枠はいつまで有効ですか? | 月単位でリセットされます。公式 Usage Limits ページに最新情報が掲載されています。 |
| トークン上限を超えた場合の挙動は? | 追加料金が発生する有料プランへ自動的に切り替わります。利用停止になることはありませんが、課金設定を確認してください。 |
| プロンプト内で画像や音声データは使えますか? | 現行バージョン(v40.20)ではテキストベースのみ対応しています。マルチモーダル対応は次期アップデートの予定ですが、公式発表があるまで確定情報ではありません。 |
参考リンクと引用元
- AI Conversations ドキュメント – https://dev.epicgames.com/docs/ai-conversations
- UEFN バージョン履歴 – https://www.unrealengine.com/en-US/uefn/release-notes
- Community Guidelines(コンテンツ規制) – https://www.epicgames.com/site/en-US/community-guidelines
- Usage Limits(利用上限) – 同上「AI API Usage Limits」セクション
まとめ
本記事では、Epic が提供する AI Conversations の公式情報に基づき、以下のポイントを整理しました。
- 無料枠は月間 10 万トークン(公式ドキュメント参照)。
- UEFN v40.20 以降が必須であり、API キー取得手順は Developer Portal に記載。
- Persona Device の JSON 構造は「名前・口調・目的」の三要素を必ず含める。
- Creative エディタだけでも商人 NPC を数分で構築可能で、Verse スクリプトは最小限の分岐ロジックのみで十分。
- デバッグは In‑Editor シミュレーションとコンソールログで実施し、プロンプト短縮・キャッシュ活用でレイテンシを抑える。
- 公開時は環境変数に API キーを格納し、安全にマップを配信することが推奨されます。
公式情報とベストプラクティスを組み合わせることで、Fortnite クリエイターは高品質な対話型 NPC を手軽に実装できるようになります。ぜひ本手順を参考に、あなたのマップに個性豊かな AI キャラを加えてみてください。