ゲーム内で友達を見つけるのは難しいことがあります。SpawnWithFriends 開発者モジュールは、出現するプレイヤーをゲーム内にいる友達の近くに自動的に移動させます。このモジュールは、自動的にではなく、コマンドでプレイヤーをテレポートさせるように設定することもできます。
モジュールの使用法
インストール
ゲームでSpawnWithFriendsモジュールを使用するには:
スタジオのウィンドウメニューまたはホームタブツールバーから、ツールボックスを開き、クリエイターストアタブを選択します。

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

パッケージタイルを見つけてクリックします。
友達と一緒に出現モジュールを見つけてクリックするか、3Dビューにドラッグアンドドロップします。

エクスプローラーウィンドウで、SpawnWithFriendsモデル全体をReplicatedStorageに移動します。ゲームを実行すると、モジュールが動作を開始します。
制限された出現エリア
このモジュールは、VIPルームやアクセス制限のあるスペースなど、制限されたエリアにプレイヤーが出現する原因となる場合があります。プレイヤーがこれらのエリアにテレポートするのを防ぐには:
制限されたエリアを見えないAnchoredブロックで埋めます。すべてのブロックに対してCanCollide、CanTouch、およびCanQueryが無効になっていることを確認します。

プレイヤーが内部に出現するのを防ぐために、刑務所の部屋全体を埋めるブロック 各ブロックのプロパティのタグセクションを使用して、RestrictedSpawnAreaタグを適用し、CollectionServiceがそれらを検出できるようにします。
次のコードをServerScriptService内のScriptに貼り付けます。
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- タグ付けされたすべてのパーツを反復処理for _, area in CollectionService:GetTagged("RestrictedSpawnArea") dolocal relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)local size = area.Sizelocal inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2if inXBounds and inZBounds thenreturn false -- 出現先が制限されたエリア内にあるため、テレポートを中止endendreturn true -- 出現先が制限されたエリアと重なっていないため、テレポートを続行endSpawnWithFriends.setTeleportationValidator(validator)
APIリファレンス
関数
configure
configure(config: table)
configテーブル内の次のキー/値を介してデフォルトの構成オプションを上書きします。この関数はScriptからのみ呼び出すことができます。
| キー | 説明 | デフォルト |
|---|---|---|
| teleportToFriendOnRespawn | falseに設定されている場合、友達へのテレポートはteleportToRandomFriendを介して手動でのみ行われます。 | true |
| teleportDistance | プレイヤーが互いに出現する距離、スタッド単位で測定されます。 | 5 |
| maxCharacterVelocity | この値よりも速く移動するキャラクターはテレポート候補として選ばれません。たとえば、移動する車両内のキャラクターです。 | 48 |
| bypassFriendshipCheck | trueに設定されている場合、すべてのプレイヤーがテレポート候補となります。友達だけではありません。 | false |
| showLogs | 出力にログメッセージを表示するかどうか。 | false |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)
SpawnWithFriends.configure({
teleportToFriendOnRespawn = true,
teleportDistance = 5,
maxCharacterVelocity = 48,
bypassFriendshipCheck = false,
showLogs = false
})teleportToRandomFriend
teleportToRandomFriend(playerToTeleport: Player): boolean
ゲーム内の友達の一人にプレイヤーをテレポートさせる手動トリガーを行います。テレポートが成功したかどうかを示すブール値を返します。テレポートの失敗は、サーバーに友達がいない場合や、障害物のないテレポートポイントを見つけられない場合に起こる可能性があります。この関数はScriptからのみ呼び出すことができます。
setTeleportationValidator
setTeleportationValidator(validator: function)
バリデーターコールバック関数をフックアップすることで、カスタムの事前テレポートチェックを実行できるようにします。コールバックは3つのパラメータを受け取ります:
| パラメータ | 説明 |
|---|---|
| playerToTeleport | テレポートされるPlayerへの参照。 |
| destinationPlayer | playerToTeleportがテレポートされるターゲットPlayerへの参照。 |
| teleportationPoint | CFrameで、playerToTeleportがテレポートされる場所。 |
この関数とそのコールバックはScript内でのみ使用でき、コールバックはテレポートを続行すべきかどうかを示すブール値を返します。たとえば、次のバリデーター関数のreturnロジックは、出現するプレイヤーと出現先のプレイヤーが同じチームにいることを保証します。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)
-- プレイヤーが同じチームにいる場合のみテレポート
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)