Найти тему
Roblox Мастерская

Сервисы в Roblox Studio: для чего они нужны и как ими пользоваться?

Любая игра состоит из множества разных элементов: игровые объекты, освещение, звуки, камера игрока и т.д. Для управления всеми этими элементами в Roblox Studio есть специальные сервисы (службы), которые находятся в окне «Explorer». В этой статье мы рассмотрим все эти сервисы. Итак, приступим.

ГЛАВНЫЕ ФУНКЦИИ СЕРВИСОВ

У каждого сервиса есть две главные функции:

1. Хранение игровых объектов и элементов определённого типа (3D-модели, визуальные эффекты, звуковые эффекты, скрипты, интерфейс и т.д.).

2. Управление определёнными свойствами внутри игры (отображение объектов, глобальное освещение, вид камеры игроков, воспроизведение звуков и т.д.).

СПОСОБЫ УПРАВЛЕНИЯ СЕРВИСАМИ

Настраивать сервисы для каждой игры можно вручную через окно «Properties» или через скрипты.

  • Для управления через окно «Properties»:

Выделяем нужный сервис в окне «Explorer» → переходим в окно «Properties» → находим нужное свойство и выставляем нужное значение этого свойства

Пример: в сервисе «Workspace» выставляю свойство «Gravity» (гравитация) на «0»
Пример: в сервисе «Workspace» выставляю свойство «Gravity» (гравитация) на «0»
  • Для управления через скрипты:*

В скрипте прописываем по порядку: название сервиса → нужное свойство → нужное значение свойства

*Названия свойств и их возможные значения можно предварительно посмотреть в окне «Properties» – они будут совпадать.

Пример: выставляю то же свойство «Gravity» на «0» через скрипт
Пример: выставляю то же свойство «Gravity» на «0» через скрипт

ЗНАЧЕНИЕ КАЖДОГО СЕРВИСА

>> Сервис «Workspace»

-4

Сервис «Workspace» управляет отображением объектов в игре и общими свойствами игрового мира (например, гравитацией в игре). Именно сюда надо помещать объекты, чтобы они были видны в игре (иначе они просто не будут отображаться).

Внутри Workspace находятся дополнительные элементы:

  • Элемент «Camera» управляет камерой игроков в игре (тип камеры, расположение камеры, поле зрения игроков и т.д.).
  • Элемент «Terrain» управляет внешним видом и физикой ландшафтных материалов в игре (цвет ландшафта, отображение растительности, скольжение поверхности, поведение воды и т.д.).

>> Сервис «Players»

-5

Сервис «Players» управляет информацией об игроках, подключённых к игре. Когда игрок заходит в игру, то его аватар появляется внутри этого сервиса. Такая информация может использоваться для разных игровых целей: сохранение внутриигровых достижений игрока (набранных очков, денег, предметов в инвентаре и т.д.), начисление внутриигровых достижений игроку, проверка условий для совершения каких-либо действий в игре (например, наличие достаточного количества денег для покупок в игровом магазине) и т.д.

>> Сервис «Lighting»

-6

Сервис «Lighting» управляет глобальным освещением в игре: время суток, яркость и контрастность освещения, тени от объектов и т.д.

Внутри Lighting находятся дополнительные элементы:

  • Элемент «Atmosphere» управляет атмосферными эффектами в игре: туманность, свечение от солнца и луны, оттенки атмосферы.
  • Элемент «Sky» управляет небесными объектами в игре: вид солнца, луны, неба и количество звёзд на небе. Именно здесь можно заменить скайбокс в игре.
  • Элемент «Bloom» управляет эффектом размытия яркого света в игре.
  • Элемент «DepthOfField» управляет эффектом размытия заднего фона в игре.
  • Элемент «SunRays» управляет уровнем свечения солнечных лучей в игре.

>> Сервис «MaterialService»

-7

Сервис «MaterialService» управляет соответствием названия материалов и их фактическими значениями. То есть здесь можно одному материалу присвоить значение другого материала. Но делать этого не стоит, чтобы не запутаться в изменённых материалах.

>> Сервис «ReplicatedFirst»

-8

Сервис «ReplicatedFirst» управляет загрузкой первоначальных элементов игры. Сюда помещают объекты и скрипты, которые должны загружаться в игре самыми первыми (например, загрузочный экран игры).

>> Сервис «ReplicatedStorage»

-9

Сервис «ReplicatedStorage» управляет хранением объектов, доступ к которым можно получить через серверные (Script) и локальные (LocalScript) скрипты. Пока объект находится в этом хранилище, он не будет отображаться в игре. Также здесь обычно хранят модульные скрипты (ModuleScript), удалённые функции (RemoteFunction) и удалённые события (RemoteEvent) – это нужно для скриптинга сложных взаимодействий между игрой и игроками.

>> Сервис «ServerStorage»

-10

Сервис «ServerStorage» управляет хранением объектов, доступ к которым можно получить только через серверные (Script) или модульные (ModuleScript) скрипты. Пока объект находится в этом хранилище, он не будет отображаться в игре. Здесь рекомендуется хранить большие игровые объекты (например, здания или целые локации), которые должны появиться в игре только в определённый момент (так игра будет быстрее загружаться и меньше «тормозить»).

>> Сервис «ServerScriptService»

-11

Сервис «ServerScriptService» управляет хранением серверных скриптов (Script). Именно сюда рекомендуется добавлять скрипты общего действия для глобальных событий в игре: автоматическая смена суток, игровая логика, ведение игровой статистики, сохранение внутриигровых достижений игроков и т.д.

>> Сервис «StarterGui»

-12

Сервис «StarterGui» управляет созданием и хранением пользовательского интерфейса в игре (игровое меню, кнопки на экране, иконки для отображения внутриигрового состояния игрока и т.д.).

>> Сервис «StarterPack»

-13

Сервис «StarterPack» управляет начальным инвентарем игроков в игре (то есть предметами, которые будут находиться в рюкзаке игроков при старте игры). Помещённые сюда объекты автоматически копируются всем игрокам в начале игры и не пропадают из рюкзака после смерти игроков. Объект должен быть определённого типа – «Tool» (это объекты, которые игроки могут брать в руки).

>> Сервис «StarterPlayer»

-14

Сервис «StarterPlayer» управляет основными характеристиками игроков в игре: скорость передвижения, высота прыжка, отображение имени и здоровья, поле зрения и т.д.

Внутри StarterPlayer находятся дополнительные элементы:

  • Элемент «StarterCharacterScripts» управляет хранением локальных скриптов (LocalScript), которые выполняются каждый раз после возрождения игрока в игре.
  • Элемент «StarterPlayerScripts» управляет хранением локальных скриптов (LocalScript), которые выполняются один раз для каждого игрока в игре.

>> Сервис «Teams»

-15

Сервис «Teams» управляет созданием команд игроков в игре. Объекты «Team», которые представляют разные команды в игре, могут храниться только внутри этого сервиса (иначе они не будут работать в игре).

>> Сервис «SoundService»

-16

Сервис «SoundService» управляет параметрами воспроизведения звуков в игре: добавление звуковых эффектов, расстояние слышимости звуков, плавность воспроизведения звука и т.д.

>> Сервис «Chat»

-17

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

>> Сервис «TextChatService»

-18

Сервис «TextChatService» управляет общими настройками окна чата в игре.

Внутри TextChatService находятся дополнительные элементы:

  • Элемент «ChatWindowConfiguration» управляет внешним видом окна чата в игре между игроками.
  • Элемент «ChatInputBarConfiguration» управляет внешним видом строки ввода текста для чата.
  • Элемент «BubbleChatConfiguration» управляет основными настройками окна чата в игре: вид текста, вид фона, положение окна, расстояние видимости окна и т.д.

>> Сервис «LocalizationService»

-19

Сервис «LocalizationService» управляет автоматическим переводом текста в игре на другие языки. Сами параметры перевода отдельно указываются в настройках игры.

>> Сервис «TestService»

-20

Сервис «TestService» управляет тестированием игры внутри Roblox Studio для выявления технических ошибок и проблем оптимизации.

***

Это все сервисы, которые доступы в окне «Explorer». Ещё есть дополнительные сервисы, которыми можно пользоваться только через скрипты. О них мы поговорим в отдельных статьях, где будем писать скрипты для конкретных игровых механик.

Если хотите что-то добавить, спросить или высказать своё мнение, то пишите это в комментариях.