about_experimental_feature - SpriteStudioArchive/SS5PlayerForUnity_v1_2_1 GitHub Wiki

実験機能とは

有用な機能ではあるものの、汎用的な定義が難しく、アプリケーションの要求に応じて柔軟に変更、拡張すべきものとして、 実装のヒントをユーザーに提供するところまでに留めた機能です。

このため、正規の機能とは異なり、正確な動作を保証するものではなく、 また不具合が潜在している可能性があることを了承の上、利用してください。 当該機能の不具合の修正、変更、拡張の要望については基本的にサポート対象外になります。

実験機能(主に関数)には、関数のヘッダに以下の注釈があります。
「Caution!: This Function is in experimentally implement.」

v1.1で提供されている実験機能の詳細

v1.1で提供されている実験機能には下記のものが存在します。

インスタンスオブジェクトのアニメーション番号の変更

対象クラス: Script_SpriteStudio_PartsInstance
対象関数: 
public bool AnimationChangeInstance(int No)

No ... 新規に設定するアニメーション番号

解説:
現在再生されているインスタンスオブジェクトのアニメーション番号
を変更します。

ただし、実用上、正常に差し替えることができるアニメーションには
制限があり、
「差し替える前のアニメーションと、新規に設定されるアニメーション
 とは、データ的な互換性がある」
必要があります。

この場合の「互換性」とは、インスタンス呼出側の「インスタンス」アト
リビュートで設定されている
「ラベル」「ラベルからのオフセットフレーム数」
などを不足なく搭載してあり、それらの設定に矛盾が出ない
ようなデータを指します。

大枠、実用上
・同じフレーム数・FPS
・同じフレーム位置に同名のラベルが振られている
・同じ原点位置
の条件を満たしていれば、大枠(改造なしで)再生可能だと思われます。

実装サンプルやインスペクタへの簡易的な機能追加サンプルとして
Editor/Inspector_SpriteStudio_PartsInstance.cs
内に「#if false~#endif」で無効化してあるコードが記述してあります。
これを有効化すると、簡便的にインスペクタからテストを行うことが
可能になります。

インスタンスオブジェクトの変更

対象クラス: Script_SpriteStudio_PartsInstance
対象関数: 
public bool PrefabChangeInstance(GameObject PrefabNew)

PrefabNew ... 新規に設定するプレハブ

解説:
現在再生されているインスタンスオブジェクトのプレハブを強制的に
変更します。

ただし、実用上、正常に差し替えることができるプレハブには制限があり、
「差し替える前のプレハブと、新規に設定されるプレハブには、互換性が
ある」
必要があります。

この場合の「互換性」とは、AnimationChangeInstance関数の解説にある
互換性に加え、
・同じアニメーション番号が搭載されている必要がある
 (ほぼ、「SSAE内に同じ個数」のアニメーションが入っている必要が
  とお考え下さい)
の条件が加わります。

実用上、「差替元と差替先のSSAEの構成」は
・SSAE内に「同じ目的で同じ名前」のアニメーションデータを持つ
・それらの各アニメーションデータは同じフレーム数・FPS
・それらの各アニメーションデータは同じフレーム位置に同名のラベル
 が振られている
・それらの各アニメーションデータは同じ原点位置で作成されている
の条件を満たしていれば、大枠(改造なしで)再生可能だと思われます。

実装サンプルやインスペクタへの簡易的な機能追加サンプルとして
Editor/Inspector_SpriteStudio_PartsInstance.cs
内に「#if false~#endif」で無効化してあるコードが記述してあります。
これを有効化すると、簡便的にインスペクタからテストを行うことが
可能になります。

また、設定するプレハブは「制御用GameObject(~_Control)」ではなく、
インポート時に「Prefab」フォルダ内に入っている、「SSAEと同名のプレ
ハブ」データを指定してください。