「もし〜なら」と「くり返し」をスクリプトで書こう
動作確認日: 2026年9月19日(Roblox Studio 0.739)
連載「ロブロックスで最初のゲームを作ろう」の第7回です。第1回から読む
第1回で、アシスタントに「すべての〜について」「もし〜なら」とたのむと、思ったとおりに動きました。今回は、この2つを自分でスクリプトに書きます。授業で使う場合、1回分の目安は60分です。
この回でできるようになること
- 「もし〜なら」を、
ifで書く - 「出力」で、スクリプトの結果やエラーを見る
- 「〜回くり返す」を、
forで書く - 「すべての〜について」で、たくさんの足場にまとめて仕掛けをつける
はじめる前に:おうちの人と話そう
作ったゲームや、遊んだゲームのことを、おうちの人に話してみましょう。どんなものを作ったか、見せてあげるのもいいですね。
Robloxには、おうちの人が使える「保護者コントロール」があります。
- だれとチャットできるか
- どんなゲームで遊べるか
- お金をいくらまで使えるか
- 1日に何時間遊べるか
などを、おうちの人が決められます。ルールは、おうちの人といっしょに決めましょう。 いやなことや、こまったことがあったときも、まず話してください。
先生・保護者の方へ:保護者コントロール(2026年9月時点)
保護者コントロールを使うには、保護者権限のあるRobloxアカウントを、お子さまのアカウントに紐づけておく必要があります。紐づけたあとは、Robloxの「設定」の「保護者コントロール」から、次のようなことが決められます。
設定 できること コンテンツ制限 遊べるゲームの成熟度を決める。ゲームを個別に許可・ブロックする 通信 ゲーム内のチャットや友達とのチャットを、使えるようにするかどうか決める プライベートサーバー お子さまが参加できる、招待制のサーバーを制限する 友達 友達リストを確かめる。ブロックや報告もできる 支出制限 Robuxの購入などに、毎月の上限を決める スクリーン時間 1日に遊べる時間の上限を決める。よく遊んでいるゲームも確かめられる くわしい手順は、Roblox公式ヘルプの「保護者コントロールの概要」と「保護者の方へ:お子様のアカウントとの紐づけ方」にあります。
話し合いのヒント:「おうちの人と、ゲームのことをどれくらい話してる?」「いやなことがあったら、だれに話す?」と問いかけ、ネットの上のことも、大人と話してよいのだと伝えてください。
1. 前回の作品を開く
Studio を起動して、「最近使用したバーチャル空間」から、第6回で保存した作品を開きます。いちばん大きい番号のものです。
2. 「出力」を出しておく
今回は、「出力」という画面を使います。スクリプトからのメッセージが、1行ずつ出てくる画面です。スクリプトにまちがいがあるときも、ここに赤い文字で知らせてくれます。
- 上のリボンの「スクリプト」タブを押す
- 「出力」を押す。「コマンド」の右となりにあります

画面のいちばん下に、「出力」が出てきます。メッセージは、時刻といっしょに1行ずつならびます。

開いたときから、Studio のお知らせが出ていることがあります。気にしなくて大丈夫です。
3. 「もし〜なら」— if
パーツとスクリプトを用意する
- 「パーツ」でブロックを出して、スタート地点の近くの見やすいところに置く
- 名前を
LieDetectorにする(右クリック →「名前を変更」) - 「固定」を押す
- エクスプローラで
LieDetectorにマウスを乗せて「+」→「Script」を選ぶ - できた Script の名前を
FactCheckerにする
LieDetectorは「うそ発見器」、FactCheckerは「本当かどうか調べる係」という意味です。

最初から書いてある print("Hello world!") は、あとで使うので残しておきます。
書いてみる
print の下に、こう書き足します。
print("Hello world!")
-- 正しいとき、パーツを緑にする
local LieDetector = script.Parent
if 3 + 3 == 6 then
LieDetector.Color = Color3.fromRGB(0, 255, 0)
end
--ではじまる行は、コメントです。人が読むためのメモで、プログラムは読みとばしますif 〜 thenからendまでが、「もし〜なら、こうする」です3 + 3 == 6は、「3 + 3 は 6 と同じ?」という問いかけですColor3.fromRGB(0, 255, 0)は色です。赤・緑・青の量を、0〜255で書きます。緑だけ255なので、緑になります

「▶」で再生してみましょう。3 + 3 は 6 なので、LieDetector が緑になります。

「出力」には、Hello world! と出ています。print は、出力に文字を出す命令です。右のはしには、どのスクリプトの何行目から出たか(FactChecker:1)も出ています。
「=」と「==」はちがう
| 書き方 | 意味 |
|---|---|
= | 右のものを、左に入れる(第5回の Bridge.Transparency = 1 など) |
== | 右と左が同じかを調べる |
if のうしろには、== を書きます。
まちがった問いかけにしてみる
停止してから、if 3 + 3 == 6 then の行を、if 3 + 3 >= 10 then に変えて、もう一度再生します。
>= は「以上」です。3 + 3 は10以上ではないので、if の中は実行されず、緑になりません。
よく使う記号です。
| 記号 | 意味 |
|---|---|
== | 同じ |
~= | ちがう |
< ・ > | より小さい・より大きい |
<= ・ >= | 以下・以上 |
2つとも正しいときだけにしたいときは、
andでつなぎます。if 3 + 3 == 6 and 2 > 1 thenなら、両方とも正しいので実行されます。
4. わざとまちがえて、「出力」を読む
スクリプトをまちがえると、「出力」に赤い文字で知らせてくれます。わざとまちがえて、見てみましょう。
- 停止してから、さっき変えた
if 3 + 3 >= 10 thenの行を、もとのif 3 + 3 == 6 thenにもどす LieDetector.ColorのLieDetectorをLieDetecterにする(1文字だけ変える)- 再生する

赤い文字は、こう読みます。
Workspace.LieDetector.FactChecker:7: attempt to index nil with 'Color'
| 部分 | 意味 |
|---|---|
Workspace.LieDetector.FactChecker | どのスクリプトか |
:7 | 7行目がおかしい |
attempt to index nil with 'Color' | 「からっぽ(nil)のものの Color を使おうとした」 |
nil は、「なにもない」という意味です。LieDetecter という名前は、どこでもつけていません。だから中身がからっぽで、Color を変えられなかったのです。
7行目を見れば、どこを直せばいいかが分かります。
確かめたら、LieDetector にもどしておきます。
アシスタントに「直して」とたのむこともできます。でも、ほかのところまで書きかえられることがあります。まず出力を読むほうが、早く直せることが多いです。
5. 「〜回くり返す」— for
第5回の while true do は、ずっとくり返しました。こんどは、回数を決めてくり返します。10から0まで数える、カウントダウンを作りましょう。
- エクスプローラで ServerScriptService にマウスを乗せて「+」→「Script」を選ぶ
- できた Script の名前を
Countdownにする - 最初から書いてある行を消して、次のように書く
for count = 10, 0, -1 do
print(count)
task.wait(1)
end
for のうしろの3つの数が、くり返し方を決めています。
| 数 | 意味 |
|---|---|
10 | はじめの数 |
0 | おわりの数 |
-1 | 1回ごとに、いくつふやすか(-1 なら、1つずつへらす) |
count は、いま何番目かが入る変数です。10、9、8…と、1回ごとに変わっていきます。

再生すると、「出力」に 10 から 0 まで、1秒ごとに出てきます。

左の時刻を見ると、1秒ずつ進んでいるのが分かります。10から0までなので、11回くり返されました。
数を変えてみよう
for count = 0, 10, 2 do
print(count)
task.wait(1)
end
0、2、4…と、2つずつふえていきます。
動かないときは
- 3つの数のあいだに、カンマ(,)が2つあるか
- はじめの数から、おわりの数に向かっているか。
for count = 10, 0, 1 doは、10からふやしても0にはならないので、1回も実行されません - 一度に全部出てしまうときは、
task.wait(1)を書きわすれていないか
6. 「すべての〜について」— まちがいの足場
最後に、さわったらスタートにもどる、まちがいの足場を3つ作ります。
練習用の LieDetector を消す
LieDetector は練習用なので、ここで消しておきます。停止してから、エクスプローラで LieDetector を選んで、Delete キーを押します。中の FactChecker も、いっしょに消えます。
消さずに
LieDetectorの色を赤にしたり、コピーして足場を作ったりすると、中のFactCheckerもいっしょについてきます。再生したとたんに、赤くしたはずの足場が緑になってしまいます。
まちがいの足場を作る
- 「パーツ」で足場を1つ出して、色を赤にする。「固定」も押す
- Ctrl + D で、2つ増やして、3つにする
- 3つを、Ctrl を押しながらクリックして選び、「グループ」を押す
- できたまとまりの名前を
Wrongにする
Wrongは、英語で「まちがい」という意味です。第3回で使った「グループ」で、3つを1つのまとまりにしています。

アシスタントにたのむ
3つの足場それぞれに仕掛けを入れるのは大変です。そこで、「すべての〜について」を使います。
ServerScriptServiceに、WrongCheckerという名前の新しいスクリプトを追加して。Wrongの中のすべてのパーツについて、もしプレイヤーがさわったら、スタート地点からやり直しになるようにして

変更内容を確かめてから「承認する」を押し、再生して、赤い足場にさわってみましょう。どの足場にさわっても、スタートからやり直しになります。
この例では、キャラクターはたおれずに、そのままスタート地点にもどりました。第6回のように、たおれてからもどることもあります。同じ「やり直し」でも、アシスタントが選ぶやり方は、たのむたびに少しちがいます。

作ってもらったスクリプトを読んでみる
ServerScriptService の WrongChecker を開いて、for と if を探してみましょう。

この例では、46行のスクリプトができていました(中身は、たのむたびに少しちがいます)。大事なところを、ぬき出してみます。
for _, descendant in wrongModel:GetDescendants() do
setupPart(descendant)
end
「Wrong の中の、すべてのものについて」です。for が、Wrong の中身を1つずつ取り出して、setupPart という関数(命令のまとまり)を呼び出しています。今回の for は、数ではなく、中身を1つずつ取り出してくり返します。
if part:IsA("BasePart") then
part.Touched:Connect(onTouch)
end
「もし、それがパーツなら、さわったときに onTouch を呼び出す」です。Wrong の中には、パーツ以外のもの(スクリプトなど)が入っていることもあるので、「もしパーツなら」と確かめています。
player:LoadCharacter()
これが「スタート地点からやり直し」の命令です。キャラクターを、スタート地点に作り直します。だから、たおれずにそのままもどりました。
if not character then return endのような行もたくさんあります。「もし〜がなければ、ここでやめる」という意味です。
たのんだことばが、そのままスクリプトの形になっています。 第1回で「すべての〜について」「もし〜なら」とたのむとうまくいったのは、プログラムと同じ考え方で伝えたからです。
_は、使わない値を入れておく場所です。気にしなくて大丈夫です。
7. 保存する
「ファイル」→「名前をつけてファイルに保存」(Ctrl + Shift + S)で、番号を1つ増やして保存します。
例:
たろうのオビー_07
ふりかえり
- 「もし〜なら」は
if 〜 then〜end。同じかどうかは== - 「出力」で、
printの結果や、エラーを見る。エラーには行の番号が出る - 「〜回くり返す」は
for count = はじめ, おわり, ふやす数 do〜end - 「すべての〜について」は
for _, 〜 in 〜 do。中身を1つずつ取り出す - 第1回のたのみ方は、プログラムの形そのものだった
考えてみよう
自分のアスレチックに、どんな「もし〜なら」を入れたいですか?
- もし赤い足場にさわったら、スタートにもどる
- もしゴールにさわったら、花火が上がる
- もし10秒たったら、足場が消える
いくつか書き出してみましょう。
次回
第8回では、ここまでの道具をぜんぶ使って、クイズのアスレチックを作ります。問題を読んで、正しい答えの足場にジャンプするゲームです。今回作った「まちがいの足場」が、そのまま役に立ちます。
先生・保護者の方へ:時間の目安(60分)
内容 時間 おうちの人と話そう・保護者コントロール 7分 前回の作品を開く・出力を出す 5分 if で色を変える 12分 わざとまちがえて出力を読む 5分 for でカウントダウン 12分 まちがいの足場(アシスタント・読む) 12分 保存する 2分 ふりかえり 5分 ふりかえりの問いかけ
- 「
=と==のちがいを説明できる?」- 「
whileとforは、どうちがう?」—while trueはずっと、forは回数や中身の数だけくり返します- 「自分のアスレチックに入れたい『もし〜なら』は?」
マイナスの数になじみがない場合は、
-1を「1ずつ引く」と言いかえてください。
この記事には、Roblox Corporation の教材(CC BY 4.0)を変更して利用している部分があります。
