summaryrefslogtreecommitdiff
path: root/tools/export
diff options
context:
space:
mode:
authorRalf Hölzemer <r.hoelzemer@posteo.de>2014-09-25 00:21:52 +0200
committerRalf Hölzemer <r.hoelzemer@posteo.de>2014-09-25 00:21:52 +0200
commitc53dc526bffb2ee497b9d0c092466af2b793bc06 (patch)
treeb48f53917cd7d15bb47a937f0e7a56375b87ecb0 /tools/export
parent8e6442cf05a103d15b65282704501fe039de2a20 (diff)
Restore current frame and assigned actions to the state before export
Diffstat (limited to 'tools/export')
-rw-r--r--tools/export/blender25/io_scene_dae/export_dae.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/export/blender25/io_scene_dae/export_dae.py b/tools/export/blender25/io_scene_dae/export_dae.py
index 25bfbf0f69..867b0a00e7 100644
--- a/tools/export/blender25/io_scene_dae/export_dae.py
+++ b/tools/export/blender25/io_scene_dae/export_dae.py
@@ -1059,6 +1059,8 @@ class DaeExporter:
#Collada starts from 0, blender usually from 1
#The last frame must be included also
+ frame_orig = self.scene.frame_current
+
frame_len = 1.0 / self.scene.render.fps
frame_total = end - start + 1
frame_sub = 0
@@ -1126,6 +1128,7 @@ class DaeExporter:
xform_cache[bone_name].append( (key,mtx) )
+ self.scene.frame_set(frame_orig)
#export animation xml
for nid in xform_cache:
@@ -1141,6 +1144,13 @@ class DaeExporter:
if (self.config["use_anim_action_all"] and len(self.skeletons)):
+ cached_actions = {}
+
+ for s in self.skeletons:
+ if s.animation_data and s.animation_data.action:
+ cached_actions[s] = s.animation_data.action.name
+
+
self.writel(S_ANIM_CLIPS,0,'<library_animation_clips>')
for x in bpy.data.actions[:]:
@@ -1185,6 +1195,11 @@ class DaeExporter:
self.writel(S_ANIM_CLIPS,0,'</library_animation_clips>')
+ for s in self.skeletons:
+ if s in cached_actions:
+ s.animation_data.action = bpy.data.actions[cached_actions[s]]
+ else:
+ s.animation_data.action = None
else:
self.export_animation(self.scene.frame_start,self.scene.frame_end)