このページでは

UniformAnimator QML Type

UniformAnimator 型は、ShaderEffect のユニフォームにアニメーションを適用します。詳細...

Import Statement: import QtQuick
Inherits:

Animator

プロパティ

詳細な説明

Animator これらのタイプは、通常のアニメーションタイプとは異なります。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"
}

注: 非スレッド化されたレンダリングループを使用する場合、Animator タイプにはメリットがありません。

注: アプリケーションでは、メイン(GUI)スレッドで負荷の高いブロッキング処理を実行しながら、アニメーターに依存してアニメーションコンテンツを表示するのではなく、マルチスレッドおよび非同期の原則に基づいた設計を検討することをお勧めします 。長時間のブロッキング操作の代わりに、QML での `WorkerScript ` および `asynchronous image loading `、ならびにワーカースレッド、並列アルゴリズム、 Qt Concurrent、およびC++でのコルーチンなどを選択し、アプリケーション全体とUIが常にレスポンシブな状態を維持するようにしてください。

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.