ヒット商品ブログ

グルメからゲームまで

【Robloxゲームの作り方】スクリプトを書く 場所は?サンプルは?

Robloxでは、スクリプト、つまりプログラムを書くことができます。

いきなり全部をやるのは難しいですが、さわりの部分をまず覚えましょう。

Robloxでスクリプトを書く

MS-DOS Green 3 Underexposed

Robloxではスクリプトを書くことができます。

 

LUAというプログラミング言語をサポートしており、LUAの書き方で命令を書いていけばそのとおり制御できます。

 

LUAの文法については以下参照ください。 

apicodes.hatenablog.com

 

 

コマンド出力を使う

文字を出力

まずは「表示(View)」タブへ移動。

「出力(Output)」を選択。

f:id:apicode:20211103152946p:plain


するとでプログラムからの出力が画面上で確認できるようになります。

f:id:apicode:20211103153110p:plain

 

「コマンドバー(Command Bar)」を押すと

f:id:apicode:20211103153206p:plain

 

コマンド入力部が下側に出てきます。

f:id:apicode:20211103153156p:plain



するとRobloxStudioの下のほうにコマンド入力部分が出現します。

print('ok bokujo')

と入れてエンターキーを押します。

 

「print~」は文字を出力しなさいという命令です。

f:id:apicode:20191125145458p:plain

 

実行すると、出力のほうのパネルに「ok bokujo」と出力されます。

f:id:apicode:20191125145446p:plain

 

 

日本語も使えます。

「print('こんちわーっす')」で、「こんちわーっす」と出力されます。これなら脳みそ夫さんも一安心です。

f:id:apicode:20191125145801p:plain

 

計算させる

計算もできます。

print(1+2)

とうつと...ちゃんと「3」と出力されました。

f:id:apicode:20191125150023p:plain

 

このようにコマンドバーを使うだけでも、命令を実行させて結果を確認することができます。

 

 

ただしプログラミングの面倒なところは、細かいところでルールがいろいろとあります。

例えば「print(1+2)」で「3」となりますが、「print("1+2")」なら「1+2」と出力されます。

「”」や「’」で囲まれたものは文字として扱うというルールがあるためです。

f:id:apicode:20191125150234p:plain

 

 

ゲームで動くスクリプトを書く

スクリプトを作成

今度はゲームの中で動くスクリプトを書いてみます。

 

右のツリーでワークスペース(Workspace)を選んで右クリックします。

メニューから「オブジェクト挿入(Insert Objects)」で「スクリプト(Script)]を選びます。

f:id:apicode:20191125204233p:plain

 

するとスクリプトが挿入され、このようにスクリプトを書く画面が出てきます。

これは右のツリーでスクリプトをダブルクリックすればいつでも開けます。

命令としてすでに「print("hellow world")とあります。

f:id:apicode:20191125204237p:plain

 

ゲームを実行すると、「Hello World」という文字が下のコンソールへ出てきます。

f:id:apicode:20191125204238p:plain

 

スクリプトで特定の情報を調べる

今度は創っている物体の情報へスクリプトから調べてみましょう。

まず「Ball」という名前の物体を作っておきましょう。

そしてスクリプトに

print(game.Workspace.Ball.Transparency)

と入力します。

f:id:apicode:20191125204630p:plain

 

これは現在のゲームのなかのWorkspaceのなかのBallという物体のTransparency(透明度)という項目へアクセスすることを意味します。

調べた情報を「print」でコンソールへ書き出します。

f:id:apicode:20191125204634p:plain

 

実行するとこのようになります。

本来なら「0.15」と出るべきところが「0.1499999..」となっています。

おそらく「0.15」に設定したものの、ゲームの最適化の都合上近似値になっているのだと思います。

f:id:apicode:20191125204758p:plain

 

スクリプトで特定の情報を変更する

スクリプトから特定の値を変更することもできます。

 

ステージ上にBallという物体を作っています。この透明度を変更してみます。

f:id:apicode:20191125205301p:plain

Ballという物体がすでにあるとします。

スクリプトに 

game.Workspace.Ball.Transparency = 0.9

と入力しましょう。

 

これは現在のゲームのなかのWorkspaceのなかのBallという物体のTransparency(透明度)という項目を「0.9」に設定することを表します。

f:id:apicode:20191125205330p:plain

 

実行するとBallという物体の透明度が0.9へ変更されました。

ほとんど消えかかっているのがわかると思います。これはスクリプトがゲーム開始時に実行されたためです。

f:id:apicode:20191125205059p:plain

 

イベント

「物体にふれるとアクションが発生する」というような場合、「どんなイベントか」と「それに対する反応」を記述していきます。

 

パルクールのようにぶつかったらヘルスが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)

 

 

 

スクリプトの小技

オフにするには?

行頭に「--」を入れるとその行は無効となり実行されません。

行自体が緑色となり、無効であることがわかるようになります。

f:id:apicode:20191126092247p:plain

 

 

スクリプトの場所を調べるには?

他のゲームを開いて作り方を調べる時、スクリプトの場所は見つけにくいです。

そのとき「エクスプローラー(Explorer)」のところで「Script」とうつと、スクリプトだけ一覧できます。

以下のようにアイテム1つ1つに書かれている場合もあれば、別の場所に全体を制御するスクリプトががっつり書かれている場合もあります。

f:id:apicode:20191126092359p:plain

 

使えるコマンド一覧は?

Robloxにレファレンスがあります。

https://developer.roblox.com/en-us/api-reference

 

 

 

 

Robloxでゲームを作る手順のまとめはこちら。

apicodes.hatenablog.com

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ