スクリプトは、ゲームにカスタムで動的な動作を追加できるプレーン テキスト ファイルです。スクリプトを使用して、ゲーム内のイベントをトリガーしたり、プレイヤーの入力に応答したり、プレイヤーのデータを保存したり、リーダーボードを作成したり、敵を出現させたり、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)) --> string
Luau にはグローバルとローカルの スコープ がありますが、通常は local キーワードを使用して、変数や関数をローカルに宣言する方が良いです:
local logMessage = "ユーザーは 10 個以上のアイテムを持っています!"
local function printMessage()
print(logMessage)
end
printMessage() --> ユーザーは 10 個以上のアイテムを持っています!
Luau では nil を存在しないことや無を表すために使用します。これは条件文で false と評価されます:
local messageToUserprint(messageToUser) --> nilprint(type(messageToUser)) --> nilif messageToUser then-- 文は false に評価されますend
ご覧のように、-- は1行のコメントを開始します。--[[]] はブロックコメントを作成します:
--[[
宇宙月光線を即座に停止します。
宇宙月光線にダメージを与えないために、山岳標準時の真 midnight の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 -- 標準 Luaprint(index, value)endfor key, value in pairs(myDictionary) do -- 標準 Luaprint(key, value)endfor 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 設定 の スクリプトエディタ セクションでは、フォント、色、インデント、自動完了、ブラケット、ツールチップなどの生活の質を向上させる機能を調整できます。また、Studio セクションでダークモードを有効にすることもお勧めします。
- Ctrl または Command を押しながら関数や変数をクリックすると、コードベース内の宣言に移動します(またはオンラインドキュメントに移動します)。検索とすべてを検索 を使用すると、大規模なプロジェクトをナビゲートするのに役立ちます。
- スクリプト分析 ウィンドウは、エラーや警告の要約を表示しますが、その有用性は限られているかもしれません。スクリプトエディタでは、入力中にこれらの問題を強調表示します。
スクリプティング用にスタジオを構成するための詳細については、スクリプトエディタ を参照してください。
あなたの2番目のスクリプト
Roblox Studio で、Explorer ウィンドウの ReplicatedStorage にスクリプトを追加し、名前を OhNo に変更します。
ファイルに次のコードを追加します:
print("こんにちは、スクリプトのタイプと場所!")ゲームを実行します。
出力が 最初のスクリプト を実行したときと同じであることに気付いてください。
スクリプトが実行されなかった理由を理解するには、スクリプトのタイプと場所 を参照してください。