Hi Michael !
definitly alembic workflow is the best way for working. An another thing you have to do to be sure everything will work fine, is making a zivatool/polymesh analisys and self intersection. The polymesh analisys will give you the small triangle and hole in your mesh. It's important because if their is one of those issu on your mesh it will disable the collision from this mesh (and refuse to build a zTissue on it, so if ziva as build the zTissu everything looks ok).
my workflow is to separate my sim in 3 or 4 scene :
part 01 : the muscle scene
import your skeleton animation as alembic and set all your skeleton as ziva bone (most of the time the stiffness as cool setting for this part)
create your muscle rig (ztissu, zfiber, line of action). I put a script to help for working with line of action in the forum, this is just and uptade of Andy vs script.
my properties for the muscle will be arround 12.103 and 14.103 for the stretchy muscle and sometime I can go up to 5.104 for muscle arround the boom. Zfiber will depend of the design you want but I'm mostly arround 12.104 and sometime I go arround 12.103. I will paint the zFiber for some muscle (not all) but I will check the startPoint/endPoint on every muscle and sometime I add a little bit of excitation (never more than 0.1). My line of action pos sensitivity will be arround 3 or 5 sometime I stay at 1. But I add a zfiber + zlineOfAction on every muscle.
Then I will adjust the inertial damping between 0 -> 0.65 to remove the inertial jiggle but this par will depend of your animation.
adjust the ztet to have not too much but not too low number !!!! (check the mr ink scene)
The hardest part is to choose the best way to make the attachement.
so muscle origine to skeleton : I attach only few vertice with fixed attachement stay at the initial value (1.108)
muscle to skeleton : most of the time it's sliding attachement arround 1.105 but sometime I select the skeleton first then the muscle.
Sometime I will have an fixed attachement muscle to bone (1.105 maybe 4) coupled with a sliding attachement bone to muscle. I do this with muscle to muscle too but not all my muscle are attached together (depend of what you want to design).
I ramp my animation from frame 990 (build pose) -> 1000 (first frame of animation) and the really important part is to key a ramp on your excitation key from 990 -> 1000 with value 0 to your value. Same thing with the inertial damping but this time you will ramp from 1 to your value. You don't have to do this part for your test of course, only when you publish your model.
during the sim it's important to check the self-intersection on every frame
I put a script on the forum to do that. So you can had a cache launch the script, drink a coffee, then if their is no issu, export your alembic.
(it mean self interstion between different mesh combined doesn't create any trouble, so I launch the script only on my muscle)
solver :
collision : on
collision point spacing : between 0.1 and 0.05
substep : arround 2
gravity y : -9.8 (make a ramp 0 -> -9.8 from 991 to 1000 help)
part 02.a : modeling the fat scene
the most difficult part on the fat scene is modeling the inner layer. The best way is to follow andy's webinar about the fascia but using it to work directly with the fat. Having not too many polygon on your fat will help to optimize (a loooot) your simulation time.
so the difference between a 40k modele and a 20k model will be very important ! of course you can use an auto retopologize tool (andy use mudbox but I prefer zBrush). So I try to have arround 10k for my inner layer so 20k for my fat.
managing the pressure of your cloth for your modeling will be really important because you have some par where you will want a lot of detail (knee, neck, arm etc) and some place where it will be better to have a more sliding under the fat (chest, back, inner leg) but of course it depend of what you want to design !!! repeat the action until you fascia doesn't move by pressure, when it stay fixe during the sim it ok !
for simulating that part : ramp pressure, restScale 0 -> 1 from frame 990 -> 995 and add more substep (arround 8)
then project your fascia to your fat (use wrap 3) clean it (use the quadDraw/smooth) don't hesitate to retopologize some part (arround the shoudler/leg) on the fat independly of the fascia and keep the same topologie on the border. And check your fascia doesn't intersecte your fat.
It's important to have a minimum of distance between your fat and your fascia for every vertice (if they are too close that will create some trouble). to do that I use the sculpt tool (lift) it's not an issue if your outler layer is a little bit different (push out) than the main model
reverse normal of your fascia, combine with your fat and bridge every hole.
(keeping the inner, outer and caps separated on another scene will help for the workflow)
solver :
collision : on
collision point spacing : between 0.03 and 0.004 (will slow down your sim)
substep : arround 8
gravity y : 0
part 02.b : setup the fat
import your muscle / skeleton as alembic, convert them to zBone and add an higher stiffness (arround 1.108)
import your fat mesh convert it to zTissue, modify your zTet (not to much for the test but you will put an higher value for the end sim)
what I do here (but this is personnal) I zPolyCombine my muscle and my skeleton to have one objet with animation then select my fat + my caps use the zivaTools select vertice by proximity and create an fixed attachment between my zPolyCombined object and my fat (1.108). You can also do it separatly for each border.
now I setup my zTissu. Select your fat, select your innerLayer(fascia) -> select vertice by proximity (0.001) add a new materialLayer on the the fat and call it inner layer.
so now you have two layer : the main (Outer layer) and the inner layer
the inner layer add a big pressure (arround between -2000 and -3000) restScale 1, young modulus 12.103, poisson ration 0.4, surface tension between 25->40 (depend of your model)
you can paint in black the inner layer to have some part with no pressure.
the outer layer is the fat so you can add a young modulus arround 3.103, depend of what you want, poisson ration 0, volume concervation arround 10.104 (will slow down your sim but have a better result like in andy tutorial) pressure 0 restScale 1 surface tension 0.
You can of course add more layer inner and outer with more surface tension or pressure to design your creature
for the attachement, it's better to not have too many of them but ! the way I use on this part is selecting the bones first then the fat layer. Convert it to sliding attachment and having a really low value on the stiffness(between 1.104 and 1.105) : what I do is selecting the attachment and make a paint attachment by proximity.
sometime I use a fixed attachement for part I really want to have specific deformation : select the bone, select the fat, attachment, paint attachment bu proximity.
then you have to clean the paint with selecting the bones and paint the attachment.
You can also attach the outer layer of the fat to the muscle so : select fat, select zPolyCombined object or muscle -> attachment (stiffness 1.105)
solver :
collision : on
collision point spacing : between 0.03 (for test) and 0.004 (for final sim) (will slow down your sim)
substep : arround 4
max newton iteration : 2
gravity y : ramp 0 at 991 to 1000
I can also play with the inertial damping of my zTissu.
Part 03 : merge everything
on my animation scene I will export my skinned model with an high resolution (arround 120k (smooth lvl 2 or 3))
import your fat
import your animation model
duplicate your animation model we will call it "output"
wrap "output" to your fat, blendshape your animation model to your "output".
(in input layer your blendshape need to be over the wrap !)
then flood the blendshape weight (not the bs target weight) to 0
and paint to 1 the part who are not in your fat mesh. Flood smooth.
on that part you can add a deltamush painted over some area to clean the stuff you don't like on your fat layer.
Export "output" as alembic.
Part 04 : the dermal
the dermal pass will create the wrinkle of the skin over your merged model.
Ziva vfx recommand to sim it directly on the fat layer but I prefer to sim it separatly and after having merge the model for two reason. The both way works, mine but this one is slower and constrain to have one more scene to simulate..
if your character is far away of the cam -> the wrinkle will be a not visible detail so you can skip this step
and it will create some detail arround the skinned part which will fake the skinned part and getting better final result.
what I do :
import your merge as alembic
duplicate it as dermal
convert the merge as zbone
convert the dermal as zcloth
make a fixed attachment between the dermal and the merge
set this attachment with a low value (between 1.104 and 5.105) more this value will be low, more you will have wrinkle.
what I do is creating 3 different material over the zcloth ->
lowWrinkle
midWrinkle
bigWrinkle
and I play with the bend stiffness to design those part (but first I launch a sim with full low wrinkle to watch what happend of course).
zcloth collision are off
solver :
collision : 0
collision point spacing : 0.1 (we don't care we have no collision 😛)
substep : 2
gravity y : 0
NOW some tips and tricks :
save every muscle/fat rig with the ziva command for rebuilding everything at every moment. when you re-import the ziva rig be sure to have every object on your scene (different topologie will not be an issu)
rename all your node (ziva as a command to do this automatically)
play with driver / driven blendshape tips from Andy tutorials.
create some display layer to hide / show every part (skeleton/muscle/solver/line of action etc...)
after a sim don't hesitate to import the alembic on your scene to compare with the futur sim.
work with playblast (of course)
the muscle part will design your anim
the fat part will design your skinning (for me this is the difficult part !)
the dermal part will design your detail
Hope it will help ! English people don't hesitate to correct me because my english isn't the best of the world !!