rarilog

主にゲーム制作に関することを書いていきます

2014/08/26 : Blender

Blender でゴースを作った

Blender 2.71 で Cycles が Smoke と Fire のレンダリングに対応したので、試しにこれを使って何か作ってみようと思い、ポケモンのゴースを作ってみました。インドぞうを 2 びょうでたおすことに定評のあるガスの部分を Smoke で作っています。

ガスの作り方

Cycles で Smoke をレンダリングする方法については、以下の動画が参考になります。

Smoke の発生源として、ゴースの体と同じ大きさの Sphere を用意します。重力を 0 にし、ゴースの体の中心に乱流を発生させることで、Smoke が全方向に広がるようにします。

重力の値は、Properties → Scene → Gravity で設定します。

乱流を発生させるためには、Force Field の Turbulence を設置します。Turbulence の Strength で風の強さ(≒ Smoke の勢い)を、Smoke Domain の Time で Smoke の寿命(≒ 広がる範囲)を調整します。

Smoke Domain の Material 設定は以下のとおりです。先に挙げた動画で解説されている Node の設定から、Fire 関連のものを抜いた感じです。「Attribute Node を使って density の値を取得できる」ということを知らないと、手探りで設定するのは無理な気がします1

体の Material 設定

Fresnel Node を利用して体のフチの部分を明るくし、ほぼ同色である背景との差別化を図りました。強めの Rim Light を置いても似たような効果を得られますが、強い光はノイズの原因になりがちなので、このような方法を採用しました。

ガスと体の見え方

ゴースのガスはどの視点から見ても常に体の後ろにあり、体がガスに隠れることはありません。このような二次元的な嘘を実現するために、ガスの部分と体の部分を別々にレンダリングし、Z 値を無視して単純に重ねています。

  1. Cycles の Smoke / Fire 対応はまだ “initial support” という段階なので、わかりにくい部分があるのは仕方がないかと思います。将来的には Smoke / Fire Node という専用の Node が実装され、楽に設定できるようになるとのことです (Dev:Ref/Release Notes/2.71/Cycles - BlenderWiki)。