You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GUI按钮控制Unreal中Anim Blueprint的ENUM Blend Pose变量

解决User Widget控制Anim Blueprint枚举变量的问题

前提准备

先确认Anim Blueprint里的枚举变量设置正确:

  • 变量必须创建在Anim Instance的图表中(不是Anim Blueprint的类默认值面板)
  • 在变量的细节面板里勾选 Editable 和 Public,确保外部可以访问和修改

方法一:通过Level BP中转传递Anim Instance引用(最稳妥)

  1. 在User Widget蓝图中添加变量

    • 新建一个变量,类型选择你的Anim Blueprint对应的Anim Instance类(比如你的Anim BP叫ABP_Character,就选ABP_Character_C)
    • 把这个变量设为Public(细节面板里勾选Public)
  2. Level BP中传递引用

    • 获取你要控制的角色/动画所属的Actor,调用Get Anim Instance节点拿到Anim Instance
    • 实例化User Widget后,用Set [你刚才创建的Widget变量名]节点,把Anim Instance赋值给Widget的变量
  3. Widget按钮绑定事件

    • 回到Widget蓝图,选中按钮的OnClicked事件
    • 直接调用Widget里的Anim Instance变量,执行Set [你的枚举变量名]节点,选择对应按钮要切换的枚举值即可

方法二:Widget直接获取目标Actor的Anim Instance

  1. 在User Widget蓝图中添加变量

    • 新建一个变量,类型选择你的角色Actor类(比如Character或自定义的角色类)
    • 设为Public
  2. Level BP中传递Actor引用

    • 实例化Widget时,把目标角色Actor赋值给这个Widget变量
  3. 按钮事件中设置枚举

    • 在按钮OnClicked事件里,先通过Actor变量调用Get Anim Instance拿到对应的Anim Instance
    • 再调用Set [你的枚举变量名]节点,设置目标枚举值

注意事项

  • 确保所有涉及的枚举类型是同一个,不要出现类型不匹配的情况
  • 如果Anim Instance是动态生成的,要确保获取到的引用是最新的,避免空引用报错

内容的提问来源于stack exchange,提问作者Tom Auger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:57:29