学ぶ
エンジンクラス
Explosion

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


コードサンプル
爆発のインスタンス化
local explosion = Instance.new("Explosion")
explosion.BlastRadius = 60
explosion.ExplosionType = Enum.ExplosionType.Craters -- 地形にダメージを与えます
explosion.Position = Vector3.new(0, 10, 0)
explosion.Parent = workspace

APIリファレンス
プロパティ
BlastPressure
並列読み取り
機能: AvatarBehavior
Explosion.BlastPressure:number
コードサンプル
カスタム爆発
local function customExplosion(position, radius, maxDamage)
local explosion = Instance.new("Explosion")
explosion.BlastPressure = 0 -- これはパーツに速度を適用するために高く設定することもできます
explosion.DestroyJointRadiusPercent = 0 -- ジョイントは安全です
explosion.BlastRadius = radius
explosion.Position = position
-- ヒットしたモデルを追跡するためのテーブルを設定します
local modelsHit = {}
-- 接触をリッスンします
explosion.Hit:Connect(function(part, distance)
local parentModel = part.Parent
if parentModel then
-- このモデルがすでにヒットしているか確認します
if modelsHit[parentModel] then
return
end
-- このモデルをヒットしたとしてログします
modelsHit[parentModel] = true
-- ヒューマノイドを探します
local humanoid = parentModel:FindFirstChild("Humanoid")
if humanoid then
local distanceFactor = distance / explosion.BlastRadius -- 距離を0から1の間の値に取得します
distanceFactor = 1 - distanceFactor -- 値を反転させることで、近いほどダメージが多くなるようにします
humanoid:TakeDamage(maxDamage * distanceFactor) -- ForceFieldsを考慮してTakeDamage
end
end
end)
explosion.Parent = game.Workspace
-- Robloxは数秒後に爆発を削除しますが、破壊はしません。
-- .Hit接続が切断されることを確実にするために、爆発が削除されたら破壊します。
explosion.AncestryChanged:Connect(function()
if not explosion.Parent then
explosion:Destroy()
end
end)
end
customExplosion(Vector3.new(0, 10, 0), 12, 50)

BlastRadius
並列読み取り
機能: AvatarBehavior
Explosion.BlastRadius:number
コードサンプル
爆発のインスタンス化
local explosion = Instance.new("Explosion")
explosion.BlastRadius = 60
explosion.ExplosionType = Enum.ExplosionType.Craters -- 地形にダメージを与えます
explosion.Position = Vector3.new(0, 10, 0)
explosion.Parent = workspace

DestroyJointRadiusPercent
並列読み取り
機能: AvatarBehavior
Explosion.DestroyJointRadiusPercent:number
コードサンプル
非致死的爆発
local function onDescendantAdded(instance)
if instance:IsA("Explosion") then
local explosion = instance
explosion.DestroyJointRadiusPercent = 0
local destroyJointRadiusPercent = 1
explosion.Hit:Connect(function(part, distance)
-- ジョイントを壊すのにパートが範囲内にあるか確認します
if distance <= destroyJointRadiusPercent * explosion.BlastRadius then
-- パートがキャラクターに属していないことを確認します
if not game.Players:GetPlayerFromCharacter(part.Parent) then
part:BreakJoints()
end
end
end)
end
end
workspace.DescendantAdded:Connect(onDescendantAdded)
カスタム爆発
local function customExplosion(position, radius, maxDamage)
local explosion = Instance.new("Explosion")
explosion.BlastPressure = 0 -- これはパーツに速度を適用するために高く設定することもできます
explosion.DestroyJointRadiusPercent = 0 -- ジョイントは安全です
explosion.BlastRadius = radius
explosion.Position = position
-- ヒットしたモデルを追跡するためのテーブルを設定します
local modelsHit = {}
-- 接触をリッスンします
explosion.Hit:Connect(function(part, distance)
local parentModel = part.Parent
if parentModel then
-- このモデルがすでにヒットしているか確認します
if modelsHit[parentModel] then
return
end
-- このモデルをヒットしたとしてログします
modelsHit[parentModel] = true
-- ヒューマノイドを探します
local humanoid = parentModel:FindFirstChild("Humanoid")
if humanoid then
local distanceFactor = distance / explosion.BlastRadius -- 距離を0から1の間の値に取得します
distanceFactor = 1 - distanceFactor -- 値を反転させることで、近いほどダメージが多くなるようにします
humanoid:TakeDamage(maxDamage * distanceFactor) -- ForceFieldsを考慮してTakeDamage
end
end
end)
explosion.Parent = game.Workspace
-- Robloxは数秒後に爆発を削除しますが、破壊はしません。
-- .Hit接続が切断されることを確実にするために、爆発が削除されたら破壊します。
explosion.AncestryChanged:Connect(function()
if not explosion.Parent then
explosion:Destroy()
end
end)
end
customExplosion(Vector3.new(0, 10, 0), 12, 50)

ExplosionType
並列読み取り
機能: AvatarBehavior
Explosion.ExplosionType:Enum.ExplosionType
コードサンプル
地形への損害を防ぐ爆発
local function onDescendantAdded(instance)
if instance:IsA("Explosion") then
instance.ExplosionType = Enum.ExplosionType.NoCraters
instance:GetPropertyChangedSignal("ExplosionType"):Connect(function()
instance.ExplosionType = Enum.ExplosionType.NoCraters
end)
end
end
workspace.DescendantAdded:Connect(onDescendantAdded)

LocalTransparencyModifier
非表示
複製されていません
並列読み取り
機能: AvatarBehavior
Explosion.LocalTransparencyModifier:number

Position
並列読み取り
機能: AvatarBehavior
Explosion.Position:Vector3
コードサンプル
爆発のインスタンス化
local explosion = Instance.new("Explosion")
explosion.BlastRadius = 60
explosion.ExplosionType = Enum.ExplosionType.Craters -- 地形にダメージを与えます
explosion.Position = Vector3.new(0, 10, 0)
explosion.Parent = workspace

TimeScale
並列読み取り
機能: AvatarBehavior
Explosion.TimeScale:number

Visible
並列読み取り
機能: AvatarBehavior
Explosion.Visible:boolean
コードサンプル
爆発カスタムビジュアル
local function customExplosion(position)
local explosion = Instance.new("Explosion")
explosion.Position = position
explosion.Visible = false
local attachment = Instance.new("Attachment")
attachment.Position = position
attachment.Parent = workspace.Terrain
local particleEmitter = Instance.new("ParticleEmitter")
particleEmitter.Enabled = false
particleEmitter.Parent = attachment
particleEmitter.Speed = NumberRange.new(5, 30)
particleEmitter.SpreadAngle = Vector2.new(-90, 90)
explosion.Parent = workspace
particleEmitter:Emit(20)
task.delay(5, function()
if attachment then
attachment:Destroy()
end
end)
end
customExplosion(Vector3.new(0, 10, 0))

イベント
Hit
機能: AvatarBehavior
Explosion.Hit(
part:BasePart, distance:number
パラメータ
distance:number
コードサンプル
カスタム爆発
local function customExplosion(position, radius, maxDamage)
local explosion = Instance.new("Explosion")
explosion.BlastPressure = 0 -- これはパーツに速度を適用するために高く設定することもできます
explosion.DestroyJointRadiusPercent = 0 -- ジョイントは安全です
explosion.BlastRadius = radius
explosion.Position = position
-- ヒットしたモデルを追跡するためのテーブルを設定します
local modelsHit = {}
-- 接触をリッスンします
explosion.Hit:Connect(function(part, distance)
local parentModel = part.Parent
if parentModel then
-- このモデルがすでにヒットしているか確認します
if modelsHit[parentModel] then
return
end
-- このモデルをヒットしたとしてログします
modelsHit[parentModel] = true
-- ヒューマノイドを探します
local humanoid = parentModel:FindFirstChild("Humanoid")
if humanoid then
local distanceFactor = distance / explosion.BlastRadius -- 距離を0から1の間の値に取得します
distanceFactor = 1 - distanceFactor -- 値を反転させることで、近いほどダメージが多くなるようにします
humanoid:TakeDamage(maxDamage * distanceFactor) -- ForceFieldsを考慮してTakeDamage
end
end
end)
explosion.Parent = game.Workspace
-- Robloxは数秒後に爆発を削除しますが、破壊はしません。
-- .Hit接続が切断されることを確実にするために、爆発が削除されたら破壊します。
explosion.AncestryChanged:Connect(function()
if not explosion.Parent then
explosion:Destroy()
end
end)
end
customExplosion(Vector3.new(0, 10, 0), 12, 50)

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。