Houdini 18.5 で導入された KineFX は、リターゲットやモーション編集にプロシージャルな基盤を提供するキャラクタツールセットです。将来は、リギングやアニメーションにも拡張の予定です。ジオメトリコンテキストにおけるこの新しいワークフローは、限りない柔軟性とキャッシュ機能を備え、迅速かつプラグアンドプレイのリギング体験を実現します。

+ さらに詳しく

Houdini 18 では Solaris を導入、ルックデブ、レイアウト、ライティングのワークフローに対応しました。当初は、USD ベースのパイプラインに対応するフレームワークを確立することが焦点でしたが、Houdini 18.5 では、アーティスト主導のワークフローを確立するツールの作成に焦点が移行しています。

+ さらに詳しく

Houdini 18.5 の VFX における主要なイニシアチブの一つに、高レベルツールを導入し、最終品質レベルの結果をアーティストが手軽に得られるようにすることがありました。VFX のセットアップと実行が簡単になれば、多数のイテレーションが可能になり、プロジェクトごとのクリエイティブなニーズにより良く対応できます。

+ さらに詳しく

 Akmal Sultanov

Akmal Sultanov はバンクーバー在住の FXTD で、Houdini の使用歴は 10 年になります。Sony Imageworks、MPC、Mr.X、DNEG、Digital Domain などのスタジオで働いてきました。流体シミュレーションやさまざまなソルバを試すのが大好きで、Houdini は、このような実験に最高の遊び場です。

 Attila Torok

Attila Torok は、SideFX で働くロンドン在住の FX TD です。SideFX の学生インターンシップに参加後、DNEG で「ハンガー・ゲーム 2」「GODZILLA ゴジラ」などのプロジェクトに参加しました。SideFX に戻る前の 4 年間は ILM に勤務し、「ドクター・ストレンジ」「アベンジャーズ/インフィニティ・ウォー」「レディ・プレイヤー 1」「スター・ウォーズ/スカイウォーカーの夜明け」などの映画に参加したり、パーティクルシミュレーションや変形および引裂可能なリジッドボディシミュレーション、Pyro といった社内向けツールを構築、メンテナンスしていました。

 Bogdan Zykov

ウクライナ在住の Bogdan Zykov は、アナログで腕を磨いた 2D アーティストであり、3D ゼネラリストで、主にゲーム向けのアートを制作、特に Houdini と Python を使用したデジタルアート作成の自動化の分野で活躍しています。

 Bruno Peschiera

Bruno Peschiera はブラジル出身のキャラクタアーティストで、ビデオゲーム業界で働いています。ゲームデザインの学校に通いましたが、デジタルスカルプティングに転向し、その分野で身を立てることにしました。ここ 7 年ほどはデジタルスカルプティングを仕事にし、「Street Fighter V」「Marvel vs. Capcom: Infinite」などのプロジェクトで、素晴らしい人たちと仕事をする機会を得ています。

 Daniel Siriste

Daniel Siriste は 3D アーティストです。3D ソフトのマニュアルを読み始めた頃は、言語から理解しなくてはなりませんでした。今では英語力も向上し、自分の考えを言葉およびビジュアルで自在に表現できます。作品制作で収入を得て、美味しいものを食べることが好きです。

 Emily Fung

Emily Fung は、ゼネラリストの経歴を持つ Houdini FX アーティストで、2018 年に学校を卒業し、3D アーティストとしてイギリスで職を得ました。その後カナダに移った彼女の直近の肩書は、SideFX のテクニカルアーティストです。

 Fianna Wong

Fianna Wong は、SideFX のテクニカルマーケティングリードです。自分のことを話したり、仕事について説明するのが好きではないため、これ以降の文章はただのおまけです。毎日の生活を楽しみ、「アビス」や「ターミネーター 2」の時代からコンピュータグラフィックスをこよなく愛しています。

 Kyle Climaco

Kyle Climaco は SideFX の新入りインターンで、卒業したセントラルフロリダ大学では、キャラクタアニメーションを学びました。現在の関心は、アート、テクノロジ、問題解決です。映画やアニメーションの業界で、目を楽しませるエフェクトを作りたいと思っています。

 Nikola Damjanov

Nikola Damjanov はゼネラリスト 3D アーティストで、10 年以上にわたり、さまざまな経験を積んできました。ここ 8 年ほどは Nordeus に所属し、アートスキルの向上、新しいツールの探求、ツールの早期導入に積極的に取り組んでいます。昼はゲームアーティストとして働き、夜はプロシージャルをあれこれ試しています。

 Olivier Orand

フランス人のエレクトロニックミュージックプロデューサであり、作曲家でもある Olivier Orand は、英国の初期の「IDM」シーンに大きく影響を受けました。強さと繊細さをミックスした彼の音楽は、感情と画像のつながりに焦点を当てています。最初のアルバム「Human」のリリース後、表現をさらに押し進めました。「構造化されていない」ボーカルとシャープなサウンドデザインをベースとする新しいアルバムは、その探求の結果で、2020 年後半または 2021 年前半にリリース予定です。

 Steven Stahlberg

スウェーデン系オーストラリア人の Steven Stahlberg は、1984 年にイラストレータとして働き始め、1995 年からは香港でコンピュータグラフィックスを手掛け、アメリカに渡った後、現在はマレーシアを拠点にフィギュアやコミックスを制作しています。

 Nathaniel Larouche

Nathaniel Larouche は、VFX およびアニメーション業界で 14 年間の経歴を重ね、モーショングラフィックスで才能を発揮し、モデリングやテクスチャリングでスキルに磨きをかけ、主として CG ゼネラリストやスーパーバイザとして活躍してきました。日中は、Pixomondo 社のセットや社内で過ごし、数多くのメディア向けの画像を作成しています。夜は、世界中のクリエイティブたちと実験やコラボレーションを行っています。こうした活動から、「Necronomicon」「Baby Deer」「Soft Rain」などのユニークなコンテンツが生まれました。最新作が短編映画「Dawning」です。

 Akshay Dandekar

Akshay Dandekar は永遠の学習者であり、映像に関する物事すべてに興味があります。独学のカラリストとして、5 年以上の経験を積み、VFX ワークフローのカラーパイプラインにおいて深い知識を発揮します。仕事以外では、盆栽の手入れを楽しんでいます。

 Simon Atkinson

Simon Atkinson は、プロのモデルメーカーでありイラストレータで、40 年を超えるキャリアの持ち主です。彼の作品は、映画、テレビ、航空宇宙、モータースポーツ、建築、プロダクトデザインなどの業界で使用されています。現在は、シティオブグラスゴー大学のクリエイティブインダストリ学部で HND モデルメーキングのコースオーガナイザ/講師を務めています。

 Cinemotion Crew

Rossy Kostova は、Cinemotion 社のジュニアキャラクタ TD で、ボーンマス大学でコンピュータビジュアライゼーションおよびアニメーションの学士号を取得しました。

Milovan Kolev はシニアキャラクタアニメータで、1998 ~ 2006 年は 2D のアニメータでした。その後は 3D アニメータとしてゲーム、広告、映画業界で活躍し、カートゥーンとフォトリアリスティックの両方のアニメーションを手掛けています。

Victor Trichkov は 22 年前の Cinemotion 社を設立以来、VFX プロデューサ、VFX スーパーバイザとして精力的に活動し、スタジオのクリエイティブなビジョンを導いています。


  • Scatter

    by Emily Fung

  • Sand

    by Kyle Climaco

  • Terrain Strata

    by Nikola Damjanov

散乱配置のチュートリアル

1. ジオメトリの取得

この例では、地形に岩を散乱配置します。手元に使用できる岩のジオメトリがなくても、Houdini なら、さまざまな方法で生成できます。私が試したのは、通常の Houdini プロシージャルモデリングワークフローと、SideFX Labs ツールセットの AliceVision プラグインを使用した 3D スキャンです。

2. COP でマップを生成

プロシージャルに作成した岩に、COP を使用してシンプルなテクスチャマップを生成しました。ここでは、いくつかのノイズパターンに亀裂を重ねて不完全さを出しています。手を加えて複雑にすることもできますが、岩はカメラから遠い場所にあるため、テクスチャには時間をかけないことにしました。

3. 散乱配置のためのジオメトリの準備

散乱配置を行う地形ジオメトリはありました。しかし、それはハイポリで、複数のパーツに分かれていて、このプロジェクトには理想的とはいえません。不要な領域を削除してから、メッシュ全体に PolyReduce を適用するだけで、ずっと作業しやすくなります。次にさまざまなブール演算を実行してジオメトリをクリーンアップし、散乱アトリビュートの準備をします。

4. マスク/散乱アトリビュートの準備

ここで、散乱用にさまざまなアトリビュートとマスクを追加します。通常は、VEX/VOP を使用します。しかし、Houdini 18.5 で導入された Mask by Feature ノードには便利な機能がたくさんあり、優れたマスキングの結果を効率よく得ることができます。

5. Scatter and Align

Houdini 18.5 の新しい Scatter and Align SOP は、高レベルの Scatter ノードで、向きやスケールなどのポイントのバリエーションをコントロールできます。重なったポイントを削除する機能なども搭載され、とても便利です。マップを使用して、密度や領域をカスタマイズします。

6. Point アトリビュートの追加

Scatter and Align SOP を使用してさまざまなアトリビュートを生成できますが、ポイントを作成した後に、いつでも変更を加えることができます。新しい Attribute Adjust Foat SOP は、Attribute Randomize SOP と同様の機能ですが、非常に便利な追加機能がいくつかあります。

7. Copy Geometry

Houdini 18.5 の新しい Attribute From Pieces SOP を使用すると、モデル上をコピーしたいポイントに対し、アトリビュートを明示的に割り当てられます。ルールを簡単に設定し、散乱をカスタマイズできるので、さまざまなピースを特定のポイントに散乱配置したいときにはとても便利です。この例ではジオメトリが 2 セットあり、このノードを使用して、ポイントに散乱配置するピースをランダム化します。また、カメラからの距離 (LOD) に応じて、別のジオメトリをコピーすることもできます。

8. クリーンアップと最適化

岩ができたので、カメラに写らない岩を削除してクリーンアップし、最適化します。この例では、カメラから UV アトリビュートを取得し、この情報を使用してポイントをカリングしました。ボリュームを使用しても、同じことを行えます。

9. LOP アプローチ - 散乱

USD を使うのが初めてで、コンセプトに馴染みがないため、LOP による散乱のアプローチをいくつか試しました。この例では、岩の LOD を生成し、Create LOD LOP を使用してそれらをバリアントとして保存します。すると、インポートしたポイントに簡単に岩をインスタンス化できます。これは後で Auto Select LOD を追加したときにうまく機能し、カメラからの距離に基づいてバリアントを選択します。

10. LOP アプローチ - レンダリング

最後は、Karma を使ったレンダリングを試しました。特に凝ったことはしていません。Houdini 18.5 には、まだ試したことのない、Solaris の素晴らしい機能が新しく搭載されています。USD のコンセプトについても、もっと研究しようと思います!

砂のチュートリアル

1. 地形での作業

現実のリファレンス写真を見ると、岩と岩の隙間や亀裂は砂で埋められていることが多く、オクルージョンが必要情報を提供できると分かりました。平坦で開けた領域のマスク値は低く、隙間の部分のマスク値は高くします。ジオメトリを Height Field に変換したら、Mask by Occlusion ノードと Draw Mask ノードを使用して、マスクを利用して「絵」を作ります。つまり、砂が多く必要だと思った場所にオクルージョンを追加します。その後ジオメトリに戻し、特定のオクルージョン (この場合、値は .696) より高いポイントをグループ化し、残りは削除しました。

2. 深度の作成

粒子を効率的に扱うことが重要なので、カメラに写る範囲のジオメトリをペイントでグループ化し、残りは削除しました。ジオメトリは平坦ですが、粒子にはソリッドで閉じたサーフェスが必要です。数百万のポイントを散乱配置してからVDB に変換し、ポリゴンに戻してジオメトリ全体を取得します。その後、エクスプレッション「@N.y >= 0」を使用して法線によってポイントをグループ化し、上面を取得します。次に、上面のグループにかなり強力な Smooth をかけ、サーフェスを平坦にします。ジオメトリの上部はテンプレートジオメトリで、表示されているのは下部のジオメトリです。

3. 手動スカルプト

このステップは非常に単純で、ジオメトリを手動でペイントし、その値を使用して上部サーフェスを盛り上げました。その結果ジオメトリには極端な起伏ができましたが、目指していた状態には近づきました。もう一度 Smooth をかけて、砂山と周囲の領域との段差を滑らかにしました。

4. 砂で満たす

Group Paint ノードでジオメトリのアクティブな領域を制御し、残りのジオメトリを削除しました。粒子を使用する際に注意すべきは、エフェクトの最終的なルックに貢献せず、シミュレーションを遅くするだけのポイントがサーフェスの下にたくさんあることです。前と同じ方法を使用し、今回はもっと小さい値で上面のグループを盛り上げ、このジオメトリをシミュレーションの Collider としてソースしました。これにより、アクティブ領域のポイント数を 2500 万 から 700 万に減らすことができました。

5. 分割する

緑はアクティブな Grain Source で、青が背景の非アクティブな Grain Source です。ノードのスパゲティのように見えますが、簡単に説明すると、砂で満ちたジオメトリと古いジオメトリをブール演算して、アクティブ領域グループ内にないものを削除しています。背景の非アクティブなジオメトリを取得するには、アクティブな Grain Source ジオメトリを元のジオメトリからブール演算します。

6. 衝突の設定

ジオメトリが適切な VDB サーフェスボリュームを作成するように、エッジを押し出して、PolyFill を使用しました。また、前のステップで作成した砂の Collider VDB と環境を組み合わせました。宇宙飛行士に必要なのは脚だけだったので、上半身は削除して、データと計算を大幅に節約しました。

7. Grain (粒)の設定

パーティクルの間隔距離を別に記録しておくと非常に便利です。Grain Source ノードを使用したのは、Dither Surface パラメータを確認しなくてはならなかったからです。そうしないとポイントが表示されません。砂は周囲の岩が小さく砕けたものなので、地形と同じテクスチャを使用しました。UV にノイズを追加したのでまったく同じではありません。色をぼかしてから、アトリビュートをポイントに転送しました。バウンディングボリュームとして地形を使用するポイントをグループ化して、それらを削除しました。このステップを行わないと、ソルバが粒子を押し出そうとして、粒子が爆発します。

8. Pre-solve

粒子は、特に Jitter Scale を使用する場合、あるべき場所に落ち着くまでの数フレームが必須です。非アクティブな粒子は、このステップの後で停止できますが、アクティブな粒子については計算が必要なフレーム数を大幅に減らします。粒摩擦の低い粒子にしたいなら、これも重要です。粒子が元の場所からずれやすいからです。私は、いくつかのノイズを Pre-solve した後に Attraction (引力)ウェイトを追加して、シミュレーションに面白みを出しました。宇宙飛行士は、歩き始めると、ショットに 20 フレーム入ります。また、左右にアニメートした Pop Wind を追加して、岩の隙間がすべて埋まるようにしました。

9. 実際のシミュレーション

事前に粒子による多くの作業を準備していましたが、念頭に置いておかなければならない設定がいくつかありました。粒子には 10 のサブステップが必要で、それなしでは不安定な結果になります。このシミュレーションは、一般にかなり時間がかかるため、1.5 の速度制限を追加しました。最も重要な値は摩擦で、Dynamic Scale は 2 に設定しました。また、加速度制限を約 15 にしたのは、粒子は不安定な傾向があり、このパラメータが非常に便利だからです。Attraction Weight は 1 に設定しました。ポイントにこの値を設定すると、範囲が .01 ~ .03 になりました。

10. スリープ状態の粒子

最初はスリープを使用せずにシミュレートしたので、すべての粒子の平均速度を把握できました。その後、この値の調整に入りました。シミュレーション全体で、おそらくこれが最も重要な部分です。通常、いくつかの値を試す必要があります。Auto-Sleep は、あるポイントが数秒間 Sleep Delay の Velocity Threshold を下回ると動作します。これらのポイントを目覚めさせるには、POP Awaken ノードを使用して、Volume Source を使用します(この場合は宇宙飛行士の足)。また、Self Awaken を使うと、ポイントでポイントを目覚めさせることもできます。あるポイントが Velocity Threshold よりも速く移動していれば、pscale * Wake up Scale の範囲にある他のポイントを目覚めさせます。この範囲の計算時、ポイントはボリュームグリッドに変換されるので、値をできる限り低く設定する必要があります。そうしないと「エフェクトの段差」ができてしまいます。

地レイヤー (Strata) のチュートリアル

ステップ 00

まず、ベースプロキシメッシュを適切なサイズの HeightField に投影します。次に、HF を滑らかにしてクリーンな開始点にします。

ステップ 01

HF Distort by Noise を何層か追加して、大きい地形要素を砕いたり、ディテールを追加したり、浸食させて変化のある面白い傾斜を得て、さまざまなフローノイズを組み合わせます (大きいスケールと低い Roughness を小さいスケールとより高い Roughness などと)。

ステップ 02

むき出しの崖の斜面が主なフィーチャでした。背景や小さい崖には、Terracing (段丘化)を使用しました。最初に Mask by Feature で急な傾斜を選択して、要素を分離します。その後、それらの箇所に Terracing を追加し、高さをさまざまに変化させたり、滑らかにして、良い感じのバリエーションを作ります。

ステップ 03

HF に対するサーフェス調整はすべて、複数の浸食パスによって深く彫られていきます。浸食のパラメータを微調整して、荒涼とした環境や時間の経過をシミュレートし、地形のディテールや凝集を追加します。通常は、歪み - 段丘 - 浸食のエフェクトのサイクルを数回重ねることで、徐々に HF が詳細化します。

ステップ 04

背景にある形状のいくつかに、MapBox を使用して、世界のさまざまな砂漠のスキャンデータを追加しました。最後の仕上げとして、一番上に slump (堆積) を追加して、砂と Debris (岩屑)の積もりをシミュレートします。

ステップ 05

前景の崖は、アプローチが異なります。最初に、崖があるはずの場所で元の HeightField の一部をマスクして分離します。マスクは、HF の高さとカメラからの距離で求めました。この分離した塊に対して、さらに作業を加えます。

ステップ 06

HF の塊をボクセル化し、シンプルな Mountain ノードを使用してサーフェスを分割します。修正したメッシュは、比較的低解像度に再メッシュします。より大きい平面サーフェスにし、次の手順の処理をスピードアップする2つの目的のためです。

ステップ 07

次に、メッシュをさまざまな厚みの複数の地レイヤーにカットします。すべてのピースは For-Each ループ内部で個別に処理されます。ランダムなスケール/オフセットが追加され、ボロノイ粉砕が行われ、小さいピースは削除されます。この結果、地レイヤーと大きいサイズのかけらにバリエーションが加わります。

ステップ 08

前景の崖の最後の手順として、高解像度 VDB に変換し、ノイズのレイヤーをいくつか追加します。ノイズを側方に限定し、縦方向の周波数を高くすると、地レイヤーに馴染みました。

ステップ 09

HF と前景の崖を組み合わせたら、岩と Debris (岩屑)を散乱配置するためのベースとして使用する、別の低解像度 HF にすべてをマージします。自然なの配置になるように、同じ HF を使用して散乱マスクを作成しました。

ステップ 10

HF と崖を複数の UDIM タイルに分割し、テクスチャリングはすべて Substance Painter で行います。


Houdini チームは、AMD 社と共同でこのアニメーション短編映画を制作できたことを嬉しく思います。AMD 社は、世界で最も難しく興味深い課題を解決するために、高性能のコンピューティングおよびビジュアライゼーション製品を開発しています。SideFX 社内のアーティストがこのアニメーションの作成、シミュレーション、レンダリングに使用したマシンすべてに、AMD Ryzen™ Threadripper™ PRO および AMD Ryzen™ Threadripper™ が搭載されています。