[Bf-extensions-cvs] [96a51679] master: FBX Exporter: Support special case of constant interpolation

Dalai Felinto noreply at git.blender.org
Thu Feb 28 18:26:29 CET 2019


Commit: 96a51679699c75e1a08f2d91b2b055bf6430e9d1
Author: Dalai Felinto
Date:   Thu Feb 28 15:43:26 2019 +0000
Branches: master
https://developer.blender.org/rBA96a51679699c75e1a08f2d91b2b055bf6430e9d1

FBX Exporter: Support special case of constant interpolation

If all the keyframes were set to constant interpolation.

Reviewers: mont29

Differential Revision: https://developer.blender.org/D4429

===================================================================

M	io_scene_fbx/export_fbx_bin.py

===================================================================

diff --git a/io_scene_fbx/export_fbx_bin.py b/io_scene_fbx/export_fbx_bin.py
index 5ecc8706..63d67d4a 100644
--- a/io_scene_fbx/export_fbx_bin.py
+++ b/io_scene_fbx/export_fbx_bin.py
@@ -1706,11 +1706,18 @@ def fbx_data_animation_elements(root, scene_data):
                         acurve.add_string(fbx_name_class(b"", b"AnimCurve"))
                         acurve.add_string(b"")
 
+                        # special case, if all keys are constant, set const interpolation mode
+                        constant = True
+                        for key in keys:
+                            if key.interpolation != 'CONSTANT':
+                                constant = False
+                                break
+
                         # key attributes...
                         nbr_keys = len(keys)
                         # flags...
                         keyattr_flags = (
-                            1 << 2 |   # interpolation mode, 1 = constant, 2 = linear, 3 = cubic.
+                            1 << (1 if constant else 2) |   # interpolation mode, 1 = constant, 2 = linear, 3 = cubic.
                             1 << 8 |   # tangent mode, 8 = auto, 9 = TCB, 10 = user, 11 = generic break,
                             1 << 13 |  # tangent mode, 12 = generic clamp, 13 = generic time independent,
                             1 << 14 |  # tangent mode, 13 + 14 = generic clamp progressive.



More information about the Bf-extensions-cvs mailing list