—— 微资讯 · 微课程 —— 利用零碎时间,走上超神之路! 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猎人为大家分析整理和总结出来的四种调用旧节点或者版本的方法。如果有朋友还有其他方法推荐,欢迎留言。希望大家有所收获。
|
|