プレイヤーがゲーム内で結果に影響を与える選択をしたり、アイテムを購入したり、NPC のタスクを完了して報酬を受け取ったりするような、魅力的な対話システムを作りたいですか? 会話の仕掛けを使用すると、没入感があり、有益で、エンターテインメント性のある会話を作成できます。 プレイヤーに必要不可欠なリソースと情報を提供することで、ゲームのストーリーを進めることができます。
ポップアップダイアログの仕掛けのコア機能は、会話の仕掛けと共有されています。 両方の仕掛けを使用すると次のことができます。
メッセージや指示をプレイヤーに表示する
目標の背景情報を表示 (トラッカーの仕掛けと併用する場合)
目に見えないクラスセレクターの仕掛けにつないで、プレイヤーがそのクラスを選択できるようにします。
プレイヤーと NPC の間の対話を作り出す
会話 の仕掛けを使用すると、イベントをトリガーし、ゲームの結果を変える選択をプレイヤーが行う会話にレイヤーを追加することで、機能をさらに進めることができます。
Unreal Editor for Fortnite (UEFN) では、この仕掛けを使用して、次のことを行います。
会話ツリーを作成する
分岐する対話にする
会話ツリー内でイベントを使用して他の仕掛けをトリガーする
複雑で動的な NPC 会話の例として、物語とロールプレイ・テンプレートをスター・ウォーズ™島ゲームコレクションでご覧ください。
仕掛けを見つけて使用する
会話の仕掛けは「Fortnite > Devices > UI」フォルダにあります。 コンテンツブラウザから仕掛けをドラッグし、ビューポート内で NPC スポナーまたはキャラクターのいずれかの仕掛けのそばに配置します。
この仕掛けの一般的なワークフローは次のとおりです。
会話の仕掛けをレベルに配置し、キャラクターの隣に配置します。
仕掛けを設定するセクションで示されているとおりに会話ツリーを設定します。
イベント バインディングを使用して会話を開始させる機能を使用するか、Verse を使用して別の仕掛け (トリガーやボリュームの仕掛けなど) から InitiateConversation を呼び出します。
ゲームを開始し、キャラクターまたは NPC とやり取りして会話を開始します。
仕掛けが適切に設定されていれば、会話が開始されます。
仕掛けを設定する
会話の仕掛けをレベルにドラッグします。
会話バンクはダイアログツリーが含まれているアセットです。 [Conversation (会話)] オプションのドロップダウンをクリックし、[Create New Asset (新規アセットを作成)] の下にある [Conversation Bank (会話バンク)] を選択して会話バンクを作成します (下図を参照)。
または、コンテンツブラウザ内で右クリックして、[Gameplay (ゲームプレイ)] > [Conversation Bank (会話バンク)] を選択すると、会話バンクアセットを作成できます。 その後、[Conversation (会話)] オプションを使用してそのアセットを見つけて選択できます。
新規作成したアセットをダブルクリックして [Conversation Editor (会話エディタ)] を開きます。
ノードを追加して会話を作成します。 グラフ領域内で右クリックし、[Entry Point (エントリポイント)] の下にある [Default Entry Point (デフォルトエントリポイント)] ノードをグラフにドラッグします。 すべての会話はここから始まります。
会話エディタとそのコンポーネント、および会話グラフの作成方法の詳細については、会話の作成を参照してください。
会話のタイプ
会話モーダルには放射状、ボックス、カスタムという 3 つのタイプがあります。 全ての会話ボックスは選択肢を表示し、イベントをトリガーできます。
ゲーム内では会話モーダルの一貫性を保ちます。 ある会話に放射状モーダルを選択した場合は、そのプロジェクトのすべての会話モーダルも放射状モーダルにします。
放射状
放射状タイプでは、会話 UI と選択肢が 1 つの輪の上に表示されます。 このスタイルはフォートナイト バトルロイヤルの NPC とのインタラクションで使用されています。
ゲームで複雑な会話や込み入った背景を伴わない場合、放射状タイプはアイテムの提供やゲーム内トランザクションの作成に適しています。
ボックス
ボックスタイプでは、複雑に入り組んだストーリー展開のための十分なスペースが提供されます。 プレイヤーが読むテキストの内容を考え、体験をできるだけ楽しめるものにしましょう。 ロールプレイングゲーム、ビジュアルノベル、その他多くのゲームジャンルではインタラクションにボックス UI が使用されています。
ボックスタイプには 3 つの異なる会話タイプのボックススタイルがあります。
標準 - デフォルトのボックスタイプです。
Single Speaker (1 人のスピーカー) - スピーカーのアイコンが表示されるカスタマイズ可能なボックスです。
話者 2 人 - 話者のアイコンが表示されるカスタマイズ可能なボックスです。
スタンダード
標準ボックスは発話ボックスにNPCとの会話を表示し、発話ボックスの横にはプレイヤーの選択肢がボタンとして表示されます。 これはデフォルトのスタイルです。
Single Speaker
Single Speaker ボックス タイプは、ボックス内にスピーカーの名前とテキストが表示され、発話ボックスの右側に反応ボタンがあります。 デフォルトのスタイルとは異なり、発話ボックスの上に発話者を表すアイコンまたはその他のマテリアルを選択できます。
[Details (詳細)] パネルで [Conversation Materials (会話マテリアル)] オプションを見つけます。 配列要素を追加し、ドロップダウンをクリックしてマテリアルを選択します。 その後、会話グラフで Set Conversation Material ノードを追加して、そのマテリアルを話者に使用できます。
カスタム スピーカー アイコンを設定する方法については、「カスタム会話 UI」を参照してください。
Two Speakers
話者 2 人スタイルではボックス内に現在の話者の名前とテキストが表示され、発話ボックスの右側に反応ボタンがあります。 UI マテリアルをこのボックスタイプで使用して、どのキャラクターが現在の話者であるかを識別することもできます。 会話グラフに 2 人の話者を設定する方法については、会話を作成するドキュメントを参照してください。
カスタム
カスタムタイプを使用して、会話 UI の全ての部分に完全にカスタムな外観を作り出すことができます。 カスタマイズされた UI を使用すれば、ゲーム内の会話全ての口調やスタイルを確立することができます。
カスタム会話モーダルはウィジェット エディタを使用して制作されます。 カスタム UI ウィジェットを作成する方法の詳細については、カスタム会話 UI を参照してください。
会話の仕掛けの カスタム ウィジェット オプションで、カスタム UI ウィジェットを選択する必要があります。 カスタム UI を使用して会話を正常に開始するようにその仕掛けを設定する必要があります。
下の画像はカスタム UI の簡単な例を示していますが、カスタム UI ウィジェットは、必要に応じて複雑であったり見た目が美しいものにすることができます。
仕掛けのオプション
ビューポートに会話の仕掛けがあれば、その仕掛けにネイティブなツールを使用して、会話グラフの構築および会話の基本的なユーザー インターフェース (UI) のデザインを始めることができます。会話バンク アセットの構築に関する詳細情報については、会話の作成を参照してください。
以下のオプションを使用して、基本的な会話を作成できます。 デフォルトのオプションは太字で表示され、コンテキスト フィルタリングをトリガーする値は斜体で表示されます。
| オプション | 値 | 説明 |
|---|---|---|
会話のタイプ | 放射状、ボックス、カスタム | この会話がアクティブな際に表示される UI のスタイルの設定。 詳細については、上記の会話のタイプセクションを参照してください。 |
会話のタイプ ボックス | 標準、話者 1 人、話者 2 人 | このオプションは、会話タイプのオプションがボックスに設定されている場合にのみ表示されます。 これにより、会話モーダル UI で使用されるボックスのタイプが決定されます。 |
1 秒当たりの文字数 | 0.0、数値を入力 | 画面に表示される 1 秒あたりのキャラクター数を決定します。 デフォルトでは、全てのテキストが一度に表示されます。 |
テキストのクロールメッセージをスキップ | テキストを公開、テキストを入力 | 1 秒あたりの文字数オプションの値が 0 より大きい場合、プレイヤーがクリックすると全てのテキストを一度に表示できるボタンが表示されます。 このオプションは、そのボタンに表示されるテキストを決定します。 |
会話 | 会話バンク アセットを選択 | 仕掛けは、この会話バンク アセットを使用して会話を実行します。 |
話者の名前 | 名前を入力 | 会話中に話者の名前を表示します。 これが空白のままであれば、画面に名前は表示されません。 |
付近で名前を表示 | オン 、オフ | このオプションがオンに設定されている場合、プレイヤーがスピーカーから約 5 メートル以内にいるときにスピーカーの名前が表示されます。 |
吹き出しインジケーターを表示 | オン、オフ | プレイヤーが吹き出しインジケータの範囲オプションで設定された距離内にいる場合に、話者の上に吹き出しインジケーターが表示されるかどうかを決定します。 |
吹き出しインジケータの範囲 | 5.0 メートル、範囲を入力 | このオプションは、吹き出しインジケータを表示オプションがオンに設定されている場合にのみ使用できます。 プレイヤーが話者の上に表示された吹き出しインジケータを見ることができる範囲をメートル単位で決定します。 |
タイトルテキストのカラー | 99DDFFFF、カラーを選択 | このオプションは、会話タイプオプションがボックスに設定されている場合にのみ表示されます。 タイトルテキストの色を決定します。 |
タイトルの枠カラー | FFFFFF00、色を選択 | このオプションは、会話タイプ オプションがボックスに設定されている場合にのみ表示されます。 タイトルの枠線の色を決定します。 |
タイトルの背景カラー | 003D94CC、色を選択、色を選択 | このオプションは、会話タイプ オプションがボックスに設定されている場合にのみ表示されます。 タイトル テキストの背景色を決定します。 |
本文のテキストカラー | FFFFFFCC、色を選択 | このオプションは、会話タイプ オプションがボックスに設定されている場合にのみ表示されます。 本文テキストの色を決定します。 |
本文の枠カラー | 003D94CC、色を選択 | このオプションは、会話タイプ オプションがボックスに設定されている場合にのみ表示されます。 本文テキスト周りの縁取り枠の色を決定します。 |
ボタンテキストのカラー | FFFFFFFF、色を選択 | このオプションは、会話タイプ オプションがボックスに設定されている場合にのみ表示されます。 ボタン上のテキストの色を決定します。 |
本文の背景カラー | 00000080、色を選択 | このオプションは、会話タイプ オプションがボックスに設定されている場合にのみ表示されます。 本文の背景の色を決定します。 |
ボタンの背景カラー | 00000080、色を選択 | このオプションは、会話タイプ オプションがボックスに設定されている場合にのみ表示されます。 ボタンテキストの背景の色を決定します。 |
ボタンのカーソル合わせ時のカラー | 003D94CC、色を選択 | このオプションは、会話タイプ オプションがボックスに設定されている場合にのみ表示されます。 マウスがボタンの上にホバーしたときのボタンの色を決定します。 |
会話のテキストをワールド空間に表示 | オン、オフ | このオプションは、会話タイプオプションが放射状またはカスタムに設定されている場合にのみ使用できます。 会話グラフ内にある発言ノードによって示されるように、会話テキストをワールド空間に表示します。 |
会話の上限数 | 1、数値を入力 | この会話のインスタンスが一度にいくつ発生できるかを決定します。 |
会話の上限到達時の名前 | 今は話せない、テキストを入力 | 会話の上限数の値に達したときに、話者の名前の代わりに表示されるテキスト。 |
会話の上限数到達時のカラー | FF0000FF、色を選択 | 会話の上限到達時の名前のカラー。 |
会話 | なし、会話バンク アセットを選択 | これは会話バンク アセットを指します。 ドロップダウンをクリックして、新規アセットを作成の下にある会話バンクを選択すると、新しい会話バンクアセットを作成できます。 |
会話の上限数到達時のアイコン | T_UI_NPC_SpeechIconNA、アイコンを選択 | 会話の上限数の値に達したときに表示されるアイコンを決定します。 |
押下されたサウンドのオーバーライド | なし、オーディオ キューを選択 | ボタンが押されたときに再生するカスタム サウンド キューを選択します。 |
ホバーしたサウンドのオーバーライド | なし、オーディオ キューを選択 | ボタンにマウスを合わせた時に再生するカスタム サウンド キューを選択します。 |
会話マテリアル | なし、配列要素を追加 | 会話グラフでSet Conversation Material ノードを使用する場合、ここでどのマテリアルを使用するかを指定します。 |
カスタム ウィジェット | なし、カスタム UI ウィジェットを選択 | 会話タイプをカスタムに設定した場合、ここで仕掛けが使用するカスタム UI ウィジェットを指定します。 |
機能とイベント
機能
| 機能 | 説明 |
|---|---|
会話を開始 | このイベントを起動したプレイヤーに対し、紐付けられた会話を強制的に開始させます。 |
会話を終了 | このイベントを起動したプレイヤーに対し、現在の会話を強制終了させます。 |
全ての会話を終了 | イベントを受信すると、全ての会話を中断します。 |
有効化 | イベントを受信すると仕掛けを有効にする。 |
無効化 | イベントを受信すると仕掛けを無効化する。 |
Hide Conversation | イベントを受信すると会話を非表示にします。 会話が非表示になると、反応を選択することができません。 |
会話を表示 | イベントを受信すると会話を表示します。 |
イベント
| イベント | 説明 |
|---|---|
会話の開始時 | 新しい会話が開始されたときにイベントを送信します。 |
会話の終了時 | 会話が終了すると、マップのイベントを発生させます。 |
会話のキャンセル時 | 会話を終了 または 全ての会話を終了 が呼び出され、会話が途中で終了させられると、このマップに向けてイベントを送信します。 |
いずれかの会話イベント時 | 関連付けられた会話バンク アセットから番号付けされたイベントが会話中にトリガーされると、イベントを送信します。 |
会話イベント時 [1~10] | 関連付けられた会話バンク アセットが、会話バンクの番号付きイベント (イベント 1~イベント 10) に対してトリガーされたときにイベントを送信します。 番号付きの会話イベントごとに、個別の会話イベント時があります。 |