さわぐちFMオキーステーション

幸せの鐘が鳴り響き僕はただ嬉しいふりをする

Shader Graphの超入門レシピ その5~Flipbookノードを使用したテクスチャアニメーション~

前回の内容

amidamangrove.hatenablog.com

テクスチャアニメーション

1枚のテクスチャの座標を切り替えてアニメーションを行います。要するにパラパラ漫画ですね。Shader Graphは「Flipbookノード」を使用する事で実現できます。

素材の準備

今回の素材は「ぴぽや倉庫」様よりお借りいたします。

pipoya.net

記事中では「エフェクト戦闘(基本)」を使用します。

シェーダーの作成

「FlipbookAinmation」という名前でUnlig Graphのシェーダーを作成し、続けてダウンロードした素材からアニメーションで使いたいテクスチャをインポートします。記事内ではカッコよさそうなこのテクスチャを使用します。

f:id:amidaMangrove:20200306003448p:plain

f:id:amidaMangrove:20200306004427p:plain

まずは今回の主役である「Flipbookノード」を追加します。

f:id:amidaMangrove:20200306004539p:plain

入力値 説明
UV 入力UV値
Width 水平タイルの量、横方向の枚数
Height 垂直タイルの量、縦方向の枚数
Tile タイルのインデックス

今回サンプルで使用する画像は、横方向に14枚連なっているのでWidthに14と入力します。一度Sample Texture 2DのUVに繋げてみましょう。

f:id:amidaMangrove:20200306005357p:plain これであとは「Tile」の値を変更すればアニメーションができそうです。ということでアニメーションを行うための「Timeノード」を繋げるのですが、速度を変更する「Multiplyノード」と小数点を切り捨てる「Floorノード」を間に挟みます。

f:id:amidaMangrove:20200306010637p:plain

最後に「Sample Texture 2Dノード」のRGBAをマスターノードのColorへ、A(1)をAlphaにそれぞれ繋ぎます。AlphaClipThresholdは0にしておきます。

f:id:amidaMangrove:20200306011206p:plain

さぁこれで完成...と思ってMain Previewを見ても背景透過されてません。マスターノードで「Opaque(不透明)」か「Transparent(透明)」かを選択できるので「Transparent」に設定しておきます。設定はマスターノードの歯車マーク→Surafaceの項目を変更するだけです。 f:id:amidaMangrove:20200306011509p:plain

ここまで出来上がったら実際にマテリアルを作成して挙動を確認してみましょう。

f:id:amidaMangrove:20200306011854g:plain

アニメーションを逆再生

FlipbookのInvertXにチェックをつけることでインデックスによるタイルの参照が「左→右」だったのが「右→左」に変わります。InvertYの場合は「上→下」が「下→上」になります。

f:id:amidaMangrove:20200306012125p:plain

アニメーションが2段にわかれたテクスチャの場合

例えば以下のように上下に分かれていた場合 f:id:amidaMangrove:20200306012756p:plain

何も考えずにFlipbookのWidthとHeightに値を入れればOKです。この場合Width = 5、Height = 2ですね。ちなみにデフォルトでInvertYにチェックがついているので外しておきます。 f:id:amidaMangrove:20200306013042p:plain

f:id:amidaMangrove:20200306013812g:plain

というわけで本日はここまで!また次回!