MB-Lab
MB-Lab copied to clipboard
Issue with json pose export / import
Firstly, thanks for keeping this project going!
Description: JSON export system for poses does not properly capture the current pose of the character. It attempts to apply a rest pose (It looks like the standard rest pose) to the character in addition to the actual pose that the user is trying to capture.
I am running on Arch Linux, in Blender 2.91.0, running the plugin off of the master branch that I downloaded from git around December 27th.
To Reproduce:
- Finalize a character.
- Load a pose from the sample library (Ex: male captured 01)
- (optionally) Modify the armature in blender pose mode
- Save the pose as a json file
- Set the armature back to rest pose (in my case t-pose)
- Load the saved json pose
- Model will appear to be deformed in a blend of a few poses
Expected behavior Json pose file should contain similar data on export to the original library file.
Additional context I am not an expert on python so it is hard for me to diagnose the issue. It looks as if the import def attempts to set the model to a rest pose before applying the data from the json file. Perhaps there is something odd in the logic there.
Example JSON
Below is some sample output from the files for reference.
Original Captured01 First Lines Excerpt `
index00_R | |
0 | 1 |
1 | -1.4901161193847656e-8 |
2 | 1.4901161193847656e-8 |
3 | 1.1175870895385742e-8 |
foot_R | |
0 | 0.9962068200111389 |
1 | -0.0259423665702343 |
2 | -0.0029539582319557667 |
3 | -0.08300895243883133 |
calf_R | |
0 | 0.9906958937644958 |
1 | -0.076245978474617 |
2 | 0.10502465069293976 |
3 | -0.04096471518278122 |
hand_L | |
0 | 0.991430938243866 |
1 | -0.125617116689682 |
2 | 0.024668896570801735 |
3 | -0.026011213660240173 |
calf_twist_R | |
0 | 1 |
1 | 9.313224635931761e-10 |
2 | -2.5029294192790985e-9 |
3 | 0 |
**New Export Captured01 First Lines Excerpt**
root | |
0 | 1 |
1 | 0 |
2 | 0 |
3 | 1.4210854715202004e-14 |
pelvis | |
0 | 1 |
1 | 1.0430863994770334e-7 |
2 | 1.1186100934423848e-8 |
3 | -5.582479545296337e-8 |
thigh_R | |
0 | 0.9918503761291504 |
1 | 0.12605217099189758 |
2 | -0.003925259690731764 |
3 | -0.01812080293893814 |
calf_R | |
0 | 0.9909215569496155 |
1 | -0.07855662703514099 |
2 | 0.09860283881425858 |
3 | -0.04669991135597229 |
foot_R | |
0 | 0.9947118163108826 |
1 | -0.06774932146072388 |
2 | 0.07480131834745407 |
3 | -0.01906389743089676 |
`
Work Around Have blender export the posed armature as BVH and then import it using the mb-lab tools.
Hmm I am not sure what is going on, I will have to test this myself
@animate1978 where in the code are the import and export functions I can have a look at it, haven't tested myself.
It should be clearing all translations, rotations and scaling ops before applying the pose. If instead it's applying a rest pose that's not the characters original rest pose that would cause such an issue.
It's ok found the functions, will take a bit of unpicking the way it's done more complex than I had imagined.