#author("2023-05-10T12:33:32+09:00;2022-09-13T11:24:15+09:00","default:inoue.ko","inoue.ko") *第14回 物理シミュレーション [[3DCG演習/2023]]|''2023.08.31 -'' ~ ***解説動画 //#youtube(ALK2fCloaww) //-録画済み動画です。再生して視聴してください。 //-以下名簿が表示されます。''既読確認(出欠確認)''をお願いします。 &fontawesome(far fa-hand-point-right); __[[既読確認>]]__ ~ ***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ならではの「動き」の表現を検討してください。 -映像作品としての魅力を引き出すカメラワークを検討してください。 -形状変形や物理シミュレーションの活用は必須ではありません。 ~ ~ ~ ~ ~