3DCG Houdiniを学ぶことにした

(約 6,400文字の記事です。)

昨晩はMaya 2024について情報収集をし、今後のDCCツールをどれにしようか考えていた。そして今日も更に情報収集した結果、HoudiniというDCCツールに辿り着いた。今後しばらくはHoudiniを集中的に学ぶことになりそうだ。

目次

なぜHoudiniなのか?(USDへのメリット)

なぜオートデスクのMayaでも3ds MaxでもなくてHoudiniなのか?Blenderではダメなのか?

重要なキーワードは「USD(Universal Scene Description)」だ

USDって何?(ワークフローの管理手法)

決して米ドルのことじゃない。これは主に3DCG分野でのVFXの話から始まったワークフローの仕組み・管理手法のことだ。

Google検索でUSD, Universal Scene Descriptionで調べれば分かりやすい良質な情報サイトがたくさん出てくる。

Maya 2024を調べていてこちらの動画がとても分かりやすかった。

Pixarが2016年に公開したこの手法にはとてもメリットがある。Maya 2024のアニメーション編集の強化とUSDは思い切り関わる。実はMaya 2024の新機能を検討するまではUSDのことはほぼ知らなかった。

大和 司

最初はUDIMと勘違いしたくらいだ(笑)UDIMはUVマッピングとテクスチャ作成を拡張したワークフローのことで、USDとは無関係。

USDは多人数参加で1つの作品を作るワークフローの手段としてとても重要。また1つのデータを複数のDCCツール間で互換性を保ったまま往復させることができる夢のような手法。今までバラバラだったプラットフォームを1つの規格で統一できることのメリットは大きい

大和 司

そして調べれば分かるが「なぜFBXやalembicではダメなのか?」もよく議題になる。USDを選ぶ理由がきちんとある。

例えばUSDについて基礎知識を補充したあとでこちらの記事の実例をを読むとその威力が分かると思う。

『グランツーリスモ7』開発におけるUSD活用事例(PDFファイル)

非破壊で何度でも可能性を試せる

USDのメリットはスケールメリットだけか?それ以外にもある。

上記のような大規模開発で複数名が同時に色んな場所のデータを逐次書き換えていく場合には有効なことは明らかだ。では一人で何かを開発するときには無駄か?と言われればNOである。USDのもう一つのメリットは「いつでも何度でも、元のデータを非破壊で色々なバリエーションや可能性を試せることなのだ。

単純にメッシュを複製してテクスチャを差し替えるというそういうレベルの複製ではなくて、もっとリンクを貼るようにサッと切替えたり組み合わせたりできる点が気に入った。

これが私にとっての大きなメリットだったのだ。

大和 司

3DCGを始めてから自分にとっての大きなテーマの一つは「可逆性」だ。いつでも何度でもやり直せることの重要性を理解していた。せっかくのデジタルなのだから。だからBlenderではモディファイアの可逆性が魅力的だった。ただしBlenderの場合は可逆性はモデリングについてのみであって、イマイチなんか足りないと思っていたわけ。

せっかくデジタルなのだからツール上で色々試行錯誤したい

USDの情報収集をすると必ず出てくるのが、「今までの手法はウォーターフォール型で非可逆な、一方通行な開発手法」である点に対し「USDは可逆的かつ非破壊で任意の部分をいつでも差し替えたり改良したりできる」点が上げられる。これには私も同意だ。

せっかくデジタルなのだからいつでも自由に色々な可能性を「作りながら試したい」と思うのは自然な発想だと思う。でもZbrushがそうであるように、ツールはデジタルツールであっても手法そのものは非可逆なアナログ手法というのは割とよくある話だ。デジタルツールを使ったアナログ造型とも言えるし、アナログ造型手法をデジタルツールで実行しているとも言える。いずれの場合も、手法自体はアナログなので可逆性という点ではだいぶ不利だ。せいぜいUndoくらいしかない。そういうことではなて、いつでもどの部分でも自由に色んな可能性や変更を試せる仕組みが欲しいと思っていた。

USD経由で他のツール同士の互換性が保たれる(はずだが)

これは以前にBlenderとUnityのマテリアルの互換性の話を記事にしたときに感じていた。当然ながら執筆当時にUSDに関する知識などあるはずもなく😱

だがこれは今はどうやらUSDによってBlenderとUnityはマテリアル(見栄え)についてはもう互換性があると言えるのではないか?Blender 3.3 LTS以降ではUSDのエクスポートもサポートしたらしいので、USD形式での相互のやりとりでマテリアルについては統一されたのではないか?未検証。だが理論上では統一されたことになる。それだけではなくてUSD対応している他のDCCツールやUE5などのゲームエンジンでも然り、なはずだ。だがそうそう安心もできない。

というのも、各ツールがどれだけUSDフォーマットに準拠しているかに依存する。インポートとエクスポートの両方がツール間で100%USD準拠ならば互換性は100%と言える。ハッピーだ。だが現実はそうなっていない。その点で言えばFBX時代の悩みは解消されていない。USDデータの中身の問題。そう、結局は各ツールがどれだけ忠実にUSDフォーマットに準拠してデータをIn/Outできるかにかかってくる。ここが不完全だとUSDによるファイルの完全互換性は崩れる

だがBlenderのUSD対応は不完全で、アーマチュアアニメーションについては現時点ではUSDで入出力できないようだ。これはBlender公式マニュアルに書いてある。「今は非対応」とのことなので将来的には改善される可能性はあるが、それがいつになるのかは不明だ。

この点で言えばBlenderのUSD対応は使い物にならないと感じた。リグアニメーションの出し入れ(互換性)がないのは割と致命的だと思う。

それに対して有料ツールのMayaのUSD対応は信頼できると感じた。AL_USDMayaを使えばMayaの細かいリグ設定などを全てUSDに収録することができるのだとか。なのでこの時点でUSDをワークフローに取り入れるならばDCCツールはBlenderではなくてMayaかな?と思っていた。それが昨日の時点でBlenderよりもMayaに注力しようかと思った根拠の一つ。というのもMaya 2024のグラフエディタの編集機能強化はリグアニメーションの編集に効果的だと感じたからだ。リグアニメーションをMayaで作るという1つのワークフローが自分の中で固まった瞬間でもある。

大和 司

と、ここまでではまだHoudiniの影も形すらも見えていない。

『グランツーリスモ7』開発におけるUSD活用事例(PDFファイル)

この資料を読んでいたときに初めてHoudiniってどんなDCCツール?と思った。もちろん名前くらいは聞いたことがあるが、その特徴までは知らなかったのだ。

USDに100%準拠なSolarisってのがHoudiniにあるらしい

USD100%準拠というのが気に入った😍というのもMayaでもUSDに完全互換という情報は見つけられなかったのだ。だがHoudiniが完全互換ならば、USDを正しく理解しようとすればMayaよりもHoudiniに習熟したほうが急がば回れということになるのでは?と思い始めた。

こちらがHoudiniを使ったUSDの解説動画。

プロシージャルでノードでうんたらかんたら~、というのはおいといて、ノードはマテリアルノードのような紐をボックスとつなげるあのインターフェースだ。Houdiniはノードによって情報をつなげているらしい。マテリアルのみではなくてあらゆる相互状態をノードで紐付けるというものらしい。ちょっと変わっている。だがそれ故にスイッチノードを間に挟めばワンクリックでスイッチを切替えて状態A, Bを切替えられる。どちらかというとゲームエンジンの状態遷移の切替えに近い。こういうシステマティックな実装が私の理想なのだ。気に入ってしまった😍

そして実際HoudiniはUnity, UE5などのゲームエンジンとも相性がいいらしく、両ゲームエンジンもUSD対応済みだ。それだけUSDは大規模開発な動画製作やゲーム製作に向いていて受け入れられた手法と言える。

煙や炎のパーティクル系の演出に強いHoudini

そもそもHoudiniは煙や炎と入ったようないわゆるパーティクル系の演出にとても強い。これも自分にとても都合が良くて、というのもそういう演出を3DCGで行なうためにはどうすればいいのかを考え始めていたからだ。

大和 司

Blenderでそれをやるためには気が遠くなるようなマテリアルノードを組む必要がある上に、その情報収集と試行錯誤の出口が全く予想できない。王道なセオリーがないのがBlenderなのだ。Blenderはいつも暗中模索で、闇夜を泥の中で歩き回っている印象がいつもついて回る。徒労に終わることもある。

それに対してHoudiniには色んなチュートリアルが既にある上に日本語化も進んでいる(ソフト自体は英語UIのみだが公式チュートリアルWebページは日本語対応済み)。公式ドキュメントが日本語だと速読できるし、何よりも翻訳時点で校閲などが入っているはずだから意味不明な日本語になりにくい。こういう点も学習速度に関わる。

結果としてHoudiniではパーティクル系エフェクトの王道、セオリー・手順がある程度明文化・体系化されている。そのレールの上を全力疾走した方が早い上に王道が身に付く。もちろん応用性も高い。Blenderで孤軍奮闘するメリットが全くない。

Blenderのジオメトリノード、もしかしてHoudiniで普通に実装済み?

私はBlenderのジオメトリノードにそれほど詳しくはない。だがHoudiniを少し見聞きしてみると、ノードベースでプロシージャルで、パーティクルでは光学エフェクトだけではなくてメッシュも扱えてって、あれ?それ、Blenderのジオメトリノードと同じじゃね?と。ということはBlenderではいつも(過剰に?)騒がれているジオメトリノード、とっくの昔から既にHoudiniの十八番だったってこと?だとすれば最初から差が付いているわけだ。

大和 司

……、Blenderでジオメトリノードをこねくり回すくらいなら王道のHoudiniに習熟した方がお得かも?USDワークフローも理解できるし、ゲームエンジンとの互換性も高いし、応用範囲がメチャクチャ広くね?🤔

【余談】セルルックアニメーションは時代に逆行するのかもしれない

私は元々はセルルックな絵作りを3DCGでやりたかった

だが実際に学んでみるとセルルックは「せっかくの立体造形のPBRなリアルな質感を、わざわざ塗りつぶして影を2値、3値する上に顔の影はいかなる場合でもほぼ飛ばす」という、立体メッシュとしての色んなメリットを否定することが多い。これはつまりもしPBRならば見栄えをコンピュータに自動演算させて済むべきところを、セルルック化するために敢えて手動設定によって無理矢理演算結果を変更しているわけで、絵作りの自動化からはむしろ遠ざかっている。手動調整の工数が無限に増えるってことね。

3DCGでセルルックな絵を作ると言うことはそこまでして「過去のセル画調の絵に似せる」手法だと気が付いたとき、それって本当に今もこれからも3DCGで行なうべき表現なのだろうか?と、今回の情報収集時にPixarの動画を見ていて感じてしまった。リアル人体ではないアニメライクな表現は、線画+塗りというだけではないと感じた。

また情報収集する際に小耳に挟んだ情報だが、セルルックなトゥーンシェーダー的表現にこだわるのは日本人だけ、というキーフレーズにも確かに同意してしまった。特異とも言えるし特徴的とも言える。だがかつては人海戦術で成立してきたこのセルアニメ分野、今は少子高齢化に加えてアニメ業界事情もあまりいい話を聞かない、主に給与面、契約面で。もうセルルックな表現は終わったのかも知れない。そこを追い求めても幸せになれないのではないか?と思ってしまったのだ。そうなると3ds Maxを使ったセルルックな表現を追求する気力がスポンと消え去ったのである😱

線画+1, 2号影な表現にこだわる時代ではなくなったんじゃね?と。

ただ、もしそれをやりたいならばUnityでUTSを使えば実現可能性はある。UTSかつてはユニティちゃんトゥーンシェーダーとも呼ばれていたものの最終実装形だ。そしてUTSはドキュメントも日本語化された上で公開されているのでかなり学びやすくなった。なのでHoudiniからUSDでUnityに持っていくだけだ。なのでやはり自分のやりたい事への可能性は残り続けているとも言える。(なおUnityのポテンシャルは今でも感じているが、自分にとって活用シーンがまだ見出せていないので学習予定がない。)

【まとめ】USDという開発手法に未来を感じた

今後は大規模開発に置いては動画製作であってもゲーム製作であっても基本的なワークフローはどんどんとUSDが採用されると感じた。それだけソフト間での互換性を気にせずに統一データをやりとりできる柔軟性と、複数名で1つのデータを担当ごとに試行錯誤しても非破壊で扱える柔軟性、これ以上の手法が今のところ見当たらないのだ。

なので長く3DCGを続けていこうと思った以上、USDワークフローは何としてでも理解しておきたい。私の直感だが、これはもしかしたらMayaのリファレンスよりも信頼性の高い「データの差し替え・変更手法」になるのではないか?と思っている(GT7の資料の中にもあったように、広大な面積&大量メッシュを扱う場合などMaya落ちやデータは破損など、神経を使うシーンも多そうだ)。それをUSDで安心して軽く扱えるとなれば、ゲーム業界だろうが動画製作業界だろうがUSDワークフローを採用する動きが加速するのは必然だろう。

そうなるとUSDに完全準拠のソフトは今のところHoudiniのみなので、つまりはもうしばらくはHoudiniのワークフローこそがすなわち正しいUSDの取り扱い方という教科書的な位置付けになるはずなので、そこから学ぶのが一番効率的だと判断した。

将来的なレンダリングはHoudiniで行なうのかMaya+Arnoldになるかは分からないが、どちらでも良質な画像を得られることは明らかだ。そしてUSDに習熟していればHoudiniからMayaへは完璧にデータを渡せるはずだ。

なので私の優先順位は

  1. Houdini(USD理解、パーティクル系演出開発)
  2. Maya(リグアニメーション用)
  3. Blender(モデリング用)
  4. Zbrush(モデリング用)
  5. (サブスタンス3Dペインター)

ということになった。DCCツールが3つもある😱勉強すべき内容が一気に増えた……。

要するに「ワクワクした」ってこと

6千字以上の結論が、Houdiniを知ってみたら何だかやりたいことが出てきてワクワクしてきた!😍

それだけのことです。

今回の創作活動は約3時間30分(累積 約3,287時間)
(896回目のブログ更新)

ご支援のお願い

筆者はAmazonアソシエイト・プログラムに参加しています。(Amazon様の商品を宣伝することで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下の商品名や画像アイコンをクリックしてからAmazon様で何かお買物をして頂ければそのご購入総額の1~2%が私に寄付されます。クリック後に別の商品のご購入でもOKです!誰が何を買ったかは私に通知されませんのでご安心下さい😊

また当サイトは楽天アフィリエイト、バリューコマース Yahoo!ショッピング アフィリエイト、および第三者配信の広告サービス(Googleアドセンス)を利用しています。

著:北川 茂臣
¥2,145 (2023/07/05 22:28時点 | Amazon調べ)

【他の関連記事を絞り込む場合】
下の カテゴリ名 タグ名 をクリックして下さい

目次