このページでは

AnimatedSprite QML Type

スプライトのアニメーションを描画します。詳細...

Import Statement: import QtQuick
Inherits:

Item

プロパティ

信号

方法

詳細説明

AnimatedSpriteは、同一の画像ファイル内に複数のフレームとして格納されたアニメーションのレンダリングと制御を行います。アニメーションは、固定速度で再生したり、ディスプレイのフレームレートに合わせて再生したり、手動で進めて進行状況を制御したりすることができます。

次のスプライトシートを例に考えてみましょう:

徐々に現れる青い点を示す4つのフレームを含むスプライトシート

これは4つのフレームに分割できます:

境界線がはっきりと見える4つのフレームに分割されたスプライトシート

これらの各フレームを1フレームあたり500ミリ秒の速度で再生するには、次のコードを使用できます:

コード結果
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
}

デフォルトでは、アニメーションをより滑らかに見せるために、フレーム間の補間(ブレンド)が行われます。これを無効にするには、interpolate をfalse に設定します:

コード結果
AnimatedSprite {
    source: "loading.png"
    frameWidth: 64
    frameHeight: 64
    frameCount: 4
    frameDuration: 500
    interpolate: false
}

フレーム補間なしで読み込みアニメーションが再生される

AnimatedSpriteが拡大・縮小された際の挙動を制御するには、smooth プロパティを使用します。

なお、SpriteSequence とは異なり、AnimatedSprite型はSprite を使用して複数のアニメーションを定義するのではなく、単一のアニメーション自体をカプセル化しています。

「Sprite アニメーション」も参照してください 。

プロパティのドキュメント

currentFrame : int

一時停止中は、このプロパティを設定するか、advance() を呼び出すことで、現在のフレームを手動で進めることができます。

finishBehavior : enumeration

アニメーションが自然に終了した際の挙動。

定数説明
FinishAtInitialFrameアニメーションが終了すると、最初のフレームに戻ります。これがデフォルトの動作です。
FinishAtFinalFrameアニメーションが終了すると、最終フレームのままになります。

frameCount : int

このAnimatedSprite に含まれるフレーム数。

frameDuration : int

アニメーションの各フレームの持続時間(ミリ秒単位)。0 以下の値は無効です。

frameRate が有効な値である場合、フレームの持続時間の計算にこの値が使用されます。そうでない場合、かつframeDurationが有効な値である場合は、frameDuration が使用されます。

このパラメータを変更すると、アニメーションが再起動します。

frameHeight : int

このAnimatedSprite ファイル内の1フレームの高さ。

ファイル内にこのスプライトが1つしかない場合は、省略可能です。

frameRate : real

アニメーションで表示する1秒あたりのフレーム数。0 以下の値は無効です。

frameRate が有効な場合、その値を使用してフレームの持続時間が計算されます。有効でない場合、かつframeDuration が有効であれば、frameDuration が使用されます。

このパラメータを変更すると、アニメーションが再起動します。

frameSync : bool

true に設定すると、アニメーションの持続時間はなくなります。その代わり、画面にフレームがレンダリングされるたびに、アニメーションが1フレームずつ進みます。これにより、経過時間ではなく描画レートに合わせてアニメーションが同期されます。

frameSyncがtrueに設定されている場合、frameRate とframeDuration の両方が上書きされます。

デフォルトは `false` です。

このパラメータを変更すると、アニメーションが再起動します。

frameWidth : int

このAnimatedSprite 内の1フレームの幅。

ファイル内にこのスプライトが1つしかない場合は、省略可能です。

frameX : int

AnimatedSprite の最初のフレームの画像ファイルにおけるX座標。

最初のフレームがファイルの左上隅から始まる場合は、省略可能です。

frameY : int

AnimatedSprite の最初のフレームの画像ファイルにおけるY座標。

最初のフレームがファイルの左上隅から始まる場合は、省略可能です。

interpolate : bool

true の場合、アニメーションをより滑らかに見せるために、スプライトフレーム間で補間が行われます。

デフォルトは true です。

loops : int

アニメーションをこの回数再生すると、アニメーションは自動的に停止します。負の値は無効です。

これをAnimatedSprite.Infinite に設定すると、アニメーションは自動的に停止しなくなります。

デフォルトはAnimatedSprite.Infinite

paused : bool

一時停止中は、現在のフレームを手動で進めることができます。

デフォルトはfalse です。

reverse : bool

true の場合、アニメーションは逆再生されます。

デフォルトは `false` です。

running : bool

スプライトがアニメーション中かどうか。

デフォルトは true です

source : url

アニメーションの画像ソース。

frameHeight およびframeWidth が指定されていない場合、正方形のフレームが1つの長い行に並んでいるものとみなされます。それ以外の場合は、複数の連続した行または長方形のフレームが可能であり、1つの行が尽きた場合は次の行が使用されます。

frameX およびframeY が指定された場合、その x/y 座標を左上隅として、フレームの行が取得されます。

Signal ドキュメント

finished()

このシグナルは、スプライトのアニメーションが終了したときに発火します。

`running`がfalse に設定されている場合や、loops プロパティがAnimatedSprite.Infinite に設定されているスプライトに対しては、このシグナルは発火しません。

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

メソッドのドキュメント

void advance(int frames = 1)

スプライトのアニメーションを、指定されたframes 分だけ進めます。

void pause()

スプライトのアニメーションを一時停止します。paused がtrue の場合、この処理は何も行いません。

resume()も参照してください 。

void restart()

スプライトのアニメーションを一時停止し、その後再開します。

void resume()

paused がtrue の場合、スプライトのアニメーションを再開します。それ以外の場合は、何もしません。

pause()も参照してください 。

void start()

スプライトのアニメーションを開始します。アニメーションがすでに実行中の場合、このメソッドを呼び出しても何の効果もありません。

stop()も参照してください 。

void stop()

スプライトのアニメーションを停止します。アニメーションが実行されていない場合、このメソッドを呼び出しても何の効果もありません。

start()も参照してください 。

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