こんにちは。アドベントカレンダー2017の11月9日を担当するrencon_manです。
今日はblenderを使って色々としていきたいと思います。
この記事では何をするの?
この記事ではblenderというソフトを使って3Dモデルを画像化する手順と色々な表現方法を紹介していきます。記事の対象としては、「blenderのインストールは出来る」くらいの知識はあることを想定しています。
突然ですあ、筆者は残念ながらほとんどモデリングが出来ません!そこで今回はモデリングをせずに美しい画像を作れるようなblenderの設定を紹介していきます。
初めに断っておきますが、blenderで3Dモデルを作ってUnityなどのゲームエンジンで使いたい!という人には何一つ得るものがないと思いますので、そのまま下へスクロールしてからブラウザバックすることをお勧めします。
blenderって?
blenderは3DCGを作るソフトです。
無料で3Dモデルを作ることが出来るので、traP内では3Dゲームに使用するモデルを作るために使われています。
もっと詳しく書くべきなのでしょうが、締め切りがギリギリGoogle先生に聞けば詳しく教えてくださるので割愛させていただきます。
Cyclesレンダーのススメ
blenderには3Dモデルを用いて画像を作る機能があります。具体的に言うと、物体に当たる光などを計算してその物体をカメラから見える画像に落とし込んでいく機能です。この工程をレンダリングと言います。
実はblenderにはこの計算方法が2つ用意されています。デフォルトではblenderレンダーというものになっていますが、今回はもう一つの方法であるCyclesレンダーを使っていきたいと思います。
ちなみに、blenderレンダーを用いた3Dモデルは外部のソフト(UnityやUnrealEngineなど)で読み込んだりできますが、Cyclesレンダーを使った場合はBlender内でしか使えません。
さて、なぜ今回Cyclesレンダーというものをおススメするのか?ですが、それは"簡単にリアルな3DCGができる"からです。今回の目的は冒頭に書いた通りですので、”簡単に” ”リアルな”画像ができるというのは大事な点ですからね。
では、設定を変えてCyclesレンダーに切り替えてみましょう。
blenderの上のほうにある"blenderレンダー"と書いてある部分を押して、Cyclesレンダーというやつを押します。これで切り替えは完了です。
ノードマテリアル
blenderのみならず、3Dモデルにはマテリアルという設定が存在します。
これは物体の質感などを表したりするもので、単純なものだと色や光の反射などを設定します。反射率を上げればメタリックになるといった具合です。
さて、そのマテリアルですがCyclesレンダーではノードというものを使って作成します。
百聞は一見に如かず、まずはノードマテリアルの設定画面を見てみましょう。
まずは、デフォルトで表示されているであろうキューブがノードマテリアルを使えるように設定します。
次に、ノードの編集画面に移動します。
この画面でノードを編集できます。
この画面をよく見てみましょう。
これが基本的な設定です。ディフューズBSDFと書かれた箱からマテリアル出力と書かれた箱に繋がる線が出ています。これはディフューズ(拡散という意味)BSDFという光の計算方法をマテリアルとして設定するという意味です。よく見ると緑の〇から緑の〇に線がつながっているのが分かるかと思いますが、これらの〇の色は出てくる、又は入ってくる値の種類を表しています。
良く見ると、ディフューズBSDFの箱の右側にも〇がいくつかついています。その隣にはカラーや粗さという文字もあります。
察しの良い方はもうお気づきでしょうが、実はここで入力をとれるのです。
試しにカラーと書かれた部分に値を流し込んでみましょう!
RGBの箱の右にある黄色い〇からディフューズBSDFの左側の黄色い〇までクリックしながらマウスを動かすことで二つが接続されます。RGBの箱の中で設定がディフューズBSDFに伝わってその色の材質を生成し、それがマテリアル出力に送られることで右側のプレビュー画面に反映されます。
これでノードマテリアルの設定の基本操作を分かっていただけたでしょうか?
反射するマテリアル
基本操作が分かったところで、早速画像をレンダリングしてみましょう。
最初は反射率1の鏡を作ってみたいと思います。
まずは鏡となる平面を作ってみましょう。ノード編集画面に切り替えたのと同じ手順で、今度は3Dビューというメニューを選択してください。
最初の画面に戻れたはずです。
そうしたら左のほうから、作成>平面と選んでください。すると下に”平面を追加”というメニューが出てくると思いますので”半径”メニューの数字をいじってください。私は10に設定しました。
しかしこのままでは立方体が平面にめり込んでしまうので、立方体を上にずらします。
立方体をクリックしながら上に動かせばいい感じに平面の上に出てきてくれることと思います。
さて、平面にも先ほどと同じようにノードマテリアルを使うように設定しなくてはいけません。
キューブに対してやった作業を平面を選択して同じように行えばOKです。
ここらで一回モデリングを体験してみましょう。
モデリングはF12キーに割り当てられています。早速押してみますポチッ
・・・・・・
出来ました!!!
平面の上に立方体が置いてあるだけの画像ですが、立方体の表面に色がついていたり平面に影が出来ていたりしているのが分かります。
このような処理をレンダリングというのです。
では本題の鏡を作っていくわけですが、実はCyclesレンダーには既に光沢BSDFという光を反射するマテリアルが準備されています。
なので今回はありがたくこの設定を適用していきたいと思います。
まずは立方体を選択してからノードエディタに移動して、右側から シェーダー>光沢BSDF と選択します。
光沢BSDFと書かれた箱が出たらその緑色の〇とマテリアル出力の箱の緑を繋いでしまいます。
最後に、今回は鏡なので光沢BSDFの粗さを0に設定します。
では再びレンダリングです。F12を押して・・・
こんな感じになりました。
まるで立方体が二つあるかのように綺麗に反射していることがよくわかります。
でもよく見てみてください・・・なんだかノイズのようなものが見えますね。実はこのようなノイズが出てしまうのがCyclesレンダーの弱点なんです。これを消すには色々と設定をいじるのですが、今回は割愛させていただきます。ごめんなさい。
何はともあれ、これで鏡を作るという目的は達成しました!
液体を表現してみる
次はノードマテリアルを少し離れて物理演算機能を紹介していきます
物理エンジンの設定は
にあります。今回は液体を表現したいので、流体を選択します。
するとタイプ選択メニューが表示されます。
ここで、主に使用するタイプについて説明します。
- ドメイン
これが無ければ何も始まりません。ドメイン(領域)の意味通り、液体が存在できる領域を設定します。
されに、この設定を施した物体のマテリアルが液体のマテリアルとなります。 - 流入口
ここから液体を発生させられます。さらに、流入速度を設定することで噴水のように噴き上げたりといった事も可能になります。 - 流体
設定した物体の形をした液体の塊を作り出します。上手く使えば固体が急に液体になったりといった表現が出来そうですね。
とりあえず主なものはこんな感じです。
それでは、実際に液体を作ってみましょう。
初期設定の状態から話を始めます。
まずはドメインとなる物体を作ります。これは立方体を作って大きくすればいいですね。
そうしたら、物理エンジンの流体を選択してタイプをドメインに設定します。さらに、液体のマテリアルも設定しておきましょう。
次に、液体の発生源を作ります。今度は小さな立方体を作ってドメインの下のほうに配置します。そしえ物理エンジンの流体を選択し、今度は流入口を選択して少しz方向に流入速度を設定してみましょう。。この立方体は液体を出す起点となる役割だけなので、特にマテリアルを設定する必要はありません。
ここまできたら、あとはパソコンに液体の動きを計算してもらうだけです。
ドメインにした物体の物理エンジン設定を開くとベイクと書かれたボタンがあると思います。これを1クリックすると液体の動きを計算し始めます。時間が掛かりそうなら他の進捗でも生んで気長に待ちましょう。
終わったら、タイムラインで時間を動かしてみてください。
この緑の線がある領域を右クリックすることで時間を移動できます。
お気に入りのシーンがあったらそこでレンダリングしてみましょう!
筆者はこんなマテリアルを作ってレンダリングしてみました。
完成品がこちらです!
終わりに
唐突に締めの言葉がきて驚いてしまうかもしれません。実はもっと書きたい事があって私自身書くつもりだったのですが、締め切りギリギリにならないと始めないという筆者の悪癖が発動してしまったが為に中途半端な形となってしまった事を読者の皆様にお詫び申し上げます。
また機会がありましたら、続きを書いていきたいと思いますのでその時はまた目を通してくださればと思います。
というわけで、アドベントカレンダー2017の11月9日を担当するrencon_manがお送りしてきました。
明日は11月10日 g2さんとnagatechさんです!