В Assassin's Creed Unity на 10 000 парижан приходится 40 мозгов
Вы ещё не забыли, что Unity — лучшая часть Assassin's Creed? Какая там картинка, какой паркур, который реально паркур, какие толпы на улицах, в которых реально можно раствориться. Вот про толпу я и вспомнил — про проработку NPC в играх сейчас много говорят. На GDC 2015 Ubisoft рассказала, как устроена эта толпа в Unity — это один из самых красивых обманов в играх. Круче только шлем-вагон в Fallout. В Unity на экране бывает до 10 000 человек. Думают из них максимум 40. Всё как в жизни.
Тут надо понимать, с чего Ubisoft стартовала. До Unity у движка был жёсткий потолок: 100 NPC на уровень, из них 20 гражданских, а рядом с игроком — максимум человека четыре. Толпу было просто невозможно сделать, но очень хотелось — и как быть? Решение подсмотрели в графике: там же любая далёкая модель рисуется грубо и подменяется подробной только вблизи — всем известная система LOD. Ubisoft применила тот же принцип к искусственному интеллекту — с тремя ступенями.
Прохожий в этой системе называется bulk, болванка. Дальше 40 метров — это в принципе не персонаж, не гражданин, а дешёвый меш на пару тысяч полигонов со скриптом на несколько реакций — 25 микросекунд процессорного времени. С 40 до 12 метров — марионетка: настоящая модель, но почти все системы выключены, недалеко ушла от болванки. И только ближе 12 метров лесной болван становится человеком: включаются все компоненты, физика Havok, 300 костей анимации, 20 000 полигонов. Таких одновременно не больше 40 на весь Париж!
Но интереснее тут переход. «Настоящих» NPC в игре — фиксированный пул: 160 заготовок, из них 90 в работе. Стоит приблизиться к болванке, как игра берёт из этого запаса свободного человека, делает его копией болванки — тот же меш, та же раскраска, та же шляпа, но совершенно новые мозги — и ставит на её место, а саму болванку убирает. Для игрока будто бы ничего не произошло, но на самом деле оригинального прохожего уже нет, на его месте другой — просто одетый так же. Шляпы, кстати, существуют только у «настоящих» NPC. А как отойдёшь подальше, срабатывает обратный процесс.
Ходят болванки по замкнутым маршрутам через весь Париж. Тропы прокладывает сама игра — и всегда по одному и тому же расчёту. Поэтому в коопе на четверых толпу не гоняют по сети: каждая копия строит её сама, и у всех всё сходится. Собственных мозгов у болванок нет вообще, даже крошечных. Целое стадо держит один объект — «пастух»: в нём лежат все данные, он следит за состоянием каждой болванки и считает логику сразу за всех. Пастухов по городу буквально левел-дизайнеры ручками расставляли. А у толпы, которая просто слоняется по Парижу без дела, пастух свой отдельный — один на весь город.
Ухищрения сложные, но оправданные: 230 мегабайт памяти на 2 000 болванок против 4,2 гигабайта, если бы каждая была настоящим NPC. Но вспомните ноябрь 2014-го: безлицые прохожие с плавающими в воздухе глазами и зубами, просевший фреймрейт, мемы. Ubisoft тогда говорила, что толпа тут ни при чём и уменьшать её бесполезно. Ну не знаю!
Post #1198
2.04K

- 🔥 41
- ❤ 11
- 🤔 5