Hello, if anyone has this problem of Blender's AutoWeight not behaving correctly to the mesh then I have some solutions for you to try.

The Problem
Your Mesh and Rig ready to bind

You choose AutoWeight

Your Mesh becomes like this.

IK on mesh looks weird.

Solution: Recalculate Inside
In Edit Mode >> Select your Mesh >> Mesh Button >> Normals >> Recalculate Inside

Now Better.

If you find your mesh rotate weirdly after AutoWeight. For example, This elbow mesh rotate upward after binding

You can try correcting your bone rotations (roll) before redo the Binding.

I got stuck with this for days. I couldn't understand why the imported models bind correctly while my own Blender-built model didn't. I couldn't find much help from google either so I hope this would help someone too.

Useful. Maybe add a "Tutorials" tag?

You're right I totally forgot about how this would effect textures. Here is envelope view of my rig (minus control bones). The whole Rig is about 1 default cube high.

Does it look ok?

*Well I just quickly made uv and add simple repeat texture and it still looks ok in Blender. So far so good I guess.

Hard to tell for sure but doesn't look like the envelope influence is particularly great. If you select a bone while in that view and either edit or pose mode you'll get an extra highlight showing the influence area.

See the docs for more info:
https://docs.blender.org/manual/en/latest/animation/armatures/bones/structure.html#armature-bone-influence

edit: I forgot the auto weight doesn't use envelopes but my recommendation is to try using envelopes instead, you might just get better control. Or alternatively paint your weights manually, in which case you might use auto weights to just generate initial weight groups and auto fill with something you can start to then refine further via weight painting.

    Megalomaniak
    Yea That's what I plan to do (AutoWeight then manual touch up).

    I've made another test rig earlier and AutoWeight works fine with imported obj model.

    ..but for some reason this time AutoWeight messed up my Blender built model and pretty much unusable as a base weight. Only Recalculate Inside seems to fix it but I will try export to Godot and see if any problem.

    Ah, could it have been that your model had both inverted normals pointing inside and normals pointing outside? Perhaps recalculating all outside would have equally fixed it?

      Megalomaniak
      Already tried Recalculate Outside first and it didn't seem to do anything, only Inside fixed it. Blender is very particular 😆