SpriteStudio / SS5PlayerForUnity

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

v1.3.x NGUIとの共存する方法について #179

Open DKAlpha opened 8 years ago

DKAlpha commented 8 years ago

ver1.2の時にはSS,NGUI,SSの様な順番で描画するときにRenderQueue OffsetでRenderQueueの値を設定し上手く描画順をコントロールし、NGUIを挟み込むことが出来たのですが、ver1.3になり、RenderQueue Offsetの設定が効かなくなり、ShaderとしてはRenderQueueが3000に固定され、SS,NGUI,SSの様な描画順にしたい場合にどうしたらいいか分かりません。 最前面のSSを別カメラで描画すれば出来るとは思うのですが、カメラ1つで以前のようにRenderQueueを変えて描画順をコントロールすることは出来ないのでしょうか? もしくは何か別の方法はありますでしょうか? よろしくお願いいたします。

DKAlpha commented 8 years ago

NGUI等との描画順序については、(現状仕様で)Ver.1.3からはカメラとレイヤーの制御で行う形に変更になっております。 例えば、「SS,NGUI,SS」の順でプライオリティを重ねる場合、

・カメラを3つ用意し・それぞれのDepthの設定で、正しい描画順になるように設定します

・同時にレイヤーも3つ用意します(従来からだと、NGUIの上に来るためのレイヤーを1つ追加で用意します)。

・NGUIの下と上にくる、それぞれのView(Script_SpriteStudio_ManagerDraw)を設置して、処理レイヤーとカメラを設定します。

・各アニメーションオブジェクトのViewに対して、適切なViewと処理レイヤーを設定します。

……現状Ver.1.3ではこの方法で、NGUI等との描画プライオリティを制御する形になっております。 仰られる通り、RenderQueueでの描画値の設定については、Ver.1.3で廃止になっております(現状インスペクタを廃止していない理由については、(GitHub上のWikiにも記述がありますが)今後での本機能が復活しなくてはならない場合の予備となっております。

Ver.1.3においては、各アニメーションオブジェクトに対して、(バッチングされるための)Viewの設定・及び処理レイヤーの設定をきちんと行うことで、シーン中の各GameObjectの親子関係は保ったまま、特定のオブジェクトを別のレイヤーで処理・描画したり、バッチング先のViewを変更したりすることが可能になっております。 そういった(Ver.1.2までとの)仕様差が生じておりますこと、付記させていただきます。

1.3での実装について、皆様から応援をいただき、Unity+SS5で使用してくださっている方々が増えてくると共に、Ver.1.2までの頃とはご要望などが変化してきたことがございます。 それらの中で、 「シーンの構築方法の制限(シーン上の各種親子関係などの制限)」 「描画アセット間でのプライオリティの制御」 に類するご要望などの反映と今後を考慮した際に、 できるだけ「SS5PU故の特殊性を廃して・Unityの素の仕様での使い方に寄せる」方が良いだろう ……と考えたところがございます。 ※実はVer.1.3では、同時に、描画マネージャ(View)を廃止しようとの案もあったのですが、こちらについては、(Unity4.x系のユーザーの皆様もまだいらっしゃることもあり・ドローコール等の問題もあるため)Ver.1.3では見送りになっております。 ※将来のメジャーバージョンアップのどこかで、描画マネージャを廃して、通常のサブメッシュを持った3Dモデルなどと同様に扱えるように仕様の変更が入る可能性もあります。

Ver.1.2までの方法が使用できなくなったことについて、心からお詫び申し上げますと共に、何卒今後とも宜しくお願い致します。

MasamiYitsuse commented 8 years ago

上記に対しての関連項目として

177

がありますので、そちらも参照いただけますと助かります。