Commit Graph

73 Commits

Author SHA1 Message Date
Colin Basnett
63fb6f7d09 Fixed a bug where it was not possible to export from markers 2023-08-25 16:58:15 -07:00
Colin Basnett
fb2ab89766 Fixed a compatibility issue caused by the fix to #43 2023-08-14 22:42:59 -07:00
Colin Basnett
73b967949d Added progress reporting for PSA import 2023-08-04 16:44:14 -07:00
Colin Basnett
e750be474a Fixed a bug where the action list would not be populated for PSA export if the armature had not had it's animation data initialized 2023-08-04 16:28:42 -07:00
Colin Basnett
972067860a Fixed a bug where PSA exports would not work 2023-08-01 21:16:29 -07:00
Colin Basnett
afe598f671 File structure/naming overhaul on the PSK importer and exporter
* Inverted to the option to "ignore bone name restrictions". It is now "Enforce Bone Name Restrictions" and it is off by default.
* Added option to filter out "reversed" sequences from the sequence list
2023-07-29 20:51:23 -07:00
Colin Basnett
782c210f04 Major refactoring pass on the PSA file structure & naming 2023-07-29 16:00:53 -07:00
Colin Basnett
25bf8f2087 Set the parent index of the root bone to 0 instead of -1
In normal UE2 derivates, it doesn't appear to matter what the parent index is; but in UE1 games that have basic support for PSK importing (i.e. Harry Potter 2), the parent index of the root bone must be `0` otherwise the import fails.
2023-07-28 03:18:05 -07:00
Colin Basnett
160a6b22f6 Fix for grammatical error 2023-07-26 16:28:37 -07:00
Colin Basnett
84f168a9c0 Handle importing PSAs with duplicate bone names gracefully
For Harry Potter 2 models, the rig and the PSA files have bones with identical names. This would cause the PSA importer to fail because it was expecting that each bone name would be unique. The new behavior is to ignore duplicate bones when importing the f-curve data, but print a warning to let the user know something is wacky with their PSA rig.

For example, if there are two bones, A and B, with the same name, the first bone encountered (A) in the tree will be mapped to the armature bone, but bone B will be ignored.
2023-07-26 16:25:52 -07:00
Colin Basnett
5cb9714597 Added key compression functionality 2023-04-30 20:18:59 -07:00
Colin Basnett
268d039693 Disabling root motion now correctly exports the root bone in the bind pose in animations
The description for Root Motion has also been updated to better explain how the setting works.
2023-04-27 19:43:15 -07:00
Colin Basnett
25e1b73fc7 Removed unused property 2023-04-03 01:39:57 -07:00
Colin Basnett
f7b97added * Allow users to export a sequence in reverse
You can do this by naming a sequence `<name>/<reversed_name>`. For example, `crawlF/crawlB` will result in two export options: `crawlF` (forward) and `crawlB` (the same animation, but reversed).
* Allow users to exclude sequences from the export dialog by prepending the name of the action/marker with a "#" character.
* The "Use original sequence names" option has been removed as it's not really needed.
2023-04-01 15:04:16 -07:00
Colin Basnett
fd02f3f4d7 Now using new BDK addon operators to load the materials 2023-03-09 01:51:04 -08:00
Colin Basnett
c9d4958800 Sequences can now be exported from action pose markers 2023-02-17 22:18:46 -08:00
Colin Basnett
5a66cab92e Renamed "Reuse Existing Actions" to "Overwrite" in PSA import options. 2023-01-02 19:37:11 -08:00
Colin Basnett
4811911e4a Updated typing and minor non-functional changes 2023-01-02 19:36:31 -08:00
Colin Basnett
b26e49d403 The PSA import functionality has been moved to a file import dialog.
As a result, the "PSA Import" panel in the Armature Data tab has been
removed as it is now redundant.

This was made possible by https://developer.blender.org/D15543.

As a result, the minimum Blender version has now been bumped to 3.4.

The 4.2.0 version is now in LTS mode and will not be receiving new
features.
2023-01-02 15:47:00 -08:00
Colin Basnett
44afce3e64 Improved PSA import speed dramatically 2022-11-24 16:38:06 -08:00
Colin Basnett
8ada80e243 Typing and naming improvements 2022-11-22 12:57:06 -08:00
Colin Basnett
38ed183897 Fixed a bug where the root bone orientation would be exported incorrectly 2022-11-22 12:55:56 -08:00
Colin Basnett
9ae573422b Fixed a bug where actions would not be considered to be "for" an armature if its only F-Curve data was for custom properties on a bone 2022-11-16 12:34:09 -08:00
Colin Basnett
aa8725c3d0 Added a "Bone Mapping" option.
This allows imported PSA actions to map to armature bones with names
that differ only by case.

In addition, import warnings are now written to the info log so they
have better visibility to the user.
2022-11-12 16:25:19 -08:00
Colin Basnett
02082b9594 Added an option to bake imported PSA sequences to samples.
Also, the "Clean Keyframes" option has been removed from the PSA import
because it did not work correctly.

This will be replaced by a "Decimate F-Curves" option in the future.
2022-11-01 11:33:39 -07:00
Colin Basnett
4181a15d0e Improved comment and typing information 2022-11-01 11:32:50 -07:00
Colin Basnett
f7290e6808 The scene's frame and selected object's active action is now restored after PSA export 2022-11-01 11:30:13 -07:00
Colin Basnett
65d3104ea9 Added an option to ignore bone name restrictions 2022-11-01 11:28:55 -07:00
Colin Basnett
cd490af431 Fixed a load of PEP8 warnings 2022-08-06 23:52:18 -07:00
Colin Basnett
d215ceb10c Removed typing hint on sequences function
For some reason this breaks compatibility with Blender 2.92
2022-08-05 22:38:53 -07:00
Colin Basnett
3627abe6fc Minor code changes 2022-07-26 15:00:14 -07:00
Colin Basnett
4d1cd19a61 All actions will now be deselected by default on the PSA export dialog 2022-06-27 18:13:20 -07:00
Colin Basnett
4937f8f779 Refactoring to reduce pointless class encapsulation when just a function would do. 2022-06-27 18:11:49 -07:00
Yurii Ti
616593d0fb Fixed a bug where broken stray sequences could appear on PSA export
The bug was triggered when:
  - at least 2 markers were placed;
  - the right-most marker contained no NLA data.
2022-06-10 11:16:02 +03:00
Colin Basnett
edafa1cfd7 Fix for bug #21. Bone names can now only contain alphanumeric, space and underscore characters. 2022-05-20 17:13:12 -07:00
Colin Basnett
83a13fa1f4 Merge remote-tracking branch 'origin/fix-psa-export-sequence-filtering' 2022-05-05 20:57:27 -07:00
Colin Basnett
d4a58caafe The PSK and PSA import menu items will now be greyed out if in the wrong context, and a tooltip will be shown indicating what the issue is (e.g., having the wrong type of object selected) 2022-05-05 20:56:52 -07:00
Yurii Ti
6493ace078 [PSA Export] Added missing names and descriptions for filter properties 2022-05-05 08:23:05 +03:00
Yurii Ti
0d9e2a4b60 [PSA Export] Fixed incorrect sequence filtering results
* Fixed a bug where the asset filter button would have no effect when
  reverse filtering is enabled.

* Fixed a bug where enabling reverse filtering would hide all items when
  the input field is empty.
2022-05-05 07:17:49 +03:00
Yurii Ti
248440052b [PSA Export] Refactored action and marker lists into a single class
Filter box is now visible by default when timeline markers are selected
as source.
2022-05-05 07:06:49 +03:00
Yurii Ti
ded6fc8980 [PSA Export] Fixed a bug where timeline markers couldn't be filtered 2022-05-05 07:00:47 +03:00
Colin Basnett
19ff47cc83 * Added "Root Motion" option to enable root motion on export (vs. stationary root at world origin!)
* Removed performance debugging code
2022-04-30 17:33:59 -07:00
Colin Basnett
31c0ec16ab Fixed a runtime error that would occur if the user attempted to export animations using timeline markers and there were no strips occupying the space between markers 2022-04-29 19:41:15 -07:00
Colin Basnett
1eafb71dce * Fixed a bug where the action name prefix could be applied even if the checkbox was deselected
* Fixed a typo in the PSA reader
* Added the ability to define the bone length of imported PSK armatures
* The PSK import options (extra UVs, vertex colors etc.) are now actually respected if turned off
* Ran automated formatting on all the code to quell the PEP8 gods
* Incremented version to 3.0.0
2022-04-24 22:08:36 -07:00
Colin Basnett
d56aa3ab65 Added the ability to hide deselected sequences from the PSA import sequence list 2022-04-17 17:55:15 -07:00
Colin Basnett
e8e8d6ce8b Added regex fitlering to the PSA sequence list 2022-04-17 17:31:52 -07:00
Colin Basnett
ab52b1520e Added the ability to select sequences from the import seqquence list by a text file 2022-04-17 16:30:15 -07:00
Colin Basnett
962fb0a791 Fixed a bug where use_fake_user would not be set correctly on import 2022-04-15 17:35:06 -07:00
Colin Basnett
37f14a2a19 * Added the ability to import the sequence FPS as a custom property to the Action (psa_fps)
* Added additional options for exporting sequence FPS values (scene, action metadata (custom data), custom,)
* The user can now choose to reuse existing action data blocks when importing sequence data.
* The user can choose whether or not to import keyframe data and metadata
2022-04-15 16:52:15 -07:00
Colin Basnett
99da7e67c0 Determining the last frame when using timeline markers no longer considers muted NLA tracks 2022-04-13 22:52:55 -07:00