QAbstractAnimationClip 类
class Qt3DAnimation::QAbstractAnimationClipQAbstractAnimationClip 是提供关键帧动画数据的类型的基类。更多...
头文件 | #include <QAbstractAnimationClip> |
CMake | find_package(Qt6 REQUIRED COMPONENTS 3danimation) target_link_libraries(mytarget PRIVATE Qt6::3danimation) |
qmake | QT += 3danimation |
继承 | Qt3DCore::QNode |
继承自 | Qt3DAnimation::QAnimationClip 和 Qt3DAnimation::QAnimationClipLoader |
属性
- duration : const float
公共函数
virtual | ~QAbstractAnimationClip() |
float | duration() const |
信号
void | durationChanged(float duration) |
详细描述
要利用 Qt 3D 动画模块中的关键帧动画框架,需要向使用的动画组件提供关键帧动画数据。动画数据由 QAbstractAnimationClip 的某个具体子类提供。
当您想在应用程序中程序化创建动画数据时,应使用 QAnimationClip。实际数据由 QAnimationClipData 值类型设置。
如果您正在从文件加载烘焙的动画数据,例如由艺术家创建的,则使用 QAnimationClipLoader 类,并设置其 source
属性。
一旦使用上述方法用数据填充了动画剪辑,Qt 3D 动画后端将更新只读的持续时间属性。
动画剪辑的典型用法是
auto animator = new QClipAnimator(); auto clip = new QAnimationClipLoader(); clip->setSource(QUrl::fromLocalFile("bounce.json")); animator->setClip(clip); animator->setChannelMapper(...); animator->setRunning(true);
动画剪辑也用于动画混合树中的叶子节点值
// Create leaf nodes of blend tree auto slideClipValue = new QClipBlendValue( new QAnimationClipLoader(QUrl::fromLocalFile("slide.json"))); auto bounceClipValue = new QClipBlendValue( new QAnimationClipLoader(QUrl::fromLocalFile("bounce.json"))); // Create blend tree inner node auto additiveNode = new QAdditiveClipBlend(); additiveNode->setBaseClip(slideClipValue); additiveNode->setAdditiveClip(bounceClipValue); additiveNode->setAdditiveFactor(0.5f); // Run the animator auto animator = new QBlendedClipAnimator(); animator->setBlendTree(additiveNode); animator->setChannelMapper(...); animator->setRunning(true);
参见Qt3DAnimation::QAnimationClip 和 Qt3DAnimation::QAnimationClipLoader.
© 2024 Qt 公司有限公司。本文档中的文档贡献版权属于各自的所有者。本提供的文档根据自由软件基金会发布的 GNU 自由文档许可证 version 1.3 的条款进行许可。Qt 及相关标志是芬兰及/或全球其他国家的 Qt 公司的商标。所有其他商标均属于各自的所有者。