【Roblox Studio】基本的なコーディング #2

Roblox

溶岩エリア

前回、特定のパーツに繰り返しの変化を加えたけど、今回はプレイヤーの行動をきっかけにプレイヤー自身の状態に変化を加える方法を見ていこう。

プレイヤーがふんだら死んでしまう(プレイヤーの状態が変化する)溶岩の床を作っていくよ。

  1. 2つのパーツの間に「LavaFloor」という名前で新しいパーツを追加。
  2. すき間をうめるようにサイズ調整。
LavaFloor
  1. 溶岩に見えるように素材をネオン、色をオレンジに設定。
溶岩の床
  1. LavaFloorパーツに「KillPlayer」という名前でスクリプトを追加。
KillPlayer
  1. デフォルトの(はじめからある)コードを削除して、溶岩の変数を作成。
local lava = script.Parent

イベントへの接続

プログラムでプレイヤーが溶岩に触れたことを知るには、イベントっていう仕組みを使うよ。

すべてのパーツには、何かが触れるとTouchedイベントが発生するようになってるんだ。だから溶岩のパーツに何かが触れたら、特定の関数が実行されるようにあらかじめ設定しておくよ。

  1. killPlayerという名前の関数を宣言。(中身はのちほど)
  2. 溶岩の床のTouchedイベントが発生したらkillPlayer関数が呼ばれるように接続。
local lava = script.Parent
 
local function killPlayer()
  
end
 
lava.Touched:Connect(killPlayer)

イベント接続の書き方はルールだから悩まなくていいよ。イベントが発生したときに指定の関数を実行できるってことだけ覚えよう。イベントの種類は出てきたら調べるしかないけどね。

プレイヤーを殺すコード

プレイヤーを殺すためには、Humanoidオブジェクトが必要なんだ。

Humanoidオブジェクトは、キャラクターモデルから探せるんだけど、キャラクターモデルは溶岩の床のTouchedイベントから探せるんだ。考えてわかるものじゃないから、出てきたら1つずつ書き方を覚えていけばいいよ。無理に覚えようとしなくても、使いたいときに少し調べながら書ければいいよ。

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

溶岩に触れたプレイヤーのキャラクターパーツの情報が溶岩の床のTouchedイベントから「otherPart」という変数でkillPlayer関数に渡されてくるよ。渡されてくる情報をパラメータ(引数)って言うんだ。

パラメータで渡されてきた情報はその関数の中で使えるよ。今回渡されてきた情報は溶岩の床に触れたプレイヤーキャラクターのパーツ情報なので、その情報からHumanoidオブジェクトを探して「humanoid」という変数に保存しているんだ。

if文

if文を使えば、変数の値によって実行するコードを変えることができるよ。

ifの後ろの条件がtrueのとき、thenendで囲まれたコードを実行するんだ。

if文の条件が変数だけのときは、変数に値が保存されていればtrueになるよ。

local lava = script.Parent

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

Touchedイベントから渡されたパラメータからHumanoidオブジェクトが見つかれば、変数[humanoid」に値が保存されているはずだよ。

だから溶岩の床に触ったパーツからHumanoidオブジェクトが見つかれば(プレイヤーのパーツだったら)条件はtrueになって、humanoidのHealthプロパティが0に設定されるよ。

Healthプロパティを0に設定されたプレイヤーは死んでしまうんだ。

プレイテスト

溶岩の床が完成したのでテストしてみよう。

Health = 0

プレイヤーがバラバラに壊れてかわいそうだけど成功です。お疲れさまでした~。

以上の手順は↓の英語サイトを日本の小中学生でもわかるように、できるだけやさしく解説してみました。

ERROR: The request could not be satisfied

次はプレイヤーがふんだら消えていく床をやっていくよ。

消えていく床

コメント

タイトルとURLをコピーしました