Hello! Hope you're having a great day. I'm new to character animator but I've watched all Okaysamurai's tutorials and still can't find how to fix my issue. I really hope you can help me.
I want different sets of mouths and eyes to express different state of emotions of my puppet. When I make a group for the other set of mouths, and assign a trigger to it in CH it appears but on top of my normal mouths instead of replacing them when triggered. Hope you can help me because I was going to do several sets of eyes and mouths, but since I can't get pass this im stuck. How can I make my triggers replace other things from showing? I copy pasted a picture of how my puppet is set up for easier analysis.
For eyes, this is what I normally do: https://extra-ordinary.tv/2018/04/21/debugging-character-animator-eyess/ - it has lots of other stuff, but it has how I do the emotions for the eyes. That is, I create su layers for each expression then create a "Swap Set" to decide which expression to show. Each emotion has a trigger (e.g. I use 'a' for angry). You can bind multiple triggers to the same key press (just type 'a' in as the trigger key for each trigger). So for example, I create a swap set for "Left Eyebrow". Under it there is "Neutral", "Angry", "Sad", etc eye brow positions. I make "Neutral" the default for the swap set. I normally don't change the pupil (although I have done it once to make the eyes glow red).
For mouth, if you want the mouth to change appearance, I would use a swap set there. For example, I made an angry version of the mouth positions (corners of mouth angled down instead of up). I put *all* the visemes for each expression under each emotion layer. I used a parent layer called "Gob" (to avoid tagging as Mouth!), then under that each mouth emotion. I created a swapset on Gob to chose the emotion. I think the Face behavior will find all the mouths under all layers (don't remember sorry!) - if not, you can add a Face behavior to each emotion. (Some behaviors only pick the first match they find instead of all matches, which is important when using swapsets.)
Swapsets are critical as soon as you want artwork to go away under some conditions. Triggers make things appear - swap sets can make things disappear (by picking a different child). So have a read up on them to get the basic idea.
Hey Alan, thank you for taking the time to answer. As I said I'm pretty knew to CH, so I find it a little hard to understand somethings I hope you can help me with a little further. Relative to the mouth problem, in my photshop file i have a separate folder of a laughing mouth I want to add, in the same hierarchy as the normal mouth. When i go to CH and make a swapset for this file and push the trigger It puts the whole laughing mouth on top of my normal mouth set, instead of replacinf it with the trigger. Where would you put this laugh mouth folder in hierarchy or what would you do to fix this?
Thank you so much
Ask as many questions as you like until you understand. That is what the forums are for!
Before I lead up you off the garden path, could you please confirm if you have a set of viseme mouth positions (Ah, Oh, Th etc) all smiling positions, or do you have a single expression (a big laugh)? If a big laugh, is there a reason you don't want to update the standard "Smile" viseme?
One concept to understand is Behaviors in CH look for tags on layers. CH automatically tags layers on import looking at the layer names. So a Mouth layer will have the "Mouth" tag added. But you can manually add and remove these tags. Be careful however as "Laughing Mouth" may be tagged with "Mouth" and Behaviors will try to manipulate it. So avoid the word Mouth if not a mouth for CH to control using visemes etc. E.g. I would consider renaming "Laughing Mouth" to "Laughing" (or "Laughing M") etc. if it does not have visemes under it.
I am going to assume you want single expressions (not lots of visemes), and you want more expressions than are built in (so Smile alone is not enough). Here then is how I would change your existing puppet structure.
Create a new group "Gob" (or "M Expressions" etc) and put your current "Mouth" layer inside it. Put Laughing Mouth and Sad Mouth inside Gob next to Mouth and rename to remove "Mouth" from the layer names.
So you would end up with something like:
- - Mouth
- - - Neutral
- - - Ah
- - - Oh
- - - Smile
- - - ... (all the other visemes)
- - Laughing
- - Sad
Then create a swapset on Gob with triggers on Mouth, Laughing, and Sad. Make Mouth the swapset default. When you press the keyboard trigger for Laughing it will hide Mouth. (You can right click or something on Gob to create the swap set - don't have computer near me just now.) So you will end up with something like:
- Gob [with a swapset added]
- - Mouth [default]
- - Laughing [triggered by 'L' key]
- - Sad [triggered by 'S' key]
Because of the swapset, you you hit L or S it will hide the default for the swapset (the Mouth). But I would always make them siblings and not put anything else in the Gob group - it makes things clearer - all children are alternatives to be controlled by a swapset.
Alan, THANK YOU SO MUCH. That method work like magic. I hope if I hace further questions later on I can keep in contact.