工程分享

链接:https://pan.baidu.com/s/1Gw8lXud5_-DX6muc46fTzw
提取码:c0qj

这节课讲了布料收缩包裹的一个效果,主要是vex语句的使用。

其他的没什么好说的,主要就看一下这段vex吧。

[/crayon]

这里已经设置第二个输入点是被碰撞(包裹)的模型,所以1输入点就是碰撞体了。

[/crayon]

这个函数可以返回最近的点的ptnum,而且可以缺省ptgroup和maxdist参数。这里的v@P几乎可以说是固定写法了,因为pt参数要的就是geo上要搜寻的点的位置信息。

而point函数则可以返回指定的点的指定属性,这里返回的就是搜寻到的最近的点的位置属性。

那搜寻到碰撞体上最近点的位置和geo上的点的位置相减,就得到一个向量。将这个向量值赋予vellum的force,vellum就有了靠近碰撞体的力了。但是能想象到随着两个点越来越近,向量越来越短,这个力也就越小越小了。所以需要normalize一下,得到一个单位向量,就是只有方向,单位一直为1的向量。用这个固定的向量,再去乘以一个我们自定义的数值,就能保证force的值一直是固定不变的了。

这里我为了方便调整这个自定义数值,就创建了一个chf(“force”)方便调节。

主要制作时需要注意的就两点,一个是vellum对象的点不要太少,否则会寻找不太好最近点的位置。另一个就是这个自定义数值教程里用的0.4,但是我用的时候实际上很小的数值就足够了,所以需要根据情况自己调节一下。

(完)

Leave a Reply