しゅみぷろ

プログラミングとか

紙をめくるアニメーションをするシェーダー作ってみた

 

f:id:es_program:20160426004321g:plain

めくりたい・・・めくりたくない・・・??

ということで、今回は紙をめくるようなアニメーションするシェーダー書きました!

今作ってるゲームが魔法の本の世界なので、こういったアニメーションが必要でした。 実装でやってることはx,yそれぞれめくった時の座標を計算する関数を作ってめくりを計算するのと、めくられている場所かどうかを判定して少し色を変えるよう処理するくらいです。

使い方は

  • このページで紹介しているシェーダーコードをコピーして、Unity上でシェーダーを作成し、内容を差し替える
  • マテリアルを作成し、上記で作成したシェーダーを適用する
  • マテリアルのTextureには紙の上に表示したい絵を選択する
  • マテリアルのPageTextureには紙の材質(紙本体になるテクスチャ)を指定する
  • AlphaMaskはTextureで透過画像を使用している場合に任意で設定する
  • Flipの値を変更することで紙をめくったり閉じたりする(Animatorとかスクリプト上でこれをアニメーションさせる)

f:id:es_program:20160426004424g:plain

ページめくる感じのアニメーションできるシェーダー

シェーダー内の関数を変更することでめくりはじめる位置やめくり方等変更できるので興味がある方は試してみてください。