Linus Tegelbratt 在 Houdini 中創(chuàng)建柵欄生成器
Linus Tegelbratt 分享了可定制柵欄生成器背后的工作流程,展示了項(xiàng)目中使用的節(jié)點(diǎn),并解釋了門 HDA 的功能。

介紹
你好呀!我叫 Linus Tegelbratt,來自瑞典。我的職業(yè)生涯始于 MachineGames 的實(shí)習(xí)生,作為一名環(huán)境藝術(shù)家在 Wolfenstein Youngblood 工作。然后我作為合約材質(zhì)藝術(shù)家在 Marmoset 工作,主要專注于為 Toolbag 4 庫創(chuàng)建基礎(chǔ)材質(zhì)。

Houdini
幾年來我每天都使用 Substance 3D Designer,我喜歡它的程序方面。此外,我真的很喜歡制作有用的節(jié)點(diǎn)來加快我的工作流程并使事情變得更容易。
感覺下一個(gè)自然的步驟就是開始學(xué)習(xí) Houdini 并將類似的程序工作流帶到更大規(guī)模。在找出問題的特定解決方案時(shí),我喜歡解決問題的過程。
要想掌握Houdini的工具和節(jié)點(diǎn),需要看很多教程,熟悉程序和所有節(jié)點(diǎn),然后開始制作自己的項(xiàng)目。一開始從小項(xiàng)目開始,然后隨著您對(duì)程序的熟悉程度逐漸嘗試更大、更復(fù)雜的項(xiàng)目。
就個(gè)人而言,我覺得 Houdini 的 VEX 部分是最令人生畏的方面,所以一旦我覺得我已經(jīng)掌握了基礎(chǔ)知識(shí),我就會(huì)嘗試專注于這部分。我強(qiáng)烈建議熟悉 Wrangle 節(jié)點(diǎn),因?yàn)樗鼈兪褂闷饋矸浅l`活,可能是我項(xiàng)目中最常用的節(jié)點(diǎn)之一。
我喜歡做的一件事是有時(shí)嘗試使用 VEX 重新創(chuàng)建標(biāo)準(zhǔn)節(jié)點(diǎn)的功能。例如,如果你想測量一條有 2 個(gè)點(diǎn)的曲線的距離,你可以使用測量節(jié)點(diǎn)或在 VEX 中檢查點(diǎn) 0 和 1 之間的距離。

圍欄生成
我的主要目標(biāo)是創(chuàng)建一個(gè)易于使用的工具,我還想看看我是否可以擁有可以在特定地塊上生成的功能門。我希望它在外觀方面是可定制的。所以我只希望它使用您輸入工具的幾何圖形,而不生成任何自定義幾何圖形。這樣,我認(rèn)為用戶可以更輕松地制作不同類型的柵欄或墻壁。
該工具使用曲線作為形狀的輸入,然后是要使用的 3D 模型的輸入,如果用戶想要門,則使用藍(lán)圖輸入。
對(duì)于我的主曲線,我在輸入曲線上使用了一個(gè) Resample 節(jié)點(diǎn),以便輕松控制線段的長度。此外,相同的曲線用于生成柵欄的主桿。

對(duì)于將用于在每個(gè)段中生成木板的次要曲線,我使用主曲線和一個(gè)原始的 wrangle 來設(shè)置每個(gè)曲線段中向外的點(diǎn)法線。然后我根據(jù)主桿寬度移動(dòng)這些點(diǎn)。


然后我再次進(jìn)行重新采樣以控制將在曲線上生成的木板數(shù)量。

然后我使用 Carve 節(jié)點(diǎn)將曲線分割成單獨(dú)的部分,以便我可以測量每個(gè)部分。對(duì)于測量,我使用原始 wrangle 來找到每個(gè)原始上每個(gè)點(diǎn)之間的距離,測量的長度用于設(shè)置木板的寬度比例,這樣它們就不會(huì)相互交叉。
現(xiàn)在我需要在每條線的中間創(chuàng)建點(diǎn),這些點(diǎn)將用作生成點(diǎn)。為此,我使用了一個(gè) Subdivide 節(jié)點(diǎn),然后是一個(gè) Attribute Promote 節(jié)點(diǎn)來將長度提升到點(diǎn)類而不是基元類。然后我使用一個(gè)點(diǎn) wrangle 只保留由 Subdivide 節(jié)點(diǎn)添加的點(diǎn),那些點(diǎn)在中間。本質(zhì)上,我是在檢查我的細(xì)分曲線是否在非細(xì)分曲線的那些點(diǎn)附近有任何點(diǎn),然后刪除它們。


我在使用現(xiàn)有模型時(shí)遇到的一個(gè)問題是它們的方向可能都不同,所以我不得不在開始時(shí)手動(dòng)旋轉(zhuǎn)每個(gè)對(duì)象。所以我做了一個(gè)小設(shè)置,讓所有導(dǎo)入的模型根據(jù)長度和寬度自動(dòng)定向,然后與地板對(duì)齊。

然后我所有導(dǎo)入的幾何體都被縮放以適應(yīng) X、Y 和 Z 的 1 個(gè)單位。這樣幾何體的大小由每個(gè)點(diǎn)的比例值決定,這是通過使用點(diǎn)整理節(jié)點(diǎn)設(shè)置的。



限制與定制
一方面是幾何體可能會(huì)拉伸很多,如果使用不適合您正在制作的柵欄的幾何體,紋理看起來不會(huì)那么好。與如果幾何體也在 Houdini 中生成相比,那么 UV 可以縮放到您設(shè)置的任何大小。所以如果你想制作一個(gè)高度為 2 米的柵欄,那么如果你想避免紋理中不必要的拉伸,你可能需要讓輸入幾何體具有相似的尺寸。
門 HDA
門 HDA 更多是概念驗(yàn)證,而不是用于創(chuàng)建門的微調(diào) HDA。它本質(zhì)上是柵欄 HDA 的副本,只是稍作調(diào)整以創(chuàng)建一個(gè)門。理想情況下,您會(huì)想要充實(shí)該工具并使其更加可定制。現(xiàn)在它是如何工作的,你用你想要的網(wǎng)格創(chuàng)建一個(gè)門,將它烘焙成靜態(tài)網(wǎng)格,然后將該網(wǎng)格放入藍(lán)圖,這樣你就擁有了當(dāng)玩家與之交互時(shí)門會(huì)打開和關(guān)閉的功能。您在 Fence 工具中分配正確的藍(lán)圖,然后它會(huì)生成并縮放它以使其適合。

結(jié)尾
主要挑戰(zhàn)之一可能是讓向外彎曲和隨機(jī)旋轉(zhuǎn)按照我的意愿正確工作。在使用 orient 屬性時(shí),一開始需要反復(fù)試驗(yàn)。與我過去使用過的許多其他 3D 程序相比,使用 Houdini 時(shí),使用矢量和涉及的數(shù)學(xué)也有點(diǎn)習(xí)慣。為工具制作和組織系統(tǒng)有時(shí)會(huì)讓人覺得很復(fù)雜,因此使用注釋來描述節(jié)點(diǎn)和功能始終是一個(gè)好習(xí)慣,保持圖表井井有條,以便您自己或其他人輕松理解它是如何制作的。

