How do you make points go in front and behind other vectors

General Moho topics.

Moderators: Víctor Paredes, Belgarath, slowtiger

ZV1LLE
Posts: 37
Joined: Mon Apr 01, 2024 5:32 pm

How do you make points go in front and behind other vectors

Post by ZV1LLE »

I'm trying to find a way to make it so that, if I have an arm, body and head, the lower part of the arm and hand can go Infront and behind the body while the top part of the arm stays behind the head and body.

Yes, I know animated layer orders is one of the solutions, and making an additional layer can too, but I'm not sure how to use those solutions with points, and I'm not sure if I want to do anything with the layer order or make any duplicates of the arm.

So If you have any way this could be accomplished (or at least what I'm doing wrong) then it would be of much help, Thank You :D
User avatar
Hoptoad
Posts: 625
Joined: Sun Jan 03, 2016 4:19 pm
Location: Florida

Re: How do you make points go in front and behind other vectors

Post by Hoptoad »

In a general sense, what you want to do with the lower part of the arm and hand is not possible.

Imagine a grilled cheese sandwich. You evidently desire the cheese to exist between two pieces of toasted bread, but also atop of the upper piece of bread. We exist in a world with molecules and atoms, and nothing can be in two places at the same time.

Luckily Moho isn't bound by grilled-cheese-sandwich physics. In the Moho universe, you can have multiple layers of cheese, cheese that is visible or invisible whenever you want, and the cheese can teleport.

So the answer is this: the various things you mentioned -- duplicating layers and so forth -- those things unlock unimaginable power.

Learn those arcane mysteries and become Master of the Cheese.
ZV1LLE
Posts: 37
Joined: Mon Apr 01, 2024 5:32 pm

Re: How do you make points go in front and behind other vectors

Post by ZV1LLE »

That was a pretty cool, cheesy reference :D, but I'd also like to know how I could duplicate the layers to achieve this (and maybe control it with smart bones)
and if you need it, I could give some context for what I'm actually trying to achieve.
User avatar
Greenlaw
Posts: 9281
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: How do you make points go in front and behind other vectors

Post by Greenlaw »

Basically, you want to split the limb at the main joint. So, for an arm limb, you split it at the elbow, and for a leg limb, you split it at the knee.

It's not enough to draw a curve across the joint; you need to use the curve to create two separate shapes for the limb: one for the upper half of the limb and one for the lower. The result should look like one seamless shape for the entire limb. Duplicate or reference the limb layer and use the Delete Shape tool to remove a section from each layer. The result should still look like a seamless shape.

Now, you can use Animated Layer Order to keyframe the positions of each section as you animate, or you can make duplicate pairs of the layers above and below the body group and use a Smart Bone Dial to animate their Visibility.

I don't recommend controlling Animated Layer Order in a Smart Bone unless you're very sure you're not going to add or delete layers in the rig later. Animating Visibility with a Smart Bone is a bit more flexible, and you can still use manual Animated Layer Order along with this setup for special situations that may arise without worrying about unexpected conflicts.

Tip: one issue you will run into with the split limb is that, when you render, you may see a faint line or gap at the joint. This is an antialiasing problem that appears when shared edges are separated into two layers. There are two ways to correct this.

The easiest way is to add a point in the middle of the separating curve in one of the layers and simply drag the point to 'fold over' the edge in the other layer. This effectively hides the gap. Remember to bind the extra point if you're using Bind Points for the joint. This is the method I prefer most of the time.

If you're composting the animation in After Effects, the other method is to render with anti-aliasing disabled and then use the free OLM Smoother plugin to apply anti-aliasing as a post-effect. I prefer this method when I'm applying advanced shading and lighting effects to the Moho render using After Effects.

There are other ways to approach 'wraparound' limbs, but the above method is basically what I did for most of the characters I've animated in the TV shows I've worked on.

Hope this helps.
Last edited by Greenlaw on Thu Apr 18, 2024 2:10 am, edited 1 time in total.
ZV1LLE
Posts: 37
Joined: Mon Apr 01, 2024 5:32 pm

Re: How do you make points go in front and behind other vectors

Post by ZV1LLE »

I'm pretty sure that could help, but now I actually think I have to show what I'm going for because it's not really a complicated wrap around (or maybe it is idk)
I don't have time to prepare the drawing right now, But when I feel less busy I will. Thanks for the reply still :D
ZV1LLE
Posts: 37
Joined: Mon Apr 01, 2024 5:32 pm

Re: How do you make points go in front and behind other vectors

Post by ZV1LLE »

So I made the reference and here it is:

Image

So this is where I want the arm behind, which is how the arm rig is set as of right now (Note: it's the image above, not below)

Image

Now for this one I wasn't sure how to achieve this in my vector art program, so just imagine the top part of the arm is the same as the 1st image and the hand is below the arm (Note: it's the image above, not below)

Elbows could work for what I'm trying to achieve, but as long as the arm can stay in its shape without looking like it has an elbow, I want to try out other solutions to this problem.

So if you could suggest anything else that could help out with this, that would be amazing. Thanks in Advance :D
Last edited by ZV1LLE on Fri Apr 19, 2024 2:41 pm, edited 1 time in total.
User avatar
Hoptoad
Posts: 625
Joined: Sun Jan 03, 2016 4:19 pm
Location: Florida

Re: How do you make points go in front and behind other vectors

Post by Hoptoad »

ZV1LLE wrote: Thu Apr 18, 2024 1:38 am . . .it's not really a complicated wrap around (or maybe it is idk)
You know how you had to use 2 images to illustrate what you wanted to do, not just 1? That's because it's complicated.

There is no easy solution where the arm+hand is behind and also in front of your character. If the arm+hand is behind the character, that's where it it is. If the arm+hand is in front of the character, that's where it is. Those 2 pictures you posted are as different as a jet behind a cloud and a jet in front of a cloud.

Moho offers several multi-step processes that will accomplish what you want, and which one you choose depends on your animation style. Greenlaw mentioned the ones he likes. There are more.

All of them are complicated, imo, but once you learn them, they're easy.

If you want the easiest solution, duplicate the character with arm+hand in the front. Alter the artwork of the duplicate so the arm+hand is behind the character's back. That's it; now you can animate. Simply use the proper character in the scene, and when you need the other character, swap them, and pose the replacement character so all the limbs and so forth match up.

Good luck.
User avatar
hayasidist
Posts: 3531
Joined: Wed Feb 16, 2011 8:12 pm
Location: Kent, England

Re: How do you make points go in front and behind other vectors

Post by hayasidist »

take a look at this

the trick there is, although you want the ARM to be both in front and behind, if you re-think the problem and make parts of the TORSO appear and disappear ...
ZV1LLE
Posts: 37
Joined: Mon Apr 01, 2024 5:32 pm

Re: How do you make points go in front and behind other vectors

Post by ZV1LLE »

Oh I see, I guess it is that complicated after all, Now I'd like to explore other ways of accomplishing this wrap around

also, I don't actually have a Discord account as of right now and don't really have the time to make one just for this purpose, so could you maybe explain the method to me from here?
User avatar
hayasidist
Posts: 3531
Joined: Wed Feb 16, 2011 8:12 pm
Location: Kent, England

Re: How do you make points go in front and behind other vectors

Post by hayasidist »

This was the "throw it together" version:
Bone group>
- torso front (intention is that it will be copy by ref, but in this lash-up it's not) - this flips fill areas on and off as necessary
- left arm (whole arm - actually done as just one liquid shape)
- right arm (same idea as left arm)
- torso back

This shows it in action:
User avatar
Greenlaw
Posts: 9281
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: How do you make points go in front and behind other vectors

Post by Greenlaw »

ZV1LLE wrote: Fri Apr 19, 2024 1:52 pm Oh I see, I guess it is that complicated after all, Now I'd like to explore other ways of accomplishing this wrap around
There are many ways to set up wraparound limbs in Moho. After 10+ years of using Moho in production work, I've stumbled through them all by now. What I described above has been the easiest and most reliable approach, and it really isn't that complicated after you've done it a couple of times.

Here's an example where I took a different approach...

My ‘Puss In Boots Interactive’ Demo Reel (2018)

For this, I added a fat stroke to a path that followed an arm and applied Stroke Exposure so I could make the fat stroke grow and shrink along the path. Then, I applied the stroke as a mask for the arm artwork. Next, I duplicated the arm so I had an arm in front of and behind the torso, and I inverted how the fat stroke mask affected the duplicate arm.

My reasoning for this setup was that it allowed me to shift the 'wrap point' up and down the arm where it looked best as I animated the character.

At the time, I was very proud of this setup, but realistically, it was over-complicated and unnecessary. After animating Puss for this interactive episode of the show, I realized that the split only ever needs to be at the elbow. On the next show I worked on, I just used a solid mask shape that didn't travel, and shortly after that, I figured out I didn't need a mask at all if I just split the art and used a Smart Bone to control layer visibility. That's the setup I described earlier, and it's mostly what I've used ever since.

Hope this helps.
Last edited by Greenlaw on Fri Apr 19, 2024 6:28 pm, edited 1 time in total.
User avatar
Hoptoad
Posts: 625
Joined: Sun Jan 03, 2016 4:19 pm
Location: Florida

Re: How do you make points go in front and behind other vectors

Post by Hoptoad »

In my opinion, one of the easiest solutions involves Layer Visibility. Nothing else, just good ol' Layer Visibility.

Make 3 vector layers (or groups of vector layers), in this order:
R Arm+hand
Body
R Arm+hand


Both layers of R Arm+hand are controlled by the same bones, so they move exactly the same way.

The uppermost R Arm+hand is in front of the body. This is the only layer that needs to have its visibility turned on and off with this technique.

When you need to animate the R arm+hand going behind the body, select the topmost R Arm+hand layer, go to Layer Settings and remove the checkmark from the "Visible" box. The art will vanish and you'll see the timeline become pink at that frame and beyond (when that layer is selected). In the workspace, you'll see the lower R Arm+hand behind the back. Ta-dah!

Later in your animation, if you want the topmost R Arm+hand visible, select the layer again, return to Layer Settings and re-check the "Visible" box. The timeline (for that layer) will return to its normal color at that frame and beyond.

What's especially cool is that you can slide the keyframes for Visibility back and forth in the timeline, so adjusting the timing is not a hassle.
ZV1LLE
Posts: 37
Joined: Mon Apr 01, 2024 5:32 pm

Re: How do you make points go in front and behind other vectors

Post by ZV1LLE »

I like that method! :D but I'm not sure if I really understand how to do it, so could you maybe give me a video or image representation on how it's done?

Btw the only reason I've been avoiding layer visibility and duplicating anything is because I felt it would just be too messy having duplicate arms all the time instead of there just being one, and doing it for every single rig I do just seems like a hassle, and I'm not even sure how I'm going to achieve this with body turns applied to the rig, It just seems so stressful that I'm not sure if I should do it.

Am I overreacting, is this relatable, Idk (I hope it is) but It just feels messy that's all :cry:
ZV1LLE
Posts: 37
Joined: Mon Apr 01, 2024 5:32 pm

Re: How do you make points go in front and behind other vectors

Post by ZV1LLE »

Hello? just waiting for a reply to help me out with this problem
User avatar
Hoptoad
Posts: 625
Joined: Sun Jan 03, 2016 4:19 pm
Location: Florida

Re: How do you make points go in front and behind other vectors

Post by Hoptoad »

I thought I'd write a step-by-step about Visibility. . .but then I realized there are a lot more steps than I thought.

I now suggest you use Animate Layer Order. You'll be happy to know that you don't have to duplicate the arm! :D

Basically, rig your character so that the Arm+hand and the Body are on different vector layers, and make sure that both layers are in a group folder. In frame 0, select the group folder, click the 3 dots to access Layer Settings, click the Depth Sort tab, and then checkmark the box for Animate Layer Order (it's off by deafult).

Now to pose your rig. (I'm assuming you have a the bones in place and all that stuff.) Go to frame 1 and arrange you character so that its Arm+hand is in front of the body.

Now go to frame 24 and move the Arm+hand out to the side, like they're expecting a falcon to land on their arm.

Now go to frame 48 and move the Arm+hand back to where it overlaps the body.

Now scrub through the timeline to the exact frame where the arm starts to cross the body. Maybe frame 36 or thereabouts? On that frame, go to the Arm+hand layer in the Layer window and drag it below the body. Do not drag it outside the group. This creates a keyframe in the timeline, by the way.

Now play the animation and you'll see the Arm+hand layer start in front of the body, then move behind the body.

That's it!
Post Reply