Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Duroure <julien.duroure@gmail.com>2019-04-09 19:49:11 +0300
committerJulien Duroure <julien.duroure@gmail.com>2019-04-09 19:49:11 +0300
commit8f48a57eac58b45fca34d39d7a52da9278be4009 (patch)
treed798e48d9c797c8988feb79b258cdc6ca80e7ab7 /io_scene_gltf2/blender/exp/gltf2_blender_get.py
parent8e72572153ed7166c284598c53af1e0ab4937263 (diff)
glTF exporter: fix / enhancement of animation export
Diffstat (limited to 'io_scene_gltf2/blender/exp/gltf2_blender_get.py')
-rwxr-xr-xio_scene_gltf2/blender/exp/gltf2_blender_get.py19
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.