分享

houdini19 curve节点不同了?houdini如何调用旧版本节点--四种方法详细教程

 cghunter 2022-01-21

——  微资讯 · 微课程  ——

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


简介

CG猎人在更新houdini之道 19版本新功能教程的时候,准备对比一下旧版本curve和新版本curve::2.0的内容,这里就涉及到如何houdini如何调用一些隐藏或者不推荐的节点。之前网络上也有一些零散的方法,也只是表面的介绍了如何敲代码,并没有系统的讲解背后的原理。很多朋友用过一段时间后就忘记了,又得重新找,而且其中有些方法是有局限性的,不一定能够找到你所需要的旧节点。

CG猎人系统地整理了4种查找旧节点方法,并且把背后的原理的和知识点汇总。不用死记硬背,理解原因和本质才是houdini之道。

一 核心基础知识

    1.1Houdini 的节点都是数据资产,不管是官方定义的(默认安装软件)还是加载插件,亦或是用户自己定义/封装的节点本质都是一回事。

    1.2数据资产的封装可以基于已有节点封装,也可以通过python等语言编写,甚至是使用C++等底层创建,都是数据资产。

    1.3数据资产可以定义版本号(推荐但不强制)定义显示模式是 节点名字::版本号,比如mountain::2.0,uvflatten::3.0等

    1.4由于历史发展原因,很多旧版本创建的节点并没有编号,比如moutain节点,如果加版本号应该是 mountain::1.0,以前创建的大部分节点都不具有版本号,而最近几次版本新创建的节点基本都有版本号了,比如attributenoise::1.0,attributenoise::2.0.

    1.5节点名字:分为3种。

0.1本质的节点名字,也就是封装数据资产的名字,这个是不能随意修改的。严格意义来说应该是带有版本号进行区分。

0.2用户创建后在节点网络中的名字,可以为任意不重复的名字,重复名字后面会自动加序号,比如创建一个merge节点,可以人为修改为mymerge,当你复制的时候会变成mymerge1…..依次类推。无论你创建多少个merge节点或者如何修改名字,底层节点都指向于merge节点这个数据资产。而网络中的名字主要用于节点索引,所以不允许重名。

0.33搜索名字。也就是我们按tab键时候搜索的名字,一般情况下这个名字与本质名字相同,但是也有不少是不一样的(比如考虑到兼容旧版本用户的习惯)。比如h19tab mountain的时候,实际上得到的本质节点是attribute noise节点,已经找不到mountain节点了。所以这里具有相当的迷惑性。

    1.6Legacy节点可以说包含两种形式,一种是名字不一样,功能被其他节点替代的,比如cookie节点和shatter节点被boolean节点替代,paint节点被attribute paint节点替代,mountain节点被attribute noise替代。注意,这里已经是不同的节点了(名字已经不同了),所以不存在版本号的问题。另外一种是名字相同,版本号不同(即使内核完全变了)比如curve节点和curve::2.0节点,uvlayout,uvlayout::2.0,uvlayout::3.0版本等。这两种形式旧节点houdini有不同的对待方式,稍后我们来展示。

二 英语时间

Legacy:遗产,遗留问题。Legacy nodes可以理解过过时的,失效的节点

Operator: 操作员,houdini中operator翻译为节点

Hide/unhide 隐藏/不隐藏,也就是显示

Add:加法,添加

Version 版本

Preferred 推荐的 prefer:更喜欢的过去分词,preferred nodes就是优先的,推荐的节点

Hscript语法:

ophide =operator hide  节点隐藏

opunhide= operator unhide 节点显示

opadd= operator add 节点添加/创建

三 官方规则

Houdini对于legacy nodes两种处理方式:

第一类:对于一部分旧节点进行隐藏,也就是houdini官方不再推荐使用的节点,比如cookie,shatter,foreach subnet等节点,这时候官方是进行隐藏了,houdini不会轻易删除节点。

第二类:旧节点没有被隐藏,但是不推荐搜索,也就是默认设置下tab键是找不到的。当然我们可以手动开启,大部分这类节点都是旧版本号的节点,当然也有一些不重名的节点,比如Legacy curve sop节点。因为这里存在另外一种preferred优先推荐的curve::2.0版本。

四 方法汇总

 方法一 hscript opunhide

主要是针对houdini hide隐藏的节点(也就是第一类节点),进行显示处理

opunhide Sop 可以把sop内容下所有被houdini官方隐藏的节点展示出来,需要显示哪个就unhide哪个。

打开Hscript脚本编辑面板

快捷方式alt+shift+T

输入代码:

opunhide Sop (限定展示在Sop模块下所有被隐藏的节点,注意大小写不要错)

返回所有ophide官方隐藏的节点,然后找到对应的节点名字。(如果没有你想要的节点,说明这个节点并没有被隐藏,用方法二)

opunhide Sop 节点名字 进行显示操作

然后tab就可以正常创建了。

举例: opunhide Sop cookie 然后tab就可以找到cookie这个节点了。

方法二 切换tab的优先推荐筛选

Edit/preference/shelves and Tab menu

默认是show only operators withpreferred versions 改为 show all operators

意思就是默认tab搜索只显示houdini推荐的节点,一般都是最新版本的节点。改为可以搜索所有节点。

这种方法适用于第二类节点

然后按tab输入curve节点就可以看到2个curve,一个是旧版本,另外一个是新版推荐版本,同理其他有版本的类似,tab中只会显示版本名字不会显示版本号

方法三 激活数据资产版本号

Assets/asst manager/configuration/assetdefinition Toolbar: show always

congfigurarion配置面板/asset definition toolbar需改为show always

显示出资产路径和版本号,可以进行版本号的切换。

这个方法的前提是你必须想找到系列版本的其中一个版本节点,才能切换。对于tab都没办法找到的话,只能考虑1和2的方法。

方法四 hscript opadd命令(全能型)

opadd是可以创建houdini中所有的节点,包括隐藏的,或者不是优先推荐的,各种版本的节点。使用方式是先指定需要创建的节点路径,比如/obj/geo1, 然后opadd就可以列举出这个路径下可以创建的所有节点。

cd /obj/geo1 //改变创建目录

opadd 返回在对于你目录中可以创建的所有节点(目前是sop模块下)左右两列,左边是节点名字,右边是节点显示的名字(调用使用左边名字)

如果有版本号的写完整的版本号

比如 uvlayout::2.0 就可以指定创建出2.0版本的uvlayout

opadd cookie就可以在网络面板中心(原点)位置创建cookie这个节点,不需要提前unhide或者其他操作。

直接就会在geo1内部网络界面中心点中创建出cookie节点

注意:当遇到有相同名字不同版本号的时候,比如curve和curve::2.0,如果默认输入 opadd curve 实际上创建出来的是curve::2.0版本,也就是会创建preferred优先推荐的版本。如果要强制创建curve这个版本,需要加一个-e代表强制匹配 也就是 opadd –e curve,那么创建出来的就是curve旧版节点了。

四种方法对比

上面就是CG猎人为大家分析整理和总结出来的四种调用旧节点或者版本的方法。如果有朋友还有其他方法推荐,欢迎留言。希望大家有所收获。

五视频教程

   

重要信息

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章