テラシュールブログ

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

Sprite

【Unity】Polygon Collier 2Dの頂点を調整する

今回は2DのPolygon Collier 2Dの頂点を調整する方法についてです。左の絵が右のようにスッキリします。 Polygon Collier 2Dの頂点は解像度で決まる 判定を調整したくなるケース コライダーを調整する Polygon Collier 2DのEdit Collier Edit Physics Shape …

【Unity】SpriteMaskでSpriteにマスクを掛ける演出が色々と面白い

Unity 2017.1より追加されたSpriteMaskの機能が意外と面白いので、少しメモします。 SpriteMask 操作方法 壁に穴を開ける Spriteの消滅演出をSpriteMaskで 実はパーティクルのマスクも出来る 関連 SpriteMask SpriteMaskはSpriteを利用してSpriteRendererに…

【Unity】パーティクルのテクスチャアニメーションをSpriteで行う

今回はUnity 2017.1で搭載された「Particle Animation」のスプライト版についてです。 Spriteのパーティクルアニメーション 細かいパーティクルの順番制御が可能に オーバードローの抑制 設定方法 関連 Spriteのパーティクルアニメーション Unity 2017.1より…

【Unity】Unity 2017の新しいスプライトをパッキングする仕組み、”SpriteAtlas”について

Unity 2017でSpritepackerの仕組みが新しくなったみたいです。 新しいパッキングの仕組み、SpriteAtlas パッキングの単位はフォルダ・テクスチャ・スプライト 圧縮フォーマットはSpriteAtlasで一括指定 SpritePackerはLegacy扱い パッキングしたAtlasの運用 …

【Unity】スプライトの描画順を「下にある物を手前」にする

今回はUnity 5.6から追加されたTransparency Sort Modeを使って「スプライトの描画順を下にある物を優先」にします。 Spriteの描画順 下にあるスプライトを手前に描画 縦に長い物体の問題 解決:Z軸で描画順を調整する 複数のスプライトを合わせて表現してい…

【Unity】Spriteで9 Sliceを使う

今回はUnity 5.6から可能になったSpriteでの9 Sliceについて紹介します。 Unity 5.6から搭載された 9 Slice(スプライト向け) 9 Sliceって? 9 Sliceを使ってみる スプライトの用意 タイリング(Tiled) TiledのTile Mode TiledとSlicedの違い Colliderの大…

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

今回はUnity 5.6に新しく追加されたSpriteEditorのポリゴン調整機能について。 Spriteとポリゴン SpriteEditorでポリゴンを削減 穴を空ける 関連 その他 Spriteとポリゴン Unityはスプライトを表現する際、QUAD(4頂点の板ポリ)ではなくポリゴンに切り抜い…

【Unity】uGUIのImageとSprite Rendererの使い分け

今回はuGUIのImageとSprite Rendererの使い分けについてメモします。 ImageとSprite Renderer Sprite Rendererの振る舞い uGUI Imageの振る舞い 最適化に関するアプローチの違い SetPassの削減に関する振る舞いの比較 フィルレート・オーバードロー削減に関…

【Unity】アプリに含めるアセットを抑えて、アプリサイズを小さくする

今回は、Unityプロジェクトからアプリケーションをビルドした際、Unityプロジェクトに含まれるアセットについてです。 Assets以下のアセットは全て含まれる訳ではない Resourcesフォルダ以下のアセット Resourcesは使わないサブアセットも全て含める Sprite…

【Unity】RenderTextureをTexture2DにしてSpriteに使用する

以前RenderTextureにテクスチャをバックバッファとして展開し、Spriteとして使用することでSetPassを抑えて使用する方法に聞かれたので、一応ココに書いておきます。 結論としては、別にSpriteとして使用しなくても良いよねって話です。内容としては、ココか…

【Unity】ノベルゲームの立ち絵表現で、キャラクターの表情だけ切り替えて、メモリとロード時間を節約する

ついにユニティちゃんの立ち絵素材が公開されましたよ。超可愛いユニティちゃんとユーコちゃん*1、あとミサキちゃんの立ち絵が使えるようになった!ヤッタネ☆ さらに嬉しい事に解像度は1620×2048と非常に高解像度で、キャラクター全体像をのイメージが使用さ…

【Unity】SpritePackerとResourcesについて

昨日はSpritepackerとAssetBundleについて書きましたが、今日はSpritePackerとResourcesについて書こうと思います。 tsubakit1.hateblo.jp SpritePackerとResourcesについて ResourcesからSpritepackerのテクスチャアトラスを使う 関連 SpritePackerとResour…

【Unity】SpritePackerとAssetBundleについて

今回はSpritePackerとAssetBundleの挙動について少しメモします。 SpritePackerとAssetBundleといふ便利機能 SpritePackerでパックしたテクスチャアトラスはAssetBundleに自動的に組み込まれる SpritePackerでパックしたテクスチャアトラスの部分組込は出来…

【Unity】uGUIでスプライトアニメーションするには

uGUIでスプライトアニメーションを行う方法についてです。難しい事は全くないのですが、気づかないと分からないかもしれないので、一応ここに書いておきます。 下のGIFはキャラクターアニメーションをuGUIで行って居るので影付けたりアウトライン付けたり、…

【Unity】ステンシルバッファを使った2D面白表現を色々と試す

ステンシルバッファをUnityで利用した表現で、面白かった2D的な表現について書いてみようと思います。 ステンシルバッファとは? ステンシルバッファで色々と試す 壁の向こうにいるキャラクターのシルエットを表現 2Dマスク ImageEffectがかからないスプラ…

【Unity】AssetBundleからMultiple Spriteに含まれるスプライトを取得する方法とその周辺

今回はAssetBundleの中に格納したMultiple Spriteから特定のスプライトを取得する方法と、その挙動についてです。 Multiple Spriteの取得方法について AssetBundle.LoadAllAssetsでは駄目 AssetBundle.LoadAssetWithSubAssets 不要なスプライトの破棄 特定の…

【Unity】uGUIのシェーダーを改造してシェーダーを練習…のススメ

目次 目次 シェーダーの用意 シェーダーのカスタマイズの準備 シェーダーの改造(色を変える) パラメータをシェーダーの外から設定する その他 関連 シェーダーの用意 まずはuGUI用のシェーダーを用意します。 UnityのビルトインシェーダーはUnityのダウン…

Unityの2DやuGUIのパフォーマンス最適化についての7つのTips

最適化というか、改善する話です。 モバイル向けに作った時に妙に遅かった場合、この辺りの要因が絡んでいるケースが多い印象です。この辺りは作る際に確認しながら作ると、後々痛みが少なくて良いかなと思います。 目次 目次 プロファイラで確認する エディ…

UnityのuGUIとImageとSpriteとスライスについて

uGUIのスライスは覚えておくと便利な機能です。 今回はコレを作ろうと思いましたが、スライス部分が予想以上に色々と出来たので分割します。コレの作り方は次回。 目次 目次 スライスする方法 大きさを調整する 真ん中を塗りつぶさないでフィルレートを節約…

UnityのSpriteとパーティクルとかモデルの描画順番について

Unityのスプライトの描画順は「SortingLayer、Order In Layer、Z値」の順番で設定します。 このSortingLayerですが、実はLineRendererやParticleRenderer、Trail RendererといったSpriteRenderer以外にも適応されます。正しくは透明やブレンドを利用するレン…

Resourcesフォルダからパック済みSpriteを取得する際、文字列検索ではなくenumで呼び出したい

Resourcesからスプライトを取得する際、普通はいかのように入手する必要があります。これは、単純にパック済みスプライトの一つを抜き出すことが出来ないためです*1。取り方は以下のとおり。 // [Unity] Resourcesに配置したパック済みのSpriteを取得する Re…

Spriteをランタイムに生成する

[Unity]ResourcesからスライスしたSpriteを取得する3つの方法で紹介したが、もう少し詳しく書いておこうと思う。 Sprite.Createでは、単純に4つの引数を使用する。・texture:スプライトとして抽出する元のテクスチャ ・rect:テクスチャのUV(x,y)とスプライ…

ResourcesからスライスしたSpriteを取得する3つの方法

単純なSingleSpriteならばResources.Load(fileName)でロード出来る。ただし、これをMultiple(スライスしたスプライト)に実行すると、一番上のスプライトがロードされてしまう。このスライス済みスプライトについては、Resources.LoadAllで一旦全部取得して…

TexturePackerで一つにまとめたテクスチャをUnity 2Dのスプライトで使う

[Unity]Unity2d機能、スプライトの使い方先日書いた記事で、正直Automaticは使いにくいので、手動で設定するかGridの二択になると思う。packerで作ったjsonを食わせてsliceするアセットの登場が待たれる。ということで、TexturePackerでパッキングしたテクス…

Unity2d機能、スプライトの使い方

2D機能の使い方について、もう少し詳しく記載しようと思う。まずはSceneビューを2Dモードに切り替える。Sceneビューに新しく2Dのボタンがあるので、それを押すと2Dモードのような感じになる。スプライトの作り方2Dを使う方法は簡単だ。画像の設定を「sprite…