MODELファイルの構造
 
[MODELFILE]
    [MATERIALS]
    [ENDMATERIALS]
    [OBJECTS]
        [MODEL]
            [MESH]  CPとスプライン
            [ENDMESH]
            [PATCHES]
            [ENDPATCHES]
            [SEGMENT]  ボーン。階層構造を持っている
                [NONSKINNEDCPS]
                [ENDNONSKINNEDCPS]
                    [SEGMENT]
                    [NONSKINNEDCPS]
                    [ENDNONSKINNEDCPS]
                    [ENDSEGMENT]
            [ENDSEGMENT]
            [GROUP]  グループデータ、グループカラー等指定
            [ENDGROUP]
            [GROUP]
            [ENDGROUP]
        [ENDMODEL]
    [ENDOBJECTS]
    [ACTIONS]
    [ENDACTIONS]
    [CHOREOGRAPHIES]
    [ENDCHOREOGRAPHIES]
[ENDMODELFILE]



必須
[MODELFILE]
Modified=[変更日時]
Expanded=[boolean, セクション内に別セクションがあればTRUE....多分]
<MATERIALS>
<OBJECTS>
<ACTIONS>
<CHOREOGRAPHIES>
[ENDMODELFILE]

<Modified>
無くても大丈夫だと思うが、とりあえず読み込んだままをはきだす事にしよう。
日付例
01/14/1998 8:32:13PM

<boolean>="TRUE"|"FALSE"
これは、FALSEという時は無いかもしれない。
FALSEっていう事は中に何も無い。つまりこのセクション内は空っぽにする事が出来る?



必須
[MATERIALS]
[ENDMATERIALS]



必須
[OBJECTS]
Modified=[変更日時]
Expanded=[boolean]
<MODEL>
[ENDOBJECTS]



必須
[MODEL]
Bounds=[floats, モデルを囲む箱、なぜか8個も座標をつかう。なぜだろう?]
<etc identify>
<MESH>
<PATCHES>
<SEGMENT>
<GROUP>
Modified=[変更日時]
Expanded=[boolean]
[ENDMODEL]

*Bounds以外の識別子は、元のままはきだす。

<Bounds>
Boundsの座標順番。ちょっと予想外
hi_bottom_left
lo_bottom_left
lo_bottom_rigght
hi_bottom_right
hi_top_left
lo_top_left
lo_top_right
hi_top_right

Bounds=
  9.97844 20.0539   0
  9.97844 20.0539  -2.37736
  9.97844  5.01348 -2.37736
  9.97844  5.01348  0
-14.9596  20.0539   0
-14.9596  20.0539  -2.37736
-14.9596   5.01348 -2.37736
-14.9596   5.01348  0

<SEGMENT>と<GROUP>は、省略可能。今回はあっても棄てる。



必須
[MESH]
Version=[version number(now 2)]
Splines=[integer, number of splines]
*<CPs>
[ENDMESH]

<CPs>=
"CPs="[integer, number of points on spline]
<cptype> <attach> <CPID> if cptype=CPTYPE_HOOK then <hook_ratio>
if attach then{
   <attache to CPID>
}else{
  <X> <Y> <Z>
}
"0" |  <outalpha> <outgamma> <omagnitude>
"0" |  <inalpha> <ingamma> <magnitude>
 
<cptype>=[integer, CPの属性を示す。各bitに意味がある]
下記条件のビットORをとった物がcptype
0x00000001 CPTYPE_SMOOTH  角が丸い
0x00000004 CPTYPE_LOOP  スプラインがループしている(※スプラインの最後のCPに付けないといけない)
0x00000010 CPTYPE_HOOK  (a)フックしているCP
0x00000080 ???(b)と多分同じ???
0x00001000 ???(a)と多分同じ???
0x80000000 CPTYPE_HOOKTARGET  (b)フックターゲットになるCP

<attach>=[integer, attachしているかどうか?]
1=アタッチしている
0=アタッチしない
 
<hook_ratio>=フックする位置を比率で表す
フックターゲットに近い方から、0.25 or 0.50 or 0.75 にフックする。



必須、ただし、情報は省略可能
[PATCHES]
Version=[version number 今は"1"]
Count=[number of patchs]
[ENDPATCHES]

<Count>を0にする事で、本セクションの中身を省略する事が可能....多分



省略可能
[SEGMENT]
Name=[Born name]
<NONSKINNEDCPS>

[ENDSEGMENT]



省略可能
[GROUP]
Name=[Group name]
Count=[number of grouped cps]
*<cp_number>
Modified=[]
[ENDGROUP]

<cp_number>=[グループに洗濯されているCPのCPID]



必須
[ACTIONS]
[ENDACTIONS]



必須
[CHOREOGRAPHIES]
[ENDCHOREOGRAPHIES]
 

 
モデルファイル例
 

[MODELFILE]
Expanded=TRUE
[MATERIALS]
[ENDMATERIALS]
[OBJECTS]
Expanded=TRUE
[MODEL]
BoneColor=0 0 0 255
Bounds=9.00655 7.60747 0.583672 9.00655 7.60747 -0.583672 9.00655 -5.65899 -0.583672 9.00655 -5.65899 0.583672 -10.4474 7.60747 0.583672 -10.4474 7.60747 -0.583672 -10.4474 -5.65899 -0.583672 -10.4474 -5.65899 0.583672
DiffuseColor=1 1 1
DiffuseFalloff=1
Ambiance=0.2
Roughness=0
RoughnessScale=1
Reflectivity=0
Transparency=0 0 0
Additive=FALSE
Refraction=1
SpecularColor=1 1 1
SpecularSize=0
SpecularIntensity=1
SilColor=0 0 0
SilPct=0.25
SilUseObjectColor=TRUE
SilThickness=2
DetColor=0 0 0
DetPct=0.5
DetUseObjectColor=TRUE
DetThickness=1
HasBooleans=FALSE
[MESH]
Version=2
Splines=5
CPs=3
1 1 1
11 <11にアタッチ>
0
0
1 0 13
4.64578 3.48774 0
0 <14にアタッチされている>
0
1 1 2
7 <7にアタッチ>
0
0

CPs=4
1 0 5
-10.3815 -0.326975 0
0
0
129 0 6
-3.67847 -0.735695 0 <6にアタッチされている>
0
0
1 0 7
4.98638 -0.490463 0
0 <2にアタッチされている>
0
1 0 8
8.25613 -0.490463 0
0
0

CPs=4
1 0 9
-10.218 7.52044 0
0
0
129 0 10
-3.76022 7.02997 0 <3にアタッチされている>
0
0
1 0 11
4.41417 7.19346 0
0 <1にアタッチされている>
0
1 0 12
7.13422 7.36324 0
0
0

CPs=2
2147483649 1 3 <フックターゲット>
10 <10にアタッチ、15にアタッチされている>
0
0
1 1 4
6 <6にアタッチ>
0
0

CPs=2
129 1 14
13 <13にアタッチ>
0
0
17 1 15 0.5 <CPID=3にフック>
3 <3にアタッチ>
0
0

[ENDMESH]
[PATCHES]
Version=1
Count=2
33619968
10 15 13 11
143134824
6 2 14 15
[ENDPATCHES]
Modified=01/20/1998 5:29:57PM
Expanded=TRUE
[SEGMENT]
Name=ボーン1
[NONSKINNEDCPS]
Count=7
3
4
5
6
9
10
15
[ENDNONSKINNEDCPS]
Pivot=-9.48229 -5.06812 0
End=0.245231 -4.98638 0
RollHandle=-9.48229 -5.06812 -3.89115
BoneColor=255 0 0 255
DrawMode=Curved
Wireframe=TRUE
Shaded=FALSE
Chained=FALSE
Hidden=FALSE
Bounds=0.250135 -5.57003 -0.583672 -10.3367 -5.65899 -0.583672 -10.3367 -5.65899 0.583672 0.250135 -5.57003 0.583671 0.139405 7.60747 -0.583672 -10.4474 7.51851 -0.583672 -10.4474 7.51851 0.583672 0.139405 7.60747 0.583672
Expanded=TRUE
[SEGMENT]
Name=ボーン2
[NONSKINNEDCPS]
Count=8
1
2
7
8
11
12
13
14
[ENDNONSKINNEDCPS]
Pivot=0.245231 -4.98638 0
End=8.99183 -4.74114 0
RollHandle=0.245231 -4.98638 -3.50001
BoneColor=0 255 255 255
DrawMode=Curved
Wireframe=TRUE
Shaded=FALSE
Chained=TRUE
Hidden=FALSE
Bounds=9.00655 -5.26594 -0.525003 0.259945 -5.51118 -0.525002 0.259945 -5.51118 0.525002 9.00655 -5.26594 0.525002 8.65125 7.40578 -0.525003 -0.0953485 7.16054 -0.525003 -0.0953484 7.16054 0.525001 8.65125 7.40578 0.525001
[ENDSEGMENT]
[ENDSEGMENT]
[GROUP]
Name=sssm
Count=3
9
10
3
[ENDGROUP]
[GROUP]
Name=feelgood
Count=3
7
8
2
[ENDGROUP]
[GROUP]
Name=グループ1
HasAttributes=TRUE
DiffuseColor=1 0 0
Count=9
14
15
9
10
11
12
3
1
13
Modified=01/20/1998 5:29:53PM
[ENDGROUP]
[GROUP]
Name=グループ2
HasAttributes=TRUE
DiffuseColor=0 0 1
Count=9
14
15
5
6
7
8
4
13
2
Modified=01/20/1998 5:30:03PM
[ENDGROUP]
[ENDMODEL]
[ENDOBJECTS]
[ACTIONS]
Expanded=TRUE
[ENDACTIONS]
[CHOREOGRAPHIES]
[ENDCHOREOGRAPHIES]
[ENDMODELFILE]
 
 
参考
 
最小構成(スプライン1本)

[MODELFILE]
    Modified=01/14/1998 8:32:13PM
    Expanded=TRUE
    [MATERIALS]
    [ENDMATERIALS]
    [OBJECTS]
        Modified=01/14/1998 8:32:29PM
        Expanded=TRUE
        [MODEL]
            BoneColor=0 0 0 255
            Bounds=4.90463 5.14986 0 4.90463 5.14986 0 4.90463 5.06812 0 4.90463 5.06812 0 -5.06812 5.14986 0 -5.06812 5.14986 0 -5.06812 5.06812 0 -5.06812 5.06812 0
            DiffuseColor=1 1 1
            DiffuseFalloff=1
            Ambiance=0.2
            Roughness=0
            RoughnessScale=1
            Reflectivity=0
            Transparency=0 0 0
            Additive=FALSE
            Refraction=1
            SpecularColor=1 1 1
            SpecularSize=0
            SpecularIntensity=1
            SilColor=0 0 0
            SilPct=0.25
            SilUseObjectColor=TRUE
            SilThickness=2
            DetColor=0 0 0
            DetPct=0.5
            DetUseObjectColor=TRUE
            DetThickness=1
            HasBooleans=FALSE
            [MESH]
                Version=2
                Splines=1
                CPs=2
                1 0 1
                -5.06812 5.14986 0
                0
                0
                1 0 2
                4.90463 5.06812 0
                0
                0
            [ENDMESH]
            [PATCHES]
                Version=1
                Count=0
            [ENDPATCHES]
        Modified=01/14/1998 8:32:53PM
        Expanded=TRUE
    [ENDMODEL]
    [ENDOBJECTS]
    [ACTIONS]
    [ENDACTIONS]
    [CHOREOGRAPHIES]
    [ENDCHOREOGRAPHIES]
[ENDMODELFILE]
 



最小構成(スプライン1本)

[MODELFILE]  ほぼ何も無い
    [MATERIALS]  何も無い
    [ENDMATERIALS]
    [OBJECTS]  ほぼ何も無い
        [MODEL]  アトリビュートが少々
            [MESH]  CPとスプライン
            [ENDMESH] 
            [PATCHES]  多分省略可能
            [ENDPATCHES]
        [ENDMODEL]
    [ENDOBJECTS]
    [ACTIONS]  何も無い
    [ENDACTIONS]
    [CHOREOGRAPHIES]  何も無い
    [ENDCHOREOGRAPHIES]
[ENDMODELFILE]


[MODELFILE]
    [MATERIALS]
    [ENDMATERIALS]
    [OBJECTS]
        [MODEL]
            [MESH]  CPとスプライン
            [ENDMESH]
            [PATCHES]
            [ENDPATCHES]
            [SEGMENT]  ボーン。階層構造を持っている
                [NONSKINNEDCPS]
                [ENDNONSKINNEDCPS]
                    [SEGMENT]
                    [NONSKINNEDCPS]
                    [ENDNONSKINNEDCPS]
                    [ENDSEGMENT]
            [ENDSEGMENT]
            [GROUP]  グループデータ、グループカラー等指定
            [ENDGROUP]
            [GROUP]
            [ENDGROUP]
            [GROUP]
            [ENDGROUP]
            [GROUP]
            [ENDGROUP]
        [ENDMODEL]
    [ENDOBJECTS]
    [ACTIONS]
    [ENDACTIONS]
    [CHOREOGRAPHIES]
    [ENDCHOREOGRAPHIES]
[ENDMODELFILE]