スクリプトは、ゲームにカスタムで動的な動作を追加するためのプレーンテキストファイルです。スクリプトを使用して、ゲーム内イベントをトリガーしたり、プレイヤーの入力に応じたり、プレイヤーデータを保存したり、リーダーボードを作成したり、敵を出現させたり、NPCの動作を制御したり、その他多くのことができます。
Luau
Robloxのスクリプトは、Luauプログラミング言語を使用しており、これはLua 5.1に基づいています。
- Lua 5.1と比較して、Luauはパフォーマンスの向上や、オプションの型システム、文字列補間、テーブルの一般化された反復など、多くの便利な機能を追加しています。
- 有効なLua 5.1コードはすべて有効なLuauコードですが、その逆は真ではありません。
Luaに関するほとんどの書籍やオンラインリソースは、Luauにも広く適用可能です。違いの詳細な要約については、Luauドキュメントの互換性を参照してください。言語の構文については、Luauリファレンスを参照してください。
Luauの基本
Luauは段階的に型付けされているため、変数を作成する際に型を指定する必要はありません。type()を使用してオブジェクトの型を確認できます:
logMessage = "ユーザーは10個以上のアイテムを持っています!"
print(logMessage) --> ユーザーは10個以上のアイテムを持っています!
print(type(logMessage)) --> stringLuauにはグローバルスコープとローカルスコープがありますが、ほとんどの場合、localキーワードを使用して変数や関数をローカルに宣言する方が良いです:
local logMessage = "ユーザーは10個以上のアイテムを持っています!"
local function printMessage()
print(logMessage)
end
printMessage() --> ユーザーは10個以上のアイテムを持っています!Luauはnilを存在しないことや無を表すために使用し、条件文ではfalseとして評価されます:
local messageToUser
print(messageToUser) --> nil
print(type(messageToUser)) --> nil
if messageToUser then
-- 文はfalseとして評価されます
endご覧の通り、--は1行コメントを開始します。--[[]]はブロックコメントを作成します:
--[[
宇宙の月光線を即座に停止します。
宇宙の月光線に損害を与えないために、山岳標準時の真夜中から15分以内にのみ呼び出すべきです。
]]
local function stopCosmicMoonRay()
-- 後でこれを追加します、重要になるかもしれません
endテーブルは配列と辞書の一般的な用語です。配列はゼロベースではなく1ベースで、最初のアイテムは[1]です。配列と辞書は、1組の波括弧で宣言します:
local myArray = {"チップス", "スパークリングウォーター", "サルサ"}
local myDictionary = {
snack = "チップス",
drink = "スパークリングウォーター",
dip = "サルサ"
}
print(myArray[1]) --> チップス
print(myDictionary.dip) --> サルサテーブルを反復処理するには、配列にはipairs()関数、辞書にはpairs()関数を使用したforループを使用しますが、Luauではこれらの関数を省略してよりクリーンな構文を使用することもできます:
for index, value in ipairs(myArray) do -- 標準Lua
print(index, value)
end
for key, value in pairs(myDictionary) do -- 標準Lua
print(key, value)
end
for key, value in myDictionary do -- Luauの一般化された反復
print(key, value)
endあなたの最初のスクリプト
Roblox Studioで、ExplorerウィンドウのServerScriptServiceにカーソルを合わせて**+**をクリックします。
スクリプトを選択して新しいスクリプトを追加します。
スクリプトを右クリックしてHelloScriptに名前を変更します。
スクリプトをダブルクリックしてスクリプトエディタで開きます。
次のコードをファイルに追加します:
local helloArray = {"h", "e", "l", "l", "o"}local worldArray = {"w", "o", "r", "l", "d"}for index, value in helloArray doprint(value)endprint(table.concat(worldArray))Outputウィンドウが開いていることを確認します。
ゲームを実行し、出力を確認します:
hel (x2)oworld
快適に過ごす
新しい開発環境に適応する大きな部分は、それを自分のニーズに合わせて構成し、利用可能なツールを理解することです:
- Studio Settingsのスクリプトエディタセクションでは、フォント、色、インデント、自動補完、括弧、ツールチップなどの生活の質を向上させる機能を調整できます。また、Studioセクションでダークモードを有効にすることも検討してください。
- CtrlまたはCommandを押しながら関数や変数をクリックすると、コードベース内の宣言に移動します(またはオンラインドキュメントに移動します)。検索とすべてを検索を使用すると、大きなプロジェクトをナビゲートするのに役立ちます。
- スクリプト分析ウィンドウは、エラーと警告の概要を表示しますが、その有用性は限られているかもしれません。スクリプトエディタは、入力中にこれらの問題をすでに強調表示します。
スクリプティングのためにStudioを構成する方法についての詳細は、スクリプトエディタを参照してください。
あなたの2番目のスクリプト
Roblox Studioで、ExplorerウィンドウのReplicatedStorageにスクリプトを追加し、OhNoに名前を変更します。
次のコードをファイルに追加します:
print("こんにちは、スクリプトの種類と場所!")ゲームを実行します。
出力があなたの最初のスクリプトを実行したときと変わらないことに注意してください。
スクリプトが実行されなかった理由を理解するには、スクリプトの種類と場所を参照してください。