LogoMark.png

Computer のバックアップソース(No.1)

#author("2022-09-13T11:24:15+09:00","default:inoue.ko","inoue.ko")
*第14回 物理シミュレーション
[[3DCG演習/2022]]|''2022.09.13 -''
~

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

***CONTENTS
#contents2_1

~
~

**物理シミュレーション
Blender では、引力・斥力・磁力・風力といった場の設定や、液体やガスの流れなど、様々な物理現象をシミュレーションすることができます。これらのパラメータは、一般に PropertyEditor の Physics タブを使って設定します。
~

***物体の落下と衝突
物体の落下や衝突のシミュレーションには、Rigid Body(剛体)を使います。

-1) 基本設定
--落下する立方体(剛体)の設定
---立方体をシーンの上の方へ移動させます。
角から落ちるように、適当に回転させておくとよいでしょう。
---立方体を選択した状態で以下のようにします。
 PropertyEditor > Physics タブ > Ridged Body > Type:Active
&small(Active:剛体として物理的な環境(重力)の影響を受けます。);
--床(剛体)の設定
---立方体よりも下に、平面または平板を床として表示。
---床をを選択した状態で以下のようにします。
 PropertyEditor > Physics タブ > Ridged Body > Type:Passive
&small(Passive:物理的な環境(重力)の影響を受けず、その場に固定されます。);
--アニメーションさせてみてください [SPACE]
立方体が落下して、床に当たって止まる状況がシミュレーションされます
--同様に複数の物体を配置して Ridged Body に設定すると、物体間の衝突がシミュレーションできます。

-各種設定
--Bounciness:跳ね返り係数
---この値を大きくすると衝突時の跳ね返りが大きくなります。
---衝突する両方の物体とも値を持つ必要があります。例えば、上記の例では、落ちる立方体と床の両方の係数が大きくないといけません。
--Collisions > Shape:衝突判定の形状
---デフォルトは Convex Hull(凸包)で、形状の凸部分でラップした形を衝突面として利用します(ざっくりしたシミュレーションになります)。
---形状の凹凸に忠実に判定するには、Mesh にして下さい。
--Friction:摩擦
---表面の滑りにくさを設定することができます。
~

***風になびく旗
旗やシーツのような布状のものの振る舞いをシミュレーションするにはCloth(布)を利用します。

-1) 旗が固定されるポールをつくります。
--円柱を細長くして立てます。

-2) 旗をつくります。
--オブジェクトモードで平面を追加して縦横比を旗のそれにして下さい。
--これを移動してポールの上の方に隣接させて下さい。
--旗の平面をエディットモードで細分化します。
 Header > Edge > Subdivide > Subdivide パネルで細分化
--布のように見せる前提なので、スムーズシェーディングを設定します。
 オブジェクトモードで、右クリック > Shade Smooth

-3) 旗の端を固定するための準備をします。
--ポールに接する部分(旗の端)を頂点グループに設定します。
 エディットモードで、旗の端を Box 選択
 PropertyEditor > ObjectData Property > Vertex Groups パネル > [+]
 Weight 1.0 の状態で [Assign] をクリック
 グループの名称は適当につけてください。
--ちなみに設定できたかどうかは、Weight Paint モードにするとわかります。
設定された部分が赤く表示されるはずです。

-4) 旗に Cloth の設定を行います。
--旗のオブジェクトを選択して、Cloth - Cotton を適用します。
 PropertyEditor > Physics タブ > Cloth > Type:Cotton
--旗の端が動かないようピン留めします。
 PropertyEditor > Physics タブ > Cloth > Shape > Pin Groupで
 旗の端に設定した頂点グループ名を指定

-5) アニメーションさせてみてください [SPACE]
旗が重力にしたがってぶら下がる様子が確認できると思います。

-6) 最後にシーンに「風」を設定します。
--シーンに風の ForceField を追加します。
 Header > Add > ForceField > Wind
 旗のポール側から風があたるように位置を調整します。
--デフォルトでは風が弱いので、強くします。
 PropertyEditor > Physics タブ > ForceFields で
 Settings > Strength > 2000 ぐらいまで上げてみて下さい。

-7) アニメーションさせてみてください [SPACE]
旗が風になびく様子が確認できると思います。

~


***流体のシミュレーション
流体(液体やガス)のシミュレーションには Fluid を利用します。この機能を利用するには、シミューレーション領域としての ''Domain'' と 液体またはガス流体としての ''Flow'' の2つを設定する必要があります。

-1) Domain の設定
この作業の初動では、Domain の中が見えるように、3D Viewport の表示は、ワイヤーフレームにして下さい。
--直方体をシーンに追加して、以下のように Domain にします。
 PropertyEditor > Physics > Fluid > Type:Domain
注)他の形状のメッシュもドメイン オブジェクトとして使用できますが、流体シミュレータは形状のバウンディング ボックスをドメイン境界として使用します。つまり、ドメインの実際の形状は直方体のままです。
--この時、直方体の下に見える小さな立方体は、ボクセルのサイズを可視化したものです。ボクセルサイズは以下の設定で変更可能です。
 PropertyEditor > Physics > Fluid > Settings > Resolution Divisions:値
--Domain のタイプを Liquid / Gas から選択します。
 PropertyEditor > Physics > Fluid > Settings > Domain Type:Liquid
--重力は、デフォルトで -9.8m/sSUP{2}; が設定されています。
--''Liquid を選択した場合は、Liquidパネル内の Mesh にチェックが必要''
これをしないと、レンダリングしても何も表示されません。
--Bake(書き出し保存)に関する設定は Cashパネルで行います。
---キャッシュファイルの場所を設定をします。
キャッシュファイルは、デフォルトでは tmpフォルダに作成されます
放置するとゴミが溜まるので、場所は明示的に決めましょう。
---Frame Start と End  でシミュレーションの時間範囲を決めます。
---Type 
・''Replay:プレビュー時に自動でシミュレーションとベイクを行う''
・Modular:要素ごとにベイクします
・All:すべてをベイクします( Bake All ボタンが出現します)

-2)  Flow の設定
--任意のメッシュをシーンに追加して、以下のように Flow にします。
 PropertyEditor > Physics > Fluid > Type:Flow
--Flow Type を Liquid / Smoke / Fire などから選択します。
 PropertyEditor > Physics > Fluid > Settings > Flow Type:Liquid
--Flow Behavior(フローの挙動)を選択します。 
---Inflow:蛇口から水が出るように継続的に液体が流出。
---Geometry:オブジェクトの形を初期状態とした液体の流出。
--Initial Velocity にチェックを入れると、上や横に吹き出すシミュレーションが可能になります。X, Y ,Z の値が各向きの初速度になります。

-3) Effector の設定
流体が衝突する障害物(流れが制限される形状)を設定します。
--任意のメッシュをシーンに追加して、以下のように Effector にします。
 PropertyEditor > Physics > Fluid > Type:Effector

-4) シミュレーション
--Domainオブジェクトを選択して、Physics タブ、Fluid > Cash で
Type:Replay を明示的に選択してください。
> Flowオブジェクトが時点で、Flow として振る舞います。
--アニメーションさせて確認してください( [ SPACE ] )
流体の動きが確認できると思います。

''付記:Quick Effect  について''
最新の Blender では、このシミュレーションが、Quick Effect で簡単に設定できるようになりました。例えば、シーンに球体を配置して、以下のようにすると、ドメインが自動生成されて、シミュレーションの基本的な準備が整います。
 Header > Object > Quick Effects > Quick  Liquid

~
~

**課題3 Another World 
シンプルなオブジェクトのトランスフォーム、パスアニメーション、階層アニメーション、キャラクターアクション、物理シミュレーションなど、形式は自由です。実写とは異なる 3DCGならではの表現可能性を模索してください。
-参考 : [[YouTube: 3DCG Animation]]

~


***提出仕様
-画面サイズ:自由(最小 640px幅)
-時間:10秒以上(10 s  x  30 fps  =  300 frame)
&small(透明・反射を含んで Cycles でレンダリングすると相当な時間がかかります。);
-音声:自由(基本的に無音でも構いません)
-ファイル形式:YouTube にアップできる形式であれば自由
-提出場所:[[学科サイト 各個人の当該授業ページ>https://design.kyusan-u.ac.jp/socialdesign/?3DCG%E6%BC%94%E7%BF%92]]
--見出しの「Animation」を「作品タイトル」に変更するとともに、制作のコンセプトを簡潔に記載して下さい。
--無音の場合は、掲載動画の直下に「この作品には音声はありません」などと、無音であることを注記してください。
-提出締切:9月30日(課題1、2の最終提出も同日最終締)
~


***表現について
-CGならではの「動き」の表現を検討してください。
-映像作品としての魅力を引き出すカメラワークを検討してください。
-形状変形や物理シミュレーションの活用は必須ではありません。
~
~
~
~
~