Skip to content

Bone Attachment 3D cannot contain any collision purpose objects in it #107888

Open
@asc11fromsc

Description

@asc11fromsc

Tested versions

v4.4.1.stable.official [49a5bc7]

System information

Windows 10, Jolt Physics, Rendering Driver: Vulkan, Rendering Method: Mobile

Issue description

Due to some reason all bones in a rig take random scales, instead of being (1, 1, 1) as they should in order to avoid issus like one listed below, they have slightly altered values of scale, such as (0.984, 1.023, 1.104)
And due to this u cannot parent stuff like Area3D as child of BoneAttachment3D because godot will complain on that it being not uniformly scaled and thus push an error into the console every tick, and so it accumulates around few thousands of those what leads to memory leaks and crashes upon trying to clean those.

Down here my description on how i discovered this issue a few days ago:

video here

So for unknown reason, the BoneAttachment3D took a random non-uniform scale and refuse to accept anything else, on what godot complains as u can see in the console.

As demonstrated, this isnt a systematic error since only some of the BoneAttachment3d's have this corruption. Parent in which they lay is scaled to (100, 100, 100) and this particular BoneAttachment Scaled to (1,016, 0.968, 1.1016). If i scale HitBoxParent to 1,1,1 issue wont dissapar as now scale of BoneAttachment will be same but multiplied by 100 and issue will remain.
Reason why the boneAttachments were scalen up so humongously is that apperantly its automatic upon bounding to an external skeleton.
Going up the whole hierarachy, non of the parents is scaled non uniformly, but (1, 1, 1)

I tried taking those BoneAttachments which were corrupted and instead of using an external skeleton on them - move them into the skeleton it self and i finaly was able to tweak the scale of those BoneAttachments, But as i started game, animation of skeleton played, and the EXACT same error pouped up, i mean the engine still was percieving the scale as (100.037125, 100.037125, 100.037125)
It is because of the "rig" object's scale is (100, 100, 100) - that is the specifics of Blender to Godot export so the Rig scale was not my decidion.
Blender i exported the models from: some version around 3. Now im using the 4, but at the moment when the Player Model was done it was assumingly the rouhgly last one. Ill try re-exporting the model from the currently last version of blender.
The current Player Model format is FBX.

Another issue is that Godot prints an exorbitant amount of errors, to that degree that it CRASHES or freezes up to a straight minute.

The thing is i tried avoiding this issue by utilizing the RemoteTransform3D, giving its remote path a boneAttachment3D i need and just pick it not to copy scale. But no. It just doesnt work. It stands still like if nothing would happen even through the bone is moving around.

Important to note: Despite of all of this errors which seemingly point to that these collider things should not work, everything works fine, and all of the collider seem not to change enough for like... like i mean maybe they scale a tiny but differntly but thats so insignificant that in game its not noticible and if not errors i wouldnt ever know.
Im using Jolt Physics since its actually much better then the standart one, thats a whole another subject to disscuss.
I hope i included enough information for issu to be solven but if i didnt please tell me which clues should i add, i plan to report this as a bug to Godot Github.

So apperantly im not the only person who struggles wtih such an issue and i believe thats a bug. Heres a link

I appologise profuselly for inconviniences brought by how poorly i have composed this report, im just really exhausted with this issue but couldnt just keep it for my self since theres litterally only a single mention of it ever created only on reddit which were left with no attention.

Steps to reproduce

  1. using Jolt physics export any armature with more then just a few bones, a humanoid rig for instance.

  2. Make a BoneAttachment3D (it doesnt matter if it utilizes externall skeleton or is a child of one)

  3. Parent an Area3D to it with a CollisionShape3D into it (shape doesnt matter)

  4. Move the bones in any way during run time or in editor, with animation or IK nodes

  5. Foremention issue will appear at this moment

Minimal reproduction project (MRP)

boneAttachment3dBug.zip

I must as well notice that the same errors arent getting pushed when non Jolt physics is being utilized

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions