1. 一時的なアバターサイズ変更
本記事では、プレイヤーが特定のブロックに触れた際に、一時的にプレイヤーのアバターのサイズを大きくし、一定時間後に元のサイズに戻す機能の実装方法を解説します。
2. 使用する機能
・Script
・Humanoid
3. 手順
まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。

プレイヤーが大きくなるブロックを設置していきます。
Partをクリックし、プレイヤーが触れやすいように大きくします。

分かりやすくするため、Partの色を変更します。
今回は、PartのプロパティにあるBrickColorをCamoに変更します。

設置したPartの子要素にScriptを追加し、以下のコードを記入します。

local block = script.Parent
local function onTouch(part)
local character = part.Parent
local humanoid = character:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.BodyHeightScale.Value = 2
humanoid.BodyWidthScale.Value = 2
humanoid.BodyDepthScale.Value = 2
wait(5)
humanoid.BodyHeightScale.Value = 1
humanoid.BodyWidthScale.Value = 1
humanoid.BodyDepthScale.Value = 1
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.BodyHeightScale.Value = 2
humanoid.BodyWidthScale.Value = 2
humanoid.BodyDepthScale.Value = 2
wait(5)
humanoid.BodyHeightScale.Value = 1
humanoid.BodyWidthScale.Value = 1
humanoid.BodyDepthScale.Value = 1
endif humanoid thenで、humanoidオブジェクトが存在するか(つまり、触れたオブジェクトがプレイヤーのアバターであるか)を確認しています。存在する場合、以下のコードが実行されます。humanoid.BodyHeightScale.Value = 2などで、プレイヤーのアバターの高さ、幅、奥行きを2倍にしています。wait(5)で、5秒間プログラムの実行を一時停止しています。
その後、humanoid.BodyHeightScale.Value = 1などで、プレイヤーのアバターのサイズを元に戻しています。 - block.Touched:Connect(onTouch)
blockオブジェクトが何かに触れたときにonTouch関数を呼び出すイベントハンドラを設定しています。
このコードは、プレイヤーが特定のブロックに触れると一時的にアバターのサイズが大きくなり、5秒後に元のサイズに戻る機能を実装しています。
ちなみに、コードにあるhumanoid.BodyHeightScale.Value、humanoid.BodyWidthScale.Value、humanoid.BodyDepthScale.Valueは以下画像の部分を示します。

この状態でゲームをプレイしてみます。
プレイヤーがブロックに触れるとプレイヤーが大きくなり、一定時間経過後に元の大きさに戻れば正しく設定できています。
この記事を通じて、プレイヤーがブロックに触れた際にアバターのサイズを一時的に変更し、その後元のサイズに戻す機能の実装方法を学びました。具体的には、HumanoidオブジェクトのBodyHeightScale、BodyWidthScale、BodyDepthScaleプロパティを使用してアバターのサイズを変更し、wait関数で一定時間後にサイズを元に戻すコードを記述しました。この知識を活かして、ゲーム内でプレイヤーのアクションに対して様々な反応を作り出し、ゲームプレイのバリエーションを増やすことができます。




コメント