feat: 添加VRM网格工具插件,支持网格分离和UV边融并功能

添加VRM网格工具插件,包含以下主要功能:
- Body网格分离:将非皮肤材质面分离为独立对象
- UV边融并:根据预定义UV数据将三角面转换为四边面
- 提供独立面板和操作符,与VRM官方插件兼容
- 包含材质处理顺序和自动转换逻辑
- 添加JSON数据文件和工具函数
This commit is contained in:
2026-01-02 14:11:43 +08:00
commit 3bbb46bca7
18 changed files with 96964 additions and 0 deletions

2
data/.gitkeep Normal file
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