UE4里用【蓝图】实现物体在场景中 旋转

本文介绍了使用UE编辑器进行基本操作的方法,包括新建Cube、调整物体移动性等步骤,并通过截图展示具体操作流程。

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

1,新建Cube:

 

 

 

2,打开关卡蓝图,截图:

 

3,在世界大纲试图中找到该Cube,然后找到该Cube的 Details细节面板,将其 移动性 改为 "可移动"。 截图如下:

移动性改为 可移动


 

4,运行

 

<think>我们正在使用UE5的关卡蓝图来设置物体旋转到固定角度。根据引用内容,我们知道关卡蓝图是用于整个关卡的全局脚本,而类蓝图则用于特定对象。由于用户指定了使用关卡蓝图,因此我们将专注于关卡蓝图的操作。 在UE5中,我们可以通过“Set Actor Rotation”节点来设置物体旋转角度。这个节点需要指定一个Actor和一个旋转角度(FRotator)。在关卡蓝图中,我们可以通过事件(如BeginPlay)来触发旋转,或者通过其他事件(如按键事件)来触发。 步骤: 1. 在关卡蓝图中,首先获取需要旋转物体(Actor)。通常我们可以通过“Get Actor of Class”或“Get All Actors of Class”来获取场景中的特定物体,或者直接引用一个已经放置的物体(如果该物体有变量引用)。 2. 然后创建一个“Set Actor Rotation”节点,将该物体连接到“Target”引脚,并设置旋转角度(FRotator)。注意,旋转角度是绕每个轴的旋转度数(Pitch, Yaw, Roll)。 但是,在关卡蓝图中,如果我们已经将物体拖入场景并希望直接操作它,我们可以通过“Get a reference to the actor”来获取。例如,在场景中选中物体,然后在关卡蓝图中右键点击,选择“创建对[物体名]的引用”。 示例: 假设我们有一个物体名为“MyActor”,我们希望在游戏开始时将其旋转到(0, 90, 0)(即绕Y轴旋转90度)。 操作步骤: 1. 打开关卡蓝图(在UE编辑器的“蓝图”菜单下选择“打开关卡蓝图”)。 2. 在事件图表中,右键点击,输入“BeginPlay”并添加“Event BeginPlay”节点(如果还没有的话)。 3. 在场景中选中“MyActor”,然后在关卡蓝图编辑器中右键点击,选择“创建对MyActor的引用”。这样就会生成一个代表该物体的引用节点。 4. 右键点击,输入“Set Actor Rotation”,选择该节点。 5. 将“MyActor”的引用节点连接到“Set Actor Rotation”节点的“Target”引脚。 6. 在“Set Actor Rotation”节点的“Rotation”引脚上,点击下拉菜单选择“Split Struct Pin”(或者直接点击引脚右侧的拆分按钮),这样我们就可以分别设置Pitch, Yaw, Roll。 7. 将Pitch设置为0,Yaw设置为90,Roll设置为0。 8. 将“Event BeginPlay”节点的输出执行引脚连接到“Set Actor Rotation”节点的输入执行引脚。 这样,当游戏开始时,该物体就会旋转到指定的角度。 另外,如果我们需要在游戏过程中旋转(比如按下一个键),我们可以使用输入事件。在关卡蓝图中,我们可以添加输入事件(如按键事件),然后连接同样的设置旋转节点。 注意:旋转角度是欧拉角,单位是度。如果我们需要使用相对旋转(即在当前旋转基础上再旋转),可以使用“Add Actor Local Rotation”节点。 但是用户要求的是固定角度,因此使用“Set Actor Rotation”即可。 如果用户想要旋转物体是一个组件(比如场景中的某个Actor的子组件),那么我们需要使用“Set Relative Rotation”节点,并且需要先获取该组件。但根据问题描述,用户要求的是设置物体(Actor)的旋转,因此我们按照上述方法即可。 另外,引用[2]中提到了摄像机旋转,虽然场景不同,但旋转的基本原理是一样的。 因此,总结步骤: - 获取目标Actor的引用。 - 使用“Set Actor Rotation”节点设置其旋转角度。 下面我们以文字形式描述蓝图连接: 1. 事件:Event BeginPlay(或者用户指定的事件) 2. 节点:Set Actor Rotation - Target: 目标Actor的引用 - Rotation: 一个FRotator结构,其中Pitch, Yaw, Roll分别设置为所需的角度(例如,0,90,0) 连接事件节点的执行输出到Set Actor Rotation节点的执行输入。 注意:如果目标Actor是多个,我们需要遍历它们。例如,使用“Get All Actors Of Class”获取一个数组,然后使用“ForEachLoop”循环设置每个Actor的旋转。 由于用户没有说明是单个物体还是多个物体,我们假设是单个物体。如果是多个物体,我们可以使用循环。 相关问题: 1. 如何在UE5中通过按键触发物体旋转? 2. 如何让物体平滑旋转到目标角度(而不是瞬间设置)? 3. 在UE5中,如何获取场景中特定类的所有Actor并设置它们的旋转4. 如何通过类蓝图设置物体旋转,与关卡蓝图有什么不同?</think>在 Unreal Engine 5 中通过关卡蓝图设置物体旋转到固定角度的步骤如下: ### 操作步骤 1. **打开关卡蓝图** 在编辑器顶部菜单栏选择 `蓝图` → `打开关卡蓝图`(或右键点击关卡视口空白处选择 `关卡蓝图`)。 2. **获取目标物体引用** - 在场景中选择需要旋转物体 - 在关卡蓝图编辑器中右键 → 选择 `为[物体名]创建引用` ```mermaid graph LR A[场景中选择物体] --> B[关卡蓝图右键菜单] B --> C[创建物体引用节点] ``` 3. **设置旋转角度** 添加 `设置Actor旋转` 节点(Set Actor Rotation): - 将物体引用连接到 `目标` 引脚 - 在 `旋转` 参数输入固定角度值(FRotator格式) ```mermaid graph TB D[事件BeginPlay] --> E[Set Actor Rotation] F[物体引用] --> E E -->|旋转参数| G[Pitch=0 Yaw=90 Roll=0] ``` 4. **角度参数说明**(FRotator 结构) - `Pitch`:X轴旋转(俯仰角) - `Yaw`:Z轴旋转(偏航角) - `Roll`:Y轴旋转(翻滚角) > 示例:设置 $(0^\circ, 90^\circ, 0^\circ)$ 将使物体绕Z轴旋转90度 5. **触发方式(可选)** 可替换 `BeginPlay` 为其他事件: - 键盘事件:`右键 → 添加事件 → 输入 → 键盘事件` - 碰撞事件:`OnActorBeginOverlap` - 自定义事件:创建事件调度器 ### 注意事项 1. **世界坐标 vs 局部坐标** `Set Actor Rotation` 使用世界坐标系。如需局部旋转: - 改用 `Set Actor Relative Rotation` 节点 - 或使用 `Get Actor Rotation` + 增量计算 2. **旋转插值平滑过渡** 如需平滑旋转(非瞬间完成): ```mermaid graph LR H[事件触发] --> I[时间轴节点] I --> J[插值旋转] J --> K[每帧设置旋转] ``` 使用 `RInterpTo` 节点实现渐变效果 3. **旋转模式检查** 确保物体移动性设置为 `可移动`(Movable): - 在物体细节面板 → `变换` → `移动性` ### 示例场景 设置门旋转到90度开启状态: 1. 创建 `门` 的引用 2. 添加 `E键按下` 事件 3. 连接 `Set Actor Rotation` 设置 `(0,90,0)` 4. 连接 `Set Actor Relative Rotation` 实现平滑开门动画[^2]
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值