APEX Graph 基础理解
APEX 详解:https://www.youtube.com/watch?v=Rmx17u80wEE
APEX 操作是在 Stash SOP 里的。
首先打开 APEXNetworkView 视图,再选中 Stash SOP 即可编辑。
APEX Graph SOP 是 Stash 的加强版。
使用 APEX 创建点线或关节:
使用 TransformObject 节点可以创建点和线。


程序化构建 APEX 节点 (使用 SOP 构建 APEX 节点):
APEX 节点是由 Point 的 callback Attribute指定的,比如
callback = "TransformObject"。此时可直接在 APEXNetworkView 中查看你的节点,只需要选中就可以,比如选中图里的
rename_point,你会发现你的 APEX 节点已经出现但无法编辑。最终将处理好的 Point 输入到 Stash SOP 即可编辑。

加强版 APEX 图表节点:APEXGraph SOP。
这个节点是 Stash 的升级版,包含了自动 Stashing 和一些错误检查。
APEX Graph 也可以通过 Copy SOP 来复制。
因为 APEX 节点的本质是 Point,因此可以使用 Copy SOP 来复制粘贴同一节点。
如图所示,在
editgraph5中定义了extrudeSubnet,然后使用 Copy SOP 将其复制四份后,使用 Layout Graph SOP 将其展示出来。
自动整理并展示 APEX Graph:Layout Graph。
如想继续编辑以前的 APEX Graph,需要使用 Layout Graph 而不是 APEX Graph SOP,因为 APEX Graph 是由 Stash SOP 封装而成,会导致出现副本,而不是直接修改。
APEX Autorig 名词
https://www.sidefx.com/docs/houdini/character/kinefx/preparingskeletons.html
| 专有名词 | 对应结果 |
|---|---|
| Guides.skel | Guide Skeleton 绑定用的骨骼 |
| Base.skel | Skeleton 骨架 |
| Base.shp | Geometry 模型 |
| Base.rig | APEX Graph |
Guide Skeleton 是指带有绑定信息的骨骼,如 Tag、IK Ctrl骨骼等。
Rig 是经过 Autorig Component SOP 生成的绑定数据,可以使用该 SOP 里的 FK Transform ComponentSource 来将普通骨架转为绑定骨架。
APEX Graph 引用和修改 Attribute
APEX Graph 和 VOP 非常相似。
可以使用 Input (Bind) 用来引用 Attribute,用 Output (BindExport) 来修改 Attribute。
使用 Value 节点可以创建常量 Constant,用来做加减法之类的。
对着 Input 的 AttributeName 按鼠标中键(图中的foo),可以修改 AttributeName,而不是在P菜单里修改。

APEX 批量执行VOP算法:InvokGraph
InvokeGraph SOP 的 Input1 是算法端,Input2 是执行端。
在 InvokeGraph 中,需要先配置输入的 Dictionary 和输出的 Attribute,分别是 DictionaryToBind 和 OutputDIctionaryBind 。
如图所示,APEXGraph SOP 将 foo Attribute 增加1,并输入给 output3333;现在假定 create_params 创建了名为 params{"fool": 1} 的 Dictionary,并在 InvokeGraph SOP中配置了 DictionaryToBind = params OutputDictionaryBind{ApexOutputsGroup = "output33", OutputAttrib="params_alted"} ,那么最终会得到具有 "bar":2 的 params_alted Dictionary。


Parameter 也可以输入 Geometry 类型,类似于 PointVOP:

APEX 绑定大致流程
APEX Configure Controls 用于设置肢体旋转限制等。
APEX Scene Animate 用于播放动画。
Pack Folder 用于整理骨骼、模型和绑定模型等,只会Pack并设置一个Primitive Name,不会影响任何东西。
APEX Autorig Component 用于创建 Rig 绑定内容。
APEX Scene Add Character 用于将角色零件打包成一个角色文件夹(如 character1/Guide.skl character1/Base.shp),这样一个场景就可以存在多个角色。
NOTE
可以使用 APEX Pack Character SOP,既包含 Pack Folder 又包含 APEX Scene Add Character 的功能。


APEX PackFolder 解析
PackFolder SOP 的本质是将被连接的内容Pack掉,然后起个名,再合并。
如图所示,左右两侧节点是等价的,均会把Pack的东西设个name Attribute,如 name='Guides.skel' 。


APEX PROMOTE 和 APEX Tag
Autorig Component SOP 里的 PROMOTE 可以自定义哪些 Joint 可以被 位移、哪些 Joint可以被旋转。
比如定义 neck 只能被旋转、ik_hand_left_goal 只能被位移。
如图所示,这个关节只能被旋转。

使用 AttributeAdjustTag SOP 可以创建 Tag。使用 %tag(tagname) 可以读取 Tag 对应的 Group。

Autorig Component
| Component Source | Describe |
|---|---|
| FK Transform | 转换 Skeleton 到 APEX Joints,用于绑定。 骨架默认源是 Base.skel,需要改成 Guides.skel,因为按照标准 只有 Guide Skeleton 才包含绑定信息 比如 Tag。 ![]() |
| Bone Deform | 为 Rig 添加角色蒙皮,便于可视化。 不加这个就只显示一副骨架。 |
| Multi IK | 为指定 Segments 添加 IK。 Segments 用来描述 IK 骨骼 如一整条胳膊,Segments 参数直接填 Tag 的名称 比如 *Leg 不要填 #*Leg。Driven 是可被 IK 驱动的 TransformNode,可以理解为蒙板,默认为 #bind 表示所有骨骼都可以被影响,用来过滤掉 IK 骨骼用,比如 #bind & #L_Leg 。Rigid 会让骨骼绷直,如下图所示: ![]() |


