メインコンテンツへスキップ
RobuCraft
プログラミング入門

Luauプログラミングをゼロから学ぶ5ステップ【中学生向け】

「プログラミングって難しそう…」って思ってない?大丈夫だよ! Robloxのスクリプト言語「Luau」はシンプルな文法で書けるから、 中学生でもゲームを動かすコードが書けるようになるんだ。 この記事では5つのステップで基礎をマスターしよう。

STEP 1変数データを管理STEP 2関数処理をまとめるSTEP 3イベント反応を持たせるSTEP 4条件分岐もし〜ならSTEP 5AI活用AIと協働する★ GOAL

この記事の内容

  1. Luauとは?Roblox専用プログラミング言語の特徴
  2. ステップ1: 変数 — データを箱に入れよう
  3. ステップ2: 関数 — 処理をまとめよう
  4. ステップ3: イベント — ゲームに反応を持たせよう
  5. ステップ4: 条件分岐 — 「もし〜なら」を書こう
  6. ステップ5: AI活用 — わからないことはAIに聞こう

Luauとは?Roblox専用プログラミング言語の特徴

Luauは「Lua(ルア)」というプログラミング言語をRobloxが独自に改良したものだよ。 「Luau(ルアウ)」という名前は、ハワイのパーティー「Luau」から来てるんだって。

LuauがRobloxに向いている理由

Luauは文法がシンプルで、少ないコードでゲームを動かせるのが特徴だよ。 JavaやC++みたいに難しい型の宣言が少なくて、やりたいことをすぐに書けるんだ。

  • シンプルな文法 — 英語に近い書き方で読みやすい
  • Roblox Studio に組み込まれてる — 別にソフトをインストールしなくていい
  • 即テスト可能 — Studio の「Play」ボタンで今すぐ動作確認できる
  • 日本語コメントOK — コード内に日本語でメモを書ける

スクリプトはどこに書くの?

Roblox Studioの「エクスプローラー」パネルを開いて、 「ServerScriptService」を右クリック → 「スクリプトを挿入」を選ぶと、 スクリプトのエディターが開くよ。ここにLuauのコードを書いていくんだ。

ステップ1: 変数 — データを箱に入れよう

プログラミングで一番最初に覚えるのが「変数」だよ。 変数は「データを入れる箱」みたいなもの。名前をつけておいて、後から使えるようにするんだ。

変数の書き方

Luauでは local というキーワードで変数を作るよ。

-- 数字を入れる変数
local score = 0
local speed = 16

-- 文字を入れる変数
local playerName = "RobuCraft太郎"

-- true/falseを入れる変数
local isVIP = false

-- 変数の値を変更する
score = score + 10  -- scoreに10を足す
print(score)        -- 出力: 10

ゲームでの使い方

たとえばプレイヤーのポイントを管理するとき、変数を使ってこう書くよ:

local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
    local point = 0  -- 最初のポイントは0
    print(player.Name .. "が参加!ポイント: " .. point)
end)

ポイント: local をつけて変数を作る習慣をつけよう。 つけないと「グローバル変数」になって、予期しないバグの原因になることがあるよ。

ステップ2: 関数 — 処理をまとめよう

同じ処理を何度も書くのは大変だよね。「関数」を使えば、よく使う処理に名前をつけて 何度でも呼び出せるようになるんだ。

関数の書き方

-- 関数の定義 (function で始まって end で終わる)
local function greetPlayer(name)
    print("こんにちは!" .. name .. "さん!")
end

-- 関数を呼び出す
greetPlayer("太郎")   -- こんにちは!太郎さん!
greetPlayer("花子")   -- こんにちは!花子さん!

値を返す関数

-- ダメージ計算関数
local function calculateDamage(baseDamage, multiplier)
    return baseDamage * multiplier
end

local damage = calculateDamage(10, 1.5)
print("ダメージ: " .. damage)  -- ダメージ: 15

ポイント: 関数はRobloxのゲーム開発で超重要!「プレイヤーをリスポーンする」 「スコアを更新する」などの処理を関数にまとめると、コードが読みやすくなるよ。

ステップ3: イベント — ゲームに反応を持たせよう

ゲームは「何かが起きたとき」に反応するのが基本。 「プレイヤーが参加したとき」「ボタンを押したとき」などのイベントを使えば、 インタラクティブなゲームが作れるよ。

イベントの接続方法

Luauでは :Connect(function) でイベントに関数を結びつけるよ。

local Players = game:GetService("Players")

-- プレイヤーが参加したとき
Players.PlayerAdded:Connect(function(player)
    print(player.Name .. "が参加したよ!")
end)

-- プレイヤーが離脱したとき
Players.PlayerRemoving:Connect(function(player)
    print(player.Name .. "が退出したよ")
end)

パーツに触れたときのイベント

-- ゴールパーツに触れたらクリア
local goalPart = workspace.GoalPart

goalPart.Touched:Connect(function(hit)
    local character = hit.Parent
    local player = Players:GetPlayerFromCharacter(character)
    if player then
        print(player.Name .. "がゴールした!")
    end
end)

ステップ4: 条件分岐 — 「もし〜なら」を書こう

ゲームでは「もしスコアが100以上なら勝ち」とか「もし体力が0なら死亡」といった 判断処理がたくさん出てくる。これが「条件分岐」だよ。

if 文の書き方

local score = 75

if score >= 100 then
    print("勝利!")
elseif score >= 50 then
    print("もう少し!")
else
    print("頑張れ!")
end

ループを使って繰り返す

同じ処理を繰り返したいときは「ループ」を使うよ。 たとえばカウントダウンタイマーをつくるとき:

-- 10秒カウントダウン
for i = 10, 1, -1 do
    print("残り" .. i .. "秒")
    task.wait(1)  -- 1秒待つ
end
print("ゲームスタート!")

ポイント: 条件分岐とループを組み合わせると、複雑なゲームロジックも書けるようになるよ。 まずは「スコアが一定以上になったら何かが起きる」という仕組みを実装してみよう!

ステップ5: AI活用 — わからないことはAIに聞こう

ここまで4つのステップを学んだけど、実際にゲームを作っていると 「こんな機能はどうやって作るの?」「エラーが出た!」という場面が絶対に来るよ。 そんなときはAIに聞くのが最速の解決策だよ!

AIに聞くときのコツ

  • 「Roblox Studio で」と明記する

    「Roblox StudioのLuauで〇〇を作りたい」と書くと、的確なコードが返ってくるよ。

  • エラー文をそのまま貼り付ける

    「〇〇というエラーが出た。どう直せばいい?」と聞くと即解決することが多いよ。

  • 「動いた!」「動かない…」を伝える

    AIが返してくれたコードを試して、結果を教えよう。AIとの会話を繰り返すことで完成に近づくんだ。

AIを使ったゲーム開発の流れ

実は今の時代、プロのゲーム開発者もAIを使いながら開発してるよ。 「全部自分でコードを書けないといけない」は昔の話。 大事なのは「何を作りたいか」というアイデアと、 AIが返してきたコードが正しく動くか確認する力なんだ。

-- AIへの質問例:
-- 「Roblox StudioのLuauで、プレイヤーが
--  コインに触れたら5ポイント加算されるスクリプトを書いて」

-- AIが答えてくれたコードをここに貼り付けて試してみよう!

まとめ: 5ステップを振り返ろう

Luauの基礎は5つのステップでマスターできるよ。 難しく考えずに、まずはRoblox Studioで実際に動かしてみることが大事!

  1. 1変数 — データを箱に入れて管理する(local name = "値")
  2. 2関数 — 処理に名前をつけて再利用する(function ... end)
  3. 3イベント — ゲームの出来事に反応する(:Connect())
  4. 4条件分岐 — 「もし〜なら」の分岐を書く(if ... then)
  5. 5AI活用 — わからないことはAIに相談して開発スピードを上げる

AIと一緒にゲームを作ってみよう

RobuCraftにはAIメンター「ロブ先生」がいて、 Luauのわからないことを何でも教えてくれるよ。 レッスンを進めながら、実際にゲームを作って稼ぐ方法まで学べる!

RobuCraftで無料で始める