はじめに
Unityでゲームを作ろうと思った場合に、複数のバリエーションを持った3Dモデルをたくさん用意したい、というシチュエーションがあると思います。
今回は無料のHoudini Apprenticeを使ってローポリのクリスタルを複数まとめて出力させる、ということをやってみました。
環境
Houdini Apprentice 17.0
Windows 10
成果物
以下はクリスタルのOBJファイルを6個まとめて出力し、Unityに入れたものになります。
作り方
クリスタルを一括生成するノードは以下のような感じになりました。
ノード解説
ノードその1: Sphere(球体を作る)
Sphereノードを使ってクリスタルのベースとなる、ローポリの球体を作成します。
ノードその2: UV Unwrap(UV展開)
モデルにテクスチャを貼り付けることができるようにするため、UV展開をします。
モデルを変形させる前にUV展開をしてところがポイントです。
変形させた後にUV展開をするとUVが汚くなりやすいです。
UVを確認してみる
SceneViewにマウスポインタを乗せて、Space+5を押してUVを表示させると以下のようになっています。
SceneViewにマウスポインタを乗せて、Space+1を押すとSceneViewをPerspective Viewportに戻せます。
ノードその3: Transform(スケーリングをかける)
クリスタルっぽさを出すために、Y方向に1.5倍のスケーリングをかけます。
ノードその4: Point Jitter(モデルを変形)
Point Jitterで頂点をランダムに動かします。
ネットワークの最後(ROP Geometry Outputノード)でOBJを出力する時のフレーム番号$Fを乱数シード値として利用し、フレーム毎に異なる変形が行われるようにしています。
ノードその5: Normal(法線の再計算)
ノードその6: ROP Geometry OUTPUT(モデルの一括出力)
ROP Geometry OUTPUTノードにはOBJファイルの情報を設定します。
OBJファイルの出力先にUnityのAssets以下のパスを指定しておくと、すぐにUnity上で確認できて便利です。
Save to Diskをクリックするとファイルが出力されます。
出力されたOBJファイル群をUnity上で表示させると以下のようになっています。