Houdini&Unity学习笔记1——程序化木桶

入坑Houdini

用Houdini创建一个木桶

创建桶身

  1. 桶身由一条条木条组成,同时需要可以压弯,所以需要细分面数,先从一条木条开始,参数如下:

  2. 为了可以方便看UV的情况,可以来一波UV三连(UV映射、UV拆开、UV着色)

  3. 压弯木板,用bend(弯曲)节点

  4. 改变锚点位置,复制与旋转

  5. 边缘软化,先选择木板边缘,打组,通过PolyBevel(倒角)软化边缘

  6. 最终节点图

创建桶顶与桶底

![](1567945787276.png)
  1. 同样从一条木条开始,用桶身的木条,可以小条一些,宽度除于1.5

  2. UV三连

  3. 通过transform节点将木条水平放置

  4. 边缘倒角(polybevel)

  5. 复制排列

  6. 与管道(tube)进行布尔运算,裁剪圆形区域

  7. 调整UV布局,裁剪后可看到UV布局很奇怪,可以通过UVLayout节点调整布局

  8. 移动桶盖位置,合并显示

  9. 最终节点图

创建桶身上的铁圈

  1. 先搞一个圈

  2. 横放

  3. 挤出(PolyExtrude)

  4. 这时会发现圆圈开始与结束的顶点没有连接起来,导致挤出结果开裂。在挤出前可通过拼接顶点拼接(fuse)起来再挤出

  5. 之后往上挤压。记得勾选Output Back。

    无Output Back

    勾上Output Back

  6. 移动位置,缩放收缩,倒角(polybevel)

  7. 反转铁圈,发现有些黑,因为面的法线也反转了,需要反转(reverse)回来

  8. UV二连结尾,最终节点图

创建铁圈上的螺钉

  1. 先创建一个球,压扁,缩小

  2. 选择下半部分的面,通过blast干掉

  3. 转换位置,复制旋转

  4. 位置偏移,上下都搞

  5. UV二连结尾,最终节点图

终于…看教程照做的部分结束了…接下来重点来了


改造为程序化木桶

  1. 首先看到一个桶被分为4个物品,有点不知所措,所以先把它们合并成一个

​ 合并的方式既是把所有节点拷贝到一个里面

![](/1567958325881.png)

![](/1567958341254.png)
  1. 为桶创建数据集

  2. 隐藏用不到的默认参数

  3. 添加我们自己要的参数

这里添加一个木条数量的整数,命名为StickAmount,范围限制在10-30

  • Name是在节点中要引用到的路径名

  • Label是显示出来的名字(在Unity中也就是面板显示的变量名)

设置下通道默认值

![](1567959147544.png)    
  1. 回到面板可以看到参数出现了,右键可以复制参数进行使用

  2. 将参数粘贴到Copy and Transform节点上,该节点就是控制木条数量的

同时旋转的角度也修改下,360度/木条数量

这样就可以通过外面面板的StickAmount参数控制木条数量

木板的宽度也受到木条数量的影响

再次调节木条数量看效果

  1. 其他参数也可以如法炮制,比如木桶的铁圈数,铁拳上的钉子数,木桶大小等等,都可以定制化参数接口出来,方法相同,就不一一做下去了。

将程序化木桶导入Unity

  1. 先找到安装Houdini时附带下载的Unity资源包

  1. 将资源包 以及木桶的hda文件 导入Unity

  1. 将木桶拉到场景中

  1. 在Unity中直接调整参数,生效

  1. 完结

——————————

2019/12/07: 该系列暂时不更新。原因该博文系统附图太多太卡了,阅读体验太差。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×