会話を使い始める最も簡単な方法は、新しい NPC キャラクター定義を作成し、ペルソナ モディファイアを NPC キャラクター モディファイアのリストに追加することです。 ペルソナ モディファイアでは、ペルソナのキャラクターの事実情報、パーソナリティ、話す際に使用する声、および話している間の割り込みへの対応方法を定義できます。
NPC キャラクター定義を作成する
NPC キャラクター定義を作成するには、次の手順を実行します。
プロジェクトのコンテンツ フォルダに移動し、コンテンツ ドロワーを右クリックします。
ポップアップ メニューで、[Artificial Intelligence (AI)] > [NPC Character Definition (NPC キャラクター定義)] に移動します。
キャラクター定義「PersonaNPCDefinition」に名前を付け、サムネイルをダブルクリックして NPC のプロパティを編集します。
タブを閉じる前に、[NPC Character Definition (NPC キャラクター定義)] への変更を保存してください。
NPC キャラクター定義にペルソナ モディファイアを追加する
ペルソナ モディファイアをペルソナ NPC 定義に追加するには、次の手順を実行します。
[NPC Character Modifiers (NPC キャラクター モディファイア)] > [Modifiers (モディファイア)] に移動し、[AddElement] (+) アイコンをクリックしてモディファイアを追加します。
新しく追加されたモディファイア インデックス (他のモディファイアが追加されていない場合は通常 Index[2]) を見つけ、ドロップダウン メニューからペルソナ モディファイアを選択します。
NPC キャラクター定義への変更を保存します。
PersonaNPCDefinition にペルソナが追加されました。 [Persona (ペルソナ)] > [Character Facts (キャラクターの事実情報)] の横にあるドロップダウン アローを選択すると、ペルソナのパーソナリティ プロンプトと知識プロンプトの定義を確認できます。 これらは、モディファイアで直接編集することも、プロンプト エディタ ツールを通じて編集することもできます。 プロンプト エディタ ツールは、NPC のペルソナとの会話をシミュレートし、そのパーソナリティと事実情報を洗練して、目的の NPC の挙動を迅速にイテレートするのに役立ちます。
さらに、[Voice Model (音声モデル)] を設定してペルソナの声を決定し、[Interruption Rule (中断ルール] を設定してペルソナが重複するプロンプトをどのように処理するかを決定できます。
ペルソナに名前を付ける
ペルソナに名前を追加するには、UI モディファイアを追加し、ディスプレイ ネームを設定する必要があります。
NPC ペルソナとインタラクトする
NPC ペルソナとのインタラクションを開始するには、[Edit in Prompt Editor (プロンプト エディタで編集)] をクリックします。
これにより、[Prompt Editor Tool (プロンプト エディタ ツール)] が表示され、NPC ペルソナとのインタラクションを開始できます。
ここでは、プロンプト エディタ ツールの中央にあるテキストボックスにプロンプトを入力し、NPC ペルソナのレスポンスを確認できます。
ここは、構築中のペルソナと直接インタラクトして、NPC スポーナーにアタッチされたときにゲームの世界でどのようにレスポンスするかをシミュレートできる最初の場所です。
NPC ペルソナにパーソナリティを追加する
以下に示すのは、パーソナリティ プロンプトに追加してカスタム ペルソナを作成できる情報の例です。 また、デフォルトの声とペルソナが付属している利用可能なフォートナイト キャラクターのいずれかを使用することもできます。 フォートナイト キャラクターのいずれかを使用するには、次の手順を実行します。
ペルソナ モディファイア をキャラクター定義に追加します。
フォートナイト キャラクターをキャラクター ビジュアルに追加します。 キャラクターのパーソナリティ情報が、[Personality (パーソナリティ)] フィールドに自動的に表示されます。
キャラクターのパーソナリティを追加するには、上記の手順をこの順序で実行する必要があります。
キャラクターのパーソナリティを削除すると、アセットを削除して最初からやり直さない限り、復元する方法はありません。
パーソナリティー
特性と挙動の構成が、ペルソナの独自のパーソナリティと挙動を形成します。
キャラクターの背景、キャラクターの行動の動機、そしてキャラクターが周囲のワールドとどのようにインタラクトするかを考えます。
Verse を使用して、Personality 変数でランタイム時に LLM キャラクターのパーソナリティを変更することもできます。この変数はゲッターおよびセッターとして扱うことができます。
# Declare the Message that we will add to the Personality at runtime
PersonalityAddition<localizes>:message = "Here are my new orders for you, Persona"
# Declare a separator we will use later when we Join() our two Messages. This will be inserted between the two Messages
MessageSeparator<localizes>:message = "\n"
persona_npc_behavior := class(npc_behavior):
# This function takes a Message and adds it to the current Personality of the NPC that is running this behavior
ModifyPersonality(Addition:message):void=
if:
詳しくは、「会話に NPC を追加する」を参照してください。
例えば、次のプロンプトを追加すれば、占い師のペルソナを作成できます。
パーソナリティ特性:
あなたの名前はギゼルダです。
あなたは神秘的な雰囲気を持っています。
あなたは察しが良く、思いやりがあります。
未来を予測することは単なる仕事ではなく、顧客に知識と理解を伝える義務であると感じています。
顧客に挨拶する際、謎めいた話し方をします。
ユーモアのスタイル:
あなたは鋭く辛口のウィットに富んでいます。 最も面白いセリフは、顧客に挨拶するときのセリフです。
顧客の未来が予測できない場合、あなたは星のせいにします。 (今、オリオン座は北斗七星から水を飲んでいます。 それ以上のことは見えません。)
キャラクターの略歴:
あなたは未来の予測を求められたときに、プレイヤーの運勢を占います。
あなたは親切で優しい占い師です。
あなたは砂漠で育ちました。 (プレイヤーが砂漠について何か言及した場合、砂漠の美しさについての俳句を詠んでください。)
物理的描写:
あなたはフリンジの付いたバンダナを頭に巻いています。 あなたは足首まである、ゆったりとしたドレスを着ています。
あなたは 40 代の女性です。
このパーソナリティと事実情報を NPC ペルソナに追加して、レスポンスがどのように変化するかを確認してください。
音声モデル
ペルソナ モディファイアによって、デフォルトの音声を通じて、NPC キャラクターのユニークな音声を作成できます。 フォートナイト キャラクターを使用すると、[Play (再生)] ボタンを選択してキャラクターの声を聴くことができます。
LLM キャラクターのカスタム ボイスを作成するには、キャラクターがどのように話すかを考えてください。 これは、声のトーンとコミュニケーション スタイルという 2 つのカテゴリに分けられます。
声のトーンは音色と呼ばれることが多く、知覚されるサウンドの質を指します。 それは、各個人が持つユニークな声であり、身体的および遺伝的特徴から生まれるものであると考えてください。 これらの特性が声を形成し、色を与えます。
コミュニケーション スタイルとは、情報伝達の特性を指します。 これには、個人やキャラクターが情報をどのように受け取るか、対立やフィードバックにどのように対応するか、アイデアをどのように共有するかなどが含まれます。
以下に示すのは、声のトーンとコミュニケーション スタイルの例です。
声のトーン | コミュニケーション スタイル |
ピッチ | 受け身 / 思いやりがある |
トーン | 好戦的 / 冷静 |
リズム | 冷淡 / 共感 |
エンファシス | 断定的 / 自信なさげ |
アクセント | 一貫性あり / 一貫性なし |
歌うような | 誠実 / 信頼できない |
単調 | 明確で簡潔 / まとまりがなく曖昧 |
声がどのように聞こえるべきか、キャラクターがどのようにコミュニケーションを取るかについて、より詳細な情報を提供すればするほど、ゲーム内でキャラクターが演じる役割がよりリアルになります。
利用可能なフォートナイト キャラクターの完全なリストと、各キャラクターのコミュニケーション スタイルと声のトーンを確認するには、後述の「フォートナイト キャラクター」のセクションをご覧ください。
構造的出力
プロンプト エディタの [Structured Output (構造的出力)] タブを通じて、LLM キャラクターがプレイヤーとどのようにインタラクトするかをさらにコントロールできます。 構造的出力を使用すると、LLM 動作スクリプトにさらに多くの構造体を追加できます。 これらの構造体によって、質問に対するLLM キャラクターの回答が決まります。 これは重要です。なぜなら、LLM キャラクターはプレイヤーの入力 (音声とタイプの比較) に応じて異なる回答をするからです。
音声に対する LLM のレスポンスが正確であり、コード内で複数の構造的出力を一度に返せることを確認してください。ただし、これは、プロンプト エディタではできません。
ユース ケースとしては、LLM キャラクターの背後にゲームプレイをロックすることが挙げられます。 プレイヤーが秘密のパスワードを知っているか、またはなぞなぞの答えを知っているかを判断するため。 この構造体は、プレイヤーの進行状況レベルをクエリする RegisterAction() 関数で使用されます。 クエリ結果に基づいて、LLM キャラクターはゲームプレイへのアクセスを拒否または許可します。
プロンプト エディタを使用して構造体を作成するには、次の手順を実行します。
プロンプト エディタ ツールで [Structured Output (構造的出力)] を選択します。
[+Add (+追加)] ボタンを選択して、構造体フィールドを追加します。
+ ボタンを選択して、キャラクターに構造体を追加します。
[Struct (構造体)] フィールドを選択し、構造体ドロップダウン メニューから構造体型を選択します。
表示される空のフィールドに、構造体型に変数を追加します。 この変数をクエリして、機能を提供したり、イベントをトリガーしたりできます。
Verse スクリプトでは、これらのキャラクターの構造体を参照したり、コードに構造体を直接追加したりできます。
ペルソナ データを Verse ファイルにエクスポートする
プロンプト エディタでは、構造体データを Verse ファイルにエクスポートすることもできます。 これにより、キャラクター用のモジュールの形式で公開構造体が作成されます。 このファイルは、プロジェクト間で共有したり使用したりできます。
構造的出力を Verse ファイルにエクスポートするには、次の手順を実行します。
プロンプト エディタ ツールバーのエクスポート アイコンを選択します。
Verse ファイルのフォルダを選択します。
ファイルがフォルダにエクスポートされると、名前は personaname_YOURLLMNAMEHERE.verse になります。