没入型ナラティブ

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ダークの向こうに デモと同様に、私たちの初期の決定の一つは、ゲームプレイと物語の多くを世界自体の内部で語ることにすることでした。これはプレイヤーに進行状況をユーザーインターフェースを通じて伝えつつ、同時に彼らが構築した世界の中に本当にいるかのように感じさせる必要があるため、難しいプロセスになることがあります。私たちの体験のためにこれらの目標を達成するために、プレイヤーへの情報伝達方法を以下の4つのテクニックに分解しました:

  1. 視覚的ヒント - ストーリーを受動的に強化したり、世界に適したタイミングでプレイヤーにヒントを与えるオブジェクト、画像、アセットの配置。
  2. ロア - プレイヤーが特定のアイテムをクリック/タップすると、重要なストーリー情報が画面全体に表示されます。このナラティブは、オブジェクトをクリック/タップしたプレイヤーにのみ表示されます。その口調は常に情報的です。
  3. 思考バブル - プレイヤーが家の特定のアイテムをクリック/タップすると、テキストダイアログの「反応」がオブジェクトの近くに表示されます。このナラティブは、オブジェクトをクリック/タップしたプレイヤーにのみ表示されます。その口調は常に一人称で観察的です。
  4. アナウンス - プレイヤーが家の腐敗したアイテムをクリック/タップすると、三人称のダイアログが全てのプレイヤーの画面に同時に表示されます。このナラティブは時々、全てのプレイヤーをその部屋の腐敗状態に移行させる場合があります。

このセクションでは、これらのテクニックと特定の機能をどのように使用して、プレイヤーを私たちのナラティブに没入させつつ探検を促進し、進行状況を伝え、ゲームプレイを個々のプレイヤーに親密でありながらマルチプレイヤー体験に公平に保つかを示します。

キャラクターの内面的な思考の上に表示されるアナウンス。
特定の物体を選択したときに表示される思考バブルやオブジェクト特有のダイアログ。

視覚的ヒント

視覚的ヒントは、ナラティブを強化し、プレイヤーが目的について知る必要がある情報を言葉を使わずに伝える重要なツールです。黒板、像、壁紙などのアセットの配置を使い、ダヴォールドライブのメインキャラクターに関する深い情報や、侵入的なUI要素を含めずにパズルを解決するための指導を提供することができました。このプロセスを開始するために、まずプレイヤーに何を伝えたいのかを考え、それを私たちの体験の世界の中でどのように伝えるかを考えました。例えば、私たちはプレイヤーが祖父が死を拒む使命にどれほど執着していたかを理解してほしかったので、彼の部屋を散らかし、彼の研究や彼の走り書きの思考がある壁をたくさん残しました。

祖父の部屋の落書きは、祖父の強迫的な性質を伝えます。
多数の彫刻や参考写真が、娘がアーティストであることを示しています。

私たちの第一のルールは、プレイヤーに何かを教えるために視覚的ヒントを使用する場合、それはプレイヤーが存在しない場合でも存在する理由がなければならないということでした。パズルに関する明確な指示が書かれた巨大な看板を立ててしまうと、それは家の中では場違いに見えるでしょう。しかし、祖父がすべてのものに絵を描くことに夢中になっていると設定すれば、特に彼の寝室の壁にまで絵を描いているので、プレイヤーがフォローするための計画が書かれた黒板があるのははるかに信じやすいです。

私たちの第二のルールは、プレイヤーに何をすべきかやパズルを解決する方法を常に伝える必要はないということです。彼らは環境について直感的です。例えば、倒れた電線が水たまりの中にあるとき、それはプレイヤーにその方向に進むと電気に打たれる危険があることを伝えるための十分な視覚的ヒントです。

ロア

視覚的ヒントを使ってプレイヤーを受動的に誘導することに加えて、私たちはまた、家の特定のアイテムをクリックまたはタップするたびに、家族に関する重要なストーリー情報を画面全体に表示することにしました。ロアを表示するためにプレイヤーが選択する必要があるオブジェクトをガイドするために、新しいハイライト視覚効果を使用して特定のオブジェクトを周囲から際立たせました。この効果は、オブジェクト自体の形にフィットした特定の色でオブジェクトをアウトラインまたは重ね合わせることができ、他のオブジェクトがカメラに近い場合、ハイライトを隠すかどうかを選択できます。

最初、我々はプレイヤーが相互作用できるすべてのオブジェクトに対してHighlightを使用しましたが、視覚的雑音が圧倒的で、プレイヤーはロアを読むために何に相互作用するべきかを明確に知ることができませんでした。そこで、私たちはそれを腐敗したり危険なアイテムをハイライトするためだけに使用することに決め、この視覚的フィードバックによってプレイヤーは物語を容易に進めることができました。

面白い事実:私たちは最初、クリックできるすべてのものにロアがあったのです!これは、プレイヤーがどの情報が重要でどの情報が単なる雰囲気なのかを判断できなかったため、役に立ちませんでした。最終的に、私たちは多くのロアを削除し、視覚的ヒントを使用して残りのナラティブをプレイヤーの想像力に委ねました。

プレイヤーがロアのあるオブジェクトをクリックすると、画面上部に情報を表示する方法が必要でした。そこで、ScreenGuiを使用して画面上のUIコンテナを作成し、子としてFrameを使ってその子のTextLabelsImageLabelsのサイズや再スケーリングを制御することにしました。TextLabelsImageLabelsの位置とスケールのプロパティを設定して、それらが視覚的にフィットし、プレイヤーが体験にアクセスするために使用するさまざまなデバイスに対してスケールするようにしました。

TextLabelsImageLabelsは、それぞれのテキストや画像の視覚的要素に影響を与え、色、透明度、サイズ、配置を含みます。特にTextLabelsに関しては、そのTextLabel.TextScaledTextLabel.RichTextのプロパティを調整することでテキストのレイアウトや視覚スタイルを制御できます。TextLabel.TextScaledを使用すると、テキストが親UI要素のスペース全体を埋めるようにスケーリングできますし、TextLabel.RichTextを使用すると、テキストの部分を太字、斜体、色、または異なるフォントでスタイリングするためのシンプルなマークアップタグを使用できます。

私たちは、プレイヤーがPC、コンソール、モバイルデバイスを含むさまざまなデバイスからこの体験にアクセスすることになることを知っており、プレイヤーが体験内でインタラクトするために画面をクリックまたはタップできる必要があることが分かりました。私たちは物語の邪魔をする多くのボタンを画面に表示したくなかったので、すべての画面サイズに対応するため、ロアオーバーレイのどこでもクリックまたはタップしてコンテンツを閉じてゲームプレイに戻れるように、画面全体のサイズの不可視のバックボタンを作成しました。

思考バブル

プレイヤーのキャラクターがアイデアをプレイヤーに伝える方法が必要でした。追加のナラティブ要素や、彼らが何をする必要があるかを強化するためのものです。私たちの解決策は、プレイヤーが非ロアオブジェクトを選択したときに、その近くに思考バブル、またはプレイヤーのキャラクターからのテキスト反応を表示することでした。このナラティブは、オブジェクトをクリックまたはタップしたプレイヤーにのみ表示され、トーンは常に一人称で観察的です。

プレイヤーの相互作用に対して世界が反応するための比較的シンプルでありながら強力なシステムです!

思考バブルを作成するために、私たちはBillboardGuiを親として、非ロアオブジェクトに子としてTextLabelを追加しました。これにより、オブジェクトの近くの3D空間にダイアログを表示でき、テキストが画面全体を占めることはありませんでした。ロアを作成するプロセスに似て、私たちはTextLabel.RichTextプロパティを使用してテキストをスタイリングし、プレイヤー自身の思考を中断する他の異世界の存在のような視覚効果を追加しました。以下は、下の画像を作るために使用されたRichText HTMLの例です。

"What is…this…<br/><stroke color="#dcc7ff" joins="miter" thickness="2" transparency="0.5"><font size="60"><font color="rgb(10,8,11)"><i>....hunger….void….pull…</i></font></font></stroke>

TextLabelsを画像の代わりに使用することで、テキストをRobloxが読みやすく保ち、このコンテンツを自動的にローカライズし、何もせずに多くのプレイヤーにアクセス可能にすることができました!このプロセスの詳細については、自動翻訳を参照してください。

アナウンス

私たちはプレイヤーのキャラクターが世界に反応することを望んでいましたが、同時に世界自体が彼らの存在に反応することも望んでいました。この目標を達成するために、私たちは全てのプレイヤーの画面に同時に表示されるアナウンス、または三人称のダイアログを含めました。ロアと同様に、私たちはScreenGuiを使用して画面上のUIコンテナを作成し、子としてTextLabelを追加しました。また、TextLabel.RichTextプロパティを使用して、ダイアログの色、フォント、サイズを変更し、家の中でプレイヤーに話しかける異なる「存在」を伝えました。

プレーンな白いテキストのアナウンスは、プレイヤーのキャラクターの反応であり、オブジェクトではなくエリアに一般的なものでした。
紫色のテキストのアナウンスは、腐敗した存在からの反応でした。
黄色いテキストのアナウンスは、復元された存在からの反応でした。

TextLabel.RichTextプロパティを使用し、変更を加えるためにいくつかのHTMLコマンドを提供することで、文の途中で変更を加えることもできました!例えば、以下のリッチテキストマークアップを使用すると、プレイヤーキャラクターの反応を腐敗した存在の考えで中断することができました:

What is…this…<br/><stroke color="#dcc7ff" joins="miter" thickness="2" transparency="0.5"><font size="60"><font color="rgb(10,8,11)"><i>....hunger….void….pull…</i></font></font></stroke>

私たちは、プレイヤーが入った場所や特定の目標を達成することによってトリガーされるこの種のアナウンスをいくつか持っていました。多数の個別のScreenGuisを避けるために、デモ内で別のスクリプトを使用して、スクリプトに提供するテキストを提供しました。そのスクリプトは、私たちがStoryNoteと呼ぶ単一のオブジェクトに追加されました。このオブジェクトは、子としてTextLabelを持つ単一のScreenGuiでした。スクリプティングを使用することで、我々は必要なフレーズを直接単一のTextLabelに注入することができ、プレイヤーに何をどのように伝えたいかを考えながら変更を行うのがずっと簡単になりました!

StoryNoteは、スクリプトを介してそれをトリガーする任意のインスタンスを呼び出すためのオブジェクトでした。これと同じスクリプトが各イベントのために必要なテキストやフォーマットを提供しました。
オブジェクトを呼び出し、イベントごとにテキストを定義するスクリプトの例。
TextLabelは実際には空白で、スクリプトを使用して必要に応じてRichTextを同じオブジェクトに注入しました。
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。