Robloxでは、スクリプト、つまりプログラムを書くことができます。
いきなり全部をやるのは難しいですが、さわりの部分をまず覚えましょう。
Robloxでスクリプトを書く
Robloxではスクリプトを書くことができます。
LUAというプログラミング言語をサポートしており、LUAの書き方で命令を書いていけばそのとおり制御できます。
LUAの文法については以下参照ください。
コマンド出力を使う
文字を出力
まずは「表示(View)」タブへ移動。
「出力(Output)」を選択。
するとでプログラムからの出力が画面上で確認できるようになります。
「コマンドバー(Command Bar)」を押すと
コマンド入力部が下側に出てきます。
するとRobloxStudioの下のほうにコマンド入力部分が出現します。
print('ok bokujo')
と入れてエンターキーを押します。
「print~」は文字を出力しなさいという命令です。
実行すると、出力のほうのパネルに「ok bokujo」と出力されます。
日本語も使えます。
「print('こんちわーっす')」で、「こんちわーっす」と出力されます。これなら脳みそ夫さんも一安心です。
計算させる
計算もできます。
print(1+2)
とうつと...ちゃんと「3」と出力されました。
このようにコマンドバーを使うだけでも、命令を実行させて結果を確認することができます。
ただしプログラミングの面倒なところは、細かいところでルールがいろいろとあります。
例えば「print(1+2)」で「3」となりますが、「print("1+2")」なら「1+2」と出力されます。
「”」や「’」で囲まれたものは文字として扱うというルールがあるためです。
ゲームで動くスクリプトを書く
スクリプトを作成
今度はゲームの中で動くスクリプトを書いてみます。
右のツリーでワークスペース(Workspace)を選んで右クリックします。
メニューから「オブジェクト挿入(Insert Objects)」で「スクリプト(Script)]を選びます。
するとスクリプトが挿入され、このようにスクリプトを書く画面が出てきます。
これは右のツリーでスクリプトをダブルクリックすればいつでも開けます。
命令としてすでに「print("hellow world")とあります。
ゲームを実行すると、「Hello World」という文字が下のコンソールへ出てきます。
スクリプトで特定の情報を調べる
今度は創っている物体の情報へスクリプトから調べてみましょう。
まず「Ball」という名前の物体を作っておきましょう。
そしてスクリプトに
print(game.Workspace.Ball.Transparency)
と入力します。
これは現在のゲームのなかのWorkspaceのなかのBallという物体のTransparency(透明度)という項目へアクセスすることを意味します。
調べた情報を「print」でコンソールへ書き出します。
実行するとこのようになります。
本来なら「0.15」と出るべきところが「0.1499999..」となっています。
おそらく「0.15」に設定したものの、ゲームの最適化の都合上近似値になっているのだと思います。
スクリプトで特定の情報を変更する
スクリプトから特定の値を変更することもできます。
ステージ上にBallという物体を作っています。この透明度を変更してみます。
Ballという物体がすでにあるとします。
スクリプトに
game.Workspace.Ball.Transparency = 0.9
と入力しましょう。
これは現在のゲームのなかのWorkspaceのなかのBallという物体のTransparency(透明度)という項目を「0.9」に設定することを表します。
実行するとBallという物体の透明度が0.9へ変更されました。
ほとんど消えかかっているのがわかると思います。これはスクリプトがゲーム開始時に実行されたためです。
イベント
「物体にふれるとアクションが発生する」というような場合、「どんなイベントか」と「それに対する反応」を記述していきます。
パルクールのようにぶつかったらヘルスが0になるという場合「Touched」というイベントについて記述します。
script.Parent.Touched:connect(function(hit)script.Parent.Touched:connect(function(hit)
if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
hit.Parent.Humanoid.Health = 0
end
end
例えばボタンが押されたら押されたよ、というスクリプトなら「MouseButton1Click」へのイベントに対する処理を記述します。
function leftClick()function leftClick()
print("Left mouse click")
end
script.Parent.MouseButton1Click:Connect(leftClick)
スクリプトの小技
オフにするには?
行頭に「--」を入れるとその行は無効となり実行されません。
行自体が緑色となり、無効であることがわかるようになります。
スクリプトの場所を調べるには?
他のゲームを開いて作り方を調べる時、スクリプトの場所は見つけにくいです。
そのとき「エクスプローラー(Explorer)」のところで「Script」とうつと、スクリプトだけ一覧できます。
以下のようにアイテム1つ1つに書かれている場合もあれば、別の場所に全体を制御するスクリプトががっつり書かれている場合もあります。
使えるコマンド一覧は?
Robloxにレファレンスがあります。
https://developer.roblox.com/en-us/api-reference
Robloxでゲームを作る手順のまとめはこちら。