使用利用Unity插件Voxel Importe绑定骨骼和制作动画
将vox和qb文件导入Unity项目中,自动转换为Voxel对象,可以作为预制使用。 这些功能仅对Unity 2017.1及更新版本有效。
脚本说明
Voxel Object
作用:生成GameObject。 它适用于基本的固定对象,并且它会生成一个优化的网格。
脚本位置: Component/Voxel Importer/Voxel Object
使用方法:
创建一个空物体。添加 “Voxel Importer / Voxel Object” 组件。 打开一个 voxel file 文件。 这样就完成优化了网格的创建。
注意:
此脚本仅在编辑器中工作。网格是预构建的,因此在运行时不需要额外的资源。 在构建的情况下,它并没有保留所有的信息。
Voxel Skinned Animation Object
作用:绑定体素骨骼,制作动画的前一步。
应用到动画对象。 它生成一个优化的网格。
脚本位置: Component/Voxel Importer/Voxel Skinned Animation Object
使用方法
创建一个空物体。添加 “Voxel Importer / Voxel Skinned Animation Object” 组件。 打开一个 voxel 文件。 去改变中心坐标 “Import Offset” 的调整。 使中心坐标设置在体素模型的底部中间。 从模板中创建骨骼。 (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,骨骼形状如下 选择骨骼。 按下 “Edit Bone Position” 按钮,这是用来编辑骨骼位置的。把骨骼调整到合适的位置。 步骤如下: (1) 将hips骨骼设置在人物相应的位置。 (2) 设置Chest骨骼的位置。 (3) 设置Head头部骨骼 (4) 设置LeftShoulder左肩旁骨骼,初始时默认勾选镜像骨骼设置,右肩膀会自动镜像设置。 (5) 设置LeftUpperLeg 左腿的骨骼。 (6) 到此骨骼位置设置好,按下Refresh按钮刷新。 如有必要,在 “Add Child Bone” 按钮中加入一根子节点骨骼。 以下的正确的骨骼位置示例: 也可以增加子节点骨骼,这里加入了尾巴和翅膀的骨骼。 调整好骨骼位置之后,选择各骨骼,开始设置骨骼的权重。按下 “Edit Bone Weight” 按钮,开始设置骨骼的权重。 提示:按空格键可以看到原体素的样子。 骨骼权重设置界面如下: 可以看到左上角的窗口,是用来设置骨骼权重的: 最上面的两个是选择方式:分别是Voxel体素和Vertex顶点两种方式。 在Voxel体素选择下有三种选择方式,具体如下: Voxel:单个体素 Fill:自动选择填充相关部分。 Rect:矩形选择,选择到的每个体素都是同一个权重值,配合Vertex使用。(常用) 下方的按钮分别是:替换、增加、减少、权重值、镜像设置。 在Vertex顶点选择下有两选择方式,具体如下: Brush:笔刷模式,直接设置某些顶点。 Rect:矩形选择,会有比较好的过度。(常用) 完成骨骼的权重设置之后,就完成了皮肤网格的创建,接下来就可以在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都有独立的材质球。