👆

【Roblox】ProximityPromptを使ってプレイヤーにインタラクションを促す

2024/06/16に公開

はじめに

こんにちは、まつさこ です。

今回は、Roblox Studio でプレイヤーにインタラクションを促すための機能である ProximityPrompt について紹介します。

ProximityPrompt を使うことで、プレイヤーに対して近くに何かがあることを知らせることができ、プレイヤーがそのオブジェクトに対してインタラクションを行うことができます。

ProximityPrompt の実装方法と、気を付けるべきアンチパターン(ProximityPrompt が正常に動作しない作り方)についても解説します。

ProximityPrompt とは

ProximityPrompt は、プレイヤーに対して近くに何かがあることを知らせるための機能です。例えば、ドアを開けるためのボタンや、アイテムを拾うためのボタンなど、プレイヤーがインタラクションを行うためのトリガーとして利用されます。

オブジェクトに近づくと、PCであれば「E」ボタンを、モバイルデバイスであればタップを促すUIが表示され、プレイヤーがそのボタンを押すことでインタラクションを行うことができます。

公式ドキュメントはこちら。

ProximityPrompt の設置

ProximityPromptは

  • Part
  • Attachment
  • Model(PrimaryPartが設定されているもの)

の子要素として設置された時のみ、正常に動作します。

① Part に ProximityPrompt を設置する場合

ProximityPrompt の親要素のPartの位置に、UIが表示されます。


② Attachment に ProximityPrompt を設置する場合

Attachmentの位置に、UIが表示されます。


③ Model に ProximityPrompt を設置する場合

ModelのPrimaryPartの位置に、UIが表示されます。


ProximityPrompt の設置のアンチパターン

ProximityPrompt が正常に動作しない作り方を紹介します。上で紹介した3つの方法以外は動かないのですが、やってしまいがちなミスについていくつか紹介します。

❌ PrimaryPart が設定されていない Model に ProximityPrompt を設置する

ModelのPrimaryPartが設定されていない場合、ProximityPrompt は正常に動作しません。


❌ Tool に ProximityPrompt を設置する

ToolにProximityPromptを設置しても、正常に動作しません。
自分のToolとしてBackpackから取り出したToolではもちろん動作しませんし、他のプレイヤーが持っているToolにも反応しません。


ProximityPromptをつけたToolを自分で取り出した場合


ProximityPromptをつけたToolを他のプレイヤーが取り出したものに、近づいた場合

ProximityPrompt の動作実装

ProximityPrompt 挙動を、Properties で細かく設定できます。

Property 説明
ActionText UIに表示されるテキスト
HoldDuration 長押し時間の設定
KeyboardKeyCode インタラクションするキーの設定
MaxActivationDistance UIが表示される最大距離
ObjectText UIに表示されるサブのテキスト

上の画像の設定で動作させたときの様子がこちらです。MaxActivationDistance を30にしたので遠くからでも反応しており、ActionText や ObjectText に設定したテキストが表示されています。また、キーが「P」になっており、長押しすることでインタラクションが可能になっています。

ProximityPrompt にプレイヤーがインタラクションしたときのイベントは、 ProximityPrompt.Triggered で取得できます。

サーバースクリプトとして作成し、ProximityPrompt オブジェクトと同じ階層に配置したときの例です。

local ProximityPrompt = script.Parent:WaitForChild("ProximityPrompt")

ProximityPrompt.Triggered:Connect(function(player)
    print(player.Name .. " triggered the ProximityPrompt!")
end)

まとめ

今回は、ProximityPrompt の設置方法やアンチパターン、Properties の設定方法について解説しました。
ProximityPrompt を使って、プレイヤーにインタラクションを促す機能を実装してみてください!

読んでくださりありがとうございました🤗

moze テックブログ

Discussion