QAbstractAnimationClip 类

class Qt3DAnimation::QAbstractAnimationClip

QAbstractAnimationClip 是提供关键帧动画数据的类型的基类。更多...

头文件 #include <QAbstractAnimationClip>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3danimation)
target_link_libraries(mytarget PRIVATE Qt6::3danimation)
qmakeQT += 3danimation
继承 Qt3DCore::QNode
继承自

Qt3DAnimation::QAnimationClipQt3DAnimation::QAnimationClipLoader

属性

公共函数

virtual~QAbstractAnimationClip()
floatduration() const

信号

voiddurationChanged(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::QAnimationClipQt3DAnimation::QAnimationClipLoader.

属性文档

[只读] duration : const float

包含动画剪辑的持续时间(以秒为单位)。一旦提供动画数据到 Qt 3D 的具体子类,就会被更新。

访问函数

floatduration() const

通知信号

voiddurationChanged(float duration)

成员函数文档

[虚拟 noexcept] QAbstractAnimationClip::~QAbstractAnimationClip()

销毁这个动画片段。

© 2024 Qt 公司有限公司。本文档中的文档贡献版权属于各自的所有者。本提供的文档根据自由软件基金会发布的 GNU 自由文档许可证 version 1.3 的条款进行许可。Qt 及相关标志是芬兰及/或全球其他国家的 Qt 公司的商标。所有其他商标均属于各自的所有者。