Thanks James for your help, I'm cutting and pasting your answers because I think there are some tips and answers that may be useful for other users, especially for those new to Ziva.
I think that I may have removed the artifact that you are seeing.
I actually didn't need to do anything with the rig itself, but made a couple of small tweaks on the solver node.
I changed Max Newton Iterations from "2" to "10" and reduced Substeps from 8 to 4 and adjusted the interpolation for the keyframe on the substeps to a "Stepped Next" tangent.
I also set the solver to use the "iterative solver" - the result should be the same as the direct solver, but it should be noticeably faster.
Thanks for the solution, I never touched the Newton Iterations parameter because it is one of those parameters that did not seem intuitive to me, I did not understand it very well and it seemed to me that it made the simulation more expensive in all frames.
Reviewing the documentation after receiving your answer, it seems that I was wrong and that it is a maximum, but that it only applies to those frames that need it.
And that by increasing that value, it allowed you to lower the substeps, so what we lose in time on one side we gain on the other, is this correct?
Correct. It will only use the newton iterations if it's needed. You can think of what it does in a manner similar to how you might consider how motion blur works when rendering. When rendering with motion blur, to represent motion blur on objects that are rotating (like propellers) more subframes are needed to integrate the curved path of the motion blur. Similarly,the Newton iterations are responsible for converting a non-linear motion of the vertices of the tetrahedra into linear segments (the solve is a linear solver). If your tissues are undergoing large nonlinear deformations or rotations, the solver will typically need to use more Newton iterations to resolve the correct behavior of the tetrahedra especially if they have stiff materials, stiff attachments, forceful fibres and stiff collisions.
How did you decide to set that value to 10 and not, for example, 4, by trial and error?
I just set the value back to the default, which is 10 - it rarely will need to use that many.
As for putting steped tangents on the substep keys, I think it would be nice to edit the text in the Pre-Roll tutorial (https://zivadynamics.com/resources/pre-roll-run-up-setup), so that all the people who start take it into account.
I don't see much of the relationship it has with the knee problem, but I suppose it is so that it doesn't do any calculations in the intermediate frames (for example 981.5) when it changes from one value to another.
That's correct - if it starts to compute the intermediate values when the character is being transformed out into space, the simulation will experience the acceleration implicit with the movement that got the object to that intermediate position from the origin relative to the solver frame.
About setting the solver to Iterative, I thought I read that at the moment it only worked for the integrator solver in BackwardEuler. So I can also use it with TR_BDF2?
You may be correct there - I have an internal build ;-P
Expect improvements on this front in the future if it isn't already supporting TR_BDF2 in your build 🙂
I also wanted to ask you one last thing, in the video I showed you, around frames 1229-1231, the tendons move a lot and move my fat, causing it to get out of place for a few frames, because the animation is very fast and abrupt.
To fix this, I was thinking of increasing the material pressure in that area and touching on an attribute I've never used, adding some Stifness Dumping in zSolver (something like 0.1 is now at 0.001) so the tendons don't deform as much. Would this be correct?
That might help, though strictly speaking what I think you are looking for here is something to mimic the behaviour of friction - You could try and do one of the following things to see if this will help.
1) Add some loose fixed attachments in that area to give the fat some resistance.
2) Same idea, different approach - add a tissue that envelops that part of the fat with its collisions off, attach it to the bone and then attach the fat to the new tissue with a fixed attachment selecting the fat first and the tissue second - adjust the tissue stiffness to control the movement of the fat.
3) For the collision response of the fat, try using a fixed collision response rather than sliding response - this will somewhat mimic the behaviour of friction.
4) Same as above with a seperate tissue attached so that you can control the collision response independently from that of the rest of the fat
5) Break your fat into more than one section and adjust the inertial damping for the part in question in isolation.
6) Adjust stiffness damping like you were thinking - this would be the easiest if it does the trick.