Доброго времени суток.
Уже давно существует проблема, что при прикреплении к юниту камеры, например, с помощью функции:
call SetCameraTargetController(unit, 0, 0, false)
когда юнит забирается на какую-нибудь высоту, камера смещается по оси Z неравномерно с набираемой юнитом высотой.
Начал разбираться, оказалось, что камера имеет параметр CameraTargetPositionZ, который плавно вырастает при подходе к рельефу (то есть юнит ещё не поднялся выше, а камера начинает приподниматься). Изменить его никак нельзя, можно только узнать с помощью функции
GetCameraTargetPositionZ()
Первым, что взбрело на ум - компенсировать разницу между высотой юнита и параметром CameraTargetPositionZ, функция, отвечающая за подъём камеры над землей стала выглядеть так:
set offset = BlzGetUnitZ(unit) + ( BlzGetUnitZ(unit) - GetCameraTargetPositionZ() )
call SetCameraFieldForPlayer(Player(0),CAMERA_FIELD_ZOFFSET, offset, 0.15)
что приводит тупо к постоянному увеличению высоты камеры, что не ок.
Начал копаться дальше, оказалось есть всё же функция, которая решает проблему:
call PanCameraToWithZ(GetUnitX(unit), GetUnitY(unit), offset)
Работает идеально - камера всегда на нужной высоте над юнитом, где бы он ни был. Но как говорится, есть одно НО... При использовании этой функции и при условии, что юнит стоит на месте, начинает по непонятным причинам сам по себе расти параметр CameraTargetPositionZ. Сначала незаметно, затем начинается тряска камеры. Если использовать эту функцию в отношении юнитов, которые НИКОГДА НЕ стоят на месте, то всё ок, но вот незадача - юнит же может стоять на месте.
Есть ли вообще решение этой проблемы? Или это очередной барьер варкрафта, который никак не превзойти?
Наработку можно чекнуть здесь -> xgm.guru/p/wc3/3dcamera

Принятый ответ

CRASHmaster:
Привет. Посмотри эту карту (версию 4.00): xgm.guru/forum/showthread.php?p=355988, в ней вроде подобная проблема решена. Но я подробно не изучал сам.
к сожалению, не решена. Чем выше юнит забирается на холм, тем выше камера становится над юнитом.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
2
4 года назад
0
Привет. Посмотри эту карту (версию 4.00): xgm.guru/forum/showthread.php?p=355988, в ней вроде подобная проблема решена. Но я подробно не изучал сам.
Загруженные файлы
0
7
4 года назад
0
CRASHmaster:
Привет. Посмотри эту карту (версию 4.00): xgm.guru/forum/showthread.php?p=355988, в ней вроде подобная проблема решена. Но я подробно не изучал сам.
к сожалению, не решена. Чем выше юнит забирается на холм, тем выше камера становится над юнитом.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.