原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

スプライトマスク(SpriteMask)を使ってみよう、って話

スプライトマスク(SpriteMask)機能

unity 2017.1からスプライトマスク(SpriteMask)という機能が追加されています。

 

これまでもMaskという機能がありましたが、こちらはImageに対して切り抜きを行うための機能で、SpriteMaskは文字通りSpriteに対してMask処理を行うためのものです。

 

一体、何が違うんだよ!という方には以下の記事に詳しく書かれているので参照してください。

tsubakit1.hateblo.jp

kan-kikuchi.hatenablog.com

で、せっかく機能が追加されたのだから、なにかしらで使ってみたくなるじゃないですか、「せっかくだから俺はこの赤を扉を選ぶぜ」的な気持ちで。

 

なので、このSpriteMaskを使ったちょっとした演出を考えてみました。

 

 スプライトマスク(SpriteMask)の機能

 前述のとおり、SpriteMaskはSpriteに対してMaskを行う機能ですが、独自の特徴として

 切り抜きの範囲をMaskの内側か、外側か、指定できる

という機能を持っています。

 

これまでのMask機能は画像(Image)をMaskの形に切り抜くのみでしたが、SpriteMaskの場合は、逆にSpriteをMaskの形でくり抜く(穴をあける)こともできるようになっています。

 

今回はこの機能を利用して、Maskが動くことで画像(Sprite)が切り替わる、みたいな演出を作ってみたいと思います。

 

スプライトマスク(SpriteMask)を使った演出

まずは同じ形で色違いの画像(Sprite)を用意します。

 

 f:id:Karvan:20180127001620p:plainf:id:Karvan:20180127001728p:plain

 

次に二つのSpriteが重なるように同じ位置に設置し、一つのSpriteに対してMask Interactionの設定を「Visible OutSide Mask」(Maskの外側を表示)に指定

f:id:Karvan:20180127002821p:plain

 

もう一方のSpriteに対しては「Visiblie Inside Mask」(Maskの内側を表示)を指定します。

f:id:Karvan:20180127002844p:plain

 

そして、メニューのGameObject→2D Object→Sprite Maskを指定してSpriteMaskを作成し、Mask用の画像をSpriteに設定します。

 

f:id:Karvan:20180127003520p:plain

 

このSpriteMaskはMaskを掛けたいSpriteと親子関係にする必要はないので、Spriteを動かさずにSpriteMaskだけを動かすことができます。(逆も可能)

 

なので、Tween系の処理でSpriteMaskを適当に動かしてみると・・・

 

f:id:Karvan:20180127004846g:plain

 

こんな感じになります。

 

ちなみに同じ方法でパワーゲージっぽいものも作ることができます。

 

f:id:Karvan:20180127005556g:plain

 

まぁ、地味ながら使えるかな?

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。