Vellum篇 ②Shape Match,Vellum中的简易“刚体”——Houdini动图白皮书
爱吃鱼的老土狗
2022年09月25日 13:07
收录于文集
共8篇

开始以前……

上图使用的Vellum Constraint类型:Cloth+Pressure(柔体气球),String(柔体绳子),Shap Match(简易刚体),Weld point(焊接点)等,连接在一起,在1个Vellum中解算即可

上图使用的Vellum Constraint类型:Cloth(柔体布)、Shap Match(简易刚体)

上图使用的Vellum Constraint类型:Cloth(柔体布)、Grain(沙砾)


前序小节(Hair①-⑤

《01 ​

《02 ​

《03 ​

《04 ​

《05 ​


本节:Shape Match,Vellum中的简易“刚体

  • 《动图白皮书》系列主要针对晦涩、纠结的参数面板数据进行解析。从这个角度来说,本节实在是“没啥可说的”——Shape Match中几乎所有参数,都是Vellum Constraint节点的“常见参数”,在“Hair & String”中已经进行过介绍,点击“前序小结”即可查阅

  • Shape Match参数“没啥可说的”的另一个原因,是因为Vellum中内置的这种“简易刚体”特别简单——核心就是系统把物体的Rest Length(初始长度,点与点之间,也即每条边)和Rest Angle(初始角度,从一个点出发的每两条边的空间夹角)全部“固定”住(而我们看见的柔体型变,大多是以这两个参数变化为基础的),“柔体”的这两个核心属性被“锁死”,留给用户需要操作和定义的,自然就没多少了

  • 当然,Shape Match的面板中还是勉强保留了Stretch参数模块,系统应对默认值是“直接最大”(1e+10),一般情况下都不需要调整这个参数(特别是向下调整)

  • 如果你对Vellum的基本参数已经非常熟悉,本小节最重要的“干货”,可能就是开篇3张图所表达的内容——Vellmu不止有以Cloth和Hair为代表的典型柔体解决方案,也有对简易刚体、沙砾甚至流体的解决方案,是一个“一站式”的解决方案包,可以帮我们轻松应对一些不太复杂的创意项目

  • “一站式解决方案包”的意思是,你可以“简单的”把Cloth、Hair、刚体、沙砾、流体等连接在一起,加1个Vellum解算器,就能计算和实现这些物体的相互影响,而不需要在其它DOP系统里“进进出出”,项目的复杂性和操作难度会降低很多(当然复杂项目肯定还是需要)

Shape Match参数面板

  • Shape Match是Vellum Constraint“内置”的17种“Type”中的一种(以19.5版本为例)

  • 面板中绝大多数参数是“熟面孔”,本节重点对几个“要点参数”进行一些扩展讲解

参数实验与比对1Geometry的准备

上图图解

  • 因为就是控制刚体这个“简单”的“死框架”,Shape Match中使用的驱动型变的“约束器”(Constraint)的结构相比Cloth的要“简单”很多,可以粗糙的比喻为“扎灯笼”用的钢丝骨架

  • 这种简易“骨架”的缺点也很明显——因为太“粗糙”,也可能出现“支撑硬度不足”的问题

  • 为了进一步强化支撑和刚性,Houdini强烈建议对物体用【Remesh节点】先进行处理,“细化”支撑结构(见下图)

参数实验与比对2Mass

  • 在Mass的模式选择中,Houdini官方帮助特别推荐选择“Calculate Uniform”,搭配上面“Remesh”节点的共同使用,使点的分布和质量的分布都尽可能“均匀”,保障解算效果,

  • 这一块就不配图了,重点“转述”官方提示

还有一点提示:关于刚体“替换”

  • 无论把物体设置的多么“硬”,进入解算(毕竟是Vellum体系)的物体,还是有可能发生轻微的“变形”

  • 为了改善这个问题,Houdini官方建议把解算出来的“刚体网格面(geometry,用于显示的面,Solver三个输出点的第1个)”,用“原始物体网格面”进行“替换”。这样,最后显示出来的物体,可以确保和原始物体100%一样(不变形),看起来就是真正的“刚体”了

  • 要实现这个“替换”,大致有“旧”(下左图)、“新”(下右图)两种方式

  • 旧方法的节点组合是:【Assemble】+【Extracttransform】+【Tranformpieces】,优点是传统、稳定,可控参数多

  • 新方法的节点组合是:【Assemble】+【Vellumxformpieces】,其中vellumxformpieces是Vellum体系内的点,打包了旧方法中两个节点的功能,跟简洁高效(但我具体使用时还是有些小问题,还需要进一步研究)

  • 不管用新旧哪种方法,最关键的第一步,都是Assemble

  • Assemble的目的,是给要“替换”的两组物体建立“关联”,主要是通过“起名字(name)”,让彼此“认识”

  • 一定要注意,在Assemble节点内,不能“打包”、不能“打包”、不能“打包”(这个主要是与Houdini的DOP中一般刚体操作习惯相反,在那个体系里,刚体通常要顺便“打包”),也即Create Packed Primitives选项不要勾选

  • Assemble后,物体在Primitives上会增加一个叫@name的属性,这个“name”,在下游节点,比如Vellumxformpieces中、Tranformpieces中,都需要正确填写(就是输入:name;有时系统默认是错的,piece,需要手动修改)(见上图)


下一小节:

Cloth 及类似Type Constraint》