SpawnLocation

非推奨を表示

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

SpawnLocations、または「spawn」は、死亡時に Player が再生する場所を決定します。特定のプレイヤーだけが各スポーンを使用できるように構成でき、Teams を使用します。また、新しく生成されたプレイヤーにどのように ForceFields が設定されるかも制御します。

SpawnLocations は、障害物コースでのように、SpawnLocation.AllowTeamChangeOnTouch プロパティを使用してチェックポイントとして使用でき、プレイヤーがそれに触れると、チームが SpawnLocation のチームに変更されます。この場合、最初の Team のみが Team.AutoAssignable に真実を設定し、そうでなければプレイヤーは最初のチェックポイントで開始しません。

Note if a SpawnLocation is added to the Workspace in Studio with SpawnLocation.Neutral set to false a チームが既に存在しない場合、SpawnLocation.TeamColor に対応するチームが作成されます。この動作は、Script を使用してゲーム内でスポーンを作成するときや、SpawnLocation のプロパティがすでに追加された後に変更された場合には発生しません。開発者は、この動作に頼らず、常にチームを手動で設定することを推奨します。

ルールの生成中

プレイヤーがリスポーンすると、特定の SpawnLocation に関連する複数のルールが発動します:

  • When SpawnLocation.Neutral が偽に設定されていると、Players と一致する Player.TeamColorSpawnLocation.TeamColor を上に再生します
  • When SpawnLocation.Neutral が true に設定されていると、どのプレイヤーもその上に独立して生成できます。SpawnLocation.TeamColor
  • 複数の有効なスポーンが Player に利用可能である場合、ランダムなものが選択されます
  • プレイヤーは、スポーン場所の上に異なる場所でスポーンしますが、現在、1つともう1つの直後にスポーンすると、互いに上にスポーンする可能性があります

参照してください:

  • プレイヤーがリスポーンするまでにかかる時間を構成したい場合は、RespawnTime プロパティを見てください

コードサンプル

This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.

SpawnLocation Checkpoints

local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)

概要

プロパティ

Part から継承した プロパティ
  • 複製されていません
    並列読み取り

    オブジェクトの全体形状を設定します。

BasePart から継承した プロパティ
  • 並列読み取り

    パーツが物理的に移動不可能かどうかを決定します。

  • 複製されていません
    並列読み取り

    部品の組み立ての角速度。

  • 読み取り専用
    複製されていません
    並列読み取り

    ワールドスペースでのパーツのアセンブリの質量の中心。

  • 複製されていません
    並列読み取り

    部品の組み立ての線速度。

  • 読み取り専用
    複製されていません
    並列読み取り

    パーツのアセンブリの総質量。

  • 読み取り専用
    複製されていません
    並列読み取り

    アセンブリの根部に対する参照。

  • 並列読み取り

    パーツがオーディオシミュレーションと物理的に相互作用するかどうかを決定します。照明のための CastShadow と同様です。

  • 並列読み取り

    部品の後面の表面タイプを決定します。

  • 部品の底面の表面タイプを決定します。

  • 複製されていません
    並列読み取り

    部品の色を決定します。

  • 並列読み取り

    世界の BasePart の位置と方向を決定します。

  • 並列読み取り

    パーツが他のパーツと衝突できるかどうかを決定します。

  • 並列読み取り

    パーツが空間クエリ操作で考慮されるかどうかを決定します。

  • 並列読み取り

    Touched および TouchEnded イベントがパーツに発射するかどうかを決定します。

  • 並列読み取り

    パーツがシャドウをキャストするかどうかを決定します。

  • 読み取り専用
    複製されていません
    並列読み取り

    部品の質量の中心が位置する世界の位置を説明します。

  • 複製されていません
    並列読み取り

    パーツの衝突グループの名前を記述します。

  • 複製されていません
    並列読み取り

    部品の色を決定します。

  • 読み取り専用
    複製されていません
    並列読み取り

    部品の現在の物理プロパティを示します。

  • 部品の複数の物理的特性を決定します。

  • 並列読み取り

    部品やアセンブリの空力を有効化または無効化するのに使用します。

  • 読み取り専用
    複製されていません
    並列読み取り

    物理エントリの CFrameBasePart

  • 読み取り専用
    複製されていません
    並列読み取り

    物理エンジンによって見られる BasePart の実際のサイズ。

  • 並列読み取り

    部品の前面の表面タイプを決定します。

  • 並列読み取り

    部品の左面の表面タイプを決定します。

  • 非表示
    複製されていません
    並列読み取り

    ローカルクライアントにしか表示されない BasePart.Transparency の乗数を決定します。

  • 並列読み取り

    スタジオでパーツが選択可能かどうかを決定します。

  • 読み取り専用
    複製されていません
    並列読み取り

    部品の質量、密度とボリュームの積を記述します。

  • 並列読み取り

    パーツが剛ボディの総質量または粘性に貢献するかどうかを決定します。

  • 並列読み取り

    部品のテクスチャとデフォルトの物理プロパティを決定します。

  • 複製されていません
    並列読み取り

    名前の MaterialVariant

  • 非表示
    複製されていません
    並列読み取り

    世界でのパーツの回転を説明します。

  • 並列読み取り

    パーツのピボットのオフセットを、CFrame から指定します。

  • 非表示
    複製されていません
    並列読み取り

    世界のパーツの位置を記述します。

  • 非表示
    読み取り専用
    複製されていません
    並列読み取り

    最後の物理アップデート以来の時間。

  • 並列読み取り

    パーツが天空ボックスをどの程度反映するかを決定します。

  • 読み取り専用
    複製されていません
    並列読み取り

    Resize() メソッドで許可される最小サイズ変更を説明します。

  • 読み取り専用
    複製されていません
    並列読み取り

    パーツがサイズ変更できる顔を説明します。

  • 並列読み取り

    部品の右面の表面タイプを決定します。

  • 並列読み取り

    アセンブリのルート部分を決定する主なルール。

  • 複製されていません
    並列読み取り

    3軸のためのパーツの回転度です。

  • 複製されていません
    並列読み取り

    部品の寸法 (長さ、幅、高さ) を決定します。

  • 並列読み取り

    部品の上面のタイプを決定します。

  • 並列読み取り

    パーツがどの程度透明に見えるかを決定します (パーツの不透明度の逆)。

PVInstance から継承した プロパティ
  • 複製されていません
    スクリプト作成できません
    並列読み取り
  • 複製されていません
    スクリプト作成できません
    並列読み取り

方法

BasePart から継承した 方法PVInstance から継承した 方法

イベント

BasePart から継承した イベント

プロパティ

AllowTeamChangeOnTouch

並列読み取り

すべての PlayerSpawnLocation にタッチすることでチームに参加できるようにします。真に設定されると、Player 文字がSpawnLocation に接触すると、プレイヤーのPlayer.TeamColorSpawnLocation.TeamColor に設定されます。 も接連絡時に設定され、プレイヤーがスポーン場所に触れることで中立になることも意味します。

これは、SpawnLocation.Enabled が false に設定されていると機能しません。

チェックポイントを作成中

この機能は、障害物コースや同様のゲームでチェックポイントを作るのによく使用されます。

コードサンプル

This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.

SpawnLocation Checkpoints

local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)

Duration

並列読み取り

秒単位の時間、 がこの に生成されるキャラクターに適用される期間。期間がゼロの場合、ForceField は決して作成されず、Instance.DescendantAdded または Instance.ChildAdded イベントをトリガーしません。

このプロパティのデフォルト値は 10秒です。

期間機能により、開発者は簡単にPlayersプレイヤーに煩わしい経験となる「スポーンキリング」から保護を提供できます。注意, ForceFields は、ユーザーを ExplosionsHumanoid:TakeDamage() にダメージを与える武器、または ForceField をチェックする武器から保護するだけです。

コードサンプル

This sample will create a neutral SpawnLocation in the Workspace that'll give players spawning a ForceField for 20 seconds.

SpawnLocation ForceField

local spawnLocation = Instance.new("SpawnLocation")
spawnLocation.Anchored = true
spawnLocation.Size = Vector3.new(5, 1, 5)
spawnLocation.Neutral = true -- anyone can spawn here
spawnLocation.Duration = 20
spawnLocation.Parent = workspace

Enabled

並列読み取り

SpawnLocation が有効かどうかを設定します。無効にすると、プレイヤーがSpawnLocation で生成できなくなり、SpawnLocation.AllowTeamChangeOnTouch 機能が無効になります。

このプロパティは、スポーンで Players が生成されるのを防ぐ最も便利な方法を提供します。

注: タッチを使用してチームを変更するときに SpawnLocation.AllowTeamChangeOnTouch を無効に設定しても、BasePart.Touched を使用した他のタッチイベントは引き続き発射します。

コードサンプル

The following sample will create a SpawnLocation in the Workspace that will become semi-transparent when it is disabled.

SpawnLocation Enabled

local spawnLocation = Instance.new("SpawnLocation")
spawnLocation.Anchored = true
spawnLocation.Size = Vector3.new(5, 1, 5)
spawnLocation.Neutral = true -- anyone can spawn here
spawnLocation.Enabled = true
spawnLocation.Parent = workspace
local function onEnabledChanged()
spawnLocation.Transparency = spawnLocation.Enabled and 0 or 0.5
end
spawnLocation:GetPropertyChangedSignal("Enabled"):Connect(onEnabledChanged)
task.wait(5)
spawnLocation.Enabled = false -- transparency = 0.5

Neutral

並列読み取り

スポーンが特定のチームと関連しているかどうか。これは、任意の Player 、任意の Team が、このプロパティが真に設定されている場合、それに生成できることを意味します。

中立が false に設定されている場合、Player.TeamColorSpawnLocation.TeamColor と同じのプレイヤーだけが SpawnLocation を使用できます。

If SpawnLocation.AllowTeamChangeOnTouch が true である場合、Player.Neutral は、スポーンとの接触時にこのプロパティに設定されます。

コードサンプル

This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.

SpawnLocation Checkpoints

local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)

TeamColor

並列読み取り

TeamColor プロパティは、SpawnLocation に属するチームを設定します。SpawnLocation.Neutralが false である場合、スポーンの Players と同じ Player.TeamColor のみがそこにスポーンできます。

If SpawnLocation.AllowTeamChangeOnTouch が true である場合、Player.Neutral は、スポーンとの接触時にこのプロパティに設定されます。

コードサンプル

This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.

SpawnLocation Checkpoints

local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)

方法

イベント