User Manual

フォルダ形式

基本的には、ファイル形式の構造が分からなくてもモデルをシリアル化することができます。しかし、このセクションでは、独自のファイルコンバータを書く場合の形式について説明します。

PlayCanvasにモデルを取りこむには、FBXファイル(またはOBJ、DAE、DXJ、3DS)をアップロードする必要があります。サーバでは、このファイルはJSON形式に変換されます。この形式はテキストです。2つの三角形を有する平面の簡単な例を見てみましょう:

{
  "model": {
    "version": 2,
    "nodes": [
      {
        "name": "RootNode",
        "position": [ 0, 0, 0 ],
        "rotation": [ 0, 0, 0 ],
        "scale": [ 1, 1, 1 ]
      },
      {
        "name": "Plane",
        "position": [ 0, 0, 0 ],
        "rotation": [ 0, 0, 0 ],
        "scale": [ 1, 1, 1 ]
      }
    ],
    "parents": [ -1, 0 ],
    "skins": [],
    "vertices": [
      {
        "position": {
          "type": "float32",
          "components": 3,
          "data": [ 1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0 ]
        },
        "normal": {
          "type": "float32",
          "components": 3,
          "data": [ 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1 ]
        }
      }
    ],
    "meshes": [
      {
        "aabb": {
          "min": [ -1, -1, 0 ],
          "max": [ 1, 1, 0 ]
        },
        "vertices": 0,
        "indices": [ 0, 1, 2, 0, 2, 3 ],
        "type": "triangles",
        "base": 0,
        "count": 6
      }
    ],
    "meshInstances": [
      {
        "node": 1,
        "mesh": 0
      }
    ]
  }
}

上記のJSONオブジェクトに表示される異なるプロパティの参照です:

プロパティ説明
modelこのJSONオブジェクトがPlayCanvasモデルであることを示します。
versionJSONオブジェクトのバージョン。現在の最新バージョンは2です。
nodesシーンの階層を構成するノードの配列。配列は平坦ですが、親の配列はシーンのノード間の親子関係を指定します。
nameノードの名前(通常はアーティストによって割り当てられる)。
positionノードの親に相対する3つのコンポーネントの位置(XYZ)。
rotationノードの親に相対する3つのコンポーネントのオイラー角回転(XYZ)。単位は度です。
scaleノードの親に相対する3つのコンポーネントの尺度(XYZ)。
parents親ノードのインデックスの配列。ルートノードの親は-1です。上記の例では、「Plane」ノードの親は「RootNode」です。
skins現時点ではデータのスキンに関するドキュメントはありません。
vertices 頂点情報を含むオブジェクトの配列。各オブジェクトには複数の頂点プロパティがあります。次に設定できます;
  • position: 頂点の位置
  • normal: 頂点の法線
  • texCoord0: 最初のテクスチャの座標セット
  • texCoord1: 二つ目のテクスチャの座標セット
  • skinWeights: 頂点のスキンウェイト
  • skinIndices: 頂点のスキンインデックス
  • color: 頂点の色
各プロパティにはタイプ(float32, uint8, uint16, uint64)といくつかのコンポーネント(1-4)があります。
meshesメッシュオブジェクトの配列。メッシュは頂点情報のレンダリング方法を判断するために使用されます。
aabbメッシュのローカル空間の軸整列された外接枠。
minメッシュの軸整列された外接枠の 最小座標値。
maxメッシュの軸整列された外接枠の 最高座標値。
verticesこのメッシュによって参照される頂点情報オブジェクトのインデックス。
indicesメッシュが表すプリミティブの点を定義するインデックスの配列。
type このメッシュのプリミティブのタイプ。次に設定できます:
  • points
  • lines
  • lineloop
  • linestrip
  • triangles
  • trianglestrip
  • trianglefan
baseこのメッシュが使用する最初のインデックス。
countこのメッシュによって使用されるインデックスの数。
meshInstancesメッシュのインスタンスを表すオブジェクトの配列。ひとつのメッシュを複数のメッシュのインスタンス間で共有することができます。そうすることで実行時にメモリを節約することができます。
nodeこのメッシュインスタンスが参照するノードのインデックス。
meshこのメッシュインスタンスが参照するメッシュのインデックス。
This site is translated by the community. If you want to get involved visit this page