【Roblox Studio】ゲーム空間の重力を変更するブロックの設置

Scripting

1. 一時的な重力変更

本記事では、プレイヤーが特定のブロックに触れた際にゲーム内の重力が一時的に変化し、一定時間後に元の重力に戻る機能の実装方法を解説します。

2. 使用する機能

・Script
・Workspace

3. 手順

まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。

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

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

重力を制御している項目を確認します。
一旦、ゲームをプレイし、「Workspace」オブジェクトを選択します。ここで「Gravity」プロパティを見つけることができ、これがゲーム全体の重力を制御しています。値を変更してみて、プレイヤーがどのように動くかを確認してみてください。

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

local block = script.Parent
local originalGravity = workspace.Gravity
local alteredGravity = 25 
local duration = 5  

local function changeGravity()
	workspace.Gravity = alteredGravity
	wait(duration)
	workspace.Gravity = originalGravity
end

local function onTouch(part)
	local character = part.Parent
	local humanoid = character:FindFirstChildOfClass("Humanoid")

	if humanoid then
		changeGravity()
	end
end

block.Touched:Connect(onTouch)

上記コードの簡単な解説は以下となります。

  1. local block = script.Parent
    local originalGravity = workspace.Gravity
    local alteredGravity = 25
    local duration = 5


    block:スクリプトがアタッチされているオブジェクト(Part)を参照します。
    originalGravity:ゲームの初期の重力設定を保持します。
    alteredGravity:変更後の重力の値を25として保持します。
    duration:重力が変更されている期間を秒単位で5として保持します。
  2. local function changeGravity()
     workspace.Gravity = alteredGravity
     wait(duration)
     workspace.Gravity = originalGravity
    end


    changeGravity関数:ゲーム内の重力を一時的に変更し、指定した期間(duration)後に元に戻す機能を持っています。
  3. local function onTouch(part)
     local character = part.Parent
     local humanoid = character:FindFirstChildOfClass(“Humanoid”)
     if humanoid then
      changeGravity()
     end
    end


    onTouch関数:ブロックが何かに触れたときに実行される関数です。
    character:触れたオブジェクト(part)の親オブジェクトを参照します。
    humanoid:characterオブジェクトの子オブジェクトの中からHumanoidクラスのオブジェクトを探し、それを変数に代入しています。
    if humanoid then:humanoidオブジェクトが存在する場合、changeGravity関数を呼び出します。
  4. block.Touched:Connect(onTouch)
    blockオブジェクトが何かに触れたときにonTouch関数を呼び出すイベントハンドラを設定しています。

    要するに、このコードはプレイヤーが特定のブロックに触れると一時的にゲーム内の重力が小さくなり、5秒後に元の重力に戻る機能を実装しています。

この状態でゲームをプレイしてみます。
プレイヤーがブロックに触れるとゲーム全体の重力が小さくなり、一定時間経過後に元の重力に戻れば正しく設定できています。

本記事を通じて、プレイヤーがブロックに触れることでゲーム内の重力が一時的に変わり、設定した時間が経過した後に元の重力に戻る機能の実装方法を学びました。この知識を基に、プレイヤーのアクションに応じてゲームの環境がダイナミックに変化する、エンゲージングなゲームエクスペリエンスを作り出すことが可能となります。

チュートリアル系電子書籍の紹介
Roblox Studioでゲーム制作を始めてみませんか?
日本語版 ※英語版あり 「10時間でできる Roblox Studio アクションゲーム制作入門」では、Roblox Studioでのゲーム制作の基本から応用までを短時間で効率的に学びます。この一冊で、初心者でも簡単にアクションゲームを制作できるようになり、ゲーム制作の面白さと達成感を存分に味わうことができます。Roblox Studioの世界への扉を開き、あなたのクリエイティブな旅を始めましょう。
Luaに関する電子書籍の紹介
Roblox Studioで使用するLua言語の基本を学ぼう!
日本語版 ※英語版あり 「5時間でできる Roblox Studio を使ったLuaの基本」では、Roblox Studioで使用するプログラミング言語Luaの基本をRoblox Studio上で学びます。また、学んだ知識を活かして、Roblox StudioでLuaを使用する応用部分も一部盛り込まれています。この一冊でLuaの基本を学ぶことで、よりRoblox Studioでのゲーム制作を楽しめるようになります。
アニメーション制作系電子書籍の紹介
Roblox Studioでアニメーションを作ってみよう!
「5時間でできる Roblox Studio アニメーション制作入門」では、Roblox Studioでのアニメーション制作の基本から実際に作るところまでを短時間で効率的に学びます。この一冊で、アニメーション制作の第一歩を踏み出すことができます。Roblox Studioで自由自在にアニメーションを作成し、よりクリエイティブなゲームを作りましょう!
Scripting
シェアする
hideをフォローする
Roblox Studio 制作tips

コメント

タイトルとURLをコピーしました