日本ではプログラムと呼ぶことが多いのですが、海外ではスクリプトということが多いようです。余談になりますが、日本ではプログラムを組む人をプログラマーと言いますが、海外ではスクリプターと呼ぶそうです。
プログラムとは、一連の処理を順序立てて記述したものです。実生活に例えるならば、下記のようなものがプログラムと言えるでしょう。朝の行動をプログラムにすると、
- 朝7時に起きる
- トイレに行く
- 歯を磨く
- 食事をする
- ・・・
プログラムを記述することをコーディングと言います。人間の言葉には日本語、英語、中国語など、様々な言語がありますが、プログラミング言語に多種多様なものがあります。Roblox で使用するプログラミング言語は「Lua(ルア)」というものになります。残念ながら、C言語やPythonなどのようにあまりポピュラーではないので書籍が少ないのが難点です。ただし、他のプログラミング言語の経験がある方はスムーズに習得できると思います。また、初めてプログラミング言語を学ぼうとしている方でも、Luaはそれほど癖の強い言語ではないので比較的習得しやすい方だと思います。
プログラムを入力する
Robloxでは様々な箇所にプログラムを入れることができます。モデルやパーツに入れたり、キャラクターに入れたりと。ツールボックスには様々なモデル等が入っていますが、そのモデルの中にもプログラムが組み込まれていて、Workspaceに挿入するだけで動作するものが多数あります。
スクリプトの作成
ゲーム全体をコントロールするプログラムはServerScriptServiceという特別なフォルダに作成します。Workspaceにもプログラムを入れることができますが、今回はここに作ることにします。
- エクスプローラーでServerScriptServiceにカーソルを合わせると、 [ + ] ボタンが表示されます。
- +ボタンをクリックし、Scriptを選択します。これによりスクリプト エディタが開きます。
- スクリプトを右クリックし、 [名前の変更] を選択します。PracticeScriptと入力します。スクリプトに名前を付けることは、そのプログラムが何をするものなのかを覚えておくために重要なことです。
スクリプト エディタの使用
新しいスクリプトを作成するたびに、スクリプト エディターが自動的に開きます。ここにプログラムを入力します。
次回Roblox Studioを開いたときにスクリプトを見つけるには、ゲームエディターの上にあるスクリプトの名前をクリックするか、エクスプローラーでスクリプトの名前をダブルクリックします。
新しくスクリプトを作成すると、1行目に必ずprint文が現れます。printは、文字を画面(正確には出力ウィンドウ)に表示するものです。どのプログラミング言語でも、最初に登場するのがこのprint文です。printというのは関数の1つで誰でも最初に学ぶものです。関数とは機能のことです。つまりprintという関数は、画面に表示する機能ということになります。
以下のプログラムは、スクリプトを追加した際に自動的に入ったものです。実行すると出力ウィンドウに「Hello world!」という文字が表示されるでしょう。
print("Hello world!")
出力ウィンドウに表示されるメッセージ
Hello world!
文字列変数
「Hello World!」というメッセージが表示されましたが、これは文字です。どう見ても数字ではありません。プログラムをよく見ると、文字列の前後にダブルコーテーション(引用符)が付いているのが確認できると思います。文字列を表す場合、ダブルコーテーション(引用符)で囲むということを覚えておきましょう。
文字列の例
文字列の例を以下に示します。文字と数字が混在していることに注意してください。
- 「あなたはゲームに参加しました!」
- 「残り50名」
- 「10」 (ん?これは文字?)
変数を使って表示する
変数というのは入れ物です。様々なものが入る入れ物と考えるのが分かりやすいと思います。
変数は、localというキーワードから始めます。その後ろに名前を入れます。この名前を変数名と言います。変数名は、入れるものが何であるのかがわかるような名称にするのがベストです。
例えば、自分の名前を入れる変数を作る場合、
例:local myName
となります。mynameでもmy_nameでも構いませんが、変数名で使用できる文字にも制限があり、第1文字目は、英字か「_(アンダースコア)」でないとダメです。それ以降は、数字も使用できます。英字の大文字小文字の区別があり、全角文字や「_(アンダースコア)」以外の記号は使用できません。また、予約語と言いますが、この先に登場する特別な意味を持つ単語なども使用できませんので注意しましょう。
Lua では型付けがありません。この記述で、数字も入れることができます。先ほど、「10(ん?これは文字?)」と書きましたが、数字でも、そのまま変数に入れることができます。
それでは、実際にコーディングしてみましょう。お気に入りの動物を変数に入れ、それを表示するプログラムを書いてみます。
- スクリプトで「print(“Hello world!”)」は消去します。localとし、変数名「myAnimal」を入力します。
local myAnimal
名前を付ける際のおすすめは、2つ以上の英単語を組み合わせることです。つまり「My Animal」は「myAnimal」とします。先頭の文字を小文字にするのは、今の段階ではRobloxの暗黙のルールとだけ覚えておけば良いでしょう。
変数の設定
変数が作成されたばかりのときは、中身は何もありません。それを設定したり、何かを入れたりするには、「=(イコール)」記号を使用します。
- 変数名の後に「=」と入力します。
local myAnimal =
- そのまま続けて、お気に入りの動物を説明する文章を入力します。すべての単語と文字が、ダブルコーテーション(引用符)で囲まれていることを確認してください。
local myAnimal = "私の好きな動物は猫です"
このプログラムを言葉にすると『myAnimalと入れ物に「私の好きな動物は猫です」という文章を入れる』ということになります。もう少し専門的な用語に直すと、『myAnimalという変数に、「私の好きな動物は猫です」という文字列を代入する』ということに表現になります。
Print() を使う
print関数は、文字列を画面(正確には出力ウィンドウ)に表示するものです。先ほどは、print文のカッコ内に文字を指定しましたが、ここでは変数を使って表示してみることにします。
- 新しい行にprint()と入力します。関数を使うときは、必ず関数名の後ろに()が続きます。
local myAnimal = "私の好きな動物は猫です"
print()
- 何かを表示するには、括弧内に記述する必要があります。変数を出力するには、 (myAnimal)のようにカッコ内に入力します。
local myAnimal = "私の好きな動物は猫です"
print(myAnimal)
print()は、 print("表示したいメッセージ")などの文字列を表示することに使用できます。これはプログラムのテストで、実行されているかどうかを確認する時も使用できますのでとても便利な関数です。
テスト出力
プログラムをテストするには、「Output/出力」ウィンドウを使用します。このウィンドウには、printでの表示の他、プログラムのエラー等も表示されます。よってプログラムをコーディングする際は常に表示しておくウィンドウの1つになります。
- 「VIEW/表示」メニュー タブを選択します。
- 「Output/出力」をクリックします。ウィンドウは、Roblox Studioの下部に表示されると思います。

- プログラムををテストするには、Playを押します。新しい文字列が [出力] ウィンドウに表示されます。

出力ウィンドウに赤いメッセージが表示された場合は、プログラムにエラーがあることを示します。エラー情報からプログラムを修正してみましょう。どうしても分からない場合は、プログラムを一度消去して、入力し直しとエラーにならなくなる場合があります。文字列を指定する箇所以外に、全角スペースが入ってしまうとエラーになります。
- プログラムをテストしたので、プレイを停止します。プログラムは、PracticeScriptというところに入れましたので、このタブをクリックすることで編集することができます。文字列を変更したり、変数名を変更したりして、どうなるかをテストしてみましょう。
トラブルシューティング
メッセージが表示されない場合は、次のヒントを試してください。
- printがすべて小文字になっていますか?
- 文字列はダブルコーテーション(引用符)で囲まれていますか?
- local、変数名、print、引用符はすべて半角文字になっていますか?
- 変数は(myVariable)のように括弧内にありますか?
[ プログラミングの基礎 ]
[ 1-2 オブジェクトとプロパティ ]