Qt3DAnimation::QVertexBlendAnimation Class
class Qt3DAnimation::QVertexBlendAnimation頂点ブレンドによるモーフィングアニメーションを実装したクラス。詳細...
| ヘッダー: | #include <qvertexblendanimation.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3danimation) target_link_libraries(mytarget PRIVATE Qt6::3danimation) |
| qmake: | QT += 3danimation |
| QML内: | VertexBlendAnimation |
| 継承元: | Qt3DAnimation::QAbstractAnimation |
| ステータス: | テクノロジープレビュー |
このクラスはテクノロジープレビュー段階にあり、変更される可能性があります。
プロパティ
- interpolator : float
- target : Qt3DRender::QGeometryRenderer*
- targetName : QString
- targetPositions : QList<float>
パブリック関数
| QVertexBlendAnimation(QObject *parent = nullptr) | |
| void | addMorphTarget(Qt3DAnimation::QMorphTarget *target) |
| float | interpolator() const |
| QList<Qt3DAnimation::QMorphTarget *> | morphTargetList() |
| void | removeMorphTarget(Qt3DAnimation::QMorphTarget *target) |
| void | setMorphTargets(const QList<Qt3DAnimation::QMorphTarget *> &targets) |
| Qt3DRender::QGeometryRenderer * | target() const |
| QString | targetName() const |
| QList<float> | targetPositions() const |
パブリックスロット
| void | setTarget(Qt3DRender::QGeometryRenderer *target) |
| void | setTargetName(const QString name) |
| void | setTargetPositions(const QList<float> &targetPositions) |
シグナル
| void | interpolatorChanged(float interpolator) |
| void | targetChanged(Qt3DRender::QGeometryRenderer *target) |
| void | targetNameChanged(const QString &name) |
| void | targetPositionsChanged(const QList<float> &targetPositions) |
詳細な説明
Qt3DAnimation::QVertexBlendAnimation クラスは、ターゲットとなるQGeometryRenderer に対する頂点ブレンドモーフィングアニメーションを実装します。QVertexBlendAnimationは、morph targets からターゲットのQGeometryRenderer::geometry へ、正しいQAttributes を設定し、現在の位置に対する補間器を計算します。ブレンドウェイトによってブレンドが制御されるQMorphingAnimation とは異なり、ここでは連続するモーフィングターゲット間でブレンドが行われます。 属性間の実際のブレンド処理は、マテリアル側で実装する必要があります。Qt3DAnimation::QMorphPhongMaterial は、フォン照明モデル向けのモーフィング機能を備えたマテリアルを実装しています。ブレンドは、「base」と「target」という 2 つの属性間で行われます。 base属性とtarget属性の名称は、モーフターゲット名から取得されます。この際、base属性は既存の名称を保持し、target属性の名称には「Target」が接尾辞として付加されます。補間器は、使用されるマテリアルに対するQParameter として設定できます。アニメーション内のすべてのモーフターゲットには、ベースジオメトリと同じ名称の属性が含まれている必要があります。
プロパティのドキュメント
[read-only] interpolator : float
ベース属性とターゲット属性間の補間値を保持します。
アクセス関数:
| float | interpolator() const |
通知信号:
| void | interpolatorChanged(float interpolator) |
target : Qt3DRender::QGeometryRenderer*
モーフィングアニメーションが適用される対象の QGeometryRenderer を保持します。
アクセス関数:
| Qt3DRender::QGeometryRenderer * | target() const |
| void | setTarget(Qt3DRender::QGeometryRenderer *target) |
Notifierシグナル:
| void | targetChanged(Qt3DRender::QGeometryRenderer *target) |
targetName : QString
ターゲットジオメトリの名前を保持します。これは、ターゲットジオメトリをモーフィングアニメーションと照合しやすくするための便利なプロパティです。この名前は通常、ターゲットとなる QGeometryRenderer の親エンティティの名前と同じですが、必ずしもそうである必要はありません。
アクセス関数:
| QString | targetName() const |
| void | setTargetName(const QString name) |
Notifierシグナル:
| void | targetNameChanged(const QString &name) |
targetPositions : QList<float>
モーフターゲットの位置値を保持します。リスト内の各位置は、同じインデックスを持つ対応するモーフターゲットの位置を指定します。値は昇順で並んでいる必要があります。値は正または負の値をとることができ、あらかじめ定義された単位はありません。
アクセス関数:
| QList<float> | targetPositions() const |
| void | setTargetPositions(const QList<float> &targetPositions) |
通知シグナル:
| void | targetPositionsChanged(const QList<float> &targetPositions) |
メンバ関数のドキュメント
[explicit] QVertexBlendAnimation::QVertexBlendAnimation(QObject *parent = nullptr)
parent を使用して、新しい QVertexBlendAnimation を作成します。
void QVertexBlendAnimation::addMorphTarget(Qt3DAnimation::QMorphTarget *target)
アニメーションの最後に、新しいモーフ「target 」を追加します。
QList<Qt3DAnimation::QMorphTarget *> QVertexBlendAnimation::morphTargetList()
モーフターゲットのリストを返します。
void QVertexBlendAnimation::removeMorphTarget(Qt3DAnimation::QMorphTarget *target)
アニメーションから「target 」のモーフを削除します。
void QVertexBlendAnimation::setMorphTargets(const QList<Qt3DAnimation::QMorphTarget *> &targets)
「targets 」のモーフを「アニメーション」に設定します。古いターゲットはクリアされます。
© 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.