Skip to content

スクリプトリファレンス([Root]アニメーション)

MasamiYitsuse edited this page Aug 30, 2023 · 19 revisions

SS6Player for Unity(以降「SS6PU」)のアニメーション制御用クラス(Script_SpriteStudio6_Root)のアニメーション管理関係の機能群のスクリプトリファレンスです。



アニメーション数の取得

関数(動的)

int CountGetAnimation()

引数

返値

アニメーション数
-1 ... 失敗(エラー)

解説

所有しているアニメーション数を取得します。



アニメーション番号の取得

関数(動的)

int IndexGetAnimation(string name)

引数

  • name : アニメーション名

返値

アニメーション番号 -1 ... 失敗(エラー)

解説

アニメーション名からアニメーション番号を取得します。
アニメーションの再生開始で、必ずこの値が必要になります。

アニメーションのオブジェクト(シーン上の実体に限らず、その元になっているプレハブなど)が同一である限り、アニメーション名とアニメーション番号は静的に一対になっています(元のデータが再インポートなどで変わらない限り、名前に対応したアニメーション番号が変わることはありません)。
そのため、使用する頻度が高いアニメーションの場合、目的のアニメーション番号をキャッシュ(最初に取得して、その値を保持)しておくことを推奨します。

アニメーション番号は、「0 ~ CountGetAnimation-1」の値をとります。



アニメーション再生の開始

関数(動的)

bool AnimationPlay(
        int indexTrack,
        int indexAnimation = -1,
        int timesPlay = -1,
        int frameOffset = int.MinValue,
        float rateTime = float.NaN,
        Library_SpriteStudio6.KindStylePlay style = Library_SpriteStudio6.KindStylePlay.NO_CHANGE,
        string labelRangeStart = null,
        int frameRangeOffsetStart = int.MinValue,
        string labelRangeEnd = null,
        int frameRangeOffsetEnd = int.MaxValue,
        int framePerSecond = 0
    )

引数

  • indexTrack : トラック番号
  • indexAnimation : アニメーション番号
  • timesPlay : 再生回数
  • frameOffset : 再生開始オフセットフレーム
  • rateTime : 再生速度
  • style : 再生スタイル
  • labelRangeStart : 再生区間先頭ラベル
  • frameRangeOffsetStart : 再生区間先頭オフセット
  • labelRangeEnd : 再生区間終端ラベル
  • frameRangeOffsetEnd : 再生区間終端オフセット
  • framePerSecond : 再生FPS(※常に本引数は省略してください)

返値

true ... 成功
false ... 失敗(エラー)

解説

指定したトラックでアニメーションの再生を開始します。
引数の省略記載設定値(引数の後ろに=で書かれている値)は「同じトラックで直前に再生した時の設定のまま」を意味します。

indexTrackに「-1」を設定すると、「現在再生している全てのトラックのアニメーション再生を停止し・トラック0で再生を開始」します。
特に再生トラックが1つしかない場合は、本引数は0もしくは-1で構いません。
indexTrackは、0オリジンのトラック番号で、現状の最大数はCountGetTrack関数で取得可能です(ですので、トラック番号は「0 ~ CountGetTrack-1」の値をとります)。

indexAnimationはIndexGetAnimation関数で取得された0オリジンのアニメーション番号です。

再生区間は「labelRangeStartが示すフレーム+frameRangeOffsetStart」~「labelRangeEndが示すフレーム+frameRangeOffsetEnd」で、ループ時も本区間が適用されます(ただし、指定された開始・終端位置がアニメーションの有効フレーム外の場合、有効フレーム内に修正されます)。
frameStartがアニメーション中に発見できない場合、再生区間の先頭基準位置は指定アニメーションの有効フレーム区間先頭になります。
frameEndがアニメーション中に発見できない場合、再生区間の終端基準位置は指定アニメーションの有効フレーム区間終端になります。
frameOffset~は、再生区間の先頭からのオフセットフレーム数です(ただし、再生区間外のフレームを指定することはできません)。

rateTimeは再生速度の係数(倍率)で、2.0fなら倍速、0.5fなら半分速になります。 また、本値に負数を設定すると逆再生を行います。

timesPlayは「再生回数」で、1を指定するとループしない・0を指定すると無限ループ指定となります。
指定された再生回数を再生終了すると、再生終了時のコールバックが行われます。

styleは、Library_SpriteStudio6.KindStylePlayに定義される再生方法種別で、「NORMAL」なら単方向再生・「PINGPONG」なら往復再生を行います。
本値にPINGPONGを指定した場合、「区間を1往復したら、再生回数1回」とカウントされます。

framePerSecondは再生時の基準FPSを設定できますが、常に省略してください(主にインスタンスアニメーションの内部制御のために設置されている引数です。この引数は予告なく削除される可能性があります)。

本関数は再生できないようなパラメータを与えられた場合(アニメーション番号が不正など)にエラーを返します。



アニメーション再生の停止

※本関数は、Ver.1.0.0から引数の内容が変更になっていますので、注意してください(下記解説はVer.1.0.0以降のものです)。

関数(動的)

void AnimationStop(
        int indexTrack,
        bool flagJumpEnd = false,
        bool flagEngageTransition = false
    )

引数

  • indexTrack : トラック番号
  • flagJumpEnd : 停止後のマスタトラックフレームの扱い
  • flagEngageTransition : 停止時のトランジションの扱い

返値

(なし)

解説

指定トラックのアニメーション再生を停止します。

indexTrackは、0オリジンのトラック番号で、現状の最大数はCountGetTrack関数で取得可能です(ですので、トラック番号は「0 ~ CountGetTrack-1」の値をとります)。

indexTrackに「-1」を設定すると、「全てのトラックのアニメーション再生を停止」します。

flagJumpEndは、「true時はフレームを終端にジャンプさせる」「false時は停止時点フレームのまま」の動作となります(Ver.0.9.5までは、第3引数がスレーブをジャンプさせるかどうかの指定でしたが、仕様変更になりました)。
アニメーションが「インスタンス」アニメーションや「エフェクト」アニメーションを持っている場合、それらのフレーム状況も追従します。
※再生していたアニメーションが有限ループ指定の場合には、残りループ回数を考慮してジャンプします。無限ループ指定の場合には、ループ回数は考慮せず直近の再生区間終了フレームにジャンプします。

flagEngageTransitionは、「トランジションを行っていた場合に、トランジションを終了(キャンセルではありません)させるか」の指定で、「true時はトランジションを終了させる」「false時はトランジションは続行する」の動作となります。
トランジションを終了させた場合、(通常時でのトランジションが満了した時と同様に)スレーブトラックの再生状態がマスタトラックに移動し、マスタトラックの内容が破棄されます。
ただし、スレーブトラックの再生フレームはトランジション終端にジャンプせず・本関数が実行されたフレームのまま、トランジションが終了することになります(この場合マスタトラックは、スレーブトラックの再生状態を引き継いで再生を続行します)。
TrackTransition関数のindexTrackSlaveに-1を与えた状態が「トランジションを無効にした停止(キャンセル)」で、本関数のflagEngageTransitionにtrueを与えた場合が「トランジションを満了した停止(スキップ)」となります。

本値の指定でフレームを終端にジャンプさせた場合、その区間中にあるユーザーデータは検知されません(区間中のユーザーデータのコールバックは行われません)。
同様に、本関数でアニメーションを停止した場合、トランジション終了とトラック再生完了のコールバックおよび、再生完了検知コールバックは行われません。

本関数で再生を停止した場合、停止した状態から再度再生復帰することはできません(そのような停止の場合、原則としてAnimationPauseを使用してください)。



アニメーション再生の一時停止

関数(動的)

bool AnimationPause(
        int indexTrack,
        bool flagSwitch
    )

引数

  • indexTrack : トラック番号
  • flagSwitch : 一時停止状態

返値

true ... 成功
false ... 失敗(エラー)

解説

指定トラックのアニメーション再生を停止します。
再生していないトラックに対して本関数を使用すると、falseを返します。

indexTrackは、0オリジンのトラック番号で、現状の最大数はCountGetTrack関数で取得可能です(ですので、トラック番号は「0 ~ CountGetTrack-1」の値をとります)。

indexTrackに「-1」を設定すると、「全てのトラックのアニメーション再生を停止」します。
その際の返値は「全ての(再生中)トラックへの設定に成功」した時にtrueを返します。

flagSwitchは、「true時は一時停止」「false時は一時停止解除」の動作となります。


Clone this wiki locally