致命的な溶岩

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

スクリプトの紹介では、時間の経過に伴ってゲーム内で変更を加える方法を学びました。ユーザーの行動に基づいて変更を加えたい場合はどうでしょうか?このチュートリアルでは、ユーザーがその上を歩くと死亡する致命的な溶岩の床を作成する方法を学びます。

セットアップ

致命的な溶岩を置く場所が必要です。スクリプトの紹介コースに従った場合、溶岩の床は消えるプラットフォームで覆われた隙間にぴったり収まります。

  1. Partを挿入し、世界の中で適切な位置に移動させます。名前をLavaFloorにします。

  2. それをリサイズして、囲まれた空間の床を覆うようにします。

  3. MaterialプロパティをNeonに設定し、Colorをオレンジ色にすることで、床をより溶岩のように見せます。

  4. LavaFloorパートにScriptを挿入し、名前をKillに変更します。

  5. デフォルトのコードを削除し、溶岩のための変数を作成します。

    local lava = script.Parent

イベントに接続する

イベントを使用して、ユーザーが溶岩に触れたときに検出します。すべてのパートには、何かが触れたときに発火するTouchedイベントがあります。このイベントに接続して、発火したときに関数を実行できます。

  1. killという新しい関数を宣言します。

  2. 溶岩オブジェクトのTouchedイベントにドットを使用してアクセスします:lava.Touched

  3. TouchedイベントのConnect関数を呼び出し、パートが触れられたときに呼び出す関数としてkill()を渡します。

    local lava = script.Parent
    local function kill()
    end
    lava.Touched:Connect(kill)

kill関数内に書いたコードは、何かが溶岩に触れるたびに実行されます。Connect関数にはコロンが使用されていることに注意してください、ドットではありません - この時点では理由を心配しないで、違いを覚えておいてください。

触れているパートを取得する

ユーザーを殺すためには、そのユーザーに関連付けられたオブジェクトが必要です。パートのTouchedイベントは、それに触れた「他のパート」を提供できますが、関数のパラメータとして要求する必要があります。

パラメータは、関数が呼び出されたときに受け取ることを期待するものの定義です。パラメータは、他の変数と同様に関数内で使用できます。関数が呼び出されるときに、括弧内に含めることでパラメータに情報を渡すことができます。関数の最初の行の括弧内でパラメータを定義します。kill関数のためにotherPartというパラメータを作成します。

local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)

kill関数が呼び出されると、otherPartパラメータは溶岩の床に触れたパートを表し、関数内で書いたコードはそれを使用できるようになります。

キャラクターとヒューマノイド

ユーザーが溶岩に触れると、Robloxはそのユーザーが触れた特定の体の部分を検出できます。たとえば、左足や右足などです。この部分はユーザーのCharacterモデルにあり、ゲーム内のユーザーのアバターを構成するすべてのオブジェクトが含まれています。これには以下が含まれます:

  • ユーザーの頭、四肢、胴体などの個々の体の部分。
  • ユーザーが着用している衣服やアクセサリー。
  • ユーザーに関連する多くのプロパティを含む特別なオブジェクトであるHumanoid
  • ユーザーの動きを制御するHumanoidRootPart。

前述のように、溶岩に触れた体の部分はCharacterモデルの一部であるため、otherPart.Parentを使用してそのキャラクターへの参照を取得できます。溶岩の床に触れたパートの親を格納するための変数を作成します。

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)

キャラクターモデルから、ユーザーを殺すためにHumanoidオブジェクトを取得する必要があります。FindFirstChild()関数を使用してこれを行うことができます - 探しているものの名前を渡すだけで、そのオブジェクト内で最初に見つかった一致する子を提供します。partParent変数でFindFirstChild()を呼び出し、見つける子として"Humanoid"を指定し、結果をhumanoidという新しい変数に格納します。

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)

ヒューマノイドを確認する

if文を使用して、Humanoidが見つかったかどうかを簡単に確認できます。if文内のコードは、最初の行で定義された条件が真である場合にのみ実行されます。

さまざまな演算子を使用して、将来のコースで遭遇するより複雑な条件を構築できます - 今のところ、humanoid変数をそこに置くだけです。humanoidを条件として持つif文を作成します。

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)

キャラクターの健康を設定する

Humanoidが確認されたので、そのプロパティを変更できます。Healthプロパティを0に設定すると、関連するCharacterが死亡します。if文の本体内で、humanoidのHealthプロパティを0に設定します。

local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)

これで、あなたの溶岩の床は完成です!ゲームをプレイテストして、致命的な溶岩が接触時にユーザーを正しく殺すことを確認してください。溶岩をオビーの追加の挑戦として使用したり、世界の境界として使用したりしてみてください。

最終コード

local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。