Auf dieser Seite

BlendedClipAnimator QML Type

BlendedClipAnimator ist eine Komponente, die Funktionen zur Wiedergabe von Animationen in einer Baumstruktur aus Blend-Knoten bereitstellt. Mehr...

Import Statement: import Qt3D.Animation 2.12
In C++: QBlendedClipAnimator
Inherits:

AbstractClipAnimator

Status: Technology preview

Dieser Typ befindet sich in der Technologievorschau und kann sich noch ändern.

Eigenschaften

Ausführliche Beschreibung

Eine Instanz von BlendedClipAnimator kann von einer Entity aggregiert werden, um die Wiedergabe von Animationsclips zu ermöglichen und die berechneten Animationswerte auf Eigenschaften von QObjects anzuwenden.

Während ein „ ClipAnimator “ seine Animationsdaten aus einem einzelnen Animationsclip bezieht, kann ein „BlendedClipAnimator“ mehrere Clips miteinander mischen. Die Animationsdaten werden durch die Auswertung eines sogenannten Blend-Baums ermittelt. Ein Blend-Tree ist eine hierarchische Baumstruktur, in der die Blattknoten Wertknoten sind, die einen Animationsclip (AbstractAnimationClip) kapseln, und die inneren Knoten Überblendungsoperationen darstellen, die auf die Knoten angewendet werden, auf die ihre Operanden-Eigenschaften verweisen.

Um einen Blend-Tree einem „BlendedClipAnimator“ zuzuordnen, setzen Sie die Eigenschaft „ blendTree “ des Animators so, dass sie auf den Stammknoten Ihres Blend-Tree verweist:

BlendedClipAnimator {
    blendTree: AdditiveClipBlend {
        ....
    }
}

Ein Blend-Tree kann aus den folgenden Knotentypen aufgebaut werden:

Hinweis: Der Blend-Knotenbaum sollte nur bearbeitet werden, wenn der Animator nicht ausgeführt wird.

Im Laufe der Zeit werden weitere Knotentypen hinzugefügt.

Betrachten Sie als Beispiel den folgenden Blend-Baum:

Clip0----
        |
        Lerp Node----
        |           |
Clip1----           Additive Node
                    |
            Clip2----

Dieser lässt sich wie folgt erstellen und verwenden:

BlendedClipAnimator {
    blendTree: AdditiveClipBlend {
        baseClip: LerpClipBlend {
            startClip: ClipBlendValue {
                clip: AnimationClipLoader { source: "walk.json" }
            }

            endClip: ClipBlendValue {
                clip: AnimationClipLoader { source: "run.json" }
            }
        }

        additiveClip: ClipBlendValue {
            clip: AnimationClipLoader { source: "wave-arm.json" }
        }
    }

    channelMapper: ChannelMapper {...}
    running: true
}

Indem wir eine Reihe von Animationsclips erstellen und diese zur Laufzeit mithilfe eines Blend-Baums dynamisch miteinander überblenden, eröffnen wir eine riesige Bandbreite an möglichen Animationen. Als einfache Beispiele für den oben gezeigten Blend-Baum, bei dem „alpha“ der additive Faktor und „beta“ der Lerp-Überblendungsfaktor ist, erhalten wir ein 2D-Kontinuum möglicher Animationen:

(alpha = 0, beta = 1) Running, No arm waving --- (alpha = 1, beta = 1) Running, Arm waving
        |                                               |
        |                                               |
        |                                               |
(alpha = 0, beta = 0) Walking, No arm waving --- (alpha = 0, beta = 1) Running, No arm waving

Komplexere Blend-Trees bieten noch mehr Flexibilität bei der Kombination Ihrer Animationsclips. Beachten Sie, dass die zur Steuerung des Blend-Trees verwendeten Werte (oben „alpha“ und „beta“) einfache Eigenschaften der Blend-Knoten sind. Das bedeutet, dass diese Eigenschaften selbst ebenfalls vom Animations-Framework gesteuert werden können.

Dokumentation zu den Eigenschaften

blendTree : AbstractClipBlendNode

Diese Eigenschaft enthält die Wurzel des Animations-Blend-Trees, die vor der Interpolation durch den Animator ausgewertet wird.

© 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.