——————2026-01-26————
新增:一键转换脚本(可选,支持加密)
下面提到的附件工具已经都丢网盘了:
链接: https://pan.baidu.com/s/1ZNzBI1zqdAq2ZXVBSFzsPA?pwd=r9v8 提取码: r9v8
没错,我也是把提到的一键导出工具给搓出来了。只需要导入这个unitypackage到前置作者的工程文件,就能够非常快速地,帮你减轻前面那一堆繁琐的工作
alpha10以上的版本支持了后缀为avatar3d的加密,可以避免被解包工具解包。当然这是可选的,如果你不希望你的模型被盗卖贩子解包,你可以使用工具的加密打包为.avatar3d文件,用法和之前都是一样的。
也许你会问,那我的模型是不是就和alpha10以上的版本,绑定了,但是其实VRC模型从alpha6开始,因为动骨和骨骼的问题,就已经绑定了,原版前置就已经无法使用带有VRC动骨,以及VRC骨骼的模型了。
这个加密通常不会有什么影响(除了无法在老版本使用,但是如果你走的是VRC流程本来就没法在老版本用了),对于用户来说不需要多操心什么,而对于作者来说,可以保护作者的权益,并且也不会有其他的区别。
具体的用法非常简单:
– 如果你的prefab已经是制作好的(例如老流程走过),那么检查状态之后直接导出就行(仅借用打包按钮)。例如之前已经制作过想重新导出,那么把最终的exported的prefab拖进来然后重新打包就行,缩略图什么都会自动识别调用之前的。这个打包机制也适用于其他流程(例如最早的那个VRM化的教程),如果要加密的话,你只需要借用这个打包按钮就行。
– 如果prefab还未制作好,也就是需要从头制作,,把人物的prefab拖进去,填写好修改的名字(禁止和之前重名),然后设置成T-pose和缩放之后,再点击初始化(会设置VRM手臂以及组件注册),然后就可以导出了(记得放你的缩略图上去,没错就是这么简单)。当然,这是理想情况下,正常这样还是需要调整着色器,以及一些骨骼、缩放,并且做一些优化的,具体参考第五、六节
但是有些细节部分是自动化无法实现的,这里列一个清单方便检查:
-
着色器的调整(很影响观感),如果过亮、透明等等,看5-6节
-
多余组件的移除(例如,模型根节点的多余组件)
-
模型缩放、手臂缩放的调整
-
VRoidMetaData的视线高度调整、voice调整
-
第一人称手臂的细调(删除多余网格、调整部分的尺寸)
———————原教程———————
这期教程不包括任何环境的配置,默认你对unity有一定了解,自行准备好例如VCC和VRoidTo7DTDConverter的环境。(只需要在原VRoidTo7DTDConverter的环境里添加上VRChat的相关包就行,VCC可以直接添加,版本兼容)
这里建议你先至少会看过https://www.7risha.com/77008.html,你会发现下面的步骤基本上和那边是一样的,只不过在最后导出unity3d的时候我们巧妙地绕过VRM检查。为了方便理解,下面的步骤非常详细地一步一步地讲解,看上去很长,但是实际上如果你熟练了,只需要2分钟就能几乎无损在七日杀玩上原生的VRC模型。
————》前往B站视频《————:
废话部分(可以跳过):
通常我们拿到一个VRC模型的工程文件(例如.unitypackage),会提供一个fbx,以及制作好VRC动骨的prefab预制体。如果你尝试过按照原先的VRM流程,你会发现在export VRM0.x之后,prefab上面携带的非VRM系列的脚本都会被移除掉,这就导致你还需要额外设置VRM动骨,或者是用zender的转换器把VRC动骨转换烘焙一下,这非常麻烦,而且他的转换脚本疑似丢失了参数会导致碰撞体失效。
而如果你有尝试过通过奇妙的手段绕过工程的转换步骤,直接尝试把VRC模型的prefab给打包,你又会发现在游戏里面,跳舞时人物的姿势很正常,但是走路的时候,人物的两只脚朝天,手臂也非常扭曲,就是一个四脚朝天的形象。这其实并不是模型的问题,而是CustomAvatars在尝试对模型做IK修正时的一个处理导致的,具体说起来有点麻烦,大概就是骨骼朝向的问题。
而在我的alpha分支的alpha6版本,有两个非常重大的改动,使得现在我们可以直接在打包时,使用VRC的模型,这能够极大减轻使用VRC模型时转换的工作量(所以如果不用我的alpha6以上的版本,就是下图这样的)。
1. Alpha6版本引入了VRC的原生动骨dll。这个dll是我把VRC的dll给移除了不适配七日杀的部分,并且修改了启动逻辑,使得它可以在七日杀(基本)正常使用
2. 修正了原先的第三人称的FK、IK逻辑,使得模型骨骼axis,或者默认朝向等不会影响最终的表现,因此不会再出现四脚朝天的逻辑。
转换教程:
下面部分我们来简单(非常详细)阐述一下拿到一个VRC模型,我们怎么快速地转换到CustomAvatars-Alpha6以上的版本,并且能够直接使用VRC的原生动骨(需要mod文件夹内的dll支持)
1. 拿到VRC模型
拿到一个VRC模型工程文件,放到项目里面后可能是这样的:
在打开原作者提供的转换场景VRoidConverter,并将模型的prefab拖到左上角层级里面,然后我们改个名,改成你最终希望的名字(注意,这里尽量不要和原VRC的prefab同名,或者不要出现同名,否则会导致打包的时候打包了多个同名的prefab,导致前置读不到正确的模型)。如果名字里面有小数点“.”,那么提前移除,尽可能确保名字不要有一些奇奇怪怪的符号。
2. 导出为VRM,直接生成最终Avatar.Data
工程会自动为我们自动处理好各种文件夹,以及创立好一个第一人称手臂(如果你想自定义也可以看前面几期教程https://www.7risha.com/78178.html):
设置成T-pose,(这里以及下面都建议使用下面这个unity internal的,不会强制拉伸骨骼位置和方向),点击右下角的export。这里可以去export Settings里面打开一些优化选项,因为VRM化为我们提供的只是最终的第一人称手臂,不需要复杂的网格、形态键,可以优化大小和性能。
3. 绕过导出检查
这里原本(原教程)我们是应该删除层级里面的 /BA小涂真纪,然后把 Avatars/BA小涂真纪.Data/Exported 里面的prefab给拖到层级里面去调整。但是我们前面说了,这个prefab会丢失VRM系列以外的脚本,所以我们这里反而删掉Exported下面的VRM化的prefab,重新制作一个包含VRC动骨的prefab
重新找到原先VRC模型里面提供的prefab(最一开始的那个,带VRC动骨的),给它拖回层级里面,然后右键Unpack Completely
在unpack之后,不要忘了把名字给改成前面你决定的最终名字,此时场景里面同时有俩个物体,一个是VRM化的模型(我给挪到左边了,方便展示,通常不要动他),一个是原本的VRC模型(最好也设成T-pose,利用VRM Exporter里面的Make T-pose (unity internal)调一下骨骼位置就行):
4. 调整第一人称的手臂,以及复制VRoid Metadata
你对比俩者,可以发现,我们的VRC模型缺少两个部分,第一人称手臂CustomArms物体和VRoid Metadata组件。我们只需要把VRoid Avatar Metadata从VRM化的模型给复制到我们VRC模型上面,然后把CustomArms这个给复制到我们的VRC模型上面,实际上就OK了,然后其实已经能够直接打包导出来为unity3d文件了,不过我们最好还是调整一下
5. 导出成unity3d前检查(缩放、着色器等)
我们这里在导出unity3d前,调整一下模型、手臂的缩放,先调一下模型的:
记得不要调模型本身(BA小涂真纪),以及模型髋部骨骼(Hips),而是调Armature,确保模型本身(BA小涂真纪)、Hips等的缩放是默认的1,如果不是,则调成1。调完之后记得对应去VRoidAvatar Metadata调一下视线高度和Voice
然后调一下手臂的缩放,把CustomArms点亮,然后调整第一人称的手臂的scale(提示,先点击scale旁边的锁链,然后拖动右边的x、y、z)
调整手臂的时候,同样是调Armature,而不是调手臂本身以及Hips。这里强烈建议把第一人称手臂调更大一点,即使你喜欢把第三人称模型调的很小(比如你喜欢萝莉体型),但是第一人称的手臂缩放也可以无脑调到1.2、1.3,1.4,否则你的手臂必定会在第一人称下被拉伸扭曲,观感会很奇怪,所以这里建议至少比Reference的手臂更大一些(可以对着参考Reference一节一节调手臂、手指,大小越接近官方模型=观感越好,此外还可以删掉CustomArms里面多余的网格,例如头发、多余的衣服等),可以提高一点帧数,减小一点大小),调整完记得隐藏回去(点灭就行)
6. 导出打包:
把刚刚设置好脚本、调整好缩放、调整好第一人称手臂的模型,拖拽到一开始我们删掉的VRM化的prefab的原位置,形成一个新的prefab,并且这里你可以自己替换掉同地方的_thumb.png缩略图,可以让你的模型的预览图片(以及多人联机时的好友头像)看上去更好看一些。然后再在层级里面选择prefab,点击export就可以打包出一个.unity3d文件了。如果这里export是灰色的,请务必确保你的prefab上面有VRoid AvatarMetadata,而不是VRM Metadata(如果有的话,移除这个组件,尽量确保导出的物体上只有animator和VRoid AvatarMetadata)
(PS:小技巧,如果你想让导出的unity3d文件自动放在游戏目录,而不再需要手动复制,只需要修改Assets/Utilities/prefs.txt的内容类似下图就行了(即自动把生成的文件放到目标文件夹)
然后你进游戏,会发现模型可能完全看不见透明了,或者说模型很亮,这些都是狗屎的七日杀的渲染管线不兼容导致的。为了让模型恢复正常,这里有个非常简单的方法,就是在导出打包前,调整一下着色器的亮度上限:(对于liltoon来说,其他的着色器如果没有这个就调主色明暗度)
1. 亮度上限调到0.3(太亮了就通常需要调,也可以探索其他调法)
(此处技巧来自安卓喵,也可以自己探索其他调法)
2. 如果使用liltoon的带轮廓的着色器出现下面的情况,这是因为liltoon的渲染管线和七日杀的阴影系统冲突了
脚本里有个按钮可以把liltoon的相关shader正确调整,使得不会产生冲突,在游戏内正常显示
把提供这个.cs脚本放到你的项目的Editor文件夹下面就行,会出现调整的脚本自动化调整选项:
这里有俩种思路,一种是把所有材质的渲染队列都原地+1000,这样最低的渲染队列都至少是3000,这样就不会七日杀的阴影系统影响;还有一种是使用全局设置的liltoon着色器修正轮廓投影,这样会修改和七日杀冲突的带轮廓的shader的代码,避免和七日杀冲突。前者的优点是简单快捷,缺点是在一些阴影、倒影的处理会不太好;后者的优点是 从根本解决了冲突,能够保持倒影阴影等,但是可能对一些极端情况的材质仍需要手动调整
(调渲染队列不太优雅,尽量使用修正的liltoon shader)
以上就是VRC模型的转换步骤,实际上工程文件唯一起到的作用就是为你整理好文件夹结构,以及提供一个VRM化的第一人称手臂,如果你嫌上述过程麻烦,你可以自己写一个自动化脚本,把上述的过程也自动化,那么你的VRC模型导入到CustomAvatars-Alpha6以上的版本将只需要不到1分钟。如果在转换中遇到问题可以附带日志、截图、步骤等等在评论区回复。
在进入游戏后,载入模型时可能会出现黄字警告,这是因为你可能没有完全去除VRC模型上面的无关脚本(例如VRC的VRCAvararDescrpition,以及Contact Receiver等等),但是实际上这些没有任何影响:一方面你可以自己手动移除(推荐自己移除一下多余的脚本),另一方面我也可以后续在dll里补上相关引用,实际使用是不会有任何性能、体验上的影响的。





























鄂公网安备42011202002543号




红温了,怎么把我帖子截断了
使用问题看置顶教程,问题反馈带图片日志
前排留名!
正好我最近也在试vrchat官网那个avatar包里的physbone能不能用,弹簧骨属实太难用了
如果能在现有vrm里手动建立一套physbone就好了
脑子:会了吗?
手:你十窍通了九窍
6哇
伟大!
good good
好好好 赞美大佬!! 终于不用修动骨了😭
一个热爱七日杀生存模组开发和UI设计的mod制作爱好者