SpriteStudio / SS6PlayerForUnity

OPTPiX SpriteStudio 6 Player for Unity http://www.webtech.co.jp/spritestudio/
MIT License
21 stars 8 forks source link

v1.1.0 SS6Playerモードでアニメーションを完全な平面として描画したい #50

Open MasamiYitsuse opened 6 years ago

MasamiYitsuse commented 6 years ago

SpriteStudio6のデータ上で

などを使用している場合、SS6Player for Unity(以下SS6PU)上で再生する際に(各種座標などが3Dで計算されてしまうため)それらの回転が平面のZ座標に影響してしまい、回転などの影響下にあるパーツ(通常・エフェクト・インスタンス・メッシュ)が3次元座標値を持つため、用途によってはニアやファーのクリップに引っかかってしまいアニメーションの一部が描画されない場合があります。

SS6PU Ver.1.0.x系では、この状態を回避するため、回転したパーツがクリップ面に引っかからないようにGameObjectのZ座標を調整する必要がありました。


そういったアニメーションデータの扱いを簡便化するため、SS6PU Ver.1.1.0から 「Script_SpriteStudio6_Root」のインスペクタに「Planarization」(平面化) の描画オプションを追加します。 ※スクリプトからは、Script_SpriteStudio6_Root::FlagPlanarizationをtrueにすると上記インスペクタ上のオプションをチェックしたのと等価になります。

このオプションはパーツを描画する際に「アニメーション全体を一枚の板であるかのように描画する(アニメーション内で生じたZ方向の厚みを無視する)」ための描画オプションです。 このオプションを設定することで、アニメーション編集上などの都合でXY軸回転やZ座標に値を設定したことでZ方向に厚みが生じてしまった(立体状の)アニメーションを、厚みを0に(平面化)して描画できますので、Ver.1.0.x系のようにシーン配置時のZ座標の調整を厳密に行わなくても良くなります。 特にデータ内にX/Y軸回転を持った全画面に近いアニメーションを3Dシーン上に配置する際の調整が楽になるはずです。


ただし、下記の状態においては、3Dオブジェクトとして回転計算されますので、「一枚板が回転する」ことになります(当然、一枚板になったアニメーションオブジェクトがクリップ面に引っかかる現象が起こります)。

また、それ以外に下記のような注意点があります。

これらの仕様については、「アニメーションオブジェクトをビルボードとして3Dシーン上に配置した場合」の扱いや処理負荷なども考慮した結果となりますので、ご注意いただくとともにご理解の程お願いいたします。


本機能は、SS6PU Ver.1.0.x系では(現状のVer.1.0.xに追加する形での)対応の予定はありません。

SS6PU Ver.1.1.0については(デフォームなどの)SpriteStudio6.2で追加・改良された機能への対応を含んで現在開発中で、リリースまではそうお待たせしないと思います。 ですので、Ver.1.1.0をお待ちいただけますようお願い申し上げます。

MasamiYitsuse commented 5 years ago

本機能はVer.1.1.0にて実装済みとなっています。