Colin Basnett
dd1ea683bb
Added bone mapping option to ignore trailing whitespace
...
Some very old PSKs and PSAs have trailing spaces in the bone names instead of padding the buffer with null bytes.
Trailing whitespace will now be ignored by default to maximize compatibility.
2025-10-06 17:48:51 -07:00
Colin Basnett
240b79d374
Fixed a number of PEP warnings
...
Most of these are just assert statements to silence the warnings for accessing optionals
2025-09-20 12:34:35 -07:00
Colin Basnett
33e7862288
Converted __init__ module initialisation to new pattern
...
Thanks to Dr. Sybren for the BCON25 presentation that tipped me off to the existence of `register_classes_factory`.
2025-09-18 23:29:14 -07:00
Colin Basnett
b4eefaba6f
Increased the minimum Blender version to 4.4
2025-08-17 17:20:07 -07:00
Colin Basnett
ca869731e7
Incremented version to 8.2.1
2025-08-17 13:20:16 -07:00
Colin Basnett
20c8a39f23
Fixed is_action_for_object failing when action had multiple slots
2025-08-17 13:19:47 -07:00
Colin Basnett
8d2f46c2b1
Split axis selection functionality from TransformMixin
2025-08-10 22:12:46 -07:00
Colin Basnett
84863d9de4
Fixed same invalid faces bug, but for the Extra UVs channel
2025-08-09 17:48:55 -07:00
Colin Basnett
3e54378a57
Incremented version to 8.2.0
2025-08-03 01:43:47 -07:00
Colin Basnett
7cc36d427e
Minor formatting fix
2025-08-03 01:42:54 -07:00
Colin Basnett
5c50e76771
Moved get_collection_*from_context functions to helpers.py
2025-08-03 01:42:44 -07:00
Colin Basnett
bd3ea76109
Fixed a bug where meshes with invalid faces could not be imported
2025-08-03 01:41:29 -07:00
Colin Basnett
f4b20e4e0f
Reverted to old "is action for armature" functionality
...
The current Blender 4.4 functionality is still very wishy washy (not able to inspect channel bags), and the solution that was created was broken.
In addition, newly created actions will be given an appropriately named slot instead of it being a "Legacy Slot".
2025-08-03 01:40:38 -07:00
Colin Basnett
921efe97aa
Minor fixes
2025-07-23 10:26:56 -07:00
Colin Basnett
e7ce934383
Improve empty material slot error message
2025-06-07 19:29:59 -07:00
Colin Basnett
a48fcbd6e3
Ignore empty armature modifiers on PSK export
2025-06-07 19:20:29 -07:00
Colin Basnett
253566576e
Fix PSK export with no armatures while using ARMATURE export space
2025-06-07 19:19:54 -07:00
Colin Basnett
660a196002
Fix "Advanced" panel being open by default in PSA export
2025-06-07 19:18:02 -07:00
Colin Basnett
98968a8623
Fix error when attempting to export mesh with no UV layers
...
The fallback behaviour is now to just output zeroes for the UVs if a mesh has no UV layers.
2025-06-07 19:17:39 -07:00
Colin Basnett
29831d7f09
Improved performance of PSK importer by ~40% for large meshes
2025-05-18 01:16:20 -07:00
Colin Basnett
00d9e3996c
Fixed an issue where ACTIVE_ACTION sequence source was not working
...
Also added a scene-level transform source.
2025-05-18 00:46:50 -07:00
Colin Basnett
ff2fe35846
Incremented version to 8.1.2
2025-05-06 19:09:32 -07:00
Colin Basnett
f6fa646a63
Minor formatting fixes for sort_and_normalize_weights
2025-05-06 19:08:41 -07:00
Colin Basnett
16471344f0
Fix #129 : PSK can be imported into UT2 with incorrect weighting
...
Weights within the PSK are now sorted by point_index and have their weights normalized.
2025-05-06 18:48:44 -07:00
Colin Basnett
172249dfff
Improved error reporting for multiple armature exports
...
When exporting multiple armatures, the Export Space must be set to World Space. The user may not intended to be doing a multi-armature export, so the error message has been updated to list the armatures attempting to be exported.
2025-04-16 16:53:25 -07:00
Colin Basnett
0b30161cd7
Fixed an error that could occur on export if material name lookup failed
2025-04-16 16:49:55 -07:00
Colin Basnett
2e7814804d
Incremented version to 8.1.1
2025-04-10 12:13:10 -07:00
Colin Basnett
18915b3d86
Fixed a logic error that would incorrectly always conjugate the rotation of the root bone
2025-04-10 12:12:07 -07:00
Colin Basnett
289361f3e1
Removed bpy reference from shared data
...
This is in preparation for making the PSK/PSA IO available to test
infrastructure
2025-04-03 02:17:42 -07:00
Colin Basnett
aa103a76d0
Fixed error handling
2025-04-02 16:12:57 -07:00
Colin Basnett
00edde0605
Improved error handling during PSK read errors
2025-04-02 16:04:45 -07:00
Colin Basnett
2b347bf064
Added automated tests (testing PSA import for now, more to come)
2025-04-02 15:12:23 -07:00
Colin Basnett
30f97089e8
More formatting cleanup
2025-03-30 23:43:56 -07:00
Colin Basnett
15614c6d37
Loads of cleanup
2025-03-30 23:36:12 -07:00
Colin Basnett
322844b88c
Removed all wildcard imports & ordered import statements alphabetically
2025-03-30 18:27:47 -07:00
Colin Basnett
16a11cd961
Fixed a bug where material slots could end up empty when importing PSKs
...
The material slots would end up empty if the BDK texture lookup failed.
This change ensures that a new black material is created if any of the
other lookups fail (local data blocks or BDK asset lookup).
2025-03-30 18:22:49 -07:00
Colin Basnett
7c695e6195
Multi-armature mesh and animation export now working
2025-03-30 12:08:44 -07:00
Colin Basnett
91fe54f361
Loads of changes
...
* Now asserting instead of throwing exceptions in some cases where we
don't want to fail gracefully
* Added "export space" option for PSA & PSK exports.
* Removed "Root Motion" option in PSA export, replace with a "Root"
export space.
* Added support for exporting multiple armatures to a PSK (only works
for collection exporter atm)
* More graceful error handling for IO errors (i.e., writing to a
for which the user doesn't have permission)
* Proper handling for slotted actions.
2025-03-28 22:48:08 -07:00
Colin Basnett
a809700c2b
Fix for broken behavior in is_action_for_object when dealing with legacy slots
...
New behavior is more robust now too.
2025-03-18 12:29:14 -07:00
Colin Basnett
5203ae1d7e
Moved SemanticVersion class to semver file from generic `helpers file
2025-03-11 12:46:34 -07:00
Colin Basnett
f7c85e7226
Fixed name of import functions (functions named import is not possible due to Python syntax)
2025-03-11 12:45:22 -07:00
Colin Basnett
cea9029877
Fix for error reporting if populate_bone_collection_list encountered an error
2025-03-11 12:43:35 -07:00
Colin Basnett
3c2f0c4d7c
Fixed naming and description of new operator
2025-02-10 16:30:43 -08:00
Colin Basnett
b855abaadb
Impemented #120 : Multiple PSKs can be imported at once with drag-and-drop
2025-02-10 14:12:30 -08:00
Colin Basnett
d66cd09660
Added a warning when user doesn't select any sequences to be exported
2025-02-09 20:08:41 -08:00
Colin Basnett
814496d075
Incremented version to 8.1.0
2025-02-06 21:14:36 -08:00
Colin Basnett
5f3bfc0ff3
Fix for error when exporting mesh with no armature
2025-02-06 21:10:13 -08:00
Colin Basnett
d1bae944f1
Refactoring and fixing issues with PSK exports with non-default forward & up axes
2025-01-31 00:39:24 -08:00
Colin Basnett
bea245583f
Fixed FileHandler registration
2025-01-20 19:57:51 -08:00
Colin Basnett
0e2e265b47
Actions that begin with ! will now also only export the first frame
...
This functionality was previously only added for pose and timeline markers
2025-01-20 19:57:37 -08:00