LogoMark.png

3DCG演習/Modeling のバックアップの現在との差分(No.1)


#author("2022-07-12T13:13:34+09:00","default:inoue.ko","inoue.ko")
#author("2023-07-13T17:09:15+09:00","default:inoue.ko","inoue.ko")
*第3回 モデリング
[[3DCG演習/2022]]|''2022.07.12 -''
[[3DCG演習>3DCG演習/2023]]|情報デザイン専攻2年 選択(集中)
~

**解説動画
-録画済み動画です。再生して視聴してください。
***ガイダンス動画
#youtube(hq9KMYxQIBQ)
//https://youtu.be/hq9KMYxQIBQ
//録画済み動画です。再生して視聴してください。
-以下名簿が表示されます。''既読確認(出欠確認)''をお願いします。
&fontawesome(far fa-hand-point-right); __[[既読確認>https://docs.google.com/spreadsheets/d/1lpnwY25De5WG7l72sVfHjIFK40BYKqaKcvbH0ZK0SfU/edit?usp=sharing]]__
&fontawesome(far fa-hand-point-right); __[[既読確認>https://docs.google.com/spreadsheets/d/1bHOlJOdW0smlLna-qBEhkQ2U6DlnGgp3mGaBuaLP2ZA/edit?usp=sharing]]__
~


***解説動画 01
#youtube(V-kYfP0XJOA)
&color(red){''こちらは、前回の復習を中心とした内容です。'' 解説の中で「動画を3つに分けて・・」と述べていますが、2つめのモデリングの解説時間が長引いたいため、今回は2つの動画とし、3つめの話題については次回4回目にお話しします。''復習は不要という方、後半のレンダリングエンジンの話から視聴して下さい。''};
~

***解説動画 02
#youtube(ufRDt__vXQs)
&color(red){モデリングに関して必要最低限の事項のみ盛り込んだつもりですが、すみません、時間が90分と長くなっています。次回4回目は60分程度の動画としますので、特に初体験の方は、がんばって確認してください。};
~
**はじめに
物体の形を作る作業をモデリングと言います。モデリングの対象となるオブジェクトには Mesh、Curve、Surface といったデータフォーマットがあって、作りたい形状によってこれらを使い分けるのが一般的です(データフォーマットごとに編集操作の方法が異なります)。


***CONTENTS
#contents2_1

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

**はじめに
***前回の復習
-シーンにおける視点の変更:[1] [3] [7] [0] [5]
-オブジェクトの追加:[SHIFT] + [A]
-オブジェクトの選択:[A] [B] [C] [W]
-オブジェクトの移動・回転・拡縮:[G] [R] [S]
**確認課題 02
#image(Basic02.jpg,right,35%)
前回同様に、本日の内容を視聴(一読)後、右のようなシーンを作成して、学科サイトの 基礎演習 Modering の部分に出力画像を掲載して下さい。今回の課題は、プリミティブの形状を編集する練習です。制作する事物の形状は何でも構いません。
~

***レンダリングエンジンについて
> __[[Blender/Rendering]]__
***制作要件
-平面あるいは立方体を拡縮して床と壁を作って下さい。
-床の上に形状編集を行った任意の事物を配置して下さい。
-曲面にはスムーズシェーディングを適用して下さい。
-床や壁の端が見えないように調整して下さい。
-全体がカメラの視野に収まるように調整して下さい。
-色やテクスチュアの設定は不要です。
-基礎技術の確認が目的なので、出力サイズは 960x540(16:9)で十分です。
~

***ファイルの保存について
-Blenderファイルの保存(設計図の保存)
-レンダリングイメージの保存(出力結果の保存)
~
~

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

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

***オブジェクトモードとエディットモード
**オブジェクトモードとエディットモード
#YouTube(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 です。Meshは頂点(Vertex)、辺(Edge)、面(Face)、法線(Normal)((3DCGでは「面の法線」は、表裏(可視/不可視)の判定や面の明るさ計算等に利用される非常に重要な概念です。))、の情報を持ちます。
 通常は、平面(Plane)、立方体(Cube)、球(UV Sphere)などのプリミティブを編集しながらモデルの形状をつくっていきます。

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

***頂点・辺・面の選択
#YouTube(U_o8LeDWwl8)
#image(Blender/SelectMode.jpg,right,30%)
選択には、頂点・辺・面の3つのモードの切り替えがあります。EditMode 時に 3D Viewport の Header に表示されるアイコンでも切り替え可能ですが、以下の数字キーでも切り替え可能です。
 頂点選択モード:[1]
 辺選択モード:[2]
 面選択モード:[3]
&scale(85){注) Select Mode [1] - [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]
~

-''頂点・辺・面の追加・削除・複製''
頂点の追加、頂点を接続して線にする、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''
***押し出し(掃引)|Extrude
#YouTube(9q3WpgCB0pE)
面(辺・頂点)を法線方向に引っ張って立体(面・辺)へと次元拡張する操作を「押し出し(掃引)」といいます。ツールバーの ''Extrude'' アイコンを使うこともできますが、以下のようなキー操作の方が簡単です。
 面(辺)を選択して、[E] + [Mouse Move]
~

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

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

-''回転|Spin''
***回転|Spin
#YouTube(9oMLie3Lf9o)
頂点・辺を回転させて形状を作るには、ツールバーの ''Spin'' を使います。
回転体は、グローバルZ軸まわりに生成されるので、一般に次のような手順で作業を行います。
一般に次のような準備を行います。
 回転体の元になる頂点・辺は、正面ビューで形を整える
 上面ビューに切り替える:[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''
***細分化|Subdivide
#YouTube(5e8LuLpGReQ)
メッシュを細分化したい場合は、以下の手順です。
 細分化したい面を選択
 Header > Edge > Subdivide
コントロールパネルが表示されるので以下を設定
 Number of Cuts:分割数
 Fractal:ランダムな分割の係数(必要に応じて)

-その他
--直前の操作は記憶されているため、それを繰り返すことができます。
 ツールパネルの Repeat > Repeat Last または [SHIFT] + [R]
 複製・移動の後に行うと、連続的な追加配置ができます。
--選択したオブジェクトの表示 / 非表示はオブジェクトモードと同じです。
 対象を非表示:[H]
 対象以外を非表示:[SHIFT] + [H]
 解除:[ALT] + [H]


~

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

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

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

***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 で、曲線やメッシュに変換します。
~

***Modifier の利用
オブジェクトの形状を Twist(捻る)、Bend(曲げる)、Stretch(伸ばす)などの変形操作には、モディファイアを使うのが効率的です。
 プロパティエディタの Modifier タブで、Add Modifier > 手法の選択
 当該手法に関わる各種パラメータの設定
&small(注)Modifierはモデルのデータ構造によって、使える機能が異なります。極端な例では、Metaball には、適用できる Modifire がないので、Modifireタブ自体が表示されません。);

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

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

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

**APPENDIX
今回の説明内容の詳細は、以下のページに記載しています。動画を見るより読む方が早い・・という方は、以下をご覧下さい。

-__[[Blender/Modeling]]__
~
~
~