Studio / ROBLOX
Первый дневной свет в Roblox Studio: лампы, атмосфера и видимость пути
Соберите небольшую учебную сцену, различите глобальное освещение и локальные источники, затем сравните читаемость маршрута по одному изменению. Все предложенные значения — отправная точка для будущих проверок.
1. Поставьте задачу освещению #
Первая цель — не красивое небо само по себе, а понятный путь: игрок видит край препятствия, понимает обход и узнаёт финиш. Для упражнения возьмите дневную сцену без сложного декора. Запишите три вопроса: где начинается движение, что нельзя пересечь напрямую и какой объект обозначает конец. Свет должен помогать отвечать на них с обычного расстояния камеры, а не только на увеличенном изображении в редакторе.
Это план самостоятельного прототипа; приведённые значения ещё предстоит проверить. Не переносите их целиком на большой уровень. Если финиш различим лишь по цвету, добавьте форму: например, высокий столбик с широкой верхней частью. Если препятствие сливается с полом, сначала разделите их силуэты и материалы. Освещение легче оценить, когда геометрия уже объясняет маршрут, а не требует угадывать невидимый проход.
2. Подготовьте три точки на простом полу #
В отдельном учебном place создайте ровный пол и три закреплённых объекта с именами Source, Obstacle и Finish. Предлагаемая расстановка вдоль одной оси: Source в точке (-8, 6, 0), Obstacle в (0, 3, 0), Finish в (10, 1, 0); координаты даны в studs. Для препятствия можно начать с размера (2, 6, 6), оставив свободное место для обхода. Это удобная геометрия для сравнения, а не обязательные размеры игры.
Выберите позицию наблюдения со стороны Source и запишите её. Не двигайте камеру случайно между вариантами. Посмотрите также на обход сбоку: прямой вид может скрывать маркер за препятствием независимо от света. Используйте простые непрозрачные материалы и разные формы, затем зафиксируйте исходный кадр для себя. Первая схема показывает расположение объектов и предполагаемый обход; она не вычисляет освещённость и не изображает реальный результат Studio.
3. Найдите современные настройки Lighting #
В Explorer выберите Lighting, затем откройте его свойства в Properties. Текущий выбор стиля — LightingStyle: Realistic или Soft. Для исходного варианта этого упражнения предложен Realistic; если вашему оформлению ближе Soft, запишите этот выбор и начните сравнение заново. Не ищите обязательный рецепт через старое Technology: эта настройка устарела, включая прежний маршрут Unified.
Отдельно запишите PrioritizeLightingQuality. Он задаёт приоритет качества ближнего освещения или дальности вида при снижении качества отрисовки; это не кнопка гарантированного ускорения. Пока оставьте имеющееся значение постоянным. Старый урок с Future или ShadowMap не следует механически переносить в современные свойства. Для первой сцены достаточно выбрать намерение оформления и сохранить условия сравнения, вместо поиска секретной комбинации движков и десятков переключателей.
4. Установите время и зафиксируйте солнце #
В Lighting задайте ClockTime = 13 как предлагаемое дневное начало. Проверьте связанное TimeOfDay: оно должно соответствовать 13:00:00. Это два представления одного времени сцены, а не часы компьютера. Значение само не идёт вперёд; автоматический дневной цикл — отдельная механика, которой в этом упражнении нет.
Запишите GeographicLatitude и не меняйте её одновременно со временем: положение солнца зависит и от этого параметра. Сначала посмотрите, на какую сторону препятствия падает свет и где остаётся тёмная область. Для позднейшего сравнения можно предложить ClockTime = 16, сохранив всё остальное. Сравнивайте понятность края, а не объявляйте один час лучшим для любых игр. После опыта верните исходное время, чтобы следующие шаги относились к одной и той же сцене.
5. Запишите исходную глобальную среду #
Таблица ниже — предлагаемые стартовые настройки, а не результаты измерения. Brightness у Lighting относится к глобальному солнцу и луне; у отдельной лампы одноимённое свойство относится к этой лампе. ExposureCompensation = 0 оставляет удобную отправную точку. Запишите также уже существующие эффекты и не добавляйте размытие или сияние во время первой оценки пути.
Ambient помогает освещению участков без доступа к небу, OutdoorAmbient — открытых участков при включённых глобальных тенях. Предложенная пара серых цветов сохраняет второй светлее первого; RGB здесь означает значения цветового поля, не десятичную запись Color3 для кода. Если всё превращается в белое пятно, вернитесь к исходным значениям и сравните материалы. Не лечите потерю деталей одновременным повышением яркости, экспозиции и фонового освещения: тогда исчезнет причина наблюдаемого изменения.
| Объект / свойство | Предложенное начало | Для чего записать |
|---|---|---|
| Lighting.LightingStyle | Realistic | Стиль исходного варианта |
| Lighting.ClockTime / TimeOfDay | 13 / 13:00:00 | Одно время сцены |
| Lighting.Brightness | 2 | Сравнимая общая яркость |
| Lighting.ExposureCompensation | 0 | Исходная экспозиция |
| Lighting.Ambient | RGB (70, 70, 70) | Фон в закрытых областях |
| Lighting.OutdoorAmbient | RGB (125, 125, 125) | Фон в открытых областях |
| Lighting.GlobalShadows | true | Условие глобальных теней |
| PointLight | Brightness 1.5; Range 12; Enabled true; Shadows true | Один локальный источник |
| Atmosphere (если есть) | Density 0; Haze 0; Glare 0 | Ясный атмосферный ориентир |
6. Добавьте один PointLight #
У Source подготовьте Attachment в нужной точке и вставьте в него PointLight; эта цепочка должна оставаться внутри Workspace. Выберите именно источник в Explorer. Предложенное начало: Enabled = true, Brightness = 1.5, Range = 12, Color — белый, Shadows = true. PointLight светит вокруг точки, поэтому это простой выбор для учебной лампы без направления.
Сначала сравните включённый и выключенный источник с одной позиции. В дневной сцене разница может быть небольшой: это наблюдение, а не доказательство поломки. Range задаёт расстояние в studs, а повышение Brightness не расширяет его. В нашем плане Finish расположен дальше от Source, чем предложенный радиус: не ожидайте освещения всего пути этой лампой. Если нужна другая дальность, меняйте Range отдельно и снова записывайте видимый результат, не двигая сам источник.
7. Сравните направленные альтернативы #
Для второго варианта выключите PointLight и вставьте SpotLight прямо в BasePart Source. Он направляет свет конусом; для начала предложены Angle = 60 и Range = 12. Здесь Face выбирает сторону Source; проверьте её и ориентацию самой детали. При отдельном размещении в Attachment Face выбирает его ось, поэтому учитывайте и ориентацию Attachment. Не повышайте яркость, пока не убедились, что источник смотрит туда, куда задумано.
SurfaceLight удобно сравнить на плоской панели: вставьте его в BasePart панели и выберите нужную Face. В таком размещении свет идёт с поверхности, а не из одной точки. API допускает и Attachment, где поведение ближе к SpotLight; для этого урока оставьте панель. Проверяйте варианты по очереди с одним активным источником. Если одновременно включить все три, вы потеряете возможность объяснить, какой объект осветил край препятствия и какой лишь добавил яркое пятно.
8. Отделите Neon от источника света #
Материал Neon может придать маркеру светящийся вид, но сам по себе не освещает соседний пол как PointLight. Сделайте отдельное сравнение: обычный материал Finish, затем Neon, при неизменной лампе. Смотрите и на маркер, и на поверхность рядом. Видимое сияние объекта и реальный локальный свет — разные задачи; для второй нужен соответствующий источник.
Не используйте яркий маркер вместо проверки опасного края. Игрок должен различать препятствие и обход даже если декоративное свечение выглядит слабее на другом устройстве. Если нужен светящийся знак с освещением вокруг, отдельно планируйте материал знака и лампу. Запишите назначение обоих: «узнавать финиш» и «видеть участок пола». Такой договор помогает позже менять художественное оформление, сохраняя понятность движения и не принимая красивую картинку за проверенный маршрут.
9. Добавляйте Atmosphere после ясного маршрута #
Если в Lighting есть Atmosphere, для ясной исходной точки предложены Density = 0, Haze = 0 и Glare = 0; другие его свойства сначала запишите и оставьте постоянными. Затем отдельным опытом попробуйте Density = 0.2. Следите, различим ли Finish и не сливается ли дальний участок с фоном. Значения — условия будущего сравнения, не утверждение о гарантированной видимости.
Density влияет на затуманивание объектов, Haze — на атмосферную дымку; эти свойства не заменяют Range лампы. Когда Atmosphere находится в Lighting, обычные Fog-свойства скрыты: не ищите общий перевод Density в FogEnd. Не меняйте оба подхода по случайным советам. Для первой версии не нужны сложные Glare и Decay; их взаимодействия изучают отдельно. Если атмосфера скрывает обязательный проход, сначала уменьшите её влияние либо измените геометрию ориентиров, а не добавляйте всё более яркие источники.
10. Проверьте видимость с позиции игрока #
Вернитесь к записанной позиции со стороны Source, затем пройдите предполагаемый обход и посмотрите в сторону Finish. Отделяйте три наблюдения: геометрия закрывает маркер, край слишком тёмный, дальняя форма теряется в атмосфере. Это разные причины для следующего опыта. Для закрытого маркера полезнее изменить его высоту или положение, чем усилить лампу за стеной.
Планируйте сравнение на более низком качестве и физическом телефоне позже. Не ставьте критическую подсказку только в тонкую тень: детали отрисовки могут различаться. Проверка должна спрашивать «понятно ли, куда идти», а не «совпадают ли все пиксели». Если редактор и игровой сеанс выглядят по-разному, запишите текущие свойства и проверьте, не меняет ли их логика проекта. Не делайте вывод о настройках всего Roblox по одному кадру своего прототипа.
11. Выполните сравнения без придуманных результатов #
Во второй таблице оставлены пустые фактические результаты. Перед каждой строкой возвращайте исходные условия и меняйте только указанное свойство или вариант. Для короткого отчёта достаточно записать дату, точку камеры, наблюдение и следующий шаг. Вместо «свет исправлен» пишите конкретно: «со стороны входа вижу левый край; после обхода маркер различим» — только когда вы действительно это проверили.
Если улучшение видно лишь с нового ракурса, отдельно отметьте движение камеры. Не приписывайте его настройке, которую меняли одновременно. Для проверки чужим человеком попросите найти финиш без устной подсказки, затем запишите, где он остановился. Дальнейший тест на устройстве не заменяйте просмотром схемы или редакторского кадра. До выполнения соответствующая строка остаётся пустой, а вывод относится только к уже наблюдавшимся условиям.
| Вариант | Одно изменение от исходного | Вопрос проверки | Фактический результат |
|---|---|---|---|
| A | Нет: исходные условия | Виден край и понятен обход? | |
| B | PointLight.Enabled = false | Какой участок зависел от лампы? | |
| C | PointLight.Range = 20 | Что меняется при той же яркости? | |
| D | Одна альтернативная лампа | Куда направлен SpotLight / SurfaceLight? | |
| E | Atmosphere.Density = 0.2 | Различим ли Finish с прежней позиции? | |
| F | Другое устройство или качество | Понятен путь при записанных условиях? |
12. Сохраните сцену и передайте ясный отчёт #
Отдельно сохраните учебный place и запишите вариант: положение трёх объектов, время, стиль, активный источник и параметры Atmosphere. После следующего открытия проверьте состояние, включая TimeOfDay, прежде чем продолжить сравнение. Сохранение проекта, публикация игры и проверка игрового клиента — самостоятельные этапы; этот урок не требует публикации ради первой настройки света.
Для передачи другому разработчику приложите цель маршрута, исходный вариант, одно изменение и фактическое наблюдение, если оно есть. Укажите, какие проверки ещё не выполнены. Следующий шаг выбирайте по проблеме: читаемость маршрута, тест уровня или устройство. Не объявляйте предложенные числа стандартом для всех сцен и не переносите непроверенную схему в готовую игру без оценки. Хороший итог первой работы — воспроизводимый план и понятный путь, который можно последовательно проверить.
Первоисточники
Roblox Creator Hub — Global lighting and current style controlsRoblox Creator Hub — Lighting API
Roblox Creator Hub — Technology deprecation
Roblox Creator Hub — LightingStyle options
Roblox Creator Hub — Local light sources
Roblox Creator Hub — PointLight range
Roblox Creator Hub — SpotLight direction and angle
Roblox Creator Hub — SurfaceLight parenting and emission
Roblox Creator Hub — Atmospheric effects
Roblox Creator Hub — Atmosphere and Fog interaction
Roblox Creator Hub — Neon appearance and separate illumination