47 lines
1.9 KiB
Python
47 lines
1.9 KiB
Python
import bpy
|
|
from typing import Set
|
|
from bpy.types import Panel, Context, UILayout
|
|
from .main_panel import AvatarToolKit_PT_AvatarToolkitPanel, CATEGORY_NAME
|
|
from ..core.translations import t
|
|
|
|
class AvatarToolKit_PT_MMDPanel(Panel):
|
|
"""Panel containing MMD bone standardization and cleanup tools"""
|
|
bl_label = t("MMD.label")
|
|
bl_idname = "OBJECT_PT_avatar_toolkit_mmd"
|
|
bl_space_type = 'VIEW_3D'
|
|
bl_region_type = 'UI'
|
|
bl_category = CATEGORY_NAME
|
|
bl_parent_id = AvatarToolKit_PT_AvatarToolkitPanel.bl_idname
|
|
bl_order = 3
|
|
|
|
def draw(self, context: Context) -> None:
|
|
layout: UILayout = self.layout
|
|
toolkit = context.scene.avatar_toolkit
|
|
|
|
# Bone Settings Box
|
|
bone_box: UILayout = layout.box()
|
|
col: UILayout = bone_box.column(align=True)
|
|
col.label(text=t("MMD.bone_settings"), icon='BONE_DATA')
|
|
col.separator(factor=0.5)
|
|
col.prop(toolkit, "keep_twist_bones")
|
|
col.prop(toolkit, "keep_upper_chest")
|
|
col.operator("avatar_toolkit.standardize_mmd", icon='BONE_DATA')
|
|
|
|
# Mesh Tools Box
|
|
mesh_box: UILayout = layout.box()
|
|
col = mesh_box.column(align=True)
|
|
col.label(text=t("MMD.mesh_tools"), icon='MESH_DATA')
|
|
col.separator(factor=0.5)
|
|
row: UILayout = col.row(align=True)
|
|
row.operator("avatar_toolkit.fix_meshes", icon='MODIFIER')
|
|
row.operator("avatar_toolkit.validate_meshes", icon='CHECKMARK')
|
|
|
|
# Cleanup Box
|
|
cleanup_box: UILayout = layout.box()
|
|
col = cleanup_box.column(align=True)
|
|
col.label(text=t("MMD.cleanup"), icon='BRUSH_DATA')
|
|
col.separator(factor=0.5)
|
|
col.operator("avatar_toolkit.cleanup_mmd", icon='SHADERFX')
|
|
col.operator("avatar_toolkit.convert_mmd_morphs", icon='SHAPEKEY_DATA')
|
|
col.operator("avatar_toolkit.reparent_meshes", icon='OUTLINER_OB_ARMATURE')
|