このページでは

UniformAnimator QML Type

UniformAnimatorタイプは、ShaderEffect のユニフォームをアニメーション化します

Import Statement: import QtQuick
Inherits:

Animator

プロパティ

詳細説明

Animator タイプは通常のAnimationタイプとは異なります。Animatorを使用する場合、アニメーションはレンダースレッドで実行することができ、アニメーションが完了するとプロパティ値は最後にジャンプします。

ユニフォームを定義するQMLプロパティの値は、アニメーションが終了した後に更新されます。

以下のスニペットは、UniformAnimator をShaderEffect アイテムと共に使用する方法を示しています。

ShaderEffect {
    id: shader
    width: 50
    height: 50
    property variant t;
    UniformAnimator {
        target: shader
        uniform: "t"
        from: 0
        to: 1
        duration: 1000
        running: true
    }
    fragmentShader: "qrc:shader.frag.qsb"
}

また、on キーワードを使って、UniformAnimator をShaderEffect インスタンスのユニフォームに直接結びつけることも可能です。

ShaderEffect {
    width: 50
    height: 50
    property variant t;
    UniformAnimator on t {
        from: 0
        to: 1
        duration: 1000
    }
    fragmentShader: "qrc:shader.frag.qsb"
}

Note: Animator タイプは、スレッド化されていないレンダリングループを使用する場合、何のメリットもありません。

注: アプリケーションでは、メイン(GUI)スレッドで高価なブロッキング処理を行いながらアニメーションコンテンツを表示するためにアニメーターに依存するのではなく、マルチスレッド、非同期の原則に基づいた設計を検討することをお勧めします。QMLではWorkerScriptasynchronous image loading 、C++ではワーカースレッド、並列アルゴリズムなどを使用します、 Qt ConcurrentC++では、ワーカースレッド、並列アルゴリズム、コルーチンを使用します。

ShaderEffect およびShaderEffectSourceも参照して ください。

プロパティのドキュメント

uniform : string

このプロパティは、アニメートするユニフォームの名前を保持する。

ユニフォームの値は、ターゲットShaderEffect のプロパティに対応し、フラグメントシェーダまたは頂点シェーダのfloat タイプのユニフォームでなければなりません。

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