▉生活的画家一定是个抽象派,它总是把人们的生活轨迹画的充满变数。— 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】
█ “ 就像毕加索的画,人生轨迹抽象而诡异莫测”
前言不搭后语
人的一生,总是有很多选择时刻。很多鬼使神差的选择,可能是一个改变了生命的运行轨迹的决定,看似不经意冥冥之中却似有定数。
本节内容
在vellum中模拟两个连接的钟摆如何产生兜兜转转的轨迹
本节要实现效果
.....
今天是42岁
第056天周四
83
这是写给Houdini的第083封“情书”
我是geo流程图
我是vex代码
设置ID:0点的质量
f@mass = 0.0;
首先
制作步骤
○
小节提要
本节将学习:
01)设置初始状态
02)设置vellum约束
03)增加钟摆运动幅度
04)增加钟摆尾部轨迹。
接下来
正式制作
使用软件:houdini17.5
01设置初始状态
○ 节点 ○
○ 具体操作 ○
❖小目标1❖
“双摆旋转”的“第一个初始状态”
🔗 解决方案 🔗
01)line :一根倾斜的线
a)角度:Direction x=0.4;
b)三个点:points=3;
○ 第一初始状态 ○
❖小目标2❖
“双摆旋转”的“第二个初始状态”
🔗 解决方案 🔗
使用“变换节点”
02)transform:
为了让钟摆在2d平面上运动,z轴取值为0
○ 第二初始状态 ○
02设置vellum约束
○ 节点 ○
○ 小目标1 ○
本例只需要“长度约束”类型
🔗 解决方案1 🔗
3)vellum constraints节点:
❖小目标2❖
设置“ID:0”为“双摆第一段的轴点”
🔗 解决方案2 🔗
A)ID:0点的质量=0:
4)vellum solver:vellum解算器
5)pointwrangle:id:0质量=0
B)其它点应用质量和厚度:
3)vellum constraints节点:
○ 基本设置完成 ○
01)播放。
❖○ 小问题 ○❖
本例不希望:钟摆模拟减弱并消失
03 增加钟摆运动幅度
○ 节点 ○
🔗 解决方案 🔗
A)取消vellum解算的各种外力
4)vellum solver: 风力,摩擦力,动态刻度都=0
B)减少迭代值,增加次级步幅
04 增加钟摆尾部轨迹
○ 节点 ○
🔗 解决方案 🔗
A)只保留点:ID:2
6)blast:
B)增加轨迹
7)trail:
❖○ 小问题 ○❖
B1)摆动运动速度太快;
B2)轨迹分辨率太低
🔗 解决方案 🔗
B1)减少timescale
3)vellume solver:
B2)重采样路径
8)resample:
小改动
1)“点ID:2”增加z轴的偏移。产生3D的轨迹
2)增加一个“点ID:1”的轨迹。
05 番外篇:Vellum约束类型
○ 节点 ○
1)grid1:size=2*2; 分辨率:50*50
2)torus1:
3)vellumconstraints1:
4)vellumsolver1:
测试 不同约束类型
(一)Distance Along Edges
○ 保持边缘长度约束○
(二)Bend Across Triangles
○保持该边缘长度约束 ○
每一对三角形创建一个三角形之间的约束保持最初的二面角
🔗解决方案 🔗
5)vellumconstraints2:
a)再在添加一个约束。
b)类型改成Distance Along Edges。
(三)cloth
○布料约束 ○
6)vellumconstraints切换cloth类型:
7)<6>d1中间输出槽连接 null:
a)在几何体sheet表中有“弯曲”“距离”约束条件。
b)每个prim都有每个的约束属性。
c)高亮可以看出约束网格:可以选择不同网格类型。
🔗 为了驱动模拟行为,就要影响prim的参数;比如“硬度stiffness”“restlength”“阻尼damping”.
🔗 接下来,对毛发进行限制;
(四)hair
○毛发约束 ○
🔗 这里需要polyline,而不是polygon;
8)grid
a)改变grid的连接类型。
b)播放
c)毛发约束属性:
1 它在相邻点之间强制一个给定角;
2 还会执行一个给定的扭曲约束,所以头发绳子不会在它们里面扭曲;
3 它还有伸展约束,加强点距离,
(五)string
○ 纤维,串约束 ○
🔗 跟hair很相似;
6)vellumconstraints切换string类型:
a)看一下“电子表格”
b)这里不限制没跟string的扭曲,更容易的约束模拟,比hair计算速度更快。
c)约束更简单。
测试 剩下的约束要结合上面几种约束
🔗 跟其他的约束结合使用;
1)Pin to Target
❖作用❖
把模拟点固定在给定位置
9)第一个约束:cloth类型:
10)第二个约束:Pin to Target类型
a)小问题)播放没反应。
因为)pin约束传入的几何体
🔗解决方案🔗
1)换soft,硬度减小=20,布料整体上下浮动
pin就像弹簧一样,拉回它原来的位置。
2)Attach to geometry
2)Attach to geometry
❖ 作用 ❖
1)它会找到与目标geo表面最近的点,
2)建立弹簧连接保持点与表面的距离。
❖ 小目标 ❖
attach给几何体
解决方案)把geo拖到Target Path栏
a)播放
❖ 小问题 ❖
有些奇怪的效果
🔗 应用方案 🔗
类似胶水,粘贴“geo”到“碰撞体”上
3)stitch points
❖ 作用 ❖
缝合约束,用来缝合不同的几何体
❖ 举个栗子❖
执行)
a)建立一个tube替换grid:
b)选择一些面,删除;打组;旋转;
c)暂时使“stitch缝合约束”失效,播放。
🔗 应用方案 🔗
如果)斗篷盖在跑步的角色身上,它需要缝合一些点,可以把选择两组点组合在一起
❖ 小目标 ❖
缝合两组点
❖ 解决方案 ❖
○ 设置两组点;硬度;
4)pressure
🔗 应用方案 🔗
充气气球&充气玩具吸收了压缩气体的geo
❖ 测试 ❖
a)禁用cloth约束;显示null
b)电子表只有一个prim的压力约束
因为这个储存了我们输入的对象的体积,它根据刚度参数,试图强制执行这个体积。
5)tetrahedral volume
❖ 作用 ❖
四面体体积约束的是:一个有四面体网格填充的网格,
❖ 举个栗子❖
a)Clip节点,剪掉一部分geo。
b)clip前加入“solidconform”可以观察里面充满四面体。
c)使clip失效;播放,有些慢,有些硬
🔗 应用范围 🔗
气球或充满不可压缩液体的物体(水,油等),如果pressure约束表现得太软,这是一种选择
6)struts
❖ 举个栗子 ❖
a)切换struts约束
❖ 作用 ❖
○ 它试图在一个网格上寻找相反的点,然后把两个点连接起来,产生一个简单的类似软体的约束;
○ 这种模拟速度很快,对于基本的软体,它不会被压的太厉害,这是一种非常快速简单的稳定的软体模拟方法。
最后两种约束
7)Glue
❖ 举个栗子 ❖
a)transform和merge创建grid,得到两个错位的不相连的网格;
b)Glue失效,播放,第二块布会滑下来。
❖ 作用 ❖
○ 它会寻找,不在一块“几何体”上的临近的点,所以它不会自身相连。
○ 然后把两部分连接起来
❖ 执行 ❖
a)“最大搜索距离”
b)“最大点数”搜索每个点的约束;
c)“约束每个点”:增强硬度
两块连接在一起,一起滑落下来
8)Weld Points
❖ 作用 ❖
1)自动将相邻的点缝合在不同的网络。
2)
❖ 举个栗子 ❖
把布分割成几部分
a)edgefracture1节点
b)禁用“二级约束”播放:
c)启用“weld points”
❖ 小目标❖
达到某一条件,焊接的布料撕裂
❖ 解决方案 ❖
有个break的特性,高于某一阈值,weld失效,也就达到撕裂效果
完
教程翻译自entagma的网络教程
下一节::
电子邮箱:oneinchtime@126.com
公众号:
微信号