LottieAnimation QML Type

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

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

Item

プロパティ

シグナル

メソッド

詳細説明

LottieAnimation型は、Bodymovin形式のファイルを表示します。

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

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

制限事項の全リストは、制限事項のセクションをご覧ください。

使用例

次の例は、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.bodymovin.render - アニメーションがどのようにレンダリングされるかの情報を提供します。
  • qt.lottieqt.bodymovin.render.thread - レンダリングプロセスがどのように進行しているかの情報を提供します。

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

プロパティ ドキュメント

autoPlay : bool

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

デフォルト値はtrue です。


direction : enumeration

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

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

endFrame : int [read-only]

アニメーションの終了フレーム番号。この値は、アニメーションがロードされ、再生できるようになった後に使用できます。


frameRate : int

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

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

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

loops : int

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

デフォルト値は1 です。


quality : enumeration

Bodymovin プレーヤーのレンダリング品質を設定します。LowQuality が選択された場合、レンダリングはフレームバッファオブジェクトに行われ、他のオプションの場合、レンダリングはQImage に行われます(画面上にレンダリングされます)。

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

source : url

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

LottieAnimation は、Qt がサポートするどの URL スキームも扱うことができます。URL は、絶対 URL でも、コンポーネントの URL からの相対 URL でもかまいません。

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


startFrame : int [read-only]

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


status : enumeration

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

定数説明
LottieAnimation.Nullソースが定義されていない場合に使用される初期値です。
LottieAnimation.Loadingプレイヤーは Bodymovin ファイルをロード中です。
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()

再生状態と一時停止状態を切り替えます。


本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。