LottieAnimation QML Type

Qt 用 Lottie プレイヤー。詳細...

Import Statement: import Qt.labs.lottieqt 1.0
Inherits:

Item

プロパティ

信号

方法

詳細説明

LottieAnimationタイプは、Lottie形式のファイルを表示します。

LottieAnimationは、Adobe After EffectsからエクスポートされたLottieファイルを読み込んでレンダリングするために使用されます。現在、Lottieの仕様の一部のみがサポートされています。主な相違点は以下の通りです:

  • シェイプレイヤーのみサポート
  • タイムラインの整数フレームモードのみサポート(実フレーム番号と時間は最も近い整数に丸められます)
  • 式はサポートされていません。

制限の全リストは、制限のセクションを参照してください。

使用例

次の例は、LottieAnimation型の簡単な使い方です。

LottieAnimation {
    loops: 2
    quality: LottieAnimation.MediumQuality
    source: "animation.json"
    autoPlay: false
    onStatusChanged: {
        if (status === LottieAnimation.Ready) {
            // any acvities needed before
            // playing starts go here
            gotoAndPlay(startFrame);
        }
    }
    onFinished: {
        console.log("Finished playing")
    }
}

注意: 要素の幅や高さを変更しても、中のアニメーションのサイズは変わりません。また、LottieAnimation 要素内のコンテンツを整列させることはできません。これを実現するには、アニメーションをItem などの内側に配置してください。

レンダリングのパフォーマンス

内部的には、レンダリングされたフレームデータはパフォーマンスを向上させるためにキャッシュされます。QLOTTIE_RENDER_CACHE_SIZE環境変数(デフォルト値は2)を設定することで、メモリ使用量を制御できます。

2つのロギングカテゴリをオンにすることで、レンダリングパフォーマンスを監視できます:

  • qt.lottieqt.lottie.render - アニメーションがどのようにレンダリングされるかの情報を提供します。
  • qt.lottieqt.lottie.render.thread - レンダリングプロセスがどのように進行しているかの情報を提供します。

具体的には、フレームキャッシュが常に一杯になるか、レンダリングプロセスがフレームの準備ができるまで待たなければならないかを監視できます。最初のケースは、アニメーションが複雑すぎて、レンダリングがペースについていけないことを意味します。アニメーションをもっとシンプルにするか、QMLシーンを最適化してみてください。

プロパティ ドキュメント

autoPlay : bool

アニメーションファイルがロードされた後、プレーヤーが自動的にアニメーションの再生を開始するかどうかを定義します。

デフォルト値はtrue です。


direction : enumeration

このプロパティは、レンダリングの方向を保持します。

定数説明
LottieAnimation.Forward順方向 (デフォルト)
LottieAnimation.Reverse逆方向

endFrame : int [read-only]

アニメーションの終了フレーム番号。この値は、アニメーションがロードされ、再生準備が整った後に利用可能です。


frameRate : int

このプロパティは、Lottie アニメーションのフレームレート値を保持します。

frameRate アセットがロードされた後に変更されます。アセットで定義された値が優先されるため、それ以前にフレームレートを変更しても効果はありません。フレームレートを変更するには、次のように記述します:

LottieAnimation {
    source: "animation.json"
    onStatusChanged: {
        if (status === LottieAnimation.Ready)
            frameRate = 60;
    }

loops : int

このプロパティは、プレーヤーが繰り返すループの回数を保持します。値LottieAnimation.Infinite は、プレーヤーがアニメーションを連続して繰り返すことを意味します。

デフォルト値は1 です。


quality : enumeration

Speficies ロッティ・プレーヤーのレンダリング品質を設定します。LowQuality が選択された場合、レンダリングはフレームバッファオブジェクトに行われます。一方、他のオプションでは、レンダリングはQImage に行われます(これは、スクリーン上にレンダリングされます)。

定数説明
LottieAnimation.LowQualityアンチエイリアシングまたはスムーズピックスマップ変換アルゴリズムは使用されません。
LottieAnimation.MediumQualityスムーズなピクセルマップ変換アルゴリズムが使用されるが、アンチエイリアスは使用されない(デフォルト)
LottieAnimation.HighQualityアンチエイリアスと滑らかなピクセルマップ変換アルゴリズムの両方が使用されます。

source : url

LottieAnimation が再生する Lottie アセットのソース。

LottieAnimation は、Qt がサポートする URL スキームであれば何でも扱えます。URL は、絶対 URL でも、コンポーネントの URL からの相対 URL でもかまいません。

source プロパティを設定すると、アニメーションの読み込みが非同期で開始されます。読み込みの進行状況を監視するには、status の変更シグナルに接続します。


startFrame : int [read-only]

アニメーションの開始フレーム番号。この値は、アニメーションがロードされ、再生準備が完了した後に使用できます。


status : enumeration

このプロパティは、LottieAnimation 要素の現在の状態を保持します。

定数説明
LottieAnimation.Nullソースが定義されていない場合に使用される初期値です。
LottieAnimation.Loadingプレーヤーは Lottie ファイルをロード中です。
LottieAnimation.Ready読み込みが正常に終了し、プレーヤがアニメーションを再生する準備ができました。
LottieAnimation.Errorアニメーションのロード中にエラーが発生した

たとえば、アニメーションのロードの進行状況を監視するために、onStatusChanged シグナルハンドラを次のように実装できます:

LottieAnimation {
    source: "animation.json"
    autoPlay: false
    onStatusChanged: {
        if (status === LottieAnimation.Ready)
            start();
    }

シグナルの説明

finished()

このシグナルは、プレーヤが再生を終了したときに発行されます。ループの場合は、最後のループが終了したときにシグナルが発行されます。

注: 対応するハンドラはonFinished です。


メソッドの説明

double getDuration(bool inFrames)

現在再生中のアセットの再生時間を返します。

指定されたinFramestrue の場合、フレーム数で継続時間を返します。それ以外の場合は、秒単位で継続時間を返します。


void gotoAndPlay(int frame)

与えられたframe からアセットを再生します。


bool gotoAndPlay(string frameMarker)

与えられたframeMarker のマーカーを持つフレームからアセットを再生します。frameMarker が見つかった場合はtrue を、そうでない場合はfalse を返します。


void gotoAndStop(int frame)

与えられたframe に再生ヘッドを移動して停止します。


bool gotoAndStop(string frameMarker)

指定されたマーカーに再生ヘッドを移動し、停止します。frameMarker が見つかった場合はtrue を返し、そうでない場合はfalse を返す。


void pause()

再生を一時停止する。


void play()

現在の位置から再生を開始または継続します。


void start()

アニメーションを最初から再生します。


void stop()

再生を停止し、startFrame に戻ります。


void togglePause()

再生状態と一時停止状態の間でプレーヤーのステータスを切り替えます。


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