diff options
author | Julien Duroure <julien.duroure@gmail.com> | 2019-04-09 19:49:11 +0300 |
---|---|---|
committer | Julien Duroure <julien.duroure@gmail.com> | 2019-04-09 19:49:11 +0300 |
commit | 8f48a57eac58b45fca34d39d7a52da9278be4009 (patch) | |
tree | d798e48d9c797c8988feb79b258cdc6ca80e7ab7 /io_scene_gltf2/blender/exp/gltf2_blender_get.py | |
parent | 8e72572153ed7166c284598c53af1e0ab4937263 (diff) |
glTF exporter: fix / enhancement of animation export
Diffstat (limited to 'io_scene_gltf2/blender/exp/gltf2_blender_get.py')
-rwxr-xr-x | io_scene_gltf2/blender/exp/gltf2_blender_get.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_get.py b/io_scene_gltf2/blender/exp/gltf2_blender_get.py index fe3e0e20..27d8a341 100755 --- a/io_scene_gltf2/blender/exp/gltf2_blender_get.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_get.py @@ -23,6 +23,25 @@ def get_animation_target(action_group: bpy.types.ActionGroup): return action_group.channels[0].data_path.split('.')[-1] +def get_object_from_datapath(blender_object, data_path: str): + if "." in data_path: + # gives us: ('modifiers["Subsurf"]', 'levels') + path_prop, path_attr = data_path.rsplit(".", 1) + + # same as: prop = obj.modifiers["Subsurf"] + if path_attr in ["rotation", "scale", "location", + "rotation_axis_angle", "rotation_euler", "rotation_quaternion"]: + prop = blender_object.path_resolve(path_prop) + else: + prop = blender_object.path_resolve(data_path) + else: + prop = blender_object + # single attribute such as name, location... etc + # path_attr = data_path + + return prop + + def get_socket_or_texture_slot(blender_material: bpy.types.Material, name: str): """ For a given material input name, retrieve the corresponding node tree socket or blender render texture slot. |