Results 1 to 2 of 2

Thread: Skin not binding to Deformation-Rig

  1. #1
    Junior Member
    Join Date
    Aug 2010
    Posts
    2

    Skin not binding to Deformation-Rig

    I want to export rigged models from my application to collada. It's working fine for most of the data, but I can't seem to bind the skin to the deformation-rig.

    Example from my exporter:

    Code :
    <?xml version="1.0" encoding="utf-8"?>
    <COLLADA version="1.4.1">
      <asset>
        <contributor>
          <authoring_tool>Tamschi's Collada Exporter</authoring_tool>
        </contributor>
        <up_axis>Y_UP</up_axis>
      </asset>
      <library_images>
        <image id="baseTexture0" name="baseTexture0" depth="1">
          <init_from>./ButterflyBlue01.tex.dds</init_from>
        </image>
        <image id="bumpTexture0" name="bumpTexture0" depth="1">
          <init_from>./Butterfly01BMP.tex.dds</init_from>
        </image>
      </library_images>
      <library_materials>
        <material id="shader0" name="shader0">
          <instance_effect url="#shader0-effect" />
        </material>
      </library_materials>
      <library_effects>
        <effect id="shader0-effect">
          <profile_COMMON>
            <technique>
              <newparam sid="baseTexture0-surface">
                <surface type="2D">
                  <init_from>baseTexture0</init_from>
                  <format>A8R8G8B8</format>
                </surface>
              </newparam>
              <newparam sid="baseTexture0-sampler">
                <sampler2D>
                  <source>baseTexture0-surface</source>
                  <minfilter>LINEAR_MIPMAP_LINEAR</minfilter>
                  <magfilter>LINEAR</magfilter>
                </sampler2D>
              </newparam>
              <newparam sid="bumpTexture0-surface">
                <surface type="2D">
                  <init_from>bumpTexture0</init_from>
                  <format>A8R8G8B8</format>
                </surface>
              </newparam>
              <newparam sid="bumpTexture0-sampler">
                <sampler2D>
                  <source>bumpTexture0-surface</source>
                  <minfilter>LINEAR_MIPMAP_LINEAR</minfilter>
                  <magfilter>LINEAR</magfilter>
                </sampler2D>
              </newparam>
              <phong>
                <diffuse>
                  <texture texture="baseTexture0-sampler" texcoord="TEX0" />
                </diffuse>
              </phong>
            </technique>
          </profile_COMMON>
        </effect>
      </library_effects>
      <library_geometries>
        <geometry id="_TQmesh" name="_TQmesh">
          <mesh>
            <source id="TQmesh-positions" name="position">
              <float_array id="TQmesh-positions-array" count="48">2.121403E-11 0.00127557 0.08466303 3.373129E-09 0.001275666 -0.0846631 0.09211792 0.00127557 0.08466303 0.09211792 0.001275666 -0.08466312 -0.09211792 0.00127557 0.08466303 -0.09211792 0.001275666 -0.08466311 2.121403E-11 0.00127557 0.08466303 3.373129E-09 0.001275666 -0.0846631 -1.181289E-11 0.003620595 0.08466303 0.09211792 0.003620595 0.08466303 -1.118049E-09 0.003620691 -0.08466312 0.09211792 0.003620691 -0.08466312 -0.09211792 0.003620595 0.08466303 -1.181289E-11 0.003620595 0.08466303 -0.09211792 0.003620691 -0.08466311 -1.118049E-09 0.003620691 -0.08466312 </float_array>
              <technique_common>
                <accessor count="16" offset="0" source="#TQmesh-positions-array" stride="3">
                  <param name="X" type="float" />
                  <param name="Y" type="float" />
                  <param name="Z" type="float" />
                </accessor>
              </technique_common>
            </source>
            <source id="TQmesh-normals" name="normal">
              <float_array id="TQmesh-normals-array" count="48">-1.263734E-09 -1 -5.639967E-07 -1.685034E-09 -1 -5.639967E-07 -1.895692E-09 -1 -5.641112E-07 -1.263855E-09 -1 -5.644549E-07 4.565363E-14 -1 -5.64455E-07 -6.318365E-10 -1 -5.641112E-07 -1.263734E-09 -1 -5.639967E-07 -1.685034E-09 -1 -5.639967E-07 0 1 5.651425E-07 -2.285462E-14 1 5.651425E-07 0 1 5.651425E-07 0 1 5.651424E-07 0 1 5.651426E-07 0 1 5.651425E-07 2.285462E-14 1 5.651425E-07 0 1 5.651425E-07 </float_array>
              <technique_common>
                <accessor count="16" offset="0" source="#TQmesh-normals-array" stride="3">
                  <param name="X" type="float" />
                  <param name="Y" type="float" />
                  <param name="Z" type="float" />
                </accessor>
              </technique_common>
            </source>
            <source id="TQmesh-texcoords" name="texcoords">
              <float_array id="TQmesh-texcoords-array" count="32">0.626855 0.9901527 0.626855 0.01396233 0.07497798 0.9901527 0.07497798 0.01396233 0.074978 0.9901527 0.074978 0.01396233 0.626855 0.9901527 0.626855 0.01396233 0.626855 0.9901527 0.07497798 0.9901527 0.626855 0.01396233 0.07497798 0.01396233 0.074978 0.9901527 0.626855 0.9901527 0.074978 0.01396233 0.626855 0.01396233 </float_array>
              <technique_common>
                <accessor count="16" offset="0" source="#TQmesh-texcoords-array" stride="2">
                  <param name="S" type="float" />
                  <param name="T" type="float" />
                </accessor>
              </technique_common>
            </source>
            <vertices id="TQmesh-vertices">
              <input semantic="POSITION" source="#TQmesh-positions" />
            </vertices>
            <triangles count="8" material="_shader0">
              <input offset="0" semantic="VERTEX" source="#TQmesh-vertices" />
              <input offset="0" semantic="NORMAL" source="#TQmesh-normals" />
              <input offset="0" semantic="TEXCOORD" source="#TQmesh-texcoords" />
     
     
    0 1 2 3 2 1 4 5 6 7 6 5 8 9 10 11 10 9 12 13 14 15 14 13 </p>
            </triangles>
          </mesh>
        </geometry>
      </library_geometries>
      <library_controllers>
        <controller id="TQmesh-skin-skin">
          <skin source="#_TQmesh">
            <bind_shape_matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</bind_shape_matrix>
            <source id="TQmesh-skin-skin-joints">
              <Name_array id="TQmesh-skin-skin-joints-array" count="4">_MoveAXIS _Bone_Root01 _Bone01 _Bone03 </Name_array>
              <technique_common>
                <accessor source="#TQmesh-skin-skin-joints-array" count="4" stride="1">
                  <param name="JOINT" type="Name" />
                </accessor>
              </technique_common>
            </source>
            <source id="TQmesh-skin-skin-bind_poses">
              <float_array id="TQmesh-skin-skin-bind_poses-array" count="64">1 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1 0.0228182 0.9997396 -0.0003037971 0.01785073 -0.008740499 0.0005033588 0.9999617 4.429357E-05 0.9997014 -0.0228147 0.008749709 -0.001322472 0 0 0 1 0.9999962 -0.001232104 -0.002445239 -2.699377E-09 -0.002445239 3.885852E-07 -0.999997 3.764826E-11 0.001232043 0.9999992 -2.656897E-06 2.605578E-09 0 0 0 1 -0.9999962 -0.001231837 -0.002445251 4.819158E-10 0.002445251 3.31734E-07 -0.999997 6.877878E-12 -0.001231901 0.9999993 -2.676429E-06 2.559036E-09 0 0 0 1 </float_array>
              <technique_common>
                <accessor source="#TQmesh-skin-skin-bind_poses-array" count="4" stride="16">
                  <param name="TRANSFORM" type="float4x4" />
                </accessor>
              </technique_common>
            </source>
            <source id="TQmesh-skin-skin-weights">
              <float_array id="TQmesh-skin-skin-weights-array" count="64">0.5000003 0.4999997 0 0 0.5000003 0.4999997 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0.5000003 0.4999997 0 0 0.5000003 0.4999997 0 0 0.5000003 0.4999997 0 0 1 0 0 0 0.5000004 0.4999997 0 0 1 0 0 0 1 0 0 0 0.5000003 0.4999997 0 0 1 0 0 0 0.5000004 0.4999997 0 0 </float_array>
              <technique_common>
                <accessor source="#TQmesh-skin-skin-weights-array" count="64" stride="1">
                  <param name="WEIGHT" type="float" />
                </accessor>
              </technique_common>
            </source>
            <joints>
              <input semantic="JOINT" source="#TQmesh-skin-skin-joints" />
              <input semantic="INV_BIND_MATRIX" source="#TQmesh-skin-skin-bin_poses" />
            </joints>
            <vertex_weights count="16">
              <input semantic="JOINT" source="#TQmesh-skin-skin-joints" offset="0" />
              <input semantic="WEIGHT" source="#TQmesh-skin-skin-weights" offset="1" />
              <vcount>2 2 1 1 1 1 2 2 2 1 2 1 1 2 1 2 </vcount>
              <v>0 0 1 1 0 4 1 5 1 8 1 12 0 16 0 20 0 24 1 25 0 28 1 29 0 32 1 33 1 36 0 40 1 41 1 44 0 48 0 52 1 53 0 56 0 60 1 61 </v>
            </vertex_weights>
          </skin>
        </controller>
      </library_controllers>
      <library_visual_scenes>
        <visual_scene id="VisualSceneNode" name="TQmesh_Scene">
          <node id="butterfly01" name="butterfly01" type="NODE">
            <instance_controller url="#TQmesh-skin-skin">
              <skeleton>#butterfly01_rig</skeleton>
              <bind_material>
                <technique_common>
                  <instance_material symbol="_shader0" target="#shader0">
                    <bind_vertex_input semantic="TEX0" input_semantic="TEXCOORD" />
                  </instance_material>
                </technique_common>
              </bind_material>
            </instance_controller>
          </node>
          <node id="butterfly01_rig" name="butterfly01_rig" type="NODE">
            <matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
            <node id="MoveAXIS" name="MoveAXIS" sid="_MoveAXIS" type="JOINT">
              <matrix>1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1 </matrix>
              <node id="Bone_Root01" name="Bone_Root01" sid="_Bone_Root01" type="JOINT">
                <matrix>0.02281823 -0.0087405 0.9997014 0.0009151422 0.0003037967 -0.9999617 -0.008749709 2.729764E-05 0.9997396 0.000503359 -0.02281467 -0.01787627 0 0 0 1 </matrix>
                <node id="Bone01" name="Bone01" sid="_Bone01" type="JOINT">
                  <matrix>0.02158713 0.0002483559 0.9997669 0.01785072 -0.01118623 -0.9999373 0.0004899651 4.429358E-05 0.9997044 -0.0111942 -0.02158297 -0.001322469 0 0 0 1 </matrix>
                </node>
                <node id="Bone03" name="Bone03" sid="_Bone03" type="JOINT">
                  <matrix>-0.02404895 0.0003599283 0.9997107 0.01785072 0.00629469 -0.9999801 0.0005114449 4.429358E-05 -0.9996909 -0.006305168 -0.02404617 -0.001322471 0 0 0 1 </matrix>
                </node>
              </node>
            </node>
          </node>
        </visual_scene>
      </library_visual_scenes>
      <scene>
        <instance_visual_scene url="#VisualSceneNode" />
      </scene>
    </COLLADA>

    Both XSI and Blender load and display both the skin and the rig, but I seem to be missing the weights. (XSI doesn't show them in the scene tree, unlike with the example collada files.)

  2. #2
    Junior Member
    Join Date
    Aug 2010
    Posts
    2

    Re: Skin not binding to Deformation-Rig

    Nevermind, forgot a "d"

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •