Hi Alon, great to hear you're progressing into shot work!
I'll give you a quick description of the best way to do run up for shot work. Lets assume the animation starts on frame 1001.
The animation should be published like this:
- Frame 980 the character is in default pose at the origin.
- Frame 981 the character is in default pose, in world space.
- Frame 1001 the character is in animation start pose, in world space.
So now you can have an Alembic of the bones moving into world space over one frame, and then into anim start pose over 20.
In your shot file:
- Import/reference the Ziva muscle setup.
- Import the alembic bake of your skeleton animation with runup as described above.
- Make a blendshape between every bone on the Alembic to the corresponding bone on in the Ziva muscle setup.
- Set each blendshape target to 1.
- set the zSolver1 start frame to 980
If you run it now, the move from origin to world space position over 1 frame will rip the sim apart. To have this work properly you need to move solver node with the character over that one frame. So:
- Frame 980 key the zSolver transform at origin.
- Frame 981 key the zSolver transform to match the global placement ctrl position in world space.
Lastly, this jump to world space should happen at 1 substep. (we don't want to calculate subframes on this jump, because the character might get out of synch with the solver position on subframes)
- Frame 981 key zSolver1.substeps to 1
- Frame 982 key zSolver1.substeps to whatever you were using.
Now, on to zCache. This is partly our fault for using the word cache. Our cache is not designed to be a shot tool. It's an authoring tool that allows you to scrub the timeline when you're authoring characters to debug things.
With regard to the shot pipeline, the idea is that the only thing that needs to be passed to a subsequent simulation pass is an alembic cache - here's what the pipeline can look like (right-click open in new tab):
Let me know if you have any questions! Cheers