UnityとHoudiniで作るRealtimeVFX実践解説 後編

Rigid Body Dynamics 概要

略称は RBD。3DCGにおいては一般的には「硬い固体の物理シミュレーション(ビルやドアの破壊・落石・金属の鎖の揺れ等)」のことを指します。

また、破壊表現だけではなく、固体の物理シミュレーションする要素全般の事をRBDと呼びます。

Baking Rigid Body Dynamics

DCCツール上で作成したRBDをベイクしてコンバートし、ゲームエンジンで使用する手法のことを本セッションでは指しています。本セッションでは、主にこの内容について紹介しています。モバイルゲーム等ではゲームエンジン上の物理シミュレーションを多用すると処理負荷が高く問題が生じるため、このような手法が適宜必要になります。

Baking Rigid Body Dynamics:作成方法

  • 基本的にはHoudiniの「RBDtoFBX」ROPを使用してアニメーションをベイクしたFBXとしてコンバートします。
  • ボーンを使わずベイクするので、Unity上ではMesh Renderer扱いになります。
  • VATとしても書き出せますが、そもそもモバイルゲームでの負荷対策が主目的なので、FBXのアニメーションとして書き出せる手法を優先しています。
  • 最終出力の方法をVAT用のギミックにすれば同じアセットからVATを書き出せるので、VATが必要な場合でも追加コストは殆どかかりません。

Baking Rigid Body Dynamics:シーン解説

動画やスライドでは、基本的なRBDの作例紹介・応用・Tipsを解説しています。

Baking Rigid Body Dynamics:まとめ

  • BakingRigidBodyDynamicsの手法は、DCCツールで作りこんだRBDのディテールやアニメーションをそのままゲームエンジンに持ち込めるので、アート性が高かったり、作りこんだ優れたビジュアルの素材を持ち込めます。
  • FBXアニメーションとして書き出すとトランスフォームのアニメーションになるので、「動きの途中からスローモーション」のような表現もゲームエンジン上で簡単にできます。
  • 前述のとおりFBXアニメーションとして書き出すとトランスフォームのアニメーションになるので、レイトレーシング化でも安定して動作します。
  • 古典的で堅実な手法ゆえに、レイトレーシングと組み合わせるのが大変な手法で起こるような問題を気にしなくて済みます。

OtherTips

その他、様々なHoudini・Unity連携のTipsや注意事項を動画やスライドで紹介しています。当記事ではその中から抜粋して「Skinning Converter」について記述いたします。

OtherTips:Skinning Converter in Houdini 18.5:概要

VertexAnimationTextureを使わないSoftbodySimulationのHoudiniからUnityへのコンバート手法として、主にHoudiniの「SideFXLabs Skinning Converter」ノードを使用し、UnityにSkinnedMeshRenderer扱いのボーンベースアニメーションに変換して持ち込む手法がございます。

CEDEC2020でこの手法について登壇しましたので、興味のある方は弊社のホームページの方で資料を一般公開しているのでご覧ください。

CEDEC2020の資料

Houdini18.5になり、KineFXが登場したことでボーン周りの扱いが大幅に改善され、「Skinning Converter」も大幅に使い勝手が向上しました。
Houdini18以前で作業する場合は私がCEDEC2020で登壇した手法で良いのですが、Houdini18.5で作業する場合はバージョンアップした仕組みを使用した方が良い場合が多いので、Houdini18.5における「Skinning Converter」の使い方を簡単に紹介いたします。

OtherTips:Skinning Converter in Houdini 18.5:比較

Houdini18以前のSkinningConverter
  • ボーンへのベイク時にサブネットが生成されます。
  • KineFX以前のボーン仕様なので、ボーン用のノードがサブネット内に大量に生成されます。
  • エクスポート時は、この生成されたサブネットを指定する必要があります。
  • シーンファイル内にベイクされたデータを保持するのでデータサイズがHoudiniのシーンファイルにしては大きくなります。

Houdini18.5のSkinningConverter
  • 「SkinningConverter」ノードに直接ノードを繋いでメッシュやボーンを確認・エクスポートできます。
  • シーンファイルのサイズも、通常のシーンファイルと同等です。

OtherTips:Skinning Converter in Houdini 18.5:まとめ

KineFX対応でバージョンアップしたHoudini18.5仕様の方が、総じて使いやすく個人的にはお奨めです。
ただし、従来の仕組みも依然として有用です。そのため、諸事情によってHoudini18以前のバージョンで作業する必要がある場合、SoftbodySimulationのベイクのアプローチとしては従来の仕組みも有効です。

Conclusion / Results

駆け足ではございますが、UnityとHoudiniを用いたRigidBodyDynamics及びSkinningConverterのTipsについてご説明させて頂きました。スライド及び動画の方ではより詳細に解説していますので、よろしければご覧ください。この資料や動画が皆様のクリエイティブやR&Dの一助になれば幸いです。

スライド