プロジェクトで作成するストーリーの選択肢は、没入感がありプレイヤーに印象を与えるには、洗練されている必要はありません。 単純なやり取りであっても、ゲームプレイに大きな影響を与えることができます。
このページでは、会話の記述について短時間で説明し、その後にさまざまなタイプの会話をどのように組み立てるかに進みます。 UEFN の会話テンプレートに搭載されている、会話グラフの使用に関するヒントもいくつか紹介します。
会話の仕掛け自体の詳細については、「会話の仕掛け」ページを参照してください。
会話を記述する
会話の仕掛けを使用してストーリーをゲームプレイにつなぐ前に、会話がうまく流れていて、つじつまが合っていて、構築している体験に合っていることを確認します。 クリエイティブな記述が初めてであれば、次のことを行います。
ナレーションと会話を使用しているゲームをプレイする。 会話の記述が優れている (または、おそらく劣っている) と思える例があると、クリエイティブなプロセスに役立ちます。
発話ロールがある NPC について考える。 キャラクターがどこ出身か、どのような人生を送っているか、どのような人物かについてアイデアがあると、キャラクターによりふさわしい対話を記述することや、どのキャラクターも同じに聞こえないようにすることに役立ちます。
自分に関わる人々がどのような物の言い方をしているかについて考える。 そうすると、さまざまなキャラクターに適した声の抑揚や話し方を見つけ出すのに役立ちます。
会話中に何が起こっているかについて考える。誰かと話しているときでも人生は止まっていません。 会話がどこで行われているか、そして背景で何か起こっているかについて考えます。
ゲームでの対話
ビデオ ゲームでの対話は、プレイヤーが NPC とやり取りするだけでストーリー展開を変えることができること以外は、ムービーとよく似ています。 ゲームでは、対話を利用して次のようなことを行います。
背景情報を提供する
ゲームプレイについて説明したり、手掛かりを与えたりする
ゲーム内で物品やサービスを交換する
プレイヤーを特定の経路に導いたり、プレイヤーが行った選択に基づいてプレイヤーの経路を変えたりする
紹介は重要であり、NPC との遭遇は、プレイヤーを全体的な体験に没入させることに役立つ、ゲームプレイに不可欠な要素です。 プレイヤーは、ゲーム内での NPC の紹介を次の目的で必要とします。
NPC が誰であり、その NPC のゲームでの役割を把握する
NPC の行動に関する基本的な情報を受け取る
ゲームでの自分の立場を知る
対話は、通常の会話とできるだけ似ている必要があり、より自然な感じになるようにスラングや省略表現を使うことも必要です。
クエスト
特定のキャラクターを使用して、そのキャラクターだけが知っている情報を伝えることや、何か技術的なことをプレイヤーに明らかにすることができます。 また、NPC は手掛かりをもたらすことや、プレイヤーと共有できる秘密を知っていることもあります。
NPC との単純なやり取りがどのように見える可能性があるかについての概要を次の表に示しています。 NPC はクエストに参加するかどうかの選択肢をプレイヤーに与えています。
それぞれの応答には、プレイヤーがクエストを受け入れるか拒否するかを選択したときにトリガーされるイベントがあります。 プレイヤーがクエストを受け入れると、お金をもらい、その後のクエストでその NPC を使用することができます。 プレイヤーがクエストを拒否すると、新しいストーリー展開が作り出され、その後のクエストで NPC はプレイヤーを手助けしないため、ゲームプレイおよびストーリーの結果が変わります。
| プレイヤー | Speech | 応答 | 成果 | NPC |
|---|---|---|---|---|
NPC:「やあ! この作文を提出しなきゃいけないんだけど、それよりもハキーサック遊びをしに行きたいんだ。 代わりに作文を提出してきてくれる?」 | -- | -- | ||
-- | -- | あなた:「はい - 5 ゴールドでいいよ」 | はい:NPC は 5 ゴールド支払って、広場の方に向かって立ち去ります。 | -- |
-- | -- | あなた:「いいえ - そんなことするわけないよ」 | いいえ:NPC はこのことを覚えていて、別のクエストではあなたを手助けしません。 | -- |
-- | NPC:「ああ、いい人はなかなかいないね!」 | -- | -- | -- |
基本的な会話グラフを作成する
対話を通じて達成しようとすることに応じて、会話ツリーは大きいことも小さいこともあります。 会話バンクを作成し、会話エディタを開いて、次のようにグラフを作成し始めます。
グラフ領域内で右クリックし、ノード選択メニューで Default Entry Point ノードを選択します。
Default Entry Point ノードのボトム バーを左クリックし、矢印を新しい位置にドラッグします。 マウス ボタンを離すと、新しいノードを選択することができます。 ノード選択メニューで Speech ノードを選択します。 Speech ノードのオプションが [Details] パネルで開きます。
グラフ領域内で右クリックして、目的とするノードを作成してから、矢印を使用して 2 つのノードをリンクすることもできます。 ノードをつなぐには、ノードの下部にカーソルを乗せたままにし、黄色に変わったらドラッグします。 受け側ノードの上部バーが黄色に変わったらドラッグを止めます。
紹介テキストを [Message (メッセージ)] フィールドに入力します。
NPC がゲームで重要な役割を果たす場合は、ここで、ゲームでの NPC の役割を NPC に説明させることをお勧めします。
グラフ領域内で右クリックして Response ノードを選択します。 [Details] パネルで、NPC へのプレイヤーの望ましい返事を記述します。
複数の Response ノードを作成し、それらを同じ紹介 Speech ノードにつなぐこともでき、そうすると複数の会話経路になります。
Speech ノードには常に、NPC がプレイヤーに話しかける内容が入っています。 最初の Speech ノードは、NPC とプレイヤーの間の紹介にします。 その他の Speech ノードは、応答やイベントのアンカーとして機能します。
より適切に会話を整理するには Reroute ノード を使用します。 そうするには、つなぐ 2 つのノードの間に矢印を作成し、Reroute ノードを配置する位置でその矢印をダブルクリックします。 Reroute ノードを左クリックすると、その周りに枠線が示され、グラフの周りをドラッグできます。
Speech ノードを必要な数だけ作成します。 プレイヤーは、NPC から遠ざかることで、会話中にやり取りを終わらせることができます。
同じタイプのノード同士を矢印でつなぐことはできず、 そうしようとすると、操作が完了しません。
許容されているノードのつながりの一覧を次の表に示しています。 先頭が NO であるセルは、つながりが無効であることを表しています。
| -- | Default Entry Point | Conversation Event | 繰り返し | 応答 | Restart Conversation | Speech | ランダム |
|---|---|---|---|---|---|---|---|
Default Entry Point | Entry Point > Event | NO Entry Point > Repeat | NO Entry Point > Response | NO Entry Point > Restart | Entry Point > Speech | Entry Point > Random | |
Conversation Event | 該当なし | Event > Repeat | Event > Response | Event > Restart | Event > Speech | Event > Random | |
繰り返し | 該当なし | Repeat > Event | Repeat > Response | Repeat > Restart | Repeat > Speech | Repeat > Random | |
応答 | 該当なし | Response > Event | Response > Repeat | Response > Restart | Response > Speech | Response > Random | |
Restart Conversation | 該当なし | NO Restart > Event | NO Restart > Repeat | NO Restart > Response | NO Restart > Speech | NO Restart > Random | |
Speech | 該当なし | Speech > Event | Speech > Repeat | Speech > Response | Speech > Restart | Speech > Random | |
ランダム | 該当なし | Random > Event | Random > Repeat | NO Random > Response | NO Random > Restart | Random > Speech |
2 人のスピーカーの会話を作成する
Set Conversation Material ノードを使用すると、1 つの会話グラフに 2 人のスピーカーの会話を作成することができます。 Default Entry Point の下に 1 つ目の Set Conversation Material ノードを追加し、[Details] パネルでこのノードを最初のスピーカー用にカスタマイズします。
2 人目のスピーカーが登場するまで、会話を作成します。 ここで、2 つ目の Set Conversation Material ノードを設定し、[Details] パネルでこのノードを 2 番目のスピーカー用にカスタマイズします。
独自の会話 UI を作成すると、マテリアルのサイズをより詳細に制御できます。
イベントを追加する
Event ノードはイベントをトリガーすることや、選択肢の選択をプレイヤーに提供することができます。 基本的なイベントとして、ムービー シーケンスの仕掛けを使用して、プレイヤーが行った選択に反応する NPC や、ボス戦を勃発させるイベントなどがあります。
イベント ノードを作成するには、既存のノードの下部を左クリックしてドラッグし、ドロップダウン メニューで [Conversation Event] を選択します。 1 つの会話を最大で 10 個のイベントにつなぐことができます。 詳細については、会話の仕掛けのページを参照してください。
UI マテリアルを追加する
UI マテリアルを作成し、[Conversation Material (会話マテリアル)] オプションの下にある会話の仕掛けに追加します。 配列アイコン (+) をクリックし、マテリアルを [Index (インデックス)] リストに追加します。
Set Conversation Material ノードを Default Entry Point ノードの下に追加します。 これにより、会話の仕掛けでは、[Conversation Material] オプションとこの会話バンクを使用して会話 UI マテリアルが設定されるようになります。
会話を非表示にする/表示する
シネマティック エフェクトに関連して、会話を一時的に非表示にしたり、表示したりします。 これは、会話の仕掛けで Hide Conversation ノードと Hide Conversation 関数および Show Conversation 関数を併用して実行します。
Hide Conversation 関数は、キャラクターの会話 UI をプレイヤーから非表示にし、再び UI が表示されるまでオプションを選択できないようにします。 Hide Conversation ノードおよび関数を使用すると、プレイヤーの会話 UI が非表示になり、次のような状態になります。
会話が非表示になっている間、プレイヤーは反応の選択、確認、移動ができません。
再び会話をプレイヤーに表示して続けるためには、Verse コードまたは仕掛けのいずれかで、Show Conversation 関数をトリガーする必要があります。
Show Conversation 関数は、プレイヤーに会話 UI を表示します。 会話が再表示されると、プレイヤーは会話を続けて、オプションを選択することができるようになります。
整理された状態を維持する
このセクションでは、より複雑な会話を作成する際のベスト プラクティスについて説明します。 ここで示しているヒントはすべて、UEFN の [Feature Examples (機能例)] の会話テンプレートに記載されています。
コメント
コメントは、複雑な会話グラフを把握しやすくする手段です。 コメントは、さまざまな分岐経路を区別できるようにする 1 文字だけの短いものにすることも、会話の特定のセクションで何が起こっているかについてのより詳細な説明にすることもできます。
新しいコメントを作成するには、グラフ上のノード (複数可) を選択して C キーを押します。 そうすると、タイトル付きのテキスト ボックスが生成されます。
コメントの [Details] パネルで、領域の色、ズームアウト時に吹き出しを表示するかどうか、吹き出しの色、コメントに含まれているノードとともにコメントが動くかどうかを選択できます。
Reroute ノード
Reroute ノードは、その名前が示すとおりのこと、つまり、再ルーティングを行います。 会話が複数の方向に分岐している場合は、Reroute ノードを使用して、論理的なフローを整理することができます。 そうしないと、ノード間の矢印が画面上で交差してしまって、グラフの見た目がかなり悪くなる場合があります。
Reroute ノードを使用して整理された状態を保つことで、会話の流れを意図どおりにすることができ、既存の経路に変更を加える柔軟性を保つことができます。
以下に示している複雑な会話を見ると、 Reroute ノードを使用して、プレイヤーが選択肢に応じて取ることができるさまざまな経路がきれいに整理されています。 ここで、スライダを左側に動かすと、Reroute ノードを使用していない同じ会話を確認できます。 個人的な好みになってしまいますが、会話が複雑になるほど、勘違いする可能性が高くなります。