- 所需要的资源 (百度云:链接:https://pan.baidu.com/s/1kyCs_HLUJ5j02ENbHgvzCQ 提取码:1234 )
- 可以使用该方法,将xps模型制作成VRChat的模型
- cats-blender-plugin-master (可选,用与导入XPS模型并且方便对模型进行处理)
- material-combiner-addon-master(可选,对模型贴图进行打包,配合1进行使用)
- Xiaoqiao Main (本次使用的XPS模型,DeviantArt有大量xps模型)
- DynamicBone (Unity动态骨骼插件,对头发,裙子等部分进行物理模拟)
- Blender2.81 (本次使用的Blender版本)
- Step1 :Blender安装插件
- 打开Blender2.81 -> 编辑 -> 偏好设置 -> 插件 -> 安装
- 依次安装cats-blender-plugin-master和material-combiner-addon-master插件
- 不要解压,直接使用Blender安装
- 安装后,在插件页面进行激活
- Step2 :Blender安装插件,导入模型
- 右侧选项栏 -> CATS -> Import Model -> 选择.xps格式或者.mesh或者.mesh.ascii格式的模型
- xpx模型一般都有面部绑定用于制作表情,Unity本身不支持表情,所以本次不对面部骨骼做处理。
- 也有部分模型头部没有面部绑定,比如士兵76
- Step3:对人物骨骼进行重命名,重分组
- XPS导入Unity,本质上是将xps模型修改成fbx模型,再导入Unity中
- 首先将人物主要的骨骼挑选出来,进行重命名,方便Unity进行识别。
- 对于一些名字带有adj的骨骼,一般都是对某一个部分进行绑定的骨骼,比如小臂,手肘之类的,无视即可。(强迫症可以在adj所属的骨骼下再建立一个空骨骼,对adi之类的无用骨骼进行收纳。不过要注意骨骼的亲子关系)
- 最后将头发,裙子,可晃动的饰品(发绳,吊坠之类)进行统一分组,命名为Dynamic,方便导入Unity后进行处理。
- root ground为模型的根骨骼,将其名字修改为root
- root hips和root hips2都可以控制整体,留一个就好。这里舍弃root hips(无法直接在列表里删除骨骼,所以将root hips2的父骨骼设为root ground即可,多余的骨骼不需要管)
- 多余的root hips骨骼重命名为unused
- 将root hips2重命名为Hips
- 所谓无用骨骼有两种,一种是带有adj字样对模型绑定有影响但不使用的骨骼,另一种是如图b_00D0样子的骨骼,完全没有作用的骨骼,就这么放着就可以
- 修改后的样子
- 打开Hips骨骼,其中的adjxxx骨骼,skirtxxx骨骼和b_xxx骨骼都是可以忽略的骨骼。
a. 选中Hips骨骼,切换编辑模式。Shift+D后单机鼠标右键,在Hips原位置复制一个相同的骨骼Hips.001,并将Hips.001重命名为Hips_Dummy,将该骨骼的父骨骼设为Hips。
b. 将所有adjxxx骨骼,skirtxxx骨骼和b_xxx骨骼的父骨骼设为Hips_Dummy
- 接下来处理腿部的骨骼,左右腿的骨骼为leg left thigh和leg right tight。处理腿部骨骼时,只需要分别将左右腿的大腿骨,小腿骨,脚腕,脚趾头的骨骼重命名即可,其他腿部的额外骨骼无需处理。
以左腿为例,右腿同理:
a. 将leg left thigh重命名Left Leg,打开Left Leg骨骼
b. 将leg left knee重命名为Left Knee,打开Left Knee骨骼
c. 将leg left ankle重命名为Left Ankle,打开Left Ankle骨骼
d. 将leg left toes重命名为Left Toes
- 接下来处理上半身,将spine lower修改为Spine,spine upper修改为Chest
该模型中,以drvv为开头的骨骼为该角色的裙子,为了在Unity中方便使用Dynamic Bone处理,在这里对这些骨骼进行重分组
a. 在编辑模式下,使用Shift+D后单击鼠标右键,复制spine lower骨骼spine lower.001,将spine lower.001的父骨骼修改为spine lower,并将spine lower.001重命名为Dynamic Skirt。
b. 将spine lower下所有drvv开头的骨骼的父骨骼改为Dynamic Skirt。
c. 将spine upper重命名为Spine - 接着处理上半身,Chest(图中Spine应为Chest)
a. 复制两次Chest骨骼,并将复制出来的骨骼的父骨骼修改为Chest。将复制出来的骨骼分别命名为Dynamic Ribon和Spine_Dummy。
Dynamic Ribon用来管理领结的骨骼,Spine_Dummy用来收纳b_xx的无用骨骼。
b. 将b_xxx的骨骼的父骨骼修改为Spine_Dummy,将drv_xxx骨骼的父骨骼修改为Dynamic Ribon。 - 处理脖子,头部和头发的骨骼
a. 打开head neck lower骨骼。将head neck lower重命名为Neck,将head neck upper重命名为Head。
b. 对头饰,前发,辫子之类的头发的处理要灵活很多,可以自行处理。处理方式和裙子一样(不处理也可以,只不过在Unity里要多套几个Dynamic Bone的脚本) - 接下来处理胳膊
以左胳膊为例,右胳膊同理:
a. arm left shoulder 1 修改为 Arm Left,打开Arm Left
b. arm left shoulder 2 修改为 Left Upper Arm,打开Left Upper Arm
c. arm left elbow修改为Left Elbow,打开Left Elbow
d. arm left wrist修改为Left Wrist
e. 手指部分不用修改 - 骨骼部分已经修改完毕,可以对修改后的骨骼旋转一下,进行测试。
- 选中所有网格,将网格合并成一个网格。
- 贴图不需要合并,因为可能会将头发的贴图等需要设置为Transparent的贴图和不透明的贴图合并在一起,后续导入Unity无法处理
- 将模型导出为fbx格式,位置和xps模型的根目录
- 将xps模型的文件夹(模型和贴图),一并导入到Unity工程里
- 修复模型的材质
展开fbx,应该有9个材质,在这里需要重新修复这些材质。
a. 新建9个材质,名字和fbx模型下的材质名字相同
b. 将新建的材质在fbx模型的属性里一一赋值号,点击Apply
c. 现在模型时白模,需要将贴图(颜色贴图,法线贴图,环境光遮蔽贴图)在材质中赋值好
每个材质所对应的贴图可以在Blender中查看。
具体地,可以在Blender的Shading标签页中查看,Diffuse为颜色贴图,Lighting为环境光遮蔽贴图,Normal为法线贴图 - 材质的参数可以自行调整,好看就行
如果觉得看起来是对的,那就是对的。
将模型的类型改为Humanoid,并检查一下骨骼的位置对不对。尤其是手指的部分 - 修复好的模型,头发要设置成Transparent,否则会看起来怪怪的
- 在FBX模型下添加Dynamic Bone脚本,并将Root指定为裙子,吊坠,头发的骨骼。(可以同时挂很多脚本)
- 点击开始,移动模型,可以看到头发和裙子添加了物理效果,参数可以自行调节。具体可以搜索Dynamic Bone的使用方法。