Distortion, Why??

General Moho topics.

Moderators: Víctor Paredes, Belgarath, slowtiger

Post Reply
User avatar
striker2311
Posts: 224
Joined: Wed Aug 26, 2020 3:55 pm

Distortion, Why??

Post by striker2311 »

Hello guys,

I have been working on my new rig, it is a rig where, i have setup all the corrective bones and for face, however, in "Mainline" when I go to Frame 1 from Frame 0, there is a distortion that tends to happen, I dont know what could have caused this.

Problem has been shown in the video link below:
https://drive.google.com/file/d/1eBQIPI ... sp=sharing

Photos for my rig-

At Frame 0
Image

At Frame 1
Image

Please help me through this, any suggestions are very much needed for this. :cry:
User avatar
Greenlaw
Posts: 9269
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Distortion, Why??

Post by Greenlaw »

Seeing the video makes me think you have a conflict between two Smart Bones, probably fighting over X,Y coordinates of points.

I sometimes prevent this from happening by using point animation in one Smart Bone and layer animation the other, or just being careful to animate the Y point motions in only one Smart Bone.

If you need a more advanced solution, look into the 'Mixed Smart Bones' technique. You can learn more about this technique from this video: Mixed Smart Bones

There's also a script that automates part of the process (look for the video at the same channel for more info,) but it's important to understand how to do this manually before you rely on the script too much.

If you're using Bezier points, that can cause problems too. In general, I avoid using Bezier points in drawings that will be deformed with bones because the interpolation can be unpredictable. If that's the case, try converting the points back to regular Moho points and working with that. (You'll need to nudge some points and change their curvature to make them look just like the Bezier version.)
User avatar
Greenlaw
Posts: 9269
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Distortion, Why??

Post by Greenlaw »

Oh, one more thing:

When setting up Smart Bones, I always set a keyframe at frame 1 and make sure this is a duplicate of the data in frame 0. This will prevent possible 'pops' from occurring (maybe what we're seeing in your video,) and other issues.

This part is unrelated, but it's more info about the value of making a keyframe at frame 1 of the Smart Bone Action: Making a keyframe in frame 1 allows me to use different interpolation modes between the Mainline and Smart Bone Action. This is useful when I need to use linear keys inside the Smart (recommended most of the time,) but want the Mainline keyframes to default to Smooth. It's also useful when I want Linear in the Smart Bone Action but Step in the Mainline. (Can be useful for mouth shapes.)

Hope this helps.
User avatar
striker2311
Posts: 224
Joined: Wed Aug 26, 2020 3:55 pm

Re: Distortion, Why??

Post by striker2311 »

Greenlaw wrote: Tue Aug 01, 2023 11:02 pm Oh, one more thing:

When setting up Smart Bones, I always set a keyframe at frame 1 and make sure this is a duplicate of the data in frame 0. This will prevent possible 'pops' from occurring (maybe what we're seeing in your video,) and other issues.

This part is unrelated, but it's more info about the value of making a keyframe at frame 1 of the Smart Bone Action: Making a keyframe in frame 1 allows me to use different interpolation modes between the Mainline and Smart Bone Action. This is useful when I need to use linear keys inside the Smart (recommended most of the time,) but want the Mainline keyframes to default to Smooth. It's also useful when I want Linear in the Smart Bone Action but Step in the Mainline. (Can be useful for mouth shapes.)

Hope this helps.
Thanks, Greenlaw, it is a great advice. I always look forward to get extra knowledge from you :D :D
User avatar
striker2311
Posts: 224
Joined: Wed Aug 26, 2020 3:55 pm

Re: Distortion, Why??

Post by striker2311 »

Greenlaw wrote: Tue Aug 01, 2023 10:53 pm

If you need a more advanced solution, look into the 'Mixed Smart Bones' technique. You can learn more about this technique from this video: Mixed Smart Bones

I used to work with Mixing smart bones for correction however, i only think that these have concept like it saves the changes we make in the layers, points and pull the main bone's lever. So everything will be in the sync like we had been wanting. Is this correct?
User avatar
striker2311
Posts: 224
Joined: Wed Aug 26, 2020 3:55 pm

Re: Distortion, Why??

Post by striker2311 »

Greenlaw wrote: Tue Aug 01, 2023 10:53 pm Seeing the video makes me think you have a conflict between two Smart Bones, probably fighting over X,Y coordinates of points.

I sometimes prevent this from happening by using point animation in one Smart Bone and layer animation the other, or just being careful to animate the Y point motions in only one Smart Bone.
Yes, you are right about that, Greenlaw. In that way it wont cause that conflicting behaviour I am getting right now. However, I am doing face turn right to left and also up to down, so it is kind of limiting and will be very difficult to get that final look of the turned face of anime character as their faces and facial attributes are so dynamic and hard to separate like that, so what should be done in that case?

Greenlaw wrote: Tue Aug 01, 2023 10:53 pm If you need a more advanced solution, look into the 'Mixed Smart Bones' technique. You can learn more about this technique from this video: Mixed Smart Bones

There's also a script that automates part of the process (look for the video at the same channel for more info,) but it's important to understand how to do this manually before you rely on the script too much.

If you're using Bezier points, that can cause problems too. In general, I avoid using Bezier points in drawings that will be deformed with bones because the interpolation can be unpredictable. If that's the case, try converting the points back to regular Moho points and working with that. (You'll need to nudge some points and change their curvature to make them look just like the Bezier version.)
Yes I tested the rig thoroughly and it was seemed that "Head Turn" bone which is up above the head and the "Head Up/Down" bone which is at the right side in the picture is conflicting, I did copy pasted frame 0 to frame 1 in every smart bone for every layer but still the problem persists. Still not sure how to solve that problem, but I now know because of Greenlaw that the smart bones are conflicting over each other.
Please help me through this again. :cry:
User avatar
Greenlaw
Posts: 9269
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: Distortion, Why??

Post by Greenlaw »

striker2311 wrote: Wed Aug 02, 2023 10:29 am ...I am doing face turn right to left and also up to down, so it is kind of limiting and will be very difficult to get that final look of the turned face of anime character as their faces and facial attributes are so dynamic...
It's tricky but it can be done...I've made rigs with full L/R/U/D mobility for the head for multiple shows with diverse character designs.

I mentioned separating x/y motions between points and layer keyframes, but I forgot one: bones! I like to bind many elements of the face to individual bones and construct a hierarchy from a face bone connected to the head bone. Then I can move and rotate the bones in the Smart Bone Actions. I find this makes it easier to manage conflicts, and it gives me another layer of flexibility for moving things in x,y before I need to make any direct point adjustments.

That's all I can write for now but I'll try to post more info later. (If I can make time for it, maybe I can whip up a demo file.)
User avatar
striker2311
Posts: 224
Joined: Wed Aug 26, 2020 3:55 pm

Re: Distortion, Why??

Post by striker2311 »

Greenlaw wrote: Wed Aug 02, 2023 6:43 pm
striker2311 wrote: Wed Aug 02, 2023 10:29 am ...I am doing face turn right to left and also up to down, so it is kind of limiting and will be very difficult to get that final look of the turned face of anime character as their faces and facial attributes are so dynamic...
It's tricky but it can be done...I've made rigs with full L/R/U/D mobility for the head for multiple shows with diverse character designs.

I mentioned separating x/y motions between points and layer keyframes, but I forgot one: bones! I like to bind many elements of the face to individual bones and construct a hierarchy from a face bone connected to the head bone. Then I can move and rotate the bones in the Smart Bone Actions. I find this makes it easier to manage conflicts, and it gives me another layer of flexibility for moving things in x,y before I need to make any direct point adjustments.

That's all I can write for now but I'll try to post more info later. (If I can make time for it, maybe I can whip up a demo file.)
Yes Greenlaw, Thanks for that.
It will definitely be better if you could make that demo file, it will be awesome :D
cherrytomato
Posts: 34
Joined: Mon Oct 23, 2023 3:52 pm

Re: Distortion, Why??

Post by cherrytomato »

Did you fix the issue? I'm having the same problem
Daxel
Posts: 996
Joined: Wed Mar 27, 2019 8:34 pm

Re: Distortion, Why??

Post by Daxel »

This a common issue. It's not a bug. It happens when the user doesn't set up smartactions correctly, making a smartbone's frame 0 angle trigger an animation. Very common when creating smartbone dials with two directions, like "Head Left-Right" that don't have the "Separate actions for positive and negative angles" option enabled.

It's a little bit confusing so let's see an example:

You make that Head L-R smartbone dial. In frame 0 the smartbone is pointing up and its value is 90º. That is your smartbone's F0 angle and it is very important.

Inside your smartaction's timeline, at frame 1 you'll probably put your smartbone pointing straight to the left for example, at 180º, and at the end of the smartaction you will turn it to the right at 0º.

This is fine so far, but you have to keep in mind your smartbone's angle will go from 180º to 0º and that means at some frame in the middle of the smartaction it will be at 90º, and that's your smartbone's F0 angle. So if at that point, right when the smartbone is at 90º, you have any animation on any layer, it will be automatically triggered at F1 in your main timeline because you have a smartaction set up to activate that animation at that smartbone's angle (90º).

Solutions:

1. Make sure to have every animated layer in your smartaction exactly at their F0 state at the frame your smartbone is exactly at its F0 angle. This is not hard, there are two ways:

The lazy one: in this example you'll go to the middle of the smartaction where your smartbone is at the closest angle number to its F0 angle (maybe it is 90.4º for example, instead of 90º). In that frame your make a keyframe for your smartbone and change the angle to be exactly as it's F0 angle, 90º, to be precise. That frame will be your double 0 frame, you can create a timeline marker to remember that frame is a double of the F0, and at that frame every animated layer has to be at its F0 state (just copy each animated layer's F0 keyframes to that double 0 frame).

The safe one: same as the previous method but to be more precise you follow two good practices, you make sure to set your smartactions to have the same number of frames as angle degrees your smartbone has to travel, and you make sure that every keyframe is lineal. This guarantees your smartbone's F0 angle will always be right in the middle frame of your smartaction and it will be exactly 90º without decimals. For example, in this case the smartaction goes from left to right 180º in total, so it will contain 180 frames. Because the smartaction actually starts from the F1(with the smartbone pointing to the left), this means it will end at the F181 and that's where you have to put it pointint to the right. Now you know that at F91 (right in the middle) your smartbone will be at exactly at its F0 angle (in this case 90º).



2. Use separate actions for each direction, so you'll have a Head L-R smartaction with the smartbone going from 90º (in F0) to 0º, and a Head L-R 2 smartaction with the smartbone going from 90º (in F0) to 180º. This means you won't have to deal with this problem because you won't have the smartbone at 90º inside any smartaction (F0 is outside of the smartaction).



Remember, if you then modify your rig at F0 because you want to redesign something, your smartactions will have to be adapted to the new design, and that is true no matter if you choose to use separate actions or unified actions, the only difference is that with unified actions you'll get this double 0 angle issue that reminds you you have to fix those actions and with separate actions you won't.
Post Reply