I may have something weird in hands:
I need to rig this creature, for a video game, which is kind of a Shenlong shapped dragon, but it’s body is fully covered with fur, and the wings have some (many) layers of feathers.
This is the situation:
These are some head hair
And a part of the body
The images may not give to much idea about the design, but this monster was not revealed yet, so I can’t show to much of the design.
Here’s what I already tryed:
With Automatic weights - It often returns an alert saying that it “could not find a solution for one or more bones”, or creates some random weights which ends in a lot of stretching and clipping.
With envelope weights - Which is not that different of automatic weights
Crying - didn’t solved anything
Paint it manualy - Which seems an insame amout of work.
May be important to say that:
- I did not made the model
- The game is being developed in UE4, so I set the units are set to 0.01 (view clip starts in 1m and ends in 2000m).
So my questions are:
- Do this units setup may have something to do with the automatic weight painting?
- Is there any way of doing it without have to paint it manualy, or some workflow to make it easier?
- Is this a normal way of modelling fur/feather or I may ask to the modeller to rework it?
Thank you in advance!
Hi, do you need each plane/ribbon to be controlled individually ? Is the idea to be able to pivot/lift them ? Also is it for a game engine ? If not, I’d suggest using a displace on the feathers -assuming they have UVs so you can box-select all points at Y=1 and add them to a vertex group, then use that vertex group as factor for the displace modifier. From there you can modulate the vertex group using proximity from a controller, to have fine control. Then again maybe I misunderstood the question !
Oh you said it was for a game, my bad. I just saw it. Hmmmm… so you can paint a simplified “cage” of the character and then transfer weights from it to your actual character, with data transfer modifier.
Nota bene : the weights will be interpolated linearly, which means if your cage is too low-res you will see “banding” artifacts in the deformations -now that I think of it, it just may not be visible on feathers ! so go ahead don’t worry, paint a cage first and then transfer weights.
I don’t need to control each plane to be controlled individualy, but some of then need to be attachached, with different weights, to two bones or more, depending of the joint, and they’re not aligned.
I don’t know this “cage” technique, can you provide any link with an example? I would help a lot. But I’ll google it anyway! Thank you for the Idea!
Duplicate the body (if it’s one mesh with the feathers, delete them) and parent it with auto weights. Weight paint it as you would normally, then use data transfer modifier on the original object with vertex data enabled, checks vertex groups and try using “nearest face interpolated”, click “create data layers” and check that it now deforms along with the armature. Then you can apply the modifier.
ERRATUM I said face corner data, that’s not it. You’re looking for vertex data, and under that check vertex groups. (Absolute brain fart)
Definitely try what @Hadriscus recommended with data transfer. If that doesn’t work out there’s a couple other things you can try.
So… I ended up making it in another way that worked pretty well: the “Weight Gradient” (Alt+mouse right with brush tool selected).
The gradient it creates at the edge ended up creating an ok variation, and as it paints all over the mesh I didn’t had to paint every vertex round the body
for each bone along armature, which saved SO MUCH TIME.
Then, I just treated it like Photoshop: brushed everything until near to the tail of a bone with 1.0 weight and ereased everything with weight 0.0 until near to the head of the same bone (for each bone, along the armature). It just tooked me about an hour!
I don’t think it will be so easy to smooth these weights if I need to, but I can move on and rework only the mesh in the future if necessary.
Thank you, @Hadriscus and @Photox . I’m sorry I didn’t tryed what you suggested, but it still may help someone in the future.
See ya! o/