繰り返し文を使った光るライト

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

繰り返し文を練習するために、徐々に明るくなり、その後徐々に暗くなるランプを作成します。このスクリプトは、ストリートライトや光るクリスタルなど、プロジェクト内の他のライトにも適用できます。

部品とスクリプトの設定

ランプは、光とスクリプトが付属した部品になります。

  1. 光を見やすくするために、3Dワールドを夜間に変更します。ExplorerLightingで、ClockTime0に変更します。

    画像
  2. 新しい部品またはモデルを作成し、それに「Lamp」という名前を付けます。

  3. Lampを選択し、PointLightSpotLightなどのを追加します。光の明るさのプロパティを操作して、光るランプを作成します。

  4. Lampに「GlowScript」という名前の新しいスクリプトを追加します。そのスクリプト内で、ランプの部品とスポットライトを保存するための変数を作成します。


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. 次に、ループが実行される度に、光の明るさがどれだけ変わるかを保持するための変数を作成します。さらに、ループが再度実行される前に待つ秒数用の別の変数を追加します。


    -- 光の明るさが毎回どれだけ変わるか
    local brightnessChange = 1
    -- 光が明るさを変える秒数
    local timeChange = 1

ランプを光らせる

ランプは、明るくなるための1つのforループと、暗くなるためのもう1つのforループを使用します。各forループには、制御変数であるcurrentBrightnessがあります。これにより、forループの制御変数が上下すると、ライトの明るさも上下します。

最初のループ(光の増加)

forループは、キーワードforと制御変数で始まります。このスクリプトは、光の明るさの値を制御変数の値に設定します。

  1. 次の値を使ってforループをコーディングします。制御変数と終了値をカンマで区切ることを忘れないでください。

    • 制御変数: currentBrightness
    • 開始値: 0
    • 終了値: 5
    • 増分値: brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. forループのスコープ内で、光の明るさのプロパティを制御変数の値に設定します。light.Brightness = currentBrightnessを入力します。これで、ループが実行されると、光が明るくなります。


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. 変化が一度に起こらないように、timeChangeの値を使用して待機関数を追加します。


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. 経験を実行して、毎秒光が明るくなるのを観察します。

最初のループで明るさの変化が見えない場合:

  • light.Brightness = currentBrightnessがforループのdoとendの間にあることを確認してください。
  • timeChangeが少なくとも1以上であることを確認してください。数値が小さいと、明るさの変化が速くなりますが、時間とともに見えづらくなります。
  • forループの最初の行に、制御変数、終了値、増分値を区切るカンマが合計で2つあることを確認してください。

2番目のループ(光の減少)

光を暗くするために、2番目のforループを使用します。このループの値は逆になるので、光は明るく始まり、毎秒暗くなります。

  1. 時間が経つにつれて明るさを減少させる2番目のforループをコーディングします。解決策は以下のコードボックスにあります。次の値を使用してください:

    • 制御変数 - currentBrightnessを5に設定します(前のループの終わり)。
    • 終了 - 0、光を消します。
    • 増分 - brightnessChangeを引きます。

    -- 2番目のループでランプを暗くします
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. 経験を実行します;光が明るくなり、その後暗くなるのが見えるはずです。

光を繰り返す

現在、光は一度だけ点灯して消えます。ランプが連続して点灯・消灯するようにするために、forループを繰り返しのwhileループ内に配置します。

  1. forループの下に新しいwhileループを作成します。


    while true do
    end
  2. 両方のforループをwhileループ内に配置します。whileループと区別しやすいように、forループのインデントを調整します。


    while true do
    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
    end
  3. 経験を実行して、光が連続して明るくなったり暗くなったりするのを確認します。

完成した光のスクリプト

完成版のスクリプトは以下のようになります。


-- このランプに取り付けられた光を保存
lightPart = script.Parent
light = lightPart.SpotLight
-- 光の明るさが毎回どれだけ変わるか
local brightnessChange = 1
-- 光が明るさを変える秒数
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- 光を消すための2番目のループ
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

まとめ

プロジェクトで複雑な効果を作成するには、スクリプトが複数のループを使用したり、異なる種類のループの組み合わせを使用したりします。光るライトをコーディングするためには、2つのループがwhileループ内にネストされています。コーダーがさらに多くのループを追加する際は、コードが読みやすくなるようにインデントをチェックしてください。

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。