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

スクリプトを読む。25行が言っているのは3つだけ

動作確認日: 2026年9月9日(Roblox Studio 0.736

連載「アスレチック(オビー)を作ろう」の第10回です。第1回から読む

前回は数字を1つ変えただけで、回る床がゆっくりになりました。

今日はその中身を読んでみます。

読めるようになると、次からは「どこを変えればいいか」が自分で分かります。人に聞かなくてよくなります。

まず、数えてみる

もう一度スクリプトを開いてください。全部で25行あります。

スクリプトの全体。左に1から25までの行番号がついている

多く見えますが、からっぽの行と、第9回で出てきた -- ではじまるメモの行を抜いてみてください。

残るのは何行でしょう。

7行です。

25行のうち18行は、空白と人間へのメモでした。本当に動いているのは7行だけです。

7行は3つに分かれます

何をしている行か
1だれを動かすか1行
2どれくらいの速さか2行
3ずっと繰り返す4行

順番に見ていきます。

1. だれを動かすか

いちばん上の行です。

スクリプトの1行目と2行目。local part = script.Parent と書かれている

local part = script.Parent

2つに分けて読みます。

script.Parent — スクリプトの Parent(親)、つまりこのスクリプトが入っている相手のことです。

前回エクスプローラを開いたとき、Script回る床 の中に入っていましたね。だから親は回る床です。

local part = — それに part という名前をつけました。

名前をつけておくと、あとで何度も script.Parent と書かずに済みます。part の4文字で呼べます。

箱に名前を書いて貼るようなものです。local が出てきたら「名前をつけている」と思ってください。

2. どれくらいの速さか

次のかたまりです。

スクリプトの6行目から15行目。local SPEED = 50 と local WAIT_TIME = 0.02、それぞれの下に日本語のメモがついている

local SPEED = 50
local WAIT_TIME = 0.02

さっきと同じ形です。local で名前をつけています。箱が2つ増えました。

名前中身意味
SPEED501回で回す角度
WAIT_TIME0.02次に回すまで待つ秒数

前回変えたのは、この上のほうでした。

なぜ大文字なのか

part は小さい文字なのに、SPEEDWAIT_TIME大文字です。

これは決まりではなく、習慣です。「あとから変えていい設定だよ」という目印として、大文字で書く人が多いのです。

作った人からの「ここをいじってね」というサインだと思ってください。実際、前回いじったのは大文字のほうでした。

3. ずっと繰り返す

最後のかたまりです。ここが心臓部です。

スクリプトの19行目から25行目。while true do ではじまり end で終わる

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と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_TIME0.02秒。ということは、1秒間に 50回まわってきます。

1回で SPEED の角度だけ回るので——

SPEED1秒に回る角度1回転にかかる時間
5250度約1.4秒
10500度約0.7秒
502500度約0.14秒

1回転は360度です。50のときは、1秒に約7回転していました。

乗れるわけがありませんでした。 目で追うのも無理な速さです。

5にすると、1回転に1秒以上かかります。だから乗れるようになったのです。

もう1つの数字も試せます

WAIT_TIME のほうも変えられます。0.020.1 にしてみてください。

待つ時間が5倍になるので、1秒に10回しかまわってきません。

  • カクカクした動きになります
  • 1秒に回る角度も5分の1になるので、さらに遅くなります

スクリプトのメモにも「小さくすると滑らかになる」と書いてありました。そのとおりのことが起きます。

試したら 0.02 に戻しておいてください。カクカクしたままだと、乗るときに足をとられます。

まとめ

  • 25行のうち、動いているのは7行だけ。あとは空白とメモ
  • local が出てきたら「名前をつけている」
  • script.Parent は、そのスクリプトが入っている相手。ここでは回る床
  • 大文字の名前は「あとから変えていい設定」の目印
  • while true doend は「ずっと繰り返す」。字下げされた行が中身
  • 中身は「少し回す」「少し待つ」の2つだけ。パラパラ漫画と同じ
  • 0.02秒に1回まわるので、SPEEDが50だと1秒に約7回転していた

次回は、黄色い動く床を直します。こちらも速すぎて乗れません。

でも、直す場所がちがいます。 今日読んだスクリプトは出てきません。エクスプローラの、また別のところを開くことになります。