HoudiniVex笔记_P3_ParameterBase参数基础

原视频:https://www.youtube.com/playlist?list=PLzRzqTjuGIDhiXsP0hN3qBxAZ6lkVfGDI
Bili:Houdini最强VEX算法教程 - VEX for Algorithmic Design_哔哩哔哩_bilibili

Houdini版本:19.5

一、Parameter Type参数类型

1、什么是参数

例如创建一个多边形小球Sphere,它的默认参数有半径Radius、中心Center、旋转Rotate、大小UniformScale、轴向Orientation、频率Frequency……等
HoudiniVex笔记_P3_ParameterBase参数基础_第1张图片

2、编辑/创建参数

在Geo创建NULL节点并命名为,如图点击即可打开参数面板
HoudiniVex笔记_P3_ParameterBase参数基础_第2张图片

拖拽左边参数到中间,点击Apply即可创建参数
HoudiniVex笔记_P3_ParameterBase参数基础_第3张图片
此处请注意参数描述的相当于ID,在VEX代码中需通过该名字才可访问它的值,是参数面板中的名字(自定义参数也可以在<参数描述窗口>的<Type>选择参数类型)。

3、更多参数类型: 
HoudiniVex笔记_P3_ParameterBase参数基础_第4张图片
3.1、其中的<Menu>参数,如上图所示可在<参数描述>窗口的

编辑;
3.2、其中的<toggle value>参数:勾选值为1,不勾选值为0;
3.3、其中的参数可以点击下箭头,可将图形最大化(X轴Y轴大小范围均为0~1):(重映射参数)
HoudiniVex笔记_P3_ParameterBase参数基础_第5张图片
点击小箭头后变成:
HoudiniVex笔记_P3_ParameterBase参数基础_第6张图片

二、Referencing Parameter参数引用

1、直接右键<复制参数CopyParameter>,在另一(节点)参数,,<粘贴相对引用PasteRelativeReference>
eg.使用上面的节点<float value>参数控制小球Sphere的大小UniformScale
HoudiniVex笔记_P3_ParameterBase参数基础_第7张图片
按图操作后,滑动float value,即可控制小球大小。(左键+中间可恢复默认值)

2、Menu、String的参数类型也可以引用

eg.以Menu Value为例,在节点的

处右键复制参数CopyParameter:
HoudiniVex笔记_P3_ParameterBase参数基础_第8张图片
在创建的font节点文本处<粘贴相对引用PasteRelativeReference>,结果如下:
HoudiniVex笔记_P3_ParameterBase参数基础_第9张图片

3、可多多尝试其它参数类型,感受其变化。

三、Access Parameter with VEX使用VEX访问参数

更多通道用法可查看官方文档functions的NODES,截图仅显示部分:
HoudiniVex笔记_P3_ParameterBase参数基础_第10张图片

1、除了使用上面拖拽的方法新建参数外,也可以使用VEX方法创建通道channel,

string stringValue = chs('string_value');
float floatValue =chf('float_value');
int intValue = chi('int_value');

float rampValue = chramp('ramp_value',floatValue);

写好代码,点击右边按钮生成,也可以理解为访问通道channel参数,操作及运行结果如下:
HoudiniVex笔记_P3_ParameterBase参数基础_第11张图片

2、访问channel参数示例:控制小球Y轴移动

继续使用前面的节点,再创建一个多边形小球及节点。复制节点的float参数,在节点粘贴相对引用

@P.y = @P.y +`chs("../Params_Type/float_value")`;
//    chs返回一个字符串,外面的反引号 `` 将其转换成数值
//        ../指在当前整个网络节点内
//        Params_Type指需要访问的节点
//        float_value指访问的具体参数

按下图完成操作后,即可在节点的处控制小球Y轴移动。
HoudiniVex笔记_P3_ParameterBase参数基础_第12张图片

代码也可以改成

//@P.y = @P.y +`chs("../Params_Type/float_value")`;

@P.y = @P.y + ch("../Params_Type/float_value");
//ch直接将其转换成数值(ch常用且强大,可以转换成任何种数据类型)
//所以该行代码也可以写成  @P.y = @P.y + chf("../Params_Type/float_value");

3、把<粘贴相对引用PasteRelativeReference>作为<变量>

观察上方代码,因为粘贴的<粘贴相对引用PasteRelativeReference>实际是一个值的名字,若名字/float value发生改动,则需要手动进行相应修改;

对上面<2>进行修改操作如下:
节点编辑参数-->拖拽一个float类型通道channel,ID及名称命名为(也可以写完代码后点击右边按钮,直接生成一个float类型通道channel)
HoudiniVex笔记_P3_ParameterBase参数基础_第13张图片
按图操作后,即可在Params_type节点的float value处控制小球Y轴移动。

 四、Ramp Parameter with VEX渐变参数

1、float ramp类型参数——重新映射值

创建一个多边形小球和一个命名为节点,

f@val = chf('scaleVal');
@P *= chramp('ramp',f@val);
//chramp根据f@val值返回一个映射的Y轴,不懂往下看

HoudiniVex笔记_P3_ParameterBase参数基础_第14张图片
按图操作后,滑动即可控制小球大小。

 编辑参数,首先打开<+>号下面的<下箭头>,使曲线图最大化:
HoudiniVex笔记_P3_ParameterBase参数基础_第15张图片

对曲线进行编辑如下图所示,所有点均选择为,使曲线更平滑;参数类型默认0~1,参数横竖值范围都是0~1;
HoudiniVex笔记_P3_ParameterBase参数基础_第16张图片
按图操作后,滑动值就可以控制小球从【大->小->大】变化。
值相当于参数的轴,是一对映射值返回相对于轴值。

 2、color ramp类型参数

类型参数类似。
创建一个多边形小球;添加一个命名为节点,

@Cd = chramp('ramp', chf('val'));

编写代码后,点击右边按钮生成通道channel,点击右上方按钮将换成
HoudiniVex笔记_P3_ParameterBase参数基础_第17张图片
按图操作后,滑动即可控制小球颜色从蓝色到青色进行拜变化。
HoudiniVex笔记_P3_ParameterBase参数基础_第18张图片

 3、当然,不同节点间的类型通道channel也可以进行<复制>和<粘贴引用>。

五、Parameter Expressions参数表达式

1、全局变量与函数表达式(官方文档介绍)

一些常见全局变量:起始帧$FSTART、结束帧$FEND、$F当前帧……
HoudiniVex笔记_P3_ParameterBase参数基础_第19张图片
截图仅截部分,更多可查看官方文档。
创建一个多边形小球;添加一个命名为节点
HoudiniVex笔记_P3_ParameterBase参数基础_第20张图片
按图操作后,点击播放按钮,小球逐渐变大。

2、loval variable局部变量 

继续上述操作,添加一个节点,并添加局部变量<$SIZEY>,然后再乘以0.5
HoudiniVex笔记_P3_ParameterBase参数基础_第21张图片
按图操作后,点击播放按钮,小球逐渐变大的同时,向上移动(在球的Y轴二分之一处变大):
HoudiniVex笔记_P3_ParameterBase参数基础_第22张图片

你可能感兴趣的:(VEX,for,Algorithmic,Design,笔记)