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