プロキシミティプロンプト

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

ProximityPromptオブジェクトは、ユーザーがドア、ライトスイッチ、ボタンなどの体験内のオブジェクトに近づいたときにアクションをトリガーするように促します。このオブジェクトを使用すると、次のことができます。

  • ユーザーが体験内でインタラクトできるオブジェクトを示す。
  • ユーザーがオブジェクト上で取ることができるアクションを表示し、その後、キーを押したり長押ししたりするなどのユーザーの入力を介してアクションをトリガーする。
  • キーボード、ゲームパッド、タッチスクリーンキーなど、すべての入力タイプに対する正しい入力を表示する。

プロキシミティプロンプトの作成

プロキシミティプロンプトは、ユーザーがインタラクトすることを希望するパート、モデル、またはアタッチメントに親を付ける必要があります。BasePartModel、または Attachmentオブジェクトにプロキシミティプロンプトを追加するには:

  1. Explorerウィンドウで、BasePartModel、またはAttachmentにカーソルを合わせて、⊕ボタンをクリックします。コンテキストメニューが表示されます。

  2. メニューから、ProximityPromptを挿入します。

    アタッチメントに親付けされたプロキシミティプロンプトを示すエクスプローラ階層

プロキシミティプロンプトのカスタマイズ

プロキシミティプロンプトをカスタマイズするには、その外観表示されるタイミング、およびユーザーがアクションをトリガーするために何をするかに基づいてカスタマイズできます。

外観

プロキシミティプロンプトは、三つのことを伝える必要があります。

  • ユーザーがインタラクトできるオブジェクト
  • プロキシミティプロンプトにインタラクトしたときにトリガーされるアクション
  • ユーザーが押す必要があるキー

これを以下のプロパティで指定できます。

  • ObjectText ユーザーがインタラクトできるオブジェクトのオプションの名前。

  • ActionText ユーザーがトリガーするアクションのオプションの名前。

  • KeyboardKeyCode ユーザーがアクションをトリガーするために押す必要があるキーボードキー。

  • GamepadKeyCode ユーザーがアクションをトリガーするために押す必要があるゲームパッドキー。

    プロキシミティプロンプトの基本要素を示す図

表示

プロキシミティプロンプトが表示されるタイミングは、MaxActivationDistanceRequiresLineOfSight、および Exclusivity プロパティを使用して制御できます。

MaxActivationDistance

MaxActivationDistanceプロパティは、プロキシミティプロンプトの可視性をアクティベートする周囲の範囲を定義できます。ユーザーのキャラクターがその範囲に入ると、プロキシミティプロンプトが表示されるようになります。

キャラクターのプロキシミティプロンプトオブジェクトからの距離が、プロンプトの画面表示にどのように影響を与えるかを示す図

RequiresLineOfSight

RequiresLineOfSight プロパティは、カメラからProximityPromptオブジェクトへの明確な経路があるときにプロキシミティプロンプトの可視性をアクティブにします。デフォルトでは、このプロパティはtrueに設定されています。

Exclusivity

ユーザーのキャラクターが複数のプロキシミティプロンプト内にある場合、各プロキシミティプロンプトの可視性は、カメラが指しているプロキシミティプロンプトによって決まります。また、各プロキシミティプロンプトの Exclusivity プロパティの値にも依存します。

OnePerButtonの排他性に設定されたプロキシミティプロンプトオブジェクト
キーコードごとに一つのプロキシミティプロンプトのみが表示されます。範囲内の複数のプロキシミティプロンプトが異なるキーコードを使用している場合、それらはすべて表示されます。ただし、範囲内の複数のプロキシミティプロンプトが同じキーコードを使用している場合、カメラの視線方向に応じて、同時に一つのプロキシミティプロンプトのみが表示されます。

インタラクティビティ

プロキシミティプロンプトとユーザーがどのようにインタラクトするかを、HoldDuration および ClickablePrompt プロパティを使用してカスタマイズできます。

HoldDuration

HoldDurationプロパティは、ユーザーがキーを押す時間を定義します。この時間が経過すると、プロキシミティプロンプトのアクションがトリガーされます。このプロパティの値が0の場合、プロキシミティプロンプトのアクションは直ちにトリガーされます。

ClickablePrompt

ClickablePromptプロパティは、ユーザーがプロキシミティプロンプトをクリックしてアクションをトリガーできるかどうかを指定します。trueに設定されている場合、ユーザーはプロキシミティプロンプトを直接クリックするか、指定されたキーを押すことによって、プロキシミティプロンプトとインタラクトできます。falseに設定されている場合、ユーザーは指定されたキーを押すことによってのみプロキシミティプロンプトとインタラクトできます。

スクリプトプロキシミティプロンプト

プロキシミティプロンプトイベントに接続するには、ProximityPromptオブジェクト自体または ProximityPromptServiceを介してグローバルに行うことができます。ProximityPromptServiceを使用すると、すべてのプロキシミティプロンプトの動作を一つの場所から管理できるため、体験内の重複したコードの必要がなくなります。

イベント説明
PromptTriggeredプレイヤーがプロキシミティプロンプトとインタラクトしたときに発火します(HoldDurationがゼロ以外の期間を持つプロンプトの後)。
PromptTriggerEndedプレイヤーがプロキシミティプロンプトとのインタラクションを停止したときにトリガーされます。
PromptButtonHoldBeganプレイヤーが非ゼロのHoldDuration値を持つプロキシミティプロンプトとのインタラクションを開始したときに発火します。
PromptButtonHoldEndedプレイヤーが非ゼロのHoldDuration値を持つプロキシミティプロンプトとのインタラクションを停止したときに発火します。
PromptShownプロキシミティプロンプトが表示されるときにLocalScriptsでトリガーされます。
PromptHiddenプロンプトが隠されるときにLocalScriptsでトリガーされます。

以下のコードサンプルは、ProximityPromptServiceを使用するための基本的なフレームワークを含んでいます。


local ProximityPromptService = game:GetService("ProximityPromptService")
-- プロンプトがトリガーされたときを検出
local function onPromptTriggered(promptObject, player)
end
-- プロンプトの保持が開始されたときを検出
local function onPromptHoldBegan(promptObject, player)
end
-- プロンプトの保持が終了したときを検出
local function onPromptHoldEnded(promptObject, player)
end
-- プロンプトイベントをハンドリング関数に接続
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。