Hello All,
I've been lurking the forums for a while and am completely amazed by all of the work that has been done here.
Doing muscle simulation is something that I have put off for way to long, so recently I have requested the 2 month trial to have a go at this myself. With this first post I am hoping to start a discussion of my journey using Ziva Dynamics and gain feedback from professionals.
Before requesting the trial I put a lot of working in creating/rigging a skeleton using an auto rigger system I have written myself in previous years. The skin has been modelled by a colleague and very talented artist ( Michael Falzon ), at Digital Surgery. With the skin created I filled in the internals using various references.
This is a small clip of the skeleton in action:
For any final work I am thinking of using the dance mocap data available pre Maya 2016.
To speed up my workflow I've created a GIT repository that will contain all of the utils/tools I've written to help create content faster.
One of these tools helps me import and export animation easily:
The exporter allows you to shift animation and add the preroll animation by setting all keyed attributes to it's default value. The root contains the skeleton. The character name is baked into the export to match animation exports with their muscle rigs. The container contains all of the animated controls of the rig. And the mover is the up must control of your rig.
import zAnimation
exporter = zAnimation.AnimationExport(root="ANIMATION", character="female", container="controls", mover"center_ctrl")
exporter.setStartFrame(1001)
exporter.addPreRoll()
exporter.export("a_fight.abc")
This exported alembic file can be referenced into the muscle rigs.
As the exported animation is tagged, the importer will recognise any animation files in the scene.
The root contains all of the muscle geometry and the character name needs to match the animation exports. The animation attribute contains all of the animated geometry to be connected, ideally the hierarchy is a straight copy. The ziva solver also needs to be provided for that first frame jump step animation.
import zMuscles
importer = zMuscles.MusclesAnimationImport(root="MUSCLES", character="female", animation="ANIMATION", solver="female_solver")
anim = importer.getAnimations()[0]
importer.applyAnimation(anim)
#importer.removeAnimation()
In my brief experience using Ziva also made me notice that setting up sliding attachments is very important and there can be many. The following util will select all meshes based on a proximity value, which you can then isolate select to setup your attachments without unneeded geometry in view.
import zGeometryProximity.ui
zGeometryProximity.ui.show()
Another popular one has to do with Line of Actions. This utils help creation and clustering of the curves. It uses the commands coming with Ziva, it just helps with the naming of things.
import zLineOfAction.ui
zLineOfAction.ui.show()
Hoping to get some time over Easter working on the muscles.
Cheers,
Robert