当前位置: 首页 > news >正文

UE_ControllRig交互

1. 在动画蓝图中调用 Control Rig

这是最常见、最核心的交互方式。你可以在动画蓝图的动画图表中,将Control Rig作为一个节点来使用。

数据流: 动画蓝图 -> Control Rig -> 最终骨骼姿势

如何操作:
在动画蓝图的Anim Graph中,右键搜索你的Control Rig资产(例如 CR_MyCharacter),然后将其连接到Output Pose上。

交互场景:

  • 添加程序化运动:在动画蓝图的状态机或混合空间输出的基础动画之上,叠加由Control Rig计算的动作。例如,在基础的走路循环上,通过Control Rig让角色的头部始终看向一个目标。
  • 姿势修正:使用Control Rig来修正动画的脚部穿墙、手部抓取物品等位置。

2. 从蓝图(Level Blueprint / Actor Blueprint)驱动 Control Rig

游戏逻辑(如角色血量、速度、玩家输入)通常写在角色的Actor蓝图或关卡蓝图中。这些蓝图可以直接设置Control Rig的参数。

数据流: 游戏逻辑蓝图 -> 动画蓝图 -> Control Rig

如何操作:

  1. 在Control Rig中暴露变量:在Control Rig图表中,创建一个变量(例如 LookAt_EnabledAim_Intensity),并将其细节面板中的Expose To Animation Blueprint勾选上。
  2. 在动画蓝图中获取Control Rig实例:在动画蓝图的Event Graph中,使用 Get Control Rig 节点获取当前运行的Control Rig实例。
  3. 在动画蓝图中设置变量:通过 Get Control Rig 节点返回的实例,你可以 Set 任何你暴露出来的变量。
  4. 从游戏蓝图通信:游戏蓝图可以通过调用动画蓝图中自定义的函数或设置变量,来间接驱动这些Control Rig参数。

交互场景:

  • 受伤反应:当角色在游戏蓝图中受到伤害时,触发一个事件,通知动画蓝图,动画蓝图再设置Control Rig的 HitReaction_LocationHitReaction_Intensity 变量,让角色身体程序化地朝向受击点弯曲。
  • 情绪状态:根据角色的精神状态(平静、紧张、愤怒),游戏蓝图可以设置一个 Breathing_Heavy 的强度参数,Control Rig根据这个参数来控制胸部骨骼的呼吸起伏幅度。

3. Control Rig 调用蓝图函数(反向通信)

更强大的是,Control Rig不仅可以被驱动,它反过来也可以调用蓝图中的函数。这实现了从“骨骼层面”到“游戏逻辑层面”的通信。

如何操作:
在Control Rig图表中,有一个名为 Execution 的分类,你可以找到 Invoke Function 节点。通过这个节点,你可以调用在动画蓝图角色蓝图中定义的函数。

交互场景:

  • 脚步同步:在Control Rig中计算脚步IK时,当一只脚完全落地的那一帧,调用蓝图的 PlayFootstepSound 函数来播放脚步声。这样声音和视觉完美同步。
  • 生成特效:当Control Rig计算的尾巴骨骼摆动速度超过某个阈值时,调用蓝图函数在尾巴尖生成风轨迹特效。
  • 物理物体交互:当通过Control Rig计算的手部骨骼触碰到一个物体时,调用蓝图函数来通知物理系统。

4. 在Sequencer中联合使用

在过场动画序列中,它们的交互同样强大。

  • 关键帧Control Rig:你可以在Sequencer中为Control Rig的控制器添加关键帧,制作精细的动画。
  • 蓝图驱动Sequencer参数:游戏运行时,蓝图可以动态修改Sequencer中Control Rig轨道的参数(通过Level Sequence Player),实现动态的、由游戏事件触发的过场动画。

总结:一个完整的实战例子

目标: 角色被击中时,身体朝向子弹飞来的方向弯曲,并在中弹点播放特效。

  1. Control Rig 端:

    • 创建一个 Hit React 功能,它根据 Hit_Location (向量)和 Hit_Intensity (浮点数)变量,驱动脊柱骨骼程序化地朝向击中点弯曲。
    • 暴露 Hit_LocationHit_Intensity 变量给动画蓝图。
  2. 动画蓝图 端:

    • Anim Graph 中,将Control Rig节点混合在最终姿势输出前。
    • Event Graph 中,创建一个自定义事件 TriggerHitReaction,它接收一个位置参数,并设置Control Rig实例的 Hit_LocationHit_Intensity 变量。
  3. 角色蓝图 端:

    • 在角色的 Take Damage 事件中,获取伤害的来源位置。
    • 调用动画蓝图中的 TriggerHitReaction 事件,并将伤害来源位置传递过去。
    • 同时,在击中的位置(Hit_Location)生成一个火花特效。

通过这种分层协作,蓝图负责决策和通知,Control Rig负责执行精准的骨骼运动,两者各司其职,共同创造出响应迅速、表现力丰富的游戏动画。

http://www.dtcms.com/a/593613.html

相关文章:

  • Swift-snapKit使用
  • Hello-Agents第二章深度解析:智能体的进化之路——从符号逻辑到AI原生
  • 51单片机汇编实现DHT11读取温湿度
  • LiveCharts.Wpf 控件的使用
  • 柔性软风管-测量统计一键出量
  • 告别手动录财报!财务报表OCR识别解决方案选型指南
  • (128页PPT)智慧化工厂区一体化管理平台建设方案(附下载方式)
  • jsp网站建设项目实战总结怎么做网站统计
  • 【Rust 探索之旅】Rust 全栈 Web 开发实战:从零构建高性能实时聊天系统
  • 【Rust 探索之旅】Tokio 异步运行时完全指南:深入理解 Rust 异步编程与源码实现
  • 个人网站做经营性crm销售管理系统功能
  • Ubuntu 22.04 Docker 安装指南
  • C++基础语法篇二 ——引用、内联和空指针
  • 有没有做兼职的好网站十堰网络公司排名
  • vscode中claude code插件代理地址设置
  • 网页制作与网站管理在线销售管理系统
  • 如何使用 vxe-table 实现右键菜单异步权限控制
  • 11月10日学习总结--初识numpy
  • 前后端通信加解密(Web Crypto API )
  • 基于数字图像相关(DIC)技术的机械臂自动化焊接残余应力全场变形高精度测量
  • XTOM-TRANSFORM-ROB:面向大尺寸构件的移动式非接触三维扫描与自动化质量检测
  • PyWinInspect:pywinauto 桌面自动化开发伴侣,集成 Inspect 元素检查 + 定位代码自动生成,效率大提升!
  • 个人做什么网站软件技术专升本难吗
  • HarmonyOS:ArkUI栅格布局系统(GridRow/GridCol)
  • 电商设计师常用的网站wordpress 获取分类地址
  • 开放签电子签章系统3.2版本更新内容
  • 电子商务的网站建设过程辽宁沈阳网站建设
  • C++ 设计模式《统计辅助功能》
  • 【技术分享】ComfyUI中protobuf版本兼容性问题的优雅解决方案:猴子补丁实战
  • Redis 高级篇(未完结1/3)