LottieAnimation QML Type
Qt 用 Bodymovin プレイヤー。詳細...
Import Statement: | import Qt.labs.lottieqt 1.0 |
Inherits: |
プロパティ
- autoPlay : bool
- direction : enumeration
- endFrame : int
- frameRate : int
- loops : int
- quality : enumeration
- source : url
- startFrame : int
- status : enumeration
シグナル
- finished()
メソッド
- double getDuration(bool inFrames)
- void gotoAndPlay(int frame)
- bool gotoAndPlay(string frameMarker)
- void gotoAndStop(int frame)
- bool gotoAndStop(string frameMarker)
- void pause()
- void play()
- void start()
- void stop()
- void togglePause()
詳細説明
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 |
アニメーションの終了フレーム番号。この値は、アニメーションがロードされ、再生できるようになった後に使用できます。
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 |
アニメーションの開始フレーム番号。この値は、アニメーションがロードされ、再生準備が完了した後に使用できます。
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
です。
メソッドの説明
現在再生中のアセットの再生時間を返します。
指定されたinFrames がtrue
の場合、フレーム数で継続時間を返します。それ以外の場合は、秒単位で継続時間を返します。
void gotoAndPlay(int frame) |
与えられたframe からアセットを再生します。
与えられたframeMarker のマーカーを持つフレームからアセットを再生します。frameMarker が見つかった場合はtrue
を、そうでない場合はfalse
を返します。
void gotoAndStop(int frame) |
与えられたframe に再生ヘッドを移動して停止します。
指定されたマーカーに再生ヘッドを移動し、停止します。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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。