Tech Kids Grand Prix 2026に「Roblox賞」が新設!応募は9/30(水)まで
CreateR Nest
ブログ一覧へ
Roblox Studio

AIにたのんで、コインあつめゲームの土台を作ろう

動作確認日: 2026年10月19日(Roblox Studio 0.739)

連載「AIといっしょにゲームを作ろう」の最初のゲームです。準備の回(つなぎ方)を読む

前の回で、ChatGPTとロブロックス スタジオ(Roblox Studio)をつなぎました。今回は、いよいよ、AIにゲームを作ってもらいます。

作るのは、コインあつめゲームです。1回で完成させず、4回に分けて、少しずつ育てていきます。今回は、その最初の「土台」です。

今回作るもの

  • スタート地点
  • 空中にうかぶ足場(5つ)
  • 足場の上のコイン(5つ)
  • コインにさわると、そのコインが消える

スコアやゴールは、次の回で足します。最初から全部たのまないのが、コツです。一度にたのみすぎると、AIも、どこがどうなっているのか、わからなくなるからです。

ChatGPTにたのむ

練習用の作品を開いたまま、ChatGPTに次の文を送ります。

Roblox Studio に接続して、「コインあつめダッシュ」というゲームの土台を作ってください。
今回は、ゲームの最初の一歩です。次のことだけ作ってください。

【作るもの】
1. スタート地点(スポーン)を1つ。
2. 空中に浮かぶ足場を5つ。ジャンプで順番に渡れる間隔にしてください。
3. 足場の上に、コインを5つ。コインは黄色くて、くるくる回ります。
4. プレイヤーがコインにさわると、そのコインが消えます。

【ルール】
- 今回はスコアやゴールは作りません。次の回で足します。
- 作ったものは、名前を分かりやすくしてください(例:Coin、Platform1)。
- スクリプトは、使う場所にきちんと入れてください。
- 小学生が読めるように、スクリプトの中に日本語のコメントをつけてください。

【最後にお願い】
作り終わったら、次の3つを、やさしい言葉で教えてください。
- 何を作ったか
- スクリプトのどこが、コインを消す部分か
- 試しに遊ぶには、何を押せばいいか

この文には、3つの工夫があります。

  • 「今回はここまで」と範囲を決める:AIが作りすぎるのを防ぎます
  • 名前を分かりやすくしてもらう:あとで、自分でスクリプトを読むときに、迷いません
  • 最後に説明をお願いする:AIの説明を読む習慣がつきます

ChatGPTの「Work」に、たのむ文を送ったところ

できあがりを見る

約44秒でChatGPTから次の返事が来ました。

ChatGPTの返事。作ったもの、コインを消す部分、遊び方が書いてある

返事を読むと、次のことがわかります。

  • 作ったもの:スタート地点「StartSpawn」が1つ、足場「Platform1〜5」、コイン「Coin1〜5」
  • コインを消す部分:各コインの中の「CoinScript」にある、coin:Destroy() という命令
  • 遊び方:画面の上の▶(プレイ)を押して、W・A・S・Dで動き、スペースキーでジャンプします。■(停止)で終わります

「最後にお願い」でたのんだ3つに、そのまま答えてくれています。

スタジオの画面を見てみましょう。

ChatGPTが作った、コインあつめの土台。スタジオの編集画面

右のエクスプローラー(作品の中身の一覧)に、「CoinCollectDash」というフォルダが増えています。開くと、たのんだとおりの名前で、部品がならんでいます。

エクスプローラーのCoinCollectDashフォルダ。StartSpawn、Coin1〜5、Platform1〜5がならんでいる

「名前を分かりやすくしてください」とたのんだので、何が何か、すぐにわかります。

ただ、実際に遊んでみる画面を見ると、コインが足場の上に寝ています。

ChatGPTが作ったコインあつめの土台。青い足場が5つならび、足場の上に黄色いコインが寝かせて置かれている

コインは立って、くるくる回ってほしいです。AIは、思ったとおりに作ってくれないこともあります。そんなときは、直してもらいましょう。

遊んでみる

  1. 画面の上の「▶(プレイ)」を押します
  2. W・A・S・Dで動いて、スペースキーでジャンプして、足場を順番に渡ります
  3. コインにさわると、そのコインが消えます
  4. 「■(停止)」を押すと、終わります。もう一度プレイすると、コインは元にもどります

直してみる

見つけた問題は、そのままChatGPTに伝えます。次の文を送りました。

コインが、足場の上に寝ています。コインを立てて、その場でくるくる回してください。ほかのところは、変えないでください。

すると、コインが立って、足場の上に見えるようになりました。

直したあとの画面。コインが立って、足場の上に浮かんで見える

「ほかのところは、変えないでください」のひとことが大事です。このひとことがないと、直すついでに、足場やスクリプトまで変わってしまうことがあります。

スクリプトを読んでみる

ChatGPTが書いたコインのスクリプトを読んでみましょう。エクスプローラーのCoin1の中にあるCoinScriptです。日本語のコメント(-- で始まる行)も、ChatGPTがつけてくれました。

-- このスクリプトが入っているコインを使うよ。
local coin = script.Parent
local Players = game:GetService("Players")
local collected = false

-- プレイヤーがさわったときだけ、コインを消すよ。
coin.Touched:Connect(function(hit)
    local character = hit:FindFirstAncestorOfClass("Model")
    local player = character and Players:GetPlayerFromCharacter(character)
    if not player or collected then
        return
    end
    -- 何回も取らないようにして、コインを消すよ。
    collected = true
    coin:Destroy()
end)

-- 少しずつ向きを変えて、くるくる回すよ。
while coin.Parent and not collected do
    local seconds = task.wait()
    if coin.Parent and not collected then
        coin.CFrame = CFrame.new(coin.Position)
            * CFrame.Angles(0, math.rad(120) * os.clock(), 0)
    end
end

長く見えますが、3つの部分に分けると、読めます。

1. 準備(はじめの4行)

  • local coin = script.Parent:このスクリプトが入っているコインを、coin という名前でおぼえます
  • local Players = game:GetService("Players"):プレイヤーの一覧を使えるようにします
  • local collected = false:「もう取られたか」の目印です。はじめは「まだ」(false)です。連載「ロブロックスで最初のゲームを作ろう」の第5回で学んだ、変数です

2. さわったら、消える

coin.Touched:Connect(function(hit) は、コインに何かがさわったときに、中の命令を動かす、という意味です。「さわったら〇〇する」は、第8回で学びました。hit は、さわったものです。

中では、次のことをしています。

  1. さわったものから、キャラクターをたどります(FindFirstAncestorOfClass("Model"))
  2. そのキャラクターが、プレイヤーかどうかを調べます(GetPlayerFromCharacter)
  3. if not player or collected then return end:プレイヤーではない、またはもう取られているなら、何もしないで終わります。第7回の「もし〜なら」です
  4. そうでなければ、collected = true で目印を「取られた」に変えて、coin:Destroy() でコインを消します

「プレイヤーかどうか」を調べるのは、足場や、ほかのものがコインにさわったときに、コインが消えてしまわないようにするためです。ChatGPTの返事で、「コインを消す部分」と教えてくれたのは、この coin:Destroy() でした。

3. くるくる回す

while coin.Parent and not collected do は、コインがあって、まだ取られていない間、ずっとくり返す、という意味です(第5回の「くり返し」)。

  • task.wait():少しだけ待ちます。待たないと、パソコンが止まってしまいます
  • coin.CFrame = ... CFrame.Angles(0, math.rad(120) * os.clock(), 0):コインの向きを、たて向きの軸(Y)のまわりに回します。os.clock() は、時間です。時間がたつほど、角度が増えます。120 は、1秒に120度回る、という数字です

ためしに、数字を変えてみましょう

回る速さは、120 という数字で決まっています。この数字を、自分で変えてみましょう。

  1. 「■(停止)」を押して、編集の画面にもどります。プレイ中に変えても、保存されません
  2. エクスプローラーで、CoinCollectDash の中のCoin1を開いて、CoinScriptをダブルクリックします
  3. スクリプトのいちばん下のほうにある、math.rad(120) を探します
  4. 120 だけを、360 に書きかえます。math.rad(360) * os.clock() になります
  5. 「▶(プレイ)」を押して、いちばん手前の足場のコインを見ます

Coin1だけが、ほかのコインより速く回ります。 ほかのコイン(Coin2〜5)は、それぞれ別のスクリプトなので、そのままです。

数字を小さくすると、ゆっくり回ります。確かめたら、360 を 120 にもどしておきましょう。

読めれば、直せます。 AIにたのまなくても、自分で数字を変えられました。

もっといい、たのみ方

  • 一度にたのみすぎない:「ここまで」と区切ると、思ったとおりに近づきます
  • 数や色を、はっきり書く:「足場を5つ」「コインは黄色」のように
  • 最後に説明をお願いする:作った中身が、わかります
  • 直してもらうときは、「ほかのところは、変えないでください」と添える:直したいところだけ、直ります

つぎは

次の回では、コインを集めた数をスコアとして画面に出して、全部集めたらゴールになる仕組みを足します。