Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Почему goalfeetyaw нужно приравнивать к eyeangles и только потом суммировать или вычитать угол?

Почему нужно делать так:

C++:
Expand Collapse Copy
animstate->m_flGoalFeetYaw = pEnt->GetEyeAngles().y +- angle;
Вместо этого:
C++:
Expand Collapse Copy
animstate->m_flGoalFeetYaw += angle;
Потому что feetyaw может отклоняться от eyeangles.y не более, чем на 58 градусов в каждую сторону. А теперь представь, что твой соперник использует десинк с максимальной дельтой, т. е. фейк +58, реал -58, в таком случае ты уже будешь видеть в анимстейте feetyaw равный eyeangles.y + 58. Прибавляя что-либо к этому значению, ты не изменишь совсем ничего, а вычитая 58 ты получишь дефолтную позу (где feetyaw равен eyeangles.y), а до реала так и не доберешься.
 
Потому что feetyaw может отклоняться от eyeangles.y не более, чем на 58 градусов в каждую сторону. А теперь представь, что твой соперник использует десинк с максимальной дельтой, т. е. фейк +58, реал -58, в таком случае ты уже будешь видеть в анимстейте feetyaw равный eyeangles.y + 58. Прибавляя что-либо к этому значению, ты не изменишь совсем ничего, а вычитая 58 ты получишь дефолтную позу (где feetyaw равен eyeangles.y), а до реала так и не доберешься.
58 градусов без лбу брикера?
 
58 градусов без лбу брикера?
Это уже к теме не относится. Но, если что, максимальной дельты можно добиться и без классического лбу брейкера, как это делает гейсенс к примеру. Ты можешь форсить апдейты лбу в нужные тебе моменты набирая минимальную скорость.
 
1587821859710.png
 
Ну, я смотрел valve sdk c_baseplayeranimstate.cpp и там было так

if (игрок на муве) animstate->GoalFeetYaw = yaw +- value; // feet yaw = aiming yaw как - то так
else if (стоит) animstate->GoalFeetYaw = или +-= value;
 
Назад
Сверху Снизу