Most efficient way to use bendy limbs in built in character rig


#88

ok, so you’re NOT baking from a sculpt, your just baking from a high res mesh. just for shits an giggles: have you tried applying your object space normal map to the high res mesh and THEN baking out a tangent map from that?

regarding cray bump: i just fed it a heightmap (baked from c4d as “intensity centered”): https://gyazo.com/ae1bf26bed009ca84da3b7fb2e315ee0


#89

I tried a couple versions of that.

Will take another stab via CB in a moment.


#90

Ruh roh.

I’ve been working on this for quite a while, and I’m just not seeing how to generate tangent maps in this case. I keep trying increasingly complex kludges where one map is used to create another, but so far none have worked.

Makes sense to me that this would be a simple thing to do, so maybe I’m asking the wrong questions or looking for the wrong info. Here’s the basic project with high and low poly version of same face.

HILO face only.c4d (12.2 MB)


#91

Works perfectly fine here.

Anmerkung%202019-09-13%20090132


#92

I had looked through bake normals tag as well, but had missed the normals source field because it is not revealed until after the normals checkbox is ticked… which I didn’t bother doing because I saw no source field, so assumed it worked similar to sculpt tag method which assumes target and source are same (though altered) object.

Thx.

EDIT: All good now. Oddly, sweetspot for mapsize seems to have gone down to 2k which is a nice bonus. Most importantly, though, mapping now follows deformations. May have extra bonus too if doing tangent map allows brow to be mirrored with single map when I redo hair / brow maps.

Back to rigging / weighting…


#93

Normal / displacement maps all fixed (and reduced in size). Really taking my time per vertex on the weighting, though, as it’s making quite a big difference… especially in some of the more outlandish deformations for which your rig may come in handy.

Been wondering: If you’re doing basic swing motion for the arm, for instance, where it just pivots at the shoulder and nothing else… do you just disable the IK for that kind of thing? I had been disabling IK, and just animating the shoulder rotation directly, but not sure if that’s the best way.

Kind of drives me nuts in general the way moving the wrist doesn’t leave the hand in a natural position for where the wrist is. Not sure what the fix is… maybe IK chain from wrist to clavicle, and fk chan from wrist to fingertips so that when the wrist is moved, hand just follows natural positioning? Ever done anything like that?


#94

that‘s a kind of automation you don‘t want. what if you have a situation where you DON‘T want the wrist to align that way? you could implement a function though where you could dial that behavior in with a slider, so you could deactivate it in case you want to do something else with the wrist, but you would have to change the hierarchy then. you’d have to put the hand controller in a null, make a par constraint for the null and only enable rotation. target would be the last forearm joint, so that parent null of the hand controller would now always be oriented like the forearm, but you could still move the hand controller freely if needed… then you could make some xpresso to toggle that constraint on and off.

if you‘re animating in fk though the hand acts that way by default anyways. but for ik that‘s a rather strange wish of behavior. i certainly wouldn‘t animate like that.

in general, for arm swings fk is better suited, you can also get nice arm swings with ik, but it’s a bit more work to get them smooth.


#95

Lots to unpack. Still re-reading your response. Not trying to reinvent the IK wheel or anything… just trying to get minimalist arm swing for that stupid “floss” dance where the arm just swings like a pendulum with no other arm movement.

I have near total ignorance of FK, so hopefully not just asking nonsense: Are you just disabling the IK then, or referring to something more specific built into the rig that specifically EN-ables FK? (Been busy with weights, etc so not much chance to dig into controllers yet).

Are you still just using the same controllers in FK scenario (as opposed to, for instance, animating shoulder joint rotation)

Also trying to wrap my head around the lack of controller hierarchy in some chains. For instance, if you wanted the head to follow the neck, would you change the hierarchy to make head controller child of neck controller, or did I miss some other option that enables this?


#96

why not just take some time to explore the controls and THEN ask? there’s a slider to switch from IK to FK on the hand controller and there’s a slider to make the head follow the chest on the head controller.


#97

Ahh… ok. Transferring character over from a completely scratch built rig that had no such controls, so everything was dictated by the hierarchy. I’ve never seen such slider before. Didn’t know that was a thing. Will dig into controllers once weights fully dialed.


#98

I’ve spent some time now getting to know the controllers, and am happy with most of the rigging and painting, but I’ve been having a few issues with the hands, so trying to dial them in when I noticed this:

46%20PM

55%20PM

Seems to me the orientation of the joints is off. Not sure why. I don’t recall doing anything beyond moving them slightly to fit the character.

Is this by design in some way I’m missing, or do I need to go back through and reorient them?

If so, the press and hold 7 key to move a joint without affecting children doesn’t seem to work with rotations. Is there some other trick to doing this?


#99

elbow is rotated correctly, wrist is slightly off as it seems, and thumb base is completely oriented the wrong way. you must have rotated it (which you totally can and have to most of the times when adjusting handles to fit your fingers). even if you affect children it’s not that big of a deal. just rotate the hand, after that rotate the finger handle ( there‘s one for all the fingers at once) in the opposite direction. then rotate the thumb base and the the other ones on the thumb. takes 1 minute max.

also from your screenshots it seems like you put the thumb joints slightly outside the thumb, or very much on the surface. it‘s better if you put them really inside of the mesh. usually you put joints right in the center of the mesh, for fingers your general thinking is correct though to put them slightly more towards the top, but you‘ve overdone it a little.


#100

Sorry. Should’ve mentioned the screenshots were taken mid-fix, so the thumb is off due to attempting to reorient joints higher in the chain.

Fixing now, but now binding is warping… so going back up this thread to read what you said about resetting bind…

Otherwise, everything looks good.


#101

Started animating, but I’m encountering two issues:

  1. There appear to be some hierarchy irregularities like L thigh pole under R elbow, etc. Is this a problem?

  2. Mirroring in NitroPose isn’t working at all. First thing I was able to pinpoint is the ball twist breaks when mirrored in NitroPose because mirror swaps L and R values but rig dictates that they are inverse of each other.

As for the arms… seems to be more than one issue, but not quite sure what’s going on.


#102

I’ve identified a list of controls that break on mirror… basically any L-R pair that requireds an inverted value on one side to achieve symmetry. I think I have a fix which I’m testing now, but the arms aren’t so simple. There seems to be several points of failure there stemming from the FK controls. Any ideas there?


#103

L-R data mirror failures can be cured by inserting a negate node into the xpresso chain between the user input and the parameter it ultimately influences. This has the additional benefit of creating more intuitive (symmetric) behavior.

The one remaining problem at this point (that unfortunately still renders mirroring completely unusable in every pose) appears to boil down to something about the way the R clavicle controller is reflected from the left template. It’s orientation does not match default rig even though all the surrounding bits do, and this is the point that breaks despite the default rig working fine.

I’ve tried all sorts of ways to address after the fact (like placing controller in a null to isolate orientation, and pass only zero’d out controller to NitroPose object list) but I think it’s over my head at the moment. If this can’t be addressed, the only way I see forward is to delete the clavicle controllers from the object list and just not use them.

I believe if you look at how the clavicle controller is reflected from the L to R side, you will see there is some sort of orientation issue vs other rigs I’ve now compared it to that are not having this issue.


#104

yeah i couldn‘t get the character object to mirror the clavicle in a way that it works for mirroring. but you can orient the clavicle so it works with mirroring afterwards. i don‘t have time to explain how to do that, send me a download link to the rig and i‘ll fix it for you tomorrow


#105

Thx. It’s been driving me nuts. I can see generally that it’s coming from the reflection instructions that create it, but I just haven’t been able to reorient correctly, and it’s causing cascading issues down the chain with bicep, etc.

Will do. Any downside to fixing the other bits the way I’ve been doing (negate node on R side for ball twist, etc)? Not sure if there’s a better way. That’s just the first thing I could think of.


#106

sounds like a legit solution… gonna take a look at it as well when you send the file…


#107

sent via google drive / pm.

EDIT: Forgot to mention: L-R user data negate node method was applied to test file with blank rig. Haven’t done it to project yet, though it appears to be working fine.