1. 一時的な歩くスピードの変更
本記事では、プレイヤーが特定のブロックに触れた際に一時的に歩くスピードが上昇し、一定時間後に元のスピードに戻る機能の実装方法を解説します。
2. 使用する機能
・Script
・Humanoid
3. 手順
まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。
プレイヤーの歩くスピードが変わるブロックを設置していきます。
Partをクリックし、プレイヤーが触れやすいように大きくします。
分かりやすくするため、Partの色を変更します。
今回は、PartのプロパティにあるBrickColorをToothpasteに変更します。
歩くスピードを制御している項目を確認します。
一旦、ゲームをプレイし、プレイヤーのインスタンスから「Humanoid」オブジェクトを選択します。ここで「WalkSpeed」プロパティを見つけることができ、これがプレイヤーの歩くスピードをコントロールします。値を変更してみて、プレイヤーがどのように動くかを確認してみてください。
設置したPartの子要素にScriptを追加し、以下のコードを記入します。
local block = script.Parent
local function onTouch(part)
local character = part.Parent
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.WalkSpeed = humanoid.WalkSpeed * 1.2
wait(5)
humanoid.WalkSpeed = 16
end
end
block.Touched:Connect(onTouch)
上記コードの簡単な解説は以下となります。
local block = script.Parent
この行は、スクリプトの親オブジェクト(Part)をblock
という変数に代入しています。- local function onTouch(part)
onTouch
という名前の関数を定義しています。 local character = part.Parent
触れたオブジェクト(part
)の親オブジェクトをcharacter
という変数に代入しています。通常、プレイヤーのアバターが何かに触れると、part
はアバターの一部(たとえば、足)を指し、part.Parent
はプレイヤーのアバター全体を指します。- local humanoid = character:FindFirstChildOfClass(“Humanoid”)
character
オブジェクトの子オブジェクトの中からHumanoid
クラスのオブジェクトを探し、humanoid
という変数に代入しています。 - if humanoid then
humanoid
オブジェクトが存在する(つまり、触れたオブジェクトがプレイヤーのアバターである)場合、以下のコードブロックが実行されます。 - humanoid.WalkSpeed = humanoid.WalkSpeed * 1.2
プレイヤーの歩行速度を現在の1.2倍に増加させます。 - wait(5)
5秒間待機します。この間、プレイヤーは増加した歩行速度で移動できます。 - humanoid.WalkSpeed = 16
プレイヤーの歩行速度をデフォルト値(通常は16)に戻します。 - block.Touched:Connect(onTouch)
block
オブジェクトが触れられたときにonTouch
関数を呼び出すイベントハンドラを設定しています。
要するに、このコードはプレイヤーが特定のブロックに触れると一時的に歩行速度が上昇し、5秒後に通常の速度に戻る機能を実装しています。
この状態でゲームをプレイしてみます。
プレイヤーがブロックに触れると歩くスピードが速くなり、一定時間経過後に元のスピードに戻れば正しく設定できています。
この記事を通じて、プレイヤーの歩くスピードを一時的に変更する方法を学びました。具体的には、特定のブロックに触れるとプレイヤーの歩くスピードが一時的に上昇し、設定した時間が経過すると元の速度に戻る機能を実装しました。この知識を応用して、プレイヤーがゲーム内で特定のアクションを起こした際に様々な反応を生成することができ、ゲームプレイの幅を広げることができます。
コメント