feat(vrm_mesh_tools): Add standalone VRM mesh tools addon with separation and UV merging

- Add VRM Mesh Tools addon as independent Blender extension with complete functionality
- Implement Body Mesh Separator operator to isolate non-skin materials (CLOTH, etc.) from Body mesh
- Implement UV Edge Merger operator to convert triangles to quads based on UV coordinates
- Add comprehensive UI panel in sidebar with material list and operation buttons
- Include UV edge data JSON files for 10 VRM material types (Body, Face, Eyes, Hair, etc.)
- Add detailed README with installation instructions, usage guide, and compatibility notes
- Configure addon manifest for Blender 4.2+ with proper namespace isolation (vrm_mesh_tools)
- Ensure full compatibility with official VRM addon through independent naming conventions
- Add utility functions for mesh operations, material detection, and JSON data loading
This commit is contained in:
2026-01-02 14:06:18 +08:00
parent 21222044c4
commit 77806a351f
18 changed files with 96964 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
# Placeholder file to ensure directory is tracked by git
# This directory contains JSON edge data files for UV edge merging

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,118 @@
{
"description": "Edge UV data for N00_000_00_FaceEyelash_00_FACE (Instance)",
"total_edges": 112,
"edge_uvs": [
[[0.544165, 0.631242], [0.505881, 0.532443]],
[[0.630136, 0.631242], [0.677712, 0.736516]],
[[0.725608, 0.736516], [0.771321, 0.631242]],
[[0.853103, 0.736516], [0.878623, 0.624128]],
[[0.964185, 0.530252], [0.995744, 0.41732]],
[[0.455835, 0.631242], [0.494119, 0.532443]],
[[0.415292, 0.736516], [0.455835, 0.631242]],
[[0.369864, 0.736516], [0.322288, 0.855226]],
[[0.274392, 0.855226], [0.228679, 0.736516]],
[[0.228679, 0.983897], [0.183674, 0.855226]],
[[0.108634, 0.726003], [0.098715, 0.59326]],
[[0.064526, 0.469594], [0.089458, 0.517009]],
[[0.004256, 0.243915], [0.035177, 0.384901]],
[[0.584708, 0.855226], [0.630136, 0.983897]],
[[0.544165, 0.736516], [0.584708, 0.855226]],
[[0.630136, 0.532794], [0.677712, 0.631242]],
[[0.771321, 0.631242], [0.810676, 0.532573]],
[[0.816326, 0.855226], [0.853103, 0.736516]],
[[0.878623, 0.624128], [0.886484, 0.513762]],
[[0.913097, 0.33099], [0.936432, 0.243915]],
[[0.455835, 0.855226], [0.494119, 0.736516]],
[[0.415292, 0.983897], [0.455835, 0.855226]],
[[0.322288, 0.855226], [0.274392, 0.983897]],
[[0.228679, 0.736516], [0.188503, 0.631242]],
[[0.137685, 0.855226], [0.108634, 0.726003]],
[[0.067401, 0.59014], [0.098715, 0.59326]],
[[0.087542, 0.421032], [0.107709, 0.454409]],
[[0.584708, 0.631242], [0.544165, 0.532493]],
[[0.677712, 0.736516], [0.725608, 0.855226]],
[[0.820334, 0.983897], [0.862315, 0.855226]],
[[0.920375, 0.68592], [0.962269, 0.684334]],
[[0.886484, 0.513762], [0.910542, 0.517009]],
[[0.912458, 0.421032], [0.936432, 0.355213]],
[[0.415292, 0.631242], [0.455835, 0.532493]],
[[0.274392, 0.532794], [0.228679, 0.631242]],
[[0.274392, 0.983897], [0.228679, 0.855226]],
[[0.188503, 0.631242], [0.157148, 0.532738]],
[[0.126838, 0.983897], [0.089528, 0.849711]],
[[0.004256, 0.78906], [0.051958, 0.804902]],
[[0.035815, 0.530252], [0.067401, 0.59014]],
[[0.035177, 0.243915], [0.063568, 0.355213]],
[[0.544165, 0.736516], [0.505881, 0.631242]],
[[0.584708, 0.631242], [0.630136, 0.736516]],
[[0.677712, 0.631242], [0.725608, 0.736516]],
[[0.813115, 0.736516], [0.84716, 0.631242]],
[[0.910472, 0.849711], [0.920375, 0.68592]],
[[0.962269, 0.684334], [0.995744, 0.596958]],
[[0.892291, 0.378519], [0.913097, 0.33099]],
[[0.892291, 0.3095], [0.913097, 0.243915]],
[[0.415292, 0.736516], [0.369864, 0.855226]],
[[0.369864, 0.631242], [0.322288, 0.736516]],
[[0.274392, 0.736516], [0.228679, 0.631242]],
[[0.146897, 0.736516], [0.121376, 0.624128]],
[[0.004256, 0.41732], [0.035815, 0.530252]],
[[0.505881, 0.855226], [0.544165, 0.983897]],
[[0.584708, 0.532593], [0.630136, 0.631242]],
[[0.677712, 0.53292], [0.725608, 0.631242]],
[[0.771321, 0.855226], [0.813115, 0.736516]],
[[0.84716, 0.631242], [0.869062, 0.53317]],
[[0.93276, 0.983897], [0.948042, 0.804902]],
[[0.935474, 0.469594], [0.964823, 0.384901]],
[[0.455835, 0.736516], [0.494119, 0.631242]],
[[0.415292, 0.855226], [0.455835, 0.736516]],
[[0.369864, 0.855226], [0.322288, 0.983897]],
[[0.369864, 0.532794], [0.322288, 0.631242]],
[[0.228679, 0.631242], [0.189324, 0.532573]],
[[0.183674, 0.855226], [0.146897, 0.736516]],
[[0.121376, 0.624128], [0.113516, 0.513762]],
[[0.063568, 0.243915], [0.086903, 0.33099]],
[[0.630136, 0.855226], [0.677712, 0.983897]],
[[0.584708, 0.736516], [0.630136, 0.855226]],
[[0.677712, 0.855226], [0.725608, 0.983897]],
[[0.630136, 0.736516], [0.677712, 0.855226]],
[[0.725608, 0.855226], [0.771321, 0.736516]],
[[0.771321, 0.983897], [0.816326, 0.855226]],
[[0.891366, 0.726003], [0.901285, 0.59326]],
[[0.910542, 0.517009], [0.935474, 0.469594]],
[[0.964823, 0.384901], [0.995744, 0.243915]],
[[0.322288, 0.736516], [0.274392, 0.855226]],
[[0.179666, 0.983897], [0.137685, 0.855226]],
[[0.037731, 0.684334], [0.079625, 0.68592]],
[[0.089458, 0.517009], [0.113516, 0.513762]],
[[0.063568, 0.355213], [0.087542, 0.421032]],
[[0.544165, 0.855226], [0.584708, 0.983897]],
[[0.505881, 0.736516], [0.544165, 0.855226]],
[[0.725608, 0.983897], [0.771321, 0.855226]],
[[0.771321, 0.736516], [0.811497, 0.631242]],
[[0.862315, 0.855226], [0.891366, 0.726003]],
[[0.901285, 0.59326], [0.932599, 0.59014]],
[[0.892291, 0.454409], [0.912458, 0.421032]],
[[0.455835, 0.983897], [0.494119, 0.855226]],
[[0.415292, 0.855226], [0.369864, 0.983897]],
[[0.415292, 0.631242], [0.369864, 0.736516]],
[[0.322288, 0.631242], [0.274392, 0.736516]],
[[0.186885, 0.736516], [0.15284, 0.631242]],
[[0.089528, 0.849711], [0.079625, 0.68592]],
[[0.004256, 0.596958], [0.037731, 0.684334]],
[[0.086903, 0.33099], [0.107709, 0.378519]],
[[0.086903, 0.243915], [0.107709, 0.3095]],
[[0.584708, 0.736516], [0.544165, 0.631242]],
[[0.725608, 0.532794], [0.771321, 0.631242]],
[[0.811497, 0.631242], [0.842852, 0.532738]],
[[0.873162, 0.983897], [0.910472, 0.849711]],
[[0.948042, 0.804902], [0.995744, 0.78906]],
[[0.932599, 0.59014], [0.964185, 0.530252]],
[[0.936432, 0.355213], [0.964823, 0.243915]],
[[0.415292, 0.532593], [0.369864, 0.631242]],
[[0.322288, 0.53292], [0.274392, 0.631242]],
[[0.228679, 0.855226], [0.186885, 0.736516]],
[[0.15284, 0.631242], [0.130938, 0.53317]],
[[0.06724, 0.983897], [0.051958, 0.804902]],
[[0.035177, 0.384901], [0.064526, 0.469594]]
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff