スーパー空箱

ノンプログラマーの開発日誌や雑記

【Blender】UVスクロールエフェクト用モデルをつくる

ゲームエフェクト勉強会に参加してきました。

そこでドーナツ型のモデルにUVスクロールさせたエフェクトを紹介されていたので、モデルをつくってみましたが、かなり苦戦したので備忘録としても書き留めておく。

togetter.com

 

ツールBlenderを使います。

f:id:ponkotsu0:20150723134801j:plain

planeを配置し、UVを展開します。"ドーナツ状に成形する前にUVを展開する"のがポイントです。理由は後述。

f:id:ponkotsu0:20150723134731j:plain

次に、モディファイアのArrayを使い、Countを20にします(20じゃなくても大丈夫ですが、ここの数値が後にUVの歪みを左右するポイントのひとつです)

f:id:ponkotsu0:20150723135117j:plain

モディファイアのSimpleDeformを使い、黒いタブを"Bend"に、Deformを"360"にするとドーナツ状になります。最初は↑画像よりも輪が大きい状態だと思いますが、モデル自体を移動すると穴が縮まります。

このとき気を付けるのは、Arrayモディファイアの"Marge"にチェックを入れておくことです。これをやっておかないとモディファイアをApplyした後に重なった頂点が結合されず、分割面でバラバラの状態になります。

両モディファイアをApplyしたら気を付けることは、Margeにチェックをしていても一辺だけは頂点が結合されていないので、手動で行ってください。

f:id:ponkotsu0:20150723140025j:plain

この後、UVをみてみると分割面の数だけ重なった状態になっています。

そして各面のUVを細長くして、モデルの面と同じ順番で並ばせます。

f:id:ponkotsu0:20150723135641j:plain

この作業が一番手間です。私はまず順番がわかるようにバラバラに並べて、Shift + Tabで他頂点にスナッピングしてきれいに並ぶようにしてますが、もっと楽な方法があればご教授いただきたいです。

UVを並ばせたら、内と外の円以外のエッジを選択し、Ctrl + E ⇒ Subdivideで、左下に表示されるパネルで分割数を決めます。

f:id:ponkotsu0:20150723140512g:plain

ここが一番のポイントです。画像のように細長い線状のテクスチャを使う場合、モデルの密度が歪みを大きく左右します。密度が高いほどテクスチャもちゃんとまっすぐになります。今回の苦戦はこのことを理解していなかったためでした。

今回は線状のテクスチャを使いましたが、まだら模様など指向性のないテクスチャであれば、むしろ歪みがいい塩梅になったりすることもあるので、密度はテクスチャに合わせるのがいいでしょう。

最後に、内側と外側の円を頂点カラーで黒く塗って、エフェクトにしたときにフチがはっきりとでないようにしてモデルは完成です。

f:id:ponkotsu0:20150723141116g:plain

Unityでモデルを使ってアニメーションさせました。

左が密度の高いモデル、右が低いモデルです。テクスチャは同じなので、線の歪みがわかりやすいと思います。

これを覚えると表現の幅もぐんと広がるので、エフェクト作りが捗りますね。