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

相关推荐
远离UE44 分钟前
UE5 SF_VertexShader 如何使用
ue5
电子云与长程纠缠3 小时前
UE5 Lyra PocketWorld进行3D内容UI预览 - 上
开发语言·学习·3d·ue5·游戏引擎
电子云与长程纠缠6 小时前
UE5 Lyra PocketWorld进行3D内容UI预览 - 下
开发语言·学习·游戏·ui·ue5
远离UE41 天前
UE5 GPU内部异步
ue5
1204157137 肖哥1 天前
UE5 PCG PCGBlueprintElement简介
ue5
dong1326971 天前
UE5FPS游戏开发教程(四)
ue5
dong1326972 天前
UE5FPS游戏开发教程(三)
ue5
日月云棠2 天前
UE5源码分析之Editor——AnimationBlueprintLibrary模块全面分析
ue5
远离UE42 天前
UE5 ECS 原理
ue5
mengzhi啊4 天前
UE5 把剑绑定到骨骼-给要播放的动画及动画蒙太奇添加武器
ue5