【Roblox】Roblox の開発メモ(随時更新)

Roblox
  1. Roblox Lua
    1. 演算子
      1. 比較演算子
      2. 論理演算子
      3. 連結演算子
    2. 宣言・初期化・定義
      1. 変数
      2. 配列
    3. 繰り返し文
      1. while
      2. foreach
    4. 条件分岐
      1. if
    5. 配列
      1. 要素数を取得する
      2. 要素を追加する
      3. 全ての要素を削除する(配列を空にする)
    6. インスタンスや値の取得
      1. サービス
      2. ローカルプレイヤー
      3. 親オブジェクト
      4. 子オブジェクト
      5. Player の Model
      6. PlayerGui
      7. 座標
      8. ReplicatedStorage
      9. Players
      10. Player
    7. 関数の登録
      1. 毎フレーム実行する
      2. パーツに触れた際に実行する
      3. プレイヤーがゲームに参加した際に実行する
      4. 特定のプレイヤーがスポーンまたはリスポーンした際に実行する
      5. プレイヤーが死亡した際に実行する
    8. 型変換
      1. → string
      2. number(小数)→ number(整数)
    9. 判定
      1. その値の型が指定の値の型の子孫かどうか
      2. その値の型が指定のクラスと同じか、その派生クラスか
    10. その他
      1. 関数の登録を解除する
      2. コメント
      3. 待機
      4. Model を移動させる
  2. サービス
    1. Workspace
    2. Players
    3. Lighting
    4. MaterialService
    5. NetworkClient
    6. ReplicatedFirst
    7. ReplicatedStorage
    8. ServerScriptService
    9. ServerStorage
    10. StarterGui
    11. StarterPack
    12. StarterPlayer
    13. Teams
    14. SoundService
    15. TextChatService
    16. RunService
  3. スクリプト
    1. Script
      1. 動作環境
      2. 主な使用用途
      3. 主な配置場所
    2. LocalScript
      1. 動作環境
      2. 主な使用用途
      3. 主な配置場所
    3. ModuleScript
      1. 動作環境
      2. 使用用途
      3. 主な配置場所
  4. その他
    1. エディタ操作
      1. スナップ値を変更する
      2. 複数クライアントでプレイする
      3. ローカルの RBXM ファイルをインポートする
    2. エディタ設定
      1. エディタの言語を変更する
      2. AI アシストを無効化する
    3. プロパティ
      1. プレイヤーの視点を一人称視点に変更する
      2. 特定のパーツが重力の影響を受けないようにする
      3. スクリプトを無効化する
  5. 最後に
    1. お問い合わせ

Roblox Lua

演算子

比較演算子

記号意味
<小なり
<=以下
>大なり
>=以上
~=不等号
==等号

論理演算子

記号意味
and左辺と右辺が true(他言語の「&&」)
or左辺もしくは右辺が true(他言語の「||」)
nottrue と false を逆転させる(他言語の「!」)

連結演算子

{string 型の値} .. {string 型の値}

宣言・初期化・定義

変数

#型を指定しない場合
local {変数名} = {初期値}

#型を指定する場合
local {変数名}:{型名} = {初期値}

配列

local {配列名} = {{値}, {値}, {値}}

繰り返し文

while

while {条件} do
    -- 処理
end

foreach

for i, {変数名} in pairs({配列}) do
    -- 処理
end

条件分岐

if

-- 条件に値をそのまま渡す事で nil チェックが出来る
if {条件} then
    -- true の場合の処理
else
    -- false の場合の処理
end

配列

要素数を取得する

#{配列}

要素を追加する

table.insert({配列}, {値})

全ての要素を削除する(配列を空にする)

table.clear({配列})

インスタンスや値の取得

サービス

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

Player

game.Players:GetPlayerFromCharacter({Model 型の値})

関数の登録

毎フレーム実行する

local function {関数名}({引数名}:number)
    -- 処理
end

{RunService 型の値}.Heartbeat:Connect({関数名})

パーツに触れた際に実行する

local function {関数名}({引数名}:BasePart)
    -- 処理
end

{BasePart 型の値}.Touched:Connect({関数名})

プレイヤーがゲームに参加した際に実行する

local function {関数名}({引数名}:Player)
    -- 処理
end

{Players 型の値}.PlayerAdded:Connect({関数名})

特定のプレイヤーがスポーンまたはリスポーンした際に実行する

local function {関数名}({引数名}:Model)
    -- 処理
end

{Player 型の値}.CharacterAdded:Connect({関数名})

プレイヤーが死亡した際に実行する

local function {関数名}()
    -- 処理
end

{Humanoid 型の値}.Died:Connect({関数名})

型変換

→ string

tostring({変換前の値})

number(小数)→ number(整数)

-- 小数点以下切り捨て
math.floor(number 型の値)

判定

その値の型が指定の値の型の子孫かどうか

{値}:IsDescendantOf({親クラスの値})

その値の型が指定のクラスと同じか、その派生クラスか

{値}:IsA("{クラス名}")

その他

関数の登録を解除する

local {変数名}:RBXScriptConnection

{変数名} = {値}.{デリゲート名}:Connect({関数名})

{変数名}:Disconnect()

コメント

-- コメント

--[[
 コメント
--]]

待機

wait({number 型の値})

Model を移動させる

{Model 型の値}:MoveTo({Vector3 型の値})

サービス

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 内には、StarterCharacterScripts と StarterPlayerScripts が存在します。キャラクターモデルに関するスクリプトは StarterCharacterScripts に、プレイヤーに関するスクリプトは StarterPlayerScripts に入れます。

StarterPlayer

Teams

Teams サービスは、ゲーム内でプレイヤーのチームを管理するためのものです。Teams の下にある各 Team オブジェクトは、個々のプレイヤーチームを表し、そのプロパティ(例えばチームの色、名前、得点など)を制御します。

Teams

SoundService

SoundService は、ゲーム全体の音を制御するための Roblox のサービスです。サウンドエフェクトの再生や停止、全体の音量調整、特定の音の音量やピッチ調整など、音声に関するさまざまな操作を行うことができます。

SoundService

TextChatService

プロパティの設定でチャットウィンドウの位置やサイズ、外観を変更するができます。

TextChatService

RunService

RunServiceとは、HeartbeatやRenderSteppedなどイベントにConnectすることで毎フレーム呼ばれる処理を作成できるサービスです。
また、コードがどのようなコンテキストで実行されているかを判断するフラグなどもRunServiceにはあります。

【Roblox】 RunServiceについて

スクリプト

Script

動作環境

  • サーバー

主な使用用途

  • ワールド上のアイテムや NPC 等の制御
  • サーバー内のオブジェクトやプロパティ等へのアクセス

主な配置場所

  • ServerScriptService
  • Workspace

LocalScript

動作環境

  • クライアント

主な使用用途

  • UI やカメラ等のクライアントのみが保持しているオブジェクトの制御
  • プレイヤーの入力検知

主な配置場所

  • Backpack
  • character(Model)
  • PlayerGui
  • PlayerScripts
  • ReplicatedFirst

ModuleScript

動作環境

  • サーバー
  • クライアント

使用用途

  • 再利用可能な関数や変数の宣言と定義

主な配置場所

  • ServerStorage

その他

エディタ操作

スナップ値を変更する

エディタ上部の「MODEL」から「Rotate」と「Move」のスナップ値を変更する。

複数クライアントでプレイする

エディタ上部の「TEST」からプレイヤー数を設定して「Start」を押す。

ローカルの RBXM ファイルをインポートする

Explorer 内の Workspace 等で右クリックして「Insert from File…」を選択する。

エディタ設定

エディタの言語を変更する

FILE > Studio Settings > Studio > General > Language

AI アシストを無効化する

「FILE > Studio Settings > Script Editor > Code Assist > Enable Code-Assist」を false にする。

プロパティ

プレイヤーの視点を一人称視点に変更する

Explorer で「StarterPlayer」を選択して「Properties > Camera > CameraMode」を「LockFirstPerson」にする。

特定のパーツが重力の影響を受けないようにする

「Properties > Part > Anchored」を true にする。

スクリプトを無効化する

「Properties > Behavior > Enabled」を false にする。

最後に

お問い合わせ

    タイトルとURLをコピーしました