工程文件分享:
链接:https://pan.baidu.com/s/1WxiHrLvuhbERNCJywReNXQ
提取码:6666

这节课里,主要教了怎么在Dop中连接vellum节点。课程中用了两组对冲的小球,我试验了一下用一组小球和一组布料。果然遇到了一些没办法解决的问题…

这是为小球写的一段vex,主要功能就是随机小球速度的方向。核心的函数是sample_direction_cone。它的作用是,给定一个矢量方向,围绕这个方向扩张给定的角度值。

它包含三个参数:dir表示一个矢量方向,maxa表示围绕这个方向向外扩展的角度,但是注意这是弧度制,所以上面的maxa变量想给5°,但是还要加上radians()变成弧度制才能用。u需要是一个[0,1)的数值,这里给的是一个随机数,这样每一帧得到的方向都会变。我理解的u是最终角度方向的一个权重,0的时候就是原始的方向,1的时候(好像不能为1,只能无限趋近于1)就是偏离的最大角度。这个数值一直变,角度就会一直随机变化了。

最后为了提高速度值,给变量vel乘上了一个8的矢量。一开始我是给变量dir乘以的,但是发现没作用。后来才想到,变量dir只能提供一个方向,并不能影响长度,还是要给到最后的结果整体乘以一个数才行。

接下来就是正常的流程了,给小球添加软体约束。再添加一个grid给布料约束,然后同时导入到dop中做结算。

但是问题出现了。

vellumsource1是软体小球,vellumsource2是布料平面。我只想让glue约束影响小球,而不影响布料,可是这样连不起作用。把约束放在merge下就更不起作用了。

我找到的解决办法是给约束分组。

在dop中会自动创建一个source流的点组,这样就可以让约束只影响小球了。但是总觉得应该还有一个更标准更快捷的方式,可能是因为我对动力学理解的还不全面,也没有搜到相关信息,就只能先这样操作了。

(完)

Leave a Reply