ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【Blender】簡単に木を作る方法

www.nicovideo.jp

 こちらの動画で10分くらいでBlenderで簡単に木を作る方法が紹介されていたのでそれをやってみた備忘録です。
 正直この動画の方がわかりやすい上にBlenderでつまずきそうなところもカバーされているので、この記事を見るよりも動画を見た方が良いです。

 ただ個人的に手順として残して置きたいと思ったので記事にした次第です。


1:アドオンを追加する
 Blenderを起動したら「File」→「User Preferences」を選択します。
f:id:rikoubou:20180409174506p:plain

 User Preferencesの画面が開いたら「Add-ons」を選択し一覧の中にある「Add Curve:Sapling Tree Gen」にチェックを入れ、「Save User Settings」ボタンを押して設定を保存します。
f:id:rikoubou:20180409174631p:plain

 設定を保存し終わったらUser Preferences画面を閉じます。これで「Sapling Tree Gen」という簡単に木を作るアドオンが使えるようになりました。


2:幹部分を作成する
 それではこのアドオンを使って木を作っていきます。

 3D View上で「Shift+Aキー」を押して出てきたメニューの中から「Curve」→「Sapling Tree Gen」を選択します。
f:id:rikoubou:20180409175345p:plain

 すると線で構成された木のオブジェクトが「tree」として追加されます。
f:id:rikoubou:20180409175538p:plain

 左側に表示されている「Bevel」にチェックを入れます。
f:id:rikoubou:20180409175648p:plain

 すると幹に太さが追加されます。
f:id:rikoubou:20180409175747p:plain

 木の大きさを変更する場合は「Tree Scale」の「Scale」の値を調節します。(今回は4にしました)
f:id:rikoubou:20180409180013p:plain

 枝を増やしたい場合は「Geometory」のプルダウンから「Branch Splitting」を選択します。
f:id:rikoubou:20180409180155p:plain

「Levels」の項目を3にすると枝を増やすことができます。
f:id:rikoubou:20180409180400p:plain

 これで幹と枝の部分ができました。


3:葉っぱ部分を作成する
 幹と枝ができたら「Branch Splitting」のプルダウンから「Leaves」を選択します。
f:id:rikoubou:20180409180559p:plain

「Show Leaves」にチェックを入れると自動的に葉っぱのオブジェクトが作成されます。
f:id:rikoubou:20180409180753p:plain

 これで簡単に木のオブジェクトを作成することができました。

 ちなみに作成した木のオブジェクトの構造は以下のように「tree」という幹と枝のオブジェクトの子として「leaves」のオブジェクトがあるという関係になっています。
f:id:rikoubou:20180409181100p:plain

 もちろん他のオブジェクトと同様にMaterialから色をつけたりすることもできます。動画ではそのあたりの解説も詳しく紹介されています。


 以上が簡単に木を作成する方法です。木を作成するだけでなく、基本的なショートカットや操作方法の解説もしていてとてもわかりやすい動画なのでBlender初心者の人は参考にした方が良いと思います。


・参考資料

【Blender】カメラワークの付け方

 たまにはアニメーションというか映像的な技術について記事にしようと思った次第です。まだ自分も完全には扱いきれていませんが、今回はBlenderでのカメラワークの付け方です。
 Blenderでは主に2つのやり方でカメラワークをつけることができるので、その説明をしていきます。

 今回はどちらの方法も以下のようにBlender起動時のデフォルトのCubeを撮影するという例で行います。
f:id:rikoubou:20180406160018p:plain


1:キーフレームごとにカメラ座標を登録して動かす方法
 オブジェクトを使ったアニメーションと同様にキーフレームごとにカメラの座標を登録してカメラワークをつける方法です。

 左下から「Dope Sheet」を選択します。
f:id:rikoubou:20180406155657p:plain

 Dope Sheetが1フレーム目であることを確認してから「Camera」を右クリックで選択します。
f:id:rikoubou:20180406160243p:plain

 3D View上にマウスカーソルがある状態でテンキーの「0キー」を押すと、カメラの視点に切り替わります。黄色い枠がカメラに映っている範囲です。
f:id:rikoubou:20180406160733p:plain

「Camera」の「Objectアイコン」を選択し「Transform」の「Location」と「Rotation」の値を調節します。
f:id:rikoubou:20180406160450p:plain

「Camera」の設定値を変更するとカメラ視点もそれに合わせて変化します。
f:id:rikoubou:20180406160908p:plain

 カメラ位置を調節したら3D View上で「iキー」を押し、「LocRotScale」を選択してカメラの座標、回転、大きさをキーフレームに登録します。
f:id:rikoubou:20180406161138p:plain

 1フレーム目にカメラのキーフレームが登録されました。
f:id:rikoubou:20180406161235p:plain

 次に適当なフレーム(例では30フレーム目)まで移動させて、再びカメラの座標を調節します。
f:id:rikoubou:20180406161626p:plain

 カメラ位置を調節したら同様に3D View上で「iキー」を押し、「LocRotScale」を選択してカメラの座標、回転、大きさをキーフレームに登録します。
f:id:rikoubou:20180406161759p:plain

 ここまでできたら左下から「Timeline」を選択します。
f:id:rikoubou:20180406161847p:plain

「▶︎」ボタンを押して再生すると以下のように1フレーム目から30フレーム目までカメラが動きます。
f:id:rikoubou:20180406162032g:plain

 このようにオブジェクトのアニメーションと同じ方法でカメラも動かすことができますが、別の方法もあります。


2:PathやCurveに沿ってカメラを動かす方法
 ベルトコンベアを作成するときに使ったPathやCurveに沿ってカメラを動かす方法です。

 最初にCubeは邪魔なので一旦非表示にします。
f:id:rikoubou:20180406162824p:plain

 左側の「Create」→「Path」を選択します。
f:id:rikoubou:20180406162916p:plain

「NurbsPath」が追加されます。
f:id:rikoubou:20180406163030p:plain

「NurbsPath」を選択した状態で「Edit Mode」に切り替えます。
f:id:rikoubou:20180406163149p:plain

 Pathの向きの表示もあってわかりにくいですが、選択できる頂点があるのでそのうちの一つを右クリックで選択します。
f:id:rikoubou:20180406163405p:plain

 選択した頂点を移動させるとPathを変形させることができます。
f:id:rikoubou:20180406163603g:plain

 このPathを変形させてカメラワークの軌道を作っていきます。

 頂点数を増やしたい場合は、増やしたい頂点の部分を「Shift+右クリック」で複数選択し「Wキー」→「Subdivide」を選択します。
f:id:rikoubou:20180406163930p:plain

 これで選択した部分の頂点数が増えます。
f:id:rikoubou:20180406164122p:plain

 Cubeを表示させ、Pathでこのような軌道を作成しました。
f:id:rikoubou:20180406164431p:plain

 次にこの軌道とカメラを関係づけます。

 最初に「Camera」を選択し「Shift+右クリック」で作成した軌道である「NurbsPath」も選択します。
f:id:rikoubou:20180406164730p:plain

 この状態で「Ctrl+Pキー」→「Follow Path」を選択します。
f:id:rikoubou:20180406164852p:plain

 関係づけされると「Camera」と「NurbsPath」が点線で結ばれます。
f:id:rikoubou:20180406165000p:plain

「Camera」のみを選択し点線と重なる位置までカメラを移動させます。
f:id:rikoubou:20180406165218p:plain

 移動させたらテンキーの「0キー」で確認しつつ、カメラの角度を調節します。
f:id:rikoubou:20180406165516p:plain

 カメラの角度が決まったらカメラの軌道である「NurbsPath」を選択し「Dataアイコン」→「Path Animation」の「Frames」を調節します。「Frames」はPathの終点に何フレーム目に到達するようにするかという値です。
f:id:rikoubou:20180406165641p:plain

 ここでは50としました。
f:id:rikoubou:20180406165941p:plain

 この状態でタイムラインの「▶︎」ボタンで再生すると「NurbsPath」の軌道に沿ってカメラが動き、50フレーム目で軌道の終端に行き着きます。
f:id:rikoubou:20180406170132g:plain
f:id:rikoubou:20180406170314g:plain

「NurbsPath」の軌道に沿ってカメラが動きますが、カメラの角度は最初のままなので「Cube」のオブジェクトを追ってはいません。

 対象のオブジェクトを追うようにするには、最初に「Camera」を選択し次に対象のオブジェクトである「Cube」を選択します。その状態で「Ctrl+Tキー」→「Track To Constraint」を選択します。
f:id:rikoubou:20180406170723p:plain

 再度タイムラインの「▶︎」ボタンで再生すると、同じ軌道を描きながらも「Cube」の方向へカメラが向くようになります。(この「Track To Constraint」は1のやり方でも使うことができます)
f:id:rikoubou:20180406170847g:plain



 以上がBlenderでの2つの方法でのカメラワークの付け方です。他にもカメラの画角調節など細かな設定もつけられますが、大まかなカメラワークの方法としてはこの2つになるのかなと思います。


・参考資料

【Blender】煙と風のシミュレーション

 Blenderを使って煙と風のシミュレーションを行う方法の備忘録です。


1:煙の設定
 最初に煙を出す対象のオブジェクトを選択します。(今回は起動時に作成されるCubeを選択)
f:id:rikoubou:20180405181245p:plain
 
 煙を出すオブジェクトを選択した状態で3D Viewの左下にある「Object」→「Quick Effects」→「Quick Smoke」を選択します。
f:id:rikoubou:20180405181511p:plain

 すると「Smoke Domain」というオブジェクトが追加されます。
f:id:rikoubou:20180405181631p:plain

 この状態でタイムラインの「▶︎」ボタンを押して再生させると、Cubeのオブジェクトから煙が出るようになります。
f:id:rikoubou:20180405181824g:plain

「Smoke Domain」の四角い枠内のみに煙が発生するため、Scaleを調節することで範囲を広げたりすることができます。また煙を出すオブジェクトの一部が「Smoke Domain」の範囲内にあれば煙が発生するため、以下のように「Smoke Domain」を移動させることでオブジェクトの一部から煙を発生させることもできます。
f:id:rikoubou:20180405182349p:plain

 ちなみに煙を出すオブジェクトが「Smoke Domain」の範囲にない場合は煙は発生しません。
f:id:rikoubou:20180405182445p:plain

 今回は以下のように「Smoke Domain」の範囲を設定し、移動させました。
f:id:rikoubou:20180405183003p:plain


2:風の設定
 風を追加するには3D Viewの左下にある「Add」→「Force Field」→「Wind」を選択します。
f:id:rikoubou:20180405183116p:plain

 すると「Field」という名前のオブジェクトが追加されます。
f:id:rikoubou:20180405183304p:plain

 この「Field」の矢印の向きが風向きになります。
f:id:rikoubou:20180405183503p:plain

「Field」を移動回転させて以下のあたりに持ってきます。
f:id:rikoubou:20180405183645p:plain

 この状態でタイムラインの「▶︎」ボタンを押して再生させると、風の影響を受けてCubeの真上ではなく少し斜めになって煙が上がります。
f:id:rikoubou:20180405183910g:plain

 風を強くする場合は「Field」を選択し「Physicsアイコン」から「Force Fields」の「Strength」の値を大きくします。
f:id:rikoubou:20180405184138p:plain

「Strengh」の値を今回は8.5にしました。
f:id:rikoubou:20180405184341p:plain

 この状態で再び再生すると、以下のように明らかに強い風を受けて煙が上がるようになります。
f:id:rikoubou:20180405184603g:plain


 以上が煙と風のシミュレーションをBlenderで行う方法です。

 この煙と風のシミュレーションをレンダリングして動画に書き出す場合、剛体シミュレーションよりも計算量が多くなるらしくレンダリングにかなり時間がかかるので注意が必要です。


・参考資料

【Blender】よく使うショートカット集

 自分がよく使うショートカット集です。概要しか説明していないので、詳しい内容は各自で確かめるようお願いします。(随時更新)


■テンキー視点変更表

キーの種類 内容
0キー カメラ視点
1キー 真正面
2キー 下方向に15度回転
3キー 右正面
4キー 左方向に15度回転
5キー 透視投影(遠近感あり)と平行投影(遠近感なし)の切り替え
6キー 右方向に15度回転
7キー 真上
8キー 上方向に15度回転
9キー 視点反転


■ショートカット集

画面 ショートカットキー 内容
3D View Shift+中ホイールドラッグ 視点の位置変更
3D View Aキー オブジェクトの全選択 / 解除
3D View iキー キーフレームの登録
3D View Shift+D 選択したオブジェクトをコピー
3D View Ctrl+J 選択したオブジェクトを一つのオブジェクトにする
3D View Ctrl+P オブジェクトの親子関係を作成
3D View Ctrl+G 選択したオブジェクトのグループ化
3D View Shift+G グループ選択
3D View Shift+C 3Dカーソル原点へ移動
アウトライナー Ctrl+左クリック 目やカメラのマーククリックで親子全体を表示/非表示
Dope Sheet Gキー キーフレームの移動
どこでも Alt+Aキー アニメーション開始/停止
どこでも ←キー 1フレーム戻る
どこでも →キー 1フレーム進む
どこでも Shift+←キー 最初のフレームに移動
どこでも Shift+→キー 最後のフレームに移動


・参考資料

【Blender】オブジェクトを半透明にする方法

 Blenderでオブジェクトを半透明にする方法についての備忘録です。


1: Viewport ShadingをMaterialに切り替える
 最初に3D Viewの左下あたりにあるViewport Shadingを「Material」に切り替えます。(この切り替えを行わないと実際には透過しているのに3D View上では表示されないことになります
f:id:rikoubou:20180405115351p:plain


2:透過を有効にしてアルファ値を調節する
 半透明にさせたいオブジェクトを右クリックで選択します。(ここでは手前のCubeを選択)
f:id:rikoubou:20180405114530p:plain

 選択したオブジェクトの「Materialアイコン」をクリックします。
f:id:rikoubou:20180405114715p:plain

 Materialの項目の中にある「Transparency」という項目にチェックを入れ「Alpha」の値を調節します。(このAlphaという値が半透明の度合いです。0だと透明、1だと完全に不透明になります)
f:id:rikoubou:20180405115750p:plain

 Diffuseから色を変更してもちゃんと後ろが透過されていることがわかります。
f:id:rikoubou:20180405115939p:plain


3:透過しているオブジェクトの中にあるオブジェクトを表示させる
 透過しているオブジェクトの中にさらに別のオブジェクトを置いてみます。2までの透過させたCubeの中に「UV Sphere」を作成します。
f:id:rikoubou:20180405120242p:plain

 すると以下のように透過設定したはずのCubeに隠れてUV Sphereが見えません。
f:id:rikoubou:20180405120511p:plain

 ちなみにCubeを非表示にするとちゃんとUV Sphereは存在します。
f:id:rikoubou:20180405120622p:plain

 つまり2までの手順だと透過オブジェクトの中のオブジェクトは表示されないことになります。

 では、その透過オブジェクトの中にあるオブジェクトを表示させる方法です。

 Cubeを再び表示させて、透過させているオブジェクト(Cube)を選択し、「Objectアイコン」をクリックします。
f:id:rikoubou:20180405121105p:plain

「Display」の項目にある「X-Ray」にチェックを入れます。
f:id:rikoubou:20180405121157p:plain

 これで透過オブジェクトの中にあるオブジェクトも表示されるようになります。
f:id:rikoubou:20180405121345p:plain


 以上がオブジェクトを半透明にする方法です。ガラスのようなオブジェクトにする場合に使えると思います。


・参考資料

【Blender】Curve、Pathについて

 前のベルトコンベアを作る際に「Nurbs Cycle」というCurveを使いました。今回はそのCurveやPathついてのちょっとした補足のような感じです。
rikoubou.hatenablog.com


1:結合させる
「Nurbs Cycle」でベルトコンベアの軌道を作ってもよいのですが、これだとどうしても楕円形に近い形になってしまいます。できる限り平行に近い楕円を作りたい場合は、直線のPath2本を結合してつなぎ合わせると良いです。

 まず「Create」→「Path」でNurbsPathを追加します。
f:id:rikoubou:20180403134057p:plain

 すると直線のNurbsPathが作成されます。
f:id:rikoubou:20180403134211p:plain

「Edit Mode」に切り替えると矢印のようなものが表示され、方向も確認できます。
f:id:rikoubou:20180403134324p:plain

 もう一度「Object Mode」に戻って「NurbsPath」を選択した状態で「Objectアイコン」を選び「Location」のZ座標を調節します。
f:id:rikoubou:20180403134655p:plain

「NurbsPath」を選択した状態で「Shift+D」を押して「NurbsPath」をコピーし、なにもせずにEnterキーを押して座標を確定させます。
f:id:rikoubou:20180403135038p:plain

 コピーしてできた「NurbsPath.001」を選択した状態で「Objectアイコン」を選び「Location」のZ座標を原点に戻します。これで2本のPathが平行に並ぶ状態になりました。
f:id:rikoubou:20180403135209p:plain

「Shift+右クリック」で「NurbsPath」と「NurbsPath.001」の両方を選択し「Ctrl+J」で一つのオブジェクトにします。
f:id:rikoubou:20180403135445p:plain

 一つのオブジェクトになったら「Edit Mode」に切り替えます。
f:id:rikoubou:20180403135608p:plain

 このままでは二つのNurbsPathがくっついていないので、上下の端の頂点を「Shift+右クリック」で選択します。
(わかりにくいですが、端の二つの頂点を選択しています)
f:id:rikoubou:20180403135803p:plain

 二つの頂点を選択した状態で「Fキー」を押すと頂点同士が結合されます。
f:id:rikoubou:20180403135924p:plain

 反対側も同じように頂点を選択して「Fキー」を押して結合します。

 そうすると以下のように平行に近い形での楕円を作成することができます。
f:id:rikoubou:20180403140101p:plain


2:頂点の数を増やす
 頂点を増やしたい場合は「Edit Mode」で頂点を増やしたい部分を選択した状態で「Wキー」→「Subdivide」を選択します。
f:id:rikoubou:20180403140401p:plain

 これで頂点の数を増やすことができます。


3:変形させる
「Edit Mode」で頂点を選択した状態で移動させると、形を変更させることができます。
f:id:rikoubou:20180403140613p:plain

 これで自由な形のPathを作成することができます。


 以上がCurve、Pathについてです。参考にさせていただいたところでは、作成したPathに沿ってカメラを動かすということもやっていたので今度やってみたいです。

・参考資料

【Blender】テンキーを別のキーで代替する方法

 今更という感じですが、タイトル通りテンキーがない場合の代替設定の方法です。テンキーが存在しないノートPCなどの場合はこの設定が必要になってきます。


■設定方法
 Blenderを起動させて「File」→「User Preferences」を選択します。
f:id:rikoubou:20180403125914p:plain

「Input」ボタンをクリックして出て来た「Emulate Numpad」にチェックを入れて「Save User Settings」を押して設定を保存します。
f:id:rikoubou:20180403130153p:plain


 以上の設定でノートPCの数字キーがテンキーの代替として使えるようになります。


■おまけ:テンキー視点変更表

キーの種類 内容
0キー カメラ視点
1キー 真正面
2キー 下方向に15度回転
3キー 右正面
4キー 左方向に15度回転
5キー 透視投影(遠近感あり)と平行投影(遠近感なし)の切り替え
6キー 右方向に15度回転
7キー 真上
8キー 上方向に15度回転
9キー 視点反転


・参考資料