distribute,Houdini,hqueure,simulation,分散シミュレーションみなさん、こんにちは。私はプラシャントと言います。私は、インドからやってきました。TALKの最初の記事となります。記事に入る前に簡単ではございますが、私の自己紹介をしたいと思います。私のCGキャリアのスタートは、9年前の2005年からになります。インディアに在籍しておりました。約4年間テクニカルディレクターとして働いていました。Berk(Television)などになります。ドリームワークスに入社する前は、プラナスタジオというところでFXTDとして働いていました。私は、HoudiniやMayaを使って、様々な自然現象をCGの中で模倣し表現することや、そのアイデアを見つけツール等に実装したり、問題解決に興味があります。その中でも、特に関心が高いのが流体やダイナミクス、パーティクルシミュレーションなどを手続き型の手段を使って行う研究開発です。今回の記事では、HoudiniでHQUEUEを使用した分散シミュレーションをどの様に行うかを解説していきたいと思います。HQUEUEとは、SideEffects社が無料で提供している分散シミュレーションツールです。詳しくは下記のリンクに記載されていますのでご確認ください。http://www.sidefx.com/docs/hqueue12.0/help/今回私が試した方法とは違った形が他にもたくさんあるかもしれませんが、今回の記事が少しでも皆さんのお役に立つことを望んでいます。http://www.sidefx.com/docs/hqueue12.0/help/installation.html分散SimulationHoudiniではシミュレーションを分散する方法が主に二つあります。1フレームを複数のマシーンで分散2は、「スライシング」という方法で、エフェクトをスライスに分け、各スライスを別のマシーンでシミュレーションを行います。スライス分けする方法は二通りあります。Simulationという方法があります。Clusteringは巨大なシーンやバラバラになっているスモークまたはPyroシミュレーションを複数の流体に仕切り分けることができます。この方法は効果的に体積を馴染ませることができる他に、複数のマシンに分散させることができます。Fluidシェルフの中から下図のツールをクリックします。これらによって流体パーティクルシミュレーションを分割します。プレーンを使用したスライスを行う場合には、AutoDopNetworkの中にある、flipfluidobjectの後にslicePlaneが追加されます。ノードネットワークは下の図を参考にしてください。分割が出来たら、次の段階はどちらの方法で計算を分散させるかを選択します。Fluidツールを選択すると分散する流体パーティクルまた流体の選択が表示されます。Methodウィンドウが表示され、ディストリビューション方法の選択をきかれます。パーテーション無しを選択すると1つのマシンで全体のシミュレーションが行われます。スライスすると流体を仕分けられます。分割のセットアップが終わったらSliceボタンを選択してください。ステップ3で下図で四角く囲んだノードがAutoDopNetworkの中に追加されました。ステップ3で追加されたdistribute_flipfluidobjectノードは次の様になります。インアウトネットワークを設定します。distributesimノードを選択し、パラメータペインに移動します。Nameの入力欄にジョブの名前を入力します。driverの欄はデフォルト値のままで構いません。Serverの欄には、あなたの環境のHQueueサーバーの情報を入力します。次にあなたがシミュレーションしたいシーンファイル選択します。あなたは、下のドロップダウンメニューの中から3つのオプションの内以下のいずれかを選択する事が出来ます。下の図で示した通りに私は値を変更しました。私は現在のHIPファイルをシミュレーションする代わりに、対象となる別のファイルを使用しています。HFSの値も絶対パスに変更しました。Slicegeometryノードで変更します。distributedsimノードにあるレンダーボタンを使い、レンダリングを起動させます。すると下記が表示されます。スライスされたシミュレーションが複数のマシンに振り分けられます。ステップ3が終わった後に、あなたのシーンファイルの中でセットアップを完了しなければいけない事を覚えておいてください。シミュレーションを設定後、プレイバックするとシーンビューは一つのスライスしか表示しません。distribute_flipfluidobjectをオフにしてください。分散シミュレーションがHQueueで終わった後でdistribute_flipfluidobjectにあるloadslicesはスライスされたシミュレーションをHQueueファームマシンに表示します。Clusterシミュレーションを作成します。下図では私が分散シミュレーションをお見せする為に使用した炎のシミュレーションを示しています。クラスター化した炎のシミュレーションを分散するにはまず、ContainerツールシェルフからDistributeツールを選択します。下図を参照してください。Containerを選択してください。その後、分散方法についても尋ねてきます。表示されたダイアログボックスではClusteringがSlicingかどちらを選択するか尋ねてきます。objectを分散したいのでClusteringを選択します。Contextの中にHQueueシミュレーションノードを作成します。スライス化されたシミュレーションをセットアップする時にも同じノードが作られます。全てのパラメータも同様です。Simulationノードの中のHQueueサーバの名前などを入力します。HIPは必ずしも変更する必要はありません。Object内に作成されます。シミュレーションの保存や共有の場所に起動させるためです。以上で、私からの投稿を終わりにします。最後までお付き合い頂きありがとうございました。公開している全ての手法・コードの有用性、安全性について、当方は一切の保証を与えるものではありません。これらのコードを使用したことによって引き起こる直接的、間接的な損害に対し、当方は一切責任を負うものではありません。(※必須):Website:Comment:コメントは承認制ですので、即時に反映されません。上に表示された文字を入力してください。月別アーカイブ2018年5月2017年1月2月3月4月6月10月11月2016年1月2月3月4月5月6月7月8月10月11月12月2015年1月2月3月4月5月6月7月8月9月10月11月12月2014年1月2月3月4月5月6月7月8月9月10月11月12月2013年1月2月3月4月5月6月7月8月9月10月11月12月2012年2月3月4月5月6月7月8月9月10月11月12月2011年1月2月3月4月5月6月7月8月9月10月11月12月2010年12月Footer。