Skip to content

APEX Graph 基础理解

APEX 详解:https://www.youtube.com/watch?v=Rmx17u80wEE

  • APEX 操作是在 Stash SOP 里的。

    首先打开 APEXNetworkView 视图,再选中 Stash SOP 即可编辑。

    APEX Graph SOP 是 Stash 的加强版。

  • 使用 APEX 创建点线或关节:

    使用 TransformObject 节点可以创建点和线。

    image-20260307150844398image-20260307150901822
  • 程序化构建 APEX 节点 (使用 SOP 构建 APEX 节点):

    APEX 节点是由 Point 的 callback Attribute指定的,比如 callback = "TransformObject"

    此时可直接在 APEXNetworkView 中查看你的节点,只需要选中就可以,比如选中图里的 rename_point,你会发现你的 APEX 节点已经出现但无法编辑。

    最终将处理好的 Point 输入到 Stash SOP 即可编辑。

    image-20260307151403858
  • 加强版 APEX 图表节点:APEXGraph SOP。

    这个节点是 Stash 的升级版,包含了自动 Stashing 和一些错误检查。

  • APEX Graph 也可以通过 Copy SOP 来复制

    因为 APEX 节点的本质是 Point,因此可以使用 Copy SOP 来复制粘贴同一节点。

    如图所示,在 editgraph5 中定义了 extrude Subnet,然后使用 Copy SOP 将其复制四份后,使用 Layout Graph SOP 将其展示出来。

    image-20260307204951705
  • 自动整理并展示 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.skelGuide Skeleton 绑定用的骨骼
Base.skelSkeleton 骨架
Base.shpGeometry 模型
Base.rigAPEX 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菜单里修改。

image-20260307153827420

APEX 批量执行VOP算法:InvokGraph

InvokeGraph SOP 的 Input1 是算法端,Input2 是执行端。

在 InvokeGraph 中,需要先配置输入的 Dictionary 和输出的 Attribute,分别是 DictionaryToBindOutputDIctionaryBind

如图所示,APEXGraph SOP 将 foo Attribute 增加1,并输入给 output3333;现在假定 create_params 创建了名为 params{"fool": 1} 的 Dictionary,并在 InvokeGraph SOP中配置了 DictionaryToBind = params OutputDictionaryBind{ApexOutputsGroup = "output33", OutputAttrib="params_alted"} ,那么最终会得到具有 "bar":2params_alted Dictionary。

image-20260307193957447image-20260307194017889

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

image-20260307204254225

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 的功能。

imgimg

APEX PackFolder 解析

PackFolder SOP 的本质是将被连接的内容Pack掉,然后起个名,再合并。

如图所示,左右两侧节点是等价的,均会把Pack的东西设个name Attribute,如 name='Guides.skel'

image-20260308202432702image-20260308202455005

APEX PROMOTE 和 APEX Tag

Autorig Component SOP 里的 PROMOTE 可以自定义哪些 Joint 可以被 位移、哪些 Joint可以被旋转。

比如定义 neck 只能被旋转、ik_hand_left_goal 只能被位移。

如图所示,这个关节只能被旋转。

image-20260309171222724image-20260309171319321

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

image-20260309180928443

Autorig Component

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