HoudiniBBAの台所

Houdiniを覚えたいリアルタイム系VFXババァが覚えたことをいろいろと残しておくブログ。

【Houdini】みんな大好き「らせん十字モデル」を自由自在かつ秒速で生成する【3/3】

メリークリスマス!月末年末残業BBAだよ!

らせんメッシュ三週目!
はりきっていきましょう!!!

f:id:houdini_kitchen:20181223184045g:plain

↑UnityとかUE4とかBishamonとかに突っ込むと、こういうのが作れます~

 

前回は「らせんMeshを好きな形に変形して、ついでに頂点アルファも設定」ってところまでを作りました。

houdini-kitchen.hateblo.jp

 

急にこの記事にたどり着いてしまった方は、良ければ第一回から読んでみてくださいね!

 

houdini-kitchen.hateblo.jp

さてさて今回は、この仕組みをあとから使いまわせるようにHDA(Houdini Digital Assets)にしつつ、これをfbx形式でエクスポートするところまでをやっていきます!

エクスポートできるのは有料ライセンス版限定になりますが・・・。
ネットワークをつくるところまでなら、アプレンティスでも出来るので、ぜひ最後までチャレンジしてみてくださいね!
(1年間がんばった自分へのご褒美にIndieライセンスを買ってもいいかもよ/悪魔のささやき)

 

まずはこのMeshが書き出されたときに問題が出ないように、足りないアトリビュートを足しましょう。
「AttributeVOP」の下に、「Normal」ノードをつなぎます。 

f:id:houdini_kitchen:20181223184026j:plain

「Add Normals to」は「Points」に変更しておきましょう。 

f:id:houdini_kitchen:20181223184224j:plain

これでモデルが法線情報を持ってくれます。


あとは好みの問題になってくるのですが、 最後にNullノードで「export_SpiralMesh」という「ここが終わりだよー」的な目印を作ってあげたり、第一入力のmergeノードをスルーして十字にしない版も作れるようにSwitchノードをつけたりします。 

f:id:houdini_kitchen:20181223184256j:plain

 

さらにHDAをつくっていきます~。

細かい操作の仕方は、らせんのHDAの記事も読んでみてくださいね!

houdini-kitchen.hateblo.jp

 

まず、サブネットワークに入れる内容ですが、この「線に沿って十字を貼る」というしくみは、らせん以外でも活躍する予感がするので「CreateSpiral」は対象から除外しちゃいましょう。
(らせんの代わりに真っ直ぐなカーブを渡したりとかでも使えそうだよね!) 

 

「Create Spiral」以外を選択した状態で、サブネットワークにつっこみます。 

 

f:id:houdini_kitchen:20181223184449j:plain

 

サブネットワークの中身を見てみると、Sweepの第2入力は、このサブネットワークの1番に繋げられたデータをもとにするようになっています。
ふっふっふ...プロシージャルなつくりでしょ(ドヤ顔

 

f:id:houdini_kitchen:20181223184514j:plain

 

つぎに、HDAとして呼び出されたあと、調整しなければいけない項目をリストアップしてみましょう!

らせんの形状は「Create Spiral」で決めるので、
こっちのノードはおもに「太さとAlphaのRamp調整」がメインになりますね。

【十字メッシュにする?それとも平面にする?】
 ・十字にするか?:Sweepの第一入力に入れるLineの結果のSwitch

【十字メッシュの形状と分割数】
 ・Meshの幅:Sweepの第一入力に入れるLineのLength
 ・Meshの分割数:Sweepの第一入力に入れるLineのPoints
 ・形状の調整:Sweepに追加したRamp
 ・捻ったりとか:SweepのTwistとRoll

【頂点Alphaのグラデーション】
 ・長さの始点~終点のグラデーション:attributeVOPのramp_U
 ・Meshの幅に対してのグラデーション:attributeVOPのramp_V

今回はらせんのときのように、使いやすくなるように計算式を挟む必要もなさそうですね^^
こんな感じにしてみました! 

 

f:id:houdini_kitchen:20181223184634j:plain

 

あとはサブネットワークを右クリックして、「Create Digital Asset」から保存です!
クロス以外のMeshもsweepできますが、名前は「crossSweep」にしました。

さっそく使ってみましょう!

Uキーで位置階層上に戻り、いままで作業していた「geo1」を非表示にします。

新しいgeometryを作って、作ったHDA「createSpiral」と「crossSweep」を呼び出して繋いでみます。

はい、ベース形状、1秒で完成!

形状の調整、1分で終わり!!

出来上がったモデルはhipを保存しておけば、
あとから「ちょっと!このモデル分割しすぎ!」とか怒られちゃったり、
「あー、やっぱりこれ、もうちょっと幅が細くないとダメだった...」みたいな調整が出ちゃっても、
パラメータを変えるだけですぐに対応ができますね!!

なんていうか、うん、Houdiniつよい

 ---

おまけ★有料ライセンス持ってるひと向け
モデルをFBXエクスポート → ゲームエンジンに突っ込んでぐるぐるさせるまで

※今回書き出しに使う「ROP_FBX_output」ノードは、Houdini16.5以降のバージョンだと、Houdiniの本体に同梱されています。

★16.5より前のバージョンでやる場合は↓↓からHDAを落としてきてください。 

https://www.sidefx.com/ja/tutorials/game-development-toolset-overview/

ちなみに、どのバージョンを使っていても「Houdiniで作ったいろいろを、ゲームの中で見えるようにしたいな~」って考えている人は、この「Game Development Toolset」をDLして使えるようにしておくと便利ですよ!!

使い方はめちゃくちゃカンタンで、「ROP_FBX_output」ノードを先ほどのネットワークにつなぐだけです。

f:id:houdini_kitchen:20181223184930j:plain

 

あとはノードのレンダーフラグをONにして、出力先やら書き出し形式を設定したら、左上の「Save to Disk」というボタンをポチっと押すだけです。 

f:id:houdini_kitchen:20181223185047j:plain

AEみたいに「ピロリン♪」とか気のきいたSEが鳴ったりはしませんが(マジでノーリアクション)、指定したフォルダを見に行くと、今回作ったモデルがしっかりfbx形式で書き出されています!

ちなみに無料版(Houdini Apprentice)でもノードをつないだりパラメータをいじったりすることはできるんですが、「Save to Disk」ボタンを押すと、もちろんダメだよって言われちゃいますw

あとはUE4なりUnityなりに突っ込んで、 お好きなテクスチャをUVスクロールで流したりしてあげれば、ぐるぐるエフェクトの完成です~!!

UE4に入れるときは、スケールが1だと小さすぎたり、デフォルト設定では頂点カラーが無視されてしまったりするので、注意してあげてください。
 スケールは、ROPノードに繋ぐ直前にTransformノードを繋いでスケールをかけたりします。向きもここで変えておくといいかも?

あと、UE4の場合は、インポートするときに↓の頂点カラーの設定を「Replace(置き換え)」にしてあげる必要があります。 

f:id:houdini_kitchen:20181223185201j:plain

あとは、Houdiniで作ったMeshはUE4に入れると「No smoothing group found」とか、「スムージンググループが~」みたいな警告が出ますが、Houdiniにはそもそも「スムージンググループ」という概念が存在しないので、無視しても問題ありません^^ 

f:id:houdini_kitchen:20181223185242j:plain

とりあえずテクスチャの模様が出て、スクロールし続けるマテリアル(やる気ゼロ)↓ 

f:id:houdini_kitchen:20181223185306j:plain

 

以上で今回の「らせん十字モデル」シリーズ、完結です! おつかれさまでした~!

なにか間違っていたり、うまく動かなかったり、「こうしたほうが簡単で便利だよ!」などありましたら、ぜひコメントやTwitterまでご連絡いただければと思います。

本日も最後までお読みいただき、ありがとうございました!!