ビルドシステム

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

Roblox Battle Royale には、ユーザーが独自の構造を構築して、より良い射撃角度に到達したり、戦闘中に覆いを提供したりできるビルディングシステムがあります。メニューを使用すると、ユーザーは複数の異なるタイルタイプから選択し、世界に配置できます。

Building Example

整然と構造化されたシステムを維持するには:

  • それぞれのタイルは、既存のタイルまたは地面に接続する必要があります。
  • ゲームワールドと調整されたグリッド内にすべてのビルディングタイルを配置し、タイルが正しく接続し、重複しないようにします。

タイルの構成

ユーザーが新しいタイルを素早く簡単に作成できるようにするには、ビルドシステムがどのタイルが互いに接続されており、新しいタイルをグリッド上にどこに配置できるかを理解する必要があります。

タイルは 3 コンポーネントを使用します:タイルオブジェクトとして使用される ビジュアルアセット、他のワールドオブジェクトに対する タイルが占有するスペース に関する情報、および追加のタイルが利用可能なエッジに接続できる 接続ポイント のタイル。

アセット

アセットは、BasePart ( Part , MeshPart , etc.) が ReplicatedStorage/BuildingSystem/Assets に配置され、タイルがゲームワールドでどのように見えるかを表現します。この BasePart は 2つの子供を持つ必要があります:

  • オブジェクトタイプ — タイルタイプ名の StringValue を持つ Value
  • 開始回転 — ユーザーが世界に配置すると、タイルの開始回転の NumberValue となる Value

オクッパンス

グリッドシステムでタイルが正しい場所に配置されていることを保証することは重要で、ビットマスクを使用して行うことができます。ビットマスクは、タイルタイプがワールドスペースまたはセルの基本セクション内で占有する物理空間を表します。各ビルディングシステムタイル/オブジェクトは、グリッドセルの前面、左面、戻る面、右面、上面、下面のいずれかの顔、またはグリッドセル内のオクタントの数をどれでも占有できます。ユーザーは、オブジェクトが占有するすべての顔と八角形がそのセルにある場合にのみ、ビルディングシステムオブジェクトをセルに配置できます。ビルディングシステムオブジェクトの占有率は以下のように定義されます:

ビット索引意味
0セルの底面
1セルの上面トップ面
2セルの右側面
3セルの後面
4セルの左面
5セルの前面
6 +X, –Y, +Z セルの中心にオリジンがあるセルの八角形
7 +X, +Y, +Z セルの中心にオリジンがあるセルの八角形
8 –X、–Y、+Z セルの中心にオリジンがあるセルの八角形
9 –X, +Y, +Z セルの中心にオリジンがあるセルの八角形
10 –X、–Y、–Z セルの中心にオリジンがあるセルの八角形
11 –X, +Y, –Z セルの中心にオリジンがあるセルの八角形
12 +X, –Y, –Z セルの中心にオリジンがあるセルの八角形
13 +X, +Y, –Z セルの中心にオリジンがあるセルの八角形

接続性

タイルは、構造を作成するために互いに接続する必要があります。セルの顔/端のどの部分にタイルタイプが触れるかを表すビットマスクを使用できます。ビルディングシステムタイル/オブジェクトの接続性は、セルの表面にある連結ポイント/ビットのシリーズで表現されます。セルの面に次のように配置します:

Octant Cube Diagram

ビルディングシステムオブジェクトは、セルの表面で少なくとも 2つの接続ポイントを共有している場合、グリッド上の他のビルディングシステムオブジェクトに接続されたと考えられます。

新しいタイルタイプを作成する

新しいタイルタイプを作成するに入力:

  1. アセットを ReplicatedStorage/BuildingSystem/Assets に配置します。上記で定義されたように、ObjectTypeStartingRotation の子供が含まれている必要があります。

    Battle Royale Weapon Example
  2. 定義する オクッパンシー および 接続性 新しいタイルタイプの新規タイプにおける : ReplicatedStorage/BuildingSystem/Libraries/Grid/ObjectTypeConfigurations :

    Battle Royale Weapon Example

たとえば、 タイルタイプは次のように表現されます:


ObjectTypeConfigurations.Wall = {
ASSET_OFFSET_FROM_CENTER = Vector3.new(0, 0, -CELL_DIMENSIONS.Z / 2),
CONNECTIVITY = 0xFF8000, -- 0b 111 111 111 000 000 000 000 000
OCCUPANCY = 0x20, -- 0b 00 00 00 00 1 0 0 0 0 0
}

地形で作業

ビルディングシステムに完全に一致する自由形式の地形をマップに作成したい場合は、 環境地形 で説明されているように、高度マップインポートシステムを使用し、次の詳細を観察することをお勧めします:

  • Roblox の地形は、3次元のボクセルアレイで表現され、それぞれが世界の 4×4×4 スタッドの立方体を占有します。このため、Roblox Battle Royale は、20×16×20 スタッドのグリッドセルサイズ、壁タイルが 20×16×1 スタッド、床/天井タイルが 20×1×20 スタッドのサイズの壁タイルを使用しています。これにより、タイルと地形が正しく並べられます。

  • 高さマップ画像の各ピクセルは、 X/Z 平面において 1つの地形ボクセルを表現し、5×5の領域は、20×20のスタッドエリアを占有する 1つのビルディングシステムグリッドセルを表現します。

  • 高さマップ画像では、各ピクセルの赤チャンネルまたはグレーチャンネルの値がビルディングシステムグリッドセルの高さに分割可能であることを確認して、床タイルが地形の上にうまく配置されるようにします。

  • 高さマップをインポートするときは、設定してくださ設定する:


    Position (X, Y, Z) = 0, 0, 0
    Size (X, Y, Z) = heightmap_width × 4, 256, heightmap_length × 4