Spec-Zone.ru › Qt 5.9

Аниматор смешанных клипов QML Тип

Аниматор смешанных клипов — компонент, обеспечивающий воспроизведение анимации дерева узлов смешивания. Подробнее...

Заявление об импорте: import Qt3D.Animation 2.9
С: Qt 5.9
Инициализирует: QBlendedClipAnimator
  • Список всех членов, включая унаследованные

Свойства

  • blendTree : AbstractClipBlendNode

Подробное описание

Экземпляр Аниматора смешанных клипов может быть агрегирован сущностью, чтобы добавить возможность воспроизведения анимационных клипов и применения рассчитанных значений анимации к свойствам объектов QObjects.

В то время как Аниматор клипов получает данные анимации из одного анимационного клипа, Аниматор смешанных клипов может смешивать несколько клипов. Данные анимации получаются путем оценки так называемого дерева смешивания. Дерево смешивания — это иерархическая структура дерева, где листья — это узлы значений, которые инкапсулируют анимационный клип (AbstractAnimationClip); внутренние узлы представляют операции смешивания, которые действуют на узлы, на которые указывают их свойства-операнды.

Чтобы связать дерево смешивания с Аниматором смешанных клипов, установите свойство blendTree аниматора, чтобы оно указывало на корневой узел вашего дерева смешивания:

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

Дерево смешивания может быть построено из следующих типов узлов:

Примечание: Дерево узлов смешивания следует редактировать только когда аниматор не работает.

  • Qt3D.Animation.ClipBlendValue
  • Qt3D.Animation.LerpClipBlend
  • Qt3D.Animation.AdditiveClipBlend

Дополнительные типы узлов будут добавлены со временем.

В качестве примера рассмотрим следующее дерево смешивания:

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

Это можно создать и использовать следующим образом:

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
}

Создание набора анимационных клипов и динамическое смешивание между ними во время выполнения с помощью дерева смешивания открывает огромный набор возможных анимаций. В качестве нескольких простых примеров вышеприведенного дерева смешивания, где alpha — это аддитивный множитель, а beta — множитель смешивания lerp, мы можем получить 2D непрерывность возможных анимаций:

(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

Более сложные деревья смешивания предлагают еще большую гибкость для комбинирования ваших анимационных клипов. Обратите внимание, что значения, используемые для управления деревом смешивания (alpha и beta выше), являются простыми свойствами узлов смешивания. Это означает, что эти свойства сами также могут контролироваться фреймворком анимации.

Документация свойств

blendTree : AbstractClipBlendNode

Это свойство содержит корень дерева анимационного смешивания, которое будет оцениваться перед интерполяцией аниматором.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qml-qt3d-animation-blendedclipanimator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API