Houdini入门(每天持续更新一点点!!!)

部分的对照文件在这里,需要的自取THAA━━。゚(゚ノ∀`*゚)゚。━━NKS!!!!!GitHub - Dafenyuyu/Houdini_Dafenyuyu: 对照文件

第三章:SOP基础节点(SOP是Surface Operator)

第一节:Houdini的各个模块介绍

至于这些模块为什么这么叫,没有为什么,官方就是这么定的( ◠‿◠ )

重要程度了解一下

第二节:Font

在Houdini中收尾相连的线会自动形成一个面,如果想要关掉这个面的显示的话可以用ends节点

Ctrl+中键可以让参数回到默认值

如果这里只想要字体形成的曲线那Font里面就不要勾选Hole Faces,字体上的过渡线就会没有

Font节点中最后一个属性是Add Text Attributes给字体添加属性 可以给字母划分不同的颜色 点i—textindex或者textsymbol查看 i面板可以用Ctrl+中键快速调出

$F是最常见的一个变量 可以显示当前帧数

第三节:Trace

相当于用图片来代替文字输入 在这个节点的Filters里面有一些可以调节生成字曲线点的一些参数

这个文件不一定要用本地文件 也可以使用一个图片的网址 (但是使用了这个之后最好点击节点左下角的雪花图标锁起来)

这里先转成曲线 然后转成多变形可以做卡通字的效果 勾选Add Point Texture可以给生成的东西加UV

还可以用COP模块做一张图 然后用Trace抠出来(用的很少)

第四节:PolyExtrude与Sweep

挤出单面的模型需要勾选Output Back,如果基础全封闭的就不用勾选

挤出可以一起挤出或者是沿着面挤出,这种的就不用勾背面

做一个随机挤出的效果,用到的节点是Attribute Randomize(属性随机化)默认随机的属性是Cd也就是颜色

要挤出不同的距离,则需要控制Local Control里面的参数 距离对应的是Distance Scale 然后把这个参数的变量名(变量名建议保持默认就好)复制进随机的那个节点替换掉Cd ,Attribute Class改为Primitives。还需注意的一点是距离是一维参数 颜色是三维(我个人这么理解 可以专业叫法不是zy)。Options里面也有参数可以调整,类似于种子的一些东西

前后都不要,向内挤出出可以做出空心字的效果,也就是调整Inset的值

Twist是扭

接下来介绍的PolyExtrude右边的输入端,沿曲线寄出,首先使用Curve Bezier画一条曲线,并使用Smooth和resample节点让曲线变得更平滑,曲线的长度可以使用Measure测量

查看曲线长度

在加多一点分段就可以沿曲线寄出,但是这个东西并不好用哈哈哈,做这样的效果还是sweep节点更好用一点

使用sweep节点挤出,左路是曲线输入,右路是截面输入。将End Caps里面的End CapType改为Single Pologon可以把模型封口。这里需要注意一点,正常挤出的东西相对于截面来说是反的。需要纠正方向。这个节点最大的好处就是有UV

拧一拧

第五节:Curve绘制曲线

在Obj里面新建一个Geometry 然后geo里面建一个Curve Bezier,切换到多重手柄工具就可以绘制。空格+2键进入顶视图,Shift+F1显示操作文档。还有Ploygon和Nurbs两种类型的曲线,用法和Maya里面的差不多

这里来运用一下那个给曲线倒角的功能,首先创建一个Font节点,用文字转成曲线Primitive Type改为Beziers Only,然后使用Convert节点转一下(转成Bezier Curve),最后连接上曲线节点的输入端

第六节:综合小练习

使用一张图片结合Trace节点生成一个点赞形状

使用 delect节点删除外圈多余部分,再用divide节点三角化一下多边面

然后挤出倒角,右边的节点是一个投币的形状。

matchsize节点可以参考一个物体的大小,左边是修改对象,右边是参考对象

第七节:关于倒角问题

正确的和不正确的倒角,需要处理好多边面再挤出。

在进行布尔运算后,要使用PolySplit节点对多边面进行处理再挤出,然后再选中需要倒角的边(s进入选择模式,3键选线,双击环选),然后使用PolyBevel节点进行倒角处理(鼠标左键调整范围,滚轮调整段数)

这里介绍一个快捷操作,可以更改C键的热盒菜单,将其设置为PloyModeling,就可以快速调出切割,倒角,挤出的那些菜单。也可以按下Tab键找节点

下面是正确的节点演示

第四章:Group组

第一节:Group处理的元素

在场景中新建三个节点,全选Alt拉一下可以Merge合并,在使用Ployextrude挤出的话会全部挤出,因为Ployextrude的Group为null

然后给sphere加一个Group,挤出节点里面设置一下对应的组就可以单独对小球进行挤出。

创建组的注意事项,组的名字是区分一个组的关键,也就是属性面板里面的Group Name,复制的话这个名字是不会变的,新建的话可能会变,但最好还是手动检查一下

组就是针对某一些元素进行处理,而排除掉我不想要的元素

下面是一些小练习。对Frot节点中的部分字进行挤出,也是先给它添加一个Group节点,然后看图。这个Base Group里面也可以直接输入数字 对应的是面序号 用空格隔开

挤出中设置好对应的组就可以了

Vertices承载的是uv信息,是为了展uv用的,而且是不能在三维视图中进行编辑的。Vertices形成Primitives

第二节:Group_空间选择

先来了解一下Bounding Box和Bounding Sphere的打组方式,顾名思义就是用一个方盒子或者球体来框选范围。可以回车键进入多重手柄工具调节大小

这里介绍一个小技巧,正常情况下,复制节点 节点名会变,但是节点里面的Group Name不会变。这时候就可以使用一个通用本地变量名$OS,节点名字就会和Group Name保持一致

box和Sphere略有不同

第三种空间选择:Bounding Object(points or vertices only),这里用一个pighead来框选范围,连入Group节点右边的输入端,此时会选中一些点,但是需要挤出的是面,所以就需要一个grouppromote来转换,把Points转化为Primitives。

然后在挤出节点中选择对应的组就可以按范围挤出了

第四种体积选择,这种有一个好处就是可以将几个物体合并成一个大的体积 很方便的一种选择方式

基于法线方向的选择,确定好角度轴向的程序化选择

null是在Sop模块创建的

这个选一些不正常的面

19.5版本还新加了一个Bounding Tepe 文档链接指路http://127.0.0.1:48626/nodes/sop/groupcreate

总结

第三节:Group_by_Range

这个节点的属性面板中,Base Group可以像基本的Group节点那样用,组的类型(Group Type)要选对不然可能会没有效果,Merge Method在组名字一样的情况下可以使用,例如都为Group1,还可以使用RangeType设置开始和结束

做一个程序化的四角镖

按角度选边

然后用Bounding框选中间的点缩放,用一个!进行反向缩放

程序化的好处就是可以随时更改尖尖的数量

第四节:Group_Expand

先来介绍一下,删组和删属性。attribdelete是删属性,groupdelete是删组。clean节点组和属性都能删除都删需要输入一个*       Shift+R可以切换连线顺序

Switch是一个开关节点,可以一下输入很多个,用01这样的数字来控制

接下来是Group_Expand的使用

Flood Fill to Connected Geometry有点类似于Maya里面的壳选择,拿一个石头人的锤子举例

然后可以用balst删除锤子或者只留锤子

如果Group_Expand节点只有选面打组的功能那简直太无聊了,这里介绍一个用这个节点求管道中线的技巧

首先用spiral节点创建一条螺旋曲线,稍微调整一下参数

接下来连接一个Mountain(也就是Attritute Noise的一个属性预设),得到一个不规则的曲线

再使用sweep进行挤出,截面类型就用预设里面的圆盘就行,还可以用一条曲线控制不同地方的粗细

最后用Remesh节点对模型进行重拓补,Target Size值越小拓补的越精细,这里我们使用0.03就刚刚好。然后使用Stash节点进行冻结操作,来模拟一个从外部导入的模型。

断开stash节点和上面节点的连接,y键划一下断开,然后就轮到groupexpand节点登场了。操作是这样的,先选最头上的一圈点,勾上Flood Fill巴拉巴拉 勾上Step,按下回车就能全选打组

这时候重点就来了,点击groupexpend节点的i,再点step,再看三维视图,数字再均匀的递增上去

这个数字需要设置一下才能出现

然后使用Fuse节点焊接step的点,拉动Snap Distance就能看见效果

但这个时候的点序号是乱的,我们最后是需要用正确的点序号进行连线的

这里就需要用到Sort节点对点进行排序,Point Sort设置为By Attribute,属性设置为Step,这时的点的序号就正确了

最后使用add节点将所有的点连起来,把Ploygons里面改为By Group就会自动把所有的点连线

然后打开之前的管道作为参考,紫色的那个按钮,按Ctrl键点一下可以变成实体参考。就可以看到管道的中线已经求出。这个效果对做流体帮助比较大,例如血液在血管中流动

第五节:表达式打组

用到的节点是groupexpression,里面有一些预设的表达式

Within radius 1 sphere of origin 半径1范围内原点的原点球,有点像Bounding Sphere

X coordinate less than 0 X坐标小于0

30% chance 30%的几率 类似于随机选择

还有一些选三边四边或者五边的表达式

也可以加很多个VEXpressions然后将其合并

顺带提一下用Attributewrangle如何打组 拉杆是ch('变量名')

@group_grp1 = rand(@primnum+ch('seed')) < ch('Ratio');

第六节:节点输出组选项

利用规则来生成程序化的东西

用到的功能是输出组,可以把输出的东西进行打组,然后重复挤出向内偏移就能得到

第七节:组概念的应用

组的作用就是确定好去处理谁或者不去处理谁

选面打组的方式:可以s键进入选择模式,选好确定的面,然后按下delete,节点区域会出现一个blast,勾选Delete Non Selected可以反选。如果选择的是线,按下delete则会出现dissolve

也可以在三维区域选好面之后,按下Tab键建一个Group节点打组

Split节点可以分两路区分打组和未打组区域,赋予不同的颜色看看效果

第八节:拆解PointsFromVolume

PointsFromVolume节点在超过2.5的平面上就不起作用吗?

这个节点处理的是一个体积 但grid是一个平面无体积 只是恰好在屏幕大小小于2,5的时候回有作用

我们可以对Grid进行处理一下 添加一个extrudeVolume节点并把平面向上抬一点点就会在操作2.5的大小下起作用

第九节:Group_Combine

类似于布尔运算

这里介绍一个小技巧 获取上游节点名称并将其作为Group Name

表达式这样写`opinput(".",0)`      中键可以翻译内容

第十节:连续组的选择

shift+p   ctrl shift 上键 

这是一个钟根据习惯的选法,比如隔一个选一个然后按shift+p,再同时按ctrl shift 上键 就会一圈隔一个选一个,在此基础之上,shift+左向左扩展,shift+右向右扩展。不同的规则需要再次按Shift+P

Lab工具出不来待我找找原因

第五章:Attributes属性

第一节:属性的概念

Detail是整体属性 P是顶点属性 N是法线 Cd是ColorDiffulse v表示发射速度(小写的v)

查看点的属性 并不是非黑即白

使用AttributeCreate创建属性R值为1可以看到曲线变成了红色,RG都为1则会变成黄色

使用Attribute Wrangle也是一样的效果,只不过一个要写表达式一个不用写表达式

第二节:属性和组的关系

在认识的第一个Group节点中就有用到属性

根据点属性来选择区域打组表达式@P.y>0的意思是点位置的y轴大于0就会被选上,因为处理的类型是点,所以需要把Primitive改为Points,会得到一个模糊的区域

想要把这个模糊区域变实可以使用attribtepromote节点转化,选择需要转化的属性类型,更改好由哪种类型转化为哪种类型。正常状态会得到一个粉色区域 可以更改一下Promotion Method转换方式

组实际上就是条件 谁满足了处理谁 属性本身就能成为组的条件

将一个球Y轴小于0的点拍平但保留拓补结构

首先是直接写VEX表达式的方式

下面两种写法都可以

但是这个操作用VOP节点连就会非常费劲 两种方式

用ray节点投射也可以做到,将球体投射到一个平面上

第三节:Transform

先使用Polyframe节点求一个点的切线,模式改为First Edge,不改的话这个线会默认往里面走

再连一个粒子节点玩一下

接下来看看Transform节点,里面有一个Attributes的框,默认是一个*号,也就是默认全部处理,这里我输入v,让Transform节点只处理上面求出来的切线,转一转角度

粒子的发射方向也会跟着变

技巧2:用Transfrom求枢轴中心

这里创建一个小恐龙,删除其他部分只保留尖尖,这时就可以用Transform节点将其位置归到世界中心原点

点击这个Move Centroid to Origin,当然这个办法有点笨,是不够程序化的

用表达式和本地变量来将物体归到原点

时代变了 也可以用一种很简单的方法 就是用matchsize节点,这是一个大小参照节点,右路不连的情况下大小是不会变的,但是会将物体归到世界中心原点

第四节:Copy_to_Transform

使用Copy_to_Transform复制一些猪头,间隔为2,数量为6

一边复制一边旋转

猪头踩地$YMIN,缩放用的是Uniform Scale

第五节:Copy_to_Points

制作一个随机分布物体的效果。撒点撒了100个。这边建议用Transform节点控制物体的大小,而不是直接对物体进行缩放

Attributes Name 控制颜色的是Cd    大小是pscale    法线是N

第六节:Copy_Stamp 

使用Stamp功能

emm 敲不出来在这个节点 下一节

第七节:Copy_to_Curve

做一个猪头排排队,两种方式都可以

Pitch Yaw Roll 代表不同方向的旋转 可以理解为点头摇头这样

第八节:Chain

有点像穿项链的一个工具

这里是把猪头 玩具和小球穿在一起,chain节点会自动识别merge节点里面的东西。先用Transform节点调整物体大小,再用matchsize节点节点将物体居中和对其位置。由于toy是几个单独物体结合起来的需要用一个pack节点打包。再用一个Sweep节点将曲线变成一个管,就有穿起来的感觉

关于贝塞尔曲线节点的用法

在节点区创建一个Curve节点是不会进入绘制模式的,可以先按2键调整到顶视图,然后Enter键回车进入绘制模式,关键的是这两个东西,第一个箭头是选择,第二个是绘制模式

在来说说Chair节点的一些用法,选中节点后,按下回车会出现一根绿色的线

用这个参数调整从头部开始的裁切量

还可以这样,切掉一点再往前推一点

案例 先看效果

这里会用到foreach节点,作用应该就是把每个字母都matchsize一遍,归到世界中心原点

首先给font节点添加属性

给颜色的时候会用到,处理的是Primitive

给倒角一个角度限制

Matchsize循环居中

第九节:多物体Copy

首先出场的是Copypoints

CopyToPoints是Houdini的一个重要节点,作用是将输入geometry根据输入点集进行复制。

在一个平面上随机撒点

复制出来是这个样子

现在复制出来的是一团一团的 要区分开必须手动定义变量 可以用Pointswrangle

现在复制出来的物体有很多穿插,可以用Points relax节点对点进行松弛

这里付一张变量类型表

另一种形式的复制,用到的也是Copytopoints

一些英文翻译

还有一种更高级的

第十节:Mask属性

1、根据Mask权重来撒点 画遮罩的那种

attributepaint后面一般会跟一个attributeblur 用来模糊上面画的遮罩

2、根据输入几何体来获取遮罩关系,用到的节点是maskfromgeometry,输入的几何体是一个猪头,按i点mask就能出现颜色

使用Ployreduce优化面时就可以用到那一圈遮罩,遮罩部分保留更多的细节

用遮罩删除红色区域,用地形Mask相关的节点来区分出想要的区域

第十一节:Attribute_Transfer

1、将低模的Mask映射到高模上去

先创建一个猪头,用remesh给模型重新拓补,将Target Size的值调小即可。这便得到了高模,再用Attributepaints给低模的猪头画一点遮罩,再用AttBlur模糊一下。创建一个attribtransfer,左边连高模,右边连低模模糊后的遮罩

如果想用Mountain节点来控制遮罩区域的变化,则勾选Use Attribute

2、maskfromgeometry和maskalonggeometry

用这个Mask影响mountain的范围,调整maskalonggeometry节点里面Raius的值

做一个好玩的,取一个grid和sphere相交的遮罩,遮罩控制mountain区域,并动起来

组是一个非黑即白的东西,而Mask是一个可以有柔和过渡的东西,如果用组来做下面的效果就会很生硬

第十二节:N_attribute

由多个Vertices的顶点可以构成一个Primitives的点

reverse节点可以反转面法线

十三节:六边形蜂窝状思路

1、用transform和CopyAndTransform,间距需要自己算一下

2、第二种是将一个平面变成竖线的模式,需要设置好对应的边数和大小

然后用grouprange节点隔一个选一个 成一个组

然后用transform选好向上移动一点

然后点就会变成这个样子,

再用CopytoPoints

3、第三种是用Pointsfromvolume撒点,点的排布方式要选Tetrahedral

再接一个triangulate2d和一个divide

十四节:根据规则连线

将乱序的点按照某一规律连接

未处理之前点序号是乱的,所以用add节点连的线也是乱七八糟的

这边可以用attribute transform来映射,右路输入一个画的曲线

起点的黑白由绘制的曲线决定

第六章:循环迭代

第一节:Foreach_Number

案例1:把一个小球每次移动1,循环移动10次,新建一个Foreach Number

但此时还看不到效果,因为begin那里默认状态使用的是input,也就是每次都是把在外面输入的那个小球移动一个单位,然后end那里的状态又是Merge,所以就是把这个小球移动了10次并Merge到了一起,来看看前后数据对比

so 想要看到一个小球移动10个单位后的效果,要改两个设置

如果想让每次移动的随机一点可以用这串表达式

rand(detail('../foreach_count1/','iteration',0))

这个节点是用来记录一些循环信息的

案例2:循环的向内偏移并且挤出

案例3

第二节:Foreach_Primitive

其实foreach节点就那几个 不同的地方在于预设不同

处理Primitive 将Polygon球的三角面沿面的中心点缩放50%的两种方法

第一种:用表达式$CEXYZ

第二种:先用matchsize里面的Stash Transform然后接一个Traform节点缩小50% 然后再用matchsize节点里面的Restore Transform 这种对比第一种的好处就是不用写表达式

可以再添加一个Switch对两种方式进行左右控制  Shift+R进行切换

做一个这种的效果

1

循环得到这个效果

此时有些点还处于浮空状态,需要使用ray节点将点投射到面上

然后点的For each 配合copytopoints

将排布好的数字挤出一点

和之前的面做一个布尔,类型需要选对

再用polywire把mesh变成管道和上面做好的merge到一起就行

还可以做这样的

第三节:Foreach_Connectivity

这个循环节点可以处理类似于大写的字母(完整一个的。如果是小写的例如一个i处理起来就不太行,就要用到下面的节点,要勾选Add Text Attributes)

做一个堆书的效果

双击高亮x的值并选中,然后左键拖入到Z 

再选这个就会有ch("sx")

第七章:动画相关

第一节:动画时间线

循环往回播 上键往后播 下键往前播 Ctrl上去到第一 Ctrl下去到最后

play once只播一次

zig-zag左右播

Alt+左键 k帧  Ctrl+左键删除帧(只能删除关键帧)  Ctrl+shift+左键全部删除(关键帧表达式之类的)  Ctrl加中键回到默认参数

自动关键帧

显示关键帧的一些曲线属性

第二节:路径动画

最简单的表达式动画

做一个简单的路径动画,这里新建一个rubbertoy和一条曲线,是在两个不同的geo层级下的,曲线的geo命名为path

使用Fallow Path,先选物体,回车,再选曲线,回车

然后就动起来了

关于表达式状态的一个变化

Ctrl Shift加鼠标左键清除  就可以变成关键帧动画

如果想要把运动的物体换成猪头 ,只要在框住的geo层级里面新建一个猪头并显示就可以,这就是Chop的一大优点

用一下LookAT的功能 先什么都不选 ,然后点击要看的,回车,再点击被看的,回车,再回车

效果

再做一个相机看向一个物体绕圈圈的效果

第三节:表达式动画

表达式变量与属性

 $F是整数 $FF是小数  

做一个最简单的表达式动画

绕圈圈表达式

旋转往上升

第四节:CHOP与循环动画

很难以后再说

第五节:拖尾动画

对应文件是Trail_Animation

第六节:SOP_SOLVER

xxxxxxx

学了这么久 感觉这个东西对我的帮助其实也不是很大 所以我决定先暂时停止学这个,以后用到了再去学,下面记一些让我比较好奇的东西

1、houdini导出FXB和ABC动画

可能会遇到的问题 FBX比例不对用Transform去调整 ABC动画可能角度不对

2、HDA数字资产

otls是大家约定俗成的一个路径 不要多嘴去问HDA放在哪 没做过HDA的话otls文件是不存在的

然后apply一下,做好的都会存在这里

这个类似于解包,点了的话就可以编辑里面的内容

第十五章:RBD刚体破碎

第一节:RBD刚体基础

做一个物体破碎的效果,首先用的是voronoifracture节点,是根据点来切割模型

用explodedview节点查看碎的效果

用assemble节点将每个碎块都pack一次,后面破碎要用到

然后创建一个DOP模块

里面这样连

然后就可以碎了,拖动时间轴查看

破碎的块可以调整一些 弹力 摩擦力 代理的一些属性

粒子发射刚体的一些案例

第二节:RBD MaterialFractu

破碎的集大成者,可以碎的很彻底

边缘有细节的一些破碎

这两个一连基本完事

第三节:碎裂导入UE

思路就是 要先把UE的那个桌子导到houdini 然后做好破碎效果 用ropnet导出破碎动画 

UE里面怎么爆的 先显示完好的模型 当按下某个键的时候 丸子模型隐藏 显示破碎的模型

这个节点可以画一个碎的权重

第四节:猪头切片

先这样吧  学这个挺烦的 等我把Zbrush搞定了再回来

冻结时间2023年5月23日( ´༎ຶㅂ༎ຶ`)

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值