soupday / cc_blender_tools

Add-on for Blender, for importing and auto-setup of character creator 3 & 4 and iClone 7 & 8 character exports into Blender.
GNU General Public License v3.0
428 stars 80 forks source link

One vertex per elbow have no weights assigned w/ Rigify import #234

Closed twenty41 closed 3 weeks ago

twenty41 commented 1 month ago

https://github.com/soupday/cc_blender_tools/assets/46447750/9bcfcc6d-9f21-45cd-a5ba-b390a9dae4b3

In this video you can see that one vertex on the elbow stays in place as it has no weight assigned after importing with Rigify selected

https://github.com/soupday/cc_blender_tools/assets/46447750/d08181b3-6a21-457c-aba8-8f48c47178ec

This is easily fixed by doing the above but is surely a mistake

soupday commented 1 month ago

That is the expected vertex weight for that particular vertex.

The real question is why isn't the elbow share bone moving with the forearm? DEF-elbow_share.X should be parented to DEF-forearm.X with local location and inherit rotation, with a constraint that copies half the rotation of DEF-upper_arm.X.001, so it acts as an elbow twist bone to help maintain the volume of the elbow joint.

elbow-share

twenty41 commented 1 month ago

That is the expected vertex weight for that particular vertex.

The real question is why isn't the elbow share bone moving with the forearm? DEF-elbow_share.X should be parented to DEF-forearm.X with local location and inherit rotation, with a constraint that copies half the rotation of DEF-upper_arm.X.001, so it acts as an elbow twist bone to help maintain the volume of the elbow joint.

elbow-share

I see, right, but I don't know. It's been the case with all characters I've imported

soupday commented 1 month ago

Are there any errors logged to the system console after Rigifying? If any of the bones failed to parent correctly it should say so there.

What's odd about it is that it's only the one vertex affected. But the elbow share bone is weighted to all the verts surrounding the elbow, so even if that bone stopped moving it would affect more than just that one vertex

Unless the bone is missing completely, then it does exactly what you see. And if it's missing there should be some errors logged to the console to say why.

twenty41 commented 3 weeks ago

Sorry for late reply and actually it's some what my fault

This actually only happens after I Re-Generate the rig

Every time I import a character I

  1. Import with Wrinkles and Rigify checked
  2. Edit the metarig so that "spine" has a pivot_position of 1 (just my preferred setting)
  3. Upgrade Face Rig
  4. Re-Generate metarig

It's after this that the weights are broken for those vertices.

Here is the console log from doing exclusively the steps listed above in that order and nothing else:

Read prefs: "C:\Users\admin\AppData\Roaming\Blender Foundation\Blender\4.1\config\userpref.blend"
Format of this font file is not supported
Can't load font: D:\Program Files\Blender Foundation\Blender 4.1\4.1\datafiles\fonts\SuisseIntl-Regular.ttf
Format of this font file is not supported
Can't load font: D:\Program Files\Blender Foundation\Blender 4.1\4.1\datafiles\fonts\SuisseIntl-Regular.ttf
Unable to load font: D:\Program Files\Blender Foundation\Blender 4.1\4.1\datafiles\fonts\SuisseIntl-Regular.ttf
Reloading external rigs...
Reloading external metarigs...
cc_blender_tools_updater updater verbose is enabled
cc_blender_tools_updater Updater: Read in JSON settings from file
Registered nodes
Info: Updated sidebar tabs
cc_blender_tools_updater updater: Running background check for update
FBX version: 7200
Fetch rig.
Clear rig animation data.
Create widgets collection: 0.002
Duplicate rig: 0.057
Instantiate rigs: 0.002
Initialize rigs: 0.000
Prepare bones: 0.002
Generate bones: 10.651
Parent bones: 0.043
Configure bones: 0.037
Preapply bones: 0.022
Apply bones: 0.005
Rig bones: 0.054
Generate widgets: 0.045
Assign layers: 0.054
Finalize: 0.048
The rest: 0.050
Info: Successfully generated: "fm_thermal_male_rig"
   Parenting: CC_Base_Body
   Success!
   Parenting: CC_Base_EyeOcclusion
   Success!
   Parenting: CC_Base_TearLine
   Success!
   Parenting: CC_Base_Tongue
   Success!
   Parenting: Kevin_Brow
Warning: Bone Heat Weighting: failed to find solution for one or more bones
   Parent with automatic weights failed: attempting mesh clean up...
Info: Removed 0 vertice(s)
Info: Removed: 0 vertices, 0 edges, 0 faces
Info: Removed: 0 vertices, 0 edges, 0 faces
   Parenting: Kevin_Brow
Warning: Bone Heat Weighting: failed to find solution for one or more bones
   Parent with automatic weights failed again: transferring weights from body mesh.
   Vertex weights transferred.
Info: Meta-rig generated!
Warning: Rigify Complete! Some issues with the face rig were detected and fixed automatically. See console log.
*Error: Could not find ORG bone: ORG-eyes in ORG_BONES!
*Error: Could not find ORG bone: ORG-jaw in ORG_BONES!
Info: All Done!

FBX version: 7200
Fetch rig.
Clear rig animation data.
Create widgets collection: 0.002
Duplicate rig: 0.059
Instantiate rigs: 0.002
Initialize rigs: 0.000
Prepare bones: 0.002
Generate bones: 11.091
Parent bones: 0.042
Configure bones: 0.037
Preapply bones: 0.022
Apply bones: 0.004
Rig bones: 0.056
Generate widgets: 0.046
Assign layers: 0.055
Finalize: 0.049
The rest: 0.046
Info: Successfully generated: "fm_thermal_male_rig"
   Parenting: CC_Base_Body
   Success!
   Parenting: CC_Base_EyeOcclusion
   Success!
   Parenting: CC_Base_TearLine
   Success!
   Parenting: CC_Base_Tongue
   Success!
   Parenting: Kevin_Brow
Warning: Bone Heat Weighting: failed to find solution for one or more bones
   Parent with automatic weights failed: attempting mesh clean up...
Info: Removed 0 vertice(s)
Info: Removed: 0 vertices, 0 edges, 0 faces
Info: Removed: 0 vertices, 0 edges, 0 faces
   Parenting: Kevin_Brow
Warning: Bone Heat Weighting: failed to find solution for one or more bones
   Parent with automatic weights failed again: transferring weights from body mesh.
   Vertex weights transferred.
Info: Meta-rig generated!
Warning: Rigify Complete! Some issues with the face rig were detected and fixed automatically. See console log.
*Error: Could not find ORG bone: ORG-eyes in ORG_BONES!
*Error: Could not find ORG bone: ORG-jaw in ORG_BONES!
Info: All Done!

Fetch rig.
Clear rig animation data.
Create widgets collection: 0.018
Duplicate rig: 0.139
Instantiate rigs: 0.005
Initialize rigs: 0.011
Prepare bones: 0.004
Generate bones: 0.133
Parent bones: 0.109
Configure bones: 0.079
Preapply bones: 0.030
Apply bones: 0.010
Rig bones: 0.159
Generate widgets: 0.056
Assign layers: 0.080
Finalize: 0.059
The rest: 0.063
Info: Successfully generated: "fm_thermal_male_Rigify"

Happens after the re-generating, not the face rig upgrade Am I not allowed to regenerate or should I be doing it some other way?

DEF-elbow_share.L looks to be weighted properly image

soupday commented 3 weeks ago

Ah.. are you pressing the "Re-Generate Rig" in the Rigify section of the main armature data panel?

There's further processing needs to be done to the Rigify rig to make it work with CC/iC Characters:

rigify-meta

Also it doesn't work yet with the upgraded face rig.

twenty41 commented 3 weeks ago

Ah.. are you pressing the "Re-Generate Rig" in the Rigify section of the main armature data panel?

There's further processing needs to be done to the Rigify rig to make it work with CC/iC Characters:

rigify-meta

Also it doesn't work yet with the upgraded face rig.

Thank you that must be all it is sorry