Dem Bones advice

My hopes here are for people to be able provide any helpful tips to others (myself included) that are looking to start working with Dem Bones for converting arbitrary deformations into a skinCluster.

  • Scene setup: Best practices? What pitfalls to look out for?
  • What arguments should be passed for certain scenarios? Good defaults to start with, best settings for higher accuracy(slower) and best settings for faster results (less accurate).
  • Example scenarios: Converting cloth simulation into joints/skinCluster or converting blendshape corrective into a joint driven skinCluster (adding to existing skeleton and skinCluster) .

I’ll report back after doing my own initial exploration. In the meantime, hopefully others are willing to weigh in on what they’ve found useful/helpful in getting successful results.
Cheers!

1 Like

Well, I thought I’d share some info and ask a follow up question.

After downloading the github project and looking into the data folder, I got at the calls needed (in the run.bat file).

rem Skinning decompsition to generate bone transformations and skinning weights from input meshes sequence
call "../bin/Windows/DemBones.exe" -i="Bone_Geom.fbx" -a="Bone_Anim.abc" -b=5 -o="Decomposition_05.fbx"
call "../bin/Windows/DemBones.exe" -i="Bone_Geom.fbx" -a="Bone_Anim.abc" -b=10 -o="Decomposition_10.fbx"
call "../bin/Windows/DemBones.exe" -i="Bone_Geom.fbx" -a="Bone_Anim.abc" -b=20 -o="Decomposition_20.fbx"

rem Joint grouping 
call "../bin/Windows/DemBones.exe" -i="Bone_Geom.fbx" -a="Bone_Anim.abc" -b=20 --bindUpdate=2 -o="Decomposition_20_grouped.fbx"

rem Solve skinning weights from input meshes sequence and input bone transformations
call "../bin/Windows/DemBones.exe" -i="Bone_Trans.fbx" -a="Bone_Anim.abc" --nTransIters=0 -o="SolvedWeights.fbx"

rem Solve bone transformations from input meshes sequence and input skinning weights
call "../bin/Windows/DemBones.exe" -i="Bone_Skin.fbx" -a="Bone_Anim.abc" --nWeightsIters=0 -o="SolvedTransformations.fbx"

rem Optimize given bone transformations and skinning weights from input meshes sequence
call "../bin/Windows/DemBones.exe" -i="Bone_All.fbx" -a="Bone_Anim.abc" --bindUpdate=1 -o="Optimized.fbx"

rem Only solve helper bones using demLock attribute of the joints
call "../bin/Windows/DemBones.exe" -i="Bone_Helpers.fbx" -a="Bone_Anim.abc" --bindUpdate=1 -o="SolvedHelpers.fbx"

rem Partially solve skinning weights using per-vertex color attribute of the mesh
call "../bin/Windows/DemBones.exe" -i="Bone_PartiallySkinned.fbx" -a="Bone_Anim.abc" --nTransIters=0 -o="SolvedPartialWeights.fbx"

All super helpful examples.

Could use some helpful insights on the 3 args below as to what they do exactly. The --help only gives a bare amount of info on the args.

–transAffine=
bone translations affinity soft constraint

–transAffineNorm=
p-Norm for bone translations affinity

–weightsSmooth=
weights smoothness soft constraint (assuming falloff??))