一、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
-
打开UE5,创建或打开一个项目(建议使用蓝图模板)
-
在内容浏览器中右键 → 蓝图类 → 选择 Actor
-
命名为
BP_PhysicsCube(或任意名称)
步骤2:添加网格体组件并启用物理
-
打开新建的蓝图,在组件面板中添加一个 Static Mesh Component
-
将其设为根组件(拖到Root上)
-
在细节面板中:
-
Static Mesh → 选择一个基础网格体(如立方体)
-
Physics → Simulate Physics ✅ 勾选
-
Physics → Enable Gravity ✅ 根据需要勾选
-
Collision → Collision Presets → 设置为
BlockAll或PhysicsActor
-
步骤3:构建输入控制(以键盘为例)
-
打开 项目设置 → 输入 → 绑定(Bindings)
-
添加以下操作映射(Action Mappings):
-
RotateX→ 键盘 A / D -
RotateY→ 键盘 W / S -
RotateZ→ 键盘 Q / E
-
步骤4:在事件图表中添加扭矩逻辑
-
打开
BP_PhysicsCube的事件图表 -
在图表中右键,搜索 Add Torque in Radians 节点
-
将节点的 Target 引脚连接到 Static Mesh Component 的引用
-
设置 Torque 向量值:
-
X:绕X轴旋转(翻滚/Roll)
-
Y:绕Y轴旋转(俯仰/Pitch)
-
Z:绕Z轴旋转(偏航/Yaw)
-
步骤5:连接输入控制
以 A/D 键控制绕Z轴旋转为例:
[InputAction RotateX] → [Get Actor Forward Vector] → [Multiply (× TorqueStrength)] → [Add Torque in Radians (Torque = Z)]
具体蓝图连线:
-
从事件图表拖出 InputAction RotateX 节点(需要先在项目设置中绑定)
-
拖入 Get Actor Forward Vector 节点获取朝向
-
使用 Multiply 节点将向量乘以扭矩强度(如
500.0) -
将结果连接到 Add Torque in Radians 的 Torque 引脚
-
使用 Break Vector / Make Vector 提取或构造特定轴向的扭矩
更简单的实现——直接指定轴向扭矩:
[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. 事件图表逻辑
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 节点默认在世界空间中施加扭矩。如果需要局部空间扭矩,需要先将局部向量转换为世界向量:
[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 替代。
感谢您的来访,获取更多精彩文章请收藏本站。







暂无评论内容