daz3d / DazToC4D

Daz to Cinema 4D Bridge
https://www.daz3d.com/daz-to-cinema-4d-bridge
Other
29 stars 11 forks source link

Re-Targeting Character Pose and Animations - Updated #36

Open brucek5 opened 2 years ago

brucek5 commented 2 years ago

Hi danielbui78,

The attached PDF file is a summary of the Cinema 4D Python script I've been working on, and offering to hand over to your community. This document also summarizes the challenges of transferring animations/pose from one type of Genesis character to another you DAZ or Cinema 4D users that don't understand. Finally, the document has a Python function I wrote to perform the joint value conversion.

Re-Targeting Character Pose and Animations_V2.pdf

Feel free to move or delete this posting as it's not an "Issue".

Bruce Kingsley

brucek5 commented 2 years ago

Further code testing, I updated the CreateJointHPBOffsetHPB Python function to better work from joint objects directly. Using the values in the attached .CSV file my retargeting script reads, I transferred a Genesis 3 Female pose to a Genesis 8 Female with an exact match.

CreateJointHPBOffsetHPB_V2.txt

Retarget_Object_Genesis3Female_To_Genesis8Female.csv

brucek5 commented 2 years ago

I tested my animation Cinema 4D re-targeting software today using different DAZ characters:

  1. Genesis 8 -> Genesis 8
  2. Genesis 3 -> Genesis 8
  3. Genesis 2 -> Genesis 8
  4. Mixamo -> Genesis 8

Perfectly smooth animation and absolutely no gimble noise. I did discover I need to make a change to my character definition file to address compound axis offsets. The Genesis 2 forearm has around -12 deg X axis offset, and the Mixamo has around a +5 deg offset.

I also ran a test where the source character was setup with IK joint tags and most of the animation was controlled by moving the IK goals, rather than the joints. This too successfully transferred the animation to the target character.