Dopnetwork
:HooudiniFX15.5.673
今回はHoudiniを通して
VFXで用いられるSimulationという事を前提にしております。
数値や挙動の正確性が求められる物理simuationとは異なります。
先に言うときますが....
Simulationは難しいです。
ですが...
一つずつ細かく整理していけば案の定、自分いけるやん!!
って感じるようになります。
数学物理の世界になりますのでどうしても
ある程度、自学自習が必要だと僕は思っております。
これからSimulationを用いてFX_artistを目指す方や
とりあえずSimulationFxを勉強したい人向けに記述していこうと思います。
VFX_Simulationを実行するAppは
たくさんあります。
Maya,Houdini,C4D,Max...
Plug-inもたくさんあります。
それぞれいい部分と悪い部分があります。
GPU_SimulationもあればCPU_Simulationがあります。
何が言いたいっかていうと
自分が学生の時にSimulationを勉強していた頃に
本当にざっくりした情報しかなくめちゃくちゃ大変でした。
その時にあのPlug-inはいい。あのソフトはダメだという事を
情報として出回っていて、よく混乱を招いていました。
Maya_FluidでもHoudini_Fluidでも結果を求めるアプローチが違うだけで
コアの部分では両者とも同じ事を求めています。
使用するtoolに左右されず
勉学に励んでみてください。
以下の書籍を事前にさらっと読んでおくといいかもです。
CGのための物理シミュレーションの基礎
https://book.mynavi.jp/ec/products/detail/id=24247
ゲーム制作者のための物理シミュレーション 剛体編
http://book.impress.co.jp/books/3282
ちなみに自分のメインオペレーションToolは
HoudiniFX,RealFlowです。
さて...
本題に入ります。
HoudiniでSimulationする場合はDopを使用します。
DopNetworkはSop内にも呼び出すことができます。
:Tutorial等でも基本的な部分は触れているので基本的な説明は省きます。
HoudiniではこういったStream(Data_Flow)でDataを制御していきます。
視覚的に分かりやすいですよね。
二つのTargetがあって
一方にはGravityを設定しています。
影響するのは一方だけでってゆう簡単なSystemを構築しています。
基本的な構造はこんな感じですね。
MicroSolverについて
Dop内でよく使うSolverの拡張機能みたいなモノやと思ってください。
以下はMicroSolver一覧です。
以下はMicroSolverの論文です
Controlling Fluid Simulations with Custom Fields in Houdini Master Thesis
https://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Claes/thesis/PeterClaesThesis.pdf
こちらも参考になります
Art Directed Fluid Flow With Secondary Water Effects
http://www.diva-portal.org/smash/get/diva2:559073/FULLTEXT01.pdf
主に使われるのはVolume Simulationで
僕自身Fluid_Simulationでゴリゴリ使用しています。
以下はMy_method FluidSolverです。
僕はSideFxの開発者ではないので
細かい部分はわかんないので実際の挙動と照らしながら
アルゴリズムを構築していくスタイルをとっています。
Simulationで扱うGeometryは大きく分けて....
:Topology
:Volume
と僕は認識しています。
Rigid,Cloth...
Water,Smoke...
こんな感じでしょう。
アクセスできる最小単位について考えてみましょう。(選択できるDataと考えましょう)
頂点で構成されているモノはpointを選択できるため、扱いが容易なのが分かります。
:色情報をvertexに持たせたり、選択する幅がかなりありますよね。(vertex-point-primitive-detail)
一方で
Volumeを選択したい場合...
最小単位は空間になります。
つまりは場所で選択するということになります。
Houdiniだと位置座標はその空間の中心点を参照してくれます。
空間については書籍等で勉強してください。
一気にざっくりしたDataになりますよね。
空間って...
Volumeになると今までpointやらで制御してきたものとは扱いが
変わりますので、一気にハードルがあがります。
学校とかでもあまり取り扱ってくれないような気がします。
HodiniのVolumeはprimitive_levelで制御していきます。
@name_density
@density
てな感じです。
前置きが長くなりましたね。
これらの概念がHoudiniのSimulationで非常に重要になってきます。
もう一回いいます
Dataの取捨選択が非常に重要になります。
Sopで色々DataのControlの幅を増やす練習をしてからSimualtionに入るのも賢い手かもしれません。
実装していきましょう。
SampleのMicroSolverについては需要があれば公開いたします。
次号に続く