This is something I've been pondering the last day, but is something that I can't seem to find much visual reference for, if any at all, so I was hoping someone could give some insight:
Basically, a forearm twist is continuous over its length: the wrist matches the rotation of the hand 1:1, and this twist tapers off so that the elbow doesn't twist at all. We achieve this effect with weighted twist bones, which is all well and good (though I do have a bonus question at the end about that, for anyone who cares to answer).
But say your character is wearing a solid steel band in the middle of the forearm, encompassing, say, a third of the forearm's length. It's rigid, so its twist has to remain constant across its length. How do I reconcile this with the previously described natural twisting motion? Do I set the twist of the bracer to be approximately the average of what the twist of the skin underneath it would be?
This would also mean that there would be a bit of a twist discontinuity where the bracer meets the forearm on either end. To help visualize this, imagine this string of numbers is the amount of twist the forearm experiences at various points along its length, from hand to elbow, where the hand has '10' twist:
10, 9, 8, 7, 5, 3, 1, 0
A reasonably smooth transition. If we add a bracer, though, some of the points will have to be the same amount of twist. I'll represent these points as being contained in square brackets. Near as I can tell, it'd look like this:
10, 9, [7, 7, 7], 3, 1, 0.
So, there'd be quite a sudden change from 7 to 3 units of twist. Do I simply... let that happen, and make the twist look fairly natural by adding an appropriate number of edge loops to prevent volume loss?
EDIT: to clarify, the mesh I am envisioning has no actual flesh underneath the bracer, just to reduce the amount of stuff to draw. The arm/bracer interface would be one continuous mesh, though I'd be open to having separate meshes if that's just how one has to do it.
------
Bonus question: what is the advantage of using multiple twist bones (matched to the twist of the hand, diminishing in influence the closer you get to the elbow), as opposed to a single twist bone with appropriate weights? So, say you have three twist bones, matched to the hand-twist with an influence of 1, 0.6, and 0.3, respectively. Is there any difference between that and me simply taking the vertex weights of each twist bone, multiplying them by the total bone influence, and then using those weights and applying them to a single twist bone? As far as I can tell it's a linear system, so the effect would be exactly the same.
Replies
Bonus Question answer: The problem lies in the fact that it is a linear skinning system and the vertices will collapse on themselves, known somewhat as the candy wrapper effect. There are tons of papers on it.
Scaling and transforms work as expected, why not rotation? It's not as if when I select a bunch of vertices to rotate around an axis in the app normally they shrink to nothing. I figured the candy-wrapper stuff was because if you have a cylindrical prism with only two loops, and twist one end 180 degrees, the edges that connect the two circular faces are going to intersect at the middle, resulting in something that looks like two cones with their points touching each other.