【houdini】CG猎人第007期houdini完全基础入门学习笔记-sop海洋和撞车动力学

——  微资讯 · 微课程  ——

利用零碎时间,走上超神之路!


课程概述

结合sop和pop进行船过海面的模拟案例制作和使用dop动力学制作汽车相撞案例。

学习建议

教程难度 ★★

教程质量 ★★★★

入门教程(高级卷),这里最后面效果不一定渲染,但是确实基于houdini官方文旦的技术的全面讲解,对于基础的全面掌握非常有用。第007课包含了sop和pop结合进行船过海面的模拟案例制作和使用dop动力学制作汽车相撞案例。特别是第二个案例,小编收获了大量的知识点,比如rbdkeyactive节点和modify data的用法,动画和动力学切换问题,如何在obj成绩提取动力学解算的数据,如何使用低模解算控制高模型,如何使用通道进行关键帧的修改,传递和烘焙等。

教程是houdini12的版本,houdini16有了非常大变化,小编担心大家在学习时候会有各种问题,所以小编自己花了2个小时用houdini16把两个案例走了一遍,当然也把里面的变化和问题记录下来。同时也会把小编的工程文件分享给大家,希望大家能够顺利高效地学习。非小白用户可以直接看蓝色字体部分。红色字为houdini16变化内容。

学习统计

教程观看 2倍速度

观看时间 2小时

笔记整理 2小时

练习实践:2小时

学习笔记

06pop和sop模拟船航行浪花效果

001加载模型obj 模型处理:

facet 计算法线或者使用attribute delete节点删除所有属性*,这个是做特效的一个好习惯,避免各种模型问题,输出为bgeo格式。

002创建海洋

grid→point节点,在y轴上使用nosie函数

noise函数讲解 noise(floatx,floaty,floatz)需要输入三个浮点值,关于倍帧,频率和偏移类似于sin函数,a*nosie($BBX*b+$T*0.1,$BBY*b+$T*0.1,$BBZ*c+$T*0.1) a是整体幅度,b是频率 $T*0.1是基于时间偏移。

houdini的point节点已经变成了point_old节点,有一个新的point节点进行设置。

因为有三个元素,每次调整频率和速度需要调整三次,所以小编这里使用了自定义变量进行统一控制

freq波浪频率 speed速度,amp幅度

noise($BBX*ch("freq")+$T*ch("speed")*2,$BBY*ch("freq")+$T*ch("speed"),$BBZ*ch("freq")+$T*ch("speed"))*ch("amp")。

03 让小船模型基于波浪运动

align节点,把小船对齐到海洋的某个点(挑选一个适合的点)并且去掉勾选 align individual element (把所有点单独适配)而是要小船作为一个整体对齐到grid的选择点上。

方向不对可以通过transform标签进行调整。

04获得水花发射范围:

给海洋撒点→scatter撒点赋予黑色→给小船color赋予红色→attributetransform进行元素传递→delelte节点获得小船周围的粒子。

05popnet进行粒子发射

使用海洋作为碰撞平面(碰撞方式使用slide滑动)→给小船trail节点计算速度,并且在attributetransfer中把速度属性传递给发射粒子→popnet中激活继承发射速度,添加向后的速度→force添加速度→collision detect与海洋碰撞→collision detect 与小船发生碰撞→interact粒子之相互排斥力→drag阻力→kill粒子低于y轴-0.1就删除。

06颜色设置

粒子设置为白色,海洋设置为青蓝色。

07刚体动力学效果

撞车特效案例制作

001基本动力学引擎讲解 bullet系统,RBD系统和ODE系统

bullet对于凸面处理很快,但是对于凹面物体(当成凸面处理)不精确

RBDhoudini原生的动力学解算,支持凹面处理,使用碰撞检测

ODE对于基本的几何形态解算非常快。

002地形创建

grid→选择区域→polyextrude挤出→extrudevolume基础地面厚度,用户碰撞→facet计算法线

houdini16后有不少的改动(除了官方宣传篇),这里小编没有使用手动选择面进行挤出,而是通过group进行区域选择,法线group的编辑功能和删除功能已经拆分出来group comibe和group delelte节点,旧版本这两个功能都是在一个group节点上的。在使用volume extrude的之前,polyextrude不能够勾选背面封闭(否则会出现法线不一致的效果)

003加载汽车

模型(高模)→加载代理模型(使用代理模型进行动力学解算,然后把运动信息赋予给高模)代理模型需要完全包裹高模→调整汽车位置→添加颜色进行区分→使用表达式进行动画控制。

004创建动力学

使用terrain obj命令创建地面动力学→分别对两个代理汽车创建RBDobject→rbdkeyactive制作动力学激活切换,在相撞之前使用动画控制,相撞时候切换为动力学解算。激活use obj path中加载代理模型obj

houdini16的动力学菜单已经找不到terrain的这个工具了,所以可以直接在autodopnet中直接tab输入terrain,然后手动链接地形模型,注意merge到汽车动力学时候需要把地形放在左边。

并且工具架中变化很大,第一个rbdobject工具是创建packe的物体,不是教程中的rbd物体,而是第二个命令hero object才是(小黄鸭图标)。

教程中使用了自定义的全局变量$CRASH用来技术碰撞的时候的帧的值,不过这个没所谓,直接使用时间也行,只是之后修改可能要改多次,但是如果使用全局变量就只需要修改$CRASH的值就好了。

005调整动力学物理属性

优化碰撞结果:不想撞飞太高,调整mass质量,旋转显示,控制rotaitonal stiffness,添加drag阻尼,忽略质量影响。

modifydata直接对动力学数据进行修改:设置属性名字 angvel角速度,旋转矢量vector,修改值[0,0,250],activation仅仅在碰撞的瞬间激活。上面这些参数都需要综合进行调整。

06提取代理动力学的运动信息赋予给高模。

在obj节点使用fetch节点分别提取两个代理车的动力学信息,获得两个点的运动信息,然后复制链接到高模中。

注意fecth中关于动力学物体的提取写路径:动力学问题名字,中间是使用冒号的

../AutoDopNetwork:Proxy_crysler

07把父子链接的运动驱动转化为关键帧

复制出一辆高模车(已经没有父子链接运动)命名为 M300 chops。

chop通道,新建object节点,

target 物体就是 Fectch M300(父子链接的高模车) comom标签中设置export prefix输出为M300 chops,,选择变化信息为tranlate和rotation 这样就把父子链接车运动赋予给单独复制出来的车。

在object节点中鼠标右键,激活Edit data channel,打开channel edit窗口,可以对关键帧进行调整/删除.

点击fit panel快捷菜单,调整过滤值torerance为3,最后点击copy to export destination 导出到模型的通道关键帧中。这样就可以对汽车的关键帧进行调整。

houdini16中chop有较大的变化,当你输入object时候有两个选项,object constrain和import,其实两个都可以,只是constraints是隐藏了transform的选项,直接对被控制物体进行全部控制。import节点可以和教程一样设置使用什么通道控制 translate和rotate

关于编辑数据,在houdini15之后已经放在了save /edit data channels中,可以对通道以关键帧的形式进行编辑。但是小编用houdini16一打开就死机,后面改用houdini15.5操作都很正常,点击fit panel面板,和教程里面基本是一致的设置,可以到处烘焙关键帧。

最终,小编只能在houdini16中实现通道的chops控制而是关键帧的传递,大家试试看用这个命令会不会死机(houdini16)来帮sideeffect找一下bug。目前只能在houdini15.中进行练习了。

获得教程的方法:

(0)

相关推荐