学习骨骼动画中,写出了BVH解析器但是不知道对其中的数据如何处理。读了很多网上的文章,大概对框架有了了解,可是对我这样的懒人,细节不清楚还是无从下手,虽为了顺利将BVH文件转化为OGRE能够使用的.skeleton文件,利用OGRE给的OGREXMLConverter,转换了OGRE中的robot.skeleton文件,如下。
<skeleton blendmode="average">
<bones>
<bone id="0" name="Joint1">
<position x="0" y="51.5913" z="-0.0159202" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="1" name="Joint2">
<position x="1.25659" y="-6.37357" z="-3.36696" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="2" name="Joint3">
<position x="-1.37845" y="-21.1802" z="-4.04035" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="3" name="Joint4">
<position x="-0.132187" y="-22.3265" z="-2.02017" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="4" name="Joint5">
<position x="8.93628" y="-0.380359" z="0" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="5" name="Joint6">
<position x="1.25659" y="-6.59769" z="3.81589" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="6" name="Joint7">
<position x="-1.37845" y="-20.5078" z="3.59142" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="7" name="Joint8">
<position x="-0.143204" y="-22.8124" z="2.24464" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="8" name="Joint9">
<position x="8.93972" y="-0.168111" z="0.224463" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="9" name="Joint10">
<position x="2.59993" y="7.38522" z="0.224464" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="10" name="Joint11">
<position x="-2.60406" y="10.1826" z="0.224464" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="11" name="Joint12">
<position x="0" y="10.5338" z="0" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="12" name="Joint13">
<position x="0" y="-1.12062" z="-14.8146" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="13" name="Joint14">
<position x="-3.68851" y="-12.335" z="-0.897854" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="14" name="Joint15">
<position x="15.6188" y="-13.2904" z="-6.50945" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="15" name="Joint16">
<position x="0" y="-0.896494" z="13.2434" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="16" name="Joint17">
<position x="-3.68851" y="-12.7833" z="2.24464" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="17" name="Joint18">
<position x="15.6188" y="-13.5145" z="6.73391" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
</bones>
<bonehierarchy>
<boneparent bone="Joint2" parent="Joint1" />
<boneparent bone="Joint3" parent="Joint2" />
<boneparent bone="Joint4" parent="Joint3" />
<boneparent bone="Joint5" parent="Joint4" />
<boneparent bone="Joint6" parent="Joint1" />
<boneparent bone="Joint7" parent="Joint6" />
<boneparent bone="Joint8" parent="Joint7" />
<boneparent bone="Joint9" parent="Joint8" />
<boneparent bone="Joint10" parent="Joint1" />
<boneparent bone="Joint11" parent="Joint10" />
<boneparent bone="Joint12" parent="Joint11" />
<boneparent bone="Joint13" parent="Joint11" />
<boneparent bone="Joint14" parent="Joint13" />
<boneparent bone="Joint15" parent="Joint14" />
<boneparent bone="Joint16" parent="Joint11" />
<boneparent bone="Joint17" parent="Joint16" />
<boneparent bone="Joint18" parent="Joint17" />
</bonehierarchy>
<animations>
<animation name="Die" length="0.541667">
<tracks>
<track bone="Joint1">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
<keyframe time="0.0833333">
<translate x="-10.3369" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
<keyframe time="0.166667">
<translate x="-45.4042" y="-11.4903" z="0" />
<rotate angle="0.858638">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.25">
<translate x="-71.4441" y="-45.7615" z="0" />
<rotate angle="1.51744">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.291667">
<translate x="-71.4121" y="-45.1504" z="0" />
<rotate angle="1.51744">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.333333">
<translate x="-73.377" y="-46.4263" z="0" />
<rotate angle="1.51744">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.5">
<translate x="-82.8014" y="-45.1663" z="0" />
<rotate angle="1.51744">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.541667">
<translate x="-82.8014" y="-45.1663" z="0" />
<rotate angle="1.51744">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint2">
<keyframes>
<keyframe time="0">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.0761765">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.0833333">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.19435">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.25">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.102357">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.291667">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.102357">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint3">
<keyframes>
<keyframe time="0">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.0436304">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.25">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.375247">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.291667">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.375247">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.5">
<translate x="10.7524" y="0.283351" z="0" />
<rotate angle="0.0162092">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.541667">
<translate x="10.7524" y="0.283351" z="0" />
<rotate angle="0.0162092">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint4">
<keyframes>
<keyframe time="0">
<translate x="0.0512495" y="0.716218" z="0" />
<rotate angle="0.101159">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.0833333">
<translate x="0.0512495" y="0.716218" z="0" />
<rotate angle="0.265361">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint5">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint6">
<keyframes>
<keyframe time="0">
<translate x="-0.459241" y="-1.37253" z="0" />
<rotate angle="0.169814">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.0833333">
<translate x="-0.459241" y="-1.37253" z="0" />
<rotate angle="0.44034">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.25">
<translate x="-0.459241" y="-1.37253" z="0" />
<rotate angle="0.143634">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.291667">
<translate x="-0.459241" y="-1.37253" z="0" />
<rotate angle="0.143634">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint7">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0.165806">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.25">
<translate x="0" y="0" z="0" />
<rotate angle="0.253074">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.291667">
<translate x="0" y="0" z="0" />
<rotate angle="0.253074">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.5">
<translate x="5.88073" y="-0.625497" z="0" />
<rotate angle="0.105966">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.541667">
<translate x="5.88073" y="-0.625497" z="0" />
<rotate angle="0.105966">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint8">
<keyframes>
<keyframe time="0">
<translate x="-2.08179" y="0.980345" z="0" />
<rotate angle="0.0128075">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.0833333">
<translate x="-2.08179" y="0.980345" z="0" />
<rotate angle="0.379318">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint9">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint10">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0.0959959">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.0833333">
<translate x="0" y="0" z="0" />
<rotate angle="0.471242">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint11">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0.020403">
<axis x="0" y="1" z="0" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint12">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint13">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0.12795">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.0833333">
<translate x="0" y="0" z="0" />
<rotate angle="0.354842">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint14">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0.200714">
<axis x="0" y="-1" z="0" />
</rotate>
</keyframe>
<keyframe time="0.166667">
<translate x="0" y="0" z="0" />
<rotate angle="0.289853">
<axis x="-0.0725245" y="-0.689929" z="0.720235" />
</rotate>
</keyframe>
<keyframe time="0.25">
<translate x="0" y="0" z="0" />
<rotate angle="0.650294">
<axis x="0.0956146" y="-0.2987" z="-0.949545" />
</rotate>
</keyframe>
<keyframe time="0.291667">
<translate x="0" y="0" z="0" />
<rotate angle="0.650294">
<axis x="0.0956146" y="-0.2987" z="-0.949545" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint15">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint16">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0.0664918">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.0833333">
<translate x="0" y="0" z="0" />
<rotate angle="0.293385">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint17">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0.235619">
<axis x="0" y="1" z="0" />
</rotate>
</keyframe>
<keyframe time="0.166667">
<translate x="0" y="0" z="0" />
<rotate angle="0.314944">
<axis x="0.078354" y="0.745389" z="0.662009" />
</rotate>
</keyframe>
<keyframe time="0.25">
<translate x="0" y="0" z="0" />
<rotate angle="0.66153">
<axis x="-0.110335" y="0.344685" z="-0.932212" />
</rotate>
</keyframe>
<keyframe time="0.291667">
<translate x="0" y="0" z="0" />
<rotate angle="0.66153">
<axis x="-0.110335" y="0.344685" z="-0.932212" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint18">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
</keyframes>
</track>
</tracks>
</animation>
<animation name="Idle" length="2.83333">
<tracks>
<track bone="Joint1">
<keyframes>
<keyframe time="0">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
<keyframe time="0.333333">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
<keyframe time="0.75">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
<keyframe time="1.375">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
<keyframe time="2">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
<keyframe time="2.20833">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
<keyframe time="2.83333">
<translate x="0" y="0" z="0" />
<rotate angle="0">
<axis x="1" y="0" z="0" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint2">
<keyframes>
<keyframe time="0">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.0761765">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.333333">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.0761765">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.75">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.0761765">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="1.375">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.0761765">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="2">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.0761765">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="2.20833">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.0761765">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="2.83333">
<translate x="-0.244575" y="-0.945701" z="0" />
<rotate angle="0.0761765">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint3">
<keyframes>
<keyframe time="0">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.0436304">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.333333">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.0436358">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="0.75">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.0436358">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="1.375">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.0436358">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="2">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.0436358">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="2.20833">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.0436358">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
<keyframe time="2.83333">
<translate x="4.83928" y="0.187507" z="0" />
<rotate angle="0.0436304">
<axis x="0" y="0" z="-1" />
</rotate>
</keyframe>
</keyframes>
</track>
<track bone="Joint4">
<keyframes>
<keyframe time="0">
<translate x="0.0512495" y="0.716218" z="0" />
<rotate angle="0.101159">
<axis x="0" y="0" z="1" />
</rotate>
</keyframe>
<keyframe time="0.333333">
<translate x="0.0512495" y="0.716218" z="0" />
<rotate angle="0.101159">
<axis x="0" y="0" z="1" />