プロシージャでモデリングとテクスチャ/Unreal,Houdini

Houdini 19.5/Labs tool（必須）
Unreal Engine 5.2
(Unreal Engine 4 でも可)
UE5用のHoudiniプラグイン
(UE4用のHoudiniプラグイン）

＊ベイクしたテクスチャだけが欲しいならUnreal,Unityなどの
外部エンジンは必要ありません

今回の例　「樽」

<iframe width="560" height="315" src="https://www.youtube.com/embed/VSh4nh0LrE8?si=Fb8gS4aIClQK3WPb&amp;start=4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



ポイント
・それぞれの木の板には違う色、テクスチャがあり
・金属部品の部分のマスクもつくっていく。
　一つのマテリアル、テクスチャにする
・AOとvertexcolor（頂点カラー）を乗算させたい

1.ローポリとハイポリを作る
2.AO,カスタムattribute(vector,float 情報)などのテクスチャをベイク
＊vector はRGB画像で出力され、floatはグレースケールで出力される
3.Blueprint (マテリアルノード等)で調整

# 1.ローポリとハイポリを作る
<iframe width="560" height="315" src="https://www.youtube.com/embed/lGopujtyVRQ?si=OF7E8Rt_Jchpy-1C" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>


![barrel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/995f063b-f761-332c-0cea-475e1cb3e75c.png)

上の例
ハイポリ　頂点数：4760
ローポリ　頂点数：1896

必須！
ローポリとハイポリの両方には
UVが必要です。
<iframe width="560" height="315" src="https://www.youtube.com/embed/J-axDqglufA?si=Vx336U6rimIDrg1x" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>


# 2.IDマップの作成
![スクリーンショット 2023-11-16 112031.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/e78865a1-cb28-3f03-9485-39b10719df1c.png)
Subtract (1.0-x)で反転した例
金属部品とそうでない部分のマスクを生成します
![スクリーンショット 2023-11-16 123616.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/4c7735c2-7ed1-e6c0-53ee-d1e7b7a4cc32.png)

白＝1.0
黒＝0.0

ハイポリにて
木の板ごとに 0.0~1.0 のランダムな値をつけます。
<font color="blue">BLUE　青＝0.0
<font color="green">GREEN 緑＝0.5
<font color="red">RED　赤＝1.0</font>

<iframe width="560" height="315" src="https://www.youtube.com/embed/Z3W_O77Pv6w?si=kXKgaJ9m5ClRbauy" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>



vector 型　"ID"に以下の情報を入れこみます
R[x]=金属部品の部分
G[y]=木の板ごとに 0.0~1.0 のランダムな値
B[z]=木の板ごとに 0.0~1.0 のランダムな値+違うシード値
*Houdiniでは、頂点カラー(vertex color)はpointのv@Cdにあたる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/5b0703d8-f3c3-8aee-ca85-e30495e8c3cc.png)


つまり
vec3(float3) ID;　//vector型の”ID”という名の箱を作る
ID.x=metal;　//ID.xに金属部品のfloat値を入れる
ID.y=@ panel_rnd;　//Id.yに木の板ごとに 0.0~1.0 のランダムな値
ID.z=@ panel_rnd1;　//Id.zに木の板ごとに 0.0~1.0 のランダムな値+違うシード値
と同じ考え方です


Labs Maps Bakerの[Custom Attribute]にて
[ID]を作ります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/ae15e04c-bf77-685e-1f22-8cfa1a8bb17c.png)
Houdini 公式 SIdeFxが無料で配布しているLabsアドオンです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/1c4a2ff1-dd5a-1c4b-4621-ae36fcf4f0c9.png)
使い方としてはローポリ（ベイクしたいモデル）を一番目に
元となるハイポリを二番目にいれます。
注意として、両方ともUV情報がないといけません

詳しい情報は公式のYoutubeを参考にしてください
<iframe width="560" height="315" src="https://www.youtube.com/embed/B8HqBuH9xew?si=J9nWI7kHyE3gHZi5" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/c0428a11-3937-c245-c08f-83d9465e57f0.png)


![ID.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/7e420a4b-4d05-065d-58d3-54c4eea98ca3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/c7741205-89a4-ef99-aa6c-170581c0166c.png)

<iframe width="560" height="315" src="https://www.youtube.com/embed/EfDsgepNjb4?si=_OE3hVb_Mi6Brg2f" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/10a9c1a5-214e-17d1-7394-ec450219cd1d.png)
# Blueprint

[PerInsranceRandom]を利用して値をオフセット、リマップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/26fdc5ea-9eeb-658b-fbf0-c663f923c291.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/21d03f8f-6bb9-22f4-ee4c-f0567a5b01fc.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/59b690f3-195e-f21a-ed6f-df2bb0a82123.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/90c8d7da-2f1a-a597-8ed1-7fd05412deb2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/ff3adfc8-99b1-4195-7d98-1206c6a39890.png)
(R,G,B,A)違うテクスチャを、それぞれの木の板にあたえます。
Substance designerでつくります。

0.0～1.0　を 0,1,2,3(R,G,B,A)　とスイッチのようにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/20466232-df65-f667-28cb-ae05754e8405.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/19267b0e-0b94-1a13-c4b0-beca4c5cde1e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/51beecb5-05bf-029c-cb3e-b0bc061ccb25.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/9d278639-2729-d435-d0c0-5ca92349a604.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/c6831d78-397a-b778-37a9-71f88724589a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3555512/0d006aa2-1e01-631d-ac15-087c718734f4.png)


AO、カスタムデータについてはpart2に続きます、
そこからはHoudini寄りの情報になります