Read binary Emotecraft emotes and fix the torso's bend direction
tools/emotecraft/convert.py turns Emotecraft's binary .emotecraft files (its network packet, with the animation in player-animator's legacy format) into the Emotecraft JSON EmotecraftLoader reads. Converting a few community emotes showed the loader bent the torso the wrong way: Get the Griddy, which hunches forward, arched back. Emotecraft bends limbs the other way from us, but not the torso, whose bend is anchored at the hips here and so already turned round. The loader now keeps the torso's bend sign, and gives the whole player's bend to the torso, as Emotecraft does. fit.py writes torso bends to match, so re-exported captures look the same. Bumps the version to 0.1.1 for the fix. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -28,7 +28,8 @@ def to_file(bone, channel, value):
|
||||
return value + REST.get(bone, (0, 0, 0))["xyz".index(channel)]
|
||||
degrees = np.degrees(value)
|
||||
if channel == "bend":
|
||||
return -degrees
|
||||
# Limbs bend the other way in Emotecraft; the torso agrees with ours.
|
||||
return degrees if bone == "body" else -degrees
|
||||
if bone == "root" and channel in ("pitch", "yaw"):
|
||||
return -degrees
|
||||
return degrees
|
||||
|
||||
Reference in New Issue
Block a user