Gamedev Andrey Apanasik
4 271

Секреты FoV от авторов Witchfire

Пара слов от Kacper Domański (разработчика AI в The Astronauts), которые могут порадовать некоторых ПК-игроков.

В закладки
Аудио

Kacper поделился интересной инфой о разработке с внутренней кухни, и я перевёл для своего бложика его мысли про FoV (поле зрения) и как оно работает в Witchfire.

Парни из AMD подогнали «астронавтам» сверхширокий LG монитор, оказавшимся и благословением, и проклятием.

Хорошая новость в том, Witchfire в 21:9 смотрится охренительно.

Часть про проклятье, конечно же, шутка, но подарок заставил попотеть разработчиков над рендерингом оружия, и результаты могут порадовать ПК-игроков.

FoV и с чем его едят

FoV (поле зрения) — это характеристика с которой большинство игроков шутеров знаком. Одноимённая настройка контролирует, по сути, то, что вы видите на экране и влияет на восприятие расстояния, размера и скорости игроками.

Мы меняем FoV во время игры, уменьшая его при наведении, что создаёт эффект зума, и слегка увеличивая его при спринте и броске, чтобы создать ощущение быстрого движения. В то же время (особенно большой) FoV может деформировать объекты определённым образом и влияет на производительность, поскольку на экране появляется больше объектов.

FoV 60.
FoV 90. Больше окружения / тяжелее рендеринг.
FoV 120. Ещё больше деталей на экране / ещё больше рендерить

Как раз по причине нагрузки на консолях блокируют этот параметр, чтобы обеспечить стабильный FPS. На ПК у нас обычно полный контроль над этой настройкой (в разумных пределах, безусловно).

Как может происходить деформация объектов? Например, так:

Наибольшие деформации происходят на ближайших к камере объектах — руке игрока и оружии:

Мы определённо хотим дать игрокам возможность выбрать наиболее подходящий для них вариант, но мы не тратим сотни часов на полировку вещей, которые легко поломать!

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

ADS in FoV 60. Огромное оружие, нет рук.
ADS in FoV 120. До коликов маленькая пушка, но гигантские руки.

ADS in FoV 60, как надо.

ADS in FoV 120, как надо.

К тому же, благодаря возможности у игрока выбрать положение перекрестия (в центре или пониже), изменение поля зрения может полностью нарушить перспективу. Перекрестие может быть направлено в голову врага, но сам пистолет будет нацелен в живот.

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

Первым шагом было внесение изменений в исходный код Unreal Engine, чтобы мы могли явно выбирать, хотим ли мы рендерить какую-либо модель в FoV камеры или кастомно. Затем мы немного поэкспериментировали с углом и остановились на магическом числе 77, чтобы Jakub, аниматор всех наших пушек, мог расположить их и сделать анимации, которые в конечном итоге выглядели бы точно так же, как и в его программном обеспечении.

Затем добавили щепотку матана, чтобы вращать камеру в зависимости от положения перекрестия на экране. Это позволило модели пистолета вписаться в UI; в противном случае всё ощущались бы как-то так.

Так всё и работало…пока мы не получили этот великолепный 21:9 экран и не заметили, что рендеринг оружий сломан.

Не то чтобы это было полной катастрофой, но мы хотели сделать эту часть игры идеальной. Поэтому я и изменил нашу залоченную FoV, сделал вертикальной вместо горизонтальной, и это решило проблему раз и навсегда. Не стесняйтесь спрашивать подробности в Твиттере.

В конце концов, прямо сейчас у парней полный контроль над тем, как выглядят пушки в игре, что в итоге позволит играть так, как нам удобно:

#TheAstronauts #Witchfire

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

Написать
{ "author_name": "Andrey Apanasik", "author_type": "self", "tags": ["witchfire","theastronauts"], "comments": 24, "likes": 95, "favorites": 110, "is_advertisement": false, "subsite_label": "gamedev", "id": 45899, "is_wide": false, "is_ugc": true, "date": "Sun, 07 Apr 2019 11:35:35 +0300" }
Подкаст: эмоциональное
выгорание на работе
Слушать фоном🎧
{ "id": 45899, "author_id": 1922, "diff_limit": 1000, "urls": {"diff":"\/comments\/45899\/get","add":"\/comments\/45899\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/45899"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }

24 комментария 24 комм.

Популярные

По порядку

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

То то я думал что мне этот револьвер да и игра в целом напоминают.

Ответить
1

Это не дарквотч случаем?

Ответить
4

Да он самый.

Ответить
1

Сёстры Бласковиц здорового человека?

Ответить
5

Очень жду игру,спасибо за текст.Ни у кого нет желания собрать весь накопившейся материал по игре и опубликовать его здесь,там очень много интересного

Ответить
4

Поэтому я и изменил нашу залоченную FoV, сделал вертикальной вместо горизонтальной, и это решило проблему раз и навсегда.

Иии всё оборвалось на самом интересном месте (в оригинальной статье). Так что это поменяло в техническом плане?

Ответить
2
@Suvitruf @TheAstroCrew So it basically works like cropping the picture in given axis, like here. The background itself would change (that's the camera fov) but gun was cropped :) https://t.co/uzcZekwG42
Ответить
2

Спасибо, что спросили!)

Ответить
2
@Suvitruf @TheAstroCrew When you lock fov in one axis, it has to change in the other if you change the screen ratio. The way we did it before was making the vertical fov lower with displays wider than 16:9, and that resulted in drawing smaller part of the gun than what we wanted.
Ответить
4

Ну я люблю фов 120-130. ниже я чувствую себя дискомфортно. Ниже 90 я точно не могу. Тебе как будто обрезали зрение на один глаз и самый главный минус это громная поебень с руками на пол экрана.

Ответить
2

Мне кажется, 95-100 оптимальный fov, 120 зачастую имеет эффект fish eye.

Ответить
2

Очень познавательный текст - теперь понял почему разработчики редко добавляют поддержку 21:9
Ребята молодцы - несмотря на маленькую команду все же тратят на это свои силы - буду ждать их проект

Ответить
2

В subnautica из-за fov совершенно не читался размер окружения. В итоге - акулы, которые в 2 раза больше модельки игрока, воспринимались как собаки. Громадные левиафаны тоже не так внушали.

Ответить
0

На самом деле по первому скрину и трейлеру очень похоже на Quake. По цветовой гамме и дизайну точно. Правда, не знаю, это инди-разработка или полноценный ААА? Если второе, то почему вообще никаких новостей по этому поводу не встречается уже почти год?

Ответить
4

Инди, с командой в районе 10 человек. Новостей нету, потому что игра только в 2020 выйдет.

Ответить

Комментарий удален

0

Поэтому я написал в "районе")

Ответить

Комментарий удален

1

Да эти ребята еще когда были вместе в пипл кэн флай, и сделали Пейнкиллер , который я недавно запускал, так вот он держит 21/9 идеально , без танцев с бубном, так же как и FEAR , раньше игры руками делали, а не как сейчас, юзерами приходится допиливать, блин асасссин новый пример яркий, я им пишу в тп зачем вы делаете в роликах на движке полоски, в итоге ответ - это рещение дизигн отдела, хотя они убираются хексом одним пальцем.

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

Ответить
1

Оффтоп. Прицел в режиме ADS как-то странно выглядит, почему не сделать мушку и целик?

Ответить
0

Так слишком сильно ствол перекрывает обзор, особенно при отдаче, наверное поэтому.

Ответить
0

вы между строк написали одн из главных секретов нового год оф вар

Ответить
0

Это где?

Ответить
1

узкий ФОВ для повышения производительности

Ответить
–1

Кстати интересный материал. Предлагаю разработчикам почаще такие материалы о разработке игры выкладывать - вместо всех этих скучных трейлеров и буллшотов

Ответить
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-уведомления