Всё начиналось с кастомных ригов. То есть с ригов, которые собирались полностью руками. С нуля. Да, возможно работало не совсем так, как надо, но зато мы пришли к пониманию того, каких моментов стоит придерживаться, где можно сократить количество костей, а где, наоборот, добавить. В данный момент, большая часть ригов персонажей основана на авториге advanced skeleton. Многие его недолюбливают — и напрасно. В основном ругают за то, что он тяжелый, много лишнего, но на самом деле, всё ненужное можно отключить при сборке рига.
"Мы активно работаем над уменьшением размера билда. Для этой цели созданы скрипты, которые проходят по всем материалам и объединяют текстуры по каналам. Так Specular Map и Emission будут упакованы в альфа-каналы NormalMap и ColorMap."
Степень сжатия альфа канала зависит от формата текстур которые используются(якрий пример 1 битная альфа, которая отвечает только за Есть Спекуляр/Нет спекуляра). Никто не мешает хранить текстуры в РГБ канале с таким же количеством бит. Поэтому некорректно приводить в пример "уменьшение размера билда" - это делается для уменьшения количества вызовов прохода рендера (DrawCall/SetPass), каналы будут браться из одной текстуры и соответственно в этом будет экономия. А чтобы экономить именно "размер билда" - гораздо эффективнее хранить спекуляры и эмиссии в файлах - которые меньше по размеру: 128*128 вместо 1024*1024(для эмиссии очень часто такого уменьшения достаточно без потери качества, со спекуляром сложнее, но он тоже поддается уменьшению без потери визуального качества от эффекта).
За АО в вертекс колоре отдельное спасибо) но можно не забывать о том что есть ещё и РГБ цвет и в него можно запекать колорблидинг, а не просто чернобелое затенение как в случае с АО.
В целом было интересно, почаще бы выкладывали подобный материал для просвещения независимых разработчиков у которых нет возможности обучаться в рамках студий :)
Мы используем текстурную компрессию с фиксированным размером на пиксель (PVRTC 4bpp, ETC2 8bpp), т.е. перенос спекуляра в альфа канал не влияет на её размер, а значит уменьшает общий. )
Для сценариев, когда нам нужно больше 2х дополнительных каналов, используем дополнительную текстуру, меньшего разрешения.
Основной шейдинг у нас однопроходный, т.е. "уменьшения количества вызовов" не происходит, максимум можно получить - выигрыш в количестве чтений из текстуры. Но, учитывая префетч, вероятность "почувствовать" его на практике очень мала.
Очень красивые персонажи. И концепция, и реализация.
Крутая статья. Арт в игре, конечно, топовый.
Хорошо и красиво сделанная игра) Прям статью приятно читать.
Ещё одна красивая, но беспонтовая гриндилка с пылесосом для бабла.
Хорошая статья. Вроде и реклама, а много полезной информации.