Houdini的一些专业术语

不同网络的介绍

image.png
image.png
image.png ch是控制动态和声音的
image.pngshop是旧的管理材质的,现在已经被mat代替了
image.pngstage(solaris):适用于lookdev,布局和照明,以USD为核心,可以使用专门的节点定位对象,实例化几何体和管理镜头布局。
image.pngtasks: 用于处理多线程任务和作业。它用于执行复杂的计算、模拟和渲染任务,并对其进行分析和管理

particle与grains的区别

grains是颗粒,particles是粒子
grains模拟的是颗粒材料,如沙子、粉末等。它们具有质量、速度、位置等物理属性,并受到力的作用。grains的模拟通常涉及颗粒之间的聚集、流动、堆积和碰撞等行为。
particles一般用于模拟离散的小元素,例如火花、烟雾、爆炸碎片等。粒子可以表示各种物理属性,如速度、位置、颜色等。particle的模拟通常设计粒子之间的移动、发射、生命周期和相互作用等。

HDA(OTL)

HDA在旧版本中叫OTL,意思是Houdini Digital Asset 数字资产,当制作完一个程序化的模型或者动画或者效果等以后,可以将这些节点打包成一个HDA以便在不同的项目中进行共享和重复使用。
HDA不仅可以在Houdini中重复使用并且可以编辑,HDA也可以导出为独立的文件提供给其他DCC软件或者引擎来使用。
在houdini中这些带锁的节点都是HDA
image.png

制作HDA

首先将节点进行打包,并在打包节点中通过参数编辑器绑定对应的参数。
打包快捷键(shift+c):选中节点后点击右上角图标image.png
然后在打包的节点上右键选择创建HDA(这是18.5上面截的图,19.5上面没有,19.5版本需要在显示器左上角创建HDA)image.pngimage.png
image.png
image.png
保存以后在houdini的网络编辑器中输入HDA的名字来调用了,并且可以在houdini中再次调整HDA的默认参数。
并且在电脑里的houdini文档里面可以找到对应HDA文件:Documents\houdini19.5\otls

修改HDA默认参数

方法一:先解锁节点的锁定。右键点击 Type Properties… 即可再次修改默认参数
image.png
方法二:在节点本身的参数面板中修改参数然后右键节点选择Save Node Type然后选择Match Current Definitionimage.png

界面设置

UI设置

使用Ctrl + , 进入界面设置image.png
image.png

视图还原

image.png

扩展界面布局

在基础视窗的下面创建一个新的视窗alt+]
image.png
然后更改下面新创建的视窗的类型,这样就能够上面显示视窗,下面显示geometry的数据表格。image.png
image.png

工具架介绍

Lights and Cameras灯光和摄像机

这些工具用于在场景中创建和设置灯光和相机。灯光工具可以帮助您调整光源的属性和光照效果,而相机工具则用于设置场景的视角和渲染参数。
image.png
image.png

Collisions碰撞

这个工具集用于处理物体之间的碰撞效果。它可以模拟物体之间的碰撞和反应,并生成逼真的物理效果。
image.png
image.png Deforming Object:令一个geo变成有形变的物体。也就是说这个物体能够影响其他带动力学的物体
image.pngGroundPlane:添加地面碰撞。

Particles粒子

粒子工具用于创建和模拟粒子效果。通过设置粒子的属性和行为,您可以模拟烟雾、火焰、爆炸等效果。
image.png
image.png
image.png
SourceParticleEmitter:将所选择的物体变成粒子发射器。

Grains颗粒

颗粒工具是一种更高级的粒子系统,用于模拟具有更多物理特性的颗粒,消耗资源更高,相比粒子,它会模拟颗粒与颗粒之间的物理效果,例如沙子、泥浆。
image.png

Vellum布料

Vellum是一个用于模拟布料、软体和其他变形物体的工具集。它可以模拟布料的折叠、撕裂和变形,以及其他物体的动态行为。毛发,沙子,黏体也可以通过vellum来做
image.png

Rigid Bodies刚体

刚体工具用于模拟刚体物体的物理行为,如碰撞、重力和动力学。您可以创建刚体对象,并模拟它们在场景中的运动和互动。
image.png
image.png
image.png MakeBreakable:为选择的刚体物体添加破碎
image.pngRBD Instanced Objects: 先选择一个物体A,然后点击此工具,然后选择物体B再按回车,按完回车以后物体A的所有顶点都会被替换成物体B。

Particle Fluids 粒子流体

这个工具用于模拟流体的行为,通过将粒子和网格结合起来,可以生成逼真的流体效果,如水、烟雾或液体金属。
image.png
image.png
image.pngFLIPTank 创建一个水缸image.png

Viscous Fluids粘性流体

粘性流体工具是Particle Fluids的扩展,可以模拟具有更高黏度或粘性特性的流体,如糖浆或蜂蜜。
image.png

Oceans海洋

这个工具集用于创建逼真的海洋和水面效果。它可以模拟海浪、波纹、海浪翻滚等效果,并生成逼真的水体表面。
image.png

PyroFX火焰和烟雾

PyroFX工具集用于创建逼真的火焰和烟雾效果。它可以模拟火焰的燃烧、烟雾的扩散和交互,并生成逼真的火焰和烟雾效果。
image.png

FEM

FEM工具集用于模拟弹性和变形物体的行为。它可以模拟弹性体、变形物体的扭曲、弯曲和拉伸,并生成逼真的变形效果。
image.png
image.png

Wires线条

线条工具用于模拟线条和柔性物体的行为。它可以创建和模拟绳索、电线、海藻等柔性物体,并模拟它们的动态行为。
image.png
image.png

Crowds群集

Crowds工具集用于创建和模拟大规模的人群效果。它可以模拟人群的移动、交互和行为,并生成逼真的人群场景。
image.png
image.png

Drive Simulation驱动模拟

驱动模拟工具用于模拟和驱动复杂的物体和效果。它可以通过外部力、约束和动画数据来驱动模拟,并生成复杂的动态效果。
image.png
image.png

快捷键与操作

image.png
image.png

视图操作快捷键

快捷键

空格+f键: 居中显示
w键:切换为网格显示
e键: 缩放
r键:旋转
t键: 位移
视图模式中按1,2,3,4,5切换透视图,顶视图,前视图,右视图,UV视图
9键: 显示geometry对应的group和连接的geometry。
image.png
空格键:切换view视窗模式和select选择编辑模式,如果切换不了就按s键也能进入选择编辑模式
ctrl+b:视图最大化,需要在对应视图处按
d键:设置选择视图的显示项image.png
shift+G键:扩大选择的点边面区域
shift+s键:缩小选择的点边面区域
快速选择循环点边面:选中一个点边面以后,按a键配合鼠标中键快速选择循环点边面

操作

将某一窗口最小化:例如想要将属性编辑器缩小就点击图中图标image.pngimage.png

网络编辑器快捷键

g键:快速定位到选择的节点
h键:定位显示所有的节点
l键:一键快速排列
令节点对齐:选中要对齐的节点然后按shift+a+鼠标左键按住拖动(上下拖动为竖着对齐,左右拖动为横着对齐)
R键:显示与隐藏节点
复制节点:ctrl+cv或者alt+鼠标拖动
y键:按着不松开启剪刀模式剪断节点之间的连接
shift+o:添加注释
shift+w:显示大纲
shift+c: 打包节点
p键:在网络编辑器中快捷显示隐藏属性编辑器image.png

网格编辑器的一些操作

创建一个节点的引用

使用此功能后会创建一个新的相同节点,新的节点的属性会完全同步旧节点的属性调整。
image.png

创建参数的引用

先复制要引用的参数image.png
然后在另一个参数中右键使用粘贴,有两种方式,一个是相对路径一个是绝对路径。
使用此功能后将会建立双方参数的同步。
image.png

将VOP中的输入变量变成参数使其可以直接在VOP节点上自定义参数值

在变量处按鼠标中间然后选择Promote Parameter即可创建出来可以用户自定义的参数、
image.png
然后点击变量输入引脚的四边形即可调整参数的类型和名字。
添加完参数以后,即可在VOP节点外部调整参数的值。

动画相关快捷键

alt+鼠标左键点击属性进行k帧,设置关键帧
shift+鼠标左键点击属性:进入属性的动画曲线编辑器
⬆上箭头键:正序播放动画
⬇下箭头键:倒序播放动画

不同网络对应的常用节点

GEO(SOP)(建模,程序化建模,K帧,展UV)

建模

null:空节点,主要作用是标记和分类
merge:合并
transform : 变换
soft transform : 带软选择的变换
blast:爆破(有删除的作用)
fuse: 焊接相邻的点
facet:把面与面进行拆分,将有多条边共用的点分离成多个点,需要勾选uniquePointsimage.png
ends:可以使用这个节点将模型线框显示,需要将close U属性改为Openimage.png
add:可以将模型删除但只保留点,需要勾选image.png
add也可以将点连成线:需要在Polygons一栏中选择By Group
image.png
scatter:模型变点(可以自己设置点的数量)
polywire:将线框向外扩展变成网格
polyextrude: 挤出
polysplit:多切割,以及插入循环边,如果不能交互的话就在视图窗口中按enter键,通过改变path type切换点击切割的模式还是循环边的模式image.png
split:分离
polybevel:倒角
polyfill(polycap):填充
poly frame:输出normal和tangent属性并且可以更改其normal属性和tangent属性的名字,例如可以在tangent属性的名字写成N,这样就相当于使用其tangent属性作为N属性来使用。
copy to points :将模型复制到点上
sort:可以用来反转点序号
match size: 匹配大小,例如通过一个box为标准来使其他物体大小跟box大小匹配(需要更改一些节点的参数)
reverse: 反转,通常用来处理法线
attribute create:创建自定义属性
attribute randimize : 添加或设置属性值的随机
mountain:翻译为山,往山的形象进行变形,作用是为模型添加变形
subdivide: 细分
color:添加颜色
group:组,可以将顶点或者边等进行打组,在选择节点的情况下可以按~键然后就可以手动选择需要打组的元素,然后再按回车键进行打组。
也可以通过另一个geometry来进行范围的选择:image.pngimage.png
L-System:提供了很多预设,可以快速做出一些形状,比如树,树丛,闪电等
image.pngimage.png
pack:打包,打包后组成元素变成1image.png
resample:重新采样,可以改变曲线的组成,例如让曲线的点更多。
object merge:将obj层级下的其他geometry带到另一个geometry层级下
switch:可以控制两个节点之间切换显示
magnet:磁力配合metaball来制作geometry与metaball相互作用的磁力效果
skin: skin节点可以将线变成面image.pngimage.png
group promote:切换组的类型
convert: 转换类型
connectivity: 新增一个属性(默认是class),将merge到一起的geometry按照顺序给0~(geometry个数-1)的值,例如这里将两个box合并后给connectivity后,第一个box的点(或面)的class属性为0,第二个box的点(或面)的class属性为1image.png
collisionSource:通过输入后输出一个geo一个vdb

UV

UV Texture:对geometry进行UV的投射,19.5测试的是在投射的时候同时能够显示出来UV的贴图18.5则不会显示出来。
UV Quick Shade : 赋予UV检查的Shader方便观察。

地形

下面的这些前面的HeightField都可以打hf缩写来快速定位到类型
HeightField:初始地形,平面网格
HeightField Noise : 专门针对地形的Noise
HeightField Distort by Noise: 对Noise进行扭曲
HeightField Transform:专门针对地形的移动节点
HeightField Erode: 模拟侵蚀(属于解算,通过移动关键帧可以看出来)
HeightField Flow Field:添加水流的影响image.png(红色)
HeightField Visualize:使为地形添加的不同细节更加形象话的表示出来(通过自定义的颜色)
Convert HeightField :将地形转换成网格体
Time Shift:如果前面有模拟,那么可以通过这个节点停掉解算过程而得到需要的某一帧的效果。

动画

time shift:记录输入的对象的动画,然后让这个动画的帧数由timeshift节点的属性来操控。可以通过给timeshift的属性进行K帧达到给动画的某一阶段的动画进行倍速的效果。

制作粒子可能用得到的

trail:记录输入的点的前一帧(或前几帧,可以自定义),然后会把这些记录显示在窗口上。也可以通过它来得到对象的速度属性,不过需要修改类型。image.png
pointReplicate: 基于输入的sop的点,来为sop的点周围来生成点云。并且可以继承点的速度(在attribute里面),能够控制点云的形状数量的noise

VOP(VEX Builder)

VOP变量颜色对应类型介绍

先介绍一下不同颜色对应的类型:
没有布尔类型,布尔类型用int类型的0和1来代替了
绿色:vector
青色:float
深青色:floata 浮点数数组
蓝色:int
棕黄色:string

VOP变量名字对应

image.png
P对应顶点属性为vector类型
Cd对应颜色属性为vector类型
ptnum意思是point number 也就是点序号,int类型
numpt意思是number of point 也就是点的总数量,int类型

VOP节点介绍

VOP节点有很多种
image.png
Point VOP 和 Primitive VOP 和 Vertex VOP都属于Attribute VOP,只是这三个默认的类型不同。

Attribute VOP

attributeVOP,这个是一个可以处理各种属性的节点,在节点里面可以通过可视化编程网络设置属性。
bind:读取属性
bind export: 输出属性(创建一个新属性)(跟bind节点是一样的,只不过把bind里的默认参数修改了一下)
random:随机
fit range:将数值限制在一个范围内
round to integer:四舍五入
multply add constant:乘和添加常数,配合random调节随机值
switch: 通过接收的数来选择自身所具有的对应位置的数来进行输出
subtract: 减(要求有两个输入)
subtract Constant:减一个常数(只需要一个输入)
mix:混合,跟UE材质蓝图的lerp是一个道理

out(ROP)(渲染输出)

mantra:houdini自带的渲染器节点image.png

mat(材质网络)

mat是为物体添加着色器和材质的网络
创建好shader以后可以将节点拖入到视图中的物体中可以快速地赋予材质
classicshader 经典shader

dop(动力学解算)(烟火水粒子)

gravity:引力,重力,9.8
staticObject:赋予SOP路径后生成被动碰撞体

粒子

popobject:配合popSolver使用,使其能够与DOP环境的其他对象正确交互
popSource:用于通过几何体生成粒子的节点
popCollisionDetect:用于粒子的碰撞并设置碰撞后的反应
popDrag:为粒子添加类似风阻的效果
popForce:为粒子添加新的作用力

解算器节点

image.png
rigid body solver:专门用于处理刚体物体的运动、碰撞和相互作用。
刚体是指在运动过程中形状和体积保持不变的物体,它们的运动受到物理力学规律的约束。
static solver:使其变成被动的碰撞体,但不受模拟的影响。例如,建筑物、地形、静态障碍物等都可以被视为静态物体。
flip solver:流体解算器,计算飞溅和波浪效应
Whitewater solver:在flip solve的基础上创建泡沫喷雾和气泡
vellum solver:属于POP solver类型,用于支持布料,头发,颗粒
POP Solver:用于粒子和颗粒,也可以用来模拟软体和布料。
Wire Solver: 用于解算毛发和皮毛或其他例如船的索具或树枝的索具等丝状物体。
Finite Element Solver:用于模拟四面体的材料和固体,用于模拟肌肉,软体,破碎的木头
Cloth Solver:对与变形物体作用的布料进行模拟
SOP Solver:用于SOP网络,随着时间的推移而改变物体的形状。例如墙壁被物体撞击而产生凹痕。

文件管理规范和场景比例

场景比例

houdini的场景比例是一个单位是1m,其他dcc软件的单位一般是1cm。
修改场景比例的方法(houdini因为计算原因所以更推荐使用m为单位):
image.png
image.png

文件管理规范

文件命名

内容_大版本_小版本.hip
v是version的意思
t是take的意思
image.png

文件节点

经常使用的文件节点有两个,一个是file 一个是filecache
一般file只使用它的读取功能
image.png
filecache:
这里的$HIPNAME和$OS和$HIP都是环境变量。 $HIPNAME是项目文件名称,$OS是filecache这个节点的名称,$HIP是项目文件的目录路径,$F是帧数
houdini项目文件名字的后缀就是hip
image.png

扩展节点布局预设

image.png
在节点上使用编辑参数界面功能
左边是能够添加的参数列表,中间是属性界面中已经存在的参数列表,右边是改变参数的一些属性.
也可以通过鼠标左键拖动其他节点的属性参数至设置参数的这个列表使这个节点可以控制其他节点的属性参数。(比如可以将通过节点做好的模型进行打包,然后在打包节点里的模型节点的属性参数拖入到打包节点里,这样就可以在打包节点中调整模型的细节;也可以在打包节点中新增新的属性然后将打包节点的属性值复制到模型里的节点的属性上面)
image.png
调整好的节点界面可以保存预设,或者替换默认预设
image.png
image.png

HScript

@和$的区别

@是VEX的变量,$是HScript的变量
通常通过@来使用局部的变量(例如访问几何属性),$来使用全局的变量(例如访问houdini的帧数,文件路径)。

全局变量举例

houdini文档上提供的一些:
https://www.sidefx.com/docs/houdini/network/expressions.html
文档上没有的:
$CEX,$CEY,$CEZ分别表示一个物体的中心的XYZ在坐标系下的对应的X或Y或Z的值

函数

https://www.sidefx.com/docs/houdini/expressions/index.html
常用的函数:
rand
stamp
fit
fit01

VEX

VOP节点是将VEX可视化了,如果想要直接写VEX可以使用Point Wrangle节点。

浏览连接好的VOP的VEX代码

image.png

VOP里的Noise的介绍

首先需要知道的是Noise不是完全随机的计算,例如针对一系列点添加Noise时,Noise控制的每个点和上一个点的变化差别。

不同NoiseType的区别

image.png
image.png

Noise的一些参数

image.png
frequency是频率,频率在0~1之间调整可以看到明显的区别,越高变化的次数越多
Amplitude意思是振幅,是指变化的幅度,正一和负一是完全相反的
roughness是粗糙度,0~1之间粗糙度越高变化的越明显
Attenuation是衰减系数, 官方解释是Flattens the noise to prevent extreme spikes by damping the values. Higher values create a smoother look.
Turbulence翻译是湍流,可以理解为控制Noise的Noise,也就是为Noise再添加Noise