Как мы используем визуальные эффекты для создания атмосферы в нашем CRPG, Стеклянный дом

ANDREA MARINELLI / FLAT28Lead Technical Artist
Sep 29, 2025|6:30 Мин
Логотип для Стеклянного дома от FLAT28, созданный с помощью Unity. Лица людей отражаются в разбитом куске зеленого стекла. По часовой стрелке мы видим замаскированную фигуру с адмиральской шляпой, человека с бородой, бородатого человека в темных очках (чьи губы тянет бородатый человек), женщину с белой повязкой на глазу, еще одного бородатого человека и затененную фигуру, которая может быть монахиней. Все выглядят сердитыми.
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Гостевой блог сегодня погружается в феодальный мир Glasshouse, предстоящего CRPG от игрового коллектива FLAT28. Объявленная на gamescom, эта игра в разработке – написанная лауреатом премий писателем Джакомо Монтаньоли – обещает предоставить насыщенный нарративный опыт с высококачественной графикой. Присоединяйтесь к Андреа Маринелли, ведущему техническому художнику FLAT28, чтобы узнать, как он использует такие функции, как объемное освещение, световые фильтры и симуляция ткани для создания атмосферных окружений Glasshouse.

Введение: Установление целей дизайна

Я Андреа Маринелли, ведущий технический художник в FLAT28, с более чем 12-летним опытом в индустрии видеоигр. Я начал свою карьеру в 2013 году, работая над VR проектами; со временем я перешел на разработку для ПК и консолей, расширяя свои знания на нескольких платформах и технологиях.

С тех пор как я присоединился к FLAT28 в 2022 году, я был частью команды, разрабатывающей Glasshouse. Этот нарративный CRPG вдохновлен играми, такими как Disco Elysium и Pathologic 2. Наша цель – развивать эти основы, привнося наш уникальный взгляд на жанр.

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

И в этом блоге мы исследуем, на что обратить внимание, какие инструменты использовать и как давать нарративные подсказки игроку, не только через статические и динамические источники света, но и используя симуляцию ткани и многое другое.

Определите ключевые элементы вашей сцены и сделайте их яркими

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

Что-то такое простое, как теплый свет лампы, колеблющийся прожектор или мерцание телевизора, может многое сообщить игроку о сюжете комнаты.

В Glasshouse важно, чтобы каждая комната ощущалась целостной, но в то же время уникальной. Каждая из них должна рассказывать свою собственную историю и раскрывать что-то о персонаже, который в ней живет.

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

Скриншот из игры Glasshouse от FLAT28, сделанный с помощью Unity. Изометрический вид слабо освещенной, старомодной викторианской комнаты. Потоки света проникают в сцену слева через заколоченное окно.
Основной свет падает и подчеркивает стол, а дополнительные источники света ведут взгляд зрителя к телевизору, двери в туалет и кухне.

Реальное освещение

Сцена выше показывает комнату, которая явно пережила какое-то столкновение: бумаги разбросаны по полу, разбитое стекло, перевернутые стулья и многое другое.

Основной источник света здесь - это Spot Light, используемый для имитации солнца. Я выбрал Spot Light вместо Directional Light, потому что он не влияет на всю сцену, давая мне гораздо больше контроля над тем, что он освещает, и значительно повышая производительность для такого рода использования. Я использовал его, чтобы создать мгновенную точку интереса. Взгляд игрока сразу же привлекается к окну, где они замечают, что оно забаррикадировано. Этот свет установлен на реальное время, потому что я хотел, чтобы он отбрасывал динамические тени игрока, когда они перемещаются по пространству. Он также сочетается с реальными объемами, чтобы добавить сильный кинематографический эффект.

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

Поскольку этот свет является реальным временем, объемные лучи также обновляются динамически. Это означает, что я мог добавить дополнительные элементы, такие как 2D-спрайтовые птицы или облака, движущиеся снаружи, и объемный свет реагирует естественно, сохраняя погружение.

Скриншот из игры Glasshouse от FLAT28, сделанный с помощью Unity. Крупный план тускло освещенной, старомодной викторианской комнаты. Книги разбросаны по ковру на деревянном полу. Потоки света проникают в сцену слева через заколоченное окно.
Крупный план той же сцены с другого угла

Смешанные огни

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

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

Вы можете увидеть, как включение смешанного света подчеркивает спекулярные блики на трубах.

Запеченные огни

Хотя источники света в реальном времени и смешанные огни мощные, на них нельзя полагаться повсюду. По причинам производительности и иногда для лучшего общего качества запеченные огни были необходимы.

Я использовал несколько площадных и точечных источников света, чтобы усилить отраженное освещение там, где это было нужно. Хотя GPU Lightmapper в Unity уже рассчитывает GI и отражения света, добавление нескольких тщательно размещенных запеченных источников света помогло обеспечить соответствие внешнего вида настроению, которое я хотел.

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

Тем не менее, чтобы сцена не казалась слишком статичной, я добавил источник света в реальном времени для телевизора и использовал систему анимации Unity, чтобы создать легкое мерцание. Этот небольшой элемент сразу же добавляет жизнь и намекает на историю комнаты: возможно, кто-то смотрел, возможно, произошло что-то тревожное.

Легкое мерцание света, чтобы добавить динамичные элементы

Отражающие пробы

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

Даже с одной включенной отражающей пробой желтый цвет обоев становится видимым в отражениях на трубах в верхней части экрана.

Адаптивные объемы проб (APVs)

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

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

Скриншот из игры Glasshouse, сделанный с помощью Unity. Изометрический вид слабо освещенной комнаты с несколькими ключевыми источниками света. Слева свет проникает через оранжевую витражную панель. Две маленькие фиолетовые лампы обрамляют пустой мольберт.
Пример комнаты с сильными световыми контрастами

Симуляция ткани

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

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

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

Скриншот в редакторе из Glasshouse FLAT28, сделанный с помощью Unity. Коллайдеры добавляются к активам занавесок, размещенным в комнате с орнаментальными красными обоями. Сцена слабо освещена фиолетовой лампой и окном на заднем плане (видимым через занавеску, частично закрывающую дверь).
Я установил ограничения на верхней и правой стороне занавески, чтобы она оставалась прикрепленной к стене и не падала.

Один трюк, который мне действительно понравился, заключался в том, чтобы установить материал HDRP Lit занавески на двусторонний. Таким образом, тени и свет на передней стороне ткани также просвечивают сзади, имитируя эффект рассеяния под поверхностью. Это делает занавеску более тонкой и реалистичной, как будто свет проходит сквозь ткань.

Тени и свет отрисовываются с обеих сторон занавески, имитируя эффект подсвечивания.

Итоговые мысли

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

Список желаемогоСтеклянный дом и оставайтесь в курсе разработки игры на канале FLAT28 на YouTube. Исследуйте больше игр, созданных с помощью Unity, на нашей странице кураторов Steam и читайте мнения разработчиков игр на нашей странице ресурсов.