UE4中物体的旋转位移方法总结大全

本文详细介绍了UE4中物体旋转的相关知识,包括roll、pitch、yaw的概念,以及make rotation系列函数的用法。通过具体例子解析了如何控制物体在不同轴向上的旋转,并探讨了如何设置物体旋转,特别是使物体始终面向玩家的方法,结合find look at rotation和project point on to plane节点实现物体的定位和定向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:UE4中物体的旋转
在开始之前我要介绍一些准备知识.
如下图所示:分别对应X轴旋转,Y轴旋转,Z轴旋转,对应起来就是roll, pitch, yaw.
在空间变换中物体的旋转有三个情况:
分别对应X轴旋转,Y轴旋转,Z轴旋转,对应起来就是roll, pitch, yaw.

以飞机的空间运动我们可以称:roll---翻滚角,yaw---航向角  ,pitch---为俯仰角
以飞机的空间运动我们可以称:roll—翻滚角,yaw—航向角 ,pitch—为俯仰角

在这里插入图片描述
如图ue4 中物体的旋转都需要用到前面介绍的知识,所以我们必需要了解,下面我介绍一下如何控制物体的旋转.

如下图所示:
在这里插入图片描述
ue4中这些函数可以控制物体在任意方向旋转,但是这几个函数看起来虽然相似但是有区别,当然这种函数还有很多但是我这里主要讲几个相似的和容易搞混的,至于其他的区别较明显的节点我就不再重复了.

1.make rotation form X
通过给定的x向量重新构建一个轴,Y和Z轴不需要指定(这里

### 实现鼠标控制物体绕指定轴旋转 在Unreal Engine 4中,要实现通过鼠标控制物体绕特定轴旋转的功能,可以利用`Axis Mapping`机制[^3]。这涉及到捕捉鼠标的移动并将其转换成旋转角度应用到目标对象上。 对于此功能的具体实施,主要分为几个方面考虑: - **输入处理**:定义新的轴映射用于接收鼠标的X和Y方向上的位移变化。 - **逻辑计算**:基于接收到的鼠标位置改变量,计算出相应的旋转增量,并更新被控物的位置属性。 下面是一份简单的蓝图脚本以及对应C++代码片段来说明这个过程。 #### 蓝图解决方案 1. 打开项目的Input Settings,在Bindings标签页里新增两个Float类型的Axis Mappings分别命名为“MouseX” 和 “MouseY”,它们用来表示水平与垂直方向上的鼠标偏移值。 2. 创建一个新的Actor Blueprint作为可交互的对象实例化于场景之中。 3. 在该Blueprint内部添加Event Graph节点 `Add Local Rotation` 来响应上述自定义的 Axis Events (`MouseX`, `MouseY`) ,从而调整自身的朝向。 ```blueprint // Event Tick -> Get Delta Seconds (float) * Mouse Sensitivity (float) // Multiply by -1 if needed to invert axis direction. // Pass result into AddLocalRotation as Pitch/Yaw/Roll components accordingly. ``` #### C++ 解决方案 如果倾向于采用编程方式,则可以在角色类或其他合适的组件内重写Tick函数监听来自用户的输入指令,并据此修改Transform矩阵中的Rotator成员变量。 ```cpp void AMyCharacter::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); // Bind the mouse movement input to our custom function PlayerInputComponent->BindAxis("Turn", this, &AMyCharacter::Turn); } void AMyCharacter::Turn(float Value) { if (!bCanRotate || FMath::IsNearlyZero(Value)) return; FRotator NewRotation = GetActorRotation(); // Apply rotation based on mouse delta value and sensitivity setting float YawDelta = Value * BaseTurnRate * GetWorld()->GetDeltaSeconds(); NewRotation.Yaw += YawDelta; SetActorRotation(NewRotation); } ``` 以上就是关于如何在Unreal Engine 4 中使用鼠标控制物体沿某一固定轴线做圆周运动的方法概述及其具体实践指南[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值