テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】SpriteEditorでSpriteが自動生成したポリゴンを削減したり透過部分に穴を開けたり

今回はUnity 5.6に新しく追加されたSpriteEditorのポリゴン調整機能について。

Spriteとポリゴン

Unityはスプライトを表現する際、QUAD(4頂点の板ポリ)ではなくポリゴンに切り抜いたメッシュを使用して表現します。
これは画面の描画時に塗る範囲を可能な限り削減する手法で、描画面積の削減…特に高解像度なモバイル環境下では非常に効果的に機能します。

 

例えば下ではFullRect(QUAD)と透過でくり抜いたSpriteのオーバードローを比較します。オレンジの濃い部分は描画的に無駄な部分です。
Quadで描画した方が、透過でくり抜いた絵よりオレンジの部分が多い事が分かります。

f:id:tsubaki_t1:20161227212624j:plain

f:id:tsubaki_t1:20161227212615j:plain

ただ、一つSpriteの作るポリゴンには不満があります。それは「高解像度な画像は頂点数が増える」という点です。

例えば黒髪の女の子、1920x1280の解像度を持つキャラクターですが、ポリゴン数が578程あります。そのレベルの解像度を描画するならフィルレートとポリゴンのバランスとして悪くは無いのですが、少々多すぎる気もしなくもないです。

f:id:tsubaki_t1:20161227214507j:plain

SpriteEditorでポリゴンを削減

Unity 5.6からSpriteEditorでポリゴンの調整が可能になりました。
SpriteEditorのEdit Outlineから調整が可能です。

f:id:tsubaki_t1:20161227214558j:plain

当初は膨大な頂点があるので、適当に間引き座標を調整して行きます。頂点を範囲選択してDeleteで消せます。全部は消せないので、幾つか適当に残します。
また、頂点と頂点をクリックしてドラッグすれば、新しい頂点を増やす事も出来ます。

f:id:tsubaki_t1:20161227214825g:plain

f:id:tsubaki_t1:20161227214935j:plain

穴を空ける

SpriteEditorでポリゴンに穴を空ける事も出来るようになりました。例えば上記のキャラは腕と腰や肩の隙間があります。ここの描画は勿体無いので、ポリゴンに穴をあけます。

ドラッグで範囲を指定すると、四角い穴が空けられます。後は穴の形を調整すれば、透明の部分をくり抜けます。

f:id:tsubaki_t1:20161227215119g:plain

ちゃんとくり抜くと、頂点数の割に透明な部分を大分減らせます。

f:id:tsubaki_t1:20161227215228j:plain

関連

tsubakit1.hateblo.jp

tsubakit1.hateblo.jp

その他

最近WarRobotsが面白くてブログサボリ気味。ぐむむ

いっその事「盾コサックへの道」でも書こうかしら