import os
class AnimationExporter:
- def __init__(self):
- self.export_all = False
- self.collection = True
- self.looping_threshold = 0.001
-
- def export_to_file(self, context, out_fn):
- if self.export_all:
+ def export_to_file(self, context, out_fn, *, export_all=False, collection=True, looping_threshold=0.001):
+ if export_all:
actions = []
for o in context.selected_objects:
if not o.animation_data:
resources = {}
for a in actions:
- resources[a.name+".anim"] = self.export_animation(context, a)
+ resources[a.name+".anim"] = self.export_animation(context, a, looping_threshold=looping_threshold)
path, base = os.path.split(out_fn)
base, ext = os.path.splitext(base)
- if self.collection:
+ if collection:
from .datafile import Resource
dummy = Resource("dummy", "dummy")
dummy.references = list(sorted(resources.values(), key=lambda r: r.name))
else:
anim_data = context.active_object.animation_data
if not anim_data:
- raise Exception("Object has no animation data")
+ raise Exception("Object {} has no animation data".format(context.active_object.name))
if not anim_data.action:
- raise Exception("No active action")
+ raise Exception("Object {} has no active action".format(context.active_object.name))
resource = self.export_animation(context, anim_data.action)
resource.write_to_file(out_fn)
- def export_animation(self, context, action):
+ def export_animation(self, context, action, *, looping_threshold=0.001):
from .animation import create_animation_from_action
- anim = create_animation_from_action(context, action, looping_threshold=self.looping_threshold)
+ anim = create_animation_from_action(context, action, looping_threshold=looping_threshold)
from .datafile import Resource, Statement
resource = Resource(action.name+".anim", "animation")