AnimToSimple 简单骨骼动画转顶点动画
参考文档:
UE5城市样例中AnimToTexture插件的使用
[UE5]AnimToTextureプラグインの使い方 - Qiita
编辑器工具
AnimToTexture插件简介
AnimToTexture插件的作用是将骨骼网格体转化为带动画效果(材质)的静态网格体。这样的好处是移动时不需要CPU进行动画计算,可以缓解CPU的负担。使用该插件的话,直接开启插件即可(版本5.0以上),没有下载5.0以下的版本,目前不知道5.0以下版本是否可用
目前发现不管是VertexAnimation(顶点动画)还是BoneAnimation(骨骼动画)。一套纹理只能保存一套动画。不知道是不是自身设置问题。如果要做多套顶点动画。可能要复制粘贴多套烘焙动画需要的纹理实现多套动画
1.新建一个编辑器工具(EditorUtilityWidgetBlueprint)
添加节点,用于生成骨骼网格体所对应的静态网格体模型(StaticMesh),连接BeginPlay节点运行后则自动生成
SkeletalMesh:指定骨骼网格体
PackageName:生成出来的静态网格体所放置的路径
LODIndex:是我们想要的顶点动画所在的LOD层级,-1为所有层级
2.新建顶点动画所需要的纹理(Texture2D)
UE自带不能创建不带RanderTarget的Texture2D纹理,且其内容会在烘焙后改变,所以随便找一张图导入即可
其中BoneAnimation需要三张纹理,Position、Rotation、Weight,VertexAnimation需要两张纹理,Position、Normal,一般来说根据自己需求选择其一
3.材质准备
复制一份之前使用的材质,然后通过MakeMaterialAttributes(材质表达式创建材质属性)节点将之前的材质复制下来
勾选使用材质属性,然后添加以下代码
此处材质应该有更好的处理,但是参考中节点无法找到,导致只能简单处理
通过材质创建材质实例
打开材质实例,勾选动画
选择图层参数,将所需的贴图附加上去,此处最好不要使用UV0,UV0是纹理所用的UV通道,然后将材质实例挂到材质插槽中
4.创建数据资产
创建一个AnimToTextureDataAsset的数据资产
将数据填写完整,其中静态网格体的UV通道要和材质实例中选择的一样
选择骨骼网格体所对应的动画
5.烘焙动画
在编辑器工具中增加节点,将对应的数据资产及材质实例放上去,运行即可
目前因为不懂材质,所以这方法只支持单材质的动画,要实现多材质的动画请看参考文档中的材质