【Unity】ゲームエフェクトで必須テクニック1 UVアニメーション
今日は、東京マラソンですね。
運営主も参加したかったのですが、見事に応募時で落選してしまいまして
家でランナーたちを暖かい目で見ているわけです。
さて、Unityの話になりますが
ゲームのエフェクトやローポリゴンの3Dキャラクターのフェイスを
UVアニメーションでよくやります。
ということで3Dの表現をする上ではUVアニメーションは超基本なので
さくっとスクリプトと参考にさせて頂いたサイトなどの紹介をしておこうと思います。
まず、パラパラ漫画のような連番画像ができるように左上から右下へ向けて画像を作成する。
「8,16,32,64,128,256,512,1024.....」ピクセルで作成するのがテクスチャの基本です。
たとえば、256×256ピクセルとかね
JSを作成して
var uvAnimationTileX = 4; var uvAnimationTileY = 4; var framesPerSecond = 10.0; function Update () { var index : int = Time.time * framesPerSecond; index = index % (uvAnimationTileX * uvAnimationTileY); var size = Vector2 (1.0 / uvAnimationTileX, 1.0 / uvAnimationTileY); var uIndex = index % uvAnimationTileX; var vIndex = index / uvAnimationTileX; var offset = Vector2 (uIndex * size.x, 1.0 - size.y - vIndex * size.y); renderer.material.SetTextureOffset ("_MainTex", offset); renderer.material.SetTextureScale ("_MainTex", size); }
変数を「縦:横」何枚の画像で構成しているか記入する。
来年はマラソンに参加したいなあー。