本页内容

变形动画

简介

变形动画(也称为顶点动画)是一种模拟软体材料变形的方法。它能将一个形状平滑地转换为另一个形状。实现这一效果的方法是创建一个网格,该网格为每个顶点包含多个位置。每一组额外的位置都定义了一个形状,称为目标形状(morph target )。在动画制作过程中,每个目标都会被分配一个目标位置(weight )。 每个顶点的有效位置是通过根据权重,对该目标的各个位置进行线性插值来计算的。

形态转换与骨骼动画有所不同,后者需要创建一个虚拟骨骼,并通过定义模型中每个顶点与该骨骼节点之间的关系来为模型绑定骨骼。

请注意,每个变形目标的基本结构必须相同:如果三个顶点在基础模型中构成一个三角形,那么它们在所有变形目标中也会构成一个三角形。该三角形的位置、朝向和大小可以完全不同;甚至可以通过将其设为大小为零的退化三角形来将其实际移除。

在大多数情况下,网格将由外部工具创建,并使用Balsam资源导入工具进行导入。例如,在Blender 3D编辑器中,变形目标被称为“形状键”(shape keys),而在Autodesk Maya中则被称为“混合形状”(blend shapes)。

该变形示例展示了如何控制从 Blender 导入的模型的权重。

自定义变形动画示例展示了如何通过继承QQuick3DGeometry 在 C++ 中创建变形目标。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.