DSONはThe Daz Scene Object Notationの略です。
Daz Sceneという3Dグラフィックスソフトで使われているオブジェクトの表記方法です。
ファイル形式
DSONのファイル形式にはテキスト型とバイナリ型があります。
テキスト型はJSON形式でデータを記述し、バイナリ型はテキスト型をzlibで圧縮してバイナリにしたものです。
データ型
基本的にはJSONのデータ型を踏襲していますが、DSONにオリジナルのデータ型もいくつかあるようです。
例えばfloat型の値2つからなる配列の型をfloat2型としています。
[float, float]
同様にfloat3, 4, 5型もあります。
また以下のようなカウントを保持するようなstring_array型もあります。
{
"count": int,
"values": [string, string, ...]
}
同様にint_arrayやint2_array, float_array, float2_array, float3_arrayなどの型もあります。
さらにfloat_indexed_arrayというインデックス番号と値からなる配列を表す型もあります。
{
"count": int,
"values": [[int, float], [int, float], ...]
}
これと同様にfloat3_indexed_array型もあります。
DSONはほとんどJSONと同じような構文であることが分かります。要素数をcountフィールドに持つ型やインデックス番号とのペアで配列を表現する型などの少々異なる型はありますが、基本的は構文はJSONに準じています。