From 96a51679699c75e1a08f2d91b2b055bf6430e9d1 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Thu, 28 Feb 2019 15:43:26 +0000 Subject: 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 --- io_scene_fbx/export_fbx_bin.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to '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. -- cgit v1.2.3