Starlight Ensign

データブロックを中心としたBlender解説書pdf配布

Blenderの解説は,ネット上に結構ある.時にはブログ記事の形であったり,解説実況動画であったりする.これらの情報は,ある程度Blenderを使い慣れた身からすると,かなり役に立つ.しかし,Blenderに限らずネット上にある情報には結構偏りがあって,3DCGに全く触れたことがないような素人に対する初歩の解説書と,最新機能や知っていると便利な上級者向け機能解説のどちらかに偏りがちだと思う.

自分がBlenderを始めたのはShade,Metasequoiaに次ぐ3つ目の3DCGソフトとしてだった.なので,基本的なショートカットキー一覧は気合で覚えるとして,モデル制作の流れについては把握できていた.乗り換え組なので,最初から中級者だったのだろうと思う.そこで困ったのは,中級者向けの解説があまりないことだった.

自分が考える中級者向けの情報とは,3DCGソフト一般の使い方ではないが,個別のアドオンや機能にまで細分化されていない部分の情報のことである.Blenderにおいては,データブロックの扱いがこの段階に相当するように思う.

というわけで,あんまり解説がないデータブロックについてを重点的に書いた解説書のようなものを作ってみた.下のボタンからダウンロードできるので,読んでみてください.Wordで作ったので,無駄にWordの機能にも詳しくなった気がする.

2014/3/7 誤植修正

Blender中間学習ver1.4

わかりにくいとか,こうした方がいいというご指摘があったら,コメントなりTwitterなりで投げて貰えれば,対応します.

Composite Nodeで横一直線に光るエフェクト

flash

こんな感じになるやつ.RenderLayerのPassesでEmitにチェックを入れて,Emitを設定した表面材質を取り出す.それをGlareフィルターに突っ込んで,横に引き伸ばす.Fade値を1に近づけるほど,無限長の直線に近づくようだ.

同じようなセッティングで,Streaksを4つに増やせば十字に光るようになる.Angle Offを45度に設定すれば,X字に光るはずだ.

viewport設定とメディアクエリによるレスポンシブデザイン

viewportを設定し,スマホやタブレットではタッチに最適化した要素が表示されるようにサイトを修正した.判定基準はユーザーエージェントにおけるデバイス情報ではなく「画面サイズが512px以下か否か」なので,PCでも横幅を狭くすると表示を試すことができる.デバイス情報を用いないことで,新デバイスが登場する度にきちんと表示されるか心配になる必要はない.viwport設定でwidth=device-widthと設定してあるので,大抵のスマホ端末では幅が512px以下に設定されるので,適切に誘導されるはずだ.NexusやKindleでは幅が500px以上あるので,PCサイトと同様の見た目になるはず.

もともとこのサイトはdiv要素やp要素にclassとidを大量に付与して,CSSで見た目を制御していた.そのため,スマホ用サイトを新たに立ち上げるよりは,CSSにメディアクエリを使って制御したほうが楽だ.主に弄ったのは

  • !important 設定によるリンク要素の強制ボタン化
  • floatを設定した要素の幅をそれぞれ100%にすることでサイドバーを下に移動
  • 画面幅が狭い時はトップメニューをfloat化してボタン化することで押しやすく

といったところ.トップメニューは上下のボーダーを上書きした上で,#topMenu ul li で基本的な設定を施し,#topMenu ul li:nth-child(2n)で偶数番目のボタンに対してfloat:right;を設定してある.基礎的なことを組み合わせるだけでも,だいぶわかりやすいサイトは作れるとわかったので良かった.

MMDモーションファイル(VMD)をBlenderの自作モデルに適応するまで

タイトルの通りのことを実現できた.この効果は思っていたより絶大で,MMD用モーションデータというライブラリ(しかも,使われることが前提になっていて写真トレス問題みたいなことが起こりづらいので気軽に試せる!)がBlenderリソースとして使えるようになる.これはポージングのテストで,FreeStyleと組み合わせて使っている.

57s

具体的な方法は続きに書いた.

続きを読む

Blender+FreeStyleとSmokeの組み合わせ

FreeStyleの描写とSmokeを組み合わせてみたら,不都合が出てきた.

27

画像左上のドラム缶的な燃料タンクのところを見ると,そこだけ輪郭線が無いのがわかる.これは,FreeStyleでそのままレンダリングすると,Domainの箱の枠線が描写されてしまうということと絡んだ問題になっている.

試しにSmokeと普通の物体を組み合わせた状態でレンダリングしてみるとこうなる.

FS
この状態だと,Domainの枠線が表示されてしまっている.しかも,透明なオブジェクトとして処理されているわけではないので,向こう側の線は標示されていない.他の物体と貫通させてみると顕著に分かる.

KP
しかもなんか色々と変.

これを防ぐ方法として,FreeStyleのLineSetで除外Groupを設定してそこにDomainを突っ込んでみた.するとこうなる.

ExG

ex
右下部分以外の線が消えてしまった.

おそらく,Domainは透明オブジェクトとして設定されているわけではないので,Domainと重なっている部分が描写されずに切れてしまってるためだと思われる.そこで,RenderLayerを二つに分けて,線以外を描写するレンダーレイヤーと線のみを描写するレンダーレイヤーに分け,それぞれのレンダーレイヤーに対応させるレイヤーを分けてみる.

RLl
こんな感じ.

そして,それに合わせてCompositeNodeを以下のように組んでみた.

CN

すると,下の様な画像が出力される.

1

これで期待通りの画像が出力される.レンダリングにかかる時間も,体感ではそこまで伸びた感じはしない.動画作成時にも実用できる方法だと思う.最初の画像にこれまでの方法を適用した画像を示しておこう.

27s