PyAPI: Add object argument to bake_action
Avoids having to set the scene's active object first.
This commit is contained in:
parent
11a9434c2d
commit
a4a59d578c
|
@ -26,23 +26,27 @@ import bpy
|
|||
|
||||
|
||||
# XXX visual keying is actually always considered as True in this code...
|
||||
def bake_action(frame_start,
|
||||
frame_end,
|
||||
frame_step=1,
|
||||
only_selected=False,
|
||||
do_pose=True,
|
||||
do_object=True,
|
||||
do_visual_keying=True,
|
||||
do_constraint_clear=False,
|
||||
do_parents_clear=False,
|
||||
do_clean=False,
|
||||
action=None,
|
||||
):
|
||||
def bake_action(
|
||||
obj,
|
||||
frame_start,
|
||||
frame_end,
|
||||
frame_step=1,
|
||||
only_selected=False,
|
||||
do_pose=True,
|
||||
do_object=True,
|
||||
do_visual_keying=True,
|
||||
do_constraint_clear=False,
|
||||
do_parents_clear=False,
|
||||
do_clean=False,
|
||||
action=None,
|
||||
):
|
||||
|
||||
"""
|
||||
Return an image from the file path with options to search multiple paths
|
||||
and return a placeholder if its not found.
|
||||
|
||||
:arg obj: Object to bake.
|
||||
:type obj: :class:`bpy.types.Object`
|
||||
:arg frame_start: First frame to bake.
|
||||
:type frame_start: int
|
||||
:arg frame_end: Last frame to bake.
|
||||
|
@ -114,7 +118,6 @@ def bake_action(frame_start,
|
|||
|
||||
# TODO, pass data rather then grabbing from the context!
|
||||
scene = bpy.context.scene
|
||||
obj = bpy.context.object
|
||||
frame_back = scene.frame_current
|
||||
|
||||
if obj.pose is None:
|
||||
|
|
|
@ -258,27 +258,28 @@ class BakeAction(Operator):
|
|||
)
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
from bpy_extras import anim_utils
|
||||
|
||||
obj = context.object
|
||||
action = None
|
||||
if self.use_current_action:
|
||||
obj = context.object
|
||||
if obj.animation_data:
|
||||
action = obj.animation_data.action
|
||||
|
||||
action = anim_utils.bake_action(self.frame_start,
|
||||
self.frame_end,
|
||||
frame_step=self.step,
|
||||
only_selected=self.only_selected,
|
||||
do_pose='POSE' in self.bake_types,
|
||||
do_object='OBJECT' in self.bake_types,
|
||||
do_visual_keying=self.visual_keying,
|
||||
do_constraint_clear=self.clear_constraints,
|
||||
do_parents_clear=self.clear_parents,
|
||||
do_clean=True,
|
||||
action=action,
|
||||
)
|
||||
action = anim_utils.bake_action(
|
||||
obj,
|
||||
self.frame_start,
|
||||
self.frame_end,
|
||||
frame_step=self.step,
|
||||
only_selected=self.only_selected,
|
||||
do_pose='POSE' in self.bake_types,
|
||||
do_object='OBJECT' in self.bake_types,
|
||||
do_visual_keying=self.visual_keying,
|
||||
do_constraint_clear=self.clear_constraints,
|
||||
do_parents_clear=self.clear_parents,
|
||||
do_clean=True,
|
||||
action=action,
|
||||
)
|
||||
|
||||
if action is None:
|
||||
self.report({'INFO'}, "Nothing to bake")
|
||||
|
|
Loading…
Reference in New Issue