いんでぃーづ

ゲームメインのブレブレブログ。ゲーム,Unity,デザイン,UI/UX

Unity : カードゲームのカード内のキャラを動かす

{スポンサーリンク}

トレーディングカードゲームとかで、カードの中のキャラが動いて必殺技とか繰り出すとかっこいいですよね。

f:id:sugar_affordance:20180515133056g:plain

こんなふうにね。

...がんばればもうちょっとかっこよくできます。

やりかたは意外と簡単で、Anima2D と SpriteMask を組み合わせます。

Anima2D でキャラクターのアニメーションを作る

前回記事参照

indie-du.com

キャラクターは引き続きこちらを使用します

カードの元となるスプライトを作成

シーンにこんな感じでスプライトを配置します。

f:id:sugar_affordance:20180515122128p:plain

MaskSprite がカードの背後を塗りつぶしているスプライトです。
このスプライトに SpriteMask コンポーネントをつけます。

f:id:sugar_affordance:20180515122331p:plain

キャラクターをカードの子にする

f:id:sugar_affordance:20180515132140p:plain

この時点ではキャラクターはカードからはみ出してしまいます。
うまくカードの上に順番で描画されない場合、スプライトの Order in Layer の値を調整してみてください。

f:id:sugar_affordance:20180515132159p:plain

SpriteMask コンポーネントによってマスクの準備はできているので、今度はキャラクターのほうにマスク設定を行います。

Anima2D用のマスクシェーダを作成する

プロジェクトビューで右クリックして Create > Material と選択し、新しくマテリアルを作成します。
作成したマテリアルのシェーダに Anima2D/VisibleInsideMask を選択し、Anima2Dで作成したキャラクターのMaterialに登録します。

f:id:sugar_affordance:20180515132238p:plain

f:id:sugar_affordance:20180515132246p:plain

あとは実行してアニメーションさせてみましょう。
冒頭のサンプルには背後にパーティクルも追加してあります。

Amazon.co.jpアソシエイト