Gamedev Никита Осадчук
1 098

Системы автоматизации в играх (статья и видео)

Как разработчики упрощают процессы разработки
В закладки
Аудио

При создании игрового контента, будь то уровень, персонаж, анимация, или даже музыка, разработчики не редко прибегают к помощи алгоритмов, которые упрощают или вовсе освобождают их от рутинной работы. Улучшение показателей разнообразия и реиграбельности, симуляция мира, игровой физики, а также создание совершенно нового (либо варьирование созданного вручную) контента, на все это способна процедурная генерация.

Я этой статье я не буду углубляться в тонкости программирования, а лишь расскажу вам на какие хитрости идут создатели игр что бы упростить процессы разработки.

Генерация окружения

The Elder Scrolls: Arena 

Одной из первых игр использующих процедурную генерацию для построения локаций была The Elder Scrolls: Arena. Намереваясь создать большой открытый мир разработчики из Bethesda Softworks пошли на эксперимент и написали алгоритмы для автоматического генерирования ландшафта, подземелий и городов. Это позволило им создать безмерное количество второстепенных локаций и при этом освободить руки для проработки мест главного квеста.

Разработчики No Man's Sky пошли еще дальше и создали галактику, состоящую из 18 квинтиллионов вариаций планет. Все они обладают уникальной флорой и фауной и имеют свои характеристики, основанные на положении в галактике и расстояния к ближайшей звезде. Все это звучит интересно, но на деле игроки жаловались на вторичность локаций и геймплея. Как говорит один из разработчиков той же The Elder Scrolls: Arena и Dafferfall Джулиан Дженсен: «Нельзя генерировать абсолютно все, а также нет смысла создавать все от руки, нужно уметь правильно адаптировать и то и другое».

Генератор города в The Sinking City 

В еще не вышедшей игре от Frogwares, The Sinking City используется генератор города. Модули разных типов домов: богатых, разрушенных, коммерческих или вовсе хижин, соединяются в различном порядке и таким образом создается город из уникальных вариаций построек. Затем они имеют возможность настроить детали вручную.

Генерация сюжета и ситуаций

В отличии от локаций, искусственный интеллект непостоянен, непредсказуем и при взаимодействии с игроком может создавать уникальные ситуации. Он может быть частью игрового непредписанного нарратива. Таким образом разработчики игр с открытым миром, таких как GTA, уделяют большое внимание искусственному интеллекту второстепенных персонажей. Задача разработчиков GTA V состояла именно в том, чтобы создать системы поведения для NPC (что он делает, услышав стрельбу, как реагирует на игрока, как взаимодействует с другими персонажами), а не ситуации. Создав правдоподобную симуляцию поведения, разработчик оживляет мир игры и открывает игроку площадку для освоения и получения уникального игрового опыта. Скриптовые же сцены прописывают для основного сюжета.

GTA V

Анимация

При создании анимации также используются системы автоматизации, такие как Lip Sync. Это когда основная мимика лица и губ автоматически подставляется под голос персонажей. Для этого разработчикам нужно анимировать каждый отдельный слог, и скрипт подберет последовательность, основанную на записи голоса актера озвучки. Как и в других примерах процедурных техник такой подход обычно используется в играх с открытым миром, и сильно уступает в качестве Performance Capture, который используется, например, в играх от Naughty Dog.

Физика в играх отличается от нашего мира, она работает по своим правилам из-за ограничений движка или в угоду геймплею. В играх от Ubisoft, анимации, записанные с помощью захвата движения, работают параллельно с системой инверсивной кинематики(IK). Она выбирает правильное положение костей и соединений персонажа основываясь на коллизии препятствий и предметов окружения. Без этой системы руки и ноги будут проходить сквозь предметы.

IK RIG делает физику в игре более реалистичной

Система Ragdolls (Тряпичная кукла), хорошо известна тем, кто играл в GTA V. Представляет собой физику костей скелетной анимации, связанных вместе при помощи системы ограничений, которая имитирует физику реального человека. В GTA она активизируется в момент падения или смерти, а вот в Gang Beasts на этой системе построена вся анимация и взаимодействие с предметами.

Адаптивная музыка

В интерактивных медиа, таких как игры, происходящее на экране зависит от того, кто взаимодействует с ними. Невозможно написать музыку для абсолютно всех ситуаций, с которыми столкнется игрок. Поэтому во многих играх используется процедурная музыки, а именно адаптивный саундтрек. Смысл заключается в том, чтобы записать нужные инструменты, мелодии и биты, и смешивать их в зависимости от настроения того что происходит на экране. Если игрок сражается с полчищем орков, то будет играть воинственная, поднимающая дух, оркестровая музыка. Если вы путешествуете по миру, то будет играть медитативная, успокаивающая. Все должно работать на атмосферу. Адаптивный саундтрек обеспечивает плавность переходов, что создает эффект непрерывности композиции и от этого повышается уровень погружения. Вы могли слышать его, например, в No Man's Sky или Red Dead Redemption.

Что будет в будущем?

Технология Nvidia GauGAN, превращает скетчи в фотореалистичные пейзажи.

Технологии не стоят на месте и скоро в разработке будут участвовать нейросети и алгоритмы машинного обучения. Так недавно Nvidia презентовала технологию GauGAN, которая позволяет создать фотореалистичные пейзажи из скетчей. Или технология ESRGAN, которая с помощью нейросетей улучшает четкость изображения, искусственно дорисовывая детали. Фанаты игр уже испытали ее на старых играх, выпуская HD и 4K текстур-паки.

Эта статья является адаптацией сценария к видео. Спасибо за прочтение и надеюсь информация была полезной.

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Никита Осадчук", "author_type": "self", "tags": [], "comments": 13, "likes": 32, "favorites": 66, "is_advertisement": false, "subsite_label": "gamedev", "id": 49625, "is_wide": false, "is_ugc": true, "date": "Thu, 09 May 2019 18:35:26 +0300" }
Подкаст: эмоциональное
выгорание на работе
Слушать фоном🎧
{ "id": 49625, "author_id": 117769, "diff_limit": 1000, "urls": {"diff":"\/comments\/49625\/get","add":"\/comments\/49625\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/49625"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }

13 комментариев 13 комм.

Популярные

По порядку

Написать комментарий...
2

Где-то был пост про систему анимации в GTA IV. Где персонажи в падении старались защитить важные части тела, при выстреле старались зажимать рану и т.п.

Ответить
0

Эйфория называется, это замена глупому регдолу. Она есть и в гта5 и в рдр2

Ответить
1

Друже, либо у меня что-то пошло не так, либо у тебя ссылочка криво вставилась ибо ролик сразу переходит почти к концу видео. Проверь на своей стороне .
ЗЫ: Всё таки у тебя с ссылкой беда ибо "time_continue=279&" это ссылка с таймкодом .

Ответить
0

Уже заменил ссылку но с превью пропало видео)

Ответить
0

Уу, в плане правки тут уж тебе не подсоблю ..
Это тут https://dtf.ru/team/28097-kak-pravilno-oformit-vyvod-posta-v-lente-dtf-i-pochemu-vashu-zapis-mogut-otredaktirovat должны быть все основные ответы =)
ЗЫ : Поддержал лоиком на ютубе твои начинания и удваиваю тему по поводу звука ибо даже глухеньким и тупеньким вроде меня режет ушки. Тебе там кидали ссылку на видео получасовое по очистке и не совсем согласен с автором. Не стоит пока что прям аж так морочится с очисткой звука ибо подобное у тебя может просто отбить желание что-либо делать. Для начала научись просто отрезать звук "тишины" и шипения , это минутное дело. А уж потом можно будет и начать учиться как в том видео чистить звук и всё делать более по-красоте =)

Ответить
0

Спасибо) Звук то да, куплю норм микрофон

Ответить
0

Всегда пожалуйста =р

Дело даже не столько в самом микрофоне :)) Вот тут правильно человек из ролика сказал про дешёвые варианты или даже варианты записью банально на телефон . Можно и на вэбкамеру звук писать и получать что-то приемлемое для уха обывателя .
Лично мой товарищ пишет звук на что-то дико школьное, чуть-ли не на микрофон за сто гривен и вон уже пятьдесят тысяч подписчиков и не часто народ жалуется на качество звука. Это ещё и при том, что он звук подтягивает в ...не помню, короче чуть-ли не КулЭдитПро две тысячи какого-то года версии . То есть для старта и терпимого звука не нужны миллиардные МакБуки с десятком купленных софтин, студийные микрофоны , комната-студия, микшеры (или как оно называется) на столе с двадцатью крутилками и прочие вещи =)

Ответить
0

Можно название канала товарища, если не сложно?)

Ответить
0

Напиши в любой из соц.сеточек в личку лучше =)

Ответить
0

Не lyp sync, а Lip sync.

Ответить
0

Да уж, не заметил. Исправил

Ответить
0

Помню, как в ИксТри: РеЮнион построил самодостаточную базу, которая сама производила ресурсы, сама себя снабжала ими, делая более дорогие ресурсы, и так по кругу, а лишнее продавала. Вот это была автоматизация в игре =)

Ответить
0

Тоже думал что ресь будет идти про автоматизацию в играх, а статья скорее про автоматизацию в разработке игр

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Хидео Кодзима оказался алгоритмом
машинного обучения
Подписаться на push-уведомления