LogoMark.png

Blender/Modeling の変更点


#author("2023-06-30T18:47:34+09:00;2022-01-26T19:59:26+09:00","default:inoue.ko","inoue.ko")
#author("2023-07-01T14:55:50+09:00;2022-01-26T19:59:26+09:00","default:inoue.ko","inoue.ko")
*Modeling
Blender Tutorial
~

物体の形を作る作業をモデリングと言います。モデリングの対象となるオブジェクトには Mesh、Curve、Surface といったデータフォーマットがあって、作りたい形状によってこれらを使い分けるのが一般的です(データフォーマットごとに編集操作の方法が異なります)。

通常は最も基本的なデータ構造をもつ Mesh すなわち、ポリゴン(多角形)の集合体を用いてモデリングを行います(すべてのデータフォーマットは Meshに変換して微調整することが可能です)。

なおここでは、大半の操作をマウスとキーボートで行う前提で解説しています。
~
~

**はじめに
***オブジェクトモードとエディットモード __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/uP8okJwdcec]]__
***オブジェクトモードとエディットモード __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/ANWFjpogRFo]]__
Blender には3Dの''シーンのレイアウトを行うオブジェクトモード''と、個々のオブジェクトの''形状を編集するエディットモード''があります。オブジェクトモードとエディットモードの切り替え方は以下の3通りあります(結果は同じ)。
 編集対象となるオブジェクトを選択して
 1. ワークスペースを Modeling に切り替え
 2.  Header の モードセレクトで Edit Mode へ切り替え 
 3.  [TAB] キー(Blender 初期バージョンからの方法)


~

***編集ツールについて
3D Viewport Editor の ToolBar([T] のトグル)は、エディットモードに入ると、形状編集用のツールが追加表示されます。頻繁に使うものには、従来からのショートカットが割り当てられているので、それを使う操作も可能です。

なお、編集ツールは、以下のキー操作で 3D Viewport 内に出すことができます。
 [SHIFT] + [Space]
~

***編集操作におけるスナップについて
形状編集では、頂点をグリッドやカーソル位置に揃えうる必要が生じる場合があります。以下のような操作でそれが実現できます。
 頂点を選択
 右クリック > コンテクストメニュー > Snap Vertices
 Selection to Grid:選択した頂点が最も近いグリットの格子点に移動
 Selection to Cursor:選択した頂点がカーソルの位置に移動
 Cursor to Selection:カーソルが選択された頂点位置に移動
~
~

**Mesh
モデリングでも最もよく利用されるのが Mesh です。Meshは頂点(Vertex)、辺(Edge)、面(Face)、法線(Normal)((3DCGでは「面の法線」は、表裏(可視/不可視)の判定や面の明るさ計算等に利用される非常に重要な概念です。))、の情報を持ちます。

通常は、平面(Plane)、立方体(Cube)、球(UV Sphere)などのプリミティブからはじめて、点・線・面を追加しながらモデルの形状をつくっていきます。
~

***頂点・辺・面の選択 __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/U_o8LeDWwl8]]__
#image(Blender/SelectMode.jpg,right,30%)
選択には、頂点・辺・面の3つのモードの切り替えがあります。EditMode 時に 3D Viewport の Header に表示されるアイコンでも切り替え可能ですが、以下の数字キーでも切り替え可能です。
 頂点選択モード:[1]
 辺選択モード:[2]
 面選択モード:[3]
&scale(85){注) Select Mode [1] - [3] は、テンキーではなく、キーボード上部の数字キーがショートカットになっています。};

モード切り替え後の選択操作は、オブジェクトモードと同じです。
 選択:[LMB]
 追加選択:[SHIFT] + [LMB]
 全選択 / 解除:[A] / [ALT] + [A]
 矩形選択:[B] + [Drag]
 サークル選択:[C] + [Drag]
 選択メソッドの切り替え:[W] 
&scale(85){注) SelectMethod [W] は領域選択方法の切り替えで Box / 投げ縄 / なし の3種類があります。選択領域は 3D Viewport Headerのアイコンで、和・差・積の切り替えができます。};
#image(Blender/SelectMethod.jpg,,15%)
~

***移動・回転・拡大縮小
移動・回転・拡大縮小等の操作は、オブジェクトモードと同じです。
 移動:[G] + [Mouse Move]
 回転:[R] + [Mouse Move]
 拡縮:[S] + [Mouse Move]
~

***頂点・辺・面の追加・削除・複製 __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/pBklwQTjL48]]__
頂点の追加、頂点を接続して線にする、3つの頂点から面をつくるといっ他操作は、エディットモード特有の操作になります。
 頂点の新規追加:[CTRL] + [RMB] (何もないところに最初の頂点を追加)
 頂点の追加:[CTRL] + [RMB] または [E]xtrude
 辺・面の生成:2点または3点を選択して [F](Make Face)
 頂点・辺・面の削除:[X]
 頂点・辺・面の 複製:[SHIFT] + [D]
~

***面の分離
以下、いずれかの方法で可能です。
 Header > Mesh > Split > Selection
 分離したい面を選択して [Y]
~

***整列
現状では、エディットモードで複数の頂点の整列を行うメニューが見当たらないのですが、ツールがなくとも、変換操作の応用で実現可能です。

複数の頂点を選択して、拡大縮小>軸方向>0%とすることで、実質的に軸に揃うことになります。具体的な例では、[S] [X] [0] と順に入力することで、x軸方向に0%に拡大…つまり、軸に揃います。
~

***押し出し(掃引)|Extrude __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/9q3WpgCB0pE]]__
面(辺・頂点)を法線方向に引っ張って立体(面・辺)へと次元拡張する操作を「押し出し(掃引)」といいます。ツールバーの ''Extrude'' アイコンを使うこともできますが、以下のようなキー操作の方が簡単です。
 面(辺)を選択して、[E] + [Mouse Move]
~

***面の挿入|Inset Faces
選択した面の中に面を追加します。ツールバーの ''Inset Faces''アイコンを使うこともできますが、以下のようなキー操作の方が簡単です。
 面を選択して、[I] + [Mouse Move]
~

***面取り|Bevel __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/F57DUphqsb8]]__
立体の角を落とす操作(面取り)を一般にベベル処理といいます。ツールバーの ''Bevel'' を使うこともできますが、以下のようなキー操作も可能です。
 頂点を選択して、[SHIFT] + [CTRL] + [B]
 面(辺)を選択して、[CTRL] + [B]
 表示されるハンドルを [MMB Drag] で初期変形(遠ざけると角が落ちていく)
 コントロールパネルが表示されるので、以下を調整
 Affect:頂点を落とすか、辺を落とすかを選択
 Width:ベベルの量を調整(大きいほど効果大)
 Segments:ベベルによる面の分割量を調整(大きいほど滑らか)
&scale(85){注)オブジェクト全体に Bevel 操作を行う場合は、オブジェクトモードで Property Editor > Modifier のBevel の方が使いやすいかもしれません。};
~

***回転|Spin __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/9oMLie3Lf9o]]__
頂点・辺を回転させて形状を作るには、ツールバーの ''Spin'' を使います。
一般に次のような準備を行います。
 回転体の元になる頂点・辺は、正面ビューで形を整える
 上面ビューに切り替える:[7]
 回転の中心となる場所に 3Dカーソルを移動:[SHIFT] + [RMB]
これで回転体を作る準備が整いました。次に・・
 回転させたい辺(頂点)を全選択
 ツールバーの Spin をクリック
 画面に表示される [+] アイコンをドラッグ(回転)して回転体を作成
&scale(85){回転させる際に [CTRL] を押して操作すると回転角が5度ずつスナップします。};

360度回転して回転体を作った場合、回転角が正確でないと0度と360度付近に頂点が重複してスムーズシェーディングがおかしくなることがあります。この問題を解決するには、重複した頂点を結合して、トポロジーを綺麗にする必要があります。以下のようにします。
 重複をなくしたい頂点のある領域を選択:[B] or [C] + [Drag]
 Mesh > Clean Up > Merge By Distance
 コントロールパネルが表示されるので
 重複点が結合されるまで Merge Distance を変更
&scale(85){以前のバージョンでは Remove Doubles という用語でした。};
~

***細分化|Subdivide __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/5e8LuLpGReQ]]__
メッシュを細分化したい場合は、以下の手順です。
 細分化したい面を選択
 Header > Edge > Subdivide
コントロールパネルが表示されるので以下を設定
 Number of Cuts:分割数
 Fractal:ランダムな分割の係数(必要に応じて)
~


***曲げ|Bend __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/w8ODHj-sg5s]]__
オブジェクトを曲げるには、相当数の頂点が必要です。事前に曲がるようにメッシュを細分化して下さい。
-方法1:Warp 機能を使う
 曲げの中心になる部分に 3Dカーソルを移動します。
 方法1:Header >  Mesh > Transform > Warp(非推奨)
 方法2:[SHIFT] + [W] マウス操作で曲げる(推奨)

-方法2:プロポーショナルエディティングを使う
 Header アイコン Propotional Edhiting を ON
 引っ張りたい部分を選択 > [G] で引っ張る
 注)影響範囲はスクロールホイールで調整できます。
~

***カット|Loop Cut / Knife
オブジェクトを自由にカット(境界を挿入)することができます。
 オブジェクトを選択
 ツールバーの Loop Cut / Knife をクリック
 3D Viewポート上で任意の部分に境界を挿入 > [Enter] で確定
~

***Modifier の利用 __[[&color(red){''&fontawesome(fas fa-film); 解説動画''};>https://youtu.be/fL9cC7WPg3s]]__
オブジェクトの形状を Twist(捻る)、Bend(曲げる)、Stretch(伸ばす)などの変形操作には、モディファイアを使うのが効率的です。

-モディファイアは ''非破壊変形ツール''です。通常の形状編集とは異なり、オブジェクトに対して「変形プロセス」を割り当てるだけなので、割り当てを解除することで元に戻すことが可能です。以下のように適用します。
 プロパティエディタの Modifier タブで、Add Modifier > 手法の選択
 当該手法に関わる各種パラメータの設定
&small(注)Modifierはモデルのデータ構造によって、使える機能が異なります。極端な例では、Metaball には、適用できる Modifire がないので、Modifireタブ自体が表示されません。);

-モディファイアは、追加した順にプロセスを踏むので、効果を「重ね掛け」することも可能です。

-以下のような変形操作が可能です。
 Modify:変更(頂点などの細かいデータを扱います)
 Generate:生成(ポリゴンの追加、削除、複製等が行われます)
 Deform:変形(メッシュを曲げたり凹凸をつけるなどの変形が可能です)
 Physics:物理シミュレーション

-なお、変形操作を確定して Mesh オブジェクトにするには、パラメータ設定パネルのプルダウンメニューから ''Apply'' をクリックします。

-''例:ブール演算|Boolean''
オブジェクトモードで、モディファイアのパネルから、Booleanを選択すると、オブジェクト同士のブール演算(集合演算)を行うことができます。
 積(交差)    : Intersect
 和(結合)    : Union
 差(刈取り)  : Difference
手順は以下のとおりです。
 はじめに「主」となるオブジェクトを選択
 プロパティーエディター > Modifier > Add Modifier > Boolean
 和・差・積のいずれかを選択して
 演算対象となる相手のオブジェクトをプルダウンリストから選択
 形状を確定する場合はApplyを押します。
~

***スカルプト|Sculpting
スカルプティングとは、オブジェクトを彫刻感覚で編集する機能です。前提として、選択したオブジェクトが細かいメッシュになっていることが必要です。

3D Viewport の編集モードを ''Sculpt Mode'' に切り替えると、専用のツールが出てくるので、これを使って「彫刻」します。
~

***その他
-直前に行った操作は記憶されているため、それを次に繰り返すことができます。
 ツールパネルの Repeat > Repeat Last または [SHIFT] + [R]
複製・移動の後に行うと、連続的な追加配置ができます。

-選択したオブジェクトの表示 / 非表示はオブジェクトモードと同じです。
 対象を非表示:[H]
 対象以外を非表示:[SHIFT] + [H]
 解除:[ALT] + [H]
~
~

**Curve & Surface
曲線と曲面は、計算によって形状が補完されるオブジェクトです。したがって、編集の多くは、プロパティーエディタ上にあるパラメータの変更で行います。
~

***曲線|Curve
Blenderで扱える曲線には、ベジエ曲線(Bezier)、NURBS曲線(Nurbs)、アニメーション用のパス(Path)があります。モデリングで主に使用するのは、ベジエ曲線か NURBS曲線です。

以下、プロパティーエディタの Curve タブの用語です。
-Shape
 2D / 3D:平面上の曲線とするか、立体的な曲線とするか
 Resolution Preview:プレビュー時の UV方向の分解(きめ細かさ)
 Resolution Render:レンダリング時の UV方向の分解(きめ細かさ)
 Fill Mode( Full / Front / Back / Both):面を貼って立体化する方法

-Geometry
 Extrude:2D曲線を掃引して立体化する厚み
 Bevel(Depth Resolution):ベベル処理の深さと解像度

-Active Spline
 Cyclic:閉曲線か開曲線か
~

***曲面|Surface
Blenderで扱える曲面は NURBS曲面で、以下のようなものがあります。
 Cylinder:円筒
 Surface:面
 Sphere:球
 Torus:トーラス

以下、プロパティーエディタの Surface タブの用語です。
 Resolution Preview:プレビュー時の UV方向の分解(きめ細かさ)
 Resolution Render:レンダリング時の UV方向の分解(きめ細かさ)

以下、Header にある基本的なキーワードです。
 Segments > Subdivide:面の分割
 Control Points > Extrude:掃引
 Surface > Spin:回転体の生成
~
~

**Metaball
メタボール(濃度球)とは、それ同士をスライム状に結合・分離させたりできるオブジェクトです。メタボール同士を近づけると、引力・斥力が働いて形状が変形されます。計算によって形状全体が生成されているため、形状モデリングは、オブジェクトモードにおける相互作用で行うかたちになります。

-以下のようなプリミティブがあります。
 Ball:ボール
 Capsule:カプセル
 Plane:平面
 Ellipsoid:楕円体
 Cube:立方体

-エディットモードでは Sidebar の Item タブに以下の項目があります。
 Radius:半径
 Stiffness:剛性(堅さ)

-以下、プロパティーエディタの Metaball タブの用語です。
 Resolution Preview:プレビュー時のポリゴン化解像度
 Resolution Render:レンダリング時のポリゴン化解像度
 Influence Treshold:メタボール要素の影響域値(最小値)
~
~

**Text
テキストオブジェクトは、アウトラインフォントを 3D空間に配置するもので、初期状態では ''Text'' と表示されます。

-''文字列は''、エディットモードの 3D Viewport上で直接タイピングするかたちで編集することができます。

-''フォントは''プロパティーエディタの Text タブ > Font で、作業環境にインストールされたフォントを選ぶことが可能です。Macの場合は、以下のディレクトリにフォントデータがあります。
 MacintoshHD:/System/Library/Fonts/ 

-デフォルトでは、厚みのない平面になっていますが、プロパティーエディタの Text タブ > Geometry で、''Extrude'' の値や、''Bevel'' の設定によって、好みの 3D形状に仕上げることが可能です。

-形状そのものを変形したい場合は、オブジェクトモードの Header > Object > Convert > Curve または Mesh で、曲線やメッシュに変換します。
~
~

**Volume
ボリュームオブジェクトは、一定の空間を ボクセル(3次元ピクセル)グリッドとして、各ボクセルに値を持たせたオブジェクトです。雲、煙、炎といった要素を空間に配置することができます。
Header > Object > Volume で以下2つの方法があります。
 OpenVDB ファイルを読み込む
 Volume Empty オブジェクトを用意して Mesh をボリューム化する
~

***OpenVDB の読み込み
OpenVDBは、スパース(希薄な)ボリュームデータを処理するためのオープンソースソフトウェアライブラリで、.vdb ファイルはその仕様にもとづく、ボリュームデータです。以下からサンプルのダウンロードが可能です。
https://www.openvdb.org/download/


-Header > Add > Volume から .vdb ファイルを読み込みます。

-一般に VDB ファイルは重いので、オブジェクトはワイヤーフレーム表示を用います。プロパティエディタの Volume タブ > Viewport Display の部分で設定可能です。

-レンダリングには、Principled Volume シェーダーが利用されます。
~

***Meshのボリューム化
Volume Empty オブジェクトにモディファイアを適用して、メッシュデータをボリュームに変換する方法を紹介します。

-はじめに、Header > Add > Volume から Volume Empty オブジェクトと、利用する Mesh(例えば UV Sphere)を 3D Viewport 上に配置します。

-元となるMesh 自体は表示する必要がないので非表示にします:[H]

-Volume Empty オブジェクトを選択して( Outliner を利用すると選択しやすい)、 プロパティエディタの Modifier タブを開きます。

-Add Modifier から Mesh to Volume と Volume Displace を追加して、各種パラメータの設定を行います。

-Mesh to Volume では、以下の設定を行います。
 Object の部分で、利用する Mesh を選択(必須)
 Density:生成されるボリュームの密度を設定(例えば 10)
 Exterior Band Width:ボリュームを生成する領域サイズ
 Voxcel Amount:ボクセルの量

-Volume にマテリアルを追加(Principled Volume)して、例えば Emission Strength の値を大きくすると、明るい雲のような表現が可能です。

-Volume の移動が難しい場合は、以下の設定すると扱いやすくします。
 Volume を親、Mesh を子となるように、親子関係を設定
~
~

**Grease Pencil
グリースペンシルは、3D空間での描画を可能にするオブジェクトです。ペイントソフトの様に、ペンを使って、2Dモデル、または3Dモデルを作成出来る機能で、描いた線は 3次元的に扱われます((2Dの線に脂肪がついて3Dになることから「脂肪がつく鉛筆」と名付けられました))。

-以下のように準備します。
 Header > Add > Grease Pencil > Blank

-3D Viewport の編集モードを ''Draw Mode'' に切り替えると、専用の描画ツールが出てくるので、これを使って作業します。
 Radius:ペンの太さ(1~500px)
 Strength:ペンの透明度(1.0=透明度100%)
 Surface :モデルの面に沿って描く

-Header のプルダウンメニューを以下のように設定すると、3D空間のどの位置から描いても、原点に固定された X-Z平面内に描画されます。
 Stroke Placement:Orig
 Drawing Plane:Front(X-Z)

-Gpencilオブジェクトに、Mesh 等のオブジェクトがペアレント設定されている場合(GPencilが親、Meshが子)、Header のプルダウンメニューを以下のように設定すると、3D空間のどの位置から描いても、モデルの表面に鉛筆や筆で色付けを行うことができます。
 Stroke Placement:Surface
 Offset:0.0
 Drawing Plane:View

-この方法を使うと、3次元のモデルに手描きで色を塗るような処理になるので、3次元の手描きアニメーションを作ることができます。

-描画したグリースペンシルは、パス、ベジェカーブ、ポリゴンカーブに変換する事も可能です。
~
~