Steam版 Houdini indie 20.5.684
はじめに
Houdini Apprentice Advent Calendar 2025の5日目の記事です。
「こんなの当たり前じゃん」となる内容かもしれませんが、
自分みたいにここでつまずく人もいるかも…と思って記事にしました。
今回も使用しているデータを添付していますので参考にしてみてください。
データ:https://medianky.booth.pm/items/7722496
なぜ、普通のサイズUPではなく法線方向にサイズUPするのか
武器やキャラに纏わるエフェクトをつける際、原点を中心にモデルサイズを大きくする普通のサイズUPをすると、元のモデルに重なりが発生してしまい赤くはみ出てしまう。対して、法線方向にモデルサイズを大きくすると、元のモデルに重なりが発生せず綺麗に重ねることができる。

↓ キャラを覆うエフェクトを作る時、元のモデルがはみ出なくなる

作成方法
1. ポイントにノーマルを入れる
使用したいモデルにnormalノードを繋いで、add normal toを"point" にする。

2. 頂点を法線方向(ノーマルの方向)に動かす
$頂点の位置 + ( 法線の向き × 法線の大きさ )$
上記の計算することで、ポイントを法線方向に動かすことができる。
Attribute Wrangleをつないで、上記の計算をVEXに置き換えたものを入力
@P += @N * chf("normal");
3. カラーとアルファを入れる
Attribute wrangleに追加で書き足す
@Cd = 1;
@Alpha = 1;
4. データ整理
あとは以下のノードつないで書き出す。
- tariangulate
└ ゲームエンジンにインポートすると勝手に三角形化されるので、予期せぬ挙動をしないようあらかじめ三角形化させる - normal
└ なくても良いが念のため入れる - clean
└ データ容量を軽くするため。Alpha , Cd (color) , uv , N(ノーマル)以外の情報を削除している。 - transfrom
└ ゲームエンジンにもっていくとサイズが1/100になるため、トランスフォームでサイズを100倍にする。ゲームエンジンに書き出すときにサイズをそろえる機能もあるが、挙動が怪しいので素直に100倍にしている - null
└ nullを繋ぐ理由としては、ゲームエンジンやmaya等にもっていったときに、rop fbx outputにつながれているノード(今回だとnull)の名前がそのままFBXの名前になるため。 - rop fbx output
└ 書き出すノード。個人的には絶対パスより相対パスがおすすめ。
おわりに
記事書くと頭の中が整理されていいですね。









