animation problem - losing pose on an inserted keyframe

In advance folks, this is a newbie question; apologies in advance if this is basic or has been answered elsewhere. Ive Googled for it a bit and have had no luck.

I’m having a problem using Blender to edit an animation. I imported a COLLADA file with a knight + horse, including the animation and armature. Now, I’m having a problem animating the figure.

I enter pose mode, then I use the timeline to tick myself past the last keyframe. Then I select 1 bone, say the horse’s foreleg, and rotate it in around the X-axis. So far, all well and good. Then, I type “I” to insert a new keyframe. I see a new yellow line indicating a new object keyframe inserted. At this point my model is still posed the way I wanted it.

The issue occurs when I use the arrow keys to test my new posed keyframe. I go back a couple frames, then go forward again to the one newly inserted, and that new frame of animation is the exactly the same as the keyframe before it. To all indications, the results of my activity to pose the model were not inserted into the keyframe.

Is there something simple that I am doing wrong?

Thanks

You describe the procedure correctly, other than not saying what channel(s) you keyframed using the I-KEY. If you keyed Rotation it should work given what you describe, but the only way to suss out why it isn’t working is to look at the .blend file.

When you key the new pose, does it show in the Action Editor or the Graph Editor – a new keyframe should show up in both. If not, maybe the channels are locked? That would prevent the key being recorded.

When I inserted the key, I attempted position, rotation, and scale to ensure I covered everything. After posing the foreleg, I hit “A” twice to ensure that I had the entire armature selected before entering the key.

I definitely see a new key in the Action Editor (Dopesheet I believe?) - a new line of diamonds at frame 82 in this case, one associated to each and every bone. In the GraphEditor I can see a few new dots at frame 82, although there is an interesting disparity between my new frame and the other frames on the Graph Editor: the new frame has 3-4 dots, while the other frames on the Graph Editor have so many that they appear to be a straight line vertically at each frame. Is this significant? I’d assumed from the Action Editor readout that a transform had been fixed for each bone, but maybe that is not indicated by the Graph Edior?

I double checked all the lock icons on each bone, they appear to be unlocked.

I also noticed that I have Quaternion rotations under each of my bones. I dont recall seeing those in any of the tutorials Ive viewed. Is there a different procedure to handle bones with a Quaternion?

Thanks

Everything sounds right, 'cept it ain’t – hmmm. Check the little “speaker” icon near the lock icon – that’s Mute, and makes a channel active or muted. If muted, none of the keys would have an effect. If mute, the speak has no lines emitting from it. If active, the lines show. The “mute” analogy is a little lame, but hey, it works.

Also, no need to key every bone, just that or those which is being animated. That makes handling the keys much easier and helps prevent a kind of un-smoothness in the motions that can result from a lot of closely-adjacent keys.

Can you post the .blend file? If it’s too big to attach, maybe use pasteall.org

Quaternions (aka quats) are just a different way to express rotations. They are very difficult to set directly because they have 4 dimensions/axes and the values are normalized and not very intuitive. You can switch to using Euler angles (the more common type measured in degrees) in the Properties panel of the 3D Window. But Eulers have some odd limitations to them, the main bugaboo being gimbal lock.

Unfortunately I probably cant post the .blend file. Its licensed to me for redistribution as part of a video game product, but I can’t send the source file around. Not trying to be difficult, but it’s a limitation that I must accept.

However, the bit about switching to Euler angles produced something new. I switched the foreleg bone to use Euler angles, and now I get the exact opposite behavior. When I rotate the bone, the rotation carries through into every frame of the animation. They all inherit an N-degree rotation about the X-axis.

Either there is some other mystery control that I am failing to set that produces opposite behaviors depending on the rotation computational method (which is what I’m hoping for), or the COLLADA-to-blend conversion unhinged things somehow(?).

Well, it’s the kind of problem that can be very hard to solve without working with the file itself, just too many nooks & crannies to look into, and sometimes, the very obvious, isn’t, unless you’re lookin’ right at it. Sorry my guesswork isn’t better.

The idea that adding a rotation at one frame causes all other keyed frames to have a rotation added to them is very odd, indeed, if I understand what you’re saying.

Can you post a stripped file that has just the armature & animation data, no mesh or graphics? Maybe that isn’t quite so proprietary. Or, if your licensors say it’s OK, I could sign an NDA and you could email the file to me, not post it publicly. It sounds like a heckuva problem, I’d like to look into it if possible.

I think I can actually go one better than using the full knight model, in a way.

I have replicated the problem with a simple animated cylinder with three bones. Its a 4 frame animation - a neutal frame + several frames that were posed and keyed.

The files in the zip attached are as follows:

  • TestAnimation.blend : this is my original source file. Everything should be editable here.
  • TestAnimation2.fbx : I exported this with animation, and confirmed using another tool that the animation is present and works. This is representative of where the knight model starts in my process. I have another tool that transforms FBX files into a COLLADA file (I use Ultimate Unwrap 3D for this as I have had zero luck with Autodesk FBX Converter) which is importable by Blender.
  • TestAnimation2.dae : this is the COLLADA file that is generated by Ultimate Unwrap 3D; it represents the intermediate file for the knight model, which I import into Blender
  • TestAnimation2.blend : this is representative of the file containing animations that I am trying to edit after importing the intermediate COLLADA file. When I move the frame counter past the last frame, pose the model, and then insert (rot,pos,scale) I get a new keyframe, but after backing up a few frames then returning to the one inserted the rotation is gone.

The last file in the list is the key item. The others are included for information if they in any way help to diagnose the problem by looking at differences.

My optimistic side is hoping there is a setting that set on the imported file that isn’t in any of the others. Ive had other similar problems importing models before.

I am working with Blender 2.63 on Windows 7 x64.

TestAnimation.zip (215 KB)

chip I wanted to drop a quick reply to check back later if you can - I posted a reply with a model in it (I was able to recreate the problem using a simpler animation that I ginned up) but it’s got to go through the moderator before it will show up. I’m not sure how long that takes, and my post could be well down the list.

thanks for your suggestions so far by the way, I’ve been learning a lot at the least!

I reckon you’re animating a bone that isn’t animated in the imported action.
Before you set that first keyframe are the channels for the bone you’re animating green or grey?

1 Like

@ freen: The channels read all green when I opened the file. The animation’s been baked to linear curves, but that isn’t the problem. See below.

@beanworks42: You’re right, adding keyframes to the Action resulting from your import adds keys and the F-curves look proper, but the new keys aren’t recognized or acted on. The imported animation shows some very odd features I’ve not seen before. It seems as if each channel of animation (rotation, location and scale) has 5 component channels (sub-channels?) that somehow combine to create the overall imported motion. If you key a new motion such as a rotation, it is keyed into only one of the five component channels, and the others, not keyed, act to override the new keys. You can see this by going into the Action Editor and using the Mute icon to disable all but one set of the channels, the one the new keys are placed in. First, the imported motion changes, since it’s missing some of its “components.” But the newly keyed motion works OK.

I’ve not run into this configuration of animation channels before, so I can’t suggest a way to consolidate the component channels into a single channel for each transform. Perhaps taking the data apart in detail may reveal why it has a sub-channel architecture? The only way I can see at first glance to remedy this is to key the imported animations into a new Action. If you place the timeline on a keyframe in the imported Action, you can then key the bone transform into a new Action, and it records properly. But this is very laborious. Maybe someone else can suggest a way to consolidate the sub-channels in the original import.

Thanks for the quick look-see. I will have a look at my FBX import settings, as well as the COLLADA export settings in Ultimate Unwrap 3D. I didnt pay particular attention to them. It’s also possible that there is mischief in the FBX file, which I might be able to rectify with the FBX converter - I’d hope it will at least handle that file format properly (if indeed there is anything amiss there, of course).

I’ll keep my eyes peeled here as well in case there is an in-Blender solution.

Thanks much for all the help and suggestions!

@ beanworks42 – Did you ever figure out what the deal was with the multiple sub-channels in your imports? It’d be interesting to know how these were generated, since it seems a bit contrary to the usual notion of how such animation channels work, in Blender at least. While it presents a bit of a problem, in your case, it might actually be useful in another context to be able to deconstruct the motion components in similar fashion.

hi i am new to this forum. I want to animate the sky in background on my project. I am trying from daytime to nighttime. Everything models are animating but background that i am struggling… I thought i could do insert keyframe and use world to edit… nothing happen. I looked for wiki, tutorials and etc. nothing. can you help me? thanks

i’ve also been struggling with this problem and this comment hit me with what i was doing wrong all along, thank you