@@ -68,7 +68,7 @@ def get_updated_bone_index(self, old_skeleton, new_skeleton, old_bone_map, new_b
6868 return len (new_bone_map )- 1
6969
7070 def fix_bones_influences (self , mesh , old_skeleton ):
71- required_bones = []
71+ active_bones = []
7272 for section in range (0 , mesh .skeletal_mesh_sections_num ()):
7373 vertices = mesh .skeletal_mesh_get_soft_vertices (0 , section )
7474 ue .log_warning (len (vertices ))
@@ -81,8 +81,8 @@ def fix_bones_influences(self, mesh, old_skeleton):
8181 for index , bone_id in enumerate (bone_ids ):
8282 if vertex .influence_weights [index ] > 0 :
8383 bone_ids [index ] = self .get_updated_bone_index (old_skeleton , mesh .Skeleton , old_bone_map , new_bone_map , bone_id )
84- if new_bone_map [bone_ids [index ]] not in required_bones :
85- required_bones .append (new_bone_map [bone_ids [index ]])
84+ if new_bone_map [bone_ids [index ]] not in active_bones :
85+ active_bones .append (new_bone_map [bone_ids [index ]])
8686 vertex .influence_bones = bone_ids
8787 new_vertices .append (vertex )
8888
@@ -92,10 +92,9 @@ def fix_bones_influences(self, mesh, old_skeleton):
9292 mesh .skeletal_mesh_set_bone_map (new_bone_map , 0 , section )
9393
9494 # specify which bones are active and required (ensure root is added to required bones)
95- mesh .skeletal_mesh_set_active_bone_indices (required_bones )
96- if 0 not in required_bones :
97- required_bones += [0 ]
98- mesh .skeletal_mesh_set_required_bones (required_bones )
95+ mesh .skeletal_mesh_set_active_bone_indices (active_bones )
96+ # mark all the bones as required (eventually you can be more selective)
97+ mesh .skeletal_mesh_set_required_bones (list (range (0 , mesh .Skeleton .skeleton_bones_get_num ())))
9998
10099 def set_skeleton (self , asset_data ):
101100 self .choosen_skeleton = asset_data .get_asset ()
0 commit comments