虚幻引擎 Add Torque 节点

一、Add Torque 节点概述

在虚幻引擎5中,Add Torque 节点用于对启用了物理模拟的物体施加旋转力矩(扭矩),使其围绕指定轴旋转

蓝图中有两个相关的节点:

  • Add Torque in Radians —— 扭矩值以弧度/秒²为单位

  • Add Torque in Degrees —— 扭矩值以度/秒²为单位

两者功能完全相同,仅单位不同

节点参数说明

参数 类型 说明
Target Primitive Component 要施加扭矩的组件(如Static Mesh Component)
Torque Vector 扭矩向量,方向为旋转轴长度为扭矩强度
Bone Name Name 如果是SkeletalMeshComponent,指定要施加扭矩的骨骼名称;None表示根骨骼
Accel Change Boolean 若为true,扭矩被视为角加速度变化量而非物理扭矩(即忽略质量影响

二、完整操作步骤

步骤1:创建项目与Actor

  1. 打开UE5,创建或打开一个项目(建议使用蓝图模板)

  2. 在内容浏览器中右键 → 蓝图类 → 选择 Actor

  3. 命名为 BP_PhysicsCube(或任意名称)

步骤2:添加网格体组件并启用物理

  1. 打开新建的蓝图,在组件面板中添加一个 Static Mesh Component

  2. 将其设为根组件(拖到Root上)

  3. 在细节面板中:

    • Static Mesh → 选择一个基础网格体(如立方体)

    • Physics → Simulate Physics ✅ 勾选

    • Physics → Enable Gravity ✅ 根据需要勾选

    • Collision → Collision Presets → 设置为 BlockAll 或 PhysicsActor

步骤3:构建输入控制(以键盘为例)

  1. 打开 项目设置 → 输入 → 绑定(Bindings)

  2. 添加以下操作映射(Action Mappings):

    • RotateX → 键盘 A / D

    • RotateY → 键盘 W / S

    • RotateZ → 键盘 Q / E

步骤4:在事件图表中添加扭矩逻辑

  1. 打开 BP_PhysicsCube 的事件图表

  2. 在图表中右键,搜索 Add Torque in Radians 节点

  3. 将节点的 Target 引脚连接到 Static Mesh Component 的引用

  4. 设置 Torque 向量值:

    • X:绕X轴旋转(翻滚/Roll)

    • Y:绕Y轴旋转(俯仰/Pitch)

    • Z:绕Z轴旋转(偏航/Yaw)

步骤5:连接输入控制

以 A/D 键控制绕Z轴旋转为例:

text
[InputAction RotateX] → [Get Actor Forward Vector] → [Multiply (× TorqueStrength)] → [Add Torque in Radians (Torque = Z)]

具体蓝图连线:

  1. 从事件图表拖出 InputAction RotateX 节点(需要先在项目设置中绑定)

  2. 拖入 Get Actor Forward Vector 节点获取朝向

  3. 使用 Multiply 节点将向量乘以扭矩强度(如 500.0

  4. 将结果连接到 Add Torque in Radians 的 Torque 引脚

  5. 使用 Break Vector / Make Vector 提取或构造特定轴向的扭矩

更简单的实现——直接指定轴向扭矩:

text
[InputAction RotateX] → [Get Input Axis Value] → [Multiply (× TorqueStrength)] → [Make Vector (X=0, Y=0, Z=输出值)] → [Add Torque in Radians]

步骤6:调整物理参数

在Static Mesh Component的细节面板中调整:

  • Mass(质量):影响扭矩产生的角加速度

  • Angular Damping(角阻尼):控制旋转衰减速度

  • Linear Damping(线性阻尼):控制移动衰减速度


三、完整案例:键盘控制小球滚动

目标

使用 WASD 键控制一个球体在平面上滚动,W/S 控制前后滚动,A/D 控制左右滚动。

操作步骤

1. 创建蓝图

  • 新建蓝图类 → 选择 Pawn

  • 命名为 BP_RollingBall

2. 添加组件

  • 添加 Sphere Collision Component 作为根组件

  • 添加 Static Mesh Component(子组件),使用球体网格

  • 将Static Mesh的 Simulate Physics ✅ 勾选

3. 设置输入
项目设置 → 输入 → 添加轴映射(Axis Mappings):

  • MoveForward → 键盘 W(刻度1)、S(刻度-1)

  • MoveRight → 键盘 A(刻度-1)、D(刻度1)

4. 事件图表逻辑

text
Event BeginPlay → [Get Player Controller] → [Enable Input]

[InputAxis MoveForward] → [Get Actor Right Vector] → [Multiply (× -1 × TorqueStrength)] → [Add Torque in Radians (Torque)]
[InputAxis MoveRight]   → [Get Actor Forward Vector] → [Multiply (× TorqueStrength)] → [Add Torque in Radians (Torque)]

关键点:要让球朝相机方向滚动,需要获取相机的朝向向量

5. 调整参数

  • TorqueStrength 设为 800.0

  • Angular Damping 设为 0.5

  • Mass 设为 1.0


四、重要注意事项

1. 扭矩向量的含义

传递给 AddTorque 的向量,方向是旋转轴长度是扭矩强度。例如:

  • (0, 0, 100) → 绕Z轴施加100单位扭矩(顺时针旋转)

  • (0, 100, 0) → 绕Y轴施加100单位扭矩

2. 世界空间 vs 局部空间

Add Torque 节点默认在世界空间中施加扭矩。如果需要局部空间扭矩,需要先将局部向量转换为世界向量:

text
[Local Torque Vector] → [Get Actor Rotation] → [Transform Vector] → [Add Torque in Radians]

3. Accel Change 选项

  • 未勾选(默认):扭矩受质量影响,质量越大,产生的角加速度越小

  • 勾选后:扭矩被视为角加速度变化量,忽略质量,所有物体旋转响应一致

4. 性能提示

  • 避免在 Tick 中每帧调用 AddTorque 产生过大的扭矩值

  • 合理设置 Angular Damping 防止无限加速

  • 对于载具等复杂系统,考虑使用 Chaos Vehicles 插件提供的专用扭矩系统

5. 旧版节点兼容

在UE5中,旧版的 AddTorque 节点已被弃用,应使用 AddTorqueInRadians 或 AddTorqueInDegrees 替代

感谢您的来访,获取更多精彩文章请收藏本站。

THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容