-
Notifications
You must be signed in to change notification settings - Fork 0
Fixes & Additions
By far the biggest compatibility issue between Blender and UE3 is how they handle the Root bone in skeletal meshes.
Normally, porting a model from Unreal to Blender causes the root bone to be imported as the armature itself, rather than a bone in the armature. Symmetrically, porting it back would turn the armature into an extra root bone. This makes it nearly impossible to create models and animations for an existing skeletal structure, without using additional tools.
This patch fixes this, so armatures are imported and exported correctly. This behavior can be toggled, too:
- Import > Armature > UE3 - Import Root as Bone
- Export > Armature > UE3 - Don't Add Armature Bone
Because Unreal has a hard time importing animations of different durations from the same FBX file, this patch allows exporting each animation as its own separate file. This can be found at the bottom of the settings when exporting: Export > UE3 - Batch Export Anims.
The only scale inheritance modes that AHiT natively supports for skeletal animations are Aligned
and None
. This patch adds rudimentary support for importing and exporting these modes, which allows a way to port AHiT animations that include scaling, into and from Blender, without breaking them.
Important
When exporting custom animations, this only takes effect if your bones actually use either Aligned
or None
as their scale inheritance.
This cannot be converted automatically on-export, because most modes are fundamentally different from each other - each one being capable of different things. Thus, an animation intended for one mode won't look right in another.
Note
As a consequence of this change, all AHiT skeletons are imported using the Aligned
mode by default. It's important to note that this mode is fundamentally different from the default Full
mode, so, if undesired, this be disabled through a setting: Import > Armature > UE3 - Import Scale Inheritance.
P.S. It's a little less straightforward, but you can also change it later, on the entire armature:
InheritScaleTut.mp4
In the vanilla exporter, when exporting NLA, each animation is exported on a per-strip basis.
This patch introduces a new setting, Export > Animation > UE3 NLA - Modular Anim Support, which instead causes animations to be exported on a per-track basis. This means that multiple strips placed on the same row will be grouped together and exported, in full, as one single animation.
Moreover, any additive animations placed above will be merged into the animation below them, so any layered animations won't have to be manually baked before each export.
- Export > Animation > UE3 NLA - Force Export : OFF by default. If disabled (vanilla), NLA tracks which are disabled are skipped during export. If enabled, all NLA tracks will ALWAYS be exported, regardless of their muted state.
- Export > Animation > UE3 NLA - Only Animate Owner : ON by default. If disabled (vanilla), NLA animations will bake the entire exported scene - even unrelated objects, which is unnecessary. If enabled, these animations will only track their owner object.
- Export > Animation > UE3 - Rest Default Pose : ON by default. This causes the default (current) pose in the FBX file to use the Rest Pose of the armature. If disabled (vanilla), it uses the Current Pose. Enabling fixes a rare bug with AHiT, where animations would've imported with an incorrectly multiplied scale, depending on the playhead's position.
- Export > Animation > UE3 - Remove prefix from anim names : ON by default. This removes the object prefix from action names, which is normally added by the vanilla FBX add-on.
- Import > Animation > UE3 - FPS import rule : Some files may have a missing/faulty FPS value (AHiT does this, for example), so this setting lets you customize when FPS gets imported (if found, or never).
- Export > Armature > UE3 - Matrix Double Precision : EXPERIMENTAL - Use with caution! Sometimes, bone rotations exported from Blender may import incorrectly in other apps, but still look correct when imported back into Blender. This bug is presumably due to accuracy issues, so this setting exists to rebuild bone matrices using double precision.