変数(へんすう)/ variable
# 変数(へんすう)/ variable
## roblox.onl プログラミング Wiki
---
> 📘 このページは roblox.onl の技術(ぎじゅつ)Wiki です。
> 初めて(はじめて)出てくる用語(ようご)にはふりがなをつけています。
> 【講師メモ】は指導者(しどうしゃ)向けの補足(ほそく)情報です。
---
## 変数(へんすう)とは?
変数とは、**数値(すうち)や文字(もじ)を入れておく「箱(はこ)」** のことです。
```
┌─────────────┐
│ COIN_VALUE │ ← 箱の名前(変数名・へんすうめい)
│ 10 │ ← 箱の中身(値・あたい)
└─────────────┘
```
Luau(ルアウ)では次のように書きます:
```lua
local COIN_VALUE = 10
-- local = このスクリプト内だけで使う変数を作るキーワード
-- COIN_VALUE = 変数名
-- 10 = 値(あたい)
```
---
## なぜ使うのか?
### 変数なし ❌
```lua
-- コインが10点のとき
score.Value = score.Value + 10
-- 20点に変えたい → コード全体(ぜんたい)を検索(けんさく)して書き換える…
score.Value = score.Value + 20 -- 1か所目
score.Value = score.Value + 20 -- 2か所目
score.Value = score.Value + 20 -- 3か所目…
```
### 変数あり ✅
```lua
local COIN_VALUE = 10 -- ここだけ変えればOK!
score.Value = score.Value + COIN_VALUE -- 1か所目
score.Value = score.Value + COIN_VALUE -- 2か所目
score.Value = score.Value + COIN_VALUE -- 全部COIN_VALUEを参照(さんしょう)している
```
→ COIN_VALUE = 10 を COIN_VALUE = 20 に変えるだけで、全部20点になる!
---
## Luauでの使い方
### 変数を作る(宣言(せんげん)・定義(ていぎ))
```lua
local 変数名 = 値
```
```lua
local score = 0 -- 数値(number・ナンバー)
local name = "たろう" -- 文字列(string・ストリング)
local isActive = true -- 真偽値(boolean・ブーリアン)
```
### 値を変える(代入(だいにゅう))
```lua
score = score + 10 -- score に 10 を足す(たす)
score = score - 5 -- score から 5 を引く(ひく)
score = 0 -- score を 0 にリセット
```
### 値を読む
```lua
print(score) -- コンソールに表示(ひょうじ)する
label.Text = score -- GUIに表示する
```
---
## ゲームでよく使う変数の例(れい)
### ① ゲームの設定(せってい)値はファイルの先頭(せんとう)にまとめる
```lua
local COIN_VALUE = 10 -- コインの点数(てんすう)
local COIN_COUNT = 20 -- コインの数
local GAME_TIME = 60 -- ゲーム時間(びょう)
local FIELD_SIZE = 80 -- フィールドの広さ(ひろさ)
```
💡 コツ:設定値は大文字(おおもじ)で書くと「定数(ていすう)」とひと目でわかる
### ② プレイヤーの状態(じょうたい)
```lua
local score = 0 -- 点数
local timeLeft = 60 -- 残り時間(のこりじかん)
local isAlive = true -- 生きているか
```
### ③ パーツやGUIの参照(さんしょう)
```lua
local coin = Instance.new("Part") -- コインパーツ
local label = script.Parent.TextLabel -- GUIのラベル
local player = Players.LocalPlayer -- プレイヤー
```
---
## よくあるミス
### ① local の付け忘れ
```lua
-- ❌ 間違い:local がない
score = 0
-- ✅ 正しい
local score = 0
```
local がないとグローバル変数になり、他のスクリプトに予期しない影響(えいきょう)が出ることがある。
### ② 大文字・小文字の違い
```lua
local COIN_VALUE = 10
-- ❌ 間違い:大文字・小文字が違う
score.Value = score.Value + Coin_Value -- エラー!
-- ✅ 正しい:完全(かんぜん)に同じ名前
score.Value = score.Value + COIN_VALUE
```
Luauは大文字と小文字を別のものとして扱う(あつかう)。
### ③ 宣言前(せんげんまえ)に使う
```lua
-- ❌ 間違い:作る前に使おうとしている
print(COIN_VALUE) -- エラー!
local COIN_VALUE = 10
-- ✅ 正しい:宣言してから使う
local COIN_VALUE = 10
print(COIN_VALUE)
```
---
## 難易度(なんいど)別の変数の使い方
### 🟢 初級(しょきゅう):数値を保存(ほぞん)する
```lua
local score = 0
score = score + 10
```
### 🟡 中級(ちゅうきゅう):テーブル(一つの箱に複数(ふくすう)の値)
```lua
local player = {
name = "たろう",
score = 0,
hp = 100,
}
print(player.name) -- "たろう"
player.score = player.score + 10
```
### 🔴 上級(じょうきゅう):関数(かんすう)の変数
```lua
local function addScore(amount)
score = score + amount
end
addScore(10) -- 10点加算(かさん)
addScore(50) -- 50点加算
```
---
## #01 ゲームで使った変数一覧(いちらん)
| 変数名 | 型(かた) | 値 | 役割(やくわり) |
|---|---|---|---|
| COIN_VALUE | number | 10 | コインの点数 |
| COIN_COUNT | number | 20 | コインの合計数(ごうけいすう) |
| GAME_TIME | number | 60 | ゲーム時間 |
| COIN_HEIGHT | number | 2 | コインの高さ(たかさ) |
| FIELD_SIZE | number | 80 | フィールドの広さ |
| coin | Part | Instance | コインパーツ |
| player | Player | Instance | プレイヤー |
| score | IntValue | 0〜 | プレイヤーの点数 |
| timeLeft | number | 60→0 | 残り時間 |
---
## 関連(かんれん)ページ
- → [イベント(Touched)](#) ※ #02で学ぶ
- → [関数(function)](#) ※ #03で学ぶ
- → [ループ(for・while)](#) ※ #04で学ぶ
- → [条件分岐(じょうけんぶんき)(if・else)](#) ※ #05で学ぶ
---
## 【講師メモ】授業(じゅぎょう)のポイント
- 変数の「箱」の比喩(ひゆ)はほぼ全ての初級生に通じる。黒板に「箱」を書いて、名前と中身を分けて書くと定着(ていちゃく)しやすい。
- COIN_VALUE をリアルタイムで変えてみせるデモが最大のつかみ。「1か所変えるとゲームが変わる」は初級生の驚き(おどろき)ポイント。
- 大文字変数と小文字変数の違いは #01では深掘り(ふかぼり)しない。「設定値は大文字」のルールだけ伝える。
---
roblox.onl 技術Wiki
シリーズ:AI×Roblox プログラミング100本
最終更新:2026年3月