Blender to UE4 - scale issue in parent child bone relationship
To demonstrate the problem, I created a simple bone chain with the following bones:
‘root’
‘parent’ (child of root, not connected)
‘child’ (child of parent, not connected, it has a copy transform constraint to location bone so it will always copy its location, rotation and scale)
‘location’
For these bones I created two animations:
‘A’ animation as it appears in blender: I rotate and move the ‘parent’ bone. ‘Child’ bone doesn’t move at all, because it copies the translations of the ‘location’ bone.
‘A’ animation as it appears in UE4: same as in blender. ‘Parent’ moves, ‘child’ remains still. No problem.
‘B’ animation as it appears in blender: I rotate, move and scale the ‘parent’ bone. ‘Child’ bone doesn’t move at all, because it copies the translations of the ‘location’ bone.
‘B’ animation as it appears in UE4: ‘Parent’ does the same as in blender. ‘Child’ rotates and scales for some strange reason, and that’s the problem.
Without seeing the files I am not sure what the problem is however. In your picture examples it looks like you are in the animation editing window. Ue4 cannot read your controls from blender (constraints, parent/child relationship) so if you are editing a bone animation in ue4 and expect it to work the same way as in blender, I can tell you it will not. Best practices are to edit your animations in the native 3rd party program you made the model in.
Thank you for the quick answers! I used blender 2.76, a blank project, and as few steps as I possible could to reproduce the problem. It’s not long, so I created a video with the process. I can also send blend and fbx files if it is needed, but I think the video can tell everything.
If you could send the FBX files it would be extremely beneficial for me to reproduce this error on my end. I’ll attempt a few things to see if I can cause this error to occur.
I changed the scene scale to .01, armature scale and object scale are 1.00, as it was before. Now everything is properly sized, however the child bone still does that weird move if it’s parent is moved, rotated and scaled.
Bone rolls are the same, but I guess it doesn’t matter, because the child bone shouldn’t move at all.
What else could I try?
I have found an easier way to reproduce (I guess) the same issue:
Now I have two bones: a child and a parent. The child bone doesn’t inherit the scale and the rotation of the parent.
If the animation for the parent bone only contains rotation and move then the child bone acts as it should in UE4. (It doesn’t rotate)
If the animation for the parent bone contains rotation, move and scale then the child bone will also be rotated to the mirrored direction. It still doesn’t inherit the scale transform from the parent, but it is rotated. My guess is that it does the counter rotation twice (or I am not sure how it is translated if it doesn’t inherit the parents rotation).
The weird thing is, that the problem is with the child’s rotation, however it only happens if I scale the parent.
One more step to make it more simple:
Even 1 position is enough with the same bones:
If I only rotate the parent, the child will be unrotated as it should. If I rotate and scale the parent, the child will rotate to the opposite direction.
Does this problem only occur at my pc? I am using the standard set of both blender and UE4. I am a bit confused.
We are still looking into this error, I apologize for the delayed response. Unfortunately this one has been tricky to nail down exactly what is occurring. I’ll post back here once I have an update but thank you for the .blend file, it will hopefully help us find the error in question.
Try renaming the Armature bone to “Root”. We were looking through the blend file and noticed this, the editor typically looks for a single root bone for the skeleton to function correctly.
No. Even with your fbx files the problem is the same. Do these files work correctly at your end? Can be the problem with my import settings? (I use the default UE4 settings.)