Meshy+GPT6 Astra 改模 做成个人 VRC Avatar
Meshy 分部建模,然后 GPT 5.6 拆分、降面、修拓扑;GPT 6 再接 Blender / Unity,做绑骨、权重、限位、碰撞、材质和 VRC 相关设置

尽管最后还是用了不少现成素材,但把这套流程从头到尾跑通以后,实际效果还是比我最初预期的好不少
GPT6 的绑骨这些真的太夸张了,把以往超费时的工作变成了一句话
我基本是接近 0 基础,两天左右把从 AI 生成部件到 VRC 里实际跑起来的流程走通了真正花时间最多的并不全是操作,实际有不少时间是在等限额
当然,项目结构容易越来越乱的问题依旧存在尤其是不同素材之间的定位、法线、模型闭合、材质细节、表情控制逻辑、Unity 状态机这些地方,到最后还是得自己检查
灵感来源:https://x.com/Dstudio_ai/status/2096475126942560677
下面按我实际跑下来的顺序整理一遍
踩坑
不要一上来直接让 AI 生成完整角色
完整角色一次生成,头发、耳朵、衣服、身体、发饰全混在一起以后,后面修改任何一个部件都会变得很痛苦模型可能看起来第一眼挺完整,但一进 Blender 就会发现拓扑、材质、UV、部件边界全部缠在一起
会变成这样

Meshy生成只能生成一个整体的白模型,贴图也是映射上去的
拆开:
- 头发单独生成;
- 猫耳单独生成;
- 特殊发饰单独生成;
- 衣服如果要大改,也最好单独处理;
- 身体、脸、表情系统尽量沿用成熟底模
Meshy 建模之前让 GPT 根据目标效果图整理出一套 3D 质感的正面 / 侧面 / 背面参考图
Meshy 里面我用的思路比较简单:选比较新的高质量模型,开精细、开贴图,其他选项先不动,然后开始抽奖一般连续试几轮以后,能拿到一个造型不错的高模
AI 高模不要直接套一个全局降面算法(直接扔gpt6建模会偷懒这样干)
尤其是头发,直接 Decimate / Smooth 很容易变成“发束之间失去分界的低模”
Blender 里面不给 AI:
- 不同来源模型的空间定位;
- 新头发、新耳朵和原素体的比例判断;
- 模型法线、闭合、穿模这种需要肉眼综合判断的东西;
- 骨骼最终位置和姿态微调;
- 项目结构管理;
- 最终美术效果验收
Unity 也是类似
- 材质最终色调;
- 剔除 AI 多造出来的东西;
- EXMenu / 状态切换逻辑;
- 包管理和依赖确认;
- 最终效果测试;
- 看懂 PhysBone、Collider、材质、Animator 到底有没有正常工作
建议一定要自己能看懂不会的话去 B 站搜一下对应关键词其实学得很快,反而比完全放手让 AI 猜更省时间
首先前提
最好先有一个成熟底模
这次用的是寺井做的【オリジナル3Dモデル】ファルリア
这一类已经完整配置过 VRC 的模型做基底这样会少走非常多弯路
- Humanoid 骨架;
- 身体和脸;
- BlendShape / Morph;
- LipSync;
- 表情 Animator;
- Hand Sign 表情;
- PhysBone;
- Avatar Descriptor;
- 材质结构;
- 眼睛和视线;
- EXMenu / Parameter 的现成参考
后面只替换头发、耳朵、衣服等外观资产
不用让 AI 重新一套系统比如绑马尾骨、设置 PhysBone、眼睛材质、表情结构,都可以让它参考原模型现有方案
Meshy分部建模
做“新资产”
先让 GPT 根据最终设定生成一个完整效果,再把其中复杂部件拆出来单独画


比如头发,不只需要正面图最好让 GPT 先整理成:
正面 后面 左侧 右侧
同时再单独生成“只包含头发和发饰”的参考图,避免 Meshy 把脸、耳朵、身体也一起理解进几何

猫耳同理耳朵最好单独生成,不要和头发一起抽否则 Meshy 很可能把耳根和头发焊在一起,后面一拆就是灾难
如果有蝴蝶结、发箍、耳饰这种特别显眼的造型,也更倾向于:能单独生成就单独生成
Meshy 这一段反而不复杂高质量、精细、带贴图,造型质量确实可以很好,但往往是“渲染展示级高模”,不是直接能拿去做 VRC 的资产
这次其中一个头发 FBX 单文件就到了 113 MB 左右,整体分析下来大约:
约 152 万顶点 约 304 万三角面
造型上确实已经接近目标,但面数也明显超出了直接用于 VRC 的范围

而且贴图还是很糊很没细节

这一阶段 AI 的工作:
- 根据效果图补三视图 / 多视图;
- 把整体设计拆成可独立生成的部件;
- 辅助判断 Meshy 哪一轮生成效果更接近目标;
- 后续拿生成模型做高模结构分析
这一阶段人的工作:
- 选最终外观;
- 判断比例是否真的对;
- 发现某些 AI 结构在三维上其实不合理;
- 决定某个部件要不要重新生成,而不是继续在结构已经明显错误的结果上修
复杂部件细化降面
然后把头发这类复杂部件
这一段是整个流程里迭代次数最多的部分
这里不是让 GPT “看图帮我提建议”,而是真的把高模文件放进去,让它自己做程序分析、拆分、减面、输出版本,再根据渲染图继续迭代
下面实际迭代过程(gpt总结)
发现能都在会话内完成惊喜感有没有懂的()
太节约额度了

下面是大概流程
- 模型 颜色 / 贴图语义识别
- 连通组件分析
- Face Adjacency Graph
- 带符号二面角
- Concavity 凹谷检测
- 曲率
- 必要时 PCA / SDF 辅助
- 最后才按区域减面
材质最后又改了一次原则:不要自带阴影
材质阶段还有一个比较关键的问题:部分 Albedo 里依然保留了明显的 baked shadow
这对 VRC 实际使用并不好模型换到不同光照环境后,贴图内的固定阴影会与实时光照叠加,容易出现局部过暗、明暗逻辑冲突的问题
现在头发材质方向是:
- Shadowless Albedo
- Normal
- Roughness
- Highlight Mask
- Shade Mask(基本为空)
- Toon Ramp
阴影留给 Unity 的 lilToon 和灯光去算这样 Albedo 只负责固有色,Normal / Roughness / Highlight Mask 负责表面细节和高光响应,材质在不同光照环境下会更稳定
发饰贴图最后要分开做
蝴蝶结也是一路改过来的
还加了发片贴图来细化碎发
最后效果大概这样

材质也分离加上了很完美啊

AI 主要负责:
- 读取超大高模并统计几何;
- 做语义区域分析;
- 连通组件 / 二面角 / 凹谷 / 曲率分析;
- 自动输出多个降面版本;
- 批量做局部修复;
- 自动生成多角度检查图;
- 重绘中间材质贴图;
- 生成 Hair Card Atlas 和辅助贴图;
- 自动整理对象命名、Mask、版本报告
人主要负责:
- 判断这一版的整体造型和细节是否符合目标;
- 判断细节该保还是该删;
- 判断哪些区域因为过度平滑或减面损失了原有结构;
- 决定最终面数目标;
- 决定 Hair Cards 到底该多还是该少;
- 确定材质风格;
- 识别 AI 生成但语义不对的细节
这种分工比较适合实际迭代:AI 负责快速生成和比较多个版本,人负责判断方向,再逐步收敛
进入 Blender 工程
准备好 Blender MCP,然后桌面 GPT 连过去,用 GPT 6

开始之前先把项目规则说清楚:原底模保留,关键步骤留存版本,AI 新生成的高模 Source 不删,涉及模型、骨骼、权重、UV、Shape Key 的修改都要能追踪和恢复
主要还是避免后面模型、材质、骨骼一路改下去,出了问题又得从头重新读、重新算
然后把最终效果图、原 VRC 底模,以及前面已经处理好的头发、耳朵、发饰这些一起给进去
这次给 GPT 6 的要求大概就是:
- 把新头发、猫耳、发饰接到原底模上;
- 保持双马尾、脸颊发、刘海和蝴蝶结这些结构完整;
- 原来的身体、脸、Humanoid、Shape Key、LipSync、表情系统尽量不动;
- AI Mesh 继续做拆分、语义区域识别、拓扑优化、UV 整理和材质重做;
- 原始高模一直保留,用来 Bake、对比和必要时恢复;
- 能安全拆开的发饰单独拆,拆不开的就用 Semantic Region / Mask 管理;
- 头发、耳朵、发饰补骨骼、Armature 和权重;
- 需要的话继续重做 Albedo / Normal / Roughness / Highlight Mask,维持前面定下来的无 baked shadow 方向;
- 服装材质和颜色继续按最终设定调整,但不为了改颜色去破坏原有材质和动画引用;
- 对象、材质、骨骼、Mask 和版本尽量整理好,方便后面 Unity 继续接着用;
- 大型审计数据留在 Blender 本地,Agent 平时通过统计、多视角图、ID / Mask 和局部原始数据继续判断;
- 最后输出的是能继续作为正式 VRC Avatar 工程往下做的版本
大部分机械操作都可以继续交给 GPT 6,比如导入、统计、拆件、批量重命名、语义区域整理、局部降面、重建 UV、Bake、材质重连、补 Armature Modifier、绑骨、传权重、检查骨链和输出中间版本
但这里还是有不少东西最后得自己接回来

不同来源模型之间怎么摆就是最明显的一个新头发导进来以后,位置、缩放、旋转,脸颊发离脸多远、猫耳根部有没有悬空、双马尾有没有穿肩膀,这些还是直接在视图里看最快,他是没法分辨清除的

骨骼也一样 GPT 6 可以建骨、挂父子关系、做初始权重,但骨骼最后是不是在发束中心、转起来会不会把旁边一大块一起带走,还是得自己动一下模型再微调(最麻烦的建骨、挂父子关系、做初始权重已经搞完了,而且效果是真的好)
一定要先活动测试一下确认有没有绑错之类的


还有这种错乱的材质
法线、闭合、穿模也是人工检查比较多 AI 可以批量扫问题,但最后是不是视觉上真的有问题不能只看检测结果
还有原底模上已经存在的东西不要顺手重做,尤其脸和身体的 Shape Key、材质槽顺序、动画引用这些,能沿用就沿用,不确定的直接对照原模型
这一阶段 AI 的工作:
- 导入和整理新旧模型资源;
- 统计模型、材质、UV、骨骼和权重数据;
- 拆件、批量命名和语义区域整理;
- 局部减面、拓扑优化和必要的 UV 重建;
- Bake 和辅助贴图整理;
- 材质重连和基础参数整理;
- 补 Armature Modifier、骨骼和初始权重;
- 检查骨链、权重异常和明显结构问题;
- 输出中间版本、多视角检查图和本地审计数据;
- 反复根据人工反馈继续改版本
这一阶段人的工作:
- 新旧模型之间的最终定位、比例和朝向;
- 判断头发、猫耳、脸颊发、蝴蝶结这些位置到底合不合适;
- 法线、闭合、明显穿模和悬浮的最终确认;
- 头发、发饰、猫耳骨骼位置和权重的最后微调;
- 材质最终观感,不对的颜色和局部细节自己改;
- 判断 AI 有没有多删、多加或者合错东西;
- 对象层级、命名和工程结构整理;
- 确认原模型的 Shape Key、材质和动画关系没有被误伤
这些地方他还是挺容易合歪或者改多,发现不对直接人工接回来比继续让它猜省时间
不会的操作直接上 B 站搜对应关键词就行,真正需要自己动手的东西其实都不算特别复杂
工程准备往 Unity 走之前再把外部资源检查一遍,贴图之类能打包的就用 Blender 的 File → External Data → Pack Resources 打进 .blend,必要时再把路径改成相对路径,避免换机器或者重新导出时突然缺贴图
这一段大概花了一天
Unity 最终处理上传
Unity 这边先把包、MCP、VRCSDK 准备好

这些不懂的一样可以直接去 B 站找,环境和依赖先确认没问题,再让 GPT 6 接工程,不然后面很多看起来像“模型坏了”的问题其实只是包没装或者 Shader 没加载
导入时继续拿旧模型做参照,这次就是对照 寺井【オリジナル3Dモデル】ファルリア 原来的预制件,保留原来的 Avatar Descriptor、Gesture / FX、LipSync、眼睛、材质和 PhysBone 这些已经跑通的结构,再把 Blender 里改好的资产接进去
GPT 6 主要负责 Blender 输出重新导入、补材质和引用、整理 Prefab、检查 Skinned Mesh Renderer / Armature / 骨骼关系、补 PhysBone 和 Collider、处理依赖丢失这类问题
碰到贴图失效或者 Unity 里材质怎么都对不上,直接让它回 Blender 重烘焙,再重新输出一套更适合 Unity 的贴图接回来

这次后面还补了脸颊侧发、蝴蝶结、发饰和猫耳的物理效果,正常就是在对应骨链上加 VRC PhysBone,需要挡住身体的地方再补 VRC PhysBone Collider如果要做抓取互动,还要自己确认抓取范围和骨链是不是覆盖到实际想抓的位置

扩大后的抓取范围

加碰撞体后

材质这部分 AI 可以先把大方向和贴图接好,最后还是人工调得更多比如衬衣、头发、猫耳这些颜色最终是不是统一,Albedo 有没有过重阴影,局部是不是过粉或者过灰,直接在 Unity 里看最终 Shader 效果再调比只看原贴图靠谱
然后定位到对应的材质去微调


表情和 Animator 是这次人工排查最多的地方
原模型 Assets/Falria_1.00/Animation/Face 里原本就有左右手各一套手势表情,Point、Open、Peace、RockNRoll、Gun、Thumbs Up 左右分开一共 12 个 .anim,这些本来由旧 FX 里的 Left Hand / Right Hand 接管
后面为了让 EXMenu 可以直接选表情,又加了一层 Expression Override,这部分 GPT 6 能先把菜单、参数和状态机搭出来,但最后逻辑还是得手动检查


Neutral / Release 已经把 ExpressionOverride 正常切回 0,状态机也确实回到了 Menu Override Off,但是这个 State 的 Motion = None,同时 Write Defaults 没勾,结果上一张表情和手势状态会残留,切回 Neutral 以后原来的手势表情也接不回来
最后对照旧项目的 FX Layer 和运行时参数排查,把 Menu Override Off 的 Write Defaults 恢复以后才正常
类似这种问题 AI 很容易看到“参数已经回 0”就认为逻辑结束,但 VRC 里最后还是得看哪个 Layer 在写属性、哪个 State 真正在生效、有没有被后面的 FX Layer 覆盖
另外表情动画本身也得会看,像腮红异常这种就直接在 Animation 里找对应 BlendShape,比如 face_blush 1,先确认到底是哪一个属性把效果拉起来,再回头查 Face / FaceFade 材质和贴图,不要看到脸黑了就直接乱改整个 Body 材质

EXMenu 最后也是手动整理的,Toggle、Button、参数值、Neutral / Release 和 Animator Transition 都要自己点一遍确认,尤其是新加的菜单不要把原底模的 Hand Sign 表情和状态机覆盖掉
这一阶段 AI 的工作:
- 把 Blender 输出导入 Unity 并整理引用;
- 参考旧 Prefab 补 Skinned Mesh Renderer、Armature 和骨骼关系;
- 批量整理材质、贴图和 Shader 引用;
- 补 PhysBone、Collider 和基础参数;
- 处理明显的 Missing Script、Missing Material、丢贴图和依赖问题;
- 根据原底模结构补回 Avatar Descriptor 相关配置;
- 初步搭建 EXMenu、Parameters 和 FX Animator;
- 协助检查 VRCSDK 报错和性能项;
- 必要时返回 Blender 重新 Bake 或重新输出资源
这一阶段人的工作:
- 材质最终调色和局部修正;
- 剔除 AI 多造出来或者已经不需要的元素,比如前面多出来的衣领;
- 检查 PhysBone、Collider、抓取范围、骨链和实际摆动效果;
- 逐个检查原来的 12 个左右手手势表情有没有正常保留;
- 预览 Face 动画和 BlendShape,处理腮红、表情异常这类问题;
- EXMenu、Parameters、FX Animator、Transition 和 Write Defaults 的最终逻辑检查;
- 包管理和依赖确认;
- 对照旧 Prefab 检查原来的 VRC 功能有没有被改坏;
- 最后进实际运行状态反复测试手势、表情、LipSync、眼睛、物理、碰撞、材质和动画
其他能自动做的基本继续交给 GPT 6
最后再打开 VRChat SDK 的 Avatar Builder 看一遍检查结果功能性错误先处理掉,性能项像三角面、Skinned Mesh Renderer、材质槽、纹理占用、PhysBone 数量这些也一起看,决定哪些还值得继续优化

确认模型在 Unity 里跑正常以后再 Build & Publish,上传前再完整测一遍菜单、手势、LipSync、眼睛、PhysBone 和材质
到这里基本就算跑通了
也是实现了三年前刚玩vrc时就一直有的梦想

Comments NOTHING