Ниже представлено несколько советов о том, как создавать дизайн моделей персонажей для достижения оптимальной скорости отрисовки.
Вам следует использовать только одиночный skinned mesh renderer для каждого персонажа. Unity оптимизирует анимацию с помощью отсечения по видимости и обновлений по ограничивающему объёму, и эти оптимизации активны только если вы вместе используете один компонент Animation и один skinned mesh renderer. Время отрисовки модели может увеличиться примерно в два раза в результате использования двух skinned mesh’ей вместо одного меша и при использования нескольких мешей редко можно получить какие-либо преимущества.
Вам также следует сохранять как можно меньшее количество материалов на каждом из мешей. Единственная причина, по которой вам может понадобиться более одного материала для персонажа - если вы желаете использовать разные шейдеры для разных частей (например, специальный шейдер для глаз). Однако, два или три материала на персонаж должно быть достаточно почти во всех случаях.
Иерархия костей в обычной игре для настольных систем обычно содержит где-то от 15 до 60 костей. Чем меньше костей вы используете, том лучше будет производительность. Вы можете достичь очень хорошего качества на настольных платформах и довольно хорошего на мобильных, используя примерно 30 костей. В идеале, держите количество костей ниже 30 для мобильных платформ и не слишком сильно уходите от 30 для настольных.
Количество полигонов, которые вам следует использовать, зависит от требуемого уровня качества и целевой платформы. Для мобильных устройств, где-то от 300 до 1500 полигонов на меш обеспечат хорошие результаты, в то время как для настольных платформ идеальный диапазон - примерно от 1500 до 4000. Возможно вам придётся понизить количество полигонов на меш, если в игре будет видно большое количество персонажей в один момент времени. Для примера, в Half-Life 2 использовалось 2500–5000 треугольников на персонаж. В современных AAA играх, работающих на PS3 или Xbox 360, у персонажей обычно 5000–7000 треугольников.
При импорте анимации узлы инверсной кинематики (IK, от Inverse Kinematic) запекаются в упреждающие кинематики (FK, от Forward Kinematics), и в результате, Unity совсем не нужны узлы IK. Однако, если они остаются в модели, то они будут потреблять ресурсы CPU, даже если они не влияют на анимацию. Вы можете удалить неиспользуемые узлы IK в Unity или в инструменте для моделирования, в соответствии с вашими предпочтениями. В идеале, во время моделирования, вам следует держать иерархии IK и FK отдельно друг от друга для упрощения удаления узлов IK при необходимости.