チャプター 2
Step 04
AIに聞いてみよう!
「まひまひ」さん初登場!AIへの質問に挑戦!
ボールをランダムに作ってスポーン位置に移動させるコード。ちょっとむずかしいですが、AIにどうやって質問したら教えてくれるのでしょうか。「まひまひ」さんが書いたのはこんな質問でした。「球体のパーツをランダムな場所に1秒に一個自動的に作り、画面の中心に向かって動いていくスクリプトをおしえて」
どんな結果になったのでしょうか。ビデオをじっくり見てみてくださいね!
ビデオで使っているAIが教えてくれた最初のコードはこちらです。
-- ランダムな位置に球体を生成し、中心に向かって動かすスクリプト
-- 中心の位置を取得
local center = Vector3.new(0, 0, 0)
-- 球体を生成する関数
local function createSphere()
-- 球体を作成
local sphere = Instance.new("Part")
sphere.Shape = Enum.PartType.Ball
sphere.Size = Vector3.new(2, 2, 2)
sphere.Position = Vector3.new(math.random(-50, 50), math.random(10, 50), math.random(-50, 50))
sphere.Anchored = true
sphere.Parent = game.Workspace
-- 球体を中心に向かって動かす
local direction = (center - sphere.Position).unit
local speed = 10
local moveConnection
moveConnection = game:GetService("RunService").Heartbeat:Connect(function()
sphere.Position = sphere.Position + direction * speed * game:GetService("RunService").Heartbeat:Wait()
if (sphere.Position - center).magnitude < 1 then
moveConnection:Disconnect()
end
end)
end
-- 1秒ごとに球体を生成する
while true do
createSphere()
wait(1)
end
-- 中心の位置を取得
local center = Vector3.new(0, 0, 0)
-- 球体を生成する関数
local function createSphere()
-- 球体を作成
local sphere = Instance.new("Part")
sphere.Shape = Enum.PartType.Ball
sphere.Size = Vector3.new(2, 2, 2)
sphere.Position = Vector3.new(math.random(-50, 50), math.random(10, 50), math.random(-50, 50))
sphere.Anchored = true
sphere.Parent = game.Workspace
-- 球体を中心に向かって動かす
local direction = (center - sphere.Position).unit
local speed = 10
local moveConnection
moveConnection = game:GetService("RunService").Heartbeat:Connect(function()
sphere.Position = sphere.Position + direction * speed * game:GetService("RunService").Heartbeat:Wait()
if (sphere.Position - center).magnitude < 1 then
moveConnection:Disconnect()
end
end)
end
-- 1秒ごとに球体を生成する
while true do
createSphere()
wait(1)
end
※ みなさんが同じ質問をしてもAIが教えるコードがこれとはちがうものになることもあります。違っていてもまずは皆さんにAIが教えてくれたコードを説明にしたがってやってみてくださいね!