Open13
RobloxのScriptについて
ピン留めされたアイテム
TODOs
- ゲーム画面にテキストを表示する(TextChatにメッセージを送信)
chatにコマンドを追加する
https://create.roblox.com/docs/building-and-visuals/ui/in-experience-text-chat#creating-custom-commands - debugの方法
- マルチでデバッグ
- サーバーを初期状態にするには
- 他のスクリプトを実行するには(ModuleScript)
- Playerが死んだ時のイベント
- Scriptの違い(サーバー、ローカル、モジュール)
スクリプト言語としてLua 5.1を拡張したLuauが使われている。
Luauが開発されたモチベーション。要するにLuaにパフォーマンスと型システムを強化したもの?
Roblox Studioを使ったScriptのチュートリアル
パーツを消したり、当たり判定を変化させたり、接触するとプレイヤーをkillしたり、などなど、基本的なアクションゲームが作れそうな内容が紹介されている。
Scriptについて
Scriptの種類
- ServerScript: サーバーで実行される。ゲーム自体の制御に
- LocalScript: クライアントで実行される。ユーザーの操作の補助などに。
- ModuleScript: サーバー、クライアントを問わず、再利用できる
配置のルール
- ServerScriptは
ServerScriptService
に配置する - LocalScriptは
StarterPlayerScripts
に配置する - ModuleScriptはサーバのみ参照する場合は
ServerScriptService
に、ローカルも参照する場合ReplicatedStorage
に配置する
Moduleの宣言方法、参照方法、シンプルな実装例
ModuleScriptの活用パターン
- Data Sharing: 複数のオブジェクトが、1つのデータを参照・更新したいとき
- Custom Events: BindableEvents(Script間で通信をするためのイベントらしい)のためのカスタムハンドラを作るのに利用するらしい(要調査)
- Encapsulation: カプセル化。複雑な処理を隠蔽して抽象レイヤーを作る
Scriptの配置ルール
- 個別のModelに適用する場合はModelの直下
- サーバのロジックはServerScriptService
- ローディング画面などすぐに読み込みたいものはReplicatedFirst
- プレイヤーのGUIを操作するものはStarterGui
- カメラや入力などの制御はStarterPlayerScripts
- プレイヤーの操作はStarterCharacterScripts
- サーバーとクライアントの両方で必要なModuleScriptはReplicatedStorage
- サーバーだけで必要なModuleScriptはServerStorage