レイヤー_1

鎖HDAの作り方-a coffee tips-

-a coffee tips-
それはコーヒー1杯ぐらい奢って欲しい気持ちがこもったtipsです。

このTips通して学ぶ事
・鎖HDAの作り方
・UE4とHoudiniの作業の行き来の仕方

です。
ではさっそく作成方法を見ていきましょう
I try English for All Artists. in pictures.

version 
Houdini 18.0.348
UE4 4.23.1


1.Houdini を開いてGeometoryNodeを作成しよう!

画像1

GeometryNodeを作成できたら、適当にRenameしておきます。
この場合Chainにしております。まあなんでも良いです。

2. CurveNodeを追加しよう!

画像2

Curve Nodeを追加して、適当にカーブを作ります。
もし、ポイントを追加できない場合は
①Curve Nodeを選択
②編集画面(View)をクリック
③エンターを押す
で追加できるかと思います。
それでも駄目な場合、
Shift + クリックで最後のポイントから続きが作れるようになる…はず。
(説明不足があるかもしれない)

3.CurveのPrimitive TypeをNURBSに変更

画像3

Primitive TypeをNURBSに変更しておきます。
どっちでもいいんだけど、しといたほうが確認しやすいからぐらいな要件です。

4.ただただ下の画像通りに繋げよう!

画像15

Curveの下にResample
左側にbox1
それらをcopy to pointsで繋ぎます。
最後にoutput Nodeに繋いでおしまいです。
パラメータ類はあとで追加したり調整できるようにするので、今はただ繋ぐだけで良いです!

5.HDA化するぜ!!

画像5

さっそくHDA化します。出来上がってからHDA化するなんて待てません。
Curveを除いて、他を選択。Subnetを押します。
そしてCreate Digital Assetをクリックし、適当にRenameし、
適当な場所に保存します。
そして何かWindowが出てきますがAcceptしときます。

画像6

↑こんな感じで、出来上がりましたか?出来上がってたらOKです!
Let's Go UE4!!

6.UE4にHDAをとにかくぶっこむ!!

画像7

確認ですが、UE4でPlugin(Houdini Engine)を使えるようにしておいてくだされ。
それができていたらImportだ!四の五の言わずにImportだ!

7.Levelにぶっこむぜ!!お前ら着いてきてるか!?

画像8

説明が雑すぎて不安になってきました。が、続けます。
とにかくレベルにぶっこみましょう。何も表示されないと思いますが、HDAをWorld Outlinerから選択しDetailからHoudini InputsをCurve inputに変更しましょう。
するとboxが並んで長方形みたいになってるのが現れるかと思います。

画像9

さらにDetailのCurve Input下にあるPrimitive TypeをNURBSに変更します。
するとグネグネ曲がるので、これであなたも自由にbox量産ができるはずです!!
(ここでNURBSにするので、Houdini上のCurveはまあ何でも良かった)

8.Houdiniに戻ってHDAを修正していくぜ!!テンション上がってきたろ!?

画像10

boxが大きかったので、box Nodeの下にTransformを追加し
Uniform Scaleを0.3ぐらいにしときます(適当です)。

画像11

resample Nodeを選択して Lengthの値を0.5ぐらいにしときます。
そして、copy to points Nodeを選択して
Pack and Instanceにチェックを入れます。
これを入れる事で、UE4でInstance化してくれます。
(鎖一つのメッシュをいっぱい配置してくれるって事。これをしないと1メッシュで頂点数が多い塊メッシュになっちゃう)

画像12

そして、AssetsからSave Assetsしましょう!
ここでもし No Entriesとなっていた場合はHDAのNodeを選択状態にしてから
もう一度Assets -> Save Assetsを見てみましょう!
とにかくセーブしてUE4に戻るぜ!ブーーーン!!

9.UE4での更新の仕方

画像13

右クリックしてRebuild All Instanceってのを実行しましょう。
すると修正した通り見た目が変わるはずです。
後、Instance化したので、右下のような項目ができてるはずです。
ここのオブジェクトを差し替えると好きなオブジェクトを並べれます!!!

10.鎖部分を作っていくぜ!!

画像14

Houdiniに戻ります。HDAの中でTorus Nodeを作ります。
Rows 6 
Columns 6
そしてポイントを選択できるようにしてから、半分だけ選択します。

画像15

キーボードの T を押すと移動モードになります。が、そのままだとローカルの傾きで斜め移動してしまうので、キーボードの M を押すとワールド座標での移動ができるようになります。
で、適当に移動させます。
右上のパラメータで後から調整もできます。

画像16

中心からずれているので、Transform Nodeを追加して
Pivot TransformのXの項目に $CEX と入れます。
Translate のXの項目に -$CEX と入れます。
こうするとX移動してくれて、オブジェクトの真ん中が中心になったと思います。
お察しの通り $CEX $CEY $CEZがありますので、エフェクト的に変なところにオブジェクトがある場合、この方法を使うと中心に一気に持ってこれます。(説明は省く、わかると信じて)

画像17

ここまで出来たら、box Nodeを削除して、鎖オブジェクトの繋ぎ直します!
そしてAssets -> Save Assetsしてから UE4に戻って確認してみましょう!!

画像18

Rebuildをしてみると鎖に置き換わってるかと思います!
やったぜ!これでチェーン作り放題だぜ!と思いきや…
Rotationが一律で残念な事になってますので、Houdiniに戻って修正します。

11.VEXで回転制御するぜ!

画像19

resample Nodeの下にPoint Wrangle Nodeを追加します。
そしてこれをコピペしてください。

vector dir = normalize( point(0, "P", @ptnum+1) - @P);

if(@ptnum == (@numpt -1)){
   dir = normalize( @P - point(0, "P", @ptnum-1));
}

vector AxisX = dir;
vector AxisZ = cross(dir, {0,1,0});
vector AxisY = cross(AxisX, AxisZ);

matrix3 r = maketransform(AxisZ, AxisY, AxisX);
rotate(r, radians(@ptnum*90), AxisX);

@orient = quaternion(r);

色んな方法があると思うんですが、ぱっと思いついたやり方がコレだったのでこう書きました。
-簡単に解説-
vector dirで自分のポイントの位置と次のポイントの位置を参照して次の向きを作ってます。
その後Crossを使って{0,1,0}でZ軸を作り、できた軸を使ってY軸を作って
matrix3 のTransformを作って、Rotate関数でpoint番号に90を掛けて1point毎に90度回転するようにしています。
そのあと @orientにquaternionに変換して入れると。Copy to pointsを使用した時に回転が反映して、Instanceされたオブジェクトが回転してくれるってなもんです!!

画像20

SaveをしてUE4のAssetを更新してみると…!良い感じになりました!!
次はパラメータを追加してUE4上で調整できるようにしてみましょう!

12.HDAにパラメータを追加してやるぜ!!

画像21

Assets -> Edit Asset Propetiesで編集するHDAを選択しましょう

画像22

左側のWindowが表示されたと思うので、HDAの中に入って…。
resample NodeのLenghtの名前あたりからドラッグして
rootでDropしましょう!

画像23

そしてScaleを調整していたTransform NodeからUniform Scaleもドラッグ&ドロップで追加しましょう。
そしてAcceptをして完了します。

画像24

HDAを確認してみると上記のようにパラメータが追加されたと思います!
Save してUE4で確認してみましょう!!

画像25

Rebuildして確認してみると…!
Parameterが追加されてます!調整してたら反映されるかと思います!!
確認してみてね!!

13.HDAをベイクしてやるぜええええ!

画像26

もうこんな感じで好き勝手作れますね。
それでは…。ここをポチっと…。

画像27

DetailsにあるBake Blueprintを押すと、InstancedStaticMeshを作成してくれます!!
これでHDAから開放されます!!
(外部Pluginだし、不具合の原因になった時にBakeして結果だけ残してHDA削除できるの大事)

14.最後に

何か質問やらなんやらあれば、追記もしくは別記事化します。
(VEXのAxisを作る辺りは別記事にしたほうが良い気がしてる…)

-無料部分にすべて記載してます-

お役に立った場合コーヒー代ほどでも頂けたら幸いです!!
If that helps you, could you pay me a coffee bill?

続きをみるには

残り 50字

¥ 300

この記事が気に入ったらサポートをしてみませんか?