Skip to content

Releases: kyleyoungblom/BlenderTools

send2ue v2.6.7 - Combined Mesh Collision Fix

Choose a tag to compare

@kyleyoungblom kyleyoungblom released this 03 Mar 17:56

What's Fixed

This release fixes three bugs in send2ue/core/io/fbx_b4.py that cause incorrect transforms when exporting combined child meshes with collision primitives to Unreal Engine.

Bug 1: Dead-code 'Ellipsis' type check

The EMPTY branch checked ob_obj.type == 'Ellipsis' which never matches any Blender object type ('Ellipsis' is Python's name for the ... literal). EMPTY objects used as the root of combined mesh exports were never handled, so their location was never zeroed for use_object_origin.

Fix: Changed to ob_obj.type == 'EMPTY' and zero the location when use_object_origin is enabled.

Bug 2: Visual mesh transforms overridden incorrectly

For combined mesh exports, the original code replaced loc with (world_pos - empty_pos) * SCALE_FACTOR, discarding the correct fbx_object_tx local transforms (which already handle axis conversion, parent correction, and bake_space_transform).

Fix: Keep fbx_object_tx values as-is for non-collision meshes. With the EMPTY zeroed, children position correctly using their existing local transforms.

Bug 3: Collision primitives (UBX/UCP/USP/UCX) get wrong transforms

  • Scale/Extents 100x too small — Unreal doesn't apply UnitScaleFactor to collision extents
  • Rotation in wrong coordinate spacebake_space_transform wraps rotation incorrectly for unbaked collision vertices
  • Position breaks hierarchy composition — World-delta approach ignores FBX parent-child hierarchy

Fix: Compute collision local transforms via matrix decomposition against the parent mesh's FBX world matrix, and pre-scale extents by SCALE_FACTOR.

Installation

Download the zip below and install in Blender via Edit > Preferences > Add-ons > Install from Disk.

Upstream PR

These fixes have been submitted to poly-hammer/BlenderTools as PR #188.