Jump to content
Hash, Inc. Forums

Forcing a Keyframe on every frame?


Rodney

Recommended Posts

  • Admin

Okay, here's a silly quesiton...

 

Let's say I have an animated sequence with keyframes in various locations spread throughout the sequence.

In other words... it's a real mess.

 

Is there a way to force a keyframe for every bone that has a keyframe assigned to it on every frame of the animation?

 

My thought is that while I want to reduce the number of keyframes I don't want to risk altering the current animation to any great extent. Keying every frame would allow going back in and deleting keyframes while knowing that other keys are still in place.

 

This is an approach I've found to work really well with simulation (such as Simcloth which places a keyframe on every frame). Going in after the simulation and simply removing unwanted keyframes works really well. While I haven't use the methodology I'd say copying the keyframe we want and pasting them into another Chor Action would work just as expediently.

 

Any thought? Can we force all keyframes on every single frame?

 

The closest I've been able to come to keying every frame simultaneously is using the Insert key to key everything on the current frame.

That works but has me manually moving to each and every frame in order to press the Insert key.

Link to comment
Share on other sites

  • Admin

Hmmm... I tried a mouse motion type approach with the animation playing and hitting the Keyframe button (or was that the Insert key, I forget) That's a bit of a clumsy way... but it works. The benefit being that I don't have to key every frame just the ones that I feel are important and then delete the rest.

Link to comment
Share on other sites

Hmmm... I tried a mouse motion type approach with the animation playing and hitting the Keyframe button (or was that the Insert key, I forget) That's a bit of a clumsy way... but it works. The benefit being that I don't have to key every frame just the ones that I feel are important and then delete the rest.

 

An easy way is, to export your action as *.mot-file and reimport it again with a tolerance of 0.

 

Step by step:

1.) RMB on the Action in the PWS and choose "Plugins > Export > Motion (*.MOT)"

2.) Export the action to a file. (name does not matter)

3.) RMB on the Action in the PWS again and choose "Plugins > Import > Motion (*.MOT)".

4.) Choose a tolerance-level of 0.

5.) Import again.

 

Neve tried this before, but it worked in my simple case here.

 

See you

*Fuchur*

Link to comment
Share on other sites

Hmmm... I tried a mouse motion type approach with the animation playing and hitting the Keyframe button (or was that the Insert key, I forget) That's a bit of a clumsy way... but it works. The benefit being that I don't have to key every frame just the ones that I feel are important and then delete the rest.

 

Rodney

 

As you know, I am the most technically competent person on the forum ( joke ) but, I was thinking about this earlier. Gerald's suggestion is more likely to work than mine but, here goes

 

If you have full body selected in the keyframes section,

Select the root bone,

then step through the animation forcing the keyframe on that,

It will only put the ones in on the bones you have selected before but, if you then bake that action in the chor it seems to but a key on every bone, even if you've not selected it before ? You could then export it and work from there .

 

(less than) two pennies worth

simon

Link to comment
Share on other sites

  • Hash Fellow

RMB in the Chor window and Choose "Bake All Actions" with a "tolerance" of 0

 

This will keyframe all the curves on every frame.

 

Manually keyframing is not ideal because every time you add a CP to a curve it slightly alters the rest of the curve just like in the modeler.

 

Bake all Actions preserves the original shape of the curves.

 

 

Howeve the reverse is true, when you delete a CP that also changes the shape of the curve. If you goal is to eliminate keyframes (why?) I'd say it's better to thin out your original animation and just be careful with what you do.

Link to comment
Share on other sites

RMB in the Chor window and Choose "Bake All Actions" with a "tolerance" of 0

 

This will keyframe all the curves on every frame.

 

Manually keyframing is not ideal because every time you add a CP to a curve it slightly alters the rest of the curve just like in the modeler.

 

Bake all Actions preserves the original shape of the curves.

 

 

Howeve the reverse is true, when you delete a CP that also changes the shape of the curve. If you goal is to eliminate keyframes (why?) I'd say it's better to thin out your original animation and just be careful with what you do.

 

Ah, did not realised we were talking about the chor but thought of an action itself. But yes, than Roberts suggestion is the right most straight forward one.

 

See you

*Fuchur*

Link to comment
Share on other sites

  • Admin

Thanks Guys, you've given me not one but three approaches to this. :)

 

Simon,

I'm curious about yours because the only way I see it working for what I'm thinking of is in the sense that if a key already exists on every frame then it is more likely to store changes in the future. Because there is some grey area there and I'm not wanting to guess but rather to know that everything is keyed I'm going to guess this approach will not work for my purpose. I'm writing this to let it sink a bit further in to my brain because what might not work now might work perfectly later in some other project. :)

 

Fuchur,

I have to admit I'm a fan of exporting and then reimporting in some specific cases in A:M. I use to be that way more for some specific cases and I confess that short of MDD export I hadn't thought too deeply of exporting. That zero tolerance thing... now that is important. Things like that remiend me of the throwaway/sacrificial processes that can sometimes be done to get to a goal all the while knowing that the middle process won't show up in the end product but is just a means to move forward. As I see it, using the Action to .MOT process should work quite well and as you've stated all that would need to be done would be to export the Chor as an Action and then reimport that Action. Again with the sacrificial process to get things going.

 

Robert,

It looks like you win the kuepy doll for best process and I'll be looking into that first.

 

If you goal is to eliminate keyframes (why?)

 

I agree that having a solid plan to begin with is ideal but unfortunately I rarely find myself in that ideal world.

There is also the idea of getting an animation from someone else and then having to figure out what is going on in the channels... not much of a problem for me at this point but it could be.

 

I should have thought of Baking Actions. That seems so straightforward and that's probably why I overlooked it. As I said with Fuchur though I don't think I'd have thought to set the tolerance for zero although I'd like to think I would have figure that out eventually on my own.

 

I suppose to answer the question though I'd say that there are a number of processes that create keyframes on every frame of an animation; simulation, mo cap and baking of Actions being three prevalent ones. In the first two I've experienced first hand the benefits of decreasing keyframes so I have good reason to expect the same from Actions.

 

There is a danger of course that in decreasing keyframes some key (i.e. important) movement can be lost and so I suppose a second/follow up question to this one would be how to best approach merging of adjacent keyframes.

 

I suspect that reducing channels can do this... or perhaps rebaking again with a different tolerance is an equivalent of 'merging'?

 

This second part is just one of those inevitable curiosities that come with the territory of keying and at this exact moment is not the primary goal. I believe you've resolved that by suggesting the Bake All Actions approach.

 

Thanks guys! :)

Link to comment
Share on other sites

  • Hash Fellow
... so I suppose a second/follow up question to this one would be how to best approach merging of adjacent keyframes.

 

I look at the shape of the curve, delete the CP i don't want, then reshape what's left to look like what was there before.

 

You only do this on one curve at a time.

 

But unless a CP is the cause of some problem I just leave it.

Link to comment
Share on other sites

... so I suppose a second/follow up question to this one would be how to best approach merging of adjacent keyframes.

 

I look at the shape of the curve, delete the CP i don't want, then reshape what's left to look like what was there before.

 

You only do this on one curve at a time.

 

But unless a CP is the cause of some problem I just leave it.

 

Reduce keyframes will do that for you. You have to do it one by one with everychannel, but it is still faster then going through all of them by hand.

RMB on the channel you want to reduce in PWS and select "Reduce Keyframes".

 

You will be asked for a reduce-level to insert...

 

See you

*Fuchur*

Link to comment
Share on other sites

  • Admin
Reduce keyframes will do that for you. You have to do it one by one with everychannel, but it is still faster then going through all of them by hand.

RMB on the channel you want to reduce in PWS and select "Reduce Keyframes".

 

You will be asked for a reduce-level to insert...

 

See you

*Fuchur*

 

Yeah, I think for my purposes digging that deep into the individual channels isn't going to be realistic.

I could see doing that when refining and finely tuning details but there is no possible way I'm going to be going into every single channel individually and reducing them via that method. It'd be easier to go into keyframe/dopesheet mode and perform some other process.

Reducing every channel's keyframes manually might take weeks while deleting keyframes manually from the top level could be done in a matter of minutes. Of course, this is why we want our key poses to be at the right location... because if they aren't... we've just deleted the important stuff!

 

There is another (better) way to reduce/merge keyframes and I'm convinced I've done it before.

My memory says it was when I was dialing back the number of keyframes set on a BVH motion capture.

Now I've just got to be clued back in. ;)

 

It almost seems to me that it had something to do with a copy/paste function.

You know, like grab every fourth key (i.e the good stuff)... delete everything including the good stuff... and then past the good keys back.

Not sure but I seem to remember Raf Anzovin doing it.

Link to comment
Share on other sites

  • Admin
... so I suppose a second/follow up question to this one would be how to best approach merging of adjacent keyframes.

 

I look at the shape of the curve, delete the CP i don't want, then reshape what's left to look like what was there before.

 

You only do this on one curve at a time.

 

But unless a CP is the cause of some problem I just leave it.

 

One method I've found to work in a good number of places is to create a keyframe at the appropriate location on both sides of the keyframe that I want to get rid of and then delete that keyframe. This merges in the sense that it averages the new keyframe out based on what is happening at the two extremes outside the new keyframe... that's what I might term an 'averaging merge'.

 

A little more controlled merge would be that of simply sliding the keyframe from the old location to it's desire position.

This has the benefit of maintaining all of the keyframes (i.e. not averaging them based on it's neighbors) but is subject to the biases of both. I'm not sure what this form of merge would be called as technically it's not really combining any keyframes. Perhaps it is 'transposing'. Trans + Pose.... that works for me. :)

 

'Transferring' would then be using the Copy/Paste method of moving keyframes from one location to another.

Link to comment
Share on other sites

... so I suppose a second/follow up question to this one would be how to best approach merging of adjacent keyframes.

 

I look at the shape of the curve, delete the CP i don't want, then reshape what's left to look like what was there before.

 

You only do this on one curve at a time.

 

But unless a CP is the cause of some problem I just leave it.

 

One method I've found to work in a good number of places is to create a keyframe at the appropriate location on both sides of the keyframe that I want to get rid of and then delete that keyframe. This merges in the sense that it averages the new keyframe out based on what is happening at the two extremes outside the new keyframe... that's what I might term an 'averaging merge'.

 

A little more controlled merge would be that of simply sliding the keyframe from the old location to it's desire position.

This has the benefit of maintaining all of the keyframes (i.e. not averaging them based on it's neighbors) but is subject to the biases of both. I'm not sure what this form of merge would be called as technically it's not really combining any keyframes. Perhaps it is 'transposing'. Trans + Pose.... that works for me. :)

 

'Transferring' would then be using the Copy/Paste method of moving keyframes from one location to another.

 

In the end you could use the export-method again going to *.mot and using a value other than 0 for importing back again...

 

See you

*Fuchur*

Link to comment
Share on other sites

  • 2 months later...
  • Admin

I've been testing out some keyframing issues and turned to Baking Actions again only to discover something isn't quite working as expected.

 

Trivial example:

Create a new Chor

Open Thom or other model and put him in the Chor

Apply an Action (such as Stagger from the library)

Bake Action with a tolerance of 0, 1 or whatever

In the Timeline, note the first and last frames of the sequence are not baked as expected.

The first and last keyfame always seems to shoot off in unexpected directions for me.

 

Perhaps someone can confirm this on their end?

 

I've noted several issues with forcing keyframes that seem to be off today.

I'm not sure if it's related only to v17d but that is what I'm using here.

As I get time I'll reinstall v17c and check to see if it is also happening there.

Link to comment
Share on other sites

I've been testing out some keyframing issues and turned to Baking Actions again only to discover something isn't quite working as expected.

 

Trivial example:

Create a new Chor

Open Thom or other model and put him in the Chor

Apply an Action (such as Stagger from the library)

Bake Action with a tolerance of 0, 1 or whatever

In the Timeline, note the first and last frames of the sequence are not baked as expected.

The first and last keyfame always seems to shoot off in unexpected directions for me.

 

Perhaps someone can confirm this on their end?

 

I've noted several issues with forcing keyframes that seem to be off today.

I'm not sure if it's related only to v17d but that is what I'm using here.

As I get time I'll reinstall v17c and check to see if it is also happening there.

Yes Rodney I'm getting the same too. The bad key frames don't just seem to be confined to the start and end but run all the way through.

The first render is WITHOUT Baking and the other is WITH Baking + Error Tolerance 1. Other tolerance settings made no improvement.

Have also tried in v16a and got the same results.

Thom_CanCan_Not_Baked.mp4

Thom_CanCan_Baked_Tolerance1.mp4

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...