スクリプトを読む。25行が言っているのは3つだけ
動作確認日: 2026年9月9日(Roblox Studio 0.736)
連載「アスレチック(オビー)を作ろう」の第10回です。第1回から読む
前回は数字を1つ変えただけで、回る床がゆっくりになりました。
今日はその中身を読んでみます。
読めるようになると、次からは「どこを変えればいいか」が自分で分かります。人に聞かなくてよくなります。
まず、数えてみる
もう一度スクリプトを開いてください。全部で25行あります。

多く見えますが、からっぽの行と、第9回で出てきた -- ではじまるメモの行を抜いてみてください。
残るのは何行でしょう。
7行です。
25行のうち18行は、空白と人間へのメモでした。本当に動いているのは7行だけです。
7行は3つに分かれます
| 何をしている行か | 行 | |
|---|---|---|
| 1 | だれを動かすか | 1行 |
| 2 | どれくらいの速さか | 2行 |
| 3 | ずっと繰り返す | 4行 |
順番に見ていきます。
1. だれを動かすか
いちばん上の行です。

local part = script.Parent
2つに分けて読みます。
script.Parent — スクリプトの Parent(親)、つまりこのスクリプトが入っている相手のことです。
前回エクスプローラを開いたとき、Script は 回る床 の中に入っていましたね。だから親は回る床です。
local part = — それに part という名前をつけました。
名前をつけておくと、あとで何度も
script.Parentと書かずに済みます。partの4文字で呼べます。
箱に名前を書いて貼るようなものです。local が出てきたら「名前をつけている」と思ってください。
2. どれくらいの速さか
次のかたまりです。

local SPEED = 50
local WAIT_TIME = 0.02
さっきと同じ形です。local で名前をつけています。箱が2つ増えました。
| 名前 | 中身 | 意味 |
|---|---|---|
SPEED | 50 | 1回で回す角度 |
WAIT_TIME | 0.02 | 次に回すまで待つ秒数 |
前回変えたのは、この上のほうでした。
なぜ大文字なのか
part は小さい文字なのに、SPEED と WAIT_TIME は大文字です。
これは決まりではなく、習慣です。「あとから変えていい設定だよ」という目印として、大文字で書く人が多いのです。
作った人からの「ここをいじってね」というサインだと思ってください。実際、前回いじったのは大文字のほうでした。
3. ずっと繰り返す
最後のかたまりです。ここが心臓部です。

while true do
-- Z軸方向に回転
part.CFrame = part.CFrame * CFrame.Angles(0, 0, math.rad(SPEED))
-- 少し待ってから次の回転
task.wait(WAIT_TIME)
end
while true do ではじまって、end で終わっています。
これで「ずっと繰り返す」という意味です。true は「いつでも本当」ということなので、終わりが来ません。作品を動かしているあいだ、ずっと回りつづけます。
字下げ(右にずれている)されている行が、繰り返される中身です。見た目でひとかたまりだと分かるようになっています。
中身は2つだけ
繰り返しているのは、たった2つです。
- 少し回す
- 少し待つ
これだけです。1と2を、ずっと交代でやっています。
パラパラ漫画と同じです
ノートのはしに少しずつちがう絵を描いて、パラパラめくると動いて見えますよね。あれとまったく同じことをしています。
- 少し回す → 少し待つ
- 少し回す → 少し待つ
- 少し回す → 少し待つ……
1コマずつは「ちょっと回った」だけですが、速くめくれば、なめらかに回っているように見えます。
アニメもゲームも、中身はこれです。動いて見えるものは、たいてい少しずつ描きかえられています。
回している行
長いほうの行が「少し回す」の本体です。
part.CFrame = part.CFrame * CFrame.Angles(0, 0, math.rad(SPEED))
今日はざっくりで大丈夫です。
part.CFrame— 回る床の「向きと場所」CFrame.Angles(0, 0, ...)— かっこの中の3つの数字が、どっち向きに回すかを決めています。3つめにだけ数字が入っているので、決まった1方向にだけ回りますmath.rad(SPEED)— 角度の単位を、計算用に翻訳しています
全体では「いまの向きに、少し回した分をかけあわせて、新しい向きにする」と言っています。
ここが読めなくても、まったく困りません。「この行が回している」と分かれば十分です。それだけで、SPEEDを変える意味がつながります。
なぜ50だと無理だったのか
3つが分かったので、計算できます。
WAIT_TIME は 0.02秒。ということは、1秒間に 50回まわってきます。
1回で SPEED の角度だけ回るので——
| SPEED | 1秒に回る角度 | 1回転にかかる時間 |
|---|---|---|
| 5 | 250度 | 約1.4秒 |
| 10 | 500度 | 約0.7秒 |
| 50 | 2500度 | 約0.14秒 |
1回転は360度です。50のときは、1秒に約7回転していました。
乗れるわけがありませんでした。 目で追うのも無理な速さです。
5にすると、1回転に1秒以上かかります。だから乗れるようになったのです。
もう1つの数字も試せます
WAIT_TIME のほうも変えられます。0.02 を 0.1 にしてみてください。
待つ時間が5倍になるので、1秒に10回しかまわってきません。
- カクカクした動きになります
- 1秒に回る角度も5分の1になるので、さらに遅くなります
スクリプトのメモにも「小さくすると滑らかになる」と書いてありました。そのとおりのことが起きます。
試したら 0.02 に戻しておいてください。カクカクしたままだと、乗るときに足をとられます。
まとめ
- 25行のうち、動いているのは7行だけ。あとは空白とメモ
localが出てきたら「名前をつけている」script.Parentは、そのスクリプトが入っている相手。ここでは回る床- 大文字の名前は「あとから変えていい設定」の目印
while true do〜endは「ずっと繰り返す」。字下げされた行が中身- 中身は「少し回す」「少し待つ」の2つだけ。パラパラ漫画と同じ
- 0.02秒に1回まわるので、SPEEDが50だと1秒に約7回転していた
次回は、黄色い動く床を直します。こちらも速すぎて乗れません。
でも、直す場所がちがいます。 今日読んだスクリプトは出てきません。エクスプローラの、また別のところを開くことになります。
