这期教程不包括任何环境的配置,默认你对unity有一定了解,自行准备好例如VCC和VRoidTo7DTDConverter的环境。(只需要在原VRoidTo7DTDConverter的环境里添加上VRChat的相关包就行,VCC可以直接添加,版本兼容)
这里建议你先至少会看过https://www.7risha.com/77008.html,你会发现下面的步骤基本上和那边是一样的,只不过在最后导出unity3d的时候我们巧妙地绕过VRM检查。为了方便理解,下面的步骤非常详细地一步一步地讲解,看上去很长,但是实际上如果你熟练了,只需要2分钟就能几乎无损在七日杀玩上原生的VRC模型。
废话部分(可以跳过):
通常我们拿到一个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模型工程文件,放到项目里面后可能是这样的:
将模型的prefab拖到左上角层级里面,然后我们改个名,改成你最终希望的名字。如果名字里面有小数点“.”,那么提前移除,尽可能确保名字不要有一些奇奇怪怪的符号
2. 导出为VRM,直接生成最终Avatar.Data
工程会自动为我们自动处理好各种文件夹,以及创立好一个第一人称手臂(如果你想自定义也可以看前面几期教程https://www.7risha.com/78178.html):
设置成T-pose,,点击export
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调一下骨骼位置就行):
4. 调整第一人称的手臂,以及复制VRoid Metadata
你对比俩者,可以发现,我们的VRC模型缺少两个部分,第一人称手臂CustomArms物体和VRoid Metadata组件。我们只需要把VRoid Avatar Metadata从VRM化的模型给复制到我们VRC模型上面,然后把CustomArms这个给复制到我们的VRC模型上面,实际上就OK了,然后其实已经能够直接打包导出来为unity3d文件了,不过我们最好还是调整一下
5. 导出成unity3d前检查(缩放、着色器等)
我们这里在导出unity3d前,调整一下模型、手臂的缩放,先调一下模型的:
记得不要调模型本身(BA小涂真纪),以及模型髋部骨骼(Hips),而是调Armature,调完之后记得对应去VRoidAvatar Metadata调一下视线高度和Voice
然后调一下手臂的缩放,把CustomArms点亮,然后调整第一人称的手臂的scale
调整手臂的时候,同样是调Armature,而不是调手臂本身以及Hips。这里强烈建议把第一人称手臂调更大一点,即使你喜欢把第三人称模型调的很小(比如你喜欢萝莉体型),但是第一人称的手臂缩放也可以无脑调到1.2、1.3,1.4,否则你的手臂必定会在第一人称下被拉伸扭曲,观感会很奇怪,所以这里建议至少比Reference的手臂更大一些(可以对着参考Reference一节一节调手臂、手指,大小越接近官方模型=观感越好,此外还可以删掉CustomArms里面多余的Render,可以提高一点帧数),调整完记得隐藏回去(点灭就行)
6. 导出打包:
把刚刚设置好脚本、调整好缩放、调整好第一人称手臂的模型,拖拽到一开始我们删掉的VRM化的prefab的原位置,形成一个新的prefab,并且这里你可以自己替换掉同地方的_thumb.png缩略图,可以让你的模型的预览图片(以及多人联机时的好友头像)看上去更好看一些。然后再在层级里面选择prefab,点击export就可以打包出一个.unity3d文件了。如果这里export是灰色的,请务必确保你的prefab上面有VRoid AvatarMetadata,而不是VRM Metadata(如果有的话,移除这个组件)
然后你进游戏,会发现模型可能完全看不见透明了,或者说模型很亮,这里有个非常简单的方法,就是在导出打包前,调整一下着色器的亮度上限,以及渲染队列:(对于liltoon来说,其他的着色器同理)
1. 把所有材质的渲染队列提高1000
2. 亮度上限调到0.3
一个一个调还是太麻烦了,所以这里提供一个脚本批量自动调整:
把下面提供这个.cs脚本放到你的项目的Editor文件夹下面就行,会出现这里两个调整的脚本自动化调整选项:
以上就是VRC模型的的转换步骤,实际上工程文件唯一起到的作用就是为你整理好文件夹结构,以及提供一个VRM化的第一人称手臂,如果你嫌上述过程麻烦,你可以自己写一个自动化脚本,把上述的过程也自动化,那么你的VRC模型导入到CustomAvatars-Alpha6以上的版本将只需要不到1分钟。如果在转换中遇到问题可以附带日志、截图、步骤等等在评论区回复。
在进入游戏后,你可以检查原生VRC动骨是否正确运行,并且检查是否有骨骼错位等现象。在载入模型时可能会出现黄字警告,这是因为你可能没有完全去除VRC模型上面的无关脚本(例如VRC的VRCAvararDescrpition),但是实际上这些没有任何影响:一方面你可以自己手动移除,另一方面我也可以后续在dll里补上相关引用,实际使用是不会有任何性能、体验上的影响的。
























鄂公网安备42011202002543号




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