I have 2 different smiles each with a cycle layer behavior. forward and reverse and pause on last frame. they work on their own until i add them to a swap set which goes straight to the last frame of the cycle layer. the layer order is set up so it shouldn't be overridden by neutral mouths. i have swap sets set up for eyebrows and the neutral mouth each with cycle layers behaviors. the only difference that i can see is that one smile has a cycle layer inside of it that does a continuous loop for its last layer. not really sure what i'm doing wrong. new to the program and trying to figure it all out. any help would be appreciated.
I don’t know Ch well enough to tell you all the approaches that can work. But I never got a combination going with too much going on inside the mouth group - the Mouth behavior seemed to get confused pretty easily. So I always follow the following pattern now
That is, the “Mouth” group had direct children of all the vizemes, with no other magic in there. I usually create a swap set on the Mouth group so I can use a keyboard trigger for smile, surprised, etc. Neutral is the default for the swap set.
Then I create a second swap set for Mouth Group with “Mouth” being the default. I add new triggers for the other mouth positions. Cleverness under the Mouth group that I tried always messed up, so I tried to avoid it.
You may very well be able to get what you are trying to do to work, but I had lots of failures doing anything complex under “Mouth”, even just trying to add “Cry” under Mouth gave me grief. So I now put any other keyboard triggers as siblings to the Mouth group, so you get the Mouth group (controlled by Character Animator) or one of the other special mouths. Character Animator seems to get less confused the simpler you keep the hierarchy.
Your hierarchy had things like “Neutral” with a layer under it plus a sibling of “Sad Neutral” (a cycle layer?). I would suggest having either a static layer or a cycle group directly under Neutral - not more complicated hierarchies.
Then once you find a pattern that works, mimic it as closely as possible over and over again.
So not an answer to your question, and you may very well be able to get it to work like you want, but I recommend simplicity whenever possible, and minimizing cleverness under “Mouth” as the behavior I think makes assumptions about how Mouth is structured.
well thank you for responding! i tried having 2 different mouth groups and putting them as a swapset but it didn't work out. i realized i had to put the alternative mouth shape in the same place more or less as the original set its swapping out. so that's why you see the neutral and then sad neutral. sad neutral is a cycle layer so it does an animated transition from and back to the default neutral mouth. it works well! i did this for all alternate vizemes and compounded the swapsets. worked perfect. i did it for the alternate smile and it mostly works except that the cycle layer isn't really doing it's thing. but you may be right. the smile i have animated is a huge grin but is triggered by the slightest smirk. it might be best to just have it as a key trigger and the cry animation as well. but i am trying to learn the program. having a working puppet is good but knowing why this problem occurred could help me avoid it in the future. aw well. thanks again for your input!
That's good advice from Alan.
Here's the reason: behind the scenes, the Lip Sync behavior sets all the viseme/smile/surprised/neutral mouths to Hide Others in Group. That's an option that predates swap sets (which are the new, easier way to show only one of a set of layers). We're working on moving everything over to swap sets to make it easier to understand, but for now either use Alan's advice above (which prevents the Hide Others layers from conflicting with your custom layers), or set Hide Others in Group on any groups/layers that are at the same level as the ones that Lip Sync knows about. You'll need to have your custom layers in front of the other layers, otherwise, when Lip Sync chooses to trigger, say, the Neutral mouth, and you have a custom trigger that triggers another mouth in the same group at the same time, Ch will break the tie by picking the front-most mouth.
This option can be found in the properties panel for a selected layer in the puppet panel, in the Keyboard Trigger (obsolete) section. While it's labeled "obsolete" it will continue to work for at least the next version. That said, Alan's scheme is better for the future.
I guess. i ran in to that problem before when i first made a smile with a cycle layer. so i moved the smile to the top of the mouth group. and that's where they both are now. in fact they both work on their own it's the swapset function that broke them. keep in mind i'm not triggering the cycle layer animations and then it's not reversing because it's getting cut off but another mouth (which was my problem when the smile was lower with in the smile group). what's happening is it's going straight to the final layer in the cycle animation without animating forward or backward. nothing should be able to get priority over the first 3 layers but not the last. that doesn't make sense.
If you're willing to share your puppet here (or via private message), I'll take a look. (File > Export > Puppet...)
Sorry for the delay, I was traveling for two weeks and only now am I finally clearing out my inbox.
> what's happening is it's going straight to the final layer in the cycle animation
Thanks for uploading the puppet, it looks great!
I now understand the problem: inside the Smile group you have both Default and Cry. Since "Default" is set to be triggered by a default trigger in the swap set, it gets triggered right away, even when you're not looking at it. When you later smile, which shows that Smile group, it's already holding on the last frame of Default. If you then hit 2 it switches to Cry. If you hit 2 again to unlatch it (while continuing to smile yourself) you'll see the full Default animation.
I think you could achieve what you want by having two entire copies of the puppet, only differing in the Smile group, but that's a big mess. If you can give up on having the face-tracked smile automatically trigger one of two animations, you can still have access to the expressions via keytrigger with a much simpler grouping arrangement (i.e. as described above).
If Face allowed more than one Smile layer per view, you could tag both Default and Smile groups with Smile, and turn off Default checkbox for that Default group (that way both Smile & Default would be triggered at the same time, so you wouldn't miss the start of the animation), but unfortunately it's limited to one per view.
thank you so much! it does seem like key trigger is gonna give me much less of a headache so i am gonna go that route. probably the default smile too cuz i didn't realize how sensitive the software is to your mouth movements. but i wanted to make sure i understood the problem in case it ever came up again (if i couldn't solve it). thank you again for your feed back!