Created on | Updated on

Vellumを使用した基本的な設定

Vellumは布、ワイヤ、ソフトボディ、バルーン、グレインの高速な作成を可能にするUnifiedソルバーです。 べラムワークフローはOpenCL、GPUで高速化された簡単なセットアップと制御を提供し、い非常に強力なビジュアルオプションも備えています。

ここではVellumの構成を含む操作、コリジョンの作成、コンストレイン、そしてソルバのワークフローの基本を学習します。

完成データはこの記事の一番下にあるリンクからダウンロードが可能です。

mceclip37.png

目次

衝突用ジオメトリの作成

衝突用グランドプレーンの追加

布の作成

ワイヤーの作成

Vellum Grainsの作成

Vellum PostProcess

 

衝突用ジオメトリの作成

Geoノードを作成します。

mceclip0.png

作成したGeoノードに入り、Platonic Solidを追加、Solid TypeをTeapotに設定します。

mceclip1.png

Radiusは3に設定しました。

mceclip10.png

mceclip3.png

Match Sizeを追加し、ジオメトリの底辺を合わせます。

mceclip4.png

mceclip5.png

Convertを追加して解像度を上げておきます。
mceclip32.png

mceclip33.png

この少し複雑なジオメトリを衝突オブジェクトに設定します。

Objectレベルに戻り、名前をwidgetに設定します。

mceclip6.png

widgetのUniform Scaleを3に設定します。

mceclip9.png

衝突用グランドプレーンの追加

シーンに地面を追加します。
Collisionsシェルフをクリックし、その中にあるGround Planeをクリックします。

mceclip7.png

地面がシーンに追加されました。

mceclip11.png

 

それではここに布を作成して、このティーポットと地面に衝突させましょう!

 

布の作成

Gridを作成します。

mceclip12.png

Gridの中に入り、ティーポットの上にグリッドを移動します。

mceclip13.png

mceclip14.png

布に十分な解像度を与えるためにグリッドの分割を増やします。

mceclip15.png

mceclip16.png

これで布の元ができました。

Objectsレベルに移動し、Gridを選択します。

mceclip17.png

Vellumシェルフをクリックし、その中にあるVellum Clothを選択します。

mceclip18.png

設定が追加されると、AutoDopが開いた状態になります。

mceclip0.png

Lキーを押して、ネットワークをきれいにすることが可能です。
Objectレベルに移動すると、データが追加されていることがわかります。

mceclip1.png

再度AutoDopNetworkの中に入ります。

左側を確認すると、groundplaneがStatic Solverに接続されています。

mceclip2.png

そして、右側にVellum Solverがあります。 

このVellum Objectでデータをアタッチしています。

mceclip3.png 

DOPやPOPで扱う他のオブジェクトとよく似ています。

右側をみるとシェルフツールから作成したのでMergeがあり、個々に他のノードも接続できるようになっています。現在はGrid Vellumと名前のノードだけが接続されています。これはVellum Sourceになります。

このVellum ObjectとVellum SourceがVellum Solverに接続されています。

Vellum Sourceを確認すると直接Gridジオメトリが指定されています。

mceclip4.png

そして、Constraintと呼ばれるものをひっぱってきています。ここでは/obj/grid1/CONとなっています。では、grid1をみてみましょう。

mceclip5.png

Gridの下にVellum Constraintsノードが作成されており、そこからGEOとCONがつながっています。このVellum Constraintsノードは各ポイント間のリレーションシップを作成しています。

ポイント表示をオンに設定します。

mceclip6.png

先ほどGridの解像度を50*50に設定しました。

Vellum ConstraintsにDisplayフラグを設定します。

クロスステッチパターンが表示されます。

mceclip7.png

Show Guide Geometryのオン・オフで切り替えることが可能です。

mceclip8.png

これを表示することでポイント同士がどのように接続されているのかがわかります。つまり、そのステッチは個々のポイントそれそれぞれを接続しているスプリングまたはマッチスティック(固定する木の棒にようなもの)と考えることができます。これらのスプリングやコネクションには柔軟性や抵抗などの特性があります。直線距離だけではなく、ポイント間の回転情報も表示されます。

Vellum Constraintsノードは3つの入力と3つの出力があり、この3つの出力が非常に重要になります。

左はVellum Geometryです。これはグリッドになります。

mceclip9.png

GridからVellum Constraintsノードに接続され、このポイント間に関係を処理し、情報を追加して、全く同じグリッドを出力します。

中央のピンクの出力はコンストレインを出力します。

mceclip10.png

mceclip11.png

Gridジオメトリのないコンストレインのみになります。

ざっと説明したので、AutoDopNetworkに戻り、最初のフレームから再生してみてください。

mceclip12.png

布が下に落ちて言うと、地面とは衝突しますがティーポットとは何も起こりません。これはティーポットがスタティックオブジェクトになっていないからです。

そこでObjectsレベルに移動し、Widgetを選択します。

mceclip13.png

CollisionsシェルフからStatic Objectをクリックします。

mceclip14.png

AutoDopNetworkをみると新しいオブジェクトが追加され、Static Solverに接続されています。

mceclip15.png

再生すると今度はティーポットと衝突するようになりました。

mceclip16.png

次はこの布の上におちるワイヤーを作成してみます。

ワイヤーの作成

シーンにワイヤーを追加し、クロスやティーポット、地面と相互作用させたいと思います。

Objectsレベルに移動し、Geoノードを追加します。

mceclip0.png

名前をwiresに設定し、ノード内に入ります。

mceclip2.png

ビューポートにマウスのカーソルを置いて、Spaceキーと2キーを同時におしてTopビューに切り替えます。

mceclip3.png

Curveノードを作成し、カーブを描いていきます。

mceclip4.png

Show Handleツールを選択します。

mceclip5.png

カーブをTopビューからかきます。

mceclip6.png

カーブができたら、Fキーを押して編集モードに切り替えすべてのポイントを選択します。
Cキーを押すとRadial Menuが表示されます。

mceclip7.png

Change Point Type>Make Smoothを選択します。

mceclip8.png

ポイント間の補間をスムーズにすることができました。

mceclip9.png

Gキーを押してCreateモードに変更し、他のカーブを作成します。

mceclip10.png

先ほどと同様にSmoothにしておきます。

mceclip11.png

mceclip12.png

Curveができたら、Transformノードを追加し、布の上に移動します。

Resampeでポイントを増やしましょう。

mceclip17.png

Objectsレベルに移動しwiresを選択します。

mceclip13.png

VellumシェルフからVellum Hairをクリックします。

mceclip14.png

DOPにwires_vellumを追加されました。

mceclip15.png

wires_vellumを選択するとこちらもVellum Sourceノードであることがわかります。
Wireのオリジナルジオメトリとコンストレインを指定しています。

mceclip16.png

つまり、布もワイヤも同じデータを参照し、それが同じVellum Solverで処理され、同じデータとしてVellum Objectが使用されています。これがUnified Solverといわれる理由です。すべての異なるオブジェクトを処理できる1つのソルバでありシミュレーションです。

再生して確認します。

mceclip18.png

次にGrainsを作成します。

Vellum Grainsの作成

Objectsレベルに移動し、Sphereを作成します。

mceclip19.png

名前をsphere?grainsに変更します。

mceclip22.png

Sphere_grains内部に入り

mceclip24.png

Wireの上にSphereを移動し、Uniform Scaleを3に設定しました。

mceclip25.png

mceclip26.png

Objectsレベルに移動し、Shere_grainsを選択します。

Vellumシェルフから、Vellum Grainsをクリックします。

mceclip27.png

新しいVellum Sourceが追加されました。

mceclip28.png

ビューポートを確認するとSphereの形状に小さなGrainsがびっしりつまっていることがわかります。

mceclip29.png

追加されたVellum Sourceを選択すると、布やWireと全く同じ設定が行われていることがわかります。

mceclip30.png

すべてが単一のVellum Solverにながれていきます。

各エレメントのポイントとそれぞれ異なるコンストレインリレーションシップが設定されています。

Objectsレベルに移動します。

mceclip31.png

再生します。

すべての要素が相互作用していることがわかります。

mceclip34.png

DOPでのVellum Sourceの設定は同じですが

mceclip35.png

Objectsレベルに移動し、sphere_grainsの中に入ると先ほどまで使用しているノードが異なることがわかります。

布とWireでは、Vellum Constraintsノードを使用していましたが、GrainsではVellum Configure Grainを使用しています。

mceclip36.png

Vellum Configure GrainにDisplayフラグを設定すると

mceclip37.png

このSOP内でグレイン自体が作成されています。

mceclip38.png

ソースオブジェクトのVellum Configure Grainにてシミュレーションの解像度のように設定することができます。

GrainsはSphereに基づいて解像度が設定されました。変更したい場合は、Vellum Configure GrainのParticle Sizeを変更することができます。

mceclip39.png

Particle Sizeを大きくすると

mceclip40.png

1つ1つのParitlceが大きくなるため、解像度が低くなります。

mceclip41.png

 

ここまで作った3つのそれぞれ異なるジオメトリは単一のDOPで処理されています。

mceclip42.png

これら3つのオブジェクトは、実はdopsの1つのデータ、つまりこのvellum obujectから出てきているのです。

mceclip43.png

1つのDopsオブジェクトに3つの異なるソースが存在します。各ソースには、そのソースが必要とする動作に応じた独自のタイプのコンストレインが設定されています。なぜなら、その情報をSOPに持ち帰ってレンダリングするからです。

Objectsレベルに移動し、Cloth Vellumの中に入ります。

mceclip44.png

単一インポートノードでジオメトリをインポートしています。

mceclip45.png

これは、AutoDopネットワークから実際にデータを取得することを意味します。

ひっぱってきているジオメトリは、Vellum Object1からきています

mceclip46.png

ClothやWire、Grainそれぞれの情報を取得しているのではなく、Vellum Solverを通して実行されているすべてをもってきています。Vellum Objectに関連したすべての情報をSOPに持ってきていることになります。データに関連するものはすべてソルバーであり、そのソルバーに供給するものは3つの異なるソースであることがわかります。

この話を持ち出したのは、ポストソルバー環境では、これらのことをどのように扱うかが興味深いからです。ポストソルバー環境とは、シミュレーションが終了した後のことです。

特定のパーツにスムージングを追加したい場合等、シミュレーション後にそれを行います。

シミュレーションをディスクにキャッシュを保存します。このvellum ioがキャッシュになります。

mceclip47.png

そして、最後のVellum PostProcessでSmoothやDetangleを行います。

mceclip48.png

ただし問題もあります。この中のいくつかの操作が特定のVellum Typeで正常に動作しないのです。そのため、ジオメトリのタイプを管理し、ポストプロセスが悪さするもののと正常に動作するもの管理する必要があります。

Vellum PostProcess

それではVellum PostProcessの設定に移動します。

このポストプロセスが必要なものとそうではないものを分けていく必要があります。
ここではもう一つのVellumタイプであるソフトボディも追加しておきましょう。

Create シェルフからTorusを作成します。

mceclip0.png

名前をわかりやすいように変更します。

mceclip1.png

ノード内に入り、Grainsの上に移動し、Uniform Scaleで少し大きくしましょう。

mceclip2.png

mceclip3.png

Objectsレベルに移動し、torus_Balloonが選択されている状態でVellumシェルフからVellum Ballonをクリックします。

mceclip4.png

DOPをみると新しいVellum SourceとしてBalloon_vellumが追加されています。

mceclip5.png

そしてこれらのデータがVellum Solverに共有され、Vellum Objectに渡されます。

mceclip6.png

Torus_Balloonに移動します。

mceclip7.png

ここではカスタムVellum Constraintsが2つ追加されています。Torusの内部ボリュームを維持できるように圧力を制御するものとコンストレインのストレッチやベンドを制御するものです。

ここでは細かい設定に関して説明を省きますが、重要なことはTorusから開始し、2つのコンストレインを通し、元のジオメトリとコンストレインを他のVellumタイプと同じように出力していることです。

これらのデータが直接DOPに供給され、処理を実行した後、再度SOPのDop Import Fieldに渡されます。

mceclip9.png

SOPに情報を取り込んだ後のこの2つのノードは視覚化のためのノードです。ビューポートでの見栄えをよくすることができます。

mceclip10.png

そのあとのVellum ioで一旦キャッシュを作成します。

100フレーム辺りまでで十分です。

mceclip11.png

キャッシュを作成したらLoad from Diskを有効にして置きます。

mceclip12.png

タイムスライダの下にあるシミュレーションを無効をクリックしておきます。

mceclip13.png

Vellum PostProcessにDisplayフラグを設定してタイムスライダを動かして結果を確認します。

途中布の一部がガタガタしていることがわかります。

mceclip14.png

これはコンストレインに基づき正しくシミュレーションされていますが、布としては不適切です。同じことがバルーンにもいえます。解像度が足りず少しがエッジがシャープになっています。

mceclip15.png

ただし、ジオメトリすべてに補正を行う必要はありません。ただこの部分の修正はとてもコストがかかってきます。そのためこのVellum PostProcessを使用します。

このVellum PostProcessを使用することでスムージングがもつれをほどくだけでなく、布など特定の素材に厚みをもたせることができます。そうすることでジオメトリを実際の厚い布のように見せることが可能になります。

最初に伝えた通り、いくつかのVellumタイプではこの処理が必要ではない場合もあります。

例えば、SubudivisionをCatmull-Clarkに変更し、Subdivision Depthを2に設定します。

mceclip16.png

再生すると、高速に再生しつつジオメトリが滑らかになっていることがわかります。

mceclip17.png

Balloonも滑らかになっていますが、その下にあった本来あるはずのGrainsがないのにキャッシュで位置をたもっているため空中に浮いているように見えています。

mceclip18.png

つまり、GrainsやWireなどスムージングを正しく処理できない要素が失われてしまっています。このように正しくない処理が行われるVellumタイプを分けて管理する必要があります。

キャッシュの後に後処理を行うものと必要ないものをわけていきます。

データを見えやすくするためNullを追加しています。

mceclip19.png

GEOの下にBlastノードを追加します。

mceclip20.png

何で仕分けるかですが、Geometry Spread Sheetを確認すると「patchname」というアトリビュートが作成されていることに気が付きます。これを使用することで必要なパッチだけを取得することができます。

mceclip21.png

後処理を追加したいパッチは以下の二つです。

mceclip22.png

DOPに戻りblastに以下のように設定しました。

mceclip24.png

わかりやすいように名前を変更します。

mceclip26.png

Altキーを押しながらドラッグしてノードを複製し、名前を変更しました。

mceclip27.png

Delete Non Selectedをオフにします。

mceclip28.png

次にコンストレインです。

現在ここにはすべてのコンストレイン情報が含まれています。

mceclip29.png

mceclip30.png

PostProcessですべてのコンストレインノードを処理する必要はありません。効率的に処理を進めるためGrainsやWireのコンストレインはPostProcessには今必要ないことがわかります。

そこでGeo用に作成したBlastノードを複製します。

mceclip31.png

これで必要なコンストレイン情報だけを取り出すことができました。これで必要なデータだけをVellum PostProcessに提供し、効率よく処理することが可能です。

これでPostProcessに必要なものだけがPostProcessに接続されているため、スムージングをかけることが可能です。

mceclip32.png

また、Extrude by Thicknessを有効にして布に厚みを加えます。

mceclip33.png

Mergeノードを追加し、PostProcessを追加したものと追加していないものを統合します。

mceclip34.png

再生し、すべてのVellumが機能していることを確認します。

mceclip35.png

今回はシェルフから作成したので、DOPを使用しましたが、Geometryレベル(SOP)でもVellum Solverが使用できるようになっています。先ほど作成したすべてのタイプをSOPで作成することが可能です。つまり、Houdini CoreでもVellumを使用することができます。

mceclip36.png

こちらの使用方法はこちらの記事をご参照ください。

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

※ 問い合わせ対応はBorn Digitalより製品をご購入頂きましたお客様のみのサービスとなります。ご了承下さい。
サポート問い合わせ