春までRoblox — 第0回ブログ

Robloxの言語と予約語、環境の視点から

第0回目では言語(Lua)と予約語、Roblox環境における予約語という視点で整理します。これは「どこまでがLuaの基本仕様で、どこからがRoblox固有の環境要素なのか」を理解するための基礎です。


🔹 Lua言語の予約語

Robloxのスクリプトは Lua をベースにしています。Luaには「予約語」があり、これらは変数名や関数名として使えません。

代表的なLua予約語:

  • and / or / not
  • if / then / else / elseif / end
  • for / while / repeat / until / do
  • function / return / break / local
  • true / false / nil

👉 これらは「言語の文法を構成するキーワード」であり、プログラマーが自由に再定義することはできません。


🔹 Roblox環境の予約語(サービス名・特殊オブジェクト)

Robloxでは、Luaに加えて「環境に組み込まれた予約的な名前」が存在します。これらは DataModelのサービスや特殊オブジェクトで、ゲームの階層構造に直結しています。

代表的なRoblox環境予約語:

  • game : DataModel全体を指すルート
  • workspace : 3D空間のオブジェクトコンテナ
  • Players : プレイヤー管理サービス
  • Lighting : 環境光・影の設定
  • ReplicatedStorage : サーバーとクライアントで共有する領域
  • ServerScriptService : サーバー専用スクリプトの格納場所
  • StarterGui : プレイヤーUIの初期設定
  • SoundService : 音響管理

👉 これらは「予約語」というより「予約済みのサービス名」であり、同じ名前で変数を定義すると衝突してしまいます。


🔹 言語予約語と環境予約語の違い

  • 言語予約語
    → Luaそのものの文法。プログラムの構造を決める。
    → 例: if, function, return

  • 環境予約語
    → Robloxのゲーム環境にあらかじめ存在するサービス・オブジェクト。
    → 例: game, workspace, Players

👉 言語予約語は「文法の骨格」、環境予約語は「ゲーム世界の入口」と考えると分かりやすいです。


🔹 実際のコード例

-- Luaの予約語を使った制御
if true then
    print("これはLuaの予約語による制御")
end

-- Roblox環境の予約語を使ったアクセス
local part = Instance.new("Part")
part.Parent = workspace  -- workspaceはRoblox環境の予約語
part.Position = Vector3.new(0, 5, 0)

🔹 まとめ

  • Robloxスクリプトは Lua言語の予約語Roblox環境の予約語 の両方を理解する必要がある。
  • Lua予約語は文法のために存在し、Roblox環境予約語はゲーム世界のサービスやオブジェクトを指す。
  • 両者を混同せずに「言語の骨格」と「環境の入口」を区別することが、Roblox開発の第一歩。

📖 これを第0回目のブログ「春までRoblox」としました。
次回は「メモリー制限とユーザー毎データ保持の方法」をテーマにします。