Skip to main content

二、开始转换

一、载入univrm插件

载入我们下载好的 univrm 插件:

image.png

UnityPackage 导入进我们的工程中:

序列 01_8 00_00_00-00_00_30.gif

载入后会在工具栏显示vrm工具,如果没有就重启一下unity,如果还没有检查一下是不是报错了

image.png

二、准备模型,简单处理

准备好我们的vrc模型 ,并用工具进行简单处理。

本教程使用入门包教程中所使用的模型 HAOLAN,参考以下文章:https://docs.vrcd.org.cn/books/vrchat/page/b9228

将模型预制件进行T-pose初始操作,我们可以点击模型的预制件后用 VRM0 下的 T-pose 进行操作

序列 01_9 00_00_00-00_00_30.gif

操作后我们可以在场景中看到初始化后的预制件

此时的预制件已经替换了组件以及清除了不需要的组件

三、二次处理,载入VRM组件

此处额外补充使用liltoon着色器的模型提前渲染材质的操作,首先找到模型的材质球,此材质球需要使用liltoon着色器,点击下方的 转换为MToon 将材质渲染并收集到固定文件夹以备后续使用

序列 01_11 00_00_00-00_00_30.gif

此后我们可以将渲染的材质球替换原来的材质球

初次处理的模型没有达到VRM打包条件,需要二次处理,我们需要进行一次导出自动生成打包件

使用 VRM0 中的 Export 进行一次导出

序列 01 00_00_00-00_00_30.gif

导出时主题、作者、简介需要填充字符,否则不允许导出

如果导出时出现以下警告:

image.png

这是你的模型因为添加衣服商品等导致网络冗杂,需要进行网络的整合,点击 VRM0 中的 MeshIngratorWizard 进行网络整合

序列 01_12 00_00_00-00_00_30.gif

此时文件夹中会出现新的预制件和两个整合后的网络

image.png

此时就可以进行导出了

我们可以在目标文件夹找到初次打包的VRM文件

image.png

如果我们没有找到,回去看一下报错,大概率内存溢出,优化一下材质

我们将他重新导入到工程当中,使用 VRM0 中的 Import 进行导入

序列 01_10 00_00_00-00_00_30.gif

这时我们就可以看见解包出来的文件

image.png

 如果导入后时出现以下情况:

image.png

只有一个文件夹或几个不完整的文件夹,又或是不可读的VRM文件

说明导出时的VRM不完整,一般是材质过大导致内存溢出打包过程被迫中断,我们优化一下材质(压缩贴图)

四、更换VRM支持着色器

如你在制作过程中使用了liltoon的Mtoon着色后打包了VRM则可以跳过此条

将预制件拖入场景中

image.png

image.png

做成vrm时插件会把模型的着色器全部换成standard,我们需要把他换成vrm支持的更好的着色器,点击shader找到vrm选择下一级Mtoon

image.pngimage.png

前后对比:

image.png

image.png

根据群友的反馈,着色器转换时会复制一些不需要的数据,会造成严重曝光,主要是vrm着色器太生硬了

我们需要把发光和rim关掉(全部拉黑)

image.png

image.png

我们把每一个材质球换完就可以了

五、骨骼处理

vrm转换时会自动删除所有动骨(db动骨和pb动骨),我们需要手动添加,我们找到模型子集的secondary

 

image.png

上面一般会自带bone组件,我们需要对他进行调整,将动骨拖入Root Bone中

image.pngimage.png

并进行参数调整,您可以参考我们的参数设置(上面第二个图例)

下面我们加入碰撞

找到我们想加碰撞的地方添加组件VRM Spring Bone Collider Gtoup 并且调整参数(一般刚好看不见球就行)

image.pngimage.png

image.png

将添加好碰撞组件的物体拖入secondary中的Collider Gtoup中

image.png

完成之后可以运行场景拖动模型看看效果