使用Unity插件Voxel Importe为MagicaVoxel模型添加动画

使用利用Unity插件Voxel Importe绑定骨骼和制作动画

将vox和qb文件导入Unity项目中,自动转换为Voxel对象,可以作为预制使用。
这些功能仅对Unity 2017.1及更新版本有效。


脚本说明


Voxel Object

作用:生成GameObject。
它适用于基本的固定对象,并且它会生成一个优化的网格。

脚本位置:
Component/Voxel Importer/Voxel Object

这里写图片描述

使用方法:

  1. 创建一个空物体。
  2. 添加 “Voxel Importer / Voxel Object” 组件。
    这里写图片描述
  3. 打开一个 voxel file 文件。
    这里写图片描述
  4. 这样就完成优化了网格的创建。

注意:

  • 此脚本仅在编辑器中工作。
  • 网格是预构建的,因此在运行时不需要额外的资源。
  • 在构建的情况下,它并没有保留所有的信息。

Voxel Skinned Animation Object

作用:绑定体素骨骼,制作动画的前一步。

应用到动画对象。 它生成一个优化的网格。

脚本位置:
Component/Voxel Importer/Voxel Skinned Animation Object

这里写图片描述

使用方法

  1. 创建一个空物体。
  2. 添加 “Voxel Importer / Voxel Skinned Animation Object” 组件。
    这里写图片描述
  3. 打开一个 voxel 文件。
    这里写图片描述
  4. 去改变中心坐标 “Import Offset” 的调整。
    这里写图片描述
    这里写图片描述
    使中心坐标设置在体素模型的底部中间。
    这里写图片描述
  5. 从模板中创建骨骼。
    这里写图片描述
    (1) 有四种不同的骨骼选择。
    (2) Maximum Humanoid (Mecanim).asset ,骨骼形状如下
    这里写图片描述
    (3) Maximum Humanoid (Mecanim) Unity5.6.o or later.asset,骨骼形状如下
    这里写图片描述
    (4) Mi nimum Humanoid (Mecanim).asset,骨骼形状如下
    这里写图片描述
    (5) SD Human.asset,骨骼形状如下
    这里写图片描述
  6. 选择骨骼。
  7. 按下 “Edit Bone Position” 按钮,这是用来编辑骨骼位置的。
  8. 把骨骼调整到合适的位置。
    这里写图片描述
    步骤如下:
    (1) 将hips骨骼设置在人物相应的位置。
    这里写图片描述
    (2) 设置Chest骨骼的位置。
    这里写图片描述
    (3) 设置Head头部骨骼
    这里写图片描述
    (4) 设置LeftShoulder左肩旁骨骼,初始时默认勾选镜像骨骼设置,右肩膀会自动镜像设置。
    这里写图片描述
    (5) 设置LeftUpperLeg 左腿的骨骼。
    这里写图片描述
    (6) 到此骨骼位置设置好,按下Refresh按钮刷新。
    这里写图片描述
  9. 如有必要,在 “Add Child Bone” 按钮中加入一根子节点骨骼。
    以下的正确的骨骼位置示例:
    这里写图片描述
    也可以增加子节点骨骼,这里加入了尾巴和翅膀的骨骼。
    这里写图片描述
  10. 调整好骨骼位置之后,选择各骨骼,开始设置骨骼的权重。
  11. 按下 “Edit Bone Weight” 按钮,开始设置骨骼的权重。
    提示:按空格键可以看到原体素的样子。
    骨骼权重设置界面如下:
    这里写图片描述
    可以看到左上角的窗口,是用来设置骨骼权重的:
    这里写图片描述
    最上面的两个是选择方式:分别是Voxel体素和Vertex顶点两种方式。
    Voxel体素选择下有三种选择方式,具体如下:
    Voxel:单个体素
    这里写图片描述
    Fill:自动选择填充相关部分。
    这里写图片描述
    Rect:矩形选择,选择到的每个体素都是同一个权重值,配合Vertex使用。(常用)
    这里写图片描述
    下方的按钮分别是:替换、增加、减少、权重值、镜像设置。
    这里写图片描述
    Vertex顶点选择下有两选择方式,具体如下:
    Brush:笔刷模式,直接设置某些顶点。
    这里写图片描述
    Rect:矩形选择,会有比较好的过度。(常用)
    这里写图片描述
  12. 完成骨骼的权重设置之后,就完成了皮肤网格的创建,接下来就可以在Animation窗口中制作动画了。

以下使各部位正确的骨骼权重示例:

Spine脊椎开始的设置:由于还需要设置其他骨骼的权重,此处只为暂时设置而已。
这里写图片描述
左上臂
这里写图片描述
左下臂
这里写图片描述
头部
这里写图片描述
新增的子节点翅膀
这里写图片描述
左上腿
这里写图片描述
左下腿
这里写图片描述
新增子节点尾巴
这里写图片描述
Hips髋部
这里写图片描述
最终的Spine
这里写图片描述

最终骨骼绑定的效果

打开Avatar查看
这里写图片描述
添加Animator
这里写图片描述
设置动画,可以看到动画效果
这里写图片描述


Voxel Chunks Object

作用:将多个组合的体素物体组合在一起。

  • 分割体素以创建一个网格。
  • 它用于超过65000顶点的情况。
  • 此外,你还可以在四元矩阵中分裂。

位置:Component/Voxel Importer/Voxel Chunks Object
这里写图片描述

使用方法:
1. 创建一个空物体。
2. 添加 “Voxel Importer / Voxel Chunks Object” 组件。
这里写图片描述
3. 打开一个voxel文件。
这里写图片描述
4. 则完成了优化网格的创建。
这里写图片描述

该脚本可以设置碎块效果

  • Voxel Chunks Object导入体素文件,在物体下得到很多chunk,默认情况下Import下的Setting下的Split Mode勾选MagicVoxel World Editor,即按着MagicVoxel World的图层来获得chunk的,一个图层对应这一个chunk。
    这里写图片描述
  • 若设置为chunk size,则会按照下面设置的chunk size来生成chunk,不会按照MagicVoxel World的图层来区分。
    这里写图片描述
  • 若选中了Import下的Setting下的Create contact faces ,则会将每个chunk存在的缺口补上
    这里写图片描述
    这里写图片描述
  • 在为每个chunk添加Rigidbody和Collider,Mesh Collider点上Conves,可以达到碎块效果
    这里写图片描述
    这里写图片描述
  • 若不选中了Import下的Setting下的Create contact faces ,则每个chunk存在的缺口,这样不能做破碎效果。
    这里写图片描述
  • 若Import下的Setting下的Split Mode勾选MagicVoxel World Editor,再添加Rigidbody和Collider,破碎效果将会按照MagicaVoxel的图层设置来破碎。’
    这里写图片描述

Voxel Frame Animation Object

作用:创建体素组合的帧动画。

位置:
Component/Voxel Importer/Voxel Frame Animation Object

这里写图片描述

使用方法:
1. 创建一个空物体。
2. 添加 “Voxel Importer / Voxel Frame Animation Object” 组件。
3. 打开一个体素文件。
这里写图片描述
4. 打开体素文件之后,在Animation中自动加入了一帧。
这里写图片描述
5. 点击Animation的Open加载第二各帧动画。
这里写图片描述
6. 可以在Frame List Window中查看加入的帧。
这里写图片描述
8. 也可以在Frame List Window中选择添加。
9. 这里写图片描述
9. 体素帧动画完成。


1.1.3插件新加入

单个体素对象的修改

将vox问文件保存在Unity中,MagicaVoxel对vox左的修改可以实时地现实在Unity中。
若在Advanced的Setting中不取消Legacy Vox Import,则在MagicaVoxel的位置的修改可以直接修改到Unity中。
若选中了Legacy Vox Import,则不会修改到Unity中。
这里写图片描述

Voxel Chunks Object的修改

点击Refresh,只会修改选中的对象
这里写图片描述
点击Refresh all chunks,可以对所有的chunks对象做修改。

点击Create contact faces of chunk,可以修补每个chunk的缺口
这里写图片描述
这里写图片描述

在Advanced中的object下的Material的Material Mode中设为Combine,则所有对象使用同一材质
这里写图片描述
这里写图片描述
若将Material Mode中设为In’dividual,则每个chunk都有独立的材质球。
这里写图片描述
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值