Noob256 писал(а):
да, еще при динамическом NavMesh если поворачивать объект который влияет на NavMesh - тоже ужасно тормозит.
Потому что происходит пересчет NavMesh реалтайм, если в анриале есть что-то типа зон NavMesh-а (множественные навмеши), то разбиение на более мелкие сетки отчасти решит проблему.
Либо покопаться в исходниках и доработать таким образом, чтобы переасчет производится плавно, не в один кадр в смысле...
Еще немного инфы по оптимизации:
Есть такой прием, зависящий от дистанции до цели.
К примеру, если враг находится на расстоянии 100 м до цели, то проверяет положение цели раз в 60 кадров.
на расстоянии 50 метров - раз в 30 кадров, на 10 метров раз в 5 кадров.
Если камера типа TopDown, то можно отключать анимацию у агентов, на определенном расстоянии до цели, так как агента на таком расстоянии всеравно не видно. Или скрывать мешь совсем. Отключать способность отбрасывать тени. Если OcclusionCooling не охватывает видимость данного агента, то таким образом можно оптимизировать тоже.
Но, возможно техника оптимизации объектов за пределами камеры стоит по дефолту в Анриале, нужно проверить.
Если есть детальная статистика по тому сколько времени уходит на что, нужно глянуть на анимацию, сколько милисекунд на нее уходит.
Но в любом случае отключение анимации весчь полезная.
Частенько устраивайте краштесты на 200 и более агентов. Если FPS падает ниже 20, значит с оптимизацией что-то не так )
При этом ВСЕ агенты должны преследовать цель а не тупо стоять - проверять оптимизацию на неактивных агентах неверно.
Используйте LOD на агентах. Помогает очень серьезно.