SkeletalMesh之MorphTargets技术
利用变形目标(Morph Targets) 可以将网格体从基础形状变为目标形状。 通常它们将作为动画系统的一部分与SkeletalMesh一同使用。
Morph Target也称为BlendShape(简称BS),是一种动画的制作方式,相较于骨骼动画,BS更适用于模型里的局部动画。
原理也很简单,简单理解就是两个网格体顶点的插值运算,也称为Morph动画,常见的应用就包括脸部表情、捏脸等
目前的模型动画的基本原理都是让模型中各顶点的位置随时间变化,按种类去分主要有Morph动画、关节动画和骨骼蒙皮动画
从数据的角度来说,三者基本都是采用关键帧数据去驱动变化,他们的区别也就在关键帧的数据是不一样的。
导入含有MorphTargets数据的SkeletalMesh
预览SkeletalMesh的MorphTargets效果
在AnimationSequence中添加MorphTarges数值的控制
在AnimationSequence中添加材质颜色控制
创建M_Morph_Material_Example材质:
从M_Morph_Material_Example上创建M_Morph_Material_Example_Inst材质实例:
在AnimationSequence编辑器中添加名为MorphColor的Curve:
编辑MorphColor的Curve曲线:
注:点击菜单“Window” -- “Anim Curves”,打开Anim Curves面板,将MorphColor设置为Material(勾上绿勾)
最后效果:
注:对于fbx文件格式,仅仅支持在base mesh上自定义顶点法线(custom vertex normals),而所有的morph targets使用是计算法线(calculate normals,generated normal)。
如果base mesh使用自定义顶点法线,可能在变形时有显示上的瑕疵(artifacts)。
开启GPU MorphTargets
r.MorphTarget.Mode 1 // 使用GPU计算MorphTarget
r.MorphTarget.Mode 0 // 使用CPU计算MorphTarget
在SkeletalMesh编辑器中也可以开启和关闭CPU Skinning来预览结果
参考
扩展:静态网格体变形目标
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2013-04-22 windows重命名工具(仿linux下rename)