From cc16b62d84ec77d185774732f030ca82100b1072 Mon Sep 17 00:00:00 2001 From: ZeroGravitas <70643459+ZeroGravitasIndeed@users.noreply.github.com> Date: Thu, 12 Sep 2024 20:49:25 +0200 Subject: [PATCH 1/2] Readme --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 975e64e..3cbfd98 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,10 @@ --- -- [SWTOR Granny2 (.gr2) Import/Export Add-on for Blender 2.8 to 4.0](#swtor-granny2-gr2-importexport-add-on-for-blender-28-to-40) - - [WARNING: not yet compatible with Blender 4.1.x and higher. We are working on that.](#warning-not-yet-compatible-with-blender-41x-and-higher-we-are-working-on-that) +- [SWTOR Granny2 (.gr2) Import/Export Add-on for Blender 2.8 to 4.2](#swtor-granny2-gr2-importexport-add-on-for-blender-28-to-42) + - [WE ARE FINALLY BLENDER 4.1/4.2-COMPATIBLE!!! 🙂](#we-are-finally-blender-4142-compatible-) - [New version with new features:](#new-version-with-new-features) - - **[Download](#download)** + - [Download](#download) - [Installation](#installation) - [Description](#description) - [Import/export tools:](#importexport-tools) @@ -30,8 +30,6 @@ - [Available Operators.](#available-operators) - [Custom Scene Property with feedback about the calls' results.](#custom-scene-property-with-feedback-about-the-calls-results) - [Current state of the project.](#current-state-of-the-project) - - [The Blender 4.1 showstopper.](#the-blender-41-showstopper) - - [Other than that.](#other-than-that) ### New version with new features: * **Up to Blender 4.2 compatibility**. From 4fd4115b812bac9944147e8f1cb13c64e7757bbd Mon Sep 17 00:00:00 2001 From: ZeroGravitas <70643459+ZeroGravitasIndeed@users.noreply.github.com> Date: Sun, 22 Sep 2024 19:57:39 +0200 Subject: [PATCH 2/2] Multiple UV map objects import bugfix --- io_scene_gr2.zip | Bin 82164 -> 82245 bytes io_scene_gr2/__init__.py | 2 +- io_scene_gr2/ops/import_gr2.py | 20 +++++++++++++------- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/io_scene_gr2.zip b/io_scene_gr2.zip index dcc95852378f617acca038fcc44079d9b117dc36..33646cb72805268a18bcf707b074be8cb16c6a3c 100644 GIT binary patch delta 11432 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 J0RHLp{{UFV4cGtx delta 11382 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 diff --git a/io_scene_gr2/__init__.py b/io_scene_gr2/__init__.py index 3216eea..3d7b7d0 100644 --- a/io_scene_gr2/__init__.py +++ b/io_scene_gr2/__init__.py @@ -3,7 +3,7 @@ bl_info = { "name": "Star Wars: The Old Republic (.gr2)", "author": "Darth Atroxa, SWTOR Slicers", - "version": (4, 0, 2), + "version": (4, 0, 3), "blender": (2, 82, 0), "location": "File > Import-Export", "description": "Import-Export SWTOR skeleton, or model with bone weights, UV's and materials", diff --git a/io_scene_gr2/ops/import_gr2.py b/io_scene_gr2/ops/import_gr2.py index b7ab661..52d9c94 100644 --- a/io_scene_gr2/ops/import_gr2.py +++ b/io_scene_gr2/ops/import_gr2.py @@ -582,16 +582,10 @@ def build(gr2, if mesh.bit_flag2 & 2: # 0x02 # NOTE: We store 'temp' normals in loops, since validate() may alter final mesh, # we can only set custom loop normals *after* calling it. - # We use a custom attribute to store them because we can't use # the "normal" attribute: blend_mesh.loops[loop_index].normal is # read-only in 4.1 and higher. - temp_custom_normals = blend_mesh.attributes.new( - name="temp_custom_normals", - type='FLOAT_VECTOR', - domain='CORNER' - ).data - + # UV stuff blend_mesh.uv_layers.new(do_init=False) if mesh.bit_flag2 & 64: # 0x40 @@ -599,6 +593,15 @@ def build(gr2, if mesh.bit_flag2 & 128: # 0x80 blend_mesh.uv_layers.new(do_init=False) + # For some reason, the creation of extra UV map layers for + # multiUvExtraction objects blitzes the temp normals custom attribute, + # so, we are creating it AFTER the creation of UV layers. + temp_custom_normals = blend_mesh.attributes.new( + name="temp_custom_normals", + type='FLOAT_VECTOR', + domain='CORNER' + ).data + for j, polygon in enumerate(blend_mesh.polygons): loop_indices = polygon.loop_indices @@ -610,6 +613,9 @@ def build(gr2, # doesn't normalize them for free the way mesh.loops[loop_index].normal used to. # As we are using for the normals data the mathutils' Vector type, # we use its normalized() method (instead of normalize() which might be slower?). + # blend_mesh.loops[loop_index].normal = [v.normals.x, v.normals.y, v.normals.z] + + # temp_custom_normals[loop_index].vector = v.normals.xyz.normalized() temp_custom_normals[loop_index].vector = v.normals.xyz.normalized() # UV stuff