houdini-houdini记录


title: houdini-houdini记录
categories: Houdini
tags: [art, houdini, procedural, 记录]
date: 2019-05-15 07:21:49
comments: false

houdini-houdini记录


前篇

  • 官方资料:
    • 几何操作节点 - Geometry nodes
    • vex 函数 - VEX Functions
    • 社区 - https://www.sidefx.com/forum
  • 软件下载: SideFX Houdini FX 17.0.352 Win/Mac - http://www.gfxcamp.com/houdini-17/
  • GDC -《幽灵行动:荒野》地形技术和工具 - https://zhuanlan.zhihu.com/p/39627412
  • 程序猿 Houdini 启蒙 - https://zhuanlan.zhihu.com/p/51180083
  • Houdini游戏特效技术大师级训练视频教程 Pluralsight - Houdini VFX for Games - https://www.bilibili.com/video/av19534627/
  • houdini最新全面基础教程独家中文字幕 - http://www.linecg.com/video/play33696.html
  • Houdini与Unity游戏制作基础技能训练视频教程 - https://www.bilibili.com/video/av38576013

shader相关

  • Custom Shading - https://vimeo.com/212603065

todo

  • houdini最新全面基础教程独家中文字幕 : 38, 后面的都是物理碰撞, 对游戏开发没有太大意义了, 暂时不看
  • Houdini Engine for Unity Fundamentals :

相关解释

  • 表达式中

    • ch("../circle1/ty") :

      • ch 表示 channel reference,
      • …/circle1 表示 不是本节点 而是 circle1 节点
      • ty 表示 平移的y轴,

      这个表达式的意思就是, 参考 不是本节点 而是 circle1 节点的 平移的y轴参数


layout 布局

houdini-houdini记录_第1张图片

类似 unity 中的 layout, 可以自定义 保存,重置 等等操作.

添加/分离 窗口

这货竟然不支持选中某个窗口的 tab, 拖动分离.

  1. 在窗口的最右上角, 点击 -> split pane top/bottom, 分离出一样的上下窗口
  2. 右键其中一个窗口 -> 选中要显示的面板


节点

  • 官方文档: https://www.sidefx.com/docs/houdini/network/flags.html

一级节点

houdini-houdini记录_第2张图片

上面是父节点, 下面是子节点. 左边绿色是 能否选中 toggle, 右边蓝色是 是否可见 toggle.

几何级节点

houdini-houdini记录_第3张图片

  1. 忽略本节点

  2. 渲染此节点到3D viewer

  3. 锁定本节点输出结果. 也就是锁定后, 修改其他节点都无效.

  4. 线框显示出来.
    比如, 渲染 右边的 (蓝色 高亮) 的同时, 要想别的节点显示出线框来, 就高亮这个这个粉色的标记.

    houdini-houdini记录_第4张图片

预览 与 编辑

houdini-houdini记录_第5张图片

  • 右边蓝色高亮的 节点c (subdivide1), 代表当前显示预览是 节点c 的效果
  • 选中 节点b (polysplit9), 代表当前正在编辑的节点, 显示的是 线框. 此时添加一下节点, 就自动插入到 节点b 之下. (估计程序的设计是个 链表, 遍历链表做运算)

矩阵操作

平移, 缩放, 旋转 对应的快捷键是 T, E, R ( W是网格显示切换, 在unity中平移是 W )

快捷键S : 选择模式


修改模型坐标系

按下 insert 键, 然后就可以修改坐标系

houdini-houdini记录_第6张图片


切换坐标系操作

选中物体, 右键 align -> world/object, ( 类似 unity 中的 local/global)

houdini-houdini记录_第7张图片


节点操作 - transform 变换

让节点乘以一个 矩阵 来达到 平移,缩放,旋转 的目的, 避免直接在源模型属性上修改矩阵参数.

  1. 选中节点, 并进入 几何层级
  2. tab 键呼出工具菜单, 搜索 transform, 然后选则 transform 节点
  3. 连上 transform, 修改矩阵数据, 然后点击 蓝色 图标让其生效

houdini-houdini记录_第8张图片


3d 窗口

显示 面编号, 法线 等

  • 顶点 法线

  • 面 法线

  • 顶点 编号

  • 面 编号


显示模式

当编辑某个物体时, 可以将其他物体 透明 或 隐藏. ( 这个和 zbrush 中的 ghost 模式一样的意思 )

houdini-houdini记录_第9张图片


显示面所在的分组

在挤出某些面的时候, 需要指定它所在的分组

houdini-houdini记录_第10张图片


导入模型

fbx 带参数导入

file -> import -> filmbox fbx

houdini-houdini记录_第11张图片

进入到导入物体的 geometry 层就可以看到导入源在哪

houdini-houdini记录_第12张图片

模型分析

houdini-houdini记录_第13张图片

  • 导入进去的是一个 subnetwork 节点 (也就是打包好的), 里面包含 几何体, 材质 节点
    • 材质节点 : 包含了该模型身上的所有材质
    • 几何节点 : 分好组 并对应好各自的材质.

平滑 及 网格 显示

houdini-houdini记录_第14张图片


数值变化控制

  • 3d viewer 中, 按住 shift 键, 拖动坐标轴作会以较小的值变化.

  • 属性栏中, 鼠标中间, 然后左右滑动.


几何体操作

先要进入到几何层级, 才能进行 点线面 操作.

多边形节点 如: 挤出, 桥 等等和max中的一样的意思.

houdini-houdini记录_第15张图片

也可以在 3d viewer 顶部选择, 点线面 模式, 及是否开启选择背面

边模式

LMB 双击 边, 选择 相连 的边

按住 shift 键, MMB 双击 边, 选择 相邻 的边

houdini-houdini记录_第16张图片

表面移动

houdini-houdini记录_第17张图片

加选/减选

  • 加选: 按住 shift 键选择
  • 减选: 按住 ctrl 键选择

选中相连的 点线面

  1. 使用鼠标中间, 选中 面1, 按住 a 键, 再用 MMB 选中相邻的 面2, 就会自动选中所有相连的面

houdini-houdini记录_第18张图片

选中的线转换成面

  1. 按住 a 键, MMB 选中相连的 线,
  2. 右键 选中选, convert selection to -> primitive selection

houdini-houdini记录_第19张图片

扩大选择

和 max 中的加选一样, 选中的面往外加选.

  • 选中面, 按住 shift, 再按 g 键 (一直按g就一直加选)

    houdini-houdini记录_第20张图片

  • 也可以选中一个相连的面, 这样扩选

    houdini-houdini记录_第21张图片


节点操作

挤出 - extrude

比较好的方式

  1. 3d viewer 中 选择 面片, 按 tab 键, 添加 extrude 节点即可.

    houdini-houdini记录_第22张图片

另一种姿势, 挤出指定的分组.

  1. 添加一个 extrude 节点, 挤出当前面片

  2. 再添加一个 extrude 节点, 指定要挤出的面的分组 group

  3. 对当前挤出的面进行矩阵操作, 勾选 transform extruded front, 就可以进行操作了.

    houdini-houdini记录_第23张图片

    也可以参考: 12 - Creating the Bridge Pillars


合并 - merge

将两个几何体合在一个节点中

  1. 已有 物体a, 新建 物体b, 目的是要将 物体b 合并到 物体a 中

  2. 进入 物体b 几何层级, 将节点 剪切 , 然后 进入 物体a 几何层级 粘贴. 此时只能显示 物体a 或 物体b 其中一个. ( 可以将 物体a 节点删了, 应为已经没东西在里面了 )

  3. 新建 merge 节点, 将两个节点连上去, 并点击显示, 就能显示两个物体了. ( merge 节点可以合并多个物体, 并不只是两个 )

    houdini-houdini记录_第24张图片

合并警告解决

假设合并两个几何体a 和 b, 只要双方有属性不对等, 就会报警告.

  1. 先查看合并的警告, 看到有个 cd (也就是 color 属性) 不对等.

  2. 分别查看 两个结合体 属性信息, 左边的有 color, 右边没有

  3. 给 右边 在 合并 前插入一个 color 节点, 此时警告就消失了.

    houdini-houdini记录_第25张图片

uv 分别在 point 与 vertex 冲突

造成这个原因是 别的建模软件建模的 uv 是在 point 分类, 而 houdini 中建模的 uv 是在 vertex 分类
此时就要借助 attribute promote 转换一下分类

houdini-houdini记录_第26张图片


引用表达式 对齐 (常用)

  1. 选中 目的位置 节点a, 右键 -> copy parameter

  2. 选中 要对齐 的 节点b, 右键 -> paste relative references, 以 引用 的方式粘贴, 会看到参数栏变绿, 表示有个 表达式 在控制, 点击参数名可以看到具体的参数. 按住 ctrl 键, 双击参数名 可以取消表达式.

    以后 节点b 就会参考 节点a 的值. 表现上就是 他在哪里, 我就在哪里.

    houdini-houdini记录_第27张图片

    在该表达式后面可以增加运算, 表示相对偏移

    houdini-houdini记录_第28张图片

引用表达式的方式非常常用, 对齐坐标轴 pivot , 平移缩放选择 等等.

比如: 整个节点要以 其中 圆环 节点 的坐标轴为中心, 做旋转操作

  1. 节点最底部添加一个 transform 节点.
  2. 选中 圆环 节点, 右键 center -> copy parameter, 拷贝位置参数
  3. 选中 transform 节点, 右键 pivot translate -> paste relative reference, 引用 圆环 节点的位置参数.
  4. 然后就可以 圆环 中心, 旋转整个节点.

houdini-houdini记录_第29张图片


边连接 - edge loop

相当于 max 中选中n个平行的边, 连接起来细分

houdini-houdini记录_第30张图片


复制到点 - copy to points

将模型复制到每一个点上, 右边 input 是 模型, 右边 input 是 点 的集合

houdini-houdini记录_第31张图片


剪裁 - clip

不显示几何体的部分区域, 和 shader 中 clip 的意思差不多

houdini-houdini记录_第32张图片


曲线 + 分段 + 复制

可以实现曲线上等距复制几何体

houdini-houdini记录_第33张图片

houdini-houdini记录_第34张图片

导出曲线参数给 unity

基于上面创建的节点来修改.

  1. 增加一个 暴露的参数, operator path 类型, op filter 选为 any sop, 点击 accept 确定. 然后把这个参数拷贝一下, 右键 -> copy parameter

  2. 把之前的 curve1 节点删掉, 增加一个 object merge 节点, 并改名为 user_input, 双击进入节点, 在 object1 属性栏中粘贴引用, 右键 -> paste relative references

  3. 保存, 右键 -> save node type. (已经导出过 .hda 文件才有这个 save ,没有的话会显示 create digital asset 导出)

  4. 丢到 unity 中, 拖到场景中, 修改 input typehda, 此时需要一个 曲线文件.

  5. 创建曲线文件. 菜单栏 HoudiniEngine -> new curve asset, 然后编辑曲线, 拖到 上一步的 字段中. done

    houdini-houdini记录_第35张图片


节点打包

打包完后, 就可以剪切粘贴到其它节点内
并设置抽出相关参数用来动态控制, 可以理解为编程上的 封装接口

houdini-houdini记录_第36张图片

暴露参数
  1. 选中打包好的节点 subnet1, 点击 设置 -> edit parameter interface, 打开参数设置界面

  2. 将需要添加的 参数类型 从左边拖到右边, 并设置好 显示名(Label )和 变量名(Name), 然后 apply and accept 生效

  3. 右键 显示名(Label) -> copy parameter, 然后进入里面, 在需要使用这个变量 属性框右键 -> paste relative references 引用这个变量.

  4. 后面就可以通过控制这个变量来 改变 属性框 的值

    houdini-houdini记录_第37张图片


复制 - copy and transform

  1. 选中要复制的节点, 添加一个 copy and transform 节点, 调整复制量 2, 调整 Xscale -1, 即可对称


查看属性 - geometry spreadsheet

以查看颜色属性为例

  1. [添加/分离 窗口](#添加/分离 窗口)

  2. 进入节点添加一个 color 节点, 并设置分类到 detail 中, 就可以在属性中的 detail 栏中看到 (设置到哪个分类, 在属性栏中就可以在哪个分类中看到该属性)

    houdini-houdini记录_第38张图片


材质

面 添加分组

这样可以给不同的分组的添加不同的材质, 而不是一整个几何体都是用一个材质球. 这个类似 max 中的材质id, 给面指定id后可以用多为材质.

  1. 选中面需要分组的面, 按 tab 键, 搜索 group, 增加一个 group 节点

  2. 最好重命名一下节点, 比如: mat_g1

    houdini-houdini记录_第39张图片

添加 除xx分组以外的所有面 为一个分组

  1. 添加一个 combine group 节点, 命名为 mat_g1_else

  2. 运算表达式. 左侧为当前节点 mat_g1_else, 右侧为 不等于 mat_g1 节点.
    意思就是把 mat_g1分组包含的面 以外的面分组为 mat_g1_else

    houdini-houdini记录_第40张图片

删除分组

如果 combine 了 分组a 和 分组b 为一个新的分组, 该物体不需要单独的 分组b, 可以添加一个 group delete 删除 分组b


添加材质

基于分好组的情况. 参考: [面 添加分组](#面 添加分组)

  1. 先充材质库中添加几个材质到 /mat 路径下, 因为等下选择材质球时只能充这里添加.

  2. 添加一个 material 节点. 然后材质数量指定为 2. 分别对这两个材质指定 分组和材质球 (如果当时看不到效果, 可以尝试退出节点, 再进入)

  3. done.

    houdini-houdini记录_第41张图片

    注意, material 节点只能使用该节点之上的 分组, 所以一般材质球在几何体的 最底部.


查看应用材质的部位

  1. 进入节点, 高亮 3d viewer 顶部的 select group or connect geometry (或者按 9 键 )

    点击颜色处可以修改显示颜色

    houdini-houdini记录_第42张图片


渲染效果图

需要的前置物料: 摄像机, 灯管, 渲染器

  1. 添加摄像机. 调整好场景视图, 点击右上角 no cam -> new camera 创建一个 摄像机节点

  2. 添加灯光. 顶部 lights and cameras 页签中点击创建一个 light 节点. 这里创建一个环境光

  3. 添加渲染器节点.

    1. 菜单栏 render -> create render node -> mantra-pbr 创建一个渲染器节点, 这里命名为 mantra1-pbr . 节点会在 out 分组里, 也就是输出.

    2. 菜单栏 render -> render -> mantra1-pbr, 开始渲染.
      也可以左下角 icon 中选中改渲染器渲染.

      • 渲染器中可以修改分辨率, 达到快速渲染的目的

        houdini-houdini记录_第43张图片


实时修改并渲染

  1. 切到 render view 窗口, 设置好渲染器, 摄像机, 点击 render.

  2. 把分辨率降低, 渲染比较快. 选中 渲染器 节点, 勾选 override camera resolution, 设为原来的 1/n.

  3. 然后修改材质球参数, 可以实施看到效果.

    houdini-houdini记录_第44张图片


动画

动画关键字

  1. 对某个属性设置关键字. 比如: 平移, translate 属性右键 -> keyframes -> set keyframe. ( 此时属性会变成 绿色 ) (快捷键 alt + lmb )

  2. 帧数移到 150 帧, 然后调整物体的 平移属性 (此时属性会变成 黄色, 表示有属性更新了)

  3. 提交更新. 右键属性 -> set keyframs -> commit change (快捷键 alt + lmb ). done !

  4. 点击播放按钮, 就可以看到动画

    houdini-houdini记录_第45张图片


物理刚体及碰撞

最简单的碰撞

  1. 创建两个物体, 一个地面 grid, 一个方块 box

  2. 选中 box, 添加一个动态刚体. 点击 rigid bodies -> RBD Objects (rigid body dynamic 动态刚体)

    此时若没有 DOP Network 节点, 会自动创建并命名为 AutoDopNetwork, 这是一个物理运算节点, 会运算所有联系到这个节点的物理模拟.

  3. 选中 grid, 添加一个静态对象, 点击 collisions -> static object

  4. 把帧数调到第一针, 点击播放. done

    houdini-houdini记录_第46张图片

分析

可以打开节点自己看内部, 主要是靠 box,grid 最底部的节点 与 物理运算节点 DOP Network 联系起来


常用快捷键

左键:旋转视图
中键:平移视图
右键:推拉视图
Ctrl+左键:以视图坐标为Z轴转动视图
Alt+左键:以视图坐标为Y轴转动视图
Ctrl+右键:区域放大视图或缩小视图,当鼠标由左上方向右下方框选

时为区域放大、当鼠标由右下方向左上方框选时为区域缩小。
Alt+右键:缩放视图
B键:单视图和四视图的相互转化
Q键:正交视图与透视图的相互转化
X、C、V键:网格捕捉、线捕捉、点捕捉
1键:将当前视图切换为透视图
2键:将当前视图切换为顶视图
3键:将当前视图切换为前视图
4键:将当前视图切换为侧视图
5键:将当前视图切换为uv视图
G键:将选择节点以最大化方式进行显示
H键 或 F键 :没选中 物体时聚焦全部obj, 选中 物体时聚焦该物体.

houdini9.0及以上版本。

Ctrl+Alt+Shift 点击: 自定义快捷键

  1. 视图操作

    • 按住 空格键(或单击回车键)

      +左键:旋转

      +中键:平移

      +右键:推拉

      +Ctrl+左键:景深旋转

      +Alt+左键:水平旋转

      +Ctrl+右键:区域缩放视图

      +Alt+右键:缩放视图

      +b键:单视图切换

      +o键:透视图切换

      +h键:还原视图

      +g键:没选中 物体时聚焦全部obj, 选中 物体时聚焦该物体.

      +a键:聚焦全部物体

      +1键:透视图

      +2键:顶视图

      +3键:前视图

      +4键:侧视图

      +5键:uv视图

      +d:视图设置

    • 按住 ctrl

      +1键: 透视图

      +2键: 透视图 + 顶视图

      +3键: 透视图 + 顶视图 + 前视图

      +4件: 透视图 + 顶视图 + 前视图 + 右视图 ( 四视图 )

      houdini-houdini记录_第47张图片

  2. 场景操作

    1:物体选择模式

    2:点选择模式

    3:线选择模式

    4:面选择模式

    e:放缩 r:旋转 t:移动

    回车键:操作杆

    y:循环切换

    这里强烈建议设置一个快捷键
    Align Handle 循环切换操作杆坐标类型 建议设为h

    shift+g:扩大选择

    shift+s:缩小选择

    shift+b:选择边缘

    ctrl+i:反选

    l:选择相连元素

    f:按元素方向增加选择

    shift+r:改变选中元素方向

    w:网格显示切换

    x:网格捕捉 c:线捕捉 v:点捕捉

    tab键: 呼出工具菜单

    Edit修改

    鼠标中键(空白处使用):软修改半径设置

    鼠标右键(操作杆上使用):详细设置菜单

    m:笔刷修改(雕刻) 属性面板里有雕刻模式图案等具体设置

    按住shift:修改笔刷大小

    点右键设置笔刷属性

  3. 节点编辑窗口操作

    中键:平移操作窗口

    右键:缩放操作窗口

    w:打开节点树状图

    t:打开节点列表

    c:颜色

    p:打开窗口

    x:打开组列表

    l:中心化选中节点

    g:最大化选中节点

    z:上一显示切换

    d:窗口设置

    n:名称显示切换

    s:切换连接线类型

    shift+g:节点编组

    tab键: 呼出工具菜单

  4. 节点操作

    左键单击节点:选择节点和连接线
    中键节点上长按:显示节点当前参数
    右键单击节点:节点操作菜单

    依次单击节 左击端口----建立连接

    单击端口后 左击空白----放弃连接

    单击端口后 右击空白----建立新的节点连接

    单击连接线 左击端口----更换连接

    单击连接线 左击空白----断开连接

    单击端口后 右击空白----建立新的节点连接

    选中节点甩动-----------断开节点

    选中节点拖到连接线上—插入当前节点

    选中连接线拖到节点上—连接节点

    选中节点 shift+c:打包

    选中节点 ctrl+n:节点盒

  5. 参数面板操作
    左键单击参数名:切换显示

    拖动参数到其他参数:选项 1当前值 2镜像 3相对镜像 4取消

    拖动参数到视图:创建参数操作杆

    鼠标中键点住颜色然后移动:吸取颜色

    Alt+鼠标左键:加关键帧

    ctrl+鼠标左键:清除关键帧

    shift+鼠标左键:打开当前参数通道编辑窗口

  6. 通道编辑窗口

  7. 左键:调节值

    ctrl+左键:随意调节

    alt+左键:加关键帧

    选中关键按

    y键:综合修改器

    t键:切换曲线控制杆 0键:水平曲线控制杆 9键:平滑曲线控制杆

    b键:还原默认值

    g键:关键帧组控制

  8. 在节点面板中:

  9. H:自动缩放视图;

    L:线形排列节点;

  10. 在Scene编辑界面:

    E:添加一个Edit节点;

    Q:重复节点;

    Enter:点击Primitive后,按Enter就会在场景的原点创建模型;这和按住Ctrl再点工具栏上的Primitive节点是一样的。

你可能感兴趣的:(Art,Art)