ChatGPTに、ロブロックスで動作する簡単なプログラムを作成してもらいました。【Q】が私が投げかけた質問、【A】がChatGPTからの返答です。
【Q】ロブロックスで動作する簡単なサンプルプログラムを作成して
【A】ロブロックスで動作する簡単なサンプルプログラムとして、以下のようなものがあります。
- プレイヤーがキーを押すと、ボールが跳ね返るゲーム
-- スクリプトの開始
local ball = script.Parent -- ボールのパーツを取得
local speed = 50 -- ボールの速度を設定
function onTouched(hit)
if hit.Parent:FindFirstChild("Humanoid") then -- プレイヤーがボールに触れた場合
local force = ball.CFrame.lookVector * speed -- ボールにかかる力を計算
ball.Velocity = force -- ボールを飛ばす
end
end
ball.Touched:Connect(onTouched) -- ボールが触れられた時のイベントを登録
- プレイヤーがスイッチを押すと、ランプが点灯するシステム
-- スクリプトの開始
local switch = script.Parent -- スイッチのパーツを取得
local lamp = switch.Parent:FindFirstChild("Lamp") -- ランプのパーツを取得
function onActivated()
if lamp then -- ランプが存在する場合
lamp.BrickColor = BrickColor.new("Bright green") -- ランプの色を変更
end
end
switch.Activated:Connect(onActivated) -- スイッチが押された時のイベントを登録
以上のようなサンプルプログラムをロブロックスで実行することができます。ただし、このプログラムはあくまで基本的なものであり、実際のゲームやシステムを作成する場合は、より高度なプログラミングスキルが必要になります。
【Q】ActivatedはToolのイベントだと思います。クリックしたらランプが点灯するプログラムを教えてください
【A】すみません、ActivatedはToolのイベントでした。クリックしたらランプが点灯するプログラムは、以下のようになります。
-- スクリプトの開始
local clickDetector = script.Parent:FindFirstChild("ClickDetector") -- クリック検出器を取得
local lamp = script.Parent.Parent:FindFirstChild("Lamp") -- ランプを取得
function onActivated()
if lamp then -- ランプが存在する場合
lamp.BrickColor = BrickColor.new("Bright green") -- ランプの色を変更
end
end
clickDetector.MouseClick:Connect(onActivated) -- クリックされた時のイベントを登録
このプログラムでは、クリック検出器を用いてクリックイベントを検知し、ランプの色を変更しています。ランプのオブジェクト名が「Lamp」であることが前提となっていますので、実際に使用する場合はオブジェクト名を修正する必要があります。
↑— ここまでがChatGPTで出力されたものです。—↑
プログラムを検証する
すごいですね。プログラムを作成してくれました。でもこのプログラム、正常に動作するのでしょうか?
1つ目のプログラムから検証してみましょう。
まず、このプログラムは「local ball = script.Parent」を見て分かるように、パーツを1個挿入して、その下にこのプログラムを入れることになります。ただしタッチイベントを使用していますので、「キーを押すと」ではなく、「ボールに触れると」の誤りですね。また「跳ね返る」という表現も違うかもしれませんが、ボール自体は動きました。
ただしChatGPTからの返答に対して間違いを指摘すると、別のプログラムを提案してくれますので、使い方によっては正解を導き出すことは可能でしょう。
2つ目のプログラムを見てみましょう。
一番下に「switch.Activated」というものがありますが、これはToolのイベントでは??? ツールを装備した時に発生するイベントなので、ちょっと間違っているような。そこでさらに質問をぶつけてみました。「スイッチを押す」と表現が良くなかったようなので、今度は「クリックする」としてみました。今度は私が期待しているようなプログラムを出力してくれました。
つまり、かなり具体的に質問した方が正しい答えが返ってくるということですね。これなら十分に使えます。
ちなみに上記のプログラムをそのままコピペしただけではダメです。文法エラーにはなりませんが、実行時にエラーになるでしょう。このプログラムを読み、他に何が必要なのかが分からなければ組み込めないわけです。
結論から言いますと、ChatGPTはロブロックスのゲーム開発に活用できます。プログラムも生成してくれます。ただし出力されたプログラムを読み取る力は必須です。つまり現時点ではプログラムの基本をマスターしている人でないと、ChatGPTを活かしきれないということになります。