UE5 在旋转A的基础上执行旋转B

用径向slider实现模型旋转时,得到的结果与ue编辑器里面的结果有很大出入。

问题应该是

两个FRotator(0,10,0)和(10,20,30),

两个FRotator的加法结果为:(10,30,30)

和实际上我想执行的操作------在(10,20,30)的基础上执行(0,10,0)不一样。

更具体的数学问题应该去参考欧拉角、四元数的概念。gpt说,**根本原因是:欧拉角(Pitch, Yaw, Roll)不是线性空间里的量,旋转本身是非线性的。**四元数有很多好处,避免万向节死锁等。

解决办法(参考deepseek和官方论坛):

设置绝对的旋转为这个:

cpp 复制代码
FRotator(B.Quaternion()*A.Quaternion())

A为原来的状态、B为在原来状态下的增量,B和A相乘的顺序好像也有讲究(四元数乘法问题)。当然slider可能也许要保存处理一下增量?(这个还没查怎么搞,目前是用一个变量去存上一次的状态的)。Ex:蓝图里有个合并Rotator的BP函数,但是cpp里面没找到,推荐用上面的四元数的方法实现)

相关推荐
曼巴UE57 天前
UE5 客户端 需要的网络同步概念总结(3 )-事件同步 RPC 以及三种调用方式
网络·c++·网络协议·学习·rpc·ue5
归真仙人10 天前
【UE项目迁移银河麒麟(Linux)局域网会话搜索失败排查】
ue5·ue4·vr·unreal engine·银河麒麟
fanfan_hongyun11 天前
UE5.1 应用InWebSocketClient-main 接收websocket信息
ue5
远离UE412 天前
Chaos、WFC 与 FJA 原理与区别笔记
ue5
平行云12 天前
3D应用推流太贵太慢?ImmerShare Lite:利用本地算力实现极简一键分享
unity·ue5·实时云渲染·云桌面·像素流·云游戏·串流
fanfan_hongyun13 天前
UE5.1 VaRest插件 读取json http请求
ue5
SpiderCodeJ13 天前
【UE5】- UE MCP :在UE5.8编辑器中内置链接Codex
ue5·codex·智能体·mcp
weixin_4046793117 天前
ue5 widget 之间的蓝图通讯
ue5
zr想努力17 天前
GAS学习(UE5自用)
学习·ue5
平行云17 天前
国产GPU云渲染适配实战:驱动兼容、编码调优与多路并发
unity·ue5·webrtc·webgl·实时云渲染·云桌面·像素流送