English
Graphic Tools Guideフォーマット一覧

SEGA3Dファイル仕様

1995.08.08現在

■データ構成/ファイルレイアウト


■ヘッダ

「
    SEGA 3D
」

◆目的
ファイル種類の識別。

◆規約
ファイルの先頭に必ず存在しなければならない。

■モデル

 1モデルに1ペアの頂点構造(vertices)・面構造(polygons)が存在する。
 同一モデル名の混在は認められない。
「
    model        modelname
    {
        vertices    ;number of verticies
        {    
            (x0,y0,z0),(nx0,ny0,nz0)        ;0
            (x1,y1,z1),(nx1,ny1,nz1)        ;1
            .............                    ;2
        }
        polygons    ;number of polygons
        {
            (v0,v1,v2,v3),(Nx,Ny,Nz),(Zpos)        ;0
            .............                        ;1
        }
    }
」

◆目的
4点ポリゴンモデルの頂点及びポリゴン構造等を設定する。

◆予約語
model           
: 制御構造
vertices        
: 制御構造
polygons        
: 制御構造

◆データ
modelname       
: モデル名
(Xn,Yn,Zn)      
: 各頂点座標
(nx0,ny0,nz0)   
: 各頂点法線ベクトル(単位ベクトル)
(v0,v1,v2,v3)   
: 面を構成する頂点番号
(Nx,Ny,Nz)      
: 面法線ベクトル
(Zpos)          
: Zソートの基準(AVE=中心/MIN=最近/MAX=最遠)

◆規約
面を構成する頂点の順番は「時計回り」とする。
0         1
 ┌───────┐ 
 │   →   │ 
 │       │ 
 │↑     ↓│ 
 │       │ 
 │   ←   │ 
 └───────┘ 
3         2
3角形を表現する場合は、v2とv3が同一番号とする。

■スリップ

サターン旧ツール互換用データ構造。
モデルに何らかのマテリアルデータが存在する場合、スリップが構成される。
「
    slips        modelname
    {
        materialname_0
        materialname_1
        .........
    }
」

◆目的
マテリアルと各モデルの面構造を対応させる。

◆予約語
slips           
: 制御構造

◆データ
modelname       
: 対応モデル名
materialname_n  
: 対応マテリアル名

◆規約
マテリアル名は、それぞれ対応モデルに含まれる面番号に対応する。

■マテリアル

サターン旧ツール互換用データ構造。
各データは、必要に応じ構成される。
「
    material    materialname
    {
        type        (TYPE0|TYPE1|...)
        texture      "textureName"
        color        ColorCode
        gouraud      offset
        direction    0,1,2,3
    }
」

◆目的
各面に割り当てる面属性を設定する。

◆予約語
material      
: 制御構造
type          
: 予約語
texture       
: 予約語
color         
: 予約語
gouraud       
: 予約語
direction     
: 予約語

◆データ
materialname  
: マテリアル名
(TYPEn)       
:  マテリアルタイプ。シェーディング・マッピング等の方法を指定する。
 → NULL=なし
   FLAT=フラットシェーディング
   TEXT=テクスチャマッピング
   GOUR=グーローシェーディング
   MESH=メッシュ表示
   TRAN=半透明
   SHAD=半輝度
 ※複数指定は'|'で接続する。
"textureName" 
: テクスチャマップファイル名
ColorCode     
:  ノンテクスチャカラーコード(RGB各5bit=1b.B5.G5.R5)
offset        
:  グーローカラーオフセット=0x10。未使用データ。
0,1,2,3       
: テクスチャマップの各頂点への対応。表示方向。
 → [0,1,2,3]=通常表示
   [1,0,3,2]=H反転表示
   [3,2,1,0]=V反転表示
   [2,3,0,1]=HV反転表示
    [1,2,3,0]=90度回転通常表示
   [2,1,0,3]=90度回転H反転表示
   [0,3,2,1]=90度回転V反転表示
   [3,0,1,2]=90度回転HV反転表示

■オブジェクト

複数モデルが存在する場合、オブジェクト構造が構成される。
「
    object    objectname
    {
        modelname_0,(xs,ys,zs),(xd,yd,zd),(xt,yt,zt),(xi,yi,zi)
        {
        }
        modelname_1,(xs,ys,zs),(xd,yd,zd),(xt,yt,zt),(xi,yi,zi)
        {
            modelname_2,(xs,ys,zs),(xd,yd,zd),(xt,yt,zt),(xi,yi,zi)
            {
                modelname_4,(xs,ys,zs),(xd,yd,zd),(xt,yt,zt),(xi,yi,zi)
                {
                }
            }
            modelname_3,(xs,ys,zs),(xd,yd,zd),(xt,yt,zt),(xi,yi,zi)
            {
            }
        }
        ..................................
        ..................................
    }
」

◆目的
各モデルの階層マトリクス構造を設定する。

◆予約語
object        
: 制御構造

◆データ
objectname    
: オブジェクト名(=ファイル名)
modelname_n   
: モデル名
(xs,ys,zs)    
: スケール(比)
(xd,yd,zd)    
: ローテート(角度:-180.0〜+179.0)
(xt,yt,zt)    
: トランスレーション(座標)
(xi,yi,zi)    
: 現在未使用=(0,0,0)

■光源
「
    light
    {
        vector    n    ;number of light
        {
            (X0, Y0, Z0)    ;0
            (X1, Y1, Z1)    ;1
            ............
        }
    }
」

◆目的
光源ベクトルを設定する。

◆予約語
light         
: 制御構造
vector        
: 制御構造

◆データ
(Xn,Yn,Zn)    
: 光源の単位ベクトル

■アトリビュート

アトリビュートは、ターゲットに依存したデータ構造である。
「
    attribute    modelname
    {
        {
            type        (TYPE0|TYPE1|...)
            texture        "textureName"
            color        ColorCode1, ColorCode2
            gour_color    (R1,G1,B1),(R2,G2,B2),(R3,G3,B3),(R4,G4,B4)
            direction    0,1,2,3
            zsort        (Zpos)
        }
        {
            .....
        }
        ..........
        ..........
    }
」

◆目的
モデル各面に割り当てる属性を設定する。

◆予約語
attribute    
: 制御構造
type         
: 予約語
texture      
: 予約語
color        
: 予約語
gour_color   
: 予約語
direction    
: 予約語

◆データ
modelname    
: モデル名
(TYPEn)      
: マテリアルタイプ(マテリアルデータと同様)。
  シェーディング・マッピング等の方法を指定する。
  → NULL=なし    
    FLAT=フラットシェーディング
    TEXT=テクスチャマッピング
    GOUR=グーローシェーディング
    MESH=メッシュ表示
    TRAN=半透明
    SHAD=半輝度
  ※ 複数指定は'|'で接続する。
"textureName" 
: テクスチャマップファイル名
ColorCode1    
: マテリアルに設定されたノンテクスチャカラーコード
  (RGB各5bit=1b.B5.G5.R5)
ColorCode2    
: 現在の光源によって計算されたノンテクスチャカラーコード
  (RGB各5bit=1b.B5.G5.R5)
(Rn,Gn,Bn)    
: 現在の光源によって計算された4頂点のグーローテーブル
0,1,2,3       
: テクスチャマップの各頂点への対応。表示方向。
  → [0,1,2,3]=通常表示
    [1,0,3,2]=H反転表示
    [3,2,1,0]=V反転表示
    [2,3,0,1]=HV反転表示
     [1,2,3,0]=90度回転通常表示
    [2,1,0,3]=90度回転H反転表示
    [0,3,2,1]=90度回転V反転表示
    [3,0,1,2]=90度回転HV反転表示
(Zpos)        
: Zソートの基準(AVE=中心/MIN=最近/MAX=最遠

Graphic Tools Guideフォーマット一覧
Copyright SEGA ENTERPRISES, LTD,. 1997