OSDN Git Service

モデルデータ不備の異常系を別パッケージに
[mikutoga/TogaGem.git] / src / main / resources / jp / sourceforge / mikutoga / vmd / model / xml / resources / vmdxml-110820.dtd
1 <?xml version="1.0" encoding="UTF-8" ?>
2
3 <!--
4   MikuMikuDance
5     motion-data(*.vmd) on XML
6     DTD definition
7
8   License : The MIT License
9   Copyright(c) 2011 MikuToga Partners
10
11   SYSTEM ID: http://mikutoga.sourceforge.jp/xml/dtd/vmdxml-110820.dtd
12 -->
13
14
15 <!--
16     ROOT
17 -->
18 <!ELEMENT vmdMotion (
19     meta*,
20     (
21           ( modelName, boneMotionSequence, morphSequence )
22         | ( cameraSequence, luminousSequence, shadowSequence )
23     )
24 ) >
25 <!ATTLIST vmdMotion
26     xmlns              CDATA #IMPLIED
27     xmlns:xsi          CDATA #IMPLIED
28     xsi:schemaLocation CDATA #IMPLIED
29     version            CDATA #FIXED "110820"
30 >
31
32
33 <!--
34     Meta-information of model.
35     Use free.
36     but, some meta-name has recommended usage.
37     + "generator" (Generator application name)
38     + "siteURL" (Website URL)
39 -->
40 <!ELEMENT meta EMPTY >
41 <!ATTLIST meta
42     name    CDATA #REQUIRED
43     content CDATA #REQUIRED
44 >
45
46
47 <!--
48     bezier cubic curve parameters for interpolation.
49     p0=(0, 0) p3=(127, 127) [implicit points]
50     P1 and P2 points are required.
51 -->
52 <!ELEMENT bezier EMPTY >
53 <!ATTLIST bezier
54     p1x CDATA #REQUIRED
55     p1y CDATA #REQUIRED
56     p2x CDATA #REQUIRED
57     p2y CDATA #REQUIRED
58 >
59
60
61 <!--
62     default linear bezier curve for interpolation.
63     p0=(0, 0) p1=(20, 20) p2=(107, 107) p3=(127, 127)
64 -->
65 <!ELEMENT defLinear EMPTY >
66
67
68 <!--
69     default ease-in-out bezier curve for interpolation.
70     p0=(0, 0) p1=(64, 0) p2=(64, 127) p3=(127, 127)
71 -->
72 <!ELEMENT defEaseInOut EMPTY >
73
74
75 <!--
76     model name.
77 -->
78 <!ELEMENT modelName EMPTY>
79 <!ATTLIST modelName name CDATA #REQUIRED>
80
81
82 <!--
83     bone motion sequence
84 -->
85 <!ELEMENT boneMotionSequence (
86     bonePart*
87 ) >
88
89
90 <!--
91     bone part grouped by bone-name
92 -->
93 <!ELEMENT bonePart (
94     boneMotion*
95 ) >
96 <!ATTLIST bonePart name CDATA #REQUIRED>
97
98
99 <!--
100     bone motion
101 -->
102 <!ELEMENT boneMotion (
103     bonePosition?, ( boneRotQuat | boneRotEyxz )
104 ) >
105 <!ATTLIST boneMotion frame CDATA #REQUIRED>
106
107
108 <!--
109     bone position
110     with XYZ *3 interpolations.
111 -->
112 <!ELEMENT bonePosition (
113     ( ( bezier | defLinear | defEaseInOut ),
114       ( bezier | defLinear | defEaseInOut ),
115       ( bezier | defLinear | defEaseInOut )  )?
116 ) >
117 <!ATTLIST bonePosition
118     xPos CDATA #REQUIRED
119     yPos CDATA #REQUIRED
120     zPos CDATA #REQUIRED
121 >
122
123
124 <!--
125     bone rotation [Quaternion]
126 -->
127 <!ELEMENT boneRotQuat (
128     ( bezier | defLinear | defEaseInOut )?
129 ) >
130 <!ATTLIST boneRotQuat
131     qx CDATA #REQUIRED
132     qy CDATA #REQUIRED
133     qz CDATA #REQUIRED
134     qw CDATA #REQUIRED
135 >
136
137
138 <!--
139     bone rotation [YXZ-Euler]
140     degree but not radian
141 -->
142 <!ELEMENT boneRotEyxz (
143     ( bezier | defLinear | defEaseInOut )?
144 ) >
145 <!ATTLIST boneRotEyxz
146     xDeg CDATA #REQUIRED
147     yDeg CDATA #REQUIRED
148     zDeg CDATA #REQUIRED
149 >
150
151
152 <!--
153     morph sequence
154 -->
155 <!ELEMENT morphSequence (
156     morphPart*
157 ) >
158
159
160 <!--
161     morph part grouped by morph-name
162 -->
163 <!ELEMENT morphPart (
164     morphMotion*
165 ) >
166 <!ATTLIST morphPart name CDATA #REQUIRED>
167
168
169 <!--
170     morph motion
171     flex : morph flexible value. [0.0-1.0]
172 -->
173 <!ELEMENT morphMotion EMPTY >
174 <!ATTLIST morphMotion
175     frame CDATA #REQUIRED
176     flex  CDATA #REQUIRED
177 >
178
179
180 <!--
181     camera sequence
182 -->
183 <!ELEMENT cameraSequence (
184     cameraMotion*
185 ) >
186
187
188 <!--
189     camera motion
190 -->
191 <!ELEMENT cameraMotion (
192     cameraTarget, cameraRotation, cameraRange, projection
193 ) >
194 <!ATTLIST cameraMotion
195     frame          CDATA #REQUIRED
196     hasPerspective ( true | false | 1 | 0 ) "true"
197 >
198
199
200 <!--
201     camera target position
202     with XYZ *3 interpolations.
203 -->
204 <!ELEMENT cameraTarget (
205     ( ( bezier | defLinear | defEaseInOut ),
206       ( bezier | defLinear | defEaseInOut ),
207       ( bezier | defLinear | defEaseInOut )  )?
208 ) >
209 <!ATTLIST cameraTarget
210     xPos CDATA #REQUIRED
211     yPos CDATA #REQUIRED
212     zPos CDATA #REQUIRED
213 >
214
215
216 <!--
217     camera-rotation around camera-target
218       with polar-coordinates parameters.
219
220     xRad = -radian(UI_X) [latitude]
221     yRad =  radian(UI_Y) [longitude]
222     zRad =  radian(UI_Z) [roll]
223 -->
224 <!ELEMENT cameraRotation (
225     ( bezier | defLinear | defEaseInOut )?
226 ) >
227 <!ATTLIST cameraRotation
228     xRad CDATA #REQUIRED
229     yRad CDATA #REQUIRED
230     zRad CDATA #REQUIRED
231 >
232
233
234 <!--
235     camera range.
236     sign was negated from UI_RANGE.
237 -->
238 <!ELEMENT cameraRange (
239     ( bezier | defLinear | defEaseInOut )?
240 ) >
241 <!ATTLIST cameraRange range CDATA #REQUIRED >
242
243
244 <!--
245     screen-projection data.
246     vertDeg : vertical screen-projection angle by degree.
247 -->
248 <!ELEMENT projection (
249     ( bezier | defLinear | defEaseInOut )?
250 ) >
251 <!ATTLIST projection vertDeg CDATA #REQUIRED >
252
253
254 <!--
255     luminous sequence
256 -->
257 <!ELEMENT luminousSequence (
258     luminousAct*
259 ) >
260
261
262 <!--
263     luminous act
264 -->
265 <!ELEMENT luminousAct (
266     lumiColor, lumiDirection
267 ) >
268 <!ATTLIST luminousAct frame CDATA #REQUIRED >
269
270
271 <!--
272     luminous color by RGB color space.
273     color component value. [0.0-1.0]
274 -->
275 <!ELEMENT lumiColor EMPTY >
276 <!ATTLIST lumiColor
277     rCol CDATA #REQUIRED
278     gCol CDATA #REQUIRED
279     bCol CDATA #REQUIRED
280 >
281
282
283 <!--
284     luminous direction by vector
285     vector component [0.0-1.0]
286 -->
287 <!ELEMENT lumiDirection EMPTY >
288 <!ATTLIST lumiDirection
289     xVec CDATA #REQUIRED
290     yVec CDATA #REQUIRED
291     zVec CDATA #REQUIRED
292 >
293
294
295 <!--
296     shadow sequence
297 -->
298 <!ELEMENT shadowSequence (
299     shadowAct*
300 ) >
301
302
303 <!--
304     shadow act
305
306     mode : type of shadow
307     + NONE   : no self-shadow
308     + MODE_1 : reduce shadow-quality suddenly at range
309     + MODE_2 : reduce shadow-quality gradually with range
310
311     rawParam : shadow range raw value.
312     UI_VALUE = EFFECTIVE_RANGE * 100 ???
313     rawParam = 0.1 - (UI_VALUE / 1.0E+5)
314
315     UI_VALUE:0    => rawParam:0.1
316     UI_VALUE:8875 => rawParam:0.01125
317     UI_VALUE:9999 => rawParam:1.0E-5
318 -->
319 <!ELEMENT shadowAct EMPTY >
320 <!ATTLIST shadowAct
321     frame CDATA #REQUIRED
322     mode ( NONE | MODE_1 | MODE_2 ) #REQUIRED
323     rawParam CDATA #REQUIRED
324 >
325
326
327 <!-- EOF -->