574
574
blender_bones = None
575
575
blender_action = None
576
576
blender_nla_tracks = None
577
for blender_modifier in blender_mesh_object.modifiers:
578
if blender_modifier.type == 'ARMATURE' \
579
and blender_modifier.object.pose:
580
blender_bones = blender_modifier.object.data.bones
581
blender_pose_bones = blender_modifier.object.pose.bones
582
if blender_modifier.object.animation_data:
584
blender_modifier.object.animation_data.action
585
blender_nla_tracks = \
586
blender_modifier.object.animation_data.nla_tracks
589
if self.options_apply_transform:
590
matrix_transform = blender_modifier.object.matrix_basis
578
# note: only one armature modifier/parent will be handled.
579
# if the parent is an armature, it will be handled irrespective
580
# of existence of any armature modifier
582
# question: maybe it is better to handle
583
# all existing armature sources (parent / modifier)
584
# as a merged animation...
585
# what is best practice in case of multiple animation sources?
587
# take parent to account if it is an armature
588
if blender_mesh_object.parent and \
589
blender_mesh_object.parent_type == 'ARMATURE' and \
590
blender_mesh_object.parent.pose:
591
blender_bones = blender_mesh_object.parent.data.bones
592
blender_pose_bones = blender_mesh_object.parent.pose.bones
593
if blender_mesh_object.parent.animation_data:
595
blender_mesh_object.parent.animation_data.action
596
blender_nla_tracks = \
597
blender_mesh_object.parent.animation_data.nla_tracks
600
if self.options_apply_transform:
601
matrix_transform = blender_mesh_object.parent.matrix_basis
605
# search for animation modifier
607
for blender_modifier in blender_mesh_object.modifiers:
608
if blender_modifier.type == 'ARMATURE' \
609
and blender_modifier.object.pose:
610
blender_bones = blender_modifier.object.data.bones
611
blender_pose_bones = blender_modifier.object.pose.bones
612
if blender_modifier.object.animation_data:
614
blender_modifier.object.animation_data.action
615
blender_nla_tracks = \
616
blender_modifier.object.animation_data.nla_tracks
619
if self.options_apply_transform:
620
matrix_transform = blender_modifier.object.matrix_basis
626
# skip animation/bone handling, if no animation data is available
596
627
if blender_bones is None \
597
628
and (blender_action is None and blender_nla_tracks is None):