Baseplate の範囲へ、上空からパーツをランダムに落下させるプログラムです。
テンプレートは、BaseplateもしくはClassic Baseplate を使ってください。
local baseplate = game.Workspace.Baseplate
local spawnHeight1 = 100 -- パーツを落とす高さの上限
local spawnHeight2 = 70 -- パーツを落とす高さの下限
local function makePart()
local part = Instance.new("Part") -- 新しいPartを作成
part.Anchored = false -- AnchoreをOFF
part.Shape = Enum.PartType.Ball -- 形状を設定
part.Color = Color3.new(1, 1, 1) -- 色を設定
part.Size = Vector3.new(3,3,3) -- 大きさを指定
return part
end
local function DropParts(partCount)
for i = 1, partCount do
local randomX = math.random(-baseplate.Size.X / 2, baseplate.Size.X / 2)
local randomZ = math.random(-baseplate.Size.Z / 2, baseplate.Size.Z / 2)
local randomY = math.random(spawnHeight2,spawnHeight1)
local spawnPosition = Vector3.new(randomX, randomY, randomZ)
local newPart = makePart()
newPart.CFrame = CFrame.new(spawnPosition)
newPart.Parent = game.Workspace
wait(0.1) -- パーツが同時に落ちすぎないように適切な値を設定
end
end
DropParts(30) -- 落とすパーツの数を指定
「for i = 1, partCount do」の部分を「while true do」にすると、無限にパーツが落下します。ただし、パーツが増えすぎると動作が重くなるので、その場合は一定時間たったらパーツを消すようにします。その場合は、wait の前で「game:GetService(“Debris”):AddItem(newPart,10)」とすると出現10秒後にパーツが消えますので、パーツの数を制限することができます。