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