XPS模型导入Unity(支持VRChat)

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