1 <?xml version="1.0" encoding="UTF-8" ?>
5 motion-data(*.vmd) on XML
8 License : The MIT License
9 Copyright(c) 2011 MikuToga Partners
11 SYSTEM ID: http://mikutoga.sourceforge.jp/xml/dtd/vmdxml-110820.dtd
21 ( modelName, boneMotionSequence, morphSequence )
22 | ( cameraSequence, luminousSequence, shadowSequence )
27 xmlns:xsi CDATA #IMPLIED
28 xsi:schemaLocation CDATA #IMPLIED
29 version CDATA #FIXED "110820"
34 Meta-information of model.
36 but, some meta-name has recommended usage.
37 + "generator" (Generator application name)
38 + "siteURL" (Website URL)
40 <!ELEMENT meta EMPTY >
43 content CDATA #REQUIRED
48 bezier cubic curve parameters for interpolation.
49 p0=(0, 0) p3=(127, 127) [implicit points]
50 P1 and P2 points are required.
52 <!ELEMENT bezier EMPTY >
62 default linear bezier curve for interpolation.
63 p0=(0, 0) p1=(20, 20) p2=(107, 107) p3=(127, 127)
65 <!ELEMENT defLinear EMPTY >
69 default ease-in-out bezier curve for interpolation.
70 p0=(0, 0) p1=(64, 0) p2=(64, 127) p3=(127, 127)
72 <!ELEMENT defEaseInOut EMPTY >
78 <!ELEMENT modelName EMPTY>
79 <!ATTLIST modelName name CDATA #REQUIRED>
85 <!ELEMENT boneMotionSequence (
91 bone part grouped by bone-name
96 <!ATTLIST bonePart name CDATA #REQUIRED>
102 <!ELEMENT boneMotion (
103 bonePosition?, ( boneRotQuat | boneRotEyxz )
105 <!ATTLIST boneMotion frame CDATA #REQUIRED>
110 with XYZ *3 interpolations.
112 <!ELEMENT bonePosition (
113 ( ( bezier | defLinear | defEaseInOut ),
114 ( bezier | defLinear | defEaseInOut ),
115 ( bezier | defLinear | defEaseInOut ) )?
117 <!ATTLIST bonePosition
125 bone rotation [Quaternion]
127 <!ELEMENT boneRotQuat (
128 ( bezier | defLinear | defEaseInOut )?
130 <!ATTLIST boneRotQuat
139 bone rotation [YXZ-Euler]
140 degree but not radian
142 <!ELEMENT boneRotEyxz (
143 ( bezier | defLinear | defEaseInOut )?
145 <!ATTLIST boneRotEyxz
155 <!ELEMENT morphSequence (
161 morph part grouped by morph-name
163 <!ELEMENT morphPart (
166 <!ATTLIST morphPart name CDATA #REQUIRED>
171 flex : morph flexible value. [0.0-1.0]
173 <!ELEMENT morphMotion EMPTY >
174 <!ATTLIST morphMotion
175 frame CDATA #REQUIRED
183 <!ELEMENT cameraSequence (
191 <!ELEMENT cameraMotion (
192 cameraTarget, cameraRotation, cameraRange, projection
194 <!ATTLIST cameraMotion
195 frame CDATA #REQUIRED
196 hasPerspective ( true | false | 1 | 0 ) "true"
201 camera target position
202 with XYZ *3 interpolations.
204 <!ELEMENT cameraTarget (
205 ( ( bezier | defLinear | defEaseInOut ),
206 ( bezier | defLinear | defEaseInOut ),
207 ( bezier | defLinear | defEaseInOut ) )?
209 <!ATTLIST cameraTarget
217 camera-rotation around camera-target
218 with polar-coordinates parameters.
220 xRad = -radian(UI_X) [latitude]
221 yRad = radian(UI_Y) [longitude]
222 zRad = radian(UI_Z) [roll]
224 <!ELEMENT cameraRotation (
225 ( bezier | defLinear | defEaseInOut )?
227 <!ATTLIST cameraRotation
236 sign was negated from UI_RANGE.
238 <!ELEMENT cameraRange (
239 ( bezier | defLinear | defEaseInOut )?
241 <!ATTLIST cameraRange range CDATA #REQUIRED >
245 screen-projection data.
246 vertDeg : vertical screen-projection angle by degree.
248 <!ELEMENT projection (
249 ( bezier | defLinear | defEaseInOut )?
251 <!ATTLIST projection vertDeg CDATA #REQUIRED >
257 <!ELEMENT luminousSequence (
265 <!ELEMENT luminousAct (
266 lumiColor, lumiDirection
268 <!ATTLIST luminousAct frame CDATA #REQUIRED >
272 luminous color by RGB color space.
273 color component value. [0.0-1.0]
275 <!ELEMENT lumiColor EMPTY >
284 luminous direction by vector
285 vector component [0.0-1.0]
287 <!ELEMENT lumiDirection EMPTY >
288 <!ATTLIST lumiDirection
298 <!ELEMENT shadowSequence (
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
311 rawParam : shadow range raw value.
312 UI_VALUE = EFFECTIVE_RANGE * 100 ???
313 rawParam = 0.1 - (UI_VALUE / 1.0E+5)
315 UI_VALUE:0 => rawParam:0.1
316 UI_VALUE:8875 => rawParam:0.01125
317 UI_VALUE:9999 => rawParam:1.0E-5
319 <!ELEMENT shadowAct EMPTY >
321 frame CDATA #REQUIRED
322 mode ( NONE | MODE_1 | MODE_2 ) #REQUIRED
323 rawParam CDATA #REQUIRED