スクリプトリファレンス(Replicate) - SpriteStudio/SS6PlayerForUnity GitHub Wiki

SS6Player for Unity(以降「SS6PU」)の複製描画(レプリケイト)制御用クラス(Script_SpriteStudio6_Replicate)の機能群のスクリプトリファレンスです。
複製描画制御はVer.1.x系では実装されておりません(Ver.2.0以降)。

複製描画は、「別のアニメーションの描画結果を再表示する」機能であり、(描画オブジェクト自体の複製処理ではないため)複製元が持っているコリジョンなどは処理されない(複製描画によってコリジョンなども別に効果するようなことはありません)ことに注意してください。


再生関連

複製元の設定

関数(動的)

bool OriginalSet(Script_SpriteStudio6_Root instanceOriginal)
bool OriginalSet(Script_SpriteStudio6_RootEffect instanceOriginal)
bool OriginalSet(Script_SpriteStudio6_Sequence instanceOriginal)

引数

  • instanceOriginal : 複製元のコンポーネント

返値

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

解説

現在割り当たっている複製元の設定を変更します。

複製描画を停止する際には、Stop関数を使用してください。
※instanceOriginalをnullにしたりして本関数を呼び出したりしないで下さい。


複製描画の停止

関数(動的)

void Stop()

引数

返値

解説

複製描画を停止します。

同じ複製描画オブジェクトで再度描画動作を行いたい場合、OriginalSet関数を使用してください。


コールバック

Timeline制御コールバック

変数(動的)

Library_SpriteStudio6.CallBack.FunctionTimelineReplicate FunctionTimeline

定義関数型

delegate bool FunctionTimelineReplicate(
        Script_SpriteStudio6_Replicate scriptReplicate,
        KindSituationTimeline situation,
        float timeElapsed,
        double timeLocal
    )

定義関数引数

  • scriptReplicate : 呼出元の複製描画オブジェクト
  • situation : 呼び出されたシチュエーション
  • timeElapsed : 前回呼出からの経過時間(1.0が1秒)
  • timeLocal : タイムライン上で経過した時間(1.0が1秒・開始を0.0とした時の絶対経過時間)

定義関数返値

(なし)

解説

複製描画オブジェクトがTimeline上で制御されている最中に、発生するコールバックの受領関数(デリゲート)を定義します。
このコールバックを使用して、複製描画オブジェクト自体の制御なども行うことが可能です(ただし、あまり込み入った処理を行うことや・Playable Trackクリップとの混用については推奨しかねます。スクリプトからの複雑な制御を行う場合には、Playable Trackを使用した方がTimelineのワークフローに適していると思われます)。

situationによって呼び出された状況を把握することができます。

  • Library_SpriteStudio6.KindSituationTimeline.START
    Timeline上で制御が始まった時に発生します。
    この時のtimeElapsedとtimeLocalはfloat.NaNです。
  • Library_SpriteStudio6.KindSituationTimeline.END
    Timeline上で制御が終了する時に発生します。
    この時のtimeElapsedとtimeLocalはfloat.NaNです。
  • Library_SpriteStudio6.KindSituationTimeline.UPDATE
    Timeline上で制御されている最中に毎処理ループで発生します。

ユーティリティ

複製描画制御クラスの取得

関数(静的)

Script_SpriteStudio6_Replicate ReplicateGet(
        GameObject gameObject,
        bool flagApplySelf=true
    )

引数

  • gameObject : 起点となるGameObject
  • flagApplySelf : gameObject自身を検査に含むか

返値

最初に発見されたScript_SpriteStudio6_Replicateの参照
null ... 失敗(エラー) / 発見できなかった

解説

gameObjectを起点に子のGameObjectを走査して、最初に発見されたシーケンス制御(Script_SpriteStudio6_Replicate)を返します。

注意点としては、「最初に発見された」という点です。
子GameObject群の中に複数のScript_SpriteStudio6_Replicateがあっても、走査ロジック上で最初に見つかったScript_SpriteStudio6_Replicateのみを返します。
また、gameObjectの直下(直子)にあるGameObject群までは「最初に発見された=最も浅い階層にある」ということが保証されますが、孫以上の階層になった場合、「最初に発見された=最も浅い階層にある」ということが保証されなくなります。

flagApplySelfをfalseにすると、gameObject自身は走査対象に含まず、直子のGameObject群から走査を開始します。


その他機能群

強制非表示指定

変数(動的)

bool FlagHideForce

true ... 強制的に非表示にする
false ... 強制非表示を解除する(データに従う)

解説

アニメーションの同名の変数と同じ機能です。
シーケンスは各ステップの内容によってアニメーションを表示するための実体が交換(破棄・生成)が行われる動作ですが、本変数の設定は交換された実体にも都度反映されます。