Blender tip profile for bones with 2 or more children.
This commit is contained in:
@@ -177,7 +177,7 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm)
|
||||
node.setNodeName(node_name);
|
||||
node.setNodeSid(node_sid);
|
||||
|
||||
if ( bone->childbase.first == NULL )
|
||||
if ( bone->childbase.first == NULL || BLI_countlist(&(bone->childbase))>=2)
|
||||
add_blender_leaf_bone( bone, ob_arm , node );
|
||||
else{
|
||||
node.start();
|
||||
@@ -202,6 +202,9 @@ void ArmatureExporter::add_blender_leaf_bone(Bone *bone, Object *ob_arm, COLLADA
|
||||
node.addExtraTechniqueParameter("blender", "tip_y", bone->tail[1] );
|
||||
node.addExtraTechniqueParameter("blender", "tip_z", bone->tail[2] );
|
||||
|
||||
for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) {
|
||||
add_bone_node(child, ob_arm);
|
||||
}
|
||||
node.end();
|
||||
|
||||
}
|
||||
|
||||
@@ -83,14 +83,11 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p
|
||||
float parent_mat[][4], Object * ob_arm)
|
||||
{
|
||||
float mat[4][4];
|
||||
float obmat[4][4];
|
||||
float obmat[4][4];
|
||||
|
||||
// object-space
|
||||
get_node_mat(obmat, node, NULL, NULL);
|
||||
|
||||
// get world-space
|
||||
|
||||
|
||||
EditBone *bone = ED_armature_edit_bone_add((bArmature*)ob_arm->data, (char*)bc_get_joint_name(node));
|
||||
totbone++;
|
||||
|
||||
@@ -151,7 +148,6 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p
|
||||
|
||||
// in second case it's not a leaf bone, but we handle it the same way
|
||||
if (!children.getCount() || children.getCount() > 1) {
|
||||
|
||||
add_leaf_bone(mat, bone, node);
|
||||
}
|
||||
|
||||
@@ -659,7 +655,7 @@ void ArmatureImporter::make_armatures(bContext *C)
|
||||
}
|
||||
|
||||
//for bones without skins
|
||||
create_armature_bones();
|
||||
//create_armature_bones();
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
||||
Reference in New Issue
Block a user