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里面没找到,推荐用上面的四元数的方法实现)

相关推荐
wsdchong之小马过河7 小时前
2025虚幻5蓝图编辑器的细节面板调不出来
ue5·编辑器
zzhclc12 小时前
ue5.5 landscape paint模式下 layers出不来
ue5
成都渲染101云渲染666619 小时前
UE5制作与云渲染配置不足?3090/4090显卡云端解放创作力
ue5·电脑
CloudHu198921 小时前
UE5 免费且好用的插件收集(不定期更新)
游戏·ue5·免费插件
nenchoumi31192 天前
UE5 学习系列(五)导入贴图资产
学习·游戏·ue5·机器人
nenchoumi31192 天前
UE5 学习系列(九)光照系统介绍
java·学习·ue5
nenchoumi31193 天前
UE5 学习系类(七)导入bridge资产包
windows·学习·ue5·机器人
曼巴UE54 天前
UE5 音效系统
c++·游戏·ue5·虚幻·音效
nenchoumi31194 天前
UE5 学习系列(二)用户操作界面及介绍
windows·学习·ue5·机器人
Vince丶4 天前
[UnrealCircle武汉]UE5跨平台游戏常见问题及解决方案笔记
ue5