Animated Layer Order not working?

Discuss Moho bugs (or suspected bugs) with other users. To report bugs to Smith Micro, please visit support.smithmicro.com

Moderators: Víctor Paredes, Belgarath, slowtiger

User avatar
Reindeer
Posts: 216
Joined: Sat Oct 17, 2015 8:13 am

Animated Layer Order not working?

Post by Reindeer »

Don't know if I'm doing something wrong or what but I have this situation:
a character has to fly around a tower.
So I put both character layer and tower layer in a Group Layer and tell it to enable Animated Layer Order.
Then I created the character's loop around the tower. I then moved his layer up above and below the tower every time he needed to be shown flying in front and behind it.
The Group Layer with the enabled Animated Layer Order in fact started indicating where I had done this, so evidently it did register my actions.
But on scrolling the timeline or on playback, there is no layer order happening.

EDIT: I will partially take that back. It's not that it doesn't work, it's that it does not seem to work consistently. As if sometimes it doesn't acknowledge a layer being moved. I tried going into the Group Layer and copy/pasting the instances when the character is supposed to be in front of the tower and this way it seems it will 'remember' the action. Don't know... there's something not working quite perfectly, though.
User avatar
Greenlaw
Posts: 9191
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Animated Layer Order not working?

Post by Greenlaw »

Animated layer order usually works for me but I've seen a few situations where it can 'break'. Usually this is when the order has a keyframe in a Smart Bone Action--this can override what you keyframe on the regular timeline.

You might want to try this instead:

When I want to move a major group around another object (like the character going around a large obstacle in your scene,) I usually create a reference of the group, move the reference and then keyframe the visibility of state of each group as needed. In this situation, I also like to mark the reference 'REF_(group name)' and color it red to remind me not to edit the reference because editing the it can break its connection with the original group's animation.

Anyway, since layer order isn't actually being animated with this method, there's no chance of the error you've been experiencing.

Another fun way to use this method is to show only the part of character in the referenced group that you wish to 'wrap' around an object. For example, if you want to have a character hug a tree from behind, place the character behind the tree and hide his arms. Then, create a reference of the character group and hide everything in it but the arms, and move the referenced group in front of the tree. You can switch the layer visibility in each group in the layers panel without breaking the referenced animation connection.

If you want to get really sophisticated about it, you can build in animated masks to parts of your character. I recently used this method to animate a character's hands moving from behind and wrapping around ropes that were hanging in front of the character.
User avatar
Reindeer
Posts: 216
Joined: Sat Oct 17, 2015 8:13 am

Re: Animated Layer Order not working?

Post by Reindeer »

You are spot on right about the Smart Bones, because my character in fact contains four different Smart Bone Dials. So maybe it's that that's bugging the Animated Layer Order.

I still kind of like the idea of the Animated Layer Order because it has the advantage of letting me keep my layers down to a minimum, but, yes, I guess creating referenced groups could be more reliable.

Coming from Flash, I actually used to do something similar to the second solution you suggest (the guy hugging the tree). I would duplicate and then either hide or delete whatever I wanted to hide or show. I find ASP gives me far more control than Flash (and more control for a lot less fretting than TBHarmony, if you count out all the compositing feats), though, so I'm happy and not nostalgic in any way. :D

Visibility and invisibility of layers is very handy indeed. I find it could be made a little easier to use, though. I don't know, sometimes I feel I'm scrolling to a fro on the timeline and double clicking the 'eye' layer a lot on different layers just to get stuff to sync visually. Maybe some sort of new command could come in handy here, like (wording it out): "Make this layer invisible while making layers [layer numbers] visible", or the other way 'round. So, say, you could turn off one layer while turning on another with just a few clicks.
Just to speed up things a little. I don't know how complicated that would be, I'm just whishlisting here :)
User avatar
synthsin75
Posts: 9934
Joined: Mon Jan 14, 2008 11:20 pm
Location: Oklahoma
Contact:

Re: Animated Layer Order not working?

Post by synthsin75 »

If the group layer has no layer order actions, then that shouldn't be the problem. Any chance you could post a cut-down file that only has enough to show the problem?
User avatar
Reindeer
Posts: 216
Joined: Sat Oct 17, 2015 8:13 am

Re: Animated Layer Order not working?

Post by Reindeer »

Image

This is the way my group layer looks, in the point where I'm using the Layer Ordering. The dashed line indicates the actions, if I'm not incorrect (sorry, still getting the ASP glossary under my belt :) ).

Unfortunately I can't re-create the problem now that I've solved it (as said I copied and pasted the parts of the dashed line where my character was in front of the tower and that did it), that is, I'd have to redo that part of the scene to see whether I re-encounter the problem but I'd rather not touch it now that it's working.

I can, though, try to create a new file, maybe a really basic one, like a sphere flying around a rectangle, and see if the same problem appears.
I guess it wouldn't be a 100% scientific test, being that a simpler file would not have Smart Bones, Dials and whatnot, of the other file, but it's worth the try.
User avatar
Greenlaw
Posts: 9191
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Animated Layer Order not working?

Post by Greenlaw »

There's a lot of ways to deal with switching the opacity/visbility of layers. One way would be to use a smart bone to toggle the visibility of duplicates or references. If the layers are resting inside one rig, being careful about breaking a reference connection shouldn't be as big an issue since they're all using the same bones layer. This is useful if you have parts that need move from behind to front of a character, like shoulders and arms, but obviously not as helpful for wrapping around things outside of the rig.

I sometimes take it a step farther with our characters at work by tying a thick 'stroke path' mask that follows the length of an arm to a Smart Bone dial. By using the dial to increase and decrease the Stroke Exposure for the mask, I can hide and reveal different regions of a duplicated arm and make it appear to wrap from behind the shoulder and in front of the belly for example. This is especially useful in rigs that can turn the character 90 - 180 degrees. Note: if you invert the 'stroke' mask, for the one of the dupes, be sure to disable the AA for the mask layers, otherwise you'll get a thin matte line between the two arm layers. In this situation, disabling the AA for the mask has no adverse effect on the render.
Last edited by Greenlaw on Thu Jun 02, 2016 7:11 pm, edited 2 times in total.
User avatar
synthsin75
Posts: 9934
Joined: Mon Jan 14, 2008 11:20 pm
Location: Oklahoma
Contact:

Re: Animated Layer Order not working?

Post by synthsin75 »

Reindeer wrote:This is the way my group layer looks, in the point where I'm using the Layer Ordering. The dashed line indicates the actions, if I'm not incorrect (sorry, still getting the ASP glossary under my belt :) ).
Those are regular keyframes. Although they could be copied actions, that would not interfere. Referenced layer order actions and smart bone actions that control layer order would interfere.
Gaston
Posts: 77
Joined: Tue Jan 03, 2017 11:24 am

Re: Animated Layer Order not working?

Post by Gaston »

Hi there,
this is an old thread but my problem is up to date. :?
I've build a character with smart bones (actions) for the arms to order the layers and it works.
But in the mainline it doesn't works with keyframes - no layer changes his place. What's going wrong?
In the layer settings of the bone layer the checkbox "Enable animated layer order" is on.
User avatar
Greenlaw
Posts: 9191
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Animated Layer Order not working?

Post by Greenlaw »

It would help if you showed a screen cap of your layer panel so we can see the structure. Anyway, here are two possibilities:

1.) Enabling in the Bones layer works for items immediately under Bones, but not for items nested inside other groups under Bones. If your arms are inside another group, Animated Layer Order needs to be enabled for that group.

2.) If the items for which your animated the order do fall under the bones layer, click on the bones layer in the Mainline and check that there are no layer order keyframes. That could cause a conflict for an Action because Mainline keys override the Action.

I think it's more likely you're doing the second one. This is the biggest reason why I avoid putting Animated Layer Order inside a Smart Bone Action: I lose the ability to make manual layer order changes on the Mainline, which can be critical during production animation. If I really need to do this, I'll isolate where the Animated Layer Order happens by creating a subgroup where it's not likely the animator will need to make a manual layer order change or insert a new layer or group (see the first suggestion.) Realistically, I can do this for some rigs but it's not practical for most of the rigs we use.

If I can't use Animated Layer Order in an Action but I really want the effect, I have a handful of workarounds for the issue. For example, I don't need to physically move the layers to change their order; it only has to look like it. Instead of moving the layers, I create copies or references of the layers (like left and right arm groups,) and inside my Actions I can animate the visibility of the layers instead. There are other good ways to approach this, but animating visibility is probably the easier way, and the one I use most often.

(Tip: When I use References, I like to indicate them clearly by labeling them REF or coloring the layer red. This way I'm less likely to modify them when I meant to modify the original.)

Hope this helps.
Gaston
Posts: 77
Joined: Tue Jan 03, 2017 11:24 am

Re: Animated Layer Order not working?

Post by Gaston »

Hey,
thank you for your answer. I've delete the bones with the actions (arm in front - arm back). Now I want to activate the animated layer in the mainline but it doesn't works. I can't move the layer. But why? "Enable animated layer order" is on at Bone-Layer.
There's a track at the timeline now and keyframes too, but the order of the layers doesn't changed.
User avatar
Greenlaw
Posts: 9191
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Animated Layer Order not working?

Post by Greenlaw »

Just a guess but it sounds like you deleted the bones but the Action and the Animated Layer order keyframes inside the Action are still active. This is probably because the Action is associated with the layer, not just the bone. You should probably delete the keyframe or the Action entirely if you don't need it anymore.

If you are going to try the visibility approach, you can keep the SBD bone and Action, just use them for visibility instead of layer order. You'll still want to delete any remaining layer order keyframes of course.
Gaston
Posts: 77
Joined: Tue Jan 03, 2017 11:24 am

Re: Animated Layer Order not working?

Post by Gaston »

The actions I have also deleted. Hmmm, how can I found the rest which is associated with the layers to free them?
User avatar
Greenlaw
Posts: 9191
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Animated Layer Order not working?

Post by Greenlaw »

BTW, there's nothing wrong with using animated layer order inside an Action, you just need to be aware of how this affects other things you may want to do when animating the scene. If you don't ever plan to animate layer order directly on the Mainline, it's fine to use this in an Action.
User avatar
Greenlaw
Posts: 9191
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Animated Layer Order not working?

Post by Greenlaw »

Without seeing your screen, I'm guessing you still have the action associated with the Bones layer. Select the Bones layer and look at your Actions list. If you see it, delete it.

Or, if you want the Action to operate the Animated Layer Order, you'll need to select the Bones layer while on the Mainline and delete any animated layer order keyframes you see there. You can have one or the other controlling Animated Layer Order, you can't have both of them doing it.
User avatar
Greenlaw
Posts: 9191
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Animated Layer Order not working?

Post by Greenlaw »

To test what I wrote, I make a quick re-creation of what you described. Yes, if you delete the SBD bone, the Action with its keyframes remains active because it's also associated with the bones group layer, and that prevents you from using Animated Layer Order on the Mainline. Just delete the Action from the Bones layer and it should work.

Of course, without a screencap, I'm making certain assumptions about your hierarchy and where you are trying to use Animated Layer Order for the arms.

Edit: Hmm...after playing with this test project a little more, it does note look like the leftover Action affects the Mainline. Sorry, my mistake. I think this is because the conflict comes from the Smart Bone's keyframe, not the layer itself. That probably makes sense because with the Smart Bone deleted, the Action is always at frame 0 and the Mainline should be able to override the Action. Anyway, it probably doesn't hurt to delete the Action in the bone layer.

Without more info (i.e., screencaps or project file,) I'm not sure where that leaves the issue you're seeing. I don't think your project is bugged but that's a possibility. Hope you can figure this out.
Post Reply