gradient issue (solved)

General Moho topics.

Moderators: Víctor Paredes, Belgarath, slowtiger

mohgirl
Posts: 90
Joined: Mon Mar 22, 2021 1:33 pm

gradient issue (solved)

Post by mohgirl »

Two blushes were added to the character's face. I used the Radial Gradient Tool. But in the end it doesn't move with the bones。

Below is the project file
Software version 13.5.4
System win10

https://www.dropbox.com/s/29yb4hsrdhbq732/bug.rar?dl=0
User avatar
Greenlaw
Posts: 10466
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: gradient bug

Post by Greenlaw »

That's curious.

I took a look at your project and I noticed you have a lot of keyframes for the gradient widget in both the Mainline and inside several actions. I thought maybe there shouldn't be all these keyframes so I removed them all, but the blush marks still did not move with the head bone. Hmm...so the issue must lie elsewhere.

Before proceeding further, I made a quick test in a clean project by creating a simple face shape with gradient blushes, parented this to a simple two bone rig, head and body, and the blushes did move with the head bone. So, at least we know this feature isn't bugged in 13.5.4...something in your rig setup is probably interfering with it.

I'm a bit busy today but if I have time after work, I can take a closer look. Hopefully somebody else here can take a look sooner.
User avatar
Greenlaw
Posts: 10466
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: gradient bug

Post by Greenlaw »

I see what's going on: you have zero bone strength on the head bone so the gradient cannot move with it.

To correct this, you need increase the Bone Strength for the head bone or use Bind Layer to bind the head shape layer to the head bone. Either of these binding methods will allow Moho to move the gradients with that bone. I just tried this in your rig and it works.

There is still an offset occurring in the position of the gradients and this is probably because you have extra positional keyframes for the gradients in the Mainline or inside a Smart Bone Action causing the conflict.

So, first correct the binding and then remove any unnecessary keyframes. The rig should then look like this...

Image

Hope this helps and good luck!
User avatar
Greenlaw
Posts: 10466
Joined: Mon Jun 19, 2006 5:45 pm
Location: Los Angeles
Contact:

Re: gradient bug

Post by Greenlaw »

I'm guessing you're using Point Binding with the head shape? This method doesn't require bone strength to move affected points but points are all this method affects, so the gradient doesn't move with it when the bone strength is zero. If you must keep the bone strength set to zero for some reason, you probably need to use Bind Layer instead.

Otherwise, just give the head bone some bone strength. If you have the strength set to zero to prevent the head bone from affecting other layers in your rig, then you need to use Use Selected Bones For Flexi-binding and explicitly bind all the layers to the bones they should be affected by.

Either will work. The approach you take depends on how you intend to animate/deform the character.
Last edited by Greenlaw on Thu Apr 28, 2022 6:12 pm, edited 1 time in total.
User avatar
hayasidist
Posts: 3857
Joined: Wed Feb 16, 2011 8:12 pm
Location: Kent, England

Re: gradient bug

Post by hayasidist »

I've also taken a quick look.

the Shapes in layer 2 within group 17 is ... well ... interesting...

There are 3 shapes.

shape 0 seems to be the face itself (9 points) - and that has one gradient handle (for the blush to screen left)
shape 1 is all the shape 0 points plus the oval to the right of the screen (total 13 points), and that has the other gradient (for the blush to screen right).
(shape 2 is the beauty spot and not relevant to the issue you're facing)

But: Shape 1 is "on top of" shape 0 -- so you have a gradient that goes from "blush" to transparent in shape 1; and shape 0 has a gradient that goes from "blush" to (face base colour) pink

As well as fixing the bone strength issue that Greenlaw pointed out, you might like to consider a different set of shapes???
Daxel
Posts: 1088
Joined: Wed Mar 27, 2019 8:34 pm

Re: gradient bug

Post by Daxel »

I was trying this too and came to the same conclusion.

First I thought: Ok It makes sense that point binding doesn't affect gradients since Moho cannot know how do you want the gradients to move when the shape can be being moved to two different directions by two different bones binded to different points of the same shape.

But then I realized that you can have many bones affecting the same shape with flexi-binding too, and it works very well deforming and rotating the gradient as expected. So I guess it should be possible for Moho to do the same with point binding, or simulate it. It would be very nice because it would just work as people expect and we wouldn't have to use any tricks.

Using layer binding is limiting in terms of rig possibilities because you may want to bind only certain shapes of that layer.

Using force and activating selected bones for flexibinding you can achieve anything you want, because you can even disable specific points from flexibinding or bind points, and the gradient will still be affected by the force of those bones without this force affecting anything you dont want to be affected. But you would have to fix every new layer you add to the rig in order to keep it from being affected by that force, right? Because I think we don't have an option like "keep any new layer from being affected by the flexibinding of selected bones". It's also not intuitive, I remember having exactly this problem years ago and I just ended creating a shape with blur and transparency or something like that for each blush instead. And I will probably keep doing that to avoid having to bind the layer or use bone force, but it would be cool to have this gradient and image texture deformation to work with point binding, as a feature request.

Not a priority for me though, specially if it's not easy to develop.
mohgirl
Posts: 90
Joined: Mon Mar 22, 2021 1:33 pm

Re: gradient bug

Post by mohgirl »

Greenlaw wrote: Thu Apr 28, 2022 12:43 pm I see what's going on: you have zero bone strength on the head bone so the gradient cannot move with it.

To correct this, you need increase the Bone Strength for the head bone or use Bind Layer to bind the head shape layer to the head bone. Either of these binding methods will allow Moho to move the gradients with that bone. I just tried this in your rig and it works.

There is still an offset occurring in the position of the gradients and this is probably because you have extra positional keyframes for the gradients in the Mainline or inside a Smart Bone Action causing the conflict.

So, first correct the binding and then remove any unnecessary keyframes. The rig should then look like this...

Image

Hope this helps and good luck!
Thank you, Greenlaw. Helped me solve the problem I've been worried about
mohgirl
Posts: 90
Joined: Mon Mar 22, 2021 1:33 pm

Re: gradient bug

Post by mohgirl »

hayasidist wrote: Thu Apr 28, 2022 1:21 pm I've also taken a quick look.

the Shapes in layer 2 within group 17 is ... well ... interesting...

There are 3 shapes.

shape 0 seems to be the face itself (9 points) - and that has one gradient handle (for the blush to screen left)
shape 1 is all the shape 0 points plus the oval to the right of the screen (total 13 points), and that has the other gradient (for the blush to screen right).
(shape 2 is the beauty spot and not relevant to the issue you're facing)

But: Shape 1 is "on top of" shape 0 -- so you have a gradient that goes from "blush" to transparent in shape 1; and shape 0 has a gradient that goes from "blush" to (face base colour) pink

As well as fixing the bone strength issue that Greenlaw pointed out, you might like to consider a different set of shapes???
sorry
I don't understand
User avatar
hayasidist
Posts: 3857
Joined: Wed Feb 16, 2011 8:12 pm
Location: Kent, England

Re: gradient bug

Post by hayasidist »

mohgirl wrote: Thu Apr 28, 2022 2:30 pm
hayasidist wrote: Thu Apr 28, 2022 1:21 pm I've also taken a quick look.

the Shapes in layer 2 within group 17 is ... well ... interesting...

There are 3 shapes.

shape 0 seems to be the face itself (9 points) - and that has one gradient handle (for the blush to screen left)
shape 1 is all the shape 0 points plus the oval to the right of the screen (total 13 points), and that has the other gradient (for the blush to screen right).
(shape 2 is the beauty spot and not relevant to the issue you're facing)

But: Shape 1 is "on top of" shape 0 -- so you have a gradient that goes from "blush" to transparent in shape 1; and shape 0 has a gradient that goes from "blush" to (face base colour) pink

As well as fixing the bone strength issue that Greenlaw pointed out, you might like to consider a different set of shapes???
sorry
I don't understand
OK, I'll try to explain a different way. I think part of the problem you're having is the way you've created your Shapes. A different approach might work better.

for example:
Keep the basic head shape (the 9 point one), but fill it with your pink base colour -- no gradient effects at all.
Delete "Shape 1" (the one with the "extra" oval)
make two new shapes for the blushes. Depending on how you want them to behave, these could be circles / ovals with "soft edge" fill (with the "blush" colour) or radial gradient - blush to transparent.

and, of course, the beauty spot just stays as is -- then, in the same way you'll shift the beauty spot around, you can shift the blush shapes...

Hope that helps!
User avatar
sang820
Posts: 764
Joined: Fri Sep 10, 2004 6:55 am
Location: china Beijing
Contact:

Re: gradient bug

Post by sang820 »

:shock: 这个带腮红的面具的做法只做对了一半----模型结构过于复杂,继续看完这个教程吧。
https://www.bilibili.com/video/BV1Uo4y1S7BX/

腮红或者用骨骼磁力区绑定,或者图层绑定在头部骨骼上,这两种方法都可以记录转头、表情动作。
mohgirl
Posts: 90
Joined: Mon Mar 22, 2021 1:33 pm

Re: gradient bug

Post by mohgirl »

sang820 wrote: Fri Apr 29, 2022 12:55 am :shock: 这个带腮红的面具的做法只做对了一半----模型结构过于复杂,继续看完这个教程吧。
https://www.bilibili.com/video/BV1Uo4y1S7BX/

腮红或者用骨骼磁力区绑定,或者图层绑定在头部骨骼上,这两种方法都可以记录转头、表情动作。
thanks! goodidea
mohgirl
Posts: 90
Joined: Mon Mar 22, 2021 1:33 pm

Re: gradient bug

Post by mohgirl »

hayasidist wrote: Thu Apr 28, 2022 5:52 pm
mohgirl wrote: Thu Apr 28, 2022 2:30 pm
hayasidist wrote: Thu Apr 28, 2022 1:21 pm I've also taken a quick look.

the Shapes in layer 2 within group 17 is ... well ... interesting...

There are 3 shapes.

shape 0 seems to be the face itself (9 points) - and that has one gradient handle (for the blush to screen left)
shape 1 is all the shape 0 points plus the oval to the right of the screen (total 13 points), and that has the other gradient (for the blush to screen right).
(shape 2 is the beauty spot and not relevant to the issue you're facing)

But: Shape 1 is "on top of" shape 0 -- so you have a gradient that goes from "blush" to transparent in shape 1; and shape 0 has a gradient that goes from "blush" to (face base colour) pink

As well as fixing the bone strength issue that Greenlaw pointed out, you might like to consider a different set of shapes???
sorry
I don't understand
OK, I'll try to explain a different way. I think part of the problem you're having is the way you've created your Shapes. A different approach might work better.

for example:
Keep the basic head shape (the 9 point one), but fill it with your pink base colour -- no gradient effects at all.
Delete "Shape 1" (the one with the "extra" oval)
make two new shapes for the blushes. Depending on how you want them to behave, these could be circles / ovals with "soft edge" fill (with the "blush" colour) or radial gradient - blush to transparent.

and, of course, the beauty spot just stays as is -- then, in the same way you'll shift the beauty spot around, you can shift the blush shapes...

Hope that helps!
thanks I've got it
User avatar
Víctor Paredes
Site Admin
Posts: 5818
Joined: Wed Jan 26, 2005 12:18 am
Location: Barcelona/Chile
Contact:

Re: gradient bug

Post by Víctor Paredes »

First. That setup to have two gradients over the same shape is very clever! I never saw that before. Thanks for sharing it.

Now, about the issue, the solutions is to increase the Bone strength, as it was pointed above.
The reason for that is that gradients and image textures in Moho behave like images. When you import an image, this image will move and bend with bones only if those bones have some Strength.
In the case of gradients/textures, it's always the bone strength what will move them, even if the points of the shape are bound to a bone.

For me, the easiest and safest solution is to:
- Add some strength to the head bone
- Select the head vector layer, select the bone of the head and go to Bone -> Use selected bones for flexi-binding

This will allow the gradients to move with that bone strength, but will also ignore any other bone strength that the character could have.

I hope it makes sense!
Image Image Image Image Image Image
Moho co-owner

Previously Rigged animation supervisor: My father's dragon, Wolfwalkers & Star Wars Visions "Screecher's Reach"
My personal Youtube Channel
User avatar
hayasidist
Posts: 3857
Joined: Wed Feb 16, 2011 8:12 pm
Location: Kent, England

Re: gradient bug

Post by hayasidist »

Víctor Paredes wrote: Fri Apr 29, 2022 10:22 am First. That setup to have two gradients over the same shape is very clever! I never saw that before. Thanks for sharing it.
Indeed --- If we (still) had the ability to make many shapes using the same set of points it would be even easier to set up -- e.g. 3 shapes over the base head - 1 "bg" fill; 2 gradients. :D
User avatar
synthsin75
Posts: 10280
Joined: Mon Jan 14, 2008 11:20 pm
Location: Oklahoma
Contact:

Re: gradient bug

Post by synthsin75 »

hayasidist wrote: Fri Apr 29, 2022 10:45 am If we (still) had the ability to make many shapes using the same set of points it would be even easier to set up -- e.g. 3 shapes over the base head - 1 "bg" fill; 2 gradients. :D
We do: http://www.lostmarble.com/forum/viewtopic.php?t=32301
Post Reply