Roblox Studio:パーツ接触イベントでプレイヤーの能力を変えるやり方
Roblox Studio: パーツ接触イベントでプレイヤーの能力を変えるやり方
- 「ホーム」メニュータブの「移動」ボタンをクリックすると移動用のギズモ(赤、青、緑の矢印)が表示される
- ギズモ(矢印部分)をドラッグして「パーツブロック」を動かす
- 「ホーム」メニュータブの「アンカー」ボタンをクリックする
※パーツブロックを選択した状態で「アンカー」ボタンをクリックすることにより、ゲームプレイ中にパーツブロックは動かなくなります。もしも、空中にある状態でアンカーすれば、パーツブロックは空中に固定されます。
「Script」オブジェクトを選択する。
※もしも、「Script」オブジェクトが見つからない場合には、検索窓でScriptと検索して下さい。
Scriptエディターが開き、「print(“Hello world!”)」と記述されたスクリプトが含まれる新しいScriptオブジェクトが作成される。
プリント関数print(“Hello world!”)を削除する。
スクリプトをアタッチしたパーツをローカル変数「part」として参照できるようにするスクリプトを追加する。
local part = script.Parent
パーツに触れたオブジェクトを検出する関数を定義する。
local function onTouch(hit)
end
パーツに触れたエンティティの親オブジェクトを取得し、ローカル変数「character」に代入する。通常はキャラクターのモデルが代入されることになる。
local character = hit.Parent
local humanoid = character:FindFirstChildOfClass(“Humanoid”)
※大文字と小文字を間違うとスクリプトは正しく動きませんので、注意して下さい。
if humanoid then
end
print(“Humanoidがタッチした!”)
※ここでPrint関数を追加した理由は、以下に説明するSTEP.16で、実態にパーツ接触イベントが正しく動いているかチェックするためです。一時的に追加したもので、正しく動くことが確認できたらPrint関数は削除します。
part.Touched:Connect(onTouch)
- ステージ上のプレイボタンをクリックして、ゲームをスタートする
- プレイヤー(アバター)をWASDキーで操作(視点はマウス右クリックで変える)して、スクリプトをアタッチしたパーツまで動かす
- プレイヤー(アバター)がそのパーツに触れると、「Humanoidがタッチした!」が出力画面に表示される
※もし出力画面に「Humanoidがタッチした!」と表示されず、代わりに赤文字でエラーが表示された場合は、その赤文字をクリックしてください。これにより、カーソルがエラーの原因となっているスクリプトの該当部分にジャンプします。その後、スクリプトに誤りがないか、特に「大文字と小文字の違い」や「変数名に誤りがないか」を確認してみてください。
スクリプト1-7により、スクリプトがアタッチされたパーツに触れたオブジェクトがHumanoidクラスの子オブジェクトを持っている場合(例えば、プレイヤーやゾンビなどのキャラクターであれば)、IF条件文内のprint
関数が実行されます。STEP.17以降では、このIF条件文内のスクリプトを変更し、パーツに触れたプレイヤー(キャラクター)のスピード、ジャンプ力、身体の大きさを変更する方法を説明します。
スクリプトがアタッチされたパーツに触れたオブジェクトがプレイヤーやゾンビなどのキャラクターである場合、以下の4つのスクリプトをIF条件文内に追加しましょう。これにより、Humanoidオブジェクトのプロパティが変更されます。
- Healthプロパティ: 値を0に設定し、キャラクターを無効化する
- WalkSpeedプロパティ: 値を100に設定し、移動速度を速くする
- JumpHeightプロパティ: 値を100に設定し、ジャンプ力を高める
- BodyWidthScale.Valueプロパティ: 値を0.5に設定し、身体の大きさを小さくする
以下のスクリプトをIF条件文に追加する。
humanoid.Health = 0
スクリプトがアタッチされたパーツにプレイヤーやゾンビなどのキャラクターが触れると、Healthプロパティ: 値が0になり、キャラクターが無効化されます。
以下のスクリプトをIF条件文に追加する。
humanoid.WalkSpeed = 100
スクリプトがアタッチされたパーツにプレイヤーやゾンビなどのキャラクターが触れると、WalkSpeedプロパティ: 値が100になり、キャラクターの移動速度が速くなる。
以下のスクリプトをIF条件文に追加する。
humanoid.JumpHeight = 100
スクリプトがアタッチされたパーツにプレイヤーやゾンビなどのキャラクターが触れると、JumpHeightプロパティ: 値が100になり、キャラクターのジャンプ力が高くなる。
以下のスクリプトをIF条件文に追加する。
humanoid.BodyWidthScale.Value = 0.5
humanoid.BodyHeightScale.Value = 0.5
humanoid.BodyDepthScale.Value = 0.5
— humanoid.HeadScale.Value = 0.5も追加すれば、キャラクターの顔も小さくなります。
スクリプトがアタッチされたパーツにプレイヤーやゾンビなどのキャラクターが触れると、BodyWidthScale.Value, BodyHeightScale.Value, BodyDepthScale.Valueプロパティの値が0.5になり、キャラクターの身体の大きさが小さくなります。humanoid.HeadScale.Value = 0.5も追加すれば、キャラクターの顔も小さくなります。
Roblox Studioは、Roblox用の カスタムゲームを作成できる公式の無料 ユーティリティソフトウェア。ミニゲーム、障害物コース、ロールプレイングストーリーなど、さまざまなゲーム作ることが出来ます 。プログラミング言語Luaを利用してプログラミングします。Robux(ロバックス)と呼ばれる仮想キャッシュを、ゲーム内アイテムに対して使用することで収益を得る仕組みを構築することも出来るので、子供たちはゲーム開発を通じでビジネスの感覚が身につけられる。
Robloxは、ユーザーがRoblox Studioを使ってゲームをプログラムしたり、他のユーザーが作成したゲームをプレイしたりできるオンラインゲーミングプラットフォームおよびゲーム作成システムです。