可可西

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来预览结果

 

参考

动画曲线Animation Curves

变形目标内容示例

变形目标预览器

FBX变换目标通道

学习在UE中导入 Morph Targets 资源

扩展:静态网格体变形目标

posted on 2024-04-22 22:22  可可西  阅读(374)  评论(0编辑  收藏  举报

导航