开启插件
首先安装插件,然后重启。
打开显示插件内容
我们就可以找到插件自带的转换内容
将骨骼网格体转换为顶点动画有两种方式:
- 最简单的记录每个顶点的位置然后通过切换拾取颜色偏移实现
- 记录骨骼的变换,然后通过贴图去修改骨骼位置计算
这两种方式都可以实现,记录顶点位置的如果模型顶点数量太多,生成的贴图也就越大,骨骼则是根据骨骼数量,所以生成的贴图会小很多,在渲染时会增加计算量,所以大家可以根据需求选择。
我们如果不会使用,则可以通过自带的案例学习查看。
在Mannequin目录下
你会发现案例使用的转换蓝图
鼠标右键会有运行编辑工具蓝图用来生成我们需要的数据。
然后我们通过旁边的生成的动画找到材质使用的父材质
材质里,左侧部分为颜色渲染相关,红框内为动画相关,我们可以复制所需内容(注意要复制出来到项目去修改,不要直接在插件文件里修改)
接下来,重要的是我们需要制作生成使用的配置文件,我们可以在Data里找到案例使用的配置。
最主要的配置就是设置模型和生成到的目标贴图
然后设置需要生成的动画帧率和动画,可以选择多个动画,还有自动播放功能
准备资源
首先,我们先通过骨骼网格体生成静态网格体,找到标准姿势的骨骼网格体,点击制作静态网格体
然后查看骨骼网格体使用的材质,有几个复制几个
我们需要将案例里的一些节点复制到新创建的材质中
在细节这里开启使用材质属性
会发现有多个接口的节点变为一个
然后我们通过节点创建一个属性集合
然后把节点按之前的顺序链接起来
如果你需要修改,可以创建材质实例,然后在图层参数这里进行修改,图层的概念可以不会造成命名污染代码维护等优势
材质准备完毕,我们准备使用的纹理,这个纹理位置在
复制到自己的文件夹并重新命名,这三种图片分别记录骨骼的位置,骨骼的旋转,骨骼的权重
我们再讲案例中的蓝图和数据复制出来
数据在Data目录
然后重新命名
生成并设置顶点动画数据
打开蓝图,我们将生成顶点动画的数据取消,如果你需要也可以设置生成
我们还需要更新材质参数,我们需要将所有需要修改的材质设置进去,如果不够可以在后面继续复制
在蓝图类默认值这里,我们设置数据文件
然后打开DA,将数据修改成需要修改的资源,
然后添加几个动画测试效果
鼠标右键,选择运行工具蓝图
运行完成后,你会发现这两个材质参数都已经被修改掉
最后,把静态网格体的材质替换为顶点动画材质实例,你会发现模型会播放动作
使用蓝图播放动画
数据我们实现了设置,那么,资源如何在蓝图中使用呢,我们在案例中找到一个蓝图专门用于播放,这个可以随机四个动画然后通过模型去播放。
由于我项目中的资源比较多,就不编译c++代码分析函数实现,只讲解一下如何使用此蓝图。
我们将其复制出来,修改蓝图的静态网格体和配置使用的配置项
接着编译,你可以发现视口中的四个模型都在播放不同的动作,即使相同的动画,播放的帧也不同
打开蓝图,我们查看构造函数,会发现在构造函数中调用了两个函数,一个生成自动播放数据,另一个是合批,就是在一次drawcall中,将所有的模型渲染出来
蓝图的组件使用的是实例化静态网格体组件,组件可以一次性渲染多个不同的模型实例。
首先调用父蓝图的构造函数,构建位置矩阵,并将生成的位置数量设置给实例化静态网格体组件
生成矩阵函数就是生成函数
它的个数生成按照我们设置生成Div:行列数,最终数量为Div X 乘 Div Y ,然后在Size里均匀排列,并可以设置随机偏移。
在子蓝图的构造函数里,设置为自动播放,并调用父蓝图构造函数,并生成自动播放的数据,将所有实例的矩阵传入播放。
在生成自动播放数据函数里,我们可以通过之前配置的生成顶点数据的配置项去生成每个实例的播放数据
当前可以选择播放哪个动画,设置动画播放开始位置,和动画播放速率。
自动播放数据的参数有四项,播放起始位置,播放速率,当前动画的起始帧和结束帧。
最后将每个实例的自动播放数据和位置变换数据提供给实例化静态网格体组件,它将会生成多个实例并播放
我们可以调整参数生成更过的实力来查看效果
最终效果