LoginSignup
2
2

Houdiniから静的なFBXを出力する(VRChat向け)

Last updated at Posted at 2022-12-29

前提

Unity 2019.43f1
Houdini Indie 19.5.435
VRChat SDK 3.1.10

HoudiniのFBX出力はIndie以上のライセンスで可能。

FBXの出力

Rop FBX Outputを使うとSOP NetworkでFBXを出力できる。

階層付きFBX

Rop FBX Outputの設定で階層付きFBXを出力できる。
Build Hierarchy from Path attributeを有効化し、Path Attributeと同じ名前のstring型のアトリビュートをプリミティブに設定すれば階層付きのFBXが出力される。例えば、"/obj1/obj2/obj3"という値のpathアトリビュートをPath Attributesに設定した場合、以下のような階層が出力される。ただし最上位の名前はOutput Fileで設定した値になる。
image.png
上記の方法だと全てのオブジェクトが同一の座標系で表現されるため、個々のオブジェクトにピボット情報を付与できない。そのような構造を表現したい場合は以下の記事を参照。

スケールの調整

デフォルトだとUnity側は1/100倍のスケールで出力される。
Rop FBX OutputのConvert Unitを有効化するか、Unity側のFBXのinspectorからModel>Convert Unitsを無効するとスケールが一致する。前者はtransformのscaleを100倍して対応されるので、scaleを1に保ちたい場合は両方のConvert Unitsを無効化する。あるいはHoudini側でスケールを100倍する仕組みを自力で作ってしまうのが良いかもしれない。

頂点情報の対応

対応する名前のアトリビュートを設定することで以下の頂点情報が出力できる。

種類 名前 アトリビュート 変数の型 備考
法線 N vertex vector vertex以外に設定しても出力可
頂点カラー Cd vertex vector Unity側で[0,1]の範囲にクランプされる
UV uv vertex vector uv2以降は@uv2,@uv3のように設定
マテリアル shop_materialpath primitive string
  • @N, @Cdはpoint/vertex/primitiveそれぞれに設定できるが、出力する際はvertexに移してそれ以外のアトリビュートは消した方が安全
  • Houdiniのuvはvectorで扱われるが、Houdini側でuv.zに値を設定してもunity側のuv.zは0になる
  • Unityの頂点カラーの精度は8bit
  • Unity側でどの頂点情報を持っているのかはメッシュのinspectorのプレビューウィンドウで確認できる

関連記事

  • アバター(リグ付きFBX)を扱う方法を解説した記事

  • 法線やマテリアルについてのより詳細な内容が書かれている
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2