1 <?xml version="1.0" encoding="UTF-8" ?>
\r
5 model-data(*.pmd) on XML
\r
8 License : The MIT License
\r
9 Copyright(c) 2010 MikuToga Partners
\r
11 SYSTEM ID: http://mikutoga.sourceforge.jp/xml/dtd/pmdxml-101009.dtd
\r
16 <!ELEMENT pmdModel (
\r
17 i18nName*, description+, license*, credits*, meta*,
\r
31 xmlns CDATA #IMPLIED
\r
32 xmlns:xsi CDATA #IMPLIED
\r
33 xsi:schemaLocation CDATA #IMPLIED
\r
34 schemaVersion CDATA #FIXED "100923"
\r
35 name CDATA #REQUIRED
\r
39 <!-- Multilingual name. -->
\r
40 <!ELEMENT i18nName EMPTY>
\r
42 lang CDATA #REQUIRED
\r
43 name CDATA #REQUIRED
\r
47 <!-- Break line. -->
\r
51 <!-- Description note about model. -->
\r
52 <!ELEMENT description (#PCDATA | br)* >
\r
53 <!ATTLIST description
\r
55 xml:space CDATA #FIXED "preserve"
\r
59 <!-- License term of usage. -->
\r
60 <!ELEMENT license (#PCDATA | br)* >
\r
63 xml:space CDATA #FIXED "preserve"
\r
67 <!-- Credits for someone. -->
\r
68 <!ELEMENT credits (#PCDATA | br)* >
\r
71 xml:space CDATA #FIXED "preserve"
\r
76 Meta-information of model.
\r
78 but, some meta-name has recommended usage.
\r
79 + "generator" (Generator application name)
\r
80 + "siteURL" (Website URL)
\r
81 + "imageURL" (Thumbnail image URL)
\r
83 <!ELEMENT meta EMPTY>
\r
85 name CDATA #REQUIRED
\r
86 content CDATA #REQUIRED
\r
92 All visual things can be tracked from here.
\r
94 <!ELEMENT materialList (material)* >
\r
98 Material definition.
\r
99 Colors, shading, any other definitions.
\r
101 <!ELEMENT material (
\r
111 name CDATA #IMPLIED
\r
112 showEdge CDATA #REQUIRED
\r
113 surfaceGroupIdRef CDATA #REQUIRED
\r
117 <!-- Diffuse color definition. -->
\r
118 <!ELEMENT diffuse EMPTY>
\r
123 alpha CDATA #REQUIRED
\r
127 <!-- Specular color definition. -->
\r
128 <!ELEMENT specular EMPTY>
\r
133 shininess CDATA #REQUIRED
\r
137 <!-- Ambient color definition. -->
\r
138 <!ELEMENT ambient EMPTY>
\r
146 <!-- Reference for Toon-image. -->
\r
147 <!ELEMENT toon EMPTY>
\r
149 toonFileIdRef CDATA #REQUIRED
\r
153 <!-- Texture file information. -->
\r
154 <!ELEMENT textureFile EMPTY>
\r
155 <!ATTLIST textureFile
\r
156 winFileName CDATA #REQUIRED
\r
160 <!-- Sphere-map file information. -->
\r
161 <!ELEMENT spheremapFile EMPTY>
\r
162 <!ATTLIST spheremapFile
\r
163 winFileName CDATA #REQUIRED
\r
167 <!-- Toon-file mappings. -->
\r
168 <!ELEMENT toonMap (toonDef)* >
\r
171 <!-- Toon-file information. -->
\r
172 <!ELEMENT toonDef EMPTY>
\r
174 toonFileId CDATA #REQUIRED
\r
175 index CDATA #REQUIRED
\r
176 winFileName CDATA #REQUIRED
\r
180 <!-- List of bone information. -->
\r
181 <!ELEMENT boneList (bone)* >
\r
184 <!-- Bone definition. -->
\r
188 (rotationRatio | ikBone)?,
\r
192 name CDATA #REQUIRED
\r
193 boneId CDATA #REQUIRED
\r
209 <!-- position information. -->
\r
210 <!ELEMENT position EMPTY>
\r
218 <!-- Relationship-info between bones. -->
\r
219 <!ELEMENT boneChain EMPTY>
\r
220 <!ATTLIST boneChain
\r
221 prevBoneIdRef CDATA #IMPLIED
\r
222 nextBoneIdRef CDATA #IMPLIED
\r
226 <!-- Rotation ratio between Linked-rotationed bones. -->
\r
227 <!ELEMENT rotationRatio EMPTY>
\r
228 <!ATTLIST rotationRatio
\r
229 ratio CDATA #REQUIRED
\r
233 <!-- Reference to IK-Bone. -->
\r
234 <!ELEMENT ikBone EMPTY>
\r
236 boneIdRef CDATA #REQUIRED
\r
240 <!-- List of Bone-group. -->
\r
241 <!ELEMENT boneGroupList (boneGroup)* >
\r
244 <!-- Bone-group. -->
\r
245 <!ELEMENT boneGroup (i18nName*, boneGroupMember*) >
\r
246 <!ATTLIST boneGroup
\r
247 name CDATA #REQUIRED
\r
251 <!-- Member of Bone-group. -->
\r
252 <!ELEMENT boneGroupMember EMPTY>
\r
253 <!ATTLIST boneGroupMember
\r
254 boneIdRef CDATA #REQUIRED
\r
258 <!-- List of IK chain. -->
\r
259 <!ELEMENT ikChainList (ikChain)* >
\r
262 <!-- IK chained bones definition. -->
\r
263 <!ELEMENT ikChain (chainOrder)+ >
\r
265 ikBoneIdRef CDATA #REQUIRED
\r
266 recursiveDepth CDATA #REQUIRED
\r
267 weight CDATA #REQUIRED
\r
271 <!-- Part of IK chained bones. -->
\r
272 <!ELEMENT chainOrder EMPTY>
\r
273 <!ATTLIST chainOrder
\r
274 boneIdRef CDATA #REQUIRED
\r
278 <!-- List of morphing definition. -->
\r
279 <!ELEMENT morphList (morph)* >
\r
282 <!-- Morphing definition. -->
\r
283 <!ELEMENT morph (i18nName*, morphVertex*) >
\r
285 name CDATA #REQUIRED
\r
295 <!-- Morphing vertex information. -->
\r
296 <!ELEMENT morphVertex EMPTY>
\r
297 <!ATTLIST morphVertex
\r
298 vtxIdRef CDATA #REQUIRED
\r
299 xOff CDATA #REQUIRED
\r
300 yOff CDATA #REQUIRED
\r
301 zOff CDATA #REQUIRED
\r
305 <!-- list of Rigid-body definition. -->
\r
306 <!ELEMENT rigidList (rigid)* >
\r
309 <!-- Rigid-body definition. -->
\r
313 (rigidShapeSphere | rigidShapeBox | rigidShapeCapsule),
\r
320 name CDATA #REQUIRED
\r
321 rigidId CDATA #REQUIRED
\r
330 <!-- Referenced Bone from Rigid-body. -->
\r
331 <!ELEMENT linkedBone EMPTY>
\r
332 <!ATTLIST linkedBone
\r
333 boneIdRef CDATA #REQUIRED
\r
337 <!-- Sphere shape of Rigid-body. -->
\r
338 <!ELEMENT rigidShapeSphere EMPTY>
\r
339 <!ATTLIST rigidShapeSphere
\r
340 radius CDATA #REQUIRED
\r
344 <!-- Box shape of Rigid-body. -->
\r
345 <!ELEMENT rigidShapeBox EMPTY>
\r
346 <!ATTLIST rigidShapeBox
\r
347 width CDATA #REQUIRED
\r
348 height CDATA #REQUIRED
\r
349 depth CDATA #REQUIRED
\r
353 <!-- Capsule shape of Rigid-body. -->
\r
354 <!ELEMENT rigidShapeCapsule EMPTY>
\r
355 <!ATTLIST rigidShapeCapsule
\r
356 height CDATA #REQUIRED
\r
357 radius CDATA #REQUIRED
\r
361 <!-- Rotaion information by radian. -->
\r
362 <!ELEMENT radRotation EMPTY>
\r
363 <!ATTLIST radRotation
\r
364 xRad CDATA #REQUIRED
\r
365 yRad CDATA #REQUIRED
\r
366 zRad CDATA #REQUIRED
\r
370 <!-- Dynamics parameters. -->
\r
371 <!ELEMENT dynamics EMPTY>
\r
373 mass CDATA #REQUIRED
\r
374 dampingPosition CDATA #REQUIRED
\r
375 dampingRotation CDATA #REQUIRED
\r
376 restitution CDATA #REQUIRED
\r
377 friction CDATA #REQUIRED
\r
381 <!-- Reference for non-collision rigid-group. -->
\r
382 <!ELEMENT throughRigidGroup EMPTY>
\r
383 <!ATTLIST throughRigidGroup
\r
384 rigidGroupIdRef CDATA #REQUIRED
\r
388 <!-- List of Rigid-body group. -->
\r
389 <!ELEMENT rigidGroupList (rigidGroup)* >
\r
392 <!-- Rigid-body group. -->
\r
393 <!ELEMENT rigidGroup (rigidGroupMember)* >
\r
394 <!ATTLIST rigidGroup
\r
395 rigidGroupId CDATA #REQUIRED
\r
399 <!-- Member of Rigid-body group. -->
\r
400 <!ELEMENT rigidGroupMember EMPTY>
\r
401 <!ATTLIST rigidGroupMember
\r
402 rigidIdRef CDATA #REQUIRED
\r
406 <!-- List of joint definition. -->
\r
407 <!ELEMENT jointList (joint)* >
\r
410 <!-- Joint definition. -->
\r
414 position, limitPosition,
\r
415 radRotation, limitRotation,
\r
420 name CDATA #REQUIRED
\r
424 <!-- Jointed-bones information. -->
\r
425 <!ELEMENT jointedRigidPair EMPTY>
\r
426 <!ATTLIST jointedRigidPair
\r
427 rigidIdRef2 CDATA #REQUIRED
\r
428 rigidIdRef1 CDATA #REQUIRED
\r
432 <!-- Limit of Position. -->
\r
433 <!ELEMENT limitPosition EMPTY>
\r
434 <!ATTLIST limitPosition
\r
435 xFrom CDATA #REQUIRED
\r
436 xTo CDATA #REQUIRED
\r
437 yFrom CDATA #REQUIRED
\r
438 yTo CDATA #REQUIRED
\r
439 zFrom CDATA #REQUIRED
\r
440 zTo CDATA #REQUIRED
\r
444 <!-- Limit of Rotation. -->
\r
445 <!ELEMENT limitRotation EMPTY>
\r
446 <!ATTLIST limitRotation
\r
447 xFrom CDATA #REQUIRED
\r
448 xTo CDATA #REQUIRED
\r
449 yFrom CDATA #REQUIRED
\r
450 yTo CDATA #REQUIRED
\r
451 zFrom CDATA #REQUIRED
\r
452 zTo CDATA #REQUIRED
\r
456 <!-- Elastic position of joint. -->
\r
457 <!ELEMENT elasticPosition EMPTY>
\r
458 <!ATTLIST elasticPosition
\r
465 <!-- Elastic rotation of joint by degree. -->
\r
466 <!ELEMENT elasticRotation EMPTY>
\r
467 <!ATTLIST elasticRotation
\r
468 xDeg CDATA #REQUIRED
\r
469 yDeg CDATA #REQUIRED
\r
470 zDeg CDATA #REQUIRED
\r
474 <!-- List of surface group. -->
\r
475 <!ELEMENT surfaceGroupList (surfaceGroup)* >
\r
478 <!-- Surface group. -->
\r
479 <!ELEMENT surfaceGroup (surface)* >
\r
480 <!ATTLIST surfaceGroup
\r
481 surfaceGroupId CDATA #REQUIRED
\r
485 <!-- Each surface with Triangle. -->
\r
486 <!ELEMENT surface EMPTY>
\r
488 vtxIdRef1 CDATA #REQUIRED
\r
489 vtxIdRef2 CDATA #REQUIRED
\r
490 vtxIdRef3 CDATA #REQUIRED
\r
494 <!-- List of vertex. -->
\r
495 <!ELEMENT vertexList (vertex)* >
\r
498 <!-- Vertex definition. -->
\r
499 <!ELEMENT vertex (position, normal, uvMap, skinning) >
\r
501 vtxId CDATA #REQUIRED
\r
502 showEdge CDATA #REQUIRED
\r
506 <!-- Normal vector definition. -->
\r
507 <!ELEMENT normal EMPTY>
\r
515 <!-- UV-mapping information. -->
\r
516 <!ELEMENT uvMap EMPTY>
\r
523 <!-- Skinning definition from vertex to bone. -->
\r
524 <!ELEMENT skinning EMPTY>
\r
526 boneIdRef1 CDATA #REQUIRED
\r
527 boneIdRef2 CDATA #REQUIRED
\r
528 weightBalance CDATA #REQUIRED
\r