Open io7m opened 7 months ago
The video attachment went missing. Here it is:
A workaround I've found for this is to make an export of the human and then use that instead, or appending the armature instead of linking it.
The issue seems to be the Stretch To contraint on the bones of the armature. I don't know why, but not every armature is affected in my case/file.
This should resolve the issue and all of your poses and action strips should work as expected even after you reopen the file.
I have not done any further testing deactivating the Stretch To contraint, but posing and using actions strips with animation data looks fine without issues as of right now.
Thanks for the workaround(s). Is this a bug in Blender, or a bug in HumGen?
The armature get's "corrupted" in files opened with a blender installation without HumGen installed aswell. So the addon can't interfere with anything as it's not installed and yet the problem occurs.
This suggests that this may be a bug in blender concerning the Stretch To bone constraint in conjunction with library overrides.
As the armature still looks good after disabling the Stretch To bone constraints - as of right now without further testing - I guess that the Stretch To bone constraint is only needed during the creation of a human. This guess has to be confirmed or denied by the author of the add-on.
If the Stretch To bone constraint on all bones of the HumGen armature is not needed after creating and finishing a human, a possible fix for this issue in the HumGen add-on could be making the deletion of the bone constraints a part of the final step for creating the human. This should bypass the issue of the "corrupted" armature as the cause - the constraints on the bones - is removed.
Thanks, I'll try reporting this upstream!
I've also written the following script to effectively turn off the constraints:
import bpy
def uncrumple(obj):
"""Effectively mutes the Stretch To contstraints on all bones"""
for bone in obj.pose.bones:
for con in bone.constraints:
if con.name != "Stretch To":
continue
con.influence = 0
# For example (IDK if this call would work here...)
uncrumple(bpy.context.object)
Eventually got around to filing upstream:
Describe the bug
After linking a generated human into a blend file, creating some keyframes for the pose, saving, and then reopening the file, the skeleton is completely corrupted.
To Reproduce
I've attached a video
humgen_bug.mkv
that demonstrates the problem.Steps to reproduce the behavior:
Screenshots See attached video.
Desktop (please complete the following information):
Linux workstation01 6.7.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 08 Mar 2024 01:59:01 +0000 x86_64 GNU/Linux