フレンズロケーター

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

場所の中で友達を見つけるのは難しい場合があります。フレンズロケーター 開発者モジュールを使用すると、プレイヤーは場所の中で友達を簡単に見つけてテレポートできます。

モジュールの使用

インストール

体験の中でフレンズロケーターモジュールを使用するには:

  1. スタジオのウィンドウメニューまたはホームタブツールバーから、ツールボックスを開き、クリエイターストアタブを選択します。

  2. モデルのソートが選択されていることを確認し、カテゴリすべて表示ボタンをクリックします。

  3. パッケージタイルを見つけてクリックします。

  4. フレンズロケーターモジュールを見つけてクリックするか、それを3Dビューにドラッグアンドドロップします。

  5. エクスプローラーウィンドウで、全体のフレンズロケーターモデルをReplicatedStorageに移動します。体験を実行すると、モジュールが実行を開始します。

スタジオでのテスト

スタジオでモジュールをテストするには、フレンズロケーターモジュールをマルチクライアントシミュレーションで実行する必要があります。ソロプレイテストでは友達が存在しないためです。

  1. StarterPlayerScripts内に新しいLocalScriptを作成し、名前をConfigureFriendsLocatorに変更します。

  2. 新しいConfigureFriendsLocatorスクリプトに以下のコードを貼り付けます。 configure関数内のshowAllPlayers設定は、スタジオでテスト中にすべてのユーザーに対してロケーターが表示されることを保証しますが、公開された場所ではそうではありません。

    LocalScript - ConfigureFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- スタジオでのデバッグを許可
    })
  3. スタジオのメザニンから、2つのクライアントでマルチクライアントシミュレーションを開始します。3つの新しいスタジオインスタンスが開きます;仮想サーバーと2つの仮想クライアントがあります。

    テストモードのプルダウンメニューでのサーバーとクライアントオプション。
  4. いずれかのクライアントスタジオインスタンスに入り、他のキャラクターから100スタッドの距離に移動すると、その頭上にロケーターアイコンが表示されるのを確認できます。

イベントに接続する

フレンズロケーターモジュールは、ロケーターアイコンとユーザーが対話する際にカスタム動作を導入できるようにイベントを公開しています。

  1. スタジオでのテストで概説されているConfigureFriendsLocatorスクリプトを作成していることを確認します。

  2. スクリプトに行8および11-13を追加します:

    LocalScript - ConfigureFriendsLocator

    local RunService = game:GetService("RunService")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
    FriendsLocator.configure({
    showAllPlayers = RunService:IsStudio(), -- スタジオでのデバッグを許可
    teleportToFriend = false, -- アイコンのクリック/タップでのテレポートを防止
    })
    FriendsLocator.clicked:Connect(function(player, playerCFrame)
    print("あなたは", player.DisplayName, "のロケーターアイコンをクリックしました")
    end)
  3. マルチクライアントテストを実施し、他のキャラクターのロケーターアイコンをクリックします。あなたのキャラクターがその位置にテレポートしないことを確認し、イベントがトリガーされてアイコンのクリックをカスタム処理できるようになります。

カスタムロケータUI

デフォルトのスタイルが体験に合わない場合は、デフォルトのアバターポートレートUIを独自のUIに置き換えることができます。

デフォルトのUIを置き換えるには:

  1. StarterGuiコンテナ内に新しいScreenGuiインスタンスを作成します。

  2. 新しいScreenGuiの子としてFriendLocatorという名前のFrameインスタンスを作成し、ImageLabelsTextLabelsのような要素を追加してカスタムUIをデザインします。

  3. 終了したら、モジュールが必要になるまでカスタムロケーターUIを表示しないように親のScreenGui無効化します。

  4. (オプション) 友達のアバターポートレートおよびDisplayNameをカスタムUIのどこかに表示させたい場合は、FriendLocatorフレーム内に以下のインスタンスを配置できます。

    モジュールはこれらのアイテムを探し、友達のアバターポートレートおよび/または表示名をそれぞれ表示します。

APIリファレンス

関数

configure

configure(config: table)

configテーブル内の以下のキー/値を介してデフォルトの構成オプションをオーバーライドします。

キー説明デフォルト
alwaysOnToptrueの場合、すべての上にロケーターアイコンを表示し、3D世界のオブジェクトによってブロックされないようにします。true
showAllPlayerstrueの場合、友達だけでなくすべてのプレイヤーの位置を表示します。これにより、スタジオでモジュールの機能を確認できます。false
teleportToFriendロケーターアイコンがクリックまたはタップされたときにプレイヤーキャラクターを友達の位置にテレポートします。true
thresholdDistanceロケーターアイコンが表示されるカメラ距離のしきい値。この距離より近い友達はアイコンを表示しません。100
maxLocators任意の時点で表示されるロケーターアイコンの最大数。10
LocalScript - ConfigureFriendsLocator

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.configure({
alwaysOnTop = true,
showAllPlayers = false,
teleportToFriend = true,
thresholdDistance = 100,
maxLocators = 10
})

イベント

clicked

ロケーターアイコンがローカルプレイヤーによってクリック/アクティブ化されたときに発火します。このイベントはLocalScript内でのみ接続できます。

パラメータ
player: Playerロケーターアイコンが属するプレイヤー。
playerCFrame: CFrameロケーターアイコンが属するプレイヤーのHumanoid.RootPartCFrame
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
local localPlayer = Players.LocalPlayer
FriendsLocator.clicked:Connect(function(player, playerCFrame)
-- 対象の位置周辺のストリーミングをリクエスト
if Workspace.StreamingEnabled then
local success, errorMessage = pcall(function()
localPlayer:RequestStreamAroundAsync(playerCFrame.Position)
end)
if not success then
print(errorMessage)
end
end
print("あなたは", player.DisplayName, "のロケーターアイコンをクリックしました。位置:", playerCFrame.Position)
end)

visibilityChanged

ローカルプレーヤーの画面でロケーターアイコンが表示/非表示になったときに発火します。このイベントはLocalScript内でのみ接続できます。

パラメータ
player: Playerロケーターアイコンが属するPlayerオブジェクト。
playerCFrame: CFrameロケーターアイコンが属するプレイヤーのHumanoid.RootPartCFrame
isVisible: booleanローカルプレイヤーの画面でロケーターアイコンが現在表示されているかどうか。デフォルトでalwaysOnTopfalseで、ロケーターが3D世界内のオブジェクトの後ろに描画されている場合でも、これがtrueであることに注意してください。
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local FriendsLocator = require(ReplicatedStorage.FriendsLocator)
FriendsLocator.visibilityChanged:Connect(function(player, playerCFrame, isVisible)
print(player.DisplayName, "のロケーターアイコンの可視性:", isVisible)
end)
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。