I'm trying to build heads of different characters, and I'm creating actions for different stages of head turns.
Now my thought was that to create different characters I could paste the actions of the different head poses of one character on different keyframes on the main timeline, and then use the relative keyframes option to remodel the base figure in frame 0 or 1, which should then make changes to the character throughout the timeline.
Then in theory I could simply copy those changed keyframes into actions and I should have a new character with a full set of actions for the different positions of the head.
But it seems that I may not be able to do that as I can't figure out how to get those keyframes into actions. It may not even be possible.
I've used the 3D software Lightwave 3D and it's quite natural that you can make changes to a base figure and it will relatively change the morph targets (which are comparable to actions in Anime Studio) throughout the model if you want them to. You can choose either relative changes to morph targets or absolute.
So I sort of naively expected Anime Studio to be able to treat actions in a similar way.
I can't figure it out. Or know if it is even possible. Can anyone help? Is it possible? Is there a script for this?
Is there a way to create an action from a keyframe?
Moderators: Víctor Paredes, Belgarath, slowtiger
Re: Is there a way to create an action from a keyframe?
Cool idea. Using relative key framing to change actions like this for different head shapes! I like this!
You could just do this all in the action. Normally smart bone actions aren't suppose to be edited on frame 0, but in this case this is what you want to do. So if you had a new head with new smart bone turn based on the previous head shape, you would open the action, select all the key frames, turn on "relative keyframing" and make edits on frame 0 to change the head shape. This will change all of the head turn keys you created previously.
If you already have keys for point movement in the main time line and want to copy to an action, activate the action, right click the "Mainline" in the action palette and choose "insert copy" (must be on frame 1 in the action). This will place those keys from the main into the action, and then you can make edits on frame 0 as described above.
Hope this makes sense.
You could just do this all in the action. Normally smart bone actions aren't suppose to be edited on frame 0, but in this case this is what you want to do. So if you had a new head with new smart bone turn based on the previous head shape, you would open the action, select all the key frames, turn on "relative keyframing" and make edits on frame 0 to change the head shape. This will change all of the head turn keys you created previously.
If you already have keys for point movement in the main time line and want to copy to an action, activate the action, right click the "Mainline" in the action palette and choose "insert copy" (must be on frame 1 in the action). This will place those keys from the main into the action, and then you can make edits on frame 0 as described above.
Hope this makes sense.
Re: Is there a way to create an action from a keyframe?
Yes it does make sense Vern, thanks.
I just tried out your second suggestion, and yes it works.
Although the only difference was that using this technique you have to delete all the keyframes in the action timeline you are presented with before and after your frame of action, then move your keyframe back down to frame 1. And there you have your new action.
This must allow people to create characters at a much faster speed.
If you have a character with many actions already created, rather than having to create loads of new actions completely from scratch for a brand new character, you can just generate all your new actions by modelling mainly just one frame. It doesn't matter what actions, be they phonemes or facial expressions, you have all your actions laid out on the main timeline, say every 10 frames or so, then with relative keyframing set to on you highlight all your point motion frames along the timeline and model your new character's face in frame 0.
Then you get a different character in your main timeline. This post by Selgin in this thread for a script that is no longer needed for this illustrates this...viewtopic.php?f=12&t=22434
Then using the method you describe in your second paragraph you can then change all your actions by overwriting them with the new main timeline references to create new ones.
You do need to go through all the layers and repeat the process though if your model is constructed on several layers, e.g face, ears, eyes etc., but if you have many actions then it's a damn sight quicker than having to point by point model a new face from square one for many actions.
Of course you'd probably want to tweak these actions, but then I guess that would go without saying. Tweaking is a lot quicker than starting a model from scratch each time and for every action.
Thanks a lot Vern, your post has helped a lot.
It would still be good if a future version of Anime studio allowed the facility you to relatively change actions in the same way that it currently allows you to relatively change keyframes in the timeline.
Would this be a nightmare for a programmer to write a script for?
I just tried out your second suggestion, and yes it works.
Although the only difference was that using this technique you have to delete all the keyframes in the action timeline you are presented with before and after your frame of action, then move your keyframe back down to frame 1. And there you have your new action.
This must allow people to create characters at a much faster speed.
If you have a character with many actions already created, rather than having to create loads of new actions completely from scratch for a brand new character, you can just generate all your new actions by modelling mainly just one frame. It doesn't matter what actions, be they phonemes or facial expressions, you have all your actions laid out on the main timeline, say every 10 frames or so, then with relative keyframing set to on you highlight all your point motion frames along the timeline and model your new character's face in frame 0.
Then you get a different character in your main timeline. This post by Selgin in this thread for a script that is no longer needed for this illustrates this...viewtopic.php?f=12&t=22434
Then using the method you describe in your second paragraph you can then change all your actions by overwriting them with the new main timeline references to create new ones.
You do need to go through all the layers and repeat the process though if your model is constructed on several layers, e.g face, ears, eyes etc., but if you have many actions then it's a damn sight quicker than having to point by point model a new face from square one for many actions.
Of course you'd probably want to tweak these actions, but then I guess that would go without saying. Tweaking is a lot quicker than starting a model from scratch each time and for every action.
Thanks a lot Vern, your post has helped a lot.
It would still be good if a future version of Anime studio allowed the facility you to relatively change actions in the same way that it currently allows you to relatively change keyframes in the timeline.
Would this be a nightmare for a programmer to write a script for?
Re: Is there a way to create an action from a keyframe?
No way man! Thank YOU!
This is a cool technique. I can't believe I never thought of it myself. I am working on something right now where I need to create a bunch of different head styles and was dreading recreating all of the full 360 degree head turns for each one. I plan to try this out. I think it will save a lot of time.
--------------
As for scripting a "relative keyframe smart bone action modifier"....
... that immediately popped into my head while fiddling around with your original question. The relative keyframing works but as you said, it could be "better".
(Below is brainstorming that helps my process)
The starting point or "sample" would be a head turn smart bone action that moves points on potentially many layers.
When you make edits on frame 0 of the main line of the layers, the "relative" point motions would be transferred to all actions associated with that layer. This would be exactly the same as if you had "relative keyframing" turned on but would be easier. Instead of having to copy and replace action keys, you could simply edit on frame 0 of the mainline and the actions would automatically be updated.
Main issue is how or when the script would process point movement. This could be a temporary layer script or a tool modification. To work properly it would have to be "real time" because editing keys on frame 0 would change their positions and the original point positions are lost. You couldn't run a post processing menu script... but... you could have "default" or "original" point positions stored in the first frame of the actions to calculate the offset for the other keys.
I will let this idea percolate in my head and see if anything good comes out. I've got some idea about how freaking complex it would be BUT it is definitely possible to script this.
What I do is think about how hard it is to do something and how hard it is to script it. If the default process is fairly simple and the script a freaking nightmare I would pass on it.
This is a cool technique. I can't believe I never thought of it myself. I am working on something right now where I need to create a bunch of different head styles and was dreading recreating all of the full 360 degree head turns for each one. I plan to try this out. I think it will save a lot of time.
--------------
As for scripting a "relative keyframe smart bone action modifier"....
... that immediately popped into my head while fiddling around with your original question. The relative keyframing works but as you said, it could be "better".
(Below is brainstorming that helps my process)
The starting point or "sample" would be a head turn smart bone action that moves points on potentially many layers.
When you make edits on frame 0 of the main line of the layers, the "relative" point motions would be transferred to all actions associated with that layer. This would be exactly the same as if you had "relative keyframing" turned on but would be easier. Instead of having to copy and replace action keys, you could simply edit on frame 0 of the mainline and the actions would automatically be updated.
Main issue is how or when the script would process point movement. This could be a temporary layer script or a tool modification. To work properly it would have to be "real time" because editing keys on frame 0 would change their positions and the original point positions are lost. You couldn't run a post processing menu script... but... you could have "default" or "original" point positions stored in the first frame of the actions to calculate the offset for the other keys.
I will let this idea percolate in my head and see if anything good comes out. I've got some idea about how freaking complex it would be BUT it is definitely possible to script this.
What I do is think about how hard it is to do something and how hard it is to script it. If the default process is fairly simple and the script a freaking nightmare I would pass on it.
