Virtual Puppet Mapping

VPM files contain hard and fast mappings between a model and its control points. That is, models have nodes, or bones, and each one can move in different ways. For instance, a hip bone can rotate along all three axes. The VPM file allows one to dictate which axes and translation lines are valid and also how far in each direction can they move using min and max values. Here is an example of a VPM:

<?xml version="1.0" encoding="ISO-8859-1"?>
<vpm name="Whole Damn Family" type="model" model="wdf.ltb" texture="wdf512.dtx" icon="wdf.bmp">
<joint id="0" node="MomNeck" min="-90.0" max="90.0" vector="0.0,1.0,0.0" action="rotate" desc="MomNeck Forward/Back" />
<joint id="1" node="MomNeck" min="-90.0" max="90.0" vector="1.0,0.0,0.0" action="rotate" desc="MomNeck Left/Right" />
<joint id="2" node="MomNeck" min="-90.0" max="90.0" vector="0.0,0.0,1.0" action="rotate" desc="MomNeck Lean Left/Right" />
<animation id="0" name="Toggle Still" />
<animation id="1" name="Toggle Walk" />
</vpm>