Browse Source

Even more added fixes

More Hoikas suggestions that should get things ready for review.
pull/219/head
Patrick Dulebohn 4 years ago
parent
commit
b9db547669
  1. 40
      korman/exporter/animation.py
  2. 6
      korman/properties/modifiers/anim.py
  3. 10
      korman/ui/modifiers/anim.py

40
korman/exporter/animation.py

@ -73,10 +73,7 @@ class AnimationConverter:
# to be listed on the SceneObject in a specific order. D'OH! So, always use these funcs.
agmod, agmaster = self.get_anigraph_objects(bo, so)
anim_mod = bo.plasma_modifiers.animation
if anim_mod.obj_sdl_anim:
atcanim = self._mgr.find_create_object(plAgeGlobalAnim, so=so)
else:
atcanim = self._mgr.find_create_object(plATCAnim, so=so)
atcanim = self._mgr.find_create_object(anim_mod.anim_type, so=so)
# Add the animation data to the ATC
for i in applicators:
@ -93,26 +90,23 @@ class AnimationConverter:
if i is not None:
yield i.frame_range[index]
atcanim.name = "(Entire Animation)"
def anim_range_type(plAGAnim):
if anim_mod.obj_sdl_anim:
atcanim.start = self._convert_frame_time(min(get_ranges(obj_action, data_action, index=0)))
atcanim.end = self._convert_frame_time(max(get_ranges(obj_action, data_action, index=1)))
atcanim.globalVarName = anim_mod.obj_sdl_anim
else:
atcanim.start = self._convert_frame_time(min(get_ranges(obj_action, data_action, index=0)))
atcanim.end = self._convert_frame_time(max(get_ranges(obj_action, data_action, index=1)))
# Fixme? Not sure if we really need to expose this...
atcanim.easeInMin = 1.0
atcanim.easeInMax = 1.0
atcanim.easeInLength = 1.0
atcanim.easeOutMin = 1.0
atcanim.easeOutMax = 1.0
atcanim.easeOutLength = 1.0
sdl_name = bo.plasma_modifiers.animation.obj_sdl_anim
atcanim.start = self._convert_frame_time(min(get_ranges(obj_action, data_action, index=0)))
atcanim.end = self._convert_frame_time(max(get_ranges(obj_action, data_action, index=1)))
if isinstance(atcanim, plAgeGlobalAnim):
atcanim.globalVarName = anim_mod.obj_sdl_anim
if isinstance(atcanim, plATCAnim):
# Marker points
if obj_action is not None and anim_mod is None:
for marker in obj_action.pose_markers:
atcanim.setMarker(marker.name, self._convert_frame_time(marker.frame))
if obj_action is not None and not anim_data.obj_sdl_anim:
for marker in obj_action.pose_markers:
atcanim.setMarker(marker.name, self._convert_frame_time(marker.frame))
# Fixme? Not sure if we really need to expose this...
atcanim.easeInMin = 1.0
atcanim.easeInMax = 1.0
atcanim.easeInLength = 1.0
atcanim.easeOutMin = 1.0
atcanim.easeOutMax = 1.0
atcanim.easeOutLength = 1.0
def _convert_camera_animation(self, bo, so, obj_fcurves, data_fcurves):
if data_fcurves:

6
korman/properties/modifiers/anim.py

@ -71,10 +71,8 @@ class PlasmaAnimationModifier(ActionModifier, PlasmaModifierProperties):
def export(self, exporter, bo, so):
action = self.blender_action
anim_mod = bo.plasma_modifiers.animation
anim = exporter.mgr.find_create_object(anim_mod.anim_type, so=so)
if isinstance(anim, plAgeGlobalAnim):
atcanim = exporter.mgr.find_create_object(plAgeGlobalAnim, so=so)
else:
atcanim = exporter.mgr.find_create_object(anim_mod.anim_type, so=so)
if not isinstance(atcanim, plAgeGlobalAnim):
atcanim = exporter.mgr.find_create_object(plATCAnim, so=so)
atcanim.autoStart = self.auto_start
atcanim.loop = self.loop

10
korman/ui/modifiers/anim.py

@ -32,6 +32,7 @@ def animation(modifier, layout, context):
return
split = layout.split()
col = layout.column()
col = split.column()
col.prop(modifier, "auto_start")
col = split.column()
@ -40,12 +41,13 @@ def animation(modifier, layout, context):
if action:
layout.prop_search(modifier, "initial_marker", action, "pose_markers", icon="PMARKER")
col = layout.column()
col.enabled = modifier.loop
col.enabled = modifier.loop and not modifier.obj_sdl_anim
col.prop_search(modifier, "loop_start", action, "pose_markers", icon="PMARKER")
col.prop_search(modifier, "loop_end", action, "pose_markers", icon="PMARKER")
col.label("SDL Animation:")
col.prop(modifier, "obj_sdl_anim", text="")
col = layout.column()
col.label("SDL Animation:")
col.prop(modifier, "obj_sdl_anim", text="")
def animation_filter(modifier, layout, context):
split = layout.split()

Loading…
Cancel
Save