SpriteStudio / SS5PlayerForUnity

OPTPiX SpriteStudio 5 Player for Unity
http://www.webtech.co.jp/spritestudio/
MIT License
39 stars 15 forks source link

全般 パーツの表示、非表示を制御することは出来ますか? #107

Open WTohno opened 9 years ago

WTohno commented 9 years ago

SS5Player for Unity Ver.1.1.0以降であれば、下記の2種類の方法で行うことが可能です。

インポートしたデータの各パーツの表示・非表示を制御する場合、各GameObjectの元になっているパーツが通常(NULLパーツでもなく、インスタンスパーツでもない)の場合、 ・インスペクタからは「Force-Hide」のチェックボックスを操作する ことで行うことができます(チェック状態で「強制非表示」・非チェック状態で「元のアニメーションの非表示アトリビュートの設定に従う」という動作をします)。

一方、スクリプト上からもリアルタイムで指定することが可能で、該当するパーツのGameObjectについているスクリプトの「HideSetForce」関数を使用することで表示(アニメーションデータに従う)/非表示を設定することが可能です。 本関数をサポートしているスクリプト(クラス名)は下記になります。 ・Script_SpriteStudio_PartsRoot ・Script_SpriteStudio_PartsInstance ・Script_SpriteStudio_Triangle2 ・Script_SpriteStudio_Triangle4

ご注意点としては、インスペクタからもスクリプトからも、 「Script_SpriteStudio_PartsRoot」を強制非表示にした場合は、その子パーツもすべて非表示になります(つまり、アニメーションすべてが非表示になります) 「Script_SpriteStudio_PartsInstance」を強制非表示にした場合は、そのインスタンスパーツが呼び出しているインスタンスアニメーションが全て非表示になります(強制非表示にしたインスタンス内からさらにインスタンスアニメーションを呼び出している場合、その子インスタンスも非表示になります)。

関数の引数については、原則FlagSwitchのみを記載して・残りの2つは省略(デフォルト値)で困ることはないと思いますが、詳細は、各スクリプトのHideSetForce関数の頭に使用法が(Unityのアセットストアの規約上から、英語ではありますが)記載されておりますので、そちらを参照くださいますようお願いいたします。 ※原則、引数3つの内、後ろの2つは特殊な非表示設定を行うためについているのですが、その2つの引数をデフォルト(省略時)以外で使用すると、関数を実行したスクリプトのGameObjectの全ての子GameObjectを走査しますので、多用すると実行時間に負荷を及ぼす可能性があります。 ※一応、日本語での解説は下記URLのドキュメント内に存在しています。 https://github.com/SpriteStudio/SS5PlayerForUnity/wiki/v1.0--%E3%81%8B%E3%82%89--v1.1-%E3%81%B8%E3%81%AE%E7%A7%BB%E8%A1%8C%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB ※この機能がVer.1.1から採用されたこともあり、上での解説とほぼ同じ内容の詳細が本URL内の「アニメーションオブジェクトの強制非表示状態の設定方法の変更について」に記載されております。

その他Rootパーツ(Script_SpriteStudio_PartsRoot)などから行うことができる操作については https://github.com/SpriteStudio/SS5PlayerForUnity/wiki/%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E5%86%8D%E7%94%9F#Control-Animation

などをご参照いただけますと助かります。