ahh, that sucks… never used object space normals, but good to know they don’t hold up for deformations.
Most efficient way to use bendy limbs in built in character rig
Will fix later. Should hopefully be able to just apply new map to existing pre-weighted head.
In the meantime, I’m trying to take a lot of the individual bits you’ve shared here or in tuts and form an overall philosophy of how to approach certain things.
For instance, In the simplest case of a straight limb with a single simple joint on either side like forearm, if you already have your loop trios assigned for wrist and elbow, but still have an additional loop between them, do you:
-
Assign it 100% to the last joint it extends beyond (low_3 if between low_3 and low_4)
-
Assign it partially to joints on either side (split between low_3 and low_4 if between)
-
Give preference to major joint assignments (Assign one or both sides to wrist or elbow instead of sub-joints)
I forgot that the reason I did object in the first place is that tangent wasn’t working. Tried again a few times (in sculpt view pressing Bake Selected Objects button and using xyz tangent combined 16bit psd 8k normal/displacement)
After trying a number of tangent options, it always comes out smoothed out like this (ignore color)
I don’t see any option like on displacement to set max depth values or anything like that.
Look at normal map shows every attempt to do via tangent coming out like this:
Is there a different process you use to bake tangent normal map?
i remember now i had issues with that as well the one time i was i need of this… baking from a sculpt worked, but just baking from a high res mesh didn’t for some reason… i think i cheated it with baking out displacement and ambient occlusion and then used crazy bump to generate a normal map… but i’d be interested as well why it doesn’t work to bake out a tangent normal map from a high res mesh without a sculpt tag…
Not sure what you mean by “baking from a sculpt tag”. I have a sculpt tag… in sculpt mode to do the “Bake Sculpt Objects” command.
Came across this post:
https://forums.cgsociety.org/t/how-generate-tangent-normal-with-bake-texture/1244642/8
Tangent map baking in C4D requires there to be some convolution of the surface normals to begin with, be that with a absolute normal map, bump map or something else.
If you don’t have that then there is no difference between the mesh surface normal and the desired final normal, so the whole map will be flat blue. This is because a tangent normal map is a difference map between the current surface normal and where it wants to be…
… The issue is that you must bake the tangent map on the low res mesh, the mesh with the absolute normal map on it, baking a tangent map on your high res mesh makes no sense…
Um… OK. But what does “absolute map” mean? Do I need to bake a WORLD map, then apply that to the base face mesh, then use that combo to then bake the tangent map?
Will try in a moment baking tan map from low poly with existing 4x object map applied… though not sure if I should subdivide first or not.
That didn’t work.
Mac only here, and everything else I can dig up talks about xnormals (pc)
Looking at Crazy Bump now, and it seems to have these 3 options for input:
Are you saying you created a displacement map in c4d, then used it as the input (using height map input option?) to crazy bump to generate normal tan map that you then exported from CB?
(Having vague recollections of reading something somewhere about people saying they couldn’t get normal and displacement maps to work together unless baked into single file, thought I don’t recall details)
exactly, you just generate a normal map from a picture. so load in your heightmap and export it as normal… results will probably a little bit different compared to the map baked directly in c4d, but just try it out, maybe it’ll do.
regarding the tangent map baking: let me try something, gonna get back to you if i can get something usable.
I’m not seeing any kind of options for normal output on CB… just a single save command with no way to specify tangent… and what I’m looking at looks like object or world map (multicolored), not tan (blue).
Regarding sculpt mode method, I can do multiple subdivide of object, and bake tan map from that onto low poly object, but there’s no ability to choose a SEPARATE object as the high poly object.
EDIT: Came across this in another forum:
But keep in mind this will not work for a full 3D object like a body.
In this case you need the workaround to bake a displacement map (from a high polygon object to low polygone object, please see the reference manual how it works) and use this baked displacement file in the displacement channel (Mode: RGB-Object) of a material and bake then the normal tangent space.
The normal tangent baking function need a displacement or a bump.
here’s a normal tangent map made from a height map in crazy bump… https://gyazo.com/db448276c145ed5b9639e711396b5b2c
OK, did I miss an option somewhere to select tangent vs other types, or is that just what you get when you input disp map?
also baking tangent normals from a sculpt works for me… https://gyazo.com/157b802ae76a8bcdcacfb99d1126a185
OK, never used sculpt (other than just to bake map), so not exactly sure how that works, but guessing it fits the desc of object being modified, so displacements can be mapped onto unmodified base object.
In my case, I have 2 separate objects One is base smooth mesh. The other is 4x sub of that base mesh which is then deformed after sub applied, so I can’t just get from one to the other by applying sub, and sculpt tag method doesn’t seem to allow choosing a separate object as the bake target… only subdivided version of itself.
Will take another look at BM. Did you select tan option somewhere that I missed? Which type of displacementmap did you feed it from c4d? Object, tangent, world, intensity, etc)? If it’s just spitting out normal map that matches the type of displacement map that was input, then…
If I understand correctly, burning a tangent displacement map from c4d won’t work for me for the same reason… because the high and low poly are two separate objects, and attempting to bake from the high poly yields zero tangential displacement since it is… itself.
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
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)
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…
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?
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.






