glTF vtree: merge

This commit is contained in:
Julien Duroure 2022-02-16 12:09:33 +01:00
parent 38956097e3
commit 54c223a166
6 changed files with 14 additions and 6 deletions

View File

@ -15,7 +15,7 @@
bl_info = {
'name': 'glTF 2.0 format',
'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
"version": (3, 2, 5),
"version": (3, 2, 6),
'blender': (3, 1, 0),
'location': 'File > Import-Export',
'description': 'Import-Export as glTF 2.0',
@ -161,7 +161,7 @@ class ExportGLTF2_Base:
'Save images as JPEGs. (Images that need alpha are saved as PNGs though.) '
'Be aware of a possible loss in quality'),
('NONE', 'None',
'Don\'t export images.'),
'Don\'t export images'),
),
description=(
'Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for web '

View File

@ -64,7 +64,7 @@ def __export(export_settings):
buffer = __create_buffer(exporter, export_settings)
exporter.finalize_images()
export_user_extensions('gather_gltf_hook', export_settings, exporter.glTF)
export_user_extensions('gather_gltf_extensions_hook', export_settings, exporter.glTF)
exporter.traverse_extensions()
# now that addons possibly add some fields in json, we can fix in needed
@ -80,6 +80,8 @@ def __gather_gltf(exporter, export_settings):
gltf2_io_draco_compression_extension.encode_scene_primitives(scenes, export_settings)
exporter.add_draco_extension()
export_user_extensions('gather_gltf_hook', export_settings, active_scene_idx, scenes, animations)
for idx, scene in enumerate(scenes):
exporter.add_scene(scene, idx==active_scene_idx)
for animation in animations:

View File

@ -172,6 +172,8 @@ def __gather_animation( obj_uuid: int,
print_console("WARNING", "Animation '{}' could not be exported. Cause: {}".format(name, error))
return None
export_user_extensions('pre_gather_animation_hook', export_settings, animation, blender_action, blender_object)
if not animation.channels:
return None
@ -266,6 +268,8 @@ def __get_blender_actions(blender_object: bpy.types.Object,
blender_tracks = {}
action_on_type = {}
export_user_extensions('pre_gather_actions_hook', export_settings, blender_object)
if blender_object.animation_data is not None:
# Collect active action.
if blender_object.animation_data.action is not None:
@ -308,6 +312,8 @@ def __get_blender_actions(blender_object: bpy.types.Object,
blender_tracks[strip.action.name] = track.name # Always set after possible active action -> None will be overwrite
action_on_type[strip.action.name] = "SHAPEKEY"
export_user_extensions('gather_actions_hook', export_settings, blender_object, blender_actions, blender_tracks, action_on_type)
# Remove duplicate actions.
blender_actions = list(set(blender_actions))
# sort animations alphabetically (case insensitive) so they have a defined order and match Blender's Action list

View File

@ -53,7 +53,7 @@ def __gather_base_color_factor(blender_material, export_settings):
alpha_socket = gltf2_blender_get.get_socket(blender_material, "Alpha")
if isinstance(alpha_socket, bpy.types.NodeSocket):
if export_settings['gltf_image_format'] != "NONE":
if export_settings['gltf_image_format'] != "NONE":
alpha = gltf2_blender_get.get_factor_from_socket(alpha_socket, kind='VALUE')
else:
alpha = gltf2_blender_get.get_const_from_default_value_socket(alpha_socket, kind='VALUE')

View File

@ -87,7 +87,7 @@ def create_from_file(gltf, img_idx):
blender_image.name = img_name
return blender_image
def create_from_data(gltf, img_idx):
# Image stored as data => pack

View File

@ -132,7 +132,7 @@ class BlenderNode():
vnode = gltf.vnodes[vid]
dist = vnode.trs()[0].length
sizes.append(dist * 0.4)
return max(min(sizes, default=1), 0.001)
return max(min(sizes, default=1), 0.001)
@staticmethod
def create_bones(gltf, arma_id):