1. 時間帯による背景の変更
Roblox Studioでの背景変更は、Skyインスタンスを利用することで簡単に実現できます。本記事では、ゲーム内で昼間と夕方の時間帯に合わせて、背景を自動的に切り替える方法を紹介します。
2. 使用する機能
・Sky
3. 手順
まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。
ToolboxからSkyboxを追加していきます。
Toolboxを開き、Categoriesの横にあるSee Allをクリックします。
LANDSCAPEをクリックします。
skyboxの横にあるSee Allをクリックします。
今回は分かりやすくするために、昼間のSkyboxをアニメ風のOne Piece Skyboxにします。
One Piece Skyboxは以下画像のようになります。
夕方のSkyboxをSunset Skybox with sunにします。
Sunset Skybox with sunは以下画像のようになります。
2つのSkyインスタンスの主な違いは、SkyboxBKやSkyboxDnなどのId部分です。スクリプトを使って、昼間と夕方のそれぞれの時間帯に合わせてIdを変更することで、異なる背景を適用することが可能です。
ServerScriptServiceの子要素にScriptを追加して、以下のコードを記入します。
local lighting = game:GetService("Lighting")
while true do
wait(1)
local clocktime = lighting.ClockTime
if clocktime >= 9 and clocktime < 16 then
lighting.Sky.SkyboxBk = "http://www.roblox.com/asset/?id=158516797"
lighting.Sky.SkyboxDn = "http://www.roblox.com/asset/?id=158516788"
lighting.Sky.SkyboxFt = "http://www.roblox.com/asset/?id=158516797"
lighting.Sky.SkyboxLf = "http://www.roblox.com/asset/?id=158516797"
lighting.Sky.SkyboxRt = "http://www.roblox.com/asset/?id=158516797"
lighting.Sky.SkyboxUp = "http://www.roblox.com/asset/?id=158516792"
else
lighting.Sky.SkyboxBk = "rbxassetid://600830446"
lighting.Sky.SkyboxDn = "rbxassetid://600831635"
lighting.Sky.SkyboxFt = "rbxassetid://600832720"
lighting.Sky.SkyboxLf = "rbxassetid://600886090"
lighting.Sky.SkyboxRt = "rbxassetid://600833862"
lighting.Sky.SkyboxUp = "rbxassetid://600835177"
end
end
上記のコードは、
1. Lightingサービスを取得
2. 無限ループ内で、毎秒ごとにゲーム内の時間(ClockTime)をチェック
3. ゲーム内の時間が9時以上、16時未満であれば、SkyboxBkなどに適用する昼間のIdを設定
4. それ以外の時間帯では、夕方のIdを設定
つまり、このコードはゲーム内の時間帯に応じてSkyboxの背景を変更する機能です。
1つのSkyインスタンスのIdを変更するのみなので、Skyインスタンスを1つ消去します。
この状態でゲームをプレイし、LightingのプロパティにあるClockTime(時間帯)を見てみます。この値が12(昼間)であれば、アニメ風の昼間の背景が適用されています。
ClockTimeを16にした場合、夕方の背景が適用されています。
この記事では、ゲーム内の時間帯に応じてSkyboxの背景を動的に変更する方法を説明しました。この方法を利用することで、ゲームの雰囲気を時間帯に合わせて変化させることができます。
コメント