Opened 13 years ago

Last modified 12 years ago

#1012 closed defect

COLLADA: Support special vertex weight index on skinned models — at Version 3

Reported by: historic_bruno Owned by: historic_bruno
Priority: Should Have Milestone: Alpha 9
Component: Core engine Keywords: blender, collada, skinning
Cc: Patch:

Description (last modified by historic_bruno)

For skinned models, the COLLADA 1.4.1 spec allows a special vertex weight index of -1, which indicates the weight applies to the bind-shape matrix* instead of a particular bone, as seen in this example:

<skin>
  <source id="joints"/>
  <source id="weights"/>
  <vertex_weights count="4">
    <input semantic="JOINT" source="#joints"/>
    <input semantic="WEIGHT" source="#weights"/>
    <vcount>3 2 2 3</vcount>
    <v>
      -1 0 0 1 1 2
      -1 3 1 4
      -1 3 2 4
      -1 0 3 1 2 2
    </v>
  </vertex_weights>
</skin>

(*The bind-shape matrix represents the transform of the bind-shape prior to skinning, it transforms the bind-shape from object space to bind-space. It's specified by a <bind_shape_matrix> element in the <skin> or assumed to be an identity transform. See pages 4.6-4.8 of the COLLADA spec for more notes.)

Currently if you try to add such a model to the game, it will fail to import since the PMD converter thinks there are more than 256 bones (the -1 index is typecast to an unsigned int). Apparently Blender 2.60a likes to export such models and seems to have made general improvements to animation exporting, so we should find a way to implement this.

As a workaround, it may be possible to export animations with Blender 2.6 and the corresponding models with an older version.

Change History (5)

by historic_bruno, 13 years ago

Attachment: ram_blender26.dae added

6-wheeled ram exported from Blender 2.60a

comment:1 by historic_bruno, 13 years ago

Description: modified (diff)

by historic_bruno, 13 years ago

Attachment: ram_blender25.dae added

6-wheeled ram exported from Blender 2.59

comment:2 by historic_bruno, 12 years ago

Owner: set to historic_bruno
Status: newassigned

comment:3 by historic_bruno, 12 years ago

Description: modified (diff)

updated description with more info

Note: See TracTickets for help on using tickets.