8.5 KiB
id, title
| id | title |
|---|---|
| platformer-effects | Свет и эффекты платформера |
Свет и эффекты платформера
Здесь разобран готовый проект examples/platformer. Чтобы сначала собрать базовую игру, откройте Платформер с нуля.
Освещение и карты поверхностей
Откройте examples/platformer, чтобы увидеть полный пример освещения. Уровень, коллизии и управление сохраняют игровой сценарий; карты поверхностей и источники показывают нормали, тени и эмиссию. F6 переключает освещение вида, F7 — обычный вид, нормали и тени. Обе клавиши зарегистрированы как действия ввода и не меняют материалы или состояние симуляции.
| Ассет проекта | Связь с картой поверхности |
|---|---|
assets/surfaces/platform.png |
Источник высоты — platform_height.png, у которого включена генерация нормалей при импорте. Полученная карта общая для платформ уровня. |
ground.png и wall.png |
Явные карты нормалей имеют приоритет; исходные карты высоты также связаны с ними для авторинга. |
runner.png |
У каждого из восьми кадров есть связь с normal-кадром в runner_n.png. Силуэт, размер и игровая точка отсчёта сохранены. |
lamp.png |
lamp_em.png — маска эмиссии. Она осветляет сердцевину лампы через lamp_lit.aemat; соседний Point light освещает другие объекты. Маска не создаёт Bloom. |
window_cookie.png |
Линейная cookie-маска задаёт форму Sprite light, не используя координаты атласа альбедо. |
Чтобы изменить поверхность платформы, откройте platform.png из Assets и перейдите по источнику высоты к platform_height.png. Включите освещённую поверхность и измените силу высоты в общем документе карты. Кандидат normal map и перемещаемый источник предпросмотра показывают результат до сохранения. Включите Play, оставьте вкладку изображения открытой и нажмите Сохранить настройки: работающий уровень получит новое подготовленное поколение нормалей. Undo возвращает прежний вид, оставляя документ метаданных изменённым, а сохранённый файл — прежним; Redo возвращает сохранённый результат. Stop возвращает неизменённую EditScene. Явная Normal-карта имеет приоритет над нормалью, полученной из Height.
Откройте runner.png, выберите существующий кадр и используйте Flip X/Y предпросмотра, чтобы проверить связанную normal map. Эти переключатели действуют только на предпросмотр; игровой скрипт задаёт FlipX при смене направления. Пиксели исходного изображения редактируются во внешнем графическом редакторе, связи каналов и настройки импорта — в общем документе ассета с историей Undo.
У игрока и врага для теней заданы отдельные полигоны LightOccluder2D. Они приблизительно повторяют голову и ноги общего спрайта, не меняя коллайдеры. Контуры статичны и не подстраиваются под кадры анимации.
Правила ролей и цветового пространства, диагностика отсутствующих ссылок и модель освещения описаны в разделах Просмотр изображений и спрайтов и Материалы и шейдеры. Native- и web-экспорты используют тот же проект и включают нормали, результат преобразования высоты, эмиссию и cookie. Подготовка демо сайта сама по себе не публикует его.
Пыль и искры
Прыгните и после приземления продолжайте бежать. Пыль появляется у ног и остаётся над местом возникновения. Выберите Player/Dust, чтобы изменить rectSize и lifetime. В scripts/player/player.aes обработчик OnLanded выпускает восемь частиц, OnJumped — пять, OnClimbed — шесть. У эмиттера выключен playOnStart, а rate равен нулю, поэтому частицы появляются по этим событиям. Player/Slash/Sparks выпускает искры по событию Hit анимации атаки.
При space=world движение эмиттера не сдвигает уже родившиеся частицы. Выберите space=local, если эффект должен двигаться вместе с родителем. Чтобы сравнить уровень с частицами и без них, переключите Эффекты частиц в настройках специальных возможностей игры. F6 и F7 управляют освещением; при сравнении оставьте их в одном положении.
У StartLantern выберите дочерний узел Smoke или Embers: это независимые источники дыма и искр. В предпросмотре Inspector можно поставить эффект на паузу, закрепить зерно и сравнить изменения до запуска игры. В разделе По ходу жизни перетащите ключ градиента и нажмите Undo, чтобы восстановить переход. Пресеты и работающий пример собраны в разделе Эффекты частиц на CPU.
Постобработка камеры
Откройте платформер в Game View и выберите Camera → Post Process. В сцене включён Bloom с Threshold 0,75, Intensity 0,22 и Radius 6. Меняйте Intensity и наблюдайте за ореолом вокруг лампы. В стеке также есть выключенные Vignette, Color Grading и пользовательский материал Cold. Включите один из них для сравнения. Во время Play откройте настройки и сравните непрозрачную часть меню при включённом и выключенном компоненте. Чтобы вернуть исходное изображение мира, выключите Post Process. F6 и F7 управляют освещением и диагностикой.
Центр задаётся относительно выхода камеры: (0.5, 0.5) — середина. Интенсивность задаёт степень затемнения, мягкость — ширину перехода. Радиус измеряется относительно короткой стороны изображения: на широком экране окружность не превращается в овал. Работающий пример приведён в разделе Постобработка.