moving layers
Moderators: Víctor Paredes, Belgarath, slowtiger
moving layers
hi, i was wondering how you move layers up and down in the timeline window, when you normally do it the layer moves to that place for the intire animation, not just in a keyframe. is there any way you can change that? if not can someone recommend any alternetives? i am trying to get a guy to open a door, walk out a bit, then close it.
If you want the layers to be animated in time and in z depth you should check on the "Sort layers by depth" option in the Project Settings window (under File menu)
if your animated layers are all root layers. If you want also animate layers inside a group layer (or any layer that can hold sub - layers) you should check also the same option but for the group layer (by the option button - the tree dots button in the layer window-)
Then keyframing the z value of the layer you can animate it through time.
-G
if your animated layers are all root layers. If you want also animate layers inside a group layer (or any layer that can hold sub - layers) you should check also the same option but for the group layer (by the option button - the tree dots button in the layer window-)
Then keyframing the z value of the layer you can animate it through time.
-G
There would be two places if it is available in the standard version:
In the project settings right under the big gray background color window. A check box that says sort by depth. Not in preferences... in the project settings.
Then you must turn on sort layers by depth in the layer preferences of the bone or group layer that contains the layers.
You can only animate layer depth for layers at the "root" of a group layer. You can't have a layer inside a "sub" layer go over top of layers outside of that group.
When you figure out if you can use this with your version and get up to speed, I wrote a script that automates the layer flipping using bones. Very simple to use.
-vern
In the project settings right under the big gray background color window. A check box that says sort by depth. Not in preferences... in the project settings.
Then you must turn on sort layers by depth in the layer preferences of the bone or group layer that contains the layers.
You can only animate layer depth for layers at the "root" of a group layer. You can't have a layer inside a "sub" layer go over top of layers outside of that group.
When you figure out if you can use this with your version and get up to speed, I wrote a script that automates the layer flipping using bones. Very simple to use.
-vern
Sort layers by depth.
Moving layers up and down in the layer palette won't do anything. You must animate the layer's translation values using the layer translate tool
To animate the Z axis however you have to change that by typing in values at the top or hold the alt key and dragging. The Z axis movement is hard to see because it is "facing" you... but you will see a kind of perspective distortion.
To change the layer sorting you need to have multiple layers inside a group layer. The group layer needs Sort layers by depth under the Depth Sort tab of the layer properties... not sure where the "insert" layers came up.
This is a "cheat"... the only reason the layers seem to change order is that they change their "height" in the Z axis. They "rise" up over the other layers. Most of us use a very small amount, .01 or -.01 at most, to make a layer move up and down.
You key this with a "Step" interpolation key and the layer will "jump" over or under other layers.
Review the help files and do some of the tutorials and a lot of this will become clearer.
-vern
Moving layers up and down in the layer palette won't do anything. You must animate the layer's translation values using the layer translate tool
To animate the Z axis however you have to change that by typing in values at the top or hold the alt key and dragging. The Z axis movement is hard to see because it is "facing" you... but you will see a kind of perspective distortion.
To change the layer sorting you need to have multiple layers inside a group layer. The group layer needs Sort layers by depth under the Depth Sort tab of the layer properties... not sure where the "insert" layers came up.
This is a "cheat"... the only reason the layers seem to change order is that they change their "height" in the Z axis. They "rise" up over the other layers. Most of us use a very small amount, .01 or -.01 at most, to make a layer move up and down.
You key this with a "Step" interpolation key and the layer will "jump" over or under other layers.
Review the help files and do some of the tutorials and a lot of this will become clearer.
-vern
Heyvern's script
Heyvern, do you have a link to that script you were talking about?
I'm running into a similar problem, and with all my layers, depth sorting puts things off-register due to camera perspective.
It would be nice if Anime had a way to separate heirarchy from stacking, like the parenting tool in After Effects. It would be key for things like putting a neck in a collar, or having a character's upstage arm bend and pass in front of the body. For that I tried slightly tilting the arm on the X axis, but Anime has such an all-or-nothing method to its depth sorting, if that makes any sense.
I'm running into a similar problem, and with all my layers, depth sorting puts things off-register due to camera perspective.
It would be nice if Anime had a way to separate heirarchy from stacking, like the parenting tool in After Effects. It would be key for things like putting a neck in a collar, or having a character's upstage arm bend and pass in front of the body. For that I tried slightly tilting the arm on the X axis, but Anime has such an all-or-nothing method to its depth sorting, if that makes any sense.
My script won't help. It uses the exact same thing, Z depth. the only difference is that it is "automated" from the bone layer. Moving bones causes layers to change their z depth.
Remember to use a very very... very very... very very very small amount of Z translation, .01 or .001. This will reduce some of the displacement. I have a fairly "realistic" character with "tight" shoulder joints to the torso and the Z translation offset is barely perceptible. I have bones that "blend" the transition to the torso.
I think in tricky situations like that arm (bicep/forearm) it would have to be done with multiple copies of the arm layer and animated masking of some sort. Maybe a feathered image layer as a mask? A graduated transparency fall off on a mask so it follows the shape of the arm.
Or just a simple vector mask that hides portions of the arm. The mask could even use the same bones as the arm and the mesh could be animated to tweak it. I've done that before. It's a bit of effort but the results are great.
------
I have tried to animate shape order in a layer with a script, someone else actually pulled it off... a little bit... by using a switch layer with layer names indicating shape order by name in the names of the layers. I think if could be done more simply with scripting but would need the script on every layer.
I find the z depth ordering so much simpler and it only requires a single script on the parent bone layer.
I did do a version of my Z ordering script that physically MOVES the layers around in the layer palette, effectively eliminating ANY z-depth displacement. This is problematic. With Z depth ordering you have a constant base line (0) that never changes. If you move layers around in the layer palette (or shapes in a layer)... then you permanently move those layers/shapes and don't really have a zero point to go back to.
I think we just wait for animated shape ordering to come in a future version. In the mean time I'm happy with the layer z depth solution.
-vern
Remember to use a very very... very very... very very very small amount of Z translation, .01 or .001. This will reduce some of the displacement. I have a fairly "realistic" character with "tight" shoulder joints to the torso and the Z translation offset is barely perceptible. I have bones that "blend" the transition to the torso.
I think in tricky situations like that arm (bicep/forearm) it would have to be done with multiple copies of the arm layer and animated masking of some sort. Maybe a feathered image layer as a mask? A graduated transparency fall off on a mask so it follows the shape of the arm.
Or just a simple vector mask that hides portions of the arm. The mask could even use the same bones as the arm and the mesh could be animated to tweak it. I've done that before. It's a bit of effort but the results are great.
------
I have tried to animate shape order in a layer with a script, someone else actually pulled it off... a little bit... by using a switch layer with layer names indicating shape order by name in the names of the layers. I think if could be done more simply with scripting but would need the script on every layer.
I find the z depth ordering so much simpler and it only requires a single script on the parent bone layer.
I did do a version of my Z ordering script that physically MOVES the layers around in the layer palette, effectively eliminating ANY z-depth displacement. This is problematic. With Z depth ordering you have a constant base line (0) that never changes. If you move layers around in the layer palette (or shapes in a layer)... then you permanently move those layers/shapes and don't really have a zero point to go back to.
I think we just wait for animated shape ordering to come in a future version. In the mean time I'm happy with the layer z depth solution.
-vern
I think a solution for a complex z depth sort is this:
1) Maintain all the shapes inside a vector layer (it could be difficult sometimes but you can try)
2) Place the vector layer inside a switch layer.
3) Rig tour model if you need / want with bones.
3) Duplicate the vector layer as many times the shapes should be ordered.
4) Modify the real order of the shapes in every vector layer so they appear in the correct order depending on your model future position. Rename the layers accordingly.
5) Animate your model with bones. If you do the animation also with point motion the duplication should be done at the end of the point animation. Also usage of 1 frame length actions can help a lot for point motion.
6) Insert the switch keyframes to show the shapes in the proper order in the proper time so the Z transition were as less visible as possible.
Hope it helps.
-G
1) Maintain all the shapes inside a vector layer (it could be difficult sometimes but you can try)
2) Place the vector layer inside a switch layer.
3) Rig tour model if you need / want with bones.
3) Duplicate the vector layer as many times the shapes should be ordered.
4) Modify the real order of the shapes in every vector layer so they appear in the correct order depending on your model future position. Rename the layers accordingly.
5) Animate your model with bones. If you do the animation also with point motion the duplication should be done at the end of the point animation. Also usage of 1 frame length actions can help a lot for point motion.
6) Insert the switch keyframes to show the shapes in the proper order in the proper time so the Z transition were as less visible as possible.
Hope it helps.
-G
Genete,
You may already know about this but I completely missed it myself.
There are attributes of a bone called:
These can be used to store that value in a bone even when it changes later! These values don't change unless you change them.
This is how all the original LM bone tools work. They store these values and then use them to calculate the new positions or angles when you drag the bones or rotate them.
I could store the "old" value of a bones translation and my original script idea should work. I could use this stored value and add to it the offset of the parent and THEN apply that to the translation of the bone. This would totally eliminate any need for dealing directly with actions.
Learn something new everyday.
EDIT:
Nevermind... same problem. Stored values get changed too because the bone gets changed.
-vern
You may already know about this but I completely missed it myself.
There are attributes of a bone called:
Code: Select all
fTempPos
fTempLength
fTempAngle
fTempScale
This is how all the original LM bone tools work. They store these values and then use them to calculate the new positions or angles when you drag the bones or rotate them.
I could store the "old" value of a bones translation and my original script idea should work. I could use this stored value and add to it the offset of the parent and THEN apply that to the translation of the bone. This would totally eliminate any need for dealing directly with actions.
Learn something new everyday.
EDIT:
Nevermind... same problem. Stored values get changed too because the bone gets changed.

-vern
I understood what those values meant but did not figure out how to use it.
That's a very cool idea to store the last value of the bones there. Clever mind is yours Vern! You can store also others values with other meanings.... Mmmm let me think... Maybe I can store automatically Rx, Ry, alpha0 for a solid rig? instead of using the bone dynamics??
Very risky if you consider that any other standard tool would use those values for its original porpouses. Mmmm better not. Better store values in bones... Even for an incremental action insertion could be risky... the user should not touch those bones with none other tool...
-G
That's a very cool idea to store the last value of the bones there. Clever mind is yours Vern! You can store also others values with other meanings.... Mmmm let me think... Maybe I can store automatically Rx, Ry, alpha0 for a solid rig? instead of using the bone dynamics??
Very risky if you consider that any other standard tool would use those values for its original porpouses. Mmmm better not. Better store values in bones... Even for an incremental action insertion could be risky... the user should not touch those bones with none other tool...
-G
You have said it.EDIT:
Nevermind... same problem. Stored values get changed too because the bone gets changed.
I just checked and you can store any type of new additional values in the bones table.Maybe I can store automatically Rx, Ry, alpha0 for a solid rig? instead of using the bone dynamics??
For instance there is the standard ones I mentioned:
Code: Select all
fTempPos
fTempLength
fTempAngle
fTempScale
Code: Select all
boneName.vernsValue = "I like chips"
You could do this! If you are using the points of a mesh to build the rig anyway you could stick those values in there.
Hey! I don't need to build that crazy tool now for editing those bones for the rig! If rigging is scripted you don't need to touch those bones.
-vern
er... yea, so anyways what ive got so far is that you have to have all your layers and stuff in a group, then you have to turn "layers by deph" or something onto project settings and the massive group layer, then on the switch/ bone/ vector / whatever layer, you move the x axis thing up or down one and the layer moves up and down. right? or do you put every layer into a separate group? Can you only move serten layers up or down? pls explain, me very stupid



Example:Someguy 3 wrote:er... yea, so anyways what ive got so far is that you have to have all your layers and stuff in a group, then you have to turn "layers by deph" or something onto project settings and the massive group layer, then on the switch/ bone/ vector / whatever layer, you move the x axis thing up or down one and the layer moves up and down. right? or do you put every layer into a separate group? Can you only move serten layers up or down? pls explain, me very stupid![]()
- R:Group layer
-- A:Vector layer
-- B: Bone Layer
-- C:Group Layer
-- D:What ever other kind of layer inside the parent group layer.
Just set on the "Sort layers by depth" in the R layer (the group one) and change the Z value of the A, B, C and D layers through he time using the layer position tool and the numerical input of the Z value. Remember to change very small amounts like Vern have said (0.001 or 0.002 and so on).
Also remember that Bone layers are also a kind of group layers so they have also the sort by depth feature.
-G