Истребители багов: подсветка шлема. 13.09.2017
На этой неделе Форрест Стефан подменяет Марка Эйбента, который очень занят борьбой с багами в 3.0 и не может отвлекаться на съемки. Форрест попытается устранить ошибку, из-за которой лампы на шлеме не освещают лицо персонажа. Поскольку он все же художник, а не программист, результаты могут оказаться пугающими.
После загрузки билда игры лицо персонажа в шлемах должно подсвечиваться нашлемными лампами, но в данный момент эта функция не работает.
Форрест загружает персонажа из билда для Gamescom 2017 и сразу же обнаруживает первую проблему – в начале координат появляется источник света. При переключении на вид от 3-го лица оказывается, что под ногами персонажа появился еще один такой же источник. Это тот самый свет, который должен находиться внутри шлема и освещать лицо. Он не присоединен к костям и поэтому появляется в начале координат модели.
Форрест переключается в DataForge, чтобы узнать, как осуществляется вызов объекта источника. По пути «Helmet Item -> Entities -> SC Item -> Characters -> Human -> Armor -> Light -> Helmet -> m_light_helmet» он находит персонажа Explorer и переходит в параметры эффектов Light, где расположен активированный источник.
Разработчики переходят от простой системы эффектов к новой системе эффектов сущностей, которая лучше согласуется с другими компонентами и имеет больше опций для настройки, поэтому Форрест решает удалить старую систему, помеченную как «больше не имеющая ценности». Возможно именно она вызывает баг.
После удаления старой ветви и загрузки персонажа в тестовую сцену источник больше не появляется под ногами или в центре координат мира. Но теперь нужно вернуться в DataForge и сделать так, чтобы источник появлялся внутри шлема и освещал лицо персонажа.
В новом компоненте эффектов сущностей есть эффекты для освещения. Лучший способ прикрепить свет к персонажу – использовать слот, который напрямую связан со вспомогательными точками на шлеме. Ранее разработчики уже создали набор костей, который отображается на персонаже при загрузке, и к этим костям можно прикреплять источники света. Из всех доступных позиций сейчас нас интересует центральная нижняя. Форрест указывает источник под номером 04 в качестве параметра для переменной «Bone Attachment», затем дает ему имя, меняет температуру и некоторые другие параметры. Вся прелесть в том, что кто-то уже корректно расположил и повернул все кости на шлеме, поэтому не потребуется сильно их редактировать.
После сохранения, экспорта и загрузки тестовой сцены видно, что свет появился, но оказался очень сильным. Сам источник является точечным и всенаправленным (Point Light), а это значит, что он светит из одной точки во все стороны с одинаковой интенсивностью. Нужно сменить его на направленный источник (Directional). Для этого Форрест решает использовать текстурную проекцию.
После возвращения в DataForge Форрест меняет тип света на «прожектор» и добавляет к нему текстурную маску, которая задаст источнику верное направление свечения. Затем он настраивает дальность затухания, ширину конуса и множитель яркости и включает отбрасывание теней. После очередной загрузки тестовой сцены источник начинает светить на подбородок персонажа. По той же схеме Форрест решает добавить еще пять источников и активировать два из них (те, что находятся по бокам шлема).
После загрузки персонажа все источники работают, хотя и выглядят довольно странно. Им явно требуется дальнейшая регулировка. Форрест пытается внести изменения через DataForge в режиме реального времени без перезагрузки проекта, и это работает. Закончить настройку он решает в условиях черноты космоса, находясь на борту Constellation (в кресле пилота которого сидит персонаж Марка).
После регулировки радиуса, вращения источников и изменения других параметров художнику удается добиться приемлемого внешнего вида подсветки. На этом баг можно считать устраненным.
Источник: https://forum.star-citizen.pro