« May 2011 | Main | July 2011 »

June 28, 2011

Blenderのボリュームライトの実験

そろそろ2.5xにも慣れておかないとなぁと思っていたら、丁度2.58が公開されたというので、ダウンロードし、ボリュームライトの実験をしてみました。

Blender's Volume Light Test /http://youtu.be/N_97Aiu6uJI

上掲動画に使っているモデリングデータファイルはひとつにまとめて以下にアップしました。

VolumeLighttest.zip for Blender 2.58

↑Blender2.58用モデリングデータファイルです。(まあ2.57とかも大丈夫かと思いますが)
リンクをクリックするとダウンロードできます。


Volumelighttest03

Blenderのボリュームライトは制約もありますが、使いやすくて良いですね。

ボリュームライトの使い方
・使えるライトはスポットライトのみ
・BufferShadowを使用
・Haloをオン
・Haloの下にあるIntensityでHaloの強さを変えられる
・ボリュームライト内の筋をひく影(ハロ筋)を出す場合はIntensityの下のStepを0以外に。(1が品質が最も良いらしい)
・Show Coneをチェックすると3DView上でスポットが当たる範囲が確認しやすくなる

Volumelighttest05

↑今回気になってテストしたのはボリュームライトが床に落とす影や光の中の影の筋(以下筋影)がアルファマップで抜いた板ポリゴンに対応しているかという点ですが、ボリュームライトが使えるのはBufferShadowのみなので、やはり反映はされないようですね。
板ポリゴンをアルファチャンネルで抜いた窓の鉄格子?が床に落とす影も筋影もできません。
(ただし、自分が色々試した以外で何か設定方法があるかもしれないので、自信は無いです(^^;)

Volumelighttest05b

↑参考までにレイトレ用のランプをボリュームライトに重ねて、無理やりアルファチャンネルで抜いた縦のストライプ鉄格子?の影を床に落としたものも作ってみました。
結局、ボリュームライトを使う場合は、素直に形状を作るのが一番良いようです。

次にHairを使ったら筋影ができるかどうかも試してみました。

Vlight_hair01anime02

↑まず、Strand Renderを使わないでテスト。
筋影も綺麗に出ているようです。

Vlight_hair01anime02_strand

↑はStrand Renderを使ったほう。
かなり薄いですが、やはり筋影はちゃんと描写されているようです。

注意点としては影が細かくなるのでバッファシャドウはできるだけsample値を上げたほうが良いといったところでしょうか。

最後にMistとの相性を見るために簡単な森を作って試してみましたが、なかなか相性は良いようですね。


Forestb0001anime05

それにしても2.5は2.49bにある程度慣れてしまうと、あれはどこ?これは2.5だとどうやったらできるの?と、機能の場所や方法探しに手間取って結構ストレスたまるなぁ・・・まあ結局は慣れの問題なんでしょうが・・・

あと、ThinkPad X200でレンダリング先を新しいウインドウにすると100%速攻で落ちるのはいつか直るといいなぁ・・・(-人-)

| | Comments (0)

June 26, 2011

Blenderで森

前回作った雑草を使って森(林?)みたいなものを作ってみました。
Blender's Forest http://youtu.be/ImU3BYlI8ac

↑なんかYoutubeにアップしたら動画全体が妙に暗くなっちゃったなぁ・・・(´・ω・`)
まわりが白ばっかりになっちゃったせいもありそうだけど。
フルスクリーンモードで再生すると暗さが多少緩和されるみたいです。

前半の日中の森は雑草を全てそのままメッシュ化して作成。
レンダリングにはそれなりに時間がかかりますが、i7マシンで一枚あたり26秒前後(512x288)と、モーションブラーもかけられる程度には実用範囲かと思いました。
もちろん、メッシュ化しないと、Hairの計算から始まるのでレンダリングにとてつもなく時間がかかります(^^;

Scr1

後半の夜の森はレンダリング時間を短くするためにカメラが通過する周辺にメッシュ化した雑草を配置、そのまわりは板ポリゴンに雑草をレンダリングした画像を貼り付け、カメラの後方に配置したEmptyを向くようにトラッキングしています。
(カメラに直にトラッキングすると、カメラに当たる位置までくると板ポリがよけるように曲がるので)
レンダリング時間はi7で512x288で一枚あたり1~3秒程度です。
また、地面に落ちる影もShadowを予めBakeしたものをUVで貼り付けてみました。
GPUレンダリングCyclesなどが正規に実装されれば、こうしたレンダリングコスト関係の仕掛け自体無用になりそうですが・・・w

Scr2


以下、今回のモデリングデータです。
日中の森(DaytimeForest~)については迂闊にもメッシュ化した雑草をリンクコピー(Alt+D)を使わずに複製してしまったので、データがとても大きくなってしまいました。
Compressしても30M前後あります(^^;ので、ファイルを分けました。
夜の森は軽いです。


日中の森
DaytimeForest_for_249b.zip for Blender 2.49b (30M)
DaytimeForest_for_257b.zip for Blender2.57b (30M)

夜の森
NightForest_for_249b.zip for Blender 2.49b (7M)
NightForest_for_257b.zip for Blender2.57b (5M)

| | Comments (4)

June 22, 2011

Hairで雑草を作る

BlenderのHairで雑草を作ってみました。

Weeds

weeds.zip for Blender 2.49b&2.57b

↑下の動画冒頭の雑草をまとめたBlender2.49b/2.57b用モデリングデータファイルです。
  リンクをクリックするとダウンロードできます。
※最初にアップしたデータに不具合があったようなので、修正したものを上書きアップしました。(18:40頃)
もし落としたデータでテクスチャが反映されなかったりした場合はお手数ですが、再度ダウンロードしてみてください。

Hairを使うと結構バリエーションが作りやすくて面白いですね。
上の画像の雑草は同じテクスチャ、同じオブジェクトからパラメータをちょこっと変えたりするだけでできてます。

調子に乗ってチュートリアル動画を作ってみましたが・・・疲れた・・・orz
落としたデータを使うだけならその3見るだけでもいいかもです:-)

てなわけで詳しくは動画で・・・(_ _)
あ、そうそう、動画で強調し忘れたんですが、葉や茎は原点(0,0,0)で作業するのがポイントです。
(原点にプレーンなどのオブジェクトを追加するためには、オブジェクトモードで直前にShift+C)

茎と葉のプレーンの中心(オリジン)がずれていると、葉を生やす時に散乱した感じになったりして修正がちょっと面倒になります。(^-^;)


その1 葉を作る http://www.youtube.com/watch?v=UZHxb1QID6U

その2 茎から葉を生やすhttp://www.youtube.com/watch?v=WWppT6Ex1xM

その3 簡単にバリエーションを作るhttp://www.youtube.com/watch?v=6ocS287OG0k

なお、BMGはフリー音楽素材を公開されている下記サイトさんの作品を使わせていただきました。
この場を借りて御礼申し上げます。

フリー音楽素材H/MIX GALLERY
http://www.hmix.net/
【作曲・著作権者】 秋山裕和さん

| | Comments (4)

June 14, 2011

3D画面上で簡易に操作できるカメラ

3D画面上で簡易にズームやバンク(左右に傾ける)操作ができるカメラを作ってみました。

vsmoke

myCamera.zip for Blender 2.49b/2.57b

↑上掲動画のBlender2.49b/2.57b用モデリングデータファイルです。
  リンクをクリックするとダウンロードできます。

Blender2.49b用と2.57用とカメラのテストデータ(↓の動画)が入っています。

使い方は上掲の動画を見てもらえばわかると思いますが、アイコンのようなオブジェクトの位置を移動させることで手軽にズームやパン、ドリー、バンク等の操作ができます。

Customcamera

CameraTarget(注視点):注視点を移動します。カメラがそれに追随して動きます
Dolly(ドリー):カメラを注視点と同時に移動します
Zoom(ズーム):Y軸方向に動かすと視野角が変化します
Bank(バンク):Z軸方向に動かすと左右にカメラが傾きます
Camera (カメラ):注視点に向いたまま移動
Lights (ライト):フロント、トップ、バックの3つのライトを同時に移動します

通常は目的のアイコンを軽く右ドラッグで動かしてからすぐに右ボタンを離し、そのまま上下左右に適当に移動、カメラ画面を見て丁度よい構図になったら左クリックで決定するというのが使いやすいと思います。
この方法ならモデリング中、一時的に視点を変えて様子を見たいときなどに、右クリックしてもとの視点に戻すこともできますし、2.49bなら決定前にホイールを操作して作業画面のズーミングもできます。
(↓のバンクの件もそうですが、2.57bはカメラや3D画面まわりの操作について微妙に自由度が下がっているなぁ・・・(--;))

注意点として、2.49bと2.57b用のバンクの挙動が違っています。
2.57bではキーを打ち込んで動画にする際、バンクはうまく動きません。

というのも、2.49bにはトラッキング手法にOld Trackというのがあり、これは素直な挙動で、別オブジェクトの位置の変移をドライバにして思ったようにバンクをかけられるのですが、2.57bではこのOld Trackが見当たりません。
代わりにこれに似たDamp Trackというのがあるのですが、これは位置を変えただけで勝手にバンクしてしまうので、静止画やモデリング時には良いのですが、動画にするとカメラの動きが滅茶苦茶になってしまいます。

Track toの場合はウォークスルーなどに使いやすいように、バンクができない仕様になっているようですし、軸を固定するLocked Toも今回のケースでは使えないようです。

2.49bならこのカメラで↓のような動画も簡単にできるのですが、2.57bではかなり難しいので従来通りのフォローパスでやるほうが簡単そうです。

vsmoke
↑cameratest_for_249b.blend

2.5xではなぜOld Trackが無くなってしまったのでしょうか…しくしく(;_;)
ほかにOld Trackを実現する方法があるのかな?
一応、2.57b用のほうは↓の画像のように赤丸部分のTrack Toコンストレイントを有効にする目のボタンをクリックすることでバンクはできませんが、動画でも自然なパンができるようになります。

Scr2

うちでは現在このカメラをユーザープリセットにして使っています:-)

| | Comments (0)

June 09, 2011

ディスプレイスメントで噴煙

煙といえばBlender2.5ですが、2.49bでもディスプレイスメントで噴煙みたいなくっきりした煙なら表現できそうな気がして、火山から立ち上る噴煙を作成してみました。
(↓動画が巨大なGIFファイルなので、キャッシュされて滑らかに動くまで時間がかかると思います(^_^;)

vsmoke

vsmoke.zip for Blender 2.49b

↑上掲動画のBlender2.49b用モデリングデータファイルです。
  リンクをクリックするとダウンロードできます。


今回はテクスチャのディスプレイスメントではなく、プレビュー上で結果がわかりやすいオブジェクト側のディスプレイスメントモディファイアのほうを使ってみました。また、火山は手作業で形状を作らず、一枚のプレーンからクラウドテクスチャとディスプレイスメントモディファイアで作成。
加えて噴煙は質感を柔らかくするために、レンダリングの際、コンポジットノードでわずかにブラーをかけてから合成しました。

以下、制作手順の備忘録。

1.噴煙の外観にあわせて低ポリゴンでメッシュを作成。

1

2.ディスプレイスマップとノーマルテクスチャを異なる速度で動かすためのEmptyオブジェクトを3つ追加。

2

それぞれ速度を変えて上に移動するようにキーを打っておく。
IpoカーブエディタでLocZを右上がりにExtrapolation(直線)になるように修正。

2a


3.大きな変形用と小さな変形用の2つのディスプレイス用テクスチャを用意。
  CloudのHard Noiseを選択してメッシュがこぶ状に盛り上がるようにColorbandで濃淡を調整。

3a
3b

4.噴煙のメッシュにSubsurfモディファイアを追加し、適度に細分化し、Displaceモディファイアを2つ追加。
Displaceモディファイアはそれぞれ3で用意した別々のCloudテクスチャを指定し、Ob:にも速いEmptyと次に速いEmptyをそれぞれ指定。Strengthの値も差をつけて高さに変化をつける。

4_2

5.噴煙のマテリアルを設定。
  噴煙メッシュの表面にディテールの凹凸をつける大小2つのノーマルテクスチャを用意し、共に一番遅く移動するEmptyで動かすように指定。
  小さな凹凸がディスプレイスメントのかかったメッシュよりもゆっくりと移動することで膨らんだ煙が巻き上がる感じを出す。
設定は以下のような感じで。(赤枠内が自分的ポイント)

5b

テクスチャはcloudを使ってこんな感じに。

5

6.プレビューで動かしたりレンダリングしてみてEmpty間の速度を調整する。

vsmoke3d

7.上の動画にある火山を作るためにプレーンを用意し、適当な大きさに拡大。

7

8.プレーンを変形させるためのテクスチャを作成。

最初にBlendで火山を盛り上げて火口をへこませる基本的なSphereタイプのグラデーションテクスチャを作成。
(Displaceをかけたあとで再びカラーバンドを調整する)

8a

次に山の細部の凹凸をつけるためのテクスチャにcloudを選択し、Colorbandを編集。

8b

上の2つのテクスチャをノードエディタのテクスチャモードで合成。
ノードテクスチャを使うには新規テクスチャのNodesボタンを押してノードエディタでテクスチャのボタンを押す。
最初に表示されているチェッカーはXで消去。
(赤枠は自分的ポイント)

8c

既存のテクスチャを利用するにはヘッダのAdd→Input→Textureで表示されたウインドウの上下の矢印ボタンから選択すればよい。

9.SubsurfとDisplaceモディファイアを追加。
(Displaceの後に再び軽いSubsurfをかけて、変形できつめに出たポリゴンをなめらかにしている)
Displaceモディファイアには8.で作成したテクスチャを指定。Strengthで高さを調整。

9

10.火山のディテール用にノーマルマップのテクスチャを大小複数作って適用。
いずれもテクスチャはCloudを選び、ごつごつした感じを出すために、HardNoiseを指定、カラーバンドでコントラストを強めにしている。

10

火山のマテリアルは以下のような感じで。(マッピング方式はOrco)
(赤枠内が自分的ポイント)

10b

11.空を追加。例によってUVSphereを平らに潰してノードエディタで作成したテクスチャをマッピング。
今回は円形に抜いてZ軸に垂直にマッピング。(指定方法は下画像の赤枠内)
スペキュラーは出ないようにしてEmitを1、メッシュの全フェイスはFlipNormalで内側に向くようにしてある。

11

12.最後に、噴煙の質感を柔らかくするために、コンポジットノードで煙だけにわずかにブラーをかけて合成。
具体的には火山、煙、空を別々なレイヤーに置き、↓画像の左下赤枠のレンダーレイヤーでそれぞれの該当レイヤーを指定。(上下矢印ボタンでレンダーレイヤーを選択、指定)
これでノードエディタで別々にレンダリングして合成することが出来る。

12

今回は煙のアルファチャンネルにもブラーをかけ、背景の色をできるだけ半球にマップした空のグレーに近くして馴染みをよくしてみた。

手順は以上。


ディスプレイスマップを使いまくっているので、相当レンダリングに時間がかかります。
とりあえず火山やSubsurfのプレビュー画面やレンダリングの分割レベルを落とすことで試行錯誤する時間が短縮できます。
煙は分割レベルが落ちると表面に震えが出るので、レンダリングレベルは可能な限り上げたほうが良い結果になると思います。

| | Comments (0)

June 07, 2011

ディスプレイスメントで炎

ディスプレイスメントマップは、燃え盛る炎にも応用できそうな気がしたので、挑戦してみました。

fireball
人魂風
fireball.blend
flame02
キャンプファイヤーや護摩の炎風
flame002.blend
flame01
大規模火災風
flame001.blend
flame01ca
flame001で視点移動
flame001_cameraaction.blend

特に(2.5の)smokeやパーティクルは使っていない簡単なモデルですが、当初思ったよりは、それっぽく見えるような気がします。

flames.zip for Blender 2.49b

↑上掲動画のBlender2.49b用モデリングデータファイルです。
  (上掲に加えて人魂の青バージョンを加えた5タイプを同梱)
  リンクをクリックするとダウンロードできます。


炎の部分の作り方はどれも一緒なので、flame001の作成レシピを備忘録。

1.炎全体のおおまかな外観に編集した低ポリゴンのメッシュオブジェクトを用意。

Mesh


2.メッシュにSubsurfモディファイアを追加。ディスプレイス用に適度に細かくする。

Subsurf


3.オブジェクトモードでディスプレイスマップを動かすためのEmptyオブジェクトを追加。
  炎を表現するために下から上に動くようにキーを打っておく。
  最初のフレームでLocを打ち、最後のフレームに移動してZ方向(上)に移動し、Locを打つ。
  (面倒ならIpoカーブエディタ上でLocZを選択して適当な位置でCtrl+左クリックで右上がりに2度打ち)
  IpoカーブエディタでLoc Zのカーブを選択し、ヘッダのCurve→Extend Mode→Extrapolationで右上がりの直線に変換。
  以降、Rを押してこの角度を変更することでEmptyの上下移動のスピードを簡単に調整できる。

Ipo


4.炎メッシュに大まかな動きを出すためのcloudテクスチャマップを追加。
  HardNoiseを指定し、NoiseSizeは大き目に。NoiseDepthも最小の1で。

Cloud01

  マッピングモード(Map Input)はObjectで、ターゲット名は3.のEmptyを指定。
  Map Toタブでディスプレイス(disp)を指定し適度な値をDispスライダーにセット。

Matmatmat01


5.色や透明度を兼ねたメインの炎のマップを作成。
  テクスチャはCloudを使用。
  Colorbandを使って以下のような感じに。NoiseSize等はレンダリング結果等参考に適度に調整。

Tex02

  Materialタブは以下のような感じで、Colにやや濃い目のオレンジを設定。
  透明を使うのでAは0にして、Links and PipelineタブのZTranspをON。
  ShaderタブではEmit(自己発光)を最高にし、Specは0にするなど、スペキュラーは出ないようにしておく。

Matmat01

  Map ToタブではCol,Alpha,Emit,Disp,StencilをON。(一部無駄かもしれないが不都合は無い)
  特にDispは細かく動きが変化する重要な要素。0.001とごく小さくしておく。
  こちらもMap InputでObjectモードにし、ターゲット名を3.のEmptyに設定。
  縁起物なのでマッピング方式はTube。
  同タブのsizeはレンダリング結果を見ながら調整。今回はZを小さめにしてやや縦長にしている。

Mapinputput01


6.基本的な部分は以上。レンダリングしてテクスチャのサイズなどを調整。


  このモデルではさらに炎メッシュにclothを適用し、ノイズ混じりの風をあてて揺らし、隠し味的に動きのパターン化を和らげています。

3dd

Clothのパラメータでのポイントはピンニングを使って下を固定し、Zをプラス(反重力)にして下に崩れ落ちないようにしている点でしょうか。他、傾向としてはBendStiffやAir Dampを0にして風に揺られやすくしています。

Cloth01

wind等他のパラメータはデータを参照のこと。

| | Comments (0)

June 04, 2011

BlenderのSSS

BlenderのSSS(Subsurface scattering)はシンプルで使い勝手が良いですね。
今回はこれを使ってリアル系の質感を目指して女性の頭部を作ってみました。

Face0001h_pkd1600a


↓のリンクをクリックするとモデリングデータがダウンロードできます。Blender2.49b用ですが2.5でも大丈夫のようです。

face0001i_pkd .zip (1.31MB)

SSSを使わない場合は↓画像のようになります(怖すぎw)

Face0001h_pkd_nosss

今回はプリセットのskinを使い、色とcolor強度のパラメータを変更しました。

SSSを使う場合はノーマルマップ(バンプ)や色あいなどが甘く溶け込むので、色の変化等もやや強めにしておくほうが良いようです。
テクスチャもTextureパラメータを上げると甘くぼやける(皮膚の表面から奥に溶け込む感じ)ので、蝋人形のようになります。Textureの値は基本的に0にし、その上のColorパラメータで全体の色味を調整するのが良いようです。

↓レンダリングした画像のトーンカーブの中間調を持ち上げることでフォトリアル感が高まる気がします。

Face0001h_pkd1600d

今回のファイルでは耳の透過光を自然にするためHairのStrandRenderオプションをOFFにしています。
そのせいでレンダリングスピードはかなり遅いので、StrandRenderボタンをONにすることで速くなります。
(下画像の赤枠部分)

Scr_girl

↓StrandRenderを使った場合は髪の影がなくなるので耳がバックライトのせいで明るく浮いてしまいます。

Face0001h_pkd_nostrand

↓のように耳が隠れたり、耳の後ろに髪などが無い場合はStrandRenderでも十分な気がします。

Face0001h_pkd1600b

Face0001h_pkd1600c

↓ついでに上の画像をモノクロ化。

Face0001h_pkd1600cgmp2bw

ちなみに今回は髪の毛はパーティクルHair、眉毛はピクチャマップ、まつ毛はパーティクルHairで作ったものをメッシュ化しています。
パーティクルの場合、まつ毛のような左右対称に分かれたものはあとでMirrorモディファイアをかけたりできず、扱いが面倒なので、メッシュ化しました。

メッシュ化の方法は以下の通り。

1.Hairパーティクルで片方のまつ毛を作る。
  この時、メッシュ化後に加工しやすいようにParticle SystemタブのSegmentsを最小の2にしておく。

2.パーティクルモード(Free Edit)等でまつ毛の編集が済んだら、一旦オブジェクトモードに戻りエミッタを選択して編集モード{Editing」(F9))に入る。
ModifiersタブにParticleSystem 1があるはずなので、Convertボタンを押す。

3.レイヤー1にメッシュ化されたオブジェクト(ガイドライン)が複製されるのでこれを選択し、編集モードに入る。

4.Aで頂点全選択>E→Xで横に適度に厚みをつける>Aで全選択しなおす>E→Zで上下方向に厚みをつける。(まつ毛用の角柱ができる)

5.全選択状態でCtrl+Nし、法線を正常化。ついでにSmoothしておく。

6.SubSurfモディファイアを追加。これでまつ毛が滑らかになり、毛先(と根元)もとんがる。
  根元を太くしたい場合はCtrl+左ドラッグなどで根元のFaceを選択し、Face削除すれば良い。

7.Mirrorモディファイアを追加。(予めオブジェクトの中心を頭部オブジェクトに揃えておく)

8.あとは自由に位置や大きさ、まつ毛の本数などを調整。

注意点としては、2.のConvertボタンを押した時、必ずレイヤー1にメッシュが生成されること。
(どうも表示しているレイヤーにできるようです2011.6.23)
パーティクルでまつ毛を別なレイヤーで作っていたので、これに気づかずかなり悩んだ。
(逆に、これを逆手にとって予め別レイヤー上でパーティクル編集をすれば、メッシュ化後に元オブジェクトの削除やレイヤー間移動をしなくて済むので作業効率がよい)

↓上記編集画面。赤枠内が自分的ポイント。

Scr01

また、今回のモデル用に新たに眼球を作成しました。
今回のZipファイルに別ファイルとして同梱してあります。(eyeball.blend)
こちらもご自由にお使いください。

Scr_eyeball


| | Comments (2)

June 02, 2011

ディスプレイスメントで嵐の海

sea3

Blenderのプロシージャルテクスチャを眺めていたら、Voronoi(細胞)マップはなんとなく荒れた大きな波に使えそうな気がして、ディスプレイスメントマップで嵐の海のアニメーションを作ってみました。

↓のリンクをクリックするとダウンロードできます。Blender2.49b用です。zipを解凍してお使いください。
seastorm.zip (154kB)

基本的な波の作り方はマレン本の物理シミュレーションBlenderにあるものと同じです。

カメラを波の動きに合わせて揺らすようにするため、波のプレーンオブジェクトのほうにもディスプレイスメントモディファイアを使い、3つの頂点とカメラをバーテックスリンクさせました。

やはりそれぞれのディスプレイスメントテクスチャの大きさ、高さと移動させる速さのバランスが難しいですね。
色々試した中ではこれが一番それっぽく見えました(^-^;)

Screen

空は2重の半球ドームにして内側を透明で抜いた雲、外側をノードエディタで作成した背景の空をマッピングし、内側を外側より少し速く回転して奥行きをつけてみました。

| | Comments (3)

« May 2011 | Main | July 2011 »