Strange parent/child double transform when keying

I have found that trying to animate a child has a strange double transform effect when key framing. I have watched many, many parenting and rigging tutorials and have looked for forums that address the issue but have not found anything relevant. So here it is.

Here is a video of the problem. https://www.youtube.com/watch?v=_f5VjDxdBUs
As you can see it is a very simple parent of one cube to another. But if I rotate the parent and then keyframe the child the child jumps.

Welcome to BA :slight_smile:

You need to apply all transforms on both objects (Ctrl A), and then you should probably be animating the delta location instead of the location

1 Like

Thanks for the welcome! I am excited to be here. I am a long time Maya user (20 years now!) and am new to Blender. I am trying to wrap my mind around the Blender workflow.

Unfortunately, applying the transforms and animating the delta location still has strange artifacts :frowning:

You’re right, that is weird. But I’m having trouble recreating the issue. When I try to follow the steps you take in the video, my cube doesn’t jump.

Is it possible that there is some step that I’m missing, from just trying to follow along with the video?

I make a cube. I duplicate it, move it, scale it down. I object parent the duplicate to the original (using the menu.) I rotate the original. I keyframe the location of the duplicate (using the buttons in properties/object/transform.) I advance frames-- and it stays exactly where it is. As everybody expects, as it should.

Perhaps you could share the file? Or perhaps you could list the exact steps you’re taking in text?

1 Like

This should not happen. Is this some wierd bug on Mac?
One weird thing i noticed is that when you set the keyframes by dragging only one of them turns yellow the other ones turn brown. Yellow indicates that the keyframe is on the current frame.
Brown indicates that there is a keyframe on the current frame but that you have changed the value of this key frame and have not yet commited it.
Can you try doing the same thing but instead of dragging the keyframes click on them individually.
Or of that does not work hoverover one of the values and hit the “i” key.

1 Like

First thanks to everyone chiming in! You all are amazing. If you are ever in Bangkok I’ll buy you a fancy coffee.

I am able to upload the file now (less of a noob).

strange parent child double transform when keyed.blend (817.5 KB)

I will try this out on my PC when I get home and see if that makes a difference.

2 Likes

OK. So I did the same thing on my PC at home and no problems… so looks likely to be a bug on the Mac.

What are some possible work arounds? Drivers? Constraints? Bones?

Should I report this bug on the Blender.org forums?

This is just too basic to work around. It’d be like trying to work around a broken monitor.

You could see if armatures and bone parenting are less buggy.

I guess you should be looking at other options for parenting as well. I’ll typically parent with ctrl -p in the 3D view, and that has options for “keep transform”, “keep transform without inverse”. I don’t even know what the menus do because I never use them.

Yeah, you should report it on the bug tracker, not any forums. To get to the proper page, use help->report a bug from the main menu in Blender.

1 Like

Yes, please report the bug. But not on the forums.
In Blender go to the Help menu (right next to File, Edit and so on)
and press “Report a bug”.
If you need any more help here is a video tutorial:

As for a workaround:
Does creating the keyframes separately without dragging work? You could also try to press “i” in the viewport and then from the menu select “location”. Or press “i” while hovering over your transforms.

Creating keyframes separately has the same effect. As does pressing “i”.

I reported the bug. I downloaded version 2.8 and it works fine on Mac but of course it messes up my files that were created in 3.3.

Thanks for everyone’s help. It is super helpful knowing it is a bug.

Peace.

1 Like

This is a terrible bug. Thank you for reporting it.

It appears that keyframes are created. The one on the z axis is created correctly. The ones on x an y are not. can you check the curve editor (shift f6) where these keyframes are created?


Here is a screenshot of the curve editor.

Also I have been testing older version of Blender on my Mac. It turns out version 3.1.2 things work normal. It is the later versions that this started,

If you move the timeline now to another frame what happens with the keyframes?

Run into the same thing. Its in Blender since a long time I guess. Problem is that Blender does parenting different to other apps, because it has not really a good support for local and global coordinates. It has got the feature, but you can run into a lot issues. I noticed that back in Blender 2.7 and it did hold me back a long from using Blender.
Sadly. its never been fixed. And with animation its even worse. The only work around is to use the curve editor.

Here is the bug report. Maybe you can tell them that you are facing the same problems. They dont seem to have a mac triager.

https://developer.blender.org/T101324

Interesting, I have the bug on windows too, however the rig is bit more complex. The parented empty was constraint to a surface, as soon as that object was moved, the bug happened.

Ok now confirmed, the same behavior happens on Windows. Parent an item to any object, as long as parent has no transform it works, once it has been moved, it doesn’t. Also delta transform does not help here.

The problem is simple, Blender does not calculate the difference between local position of child and parents, but only the global position of the animated object. Its the overall problem in Blender that let you parent an item to another item without affecting its transform. This is all wrong in how Blender does handle local coordinate system. They create a few work arounds and it feels like fixed, till you run into that again.

I fear that won’t be solved any time soon. Because it would cause heavy rework of the whole system incl. parenting and hierarchies, especially constraints. I don’t thing they will address that soon. Hierarchies and groups are a blind spot in the software. If that isn’t been worked on, I guess it will take 5 years to fix.

I have never had this kind of behavior before and I do what I think you are doing nearly on a daily basis.

Can you post an exact step by step guide on how to produce this bahavior?
Like:

  1. create cube
  2. create second cube
  3. ???

can you sent me a demo scene?

Steps would be:

  1. Create an empty and a Camera.
  2. Parent the camera to the empty.
  3. Set keyframes from all position and rotation in the camera properties.
  4. Set another keyframe for that camera at a later frame… like frame 30.
  5. Move the empty.
  6. Go into camera view and lock camera to view.
  7. Go to a frame in the middle of the keyframes set (you do not need to but its clearer that way).
  8. Now move the camera view or changes the transform properties. Either use auto key or manual create the keyframe.
  9. With the new position, go one frame for or back… the camera should jump back to another position and no keyframe get save.

The video above shows the behavior too.

Hmm… I think I have followed your steps exactly but there is no jumping or any other weird behavior. This is Blender 3.3 on Windows:

  1. Create an empty and a Camera.

  2. Parent the camera to the empty.
    Parenting6_1

  3. Set keyframes from all position and rotation in the camera properties.

  4. Set another keyframe for that camera at a later frame… like frame 30.

  5. Move the empty.
    Parenting6_2

  6. Go into camera view and lock camera to view.

  7. Go to a frame in the middle of the keyframes set (you do not need to but its clearer that way).

  8. Now move the camera view or changes the transform properties. Either use auto key or manual create the keyframe.
    Parenting6_3

  9. With the new position, go one frame for or back… the camera should jump back to another position and no keyframe get save.
    Parenting6_4