Ik + Stretch + High Unit Scale + Apply Scale = incorrect results
Closed, ArchivedPublic

Description

System Information
Win10 gtx 980

Blender Version
Blender 2.78 recent build (25/04/17) 0f2d0ff

Short description of error
When setting up an IK chain with stretch, in world unit scale 0.01, and large armature scale, applying the scale transform gives incorrect IK stretch. Please see .blend file attached.

It's not that I like working with 0.01 unit scale and big bones, but unfortunately this operation is needed to export to the Unreal Engine.

Exact steps for others to reproduce the error
Open the blend file, hit Ctrl-A > Scale. When unchecking Stretch from the IK constraint, it works.

Thanks for your work.

Details

Type
Bug
Sergey Sharybin (sergey) closed this task as "Archived".Fri, Jun 2, 12:03 PM
Sergey Sharybin (sergey) claimed this task.

Your object is 12252.83 by 7.568 by 21773.992 blender units (the metric preset thingie is purely interface, internally everything is stored in Blender Units!) which ruins all precision of the IK solver which uses single precision floating point types.

Going double precision might solve the problem, or maybe existing code could be reformulated to become more robust to such cases, but that's not considered a bug.

So thanks for the report, but closing it now. Just work in more sane Blender Unit values to avoid precision issues.

I understand, but as explained scaling this high is necessary to export to .fbx for Unreal Engine... Though it's possible to reduce the scale, would have been nice to handle these high scale units...