• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

Blender local rotation issue

Dutcheeseblend

Resource contributor
Messages
1,541
Country
netherlands
Hi everybody,

I'm busy with animating my Fokker right now, but, I've got a problem. I want the 'door' to rotate around it's lower edge, which has a quite difficult orientation. I created that orientation, made sure it was set as local finally. Then, I started keyframing it.

The first frame:

Everything is in order!

The second frame:

No problems!

The third frame:

Everything allright!

Now, I played the animation back (in fact, I discovered it in FS at the first time, but Blender has the problem as I discovered).
The door started to rotate very strange, tilting a bit in different orientations, from the first frame to end in the second frame at the right position.
Between f1-2:

And it does the same between the second and third frame, but ending correctly at the third frame:

What's happening? What am I doing wrong? Can this be solved?
Please, I'd like to hear if someone else has this too, and, if someone could help me out!

Thanks in advance!

Dutchie;)
 
Last edited:
Hi Dutchie.

This is a known issue. When animating rotation about any axis other than the global x, y, z-axes, Blender tends to calculate some odd interpolation between the keyframes (actually, it is the direct result of the interpolation that you see in the f-curve editor). However, there is a fix/workaround that I use, which I would describe as "making the local axis global".

First, save your work. Hehe...:duck: Then, undo all your animations (delete keyframes 100,50 then 0 last). Now, if you haven't already, create a transform orientation using your 'door' (I will call it TO_door). Add an empty at the location of your door. Then, set transform orientation to "Global" and align your door to that (Object>Transform>Align to transform orientation). Check your door's rotation, it should be (0,0,0); if it is not, Ctrl-A>Rotation. Make the empty the door's parent. Set transform orientation to TO_door and align the empty to that. By now, your door should be repositioned in the exact same location and rotation as in the beginning, but with rotation saying (0,0,0). Animate your door again. Note: you don't need to export the empty with your model for the animation to work in FSX.

Hope this is somewhat understandable...
Cheers and Happy New Year!
 
Last edited:
A happy new year!

Thanks for your replies! Though I tried the method various times, it didn't work.

I guess nothing really changes, because you still are animating around the local axis. The result is still the same.

Hmm, should it work as a skinned animation?
 
I tried another way: after using your method, I rotate the object with the rotation manipulator, instead of using the standard translate manipulator (in fact, I never use other manipulators).

Anyway, problem solved! Thanks a lot Felix, for your help, and even more for your toolset. It's doing a great job!
 
The key to success is having the door show a rotation of (0,0,0) in its initial position. And to achieve that, you make an empty (also with rotation (0,0,0)) its parent while the door is aligned to the "Global" transform orientation, where its rotation should be (0,0,0). Make sure to check that. After parenting the empty to the door, no matter what orientation the empty has, the door should still show a rotation of (0,0,0). Even so after aligning the empty to the door's previous orientation, where the latter should recover its initial position. You then revert to "Local" transform orientation and animate the rotation locking the axis of your choice.

So,
  1. Add empty at origin of door.
  2. Create transform orientation "TO_door" from door.
  3. Select transform orientation "Global".
  4. Align door to transform orientation. It will lose its initial orientation and be totally out of place.
  5. Check door's rotation -> (0,0,0)!
  6. Set empty as door's parent.
  7. Select transform orientation "TO_door".
  8. Align empty to transform orientation. The door should now snap back into place. Don't unparent.
  9. Check door's rotation again. Should still show (0,0,0).
  10. Select transform orientation "Local".
  11. Animate the door.

Skinned animation may work in the case of your door, but the script still has some issues with that. I wouldn't recommend that at the moment. The method above is proven to work in 2.69 and should work for you too.
 
Last edited:
I discovered that I accidentally did it according to your descriptions above. At first, I forgot to animate the DOOR around the LOCAL axis. And my TO was incorrect.

Thanks for your help Felix!
 
Ok, I was able to rotate an object along its local axis at an odd angle with no issues on playback within Blender. I dont think Im getting what the issue was. lol sad eh?
 
Hi all,

I just found out that not only the door needs to be tagged with the appropriate doorx tag, but its parent empty as well. So far this only seems to be applicable to internal models.

So after solving the local rotation issue stepwise as shown above, tag door AND empty with door0.
 
Back
Top