音乐播放器
指定龙场
 
文章 标签
11

Powered by Gridea | Theme: Fog

Houdini 初学者教程内部分知识点总结

   本文用于记录一些教程内部分知识点、个人总结,免得学半天白学。
   Part 1 预计记录一些HDA入门。想要学习这些教程的同学看了可以知道教了些啥。

📦 制作科幻风格板条箱 (Sci Fi Crate)

😘 零、教程概述

本教程涵盖 基础硬表面建模 与 基本的胡迪尼数字资产(Houdini Digital Asset)及其贴图烘焙Unity 材质设置、贴花制作的知识。
😭感谢 Simon 老师发布在官网的本教程!在本教程学了太多东西!

需要准备的:

  1. Houdini 18.5(教程原作者是这个版本,我用的19)
  2. 安装好Houdini Engine插件的Unity HDRP项目

☝️ 一、建模大致流程

1、Box 大小比例

设置一个 Toggle 参数赋值给 Switch ,可以选择由引擎内输入物体,或者手动调整数值控制箱子的大小比例。
由于引擎内的 Cube 有三角面,非四边面将影响到后续步骤的 poly extrude - inset与布尔操作,因此中间增加一个 Bound 节点直接获取包围盒来避免问题。
使用match size将锚点放到中心底部。

  • 需要暴露参数的节点,可以使用颜色标记。

2、分割上下两部分

使用一个 2*2 的Grid根据箱子高度(使用 bbox 函数,填入节点与 D_YSIZE )按比例切割,使用Bool - Shatter,勾选输出组 A only pieces 分为上下两部分,用 Split 分开。

3、箱体的Poly Extrude & Poly Bevel

因为会使用到 Group - keep by normal 进行上下两面打组,再让前后左右四个方向的面片分别缩小、实体化、倒角后与箱体布尔,所以箱体整体的倒角顺序不能放到一开始(本笨比一开始没想明白为啥不倒角完了再切割)。
至于箱子的倒角,先删除对应面后倒角再使用 Poly Fill - Single Polygon 即可。
挤出箱子内部的两个步骤都要勾选输出挤出的 Edge Group,之后倒角使用。
挤出完了记得加一个Fuse节点避免保留多余的点。

4、箱体的 Boolean - Subtract

① 前后左右面

  • Divide into - Individual Elements
  • 不勾选输出Side
  • 不在 inset 设置数值,而是 ↓

    之后使用Labs - Thicken 节点,勾选Both Directions,挤出即可。
    如果想在底部也加一个一样效果的,同样步骤操作即可。

② 四个角

  • 底部面 Poly Frame 将切线方向 First Edge 作为 N,如此一来将 Box 沿 Y 轴旋转45度后的 Boolean 就能得到规整均匀的斜切效果。
  • Box Copy To Points
  • 设置高低位置、大小(可以暴露为参数)
  • 还可以利用箱体缩小之后再次与 Box 进行Boolean - intersect ,得到金属包边。

③ Merge 后倒角

倒角完直接布尔就OK哩。

5、盖子的制作

盖子的操作几乎就是把前面箱子的复制粘贴一遍,删掉四个角简单修改。
比较不重复的就是使用Divide 节点制作三角形面片挤出后布尔得到一个金属装饰。

6、锁

教程里直接引用了一个做好的锁,这个锁是金属质感、可以分别附在箱盖、箱体的。
分离后直接给箱体一个Bound节点沿 X 轴方向缩小留下朝上面 Copy to points 得到四个锁。

🤓 二、HDA 参数设置

1、物体分离

盖子和箱体分别打组给属性,删除后分离即可。在另一个 geometry 节点中使用 Object Merge 节点引用得到盖子,记得要输入相对位置,不然Unity里会丢失。
盖子的锚点需要在合适的位置,方便我们在 Unity 里摆出不同的合理造型。

2、HDA位置设置

把箱子和盖子两个节点选中后 Shift + C 打包,右键创建 HDA ,直接将存储位置设置到 Unity 的 Assets 文件内,这样每次更新文件后在 Unity 内 Rebuild 即可。

3、材质设置

给材质的话可以将材质位置暴露为参数,可在 Unity 内右键材质后 Copy Path 。

4、Steam 版本的 Houdini Engine 位置

5、目前来说参数列表长这样


参数要都设置好默认值和范围。一些值特别小的,可以设置一个浮点数类型的参数直接与其相乘。

6、Hide When 语法

{ name == 1 }
记得打空格不然识别不出来嗷。(下图非 Sci Fi Crate 教程)

7、👑 重点知识 MultiParm Block ( List ) 的设置与引用

  1. 新建文件夹 Boolean Count 类型设置为 MultiParm Block ( List )
  2. 回到前面的布尔步骤,给一个 For-Each Numer ,次数赋值为 Boolean Count
  3. 文件夹内新建一个 Odered Menu 参数,我们靠它指定(Switch节点)此次布尔的类型。(配图仅演示功能)
  4. 因为有 For-Each Numer 了,前面的布尔的Merge不要了。
  5. For-Each Number 中的参数引用:
    前面在 MultiParm Block 类型文件夹内,我们能注意到每次 Apply 参数后都会给参数名加一个井号后缀。井号后就是迭代次数,因此我们使用以下公式为节点赋值参数。
    ch( strcat(" ../.I/B1_." , detail("../foreach_count1","iteration" , 0) + 1))

8、Group 小细节

表达式不要乱加空格。

📀 三、高模与贴图烘焙

1、UV展开

使用 Labs 的 Auto UV - UV Unwrap 展开UV,由于生成UV会影响调整外形时的速度,因此添加一个生成UV的开关。

Soften Normals 的两个参数可以都暴露出。

2、高模制作 & 金属部件顶点色

3、贴图 R 通道 —— 金属及边缘磨损

① 曲率值

使顶点获取凸出程度值属性。

根据属性上色。

② 均匀磨损

让非金属部分得到随机颜色。

让随机颜色变成黑白、高对比的。

Color Blend 节点混合。

③ 磨损不均匀化

给一个比较大的早点然后 Color Blend - Darken。

4、贴图 G 通道 —— 污渍

5、贴图 B 通道 —— Y 轴位置渐变色

6、混合在一起🍻

7、烘焙!

记得高模低模都要分离物件再烘焙哦~

四、贴花制作

1、Grid

创建、投影、给材质,然后按照贴花的布局将部分边 Dissolve 掉。
给每个 Prim 属性。

2、贴花的位置以及类型

在箱子上提取点作为贴花的位置,给予他们属性 scale,和对应的 decal_index。

将这些点 Merge 之后,统一创建 SurfaceOffset 属性避免贴花过于紧贴模型。

3、创建贴花


👩‍💻 制作HDA陨石

零、课程简介

  • 教程版本:H17.5
  • 主要内容:
    • 教程前半部分建模流程较简单,使用布尔与Mountain随机化、体素制作高模,InsMesh与Polyreduce、SimpleBaker制作低模,可学到一些参数化流程。
    • 教程后半部分的内容是如何使用Mantra渲染,可参考其中的使用烘焙曲率贴图作为遮罩的思路为陨石在Unity内制作着色器。

一、流程

1、大致步骤

2、细节知识点

① 删除碎片

由于进行了三步布尔,可能导致陨石有被切割浮空的碎片。为此我们需要将这些碎片删除。

② 数字资产制作

主要是一开始录入参数的时候就要设置好默认值
注意需要在这里设置参数,而不是参数面板的小齿轮。

更新参数设置之后:

③ 其他

  • 如果在Houdini内渲染,材质的Bind注意类型设置(小细节卡我好久)。
  • 按钮也可以拖进参数列表。
  • 烘焙的各个参数以及输出地址都要作为暴露的参数,方便操作。