Roblox Lua
演算子
比較演算子
記号 | 意味 |
---|---|
< | 小なり |
<= | 以下 |
> | 大なり |
>= | 以上 |
~= | 不等号 |
== | 等号 |
論理演算子
記号 | 意味 |
---|---|
and | 左辺と右辺が true(他言語の「&&」) |
o r | 左辺もしくは右辺が true(他言語の「||」) |
not | true と false を逆転させる(他言語の「!」) |
連結演算子
{ string 型の値} .. { string 型の値}
宣言・初期化・定義
変数
#型を指定しない場合
local {変数名} = {初期値}
#型を指定する場合
local {変数名}:{型名} = {初期値}
配列
local {配列名} = {{値1}, {値2}, {値3}}
繰り返し文
while
while {条件} do
-- 繰り返したい処理
end
foreach
for i, {変数名} in pairs({配列の値}) do
-- 繰り返したい処理
end
条件分岐
if
-- 条件にインスタンスをそのまま渡す事で「nil ではない時」という nil チェックが出来る
if {条件} then
-- true の場合の処理
else
-- false の場合の処理
end
配列
要素数を取得する
#{配列の値}
インスタンスや値の取得
サービス
game:GetService("{サービス名}")
ローカルプレイヤー
game:GetService("Players").LocalPlayer
親オブジェクト
{子オブジェクトのインスタンス}.Parent
子オブジェクト
#指定したオブジェクトの出現を待たずに取得
{親オブジェクトのインスタンス}:FindFirstChild("{子オブジェクト名}")
#指定したオブジェクトが出現するまで待ってから取得
{親オブジェクトのインスタンス}:WaitForChild("{子オブジェクト名}")
Player の Model
{ Player 型のインスタンス}.Character or { Player 型のインスタンス}.CharacterAdded:Wait()
PlayerGui
{ Player 型のインスタンス}:WaitForChild("PlayerGui")
座標
{ BasePart 型のインスタンス}.Position
ReplicatedStorage
game.ReplicatedStorage
Players
game.Players
関数の登録
毎フレーム実行する関数を登録する
local function {関数名}(deltaTime:number)
-- 毎フレーム実行したい処理
end
{ RunService 型のインスタンス}.Heartbeat:Connect({関数名})
パーツに触れた際に実行する関数を登録する
local function {関数名}(otherPart:BasePart)
-- パーツに触れた際に実行したい処理
end
{ BasePart 型のインスタンス}.Touched:Connect({関数名})
プレイヤーがゲームに参加した際に実行する関数を登録する
local function {関数名}(joinedPlayer:Player)
-- プレイヤーがゲームに参加した際に実行したい処理
end
{ Players 型のインスタンス}.PlayerAdded:Connect({関数名})
型変換
→ string
tostring({変換前の値})
number(小数)→ number(整数)
-- 小数点以下切り捨て
math.floor( number 型の値)
判定
そのインスタンスが指定のインスタンスの子孫かどうかを判断する
{子クラスのインスタンス}:IsDescendantOf({親クラスのインスタンス})
そのインスタンスのクラスが指定のクラと同等か、その派生クラスかを判断する
{インスタンス}:IsA("{クラス名}")
その他
関数の登録を解除する
local connection
connection = {インスタンス}.{イベント名}:Connect({関数名})
-- 登録を解除
connection:Disconnect()
コメント
-- コメント
--[[
コメント
--]]
待機
wait({ number 型の値})
アニメーション
local tweenService = game:GetService("TweenService")
local goal = {}
goal.Position = { Vector3 型の値}
local tweenInfo = TweenInfo.new({ number 型の値}, { EasingStyle 型の値}, { EasingDirection 型の値})
local tween = tweenService:Create({ Instance 型のインスタンス}, tweenInfo, goal)
tween:Play()
サービス
Workspace
Workspace は、Roblox内で最も重要なサービスの一つであり、ゲームのメインの物理環境を表します。Workspaceはゲーム内で動き回り、相互作用することができる全てのオブジェクト(例えばパーツ、モデル、キャラクターなど)を保持します。これらのオブジェクトは、それぞれが独自の物理的特性(位置、速度、形状など)を持つため、これら全てを一緒に管理するための”コンテナ”としてWorkspaceが働いています。
Workspace
Players
Players は、Robloxゲームに接続している全てのプレイヤーを追跡するためのサービスです。このサービスはゲームに参加している各プレイヤーについての情報を格納し、その情報を管理します。
Players
Lighting
Lighting サービスは、ゲームの照明と天候の設定を制御します。このサービスは、ゲーム内の日の出や日の入り、雲の量、雨や霧などの環境効果などを管理します。
Lighting
MaterialService
デフォルトのマテリアル テクスチャを変更するサービスです。
MaterialService
NetworkClient
This service is responsible for connecting a client to a server.
NetworkClient
このサービスは、クライアントとサーバーの接続を担当する。
ReplicatedFirst
ReplicatedFirst はRobloxのサービスで、一部のスクリプトやアセットをクライアント(プレーヤーのデバイス)に最初にロードするために使われます。このサービスの主な用途は、ゲームの初期ロード画面やロード中のアニメーションなど、ゲームが完全にロードされる前に表示したいコンテンツを管理することです。
ReplicatedFirst
ReplicatedStorage
ReplicatedStorage は Roblox のサービスで、データをクライアント(プレイヤーのPC)とサーバー(ゲームのホストコンピュータ)間で共有するための特別な場所を提供します。ReplicatedStorage に格納されたデータは、クライアントとサーバーでアクセス可能です。そのため、リモートイベントやリモート関数、またはクライアントとサーバー間で共有する必要のあるその他のデータを格納するのによく使われます。
ReplicatedStorage
ServerScriptService
ServerScriptService は、Robloxのサービスの1つで、ゲームのサーバー側で実行されるスクリプトを保管するための場所を提供します。これには Script および ModuleScript が含まれます。これらのスクリプトはサーバー側でのみ実行され、プレイヤー(クライアント側)からはアクセスできません。
ServerScriptService
ServerScriptService はゲームのバックエンドのロジックを記述するための場所で、プレイヤーのアバターのスポーンやリスポーンの管理、データストアの操作、プレイヤーのインベントリ管理などの処理を行うために使われます。
ServerStorage
ServerStorage は Roblox のサービスの1つで、主にサーバー側のスクリプトからのみアクセス可能なデータやオブジェクトを保管するための場所を提供します。クライアント(プレイヤーのPC)からは ServerStorage にアクセスすることはできません。
ServerStorage
StarterGui
StarterGui は Roblox でのゲームデザインにおいて非常に重要な要素です。これはGUI(Graphical User Interface)要素を管理するサービスで、画面上にボタン、テキスト、メニューなどを表示するために使用されます。StarterGui 内に格納されているGUIオブジェクトは、新しいプレイヤーがゲームに参加するときにそのプレイヤーの PlayerGui にコピーされます。
StarterGui
StarterPack
StarterPack は Roblox でプレイヤーがゲームに参加したときにそのプレイヤーのバックパック(インベントリ)に自動的に追加されるアイテムを格納する場所です。これはツール、武器、ギアなど、プレイヤーがゲームの中で使用することができるオブジェクトを含みます。
StarterPack
StarterPlayer
StarterPlayer は、新たにゲームに参加する各プレイヤーに関する設定やプロパティを制御するためのサービスです。StarterPlayer 内の全てのスクリプトとモジュールスクリプトは、新しいプレイヤーがゲームに参加するたびにそのプレイヤーへコピーされます。
StarterPlayer
StarterPlayer 内には、StarterCharacterScripts と StarterPlayerScripts が存在します。キャラクターモデルに関するスクリプトは StarterCharacterScripts に、プレイヤーに関するスクリプトは StarterPlayerScripts に入れます。
Teams
Teams サービスは、ゲーム内でプレイヤーのチームを管理するためのものです。Teams の下にある各 Team オブジェクトは、個々のプレイヤーチームを表し、そのプロパティ(例えばチームの色、名前、得点など)を制御します。
Teams
SoundService
SoundService は、ゲーム全体の音を制御するための Roblox のサービスです。サウンドエフェクトの再生や停止、全体の音量調整、特定の音の音量やピッチ調整など、音声に関するさまざまな操作を行うことができます。
SoundService
TextChatService
プロパティの設定でチャットウィンドウの位置やサイズ、外観を変更するができます。
TextChatService
RunService
RunServiceとは、HeartbeatやRenderSteppedなどイベントにConnectすることで毎フレーム呼ばれる処理を作成できるサービスです。
【Roblox】 RunServiceについて
また、コードがどのようなコンテキストで実行されているかを判断するフラグなどもRunServiceにはあります。
スクリプト
Script
動作環境
- サーバー
主な使用用途
- ワールド上のアイテムや NPC 等の制御
- サーバー内のオブジェクトやプロパティ等へのアクセス
配置場所
- ServerScriptService
- Workspace
LocalScript
動作環境
- クライアント
主な使用用途
- UI やカメラ等のクライアントのみが保持しているオブジェクトの制御
- プレイヤーの入力検知
配置場所
- Backpack
- character(Model)
- PlayerGui
- PlayerScripts
- ReplicatedFirst
ModuleScript
動作環境
- サーバー
- クライアント
使用用途
- 再利用可能な関数や変数の宣言と定義
配置場所
- ServerStorage
その他
エディタ操作
スナップ値の変更
エディタ上部の「MODEL」から「Rotate」と「Move」のスナップ値を変更できる。
複数クライアントでのプレイ
エディタ上部の「TEST」からプレイヤー数を設定して「Start」を押す。
エディタ言語の変更
FILE > Studio Settings > Studio > General > Language
プロパティ
プレイヤーの視点を一人称視点に変更する
Explorer で「StarterPlayer」を選択して「Properties > Camera > CameraMode」を「LockFirstPerson」に変更する。
特定のパーツが重力の影響を受けないようにする
「Properties > Part > Anchored」を true に変更する。
スクリプトの無効化
「Properties > Behavior > Enabled」を false に変更する。