【houdini】CG猎人第010期houdini完全基础入门学习-建模与软件互导
—— 微资讯 · 微课程 ——
利用零碎时间,走上超神之路!
课程概述
01houdini使用maya的视图建模方法 02houdni程序化建模制作跑道 03houdini与maya互导的三种方法介绍 obj,fbx和alembic
学习建议
教程难度 ★★
教程质量 ★★★
现在回到sop进行建模知识讲解,虽然看起来很基础,但是有很多我们忽略的小知识点。课程中讲解了crease硬边,细分和渲染细分制作,如何通过polyframe计算出曲线曲率和凹凸形态对跑道倾斜进行控制,如何设置obj格式中的分组和alembic导如导出方法等。当然,houdini16有了非常大的更新,特别是路径动画制作,obj参数中已经关闭,全部移到chop约束中,这里小编做了更新讲解,并且提供houdini16的工程源文件,祝大家学习愉快。
基于曲线的自动倾斜的跑道
houdini动力学导入maya中
学习统计
教程观看 2倍速度
观看时间 1小时
笔记整理 2小时
练习实践:0.5小时
学习笔记
1案例一,以maya的方式建模,在视图中操作,选择面然后不断挤出等操作(非程序化方式)
常用建模命令
点线面选择 2,3,4
旧版本技巧,可以通过点线面不断切换进行扩大选择 比如242424不断扩展选择,不过新版本行不通,新版本不会进行选择切换,而是记录本本元素之前的选择状态。
扩展选择/收缩选择 shift+G和shift+S
循环边选择 新版本使用a+鼠标中键,如果要连续选择 shift+a+鼠标中间
硬边处理 选择边,在视图中添加crease节点,实际上是给vertex添加了creaseweight这个属性值;可以通过paint节点对这个属性值进行绘制覆盖创建。
视图中向maya一样细分预览+/- 分别是细分预览和降低细分
maya中按3的预览细分渲染,需要在obj层级开启:render polygons as subdivision(mantra) mantra渲染器支持的把多边形当做细分模型渲染。
smooth节点不增加细分,直接对原有点进行平滑处理。
sudivide节点真实细分,并且基于creaseweight属性进行硬边处理;在algorithm算法中切换为 mantra-compatible catmull clark模式能够更加真实还原mantra的细分渲染效果;
2程序化建模 赛车跑道
目标:在弯道比较急的地方两边围墙比较高,并且赛道会基于曲线的凹凸弧度做旋转,所以核心的就是如何找到弯道属性进行控制。
创建曲线→自定义向下的方向为法线n→resample进行重新细分采样→polyframe计算出tangent_01(用来判定凹凸)→polyframe解算出tangent02(获得曲线切线)→vop节点进行cross product和 dot计算,获得倾斜度控制(坡率控制)→attributetransfer进行属性模糊→创建两个基本的界面(一高一低)→blend shape进行融合→transform进行控制旋转→copy基于技术处的斜率设置stamp→分别驱动transform中的选择和blend混合因素。
重点知识 polyframe如何求算两种切线
tangent_01为黄色的线 基于凹凸面指向不同 使用计算方式是 two edge
tangent_02为红色方向线 沿着曲线的切线方向 使用计算方式是first edge
官方文档解释
firt edge 第一条边
对于每个点,法线矢量是一个平滑的点法线。切线矢量是在点所处的直线方向上(红色),而双切线是垂直于法线和切线定义的面上(黄色)
Two edge 两条边方法
对于每个点,法线矢量是一个平滑的点法线。切线方向是基于点向关两条边方向的和(红色),双切线方向是垂直于法线和切线定义的面上(黄色)。
2点乘dot product,叉乘cross product
cross product由两两个矢量定义的平面计算出垂直于这个平面的矢量方向
dot product是用来判定两个矢量之间的夹角 返回负值,0和正值
tangent_02曲线切线方向与自定义的向下的法线N求出了垂直于曲线的法线crossproudct,最后输出为N法线
tangent_01与这个法线做角度判定,进行点乘,可以判定是向向内转还是向外转(负值,0和正值的变化)输出为属性curve
最后通过copy和stamp把这个curve属性转化为blend混合因素和transform中的选择因素,那么可以直接控制bank赛道倾斜和边缘高度。
houdini16新功能
关于路径动画制作,之前版本在obj层级会有
houdini16使用chop统一所有约束,所以教程中的路径约束在houdini16已经更新了,在16中多了一个enable constraints 激活约束,当你激活之后会多出一个输入框,用于约束创建,先选择constraints network会自动在camera节点中创建constraints chop
在内部会自动有get world space反问世界坐标空间的节点,在下面添加follow path节点,选择激活标签,加载曲线路径,设置关键帧0-1变化就可以了。
虽然没有以前方便,但是更加统一和清晰了。
3 houdini与maya互导
maya→houdini 3中方法
001 obj格式格式导入houdini 如何设置组
如果在maya中物体是相互独立的,那么就会带有各种的组;如果maya中模型是combie合并的,可以在maya中set,那么在houdini也可以以组识别。
create/set/create quick select set 然后命名,之后导入到houdini就会带有这个组。
002 FBX格式导入 不推荐
因为会导入一堆骨骼和绑定文件,在houdini中比较难管理
003alembic(简称abc文件)推荐格式
新的文件格式,把动画特效等每帧进行缓存模型,不需要带有绑定和骨骼信息。基本上在maya与houdini之间互导都推荐使用这种格式。
maya导入houdini中设置
pipeline cache/Alembic Cache/export selection to Alembic把选择模型导出为abc格式
可以这是输出当前帧或者是time slider序列时间,可以是单个文件或者是整合成一个文件,还可以添加自定义和默认属性等等。一般对于模型建议带上法线N,和uv属性。
在houdini中导入,不是使用file文件,而是使用alembic节点
默认导入没有任何的组,alembic geometry标签下primitive group,默认是no groups,可以进行选择以什么命名组的名字(注意,这里只能导入在maya中相互独立的模型为组,不能通过set进行设置)
maya在大纲视图中可以擦看到实际上每个模型是分为shape形节点和tranform变形节点。
使用形节点完路径名字为组名
使用变形节点完整路径名字为组名
使用形节点名字为组名
使用变形节点名字为组名
houdini导出abc文件格式
在out模块中,tab生成alembic节点,有两种选择方式
直接使用sop路径还是使用 跟目录路径
默认使用root object根目录路径,object中输入*代笔所有的obj层级下的模型,如果只想输入选择的模型,那么在这选择;
或者激活use sop path,直接指定到sop中文件;
两种输出方式都可以。
获得教程的方法: