QMorphingAnimation Class

class Qt3DAnimation::QMorphingAnimation

ブレンドシェイプ・モーフィング・アニメーションを実装したクラス。もっと詳しく...

Header: #include <QMorphingAnimation>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3danimation)
target_link_libraries(mytarget PRIVATE Qt6::3danimation)
qmake: QT += 3danimation
In QML: MorphingAnimation
Inherits: Qt3DAnimation::QAbstractAnimation
Status: Deprecated

パブリックタイプ

enum Method { Normalized, Relative }

プロパティ

パブリック関数

QMorphingAnimation(QObject *parent = nullptr)
void addMorphTarget(Qt3DAnimation::QMorphTarget *target)
QEasingCurve easing() const
QVector<float> getWeights(int positionIndex)
float interpolator() const
Qt3DAnimation::QMorphingAnimation::Method method() const
QVector<Qt3DAnimation::QMorphTarget *> morphTargetList()
void removeMorphTarget(Qt3DAnimation::QMorphTarget *target)
void setMorphTargets(const QVector<Qt3DAnimation::QMorphTarget *> &targets)
void setWeights(int positionIndex, const QVector<float> &weights)
Qt3DRender::QGeometryRenderer *target() const
QString targetName() const
QVector<float> targetPositions() const

パブリックスロット

void setEasing(const QEasingCurve &easing)
void setMethod(Qt3DAnimation::QMorphingAnimation::Method method)
void setTarget(Qt3DRender::QGeometryRenderer *target)
void setTargetName(const QString name)
void setTargetPositions(const QVector<float> &targetPositions)

シグナル

void easingChanged(const QEasingCurve &easing)
void interpolatorChanged(float interpolator)
void methodChanged(Qt3DAnimation::QMorphingAnimation::Method method)
void targetChanged(Qt3DRender::QGeometryRenderer *target)
void targetNameChanged(const QString &name)
void targetPositionsChanged(const QVector<float> &targetPositions)

詳細説明

Qt3DAnimation::QMorphingAnimation クラスは、ターゲットQGeometryRenderer へのブレンドシェイプモーフィングアニメーションを実装します。QMorphingAnimation は、morph targets からターゲットQGeometryRenderer::geometry に正しいQAttributes を設定し、現在の位置の補間子を計算します。属性間の実際のブレンドは、マテリアルで実装する必要があります。Qt3DAnimation::QMorphPhongMaterialは、フォンの照明モデルのためのモーフィングサポートを持つマテリアルを実装しています。ブレンドは、2つの属性 - 'base' と 'target' - の間で行われます。base 属性と target 属性の名前はモーフターゲットの名前から取られ、base 属性は既に持っている名前を保持し、target 属性の名前には 'Target' が付加されます。インターポレータは、使用するマテリアルにQParameter として設定できます。アニメーション内のすべてのモーフターゲットは、ベースジオメトリのアトリビュートと同じ名前のアトリビュートを含む必要があります。

メンバ タイプ ドキュメント

enum QMorphingAnimation::Method

この列挙型は、モーフィング方法を指定します。

定数説明
Qt3DAnimation::QMorphingAnimation::Normalized0ブレンドは正規化された式を使用する; V' = Vbase * (1.0 - sum(Wi))+ sum[Vi * Wi]
Qt3DAnimation::QMorphingAnimation::Relative1ブレンドには相対式を使用する。

プロパティの説明

easing : QEasingCurve

モーフターゲット間のイージングカーブを保持します。

アクセス関数:

QEasingCurve easing() const
void setEasing(const QEasingCurve &easing)

通知シグナル

void easingChanged(const QEasingCurve &easing)

[read-only] interpolator : const float

ベースアトリビュートとターゲットアトリビュート間のインターポレーターを保持します。

アクセス関数です:

float interpolator() const

ノーティファイアシグナル

void interpolatorChanged(float interpolator)

method : Method

モーフィング方法を保持します。デフォルトはRelativeです。

アクセス関数

Qt3DAnimation::QMorphingAnimation::Method method() const
void setMethod(Qt3DAnimation::QMorphingAnimation::Method method)

通知シグナル

void methodChanged(Qt3DAnimation::QMorphingAnimation::Method method)

target : Qt3DRender::QGeometryRenderer*

モーフィングアニメーションが適用される対象のQGeometryRendererを保持します。

アクセス関数

Qt3DRender::QGeometryRenderer *target() const
void setTarget(Qt3DRender::QGeometryRenderer *target)

通知シグナル

void targetChanged(Qt3DRender::QGeometryRenderer *target)

targetName : QString

ターゲットジオメトリの名前を保持します。これは、ターゲットジオメトリをモーフィングアニメーションにマッチさせやすくするための便利なプロパティです。この名前は通常、ターゲット QGeometryRenderer の親エンティティの名前と同じですが、同じである必要はありません。

アクセス関数

QString targetName() const
void setTargetName(const QString name)

通知シグナル

void targetNameChanged(const QString &name)

targetPositions : QVector<float>

モーフターゲットの位置値を保持します。リストの各位置は、同じインデックスを持つ対応するモーフターゲットの位置を指定します。値は昇順でなければなりません。値は正でも負でもよく、定義済みの単位はありません。

アクセス関数:

QVector<float> targetPositions() const
void setTargetPositions(const QVector<float> &targetPositions)

通知シグナル:

void targetPositionsChanged(const QVector<float> &targetPositions)

メンバ関数ドキュメント

[explicit] QMorphingAnimation::QMorphingAnimation(QObject *parent = nullptr)

parent で新しい QMorphingAnimation を構築します。

void QMorphingAnimation::addMorphTarget(Qt3DAnimation::QMorphTarget *target)

アニメーションの最後に新しいモーフtarget を追加する。

QVector<float> QMorphingAnimation::getWeights(int positionIndex)

モーフの重みをpositionIndex で返します。

QVector<Qt3DAnimation::QMorphTarget *> QMorphingAnimation::morphTargetList()

モーフターゲットリストを返します。

void QMorphingAnimation::removeMorphTarget(Qt3DAnimation::QMorphTarget *target)

アニメーションからモーフtarget を削除します。

void QMorphingAnimation::setMorphTargets(const QVector<Qt3DAnimation::QMorphTarget *> &targets)

アニメーションにモーフtargets を設定します。古いターゲットはクリアされます。

void QMorphingAnimation::setWeights(int positionIndex, const QVector<float> &weights)

モーフweightspositionIndex にセットします。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。