LottieAnimation QML Type
Qt用のLottieプレーヤー。詳細...
| Import Statement: | import Qt.labs.lottieqt 1.0 |
プロパティ
- autoPlay : bool
- currentFrame : int
(since 6.12) - 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 型は、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 」です。
currentFrame : int [read-only, since 6.12]
現在表示されているアニメーションのフレーム番号。
このプロパティは Qt 6.12 で導入されました。
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
Lottieプレーヤーのレンダリング品質を指定します。「LowQuality 」が選択されている場合、レンダリングはフレームバッファオブジェクト内で行われますが、その他のオプションでは、QImage 上にレンダリングされます( 上の内容は、最終的に画面に表示されます)。
| 定数 | 説明 |
|---|---|
LottieAnimation.LowQuality | アンチエイリアシングやスムーズなピクマップ変換アルゴリズムは使用されません |
LottieAnimation.MediumQuality | ピクマップのスムーズな変換アルゴリズムは使用されますが、アンチエイリアシングは使用されません(デフォルト)。 |
LottieAnimation.HighQuality | アンチエイリアシングと滑らかなピクマップ変換アルゴリズムの両方が使用される |
source : url
LottieAnimation が再生するLottieアセットのソースです。
LottieAnimation QtがサポートするあらゆるURLスキーマに対応しています。URLは絶対パスでも、コンポーネントのURLを基準とした相対パスでも構いません。
source プロパティを設定すると、アニメーションの読み込みが非同期で開始されます。読み込みの進行状況を監視するには、status の change シグナルに接続してください。
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)
現在再生中のアセットの再生時間を返します。
指定されたinFrames がtrue の場合、戻り値はフレーム数で表された再生時間となります。それ以外の場合は、秒単位の再生時間を返します。
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()
プレーヤーの状態を「再生中」と「一時停止中」の間で切り替えます。
© 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.