Control Rotation в Unreal Engine (UE4, UE5)— это, если говорить прямо, поворот контроллера, который устанавливается путем добавления смещения мыши на каждом кадре.
-----------
А теперь, чтобы ответить более подробно, для чего это свойство используется, взглянем на вопрос более глубже.
Итак, какие именно объекты должны реагировать на движение мыши? На самом деле ответ сильно зависит от типа игры и конкретной механики управления.
В первую очередь игрок ожидает, что при движении мыши будет поворачиваться камера, ведь именно камера является «глазами» игрока в игровом мире. Через нее игрок воспринимает окружение и ощущает пространство игры.
Во вторую очередь игрок обычно ожидает, что вместе с камерой будет изменяться и направление движения персонажа. Например, если мы удерживаем клавишу W для движения вперед и затем поворачиваем мышь, то хотим, чтобы персонаж продолжал двигаться вперед относительно нового направления камеры. То есть сама клавиша не меняется — мы по-прежнему нажимаем W, — но направление движения разворачивается вслед за поворотом камеры.
Кроме того, движение мыши может влиять и на поворот самого Pawn или Character — в частности, его корневого компонента, которым чаще всего является коллизионная Capsule Component.
Также движение мыши может влиять и на Skeletal Mesh персонажа. Например, анимации поворота головы, корпуса или рук при прицеливании могут следовать за направлением взгляда игрока.
Иными словами, объектов, которые могут реагировать на движение мыши, довольно много. Конечно, мы могли бы вручную реализовывать поворот каждого объекта отдельно, напрямую используя значения осей X и Y из события IA_Look. Однако с точки зрения архитектуры и программирования это было бы не лучшим решением: пришлось бы дублировать одну и ту же логику в разных местах.
Поэтому в Unreal Engine этот механизм уже встроен в игровой фреймворк. На практике входящие данные от мыши обычно не применяются напрямую к объектам сцены, а сначала передаются в специальное свойство Control Rotation, которое находится внутри Player Controller.
И это вполне логично. Player Controller представляет самого игрока внутри игрового мира, а движение мыши — это, по сути, физическое действие игрока. Когда игрок хочет посмотреть вправо, он инстинктивно двигает мышь вправо, и информация об этом движении сначала попадает именно в Player Controller — в его свойство Control Rotation.
Control Rotation хранит текущий поворот Player Controller в виде числовых значений. При этом сам Актор Player Controller хоть и существует в игровом мире, визуально он не отображается и физически не вращается как обычный объект сцены. Однако внутри себя он хранит актуальные значения поворота игрока.
А уже затем, на уровне игрового фреймворка Unreal Engine, различные объекты — камера, персонаж, компоненты персонажа и другие системы — могут получать и использовать этот поворот из Control Rotation. Это делается либо через соответствующие настройки в панели Details, либо с помощью специальных Blueprint-узлов.
Таким образом, вместо того чтобы вручную обрабатывать поворот для каждого объекта отдельно, движок предоставляет единый централизованный источник данных о направлении взгляда игрока — Control Rotation в Player Controller.
Также более подробно изучить класс Player Controller Вы можете в статье: Player Controller в Unreal Engine
===============
Зарегистрироваться в ЛК и скачать книгу по Blueprint: [Blueprint. Взгляд с высоты «птичьего полёта»]