Bug fixes

- When i updated Wheels I used the Python 13 one, blender is Python 11 so provided the correct wheels packages. Also added macos 10.9 for Intel users.
- Fixed issue where Join Meshes, made it faster as well.
- Fixed issues with viseme generation and previewing.
- Removed MMD Panel and Tools.
- Fixed issue with armature merging
- Fixed reset eye tracking button throwing errors in the SDK2 panel.
- Added info in the SDK2 panel about this only being used for other games, VRChat Eye tracking is setup in Unity.
- Fixed issue where if models have upper ears and lower ears the amrature validation system would mark it as problem bones.
- Added instructions to armature validation about other bones and re the standardization button.
This commit is contained in:
Yusarina
2025-03-24 22:58:51 +00:00
parent c90bf4e36c
commit 546fec6039
18 changed files with 150 additions and 893 deletions
+25 -2
View File
@@ -406,6 +406,14 @@ def set_rotation(self, context):
StartTestingButton.execute(StartTestingButton, context)
return None
# Check if rotation data is available
if not eye_left_rot or len(eye_left_rot) < 3 or not eye_right_rot or len(eye_right_rot) < 3:
# Initialize rotation data if missing
eye_left.rotation_mode = 'XYZ'
eye_left_rot = list(eye_left.rotation_euler)
eye_right.rotation_mode = 'XYZ'
eye_right_rot = list(eye_right.rotation_euler)
eye_left.rotation_mode = 'XYZ'
eye_right.rotation_mode = 'XYZ'
@@ -898,9 +906,24 @@ class ResetEyeTrackingButton(Operator):
def execute(self, context):
global eye_left, eye_right, eye_left_data, eye_right_data, eye_left_rot, eye_right_rot
eye_left = eye_right = eye_left_data = eye_right_data = None
eye_left_rot = eye_right_rot = []
context.scene.avatar_toolkit.eye_mode = 'CREATION'
context.scene.avatar_toolkit.eye_rotation_x = 0
context.scene.avatar_toolkit.eye_rotation_y = 0
eye_left = None
eye_right = None
eye_left_data = None
eye_right_data = None
eye_left_rot = []
eye_right_rot = []
mesh_name = context.scene.avatar_toolkit.mesh_name_eye
mesh = bpy.data.objects.get(mesh_name)
if mesh and mesh.data.shape_keys:
for shape_key in mesh.data.shape_keys.key_blocks:
shape_key.value = 0
return {'FINISHED'}
def validate_weights(mesh_obj: Object, vertex_group: str) -> bool: