Actor relative pitch rotation stuck in 90 degrees

en: Hi.
I need to copy the rotation of one Actor to another Actor, the other is not acceptable.
When I know the rotation GetRotation(), Pitch is displayed with the error of limited value in 90 degrees, which is immediately evident by the second Actor, in which I’m broadcasting the turn of the First Actor.

The problem that stopped my work, looking for help. How to get a real copy of the object’s Rotation.


ru: Привет.
Мне необходимо скопировать поворот одного Актора в другой Актор, иное не приемлемо.
Когда я узнаю вращение GetRotation(), то Pitch выводится с ошибкой, ограниченным значением в 90 градусов, что сразу же видно по второму Актору, в который я транслирую поворот Первого Актора.

Проблема остановила мою работу, ищу помощи. Как получить реальную копию Поворота объекта.

Это не ошибка , Pitch жёстко ограничен в 90 градусов.
Ты можешь создать произвольный

 FRotator newRotator (220, 0, 0)

Но после применения поворота с ним напр

SetRelativeRotation(newRotator);  

актор будет хранить преобразованный Rotator с ограниченным Pitch от -90 до 90 градусов.

Ты можешь формировать каждый раз новый FRotator и подставлять переменную, соответственно ты каждый новый раз прибавляешь знач к переменной и опять делаешь

 FRotator newRotator (ТУТ_ПЕРЕМЕННАЯ_ДЛЯ_PITCH, 0, 0)

В С++ можно исп FQuat тип вместо FRotator. Но запомни поворот применяется всегда с ограниченным pitch.
FRotator имеет метод .Quaternion() он вернёт FQuat который как бы не имеет этого ограничения.

FQuat rotQ = newRotator.Quaternion() 

Дальше ты можешь сложить его с другим FQuat, точнее для сложения данных в FQuat два FQuat нужно умножить друг на друга.

FQuat q1 * q2

И подать результат на тот же SetRelativeRotation(какой то FQuat);
Можно получить FQuat актора методом GetActorQuat()

show the code or BP where you have this kind of trouble