« July 2011 | Main | September 2011 »

August 25, 2011

Blenderで雨の波紋

リクエストをいただいたので、Blenderでの雨の波紋のチュートリアルを作ってみました。
15分を超える超大作(笑)になってしまたので、ニコニコのみアップです。

【ニコニコ動画】Blenderで雨の波紋

波紋のマップ用動画は他にも作成方法が色々あるかと思います。
大小異なる同心円が動くパターンは2次元系のアニメーションができるツールのほうが結構簡単に綺麗にできそうですし、この手のものはBlenderならスクリプトでやるほうが細かく簡単に動きのパターン回避などもできそうな気もします。

とりあえずはシェイプキー、グラフエディタ、HairパーティクルなどBlenderの基本機能の使い方をまとめることができて自分的にはよかったかなと思います:-)

以下に今回冒頭で使った動画のBlendデータをアップしました。
前半のマップ作成用ファイルがrain_mapmake_cmp.blend、
後半の動画マップを貼り付けて冒頭の動画をレンダリングしたのがraintest01f_cmp.blendです。

前半で出力した波紋のマップ用動画も添付してあります。(rain0.mp4)

rain.zip for Blender 2.58a

↑Blender2.58a用モデリングデータファイルです。
リンクをクリックするとダウンロードできます。(737k)

ご自由にお使いください。
なお、波紋のマップはもっと大きなサイズでレンダリングするか、Blenderや動画処理ソフトで甘くしておくことで波紋のジャギーが目立たなくなると思います。

<2011.09.27追記>

エクレアさんにコメントをいただいたのでWaveモディファイアを使った方法も追記します。
確かにこっちのほうが楽そうですね:-)

Rain

今回試した手順をまとめると

1.プレーンを追加してSubdivide、Subsurfモディファイア等で必要十分な程度にメッシュを細分化

2.Waveモディファイアを追加して以下のように設定

 ・motionのx,yをオン、cyclicはオフ。これで波紋が円状に広がる
 ・offsetで波紋が広がり始めるタイミングを調整
 ・Lifeで波紋が起きてから広がって消えるまでの時間を調整
 ・Start Position ObjectでObjectを設定すると波紋のスタートする位置が自由に3D画面上で調整できる。
  波紋が消えたタイミングで位置を移動すれば動きのパターン化の回避にも使えそう。
  指定するオブジェクトはEmptyが使いやすいと思う。
 ・speedで波紋の広がるスピードを調整
 ・Heightで波紋の高さを調整
 ・WidthとNarrownessで波紋の幅と形を調整

3.追加したWaveモディファイアのCopyボタンでパラメータを複製し、波紋ごとに調整

4.波紋を必要なだけ3.で作成

といった感じです。
このまま必要なPlaneの広さと解像度(分割度)を確保してメモリに余裕があればそのままレンダリングしても良いですし、メモリ的にきつければ一度マップ用のEdgeを動画としてレンダリングして使用するシーンのプレーンにNormalマップとして使うこともできそうです。

エクレアさん、ありがとうございました。

Sc04


| | Comments (8)

August 23, 2011

Blender2.5以降の自分的落とし穴と脱出法メモ

新たに落とし穴に嵌ったらここに追記していく敷地 :-)
(バグや仕様変更等、マイナーアップデートによって直っている可能性あり)

1.今まで表示されていたグラフエディタのF-Curveなんかが対象のオブジェクトを選択しても表示されなくなった(;_;)

→3Dビューで南京錠をOFFにしているせい。ONにすれば表示される。
DopeSheetのAction Editorで別なアクションを選んでいる可能性もあるので、そこも確認。
※南京錠jは各ウィンドウを連動させるかどうかのボタン。オブジェクトモード時、ヘッダのレイヤーブロックの右横にあるボタン。2.4では南京錠の形をしていた。

2.UVでテクスチャを貼ったオブジェクトなのに3Dビューのテクスチャ表示で真っ白やらピンクやらにしか表示されない、或いはマップを変更したのに以前のマップが表示される(;_;)

→一回オブジェクトを選択してTab押しでエディットモードに入り全選択、UV/Image Editorで該当マップ画像を選択表示してみる。
ちなみに、3Dビューに表示されるのはあくまでもUV/Image Editroで設定した画像のプレビュー。
レンダリングの際は実際にテクスチャでUV設定をすること。
逆に言えばテクスチャでUVを設定しても3Dビューにそれが反映されているわけではない。

(2011.8.26追記)
GLSLモードを使用することでテクスチャ設定した表示が可能。
切り替え方法は2通りあるようです。
(Blenderで3DCG制作日記さんのこちらの記事より)

1.メニューにあるBlenderRenderをBlender Gameに変更→RenderプロパティのShadingパネルでMultitextureからGLSLに変更。
2.3Dビュー画面でNを押し、右にプロパティを表示してDisplayのShadingをMultitextureからGLSLに変更。


3.2.49bのファイルを読むとウィンドウ配置が2.49b状態を踏襲して使いづらい。

→ファイルを読む時に左下のLoad UIのチェックをはずす。

4.2.49bだと別ウィンドウにレンダリングされていたのに、2.5ではフルスクリーンになる。

→RenderボタンのDisplayをFull ScreenからNew Windowに変更。

5.特定のノートパソコン(ThinkPad X200)で2.5のファイルを読むと落ちる

→レンダリング対象がNew Windowになっているせい。
FullScreenにすれば読める。
ファイルにバージョン依存性が無い場合はノートパソコン側で2.49bで無理やり読み込んで保存しなおし、それを2.5でLoad UIのチェックをはずして読み直す。
ただし、一見正常に読み込めたようでもレンダリングしてみるとやたらジャギーが目立つ変なファイルになったりすることもあるので、できれば2.5のファイルを2.4で読むのは避けたほうが良い。
→Ubuntu等のLinux上で起動する(但しGLSL表示に不具合が出る可能性あり)

6.特定のノートパソコン(ThinkPad X200)でメニューからUser Preferencesを変更しようとすると選んだだけで落ちるか、設定項目が出てこない。

→ヘッダの左端のボタンからUser Preferencesを選択。
→Ubuntu等のLinux上で起動する(但しGLSL表示に不具合が出る可能性あり)

7.RenderでBakeしようとするとBake先が無いと怒られる。

→一部3Dビューの南京錠がOFFになっているせい。全部ONにすればとりあえず解決できる。


8.SoftBodyで最初の動きはいい感じなのに繰り返すとプレビューもレンダリングも動きが変になる。

→SoftBody CacheのCasheStepを1にする。(デフォルトは10)

9.SoftBody使用時、SoftBody以外のパラメータや形状を変更すると動きがぐちゃぐちゃになる。

→SoftBodyの差し障りのないパラメータを一箇所変化させてAlt+Aで再度プレビューする。
 プレビューしながら変化させても良い。

10.NLAエディタを使ったらDopeSheetやGlaphEditorで今まで表示されていたキーが表示されなくなった。

→DopeSheetのActionEditorで該当データのアクションを選択しなおす。

11.突然3Dビュー上で回転や拡大縮小ができなくなった。

→Manipulate Object Center Onlyボタン(ヘッダのピボット選択の右横にある・・・の下に←→があるボタン)をOFFにする。

12.スカルプトモードで編集ができなくなった

→シェイプを登録していないか確認。シェイプが有効になっていると編集できない。(2.64aで確認)

| | Comments (7)

August 19, 2011

BlenderのFluidを使ってみたZ

Blender2.5でFluidを試してみました。
解像度100でパーティクルを最小限domainに加えたらBake中に落ちたので、まだ不安定なのかな?

流体シミュレーションをやるならやっぱりあれがテーマ的にいいかなと思い、やってみました(^.^;
水木のアニキ風に語尾に声高らかにZ(ゼーット)をつける感じでご覧いただければ幸いです(^-^;

BlenderのFluidを使ってみたZ:http://youtu.be/FG66DB--4gk

せっかくP会員なのでニコニコのほうにも上げてみました。

【ニコニコ動画】BlenderのFluidを使ってみたZ

立場上、著作権関係には神経質にならなければならないので、BGMのZのテーマは久々の耳コピです。
途中までしかやってない上に耳の精度も悪いので結構原曲とは違っていると思います(^^;
しかもWinデフォルトの音源をMIDIで鳴らしっぱなしなだけなので音質とかもアレです。
我慢してください(笑
最後のはブロッケンの真似というより、滝口順平さんのぶらり途中下車の真似な感じw


■簡単なTEST SHOTごとの要点

TEST SHOT 01

01_2

テスト用のセッティング。
ドメインはCube。Cube以外を使ってもシミュレート範囲はCubeになるので他の形状を使うことにあまり意味はないらしい。

今回の最大のポイントはReal World Size(シミュレート空間のサイズ)。
デフォルトでは0.5メートル。

01c

発生源は直方体のFluid。プールの水が最初からある設定。
レンダリングされるので、レンダリング対象のレイヤーと別なレイヤーに置いておくと良い。ドメインと別なレイヤーでもシミュレートは実行される。

01d

プールのオブスタクル。開いた形状なので、Volume InitializationをShellにする必要がある。

01a_2

左右に開くようにキーフレームを打ってあるプールの底のオブスタクル。
閉じた形状なのでVolume InitializationはVolume

01b


TEST SHOT 02

02

TEST SHOT 01で飛び跳ねた水滴が回りに残ると震えっぱなしになるので、上からフタをするようにOutflowオブジェクト(画像では赤い直方体)を追加。
跳ねた水滴はこれで吸収される。
これもレンダリング対象外のレイヤーに置いておく。

ちなみに実際はFruidの直方体をプールのオブスタクルよりも大きくすることで最初の水が重力にひかれてまわりこむリアクションが無くなるので水滴が跳ねる問題はほぼ無くなる。

02a


TEST SHOT 03

03

Real World Sizeを最大値の10メートルに変更。
プールの大きさのスケール感が出た。

03a_2


TEST SHOT 04

04

テクスチャは以下のような感じ。
内蔵レンダーはコースティクス(水底の光のゆらゆら)表現ができないので、テクスチャのCloudでそれっぽいのをColormapで入れてみた。

04a


TEST SHOT 05

05

オブジェクトは全て新たに作り直し、ラフレンダリング。
レンダリングオプションを全て外してレンダリング。
ドメインの解像度は100。

05a


TEST SHOT 06

06

ドメインの解像度(Resolution)を100から200に変更してレンダリング。
結構Bakeに時間がかかるようになる。
いい感じになってきた。

06a


TEST SHOT 07

07

水のテクスチャを作り直した。
主に水の水色はWorldで設定した青を水のテクスチャのmirror設定で反射して出すようにしている。
ちなみに水の屈折率(IOR)は1.3との事なのでTransparencyで設定。

このテストではEnvironment Lighting(環境ライティング)を使用しているので光の回り込み具合が良い感じになっていると思うが、レンダリングが遅くなるので、以降はOFFにしてHemiLightで代用。でもやっぱり、こっちのほうがいいかな?

07a


TEST SHOT 08

08

プールの右側の水面を動かした。
こちらはただのPlaneにCloudのNormalmapを適用し、凸凹を表現。
normalのかかり具合で3点(低→高→低)キーフレームを打ち、F-CurveにCyclesモディファイアをかけて繰り返した。Beforeの値を-1にしてカーブ全体を選択、移動することで開始点を調整している。
さらにEmptyオブジェクトを追加してmappingのCoodinatesをObjectにし、ObjectにEmptyを指定。これもCyclesで繰り返して動くようにしている。

08a


TEST SHOT 09

09

プロシージャル(手続き型)の細かいノーマルマップは動かすとちらつくので、今回は芝生のオブジェクトにProject From ViewでUVを設定。
芝生オブジェクトを選択し、Full RenderでBakeした画像をUVマップとして適用。今回はColorMapとして使ったが、NormalMapでもちらつき回避として使える。

09a


FINAL SHOT

10

TEST SHOT 09でレンダリングした動画を再度読み込み、ノードエディタでコントラストを調整。
いつもSourceのFrames(赤枠内)のフレーム数を設定し忘れて、レンダリングして、いけね、動かんとなってしまう。
動画を読み込む時に自動でフレーム数を設定してくれればいいのにw

10a


| | Comments (4)

August 14, 2011

Blender2.5で日本語3Dテキスト

Blender2.5で日本語の3Dテキストを使う手順をまとめてみました。
但し、調べ不精なもので、これが現バージョンで正しい方法かどうかはわかりません(^-^;

Blender2.5で日本語3Dテキスト http://youtu.be/UBqDP8BhX8g

要は日本語テキストファイルをUTF-8形式で用意してBlenderで日本語フォントファイルを設定して、Text>Paste Fileでテキストファイルを読み込ませればいいわけですね。簡単です。でもいずれはBlenderも直接の日本語入力にも対応されることでしょうね。(^-^)

上記動画ではついでに3Dテキストの機能を使って昔スーパーマンで流行ったスリットスキャンタイトル風の簡単なアニメーションの作り方も加えました。

また、Windows7で標準でインストールされているフォントをひとつのBlendファイルにまとめたものも作ってみました。↓のアーカイブファイルの中にあるfont11s.blendというのがそれです。
うちのノートパソコンにインストールされていたものを使ったので、環境により過不足があるかもしれません。
また、XPでもWin7と共通したフォントファイルは表示されます。また、このファイルはBlender2.49bでも開けるようです。

大量のフォントテーブルのメモリ管理のせいか、割と不安定なので、使用するフォントのオブジェクトを決めたら他はすぐ削除したほうが良さそうです。もちろん、日本語のものはUTF-8で保存したファイルの読み込みでテキストを変更できます。
※解凍したファイルのパス中に日本語のパスがある場合、正しくフォントを読みに行けないようです。
フォントが反映されない場合は解凍したfont11.blnedファイルを日本語の絡まないパス上に移動してから開いてみてください。

<今回の動画に使用したBlendファイルとWindows7標準のフォントをまとめたBlendファイル>

win7font.zip for Blender 2.58a

↑Blender2.58a用モデリングデータファイルです。
リンクをクリックするとダウンロードできます。(455k)

Scr02


| | Comments (0)

August 04, 2011

テクスチャ切り替えとアニメ塗り

Blenderでテクスチャ切り替えによるアニメーションでの目パチ口パクと、アニメ塗りについて実験してみました。

Blenderでアニメ塗り http://youtu.be/7BtX5v-v95w

今回の動画を作成した際のモデリングデータを以下にアップしました。(4種)

animenuri.zip for Blender 2.58a

↑Blender2.58a用モデリングデータファイルです。
リンクをクリックするとダウンロードできます。(2M)

Blenderでのアニメ塗りの方法も色々あるようですが、今回はRenderLayerの専用Materialが中間トーンの作成に向いているような気がして、これを使ってみました。

以下、今回の覚書。

■テクスチャ切り替えアニメーションの手順

1.左右の目、口のポリゴンにUVを設定。それぞれ独立したマテリアルを割り当て。

S01_2

2.テクスチャは切り替えアニメーション用にアルファチャンネルの扱えるpngで以下のようなものを用意。
  目のテクスチャについては左目用のみ作成し、右目用のポリゴンのUVをX方向に-1でスケーリング(左右反転)して流用。

S02

3.目、口それぞれのマテリアルに切り替え分のイメージ(png)を読み込む。
目については最初に瞳(白目含む)の画像を最初に読見込んでから瞼等他の目の画像を読み込む。
(テクスチャのリストで下に並んだものが手前に表示されるため)
瞼は眼孔の穴を透明で開けてあるので、その奥に表示される瞳のテクスチャ(Eye-Tex)を独立してボーンで左右に動かすことができる。

S03_2

4.テクスチャを切り替えてアニメーションするには、キーを打ちたいフレームに移動し、テクスチャリストの横のチェックボックスでON,OFFを設定してチェックボックス上でiキーを押すか、右クリックしてInsert Keyframes(Replace Keyframes)でキーフレームを設定する。
キーフレームが設定されるとチェックボックスの色が変わるので後からでもキーがあるフレームが確認できる。
(3Dビューにはテクスチャアニメーションのプレビューは反映されないようなので、キーを打つ場合は同一フレームで目と口全部を同時に設定するほうがわかりやすいかもしれない)

A04_2

5.瞳を独立して動かすにはMappingパネルのOffsetの値を右クリックしてキーフレームを設定する。
今回はキーフレームのかわりに両目ともX方向にAdd Driversを選択してグラフエディタで同じボーンをドライバターゲットに指定した。(両目がボーンの左右の移動に追随)

S04


■アニメ塗りの手順

1.頭、髪のマテリアルを全てShadeless(赤枠内)にしてベタ絵でレンダリングされるようにする。

S05

2.標準機能のEdgeやnode editorを使って輪郭線を生成。

・Edgeを使う場合

プロパティエディタのRender>PostProcessingのEdgeにチェックを入れて、しきい値と線の色を設定。
黒そのままだと少し強いので、多少明るめにすると良い。
手軽に使えてレンダリングも速いが、引きの絵でも線が太いままで外側の輪郭だけになって使いづらいのが難点。

S07

・Node Editorを使う場合

今回はBlender 3DCG パーフェクトバイブル(良書!)の設定を使用。

Scr01_2

標準のEdgeに比べて引きの絵にも強く、安定した線が出るが、Anti-AliasingをFull Sampleにしないとジャギーが消えないので、レンダリングに時間がかかるという弱点もあり。

S06

3.新たに中間調用のRender Layerを作り、専用のMaterialを指定する。

専用マテリアルはToonを使用。どこに作っても良いが、今回は頭部のオブジェクト内に付加。

S08a

↓新規のRenderLayer。
ここのMaterialにToonを使用した上記の専用マテリアルを指定。
このRenderLayerではこの専用Materialただ一つが全てのオブジェクトに適用されるので、中間のトーンを作るのに便利。

S08b_2

このRenderLayerを今回は以下のようにコンポジットノード合成して中間調を付加。

S08

(1)中間調用RenderLayer
(2)Map Valueの調整
(3)FilterのSoftenで陰影を平坦化
(4)メイン(ベタ絵)のRenderLayer
(5)Valueを下げてベタ絵全体を暗くし、彩度を調整
(6)Multiplyで(3)と(5)を合成。(5)で明度を落とした陰が付加される。Facが非常に小さいことに注意。
(7)彩度と明度の微調整用
(8)Darkenでもとのベタ絵に(7)までで調整した陰のトーンを合成。

※上記の設定では元のベタ絵より暗い部分の色が結構変わってしまうのが難点。(例えば開いた口の中の色)
(6)のMultiplyをLightenにしてFacを調整すると2トーンになるがもとの色を保持しやすくなるが、このあたりは改良の余地あり。


| | Comments (0)

« July 2011 | Main | September 2011 »