プレイヤーがインゲームの成り行きに影響する選択をする場合、アイテムを購入する場合、NPC タスクの完了に対する報奨を受け取る場合などに、会話の仕掛けで魅力的な対話を作り出したいと思いませんか? そのような会話は没入感があり、情報が充実し、楽しませるものにすることができ、待ち望んでいた素材や知識をプレイヤーに提供することでゲームのストーリーを前に進めることができます。
ポップアップ ダイアログの仕掛けは、コア機能を会話の仕掛けと共有しています。 両方の仕掛けを使用すると次のことができます。
メッセージや指示をプレイヤーに表示する
目標の背景情報を表示する (トラッカーの仕掛けと併用する場合)
目に見えないクラス セレクターの仕掛けにつないで、プレイヤーがそのクラスを選択できるようにする
プレイヤーと NPC の間の対話を作り出す
会話の仕掛けを使用すると、イベントをトリガーし、ゲームの結果を変える選択をプレイヤーが行う会話にレイヤーを追加することで、機能をさらに進めることができます。
Unreal Editor for Fortnite (UEFN) では次のことに会話の仕掛けを使用します。
会話ツリーを作成する
分岐する対話にする
会話ツリー内でイベントを使用して他の仕掛けをトリガーする
仕掛けを見つけて使用する
会話の仕掛けは「Fortnite > Devices > UI」フォルダにあります。 コンテンツ ブラウザから仕掛けをドラッグし、ビューポート内でNPC スポナーまたはキャラクターのいずれかの仕掛けのそばに配置します。
この仕掛けの一般的なワークフローは次のとおりです。
会話の仕掛けをレベルに配置し、仕掛けを使用するのに必要なアセットを設定します。
イベント バインディングのある Initiate Conversation 関数を使用するか、Verse を使用して別の仕掛け (トリガー の仕掛けなど) から InitiateConversation を呼び出します。
ゲームを開始し、仕掛けとやり取りして会話を開始します。
仕掛けが適切に設定されていれば、会話が開始されます。
仕掛けを設定する
会話グラフ アセットを作成するには、コンテンツ ブラウザ内で右クリックして [Gameplay (ゲームプレイ)] > [Conversation Bank (会話バンク)] を選択します。
または、会話の仕掛けの [Conversation (会話)] フィールド内で会話グラフ アセットを新規作成することもできます。
新規作成したアセットをダブルクリックして会話グラフを開きます。
ノードを追加して会話を作成します。 最初に Default Entry Point ノードを配置します。 すべての会話はここから始まります。
会話の作成の詳細については、「カスタム会話 UI」ページを参照してください。
会話の仕掛けをレベルにドラッグします。
作成した会話を [Conversation] フィールドに追加します。
仕掛けの基本
ビューポートに会話の仕掛けがあれば、その仕掛けにネイティブなツールを使用して、会話グラフの構築および会話の基本的なユーザー インターフェース (UI) のデザインを始めることができます。
仕掛けの主要なオプションでは、次の 3 つの基本的な会話オプションを使用して基本的な会話を作成する手段が提供されています。
Conversation Type (会話のタイプ) - 会話がアクティブであるときに表示される UI のスタイルを決定します。 詳細については、「会話のタイプ」を参照してください。
Conversation Graph (会話グラフ) - 仕掛けはこのアセットを使用して会話を実行します。
Speaker Name (話者の名前) - 会話中に話者の名前を表示します。 これが空白のままであれば、画面に名前は表示されません。
基本的な UI スタイル
[Conversation Type] が [Box (ボックス)] に設定されている場合、ボックスからの基本的な UI デザインでは以下のデザイン オプションが使用されます。
Title Text Color (タイトル テキストの色) - ボックス内のタイトルの色
Title Border (タイトル枠線) - タイトルの枠線の色。
Title Background Color (タイトル背景の色) - タイトルの背景の色。
Body Text Color (本文テキストの色) - ボックス内の本文テキストの色。
Body Background Color (本文の背景の色) - テキストの背景の色。
Button Background Color (ボタンの背景の色) - ボックス内のボタンの背景の色。
Button Hover Color (ホバー時のボタンの色) - ホバー時のボタンの色。
基本的な会話関数
次の 5 つの会話関数があります。
Initiate Conversation - このイベントをトリガーしたプレイヤーに対して、関連付けられている会話を強制的に開始します。
Exit Conversation - このイベントをトリガーしたプレイヤーに対して、現在の会話を強制的に終了します。
Exit All Conversations - 選択されているチャンネルから信号を受け取ったときにすべての会話を中断します。
Enable - 選択されているチャンネルから信号を受け取ったときに仕掛けを有効にします。
Disable - 選択されているチャンネルから信号を受け取ったときに仕掛けを無効にします。
Hide Conversation - 選択されたチャンネルから信号を受信すると、会話を非表示にします。 会話が非表示になると、反応を選択することができません。
Show Conversation - 選択されたチャンネルが非表示になっている場合、信号を受信すると会話を表示します。
基本的な会話イベント
会話の仕掛けには次のイベントがあります。
On Conversation Started - 新しい会話が開始されたときにメッセージをブロードキャストします。
On Conversation Ended - 会話が終了したときにこのイベントをプレイヤーにブロードキャストします。
On Conversation Cancelled - Exit Conversation または Exit All Conversations が呼び出されて会話が強制的に早期終了されたときに、プレイヤーにこのイベントをブロードキャストします。
On Any Conversation Event - 関連付けられている会話グラフからの番号付きイベントが会話中にトリガーされたときにメッセージをブロードキャストします。
On Conversation Event One - 関連付けられている会話グラフからのイベントが Event One にトリガーされたときにメッセージをブロードキャストします。
On Conversation Event Two - On Conversation Event One を参照。
On Conversation Event Three - On Conversation Event One を参照。
On Conversation Event Four - On Conversation Event One を参照。
On Conversation Event Five - On Conversation Event One を参照。
On Conversation Event Six - On Conversation Event One を参照。
On Conversation Event Seven - On Conversation Event One を参照。
On Conversation Event Eight - On Conversation Event One を参照。
On Conversation Event Nine - On Conversation Event One を参照。
On Conversation Event Ten - On Conversation Event One を参照。
詳細については、以下を参照してください。
会話のタイプ
会話モーダルには放射状、ボックス、カスタムという 3 つのタイプがあります。 すべてのモーダルで、選択肢が表示され、イベントがトリガーされます。
ゲーム内では会話モーダルの一貫性を保ちます。 ある会話に放射状モーダルを選択した場合は、そのプロジェクトのすべての会話モーダルも放射状モーダルにします。
放射状
放射状モーダルでは、会話 UI と選択肢が 1 つの輪の上に表示されます。 このスタイルはフォートナイト バトルロイヤルの NPC とのインタラクションで使用されています。
ゲームで複雑な会話や込み入った背景を伴わない場合、放射状モーダルはアイテムの提供やゲーム内トランザクションの作成に適しています。
ボックス
ボックス モーダルでは、複雑に入り組んだストーリー展開のための十分なスペースが提供されます。 プレイヤーが何を読んでいるかを考え、読むという体験をできるだけ楽しくすることができます。 ロール プレイング ゲーム、ビジュアル ノベル、さらに多くのゲーム ジャンルで、インタラクションにボックス UI が使用されています。
ボックス モーダルには 3 つの異なる会話タイプのボックス スタイルがあります。
Standard (標準) - デフォルトのボックス タイプです。
Single Speaker (1 人のスピーカー) - スピーカーのアイコンが表示されるカスタマイズ可能なボックスです。
Two Speakers (2 人のスピーカー) - スピーカーのアイコンが表示されるカスタマイズ可能なボックスです。
スタンダード
Standard ボックス タイプは、ボックス内に NPC との会話が表示され、発話ボックスの横にプレイヤーの選択肢リストがあります。
Single Speaker
Single Speaker ボックス タイプは、ボックス内にスピーカーの名前とテキストが表示され、発話ボックスの右側に反応ボタンがあります。 デフォルトの Standard オプションとは異なり、[Conversation Material (会話マテリアル)] オプションを選択すると、UI マテリアルを使用して発話ボックスの上にスピーカーを表示することができます。
カスタム スピーカー アイコンを設定する方法については、「カスタム会話 UI」を参照してください。
Two Speakers
Two Speakers ボックス タイプは、ボックス内に現在のスピーカーの名前とテキストが表示され、発話ボックスの右側に反応ボタンがあります。 現在のスピーカーを識別するため、このボックス タイプにも UI マテリアルを使用することができます。 会話グラフに 2 人のスピーカーを設定する方法については、「会話を作成する」を参照してください。
カスタム
カスタム モーダルを使用して、会話 UI のすべての部分に完全にカスタムな外観を作り出すことができます。 カスタマイズされた UI を使用すれば、ゲーム内の会話の口調やスタイルを確立することができます。
カスタム会話モーダルはウィジェット エディタを使用して制作されます。 カスタム会話 UI を作成する方法については、「カスタム会話 UI」を参照してください。
カスタム モーダルでは、会話の仕掛けを割り当てる必要があり、 カスタム UI を使用して会話を正常に開始するようにその仕掛けを設定する必要があります。
カスタム ウィジェットがゲーム内でどのようなものかを次の簡単な例に示しています。
会話エディター
すべての対話は、会話の階層を記入するためのノードを使用して、会話エディタ内で作成されます。
会話エディタは、会話グラフを作成できる唯一の手段です。 会話グラフは単純にすることも複雑にすることもできます。 会話グラフでは応答に関する上限はありませんが、特定のモーダルで一度に扱える応答の数には上限があります。
会話グラフは、会話エディタ内で作成されます。 会話バンクをダブルクリックすると会話エディタが開きます。 エディタを使用するには、グラフ領域内で右クリックし、右クリックのノード選択メニューでノードを選択します。
会話エディタには次の 4 つの重要なパーツがあります。
画像をクリックして拡大
ノード グラフ:会話の階層は、会話ノードをスタックおよびリンクすることによって構築されます。
右クリックのノード選択メニュー:すべての会話ノードが入っています。 ノードを選択すると、グラフに追加されます
[Details] パネル:ノードの編集可能なテキストとイベント領域。
会話ツリー:ノードの階層および Response ノードに割り当てられているテキストが表示されます。
会話グラフ
会話グラフは、一連の会話ノードをまとめてリンクすることによって作成されます。 ノードでは、グラフ階層を使用して、プレイヤーが会話のどこにいるか、およびグラフがいつ完了するかが判断されます。 これはフローチャートと似ています。
会話の典型的なデザインは次のようになります。
会話グラフは Default Entry Point ノードで始まります。 このノードは、最初の Speech ノードを指しており、そこから会話が始まります。
Speech ノードには、プレイヤーを会話ツリーに導く何らかの紹介テキストがあります。
このセクションにあるノードは、会話ツリーの先頭に戻ります。
このセクションにあるノードは、判断することをプレイヤーに促します。
このセクションにあるノードは、会話ツリーの先頭に戻ります。
このセクションにあるノードは、会話ツリーの先頭に戻ります。
ノード階層では、会話ツリー内でのプレイヤーの選択に基づいてプレイヤーが進むことができる会話の深さを追跡します。 階層は、イベント、応答、会話ノードをグラフに追加することによって作成されます。
会話ノード
会話ノードは、会話におけるアクションのベースです。 たとえば、会話を始めたり、プレイヤーが選択するボタンで表される選択肢の選択を提供したりします。
ノードには、[Details] パネルで編集可能なフィールドがあり、 そこにテキストを入力します。 次の表は、さまざまな会話ノードについて説明しています。
| ノード名 | 説明 |
|---|---|
Default Entry Point | Default Entry Point ノードは会話グラフの始まりです。 |
Speech | これは、ほとんどの会話で使用されるメインのノード タイプです。 このノードは、NPC または会話ターゲットによって再生中にプライマリ UI に表示されるテキスト選択を作成します。 このフィールドでは、テキストを入力するメッセージ領域が使用されます。 |
Response | このノードは、会話での選択肢を作成するために使用されます。 1 つの Speech ノードから分岐する複数の Response ノードを使用すると、会話が停止し、ユーザーが複数の選択肢から選択できるようになります。 このノードには、ゲーム中に会話が再生される際に選択肢として表示されるテキストを入力できます。注:Radial ノードでは一度に最大 5 つの選択肢まで、Custom ノードでは最大 6 つの選択肢まで、Box ノードでは無制限に表示できます。 |
Repeat | このノードは、グラフ内でつながれている直前のノードに戻ります。 Speech ノードがない場合は、プレイヤーが手動で会話をやめる必要があります。 [Number Of Times To Repeat (繰り返し回数)]、および [Number Of Times To Repeat] に設定されている回数だけ繰り返すかどうかを設定できます。 [Number Of Times To Repeat] が 0 に設定されていれば、無制限に繰り返されます。 |
Event | Event ノードは、会話グラフで会話の仕掛けと関連付けられている仕掛けイベントをトリガーします。 |
Restart Conversation | Restart Conversation はプレイヤーを会話ツリーの開始に戻します。 |
Reroute | Reroute ノードは、会話グラフを視覚的に読みやすくします。 Reroute ノードから離れることができる実行ラインは 1 つだけですが、グラフ内の多数のソースから受け取ることができます。 |
Set Conversation Material | このノードは、会話の仕掛けで次のいずれかの会話タイプが使用されている場合に、アタッチされている会話バンクにカスタム マテリアルを追加します。
UI ウィジェットでは、CreativeModalDialogVariant ビューモデルの Make Image Brush from Material 関数を使用してこれを実行します。 これは、関連付けられているユーザーが参加している現在の会話にのみ適用され、仕掛けに設定されている値は、新しい会話が開始されると使用されます。 |
Set Conversation Speaker Name | Set Conversation Speaker Name ノードは、仕掛けのスピーカー名を設定します。 これは、現在の会話にのみ適用され、仕掛けに設定されている値は、新しい会話が開始されると使用されます。 |
Hide Conversation | このノードは、会話 UI を非表示にします。 これは、ユーザーが参加している現在の会話にのみ適用され、仕掛けに設定されている値は、新しい会話が開始されると使用されます。 |
Play Conversation Animation | このノードを使用すると、会話タイプが Box または Custom に設定されている場合にアニメーションを再生することができます。 カスタム UI には適切なビューモデルの設定が必要です。 ボックス アニメーションは、会話でボックス UI が使用される場合に再生されるアニメーションです。 会話 UI には次のアニメーション スタイルが使用されます。
ビューモデルで使用される進行値は、ビューモデルに設定されている他の値と一緒にアニメーションの一時停止と再生に使用することができます。 |
Set Conversation Text Speed | このノードは、仕掛けの CharactersPerSecond 値を設定します。 これは、関連付けられているユーザーが参加している現在の会話にのみ適用され、仕掛けに設定されている値は、新しい会話が開始されると使用されます。 |
ノードのアクティブ化順序
ノードは、それらがつながれている順序でアクティブ化されます。 次の例を見てください。
この例では次のようになります。
この Speech ノードは Conversation Event ノードより前に Default Entry Point ノードにつながれたため、Speech ノードがアクティブになります。 Conversation Event は無視されます。
Continue メッセージが入っている Response ノードは、Speech ノードにつながれているため、プレイヤーによって選択されるとアクティブになります。
この Speech ノードは応答の後にアクティブになります。
2 つの Response ノードは、一つにまとめられてから、選択可能なオプションがユーザーに提示されます。
矢印は会話の流れを示しています。