Roblox で罠を作る方法です。 「罠」とは Roblox ゲームの中でよく出てくるもので、これにプレイヤーが触れるとプレイヤーは死にます。
今回の罠は「レーザー」にします。
通常のレーザーの作り方と、点滅するレーザーの作り方を紹介します。
レーザーを作成する
通常の罠の作り方は至ってシンプルです。Roblox の公式ページにチュートリアルがあるので、その通りやってみれば作れると思います。
コードが次のようなものになります。Laserという Part を作成して、その中に Script を作成してください。
local Laser = script.Parent
local function onPartTouch(otherPart)
local touchObject = otherPart.Parent
local humanoid = touchObject:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
Laser.Touched:Connect(onPartTouch)
Laser.Touchedのイベントハンドラの中で、触れたものがプレイヤー(Humanoid)である場合、Healthを 0 にします。
これが基本的な罠の作成方法です。
レーザーを点滅させる
ではレーザーを点滅させてみましょう。
レーザーを点滅させるにはwhileループを作成して、この中でLaser.Transparencyを使い、レーザーを見えたり隠れたりします。
local Laser = script.Parent
...
Laser.Touched:Connect(onPartTouch)
while true do
Laser.Transparency = 1
wait(3)
Laser.Transparency = 0
wait(3)
end
Laser.Touchedをwhileループの後ろに移動しないでください。whileループは無限ループとなるため、ループの後ろのコードは実行されません。
今回は 3 秒間隔で点滅するようにしました。 ただし、今のままではレーザーが消灯している場合も作動してしまい、プレヤーが触れると死んでしまいます。

うーん。なんでだろう。。。
レーザーが点灯している時だけ罠が作動するようにする
レーザーが点灯している時だけ罠が作動するようにするためには、まず消灯時にレーザーとプレーヤーが衝突しないようにする必要があります。
Laser.CanCollideを使って、レーザーが消灯時にはプレイヤーが触れても通り抜けるようにする必要があります。CanCollide = falseにした場合、プレイヤーが触れても通り抜けるようになります。
local Laser = script.Parent
...
Laser.Touched:Connect(onPartTouch)
while true do
Laser.Transparency = 1
Laser.CanCollide = false
wait(3)
Laser.Transparency = 0
Laser.CanCollide = true
wait(3)
end
CanCollide = falseにした場合、Part の位置を固定しないと、ゲームの世界から落下して見えなくなってしまいます。
プロパティウィンドウから Part のAnchoredのチェックを付けておいてください。

しかし、このままではまだレーザーが消灯時にも罠が作動しています。
これはLaser.TouchedイベントがLaser.CanCollide = falseの場合でも発火してしまうためです。
これを避けるためには、イベントハンドラの中でレーザーのCanCollideの状態を判定して、点灯中の場合のみ作動させる必要があります。
これでレーザーは配置された場所から動かなくなります。
local Laser = script.Parent
local function onPartTouch(otherPart)
-- 点灯中のみ罠が作動するようにする
if Laser.CanCollide == true then
local touchObject = otherPart.Parent
local humanoid = touchObject:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
end
Laser.Touched:Connect(onPartTouch)
...
これで罠が完成しました。

まとめ
通常の罠の作り方と、点滅する罠の作り方でした。 少しカスタマイズしようとすると途端にわからなくなりますが、Roblox の公式サイトの API リファレンスはかなり親切に書いてあるので、こまったら API リファレンス読むようにします。
