春までRoblox — 第0回ブログ
Robloxの言語と予約語、環境の視点から
第0回目では言語(Lua)と予約語、Roblox環境における予約語という視点で整理します。これは「どこまでがLuaの基本仕様で、どこからがRoblox固有の環境要素なのか」を理解するための基礎です。
🔹 Lua言語の予約語
Robloxのスクリプトは Lua をベースにしています。Luaには「予約語」があり、これらは変数名や関数名として使えません。
代表的なLua予約語:
and/or/notif/then/else/elseif/endfor/while/repeat/until/dofunction/return/break/localtrue/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」としました。
次回は「メモリー制限とユーザー毎データ保持の方法」をテーマにします。