데이터 모델

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

모든 장소는 플레이스대한 모든 것을 설명하는 개체의 계층으로 구성된 데이터 모델로 나타납니다.데이터 모델에는 부품, 지형, 조명 및 기타 환경 요소로 구성된 3D 세계의 모든 개체가 포함됩니다.또한 속성을 수정하는 스크립트, 메서드 및 함수를 호출하고 동적 행동과 상호 작용을 가능하게 하는 이벤트에 응답하는 런타임 행동을 제어할 수 있는 개체도 포함합니다.

Roblox 엔진은 플레이스상태에 대한 진실의 근원으로 데이터 모델을 사용하므로 클라이언트 장치에서 시뮬레이션하고 렌더링할 수 있습니다.Roblox 엔진이 데이터 모델을 해석하는 방법에 대한 자세한 정보는 클라이언트-서버 런타임에 참조하십시오.

개체

Roblox에서 장소를 설명하기 위해 데이터 모델에 개체를 배치하고 구성합니다.Roblox의 모든 개체는 모든 개체에 공통된 일반적인 속성, 메서드 및 이벤트를 정의하는 Instance 클래스를 상속합니다.개체는 개체가 제공하는 기능에 따라 자체 특성을 정의합니다.다양한 용도를 가진 많은 개체 범주가 있지만, 일반적으로 부품과 스크립트라고 하는 BasePartLuaSourceContainer 개체와 자주 작업합니다.

Roblox 엔진의 모든 기능에 대한 포괄적인 목록은 참조 문서에서 확인하십시오.

3D 빌딩 블록

BasePart 은 세계의 물리적으로 시뮬레이션된 3D 빌딩 블록의 핵심 클래스입니다.위치, 크기 및 방향과 같은 속성을 가진 모든 물리적 개체에 공통된 속성과 메서드를 정의합니다.

개체설명
Part블록, 볼, 실린더, 쐐기 또는 모서리 쐐기의 모양을 취할 수 있는 기본 부품 입니다.
MeshPartMaya 또는 Blender와 같은 3D 모델링 소프트웨어에서 가져온 메쉬.
TrussPart캐릭터가 사다리처럼 올라갈 수 있는 트러스 빔.

이론적으로 간단한 부품만 사용하여 완전히 기능적인 Roblox 경험을 만들 수 있지만, 메쉬를 가져와 솔리드 모델링을 통해 기본 부품을 더 복잡한 개체와 구조로 결합할 가능성이 높습니다.

스크립트

플레이스3D 세계에 상호 작용과 동작을 추가하고 스크립트로 논리를 정의할 수 있습니다.Luau 프로그래밍 언어로 스크립트를 작성하여 부품 이동, 다른 스크립트 호출 및 이벤트 응답과 같은 작업을 수행합니다.Roblox는 클라이언트-서버 모델로 작동하기 때문에 서버, 클라이언트에서 스크립트를 실행하거나 네트워크 경계를 넘어 통신할 수 있습니다.

  • A Script 개체는 서버에서만 실행할 수 있는 스크립트를 나타냅니다.
  • A LocalScript 개체는 클라이언트에서만 실행할 수 있는 스크립트를 나타냅니다.
  • A 개체는 서버와 클라이언트 스크립트 모두에서 재사용할 수 있는 스크립트를 나타냅니다.

스크립트가 올바르게 동작하려면 데이터 모델의 올바른 컨테이너에 배치해야 합니다.자세한 내용은 서버클라이언트 섹션을 참조하십시오.

개체 조직

데이터 모델을 구성하는 방법에는 많은 유연성이 있지만, Roblox 엔진은 특정 컨테이너 서비스에 특정 개체를 기대하며, 이는 특정 동작을 가지고 있으며 포함하는 개체의 동작에 영향을 줄 수 있는 개체입니다.컨테이너 서비스의 주요 범주는 다음과 같습니다:

또한 다음 개체로 개체를 더 구성할 수 있습니다:

  • 폴더 - A Folder는 조직 목적을 위한 것이며 어떤 동작도 정의하지 않습니다예를 들어, 폴더를 사용하여 서버 스토리지의 스크립트 세트와 유사한 개체를 그룹화할 수 있습니다.
  • 모델 - A Model 은 의자, 테이블 및 램프가 포함된 책상 세트를 그룹화하는 것과 같은 부품의 기하학적 그룹화를 주로 목적으로 합니다.더 복잡한 세트를 구성하려면 모델 내에 모델을 중첩할 수도 있습니다.

작업 공간

Workspace 는 플레이스3D 세계를 구성하는 모든 개체를 포함합니다.기본 부품, 메쉬 부품 및 모델과 같은 3D 세계를 사용자 지정하기 위해 작업 영역에 개체를 추가할 수 있습니다.클라이언트는 이 컨테이너에 나타나는 모든 것과 그 외부의 아무것도 렌더링하므로 사용자가 귀하의 플레이스보고 상호작용하는 것을 제어할 수 있습니다.실제로 렌더링되지는 않지만, 연결된 부품과 모델에 부모로 지정된 스크립트를 추가할 수도 있습니다.기본적으로 작업 영역은 TerrainCamera 개체로 미리 채워집니다.

카메라

Camera 클라이언트가 3D 세계를 보는 방법을 결정합니다.기본적으로 작업 공간에는 하나의 카메라가 있지만, 다양한 관점과 뷰를 만들기 위해 여러 카메라 개체를 추가할 수 있습니다.모든 클라이언트는 이러한 설정을 가져와 서버가 직접 수정할 수 없는 자체 카메라 뷰를 생성합니다.

예를 들어, 카메라를 설정하여 사용자 이동을 따르거나 특정 위치에 고정할 수 있습니다.시야, 거리 및 각도를 조정하여 사용자가 3D 세계를 보는 방법에 대한 다양한 시각적 효과를 만들 수도 있습니다.

자세한 내용은 카메라 사용자 정의를 참조하십시오.

지형

Terrain 는 장소에 대한 풍경을 만들 수 있게 해줍니다.지형에 재료를 적용하여 잔디, 물, 모래 또는 사용자 지정 재료와 같은 원하는 자연 환경을 시뮬레이션할 수 있습니다.3D 세계에 대해 하나의 지형 개체만 가질 수 있고 그 지형에 한 재료를 적용할 수는 있지만, 지형 편집기를 사용하여 지형의 영역을 편집할 수 있습니다.

자세한 내용은 환경 지형을 참조하십시오.

환경

조명과 음향 효과는 3D 세계를 훨씬 더 몰입감 있고 현실감 있게 만들 수 있습니다.이러한 효과를 플레이스추가할 필요는 없지만, 시각적으로나 청각적으로 더 매력적으로 만들 수 있습니다.

조명

Lighting 에는 대기 효과를 시뮬레이션하기 위한 Atmosphere 또는 환경에서 태양, 달, 별을 변경하기 위한 Sky와 같은 장소의 전체 조명 설정을 제어하는 개체가 포함되어 있습니다.

자세한 내용은 조명을 참조하십시오.

소리

는 배경 음악이나 환경 음향 효과를 위해 자식 개체의 볼륨 및 재생 설정을 제어할 수 있습니다.

자세한 내용은 음향을 참조하십시오.

복제

복제 는 서버가 연결된 모든 클라이언트와 장소의 상태를 동기화하는 프로세스입니다.Roblox 엔진은 많은 경우 서버와 클라이언트 사이에서 데이터, 물리 및 채팅 메시지를 지능적으로 자동으로 복제하지만, 특정 컨테이너에 배치하여 복제할 특정 개체를 지정할 수도 있습니다.

복제 첫 번째

ReplicatedFirst 에는 클라이언트가 귀하의 플레이스참여할 때 복제하려는 개체가 포함되어 있습니다.일반적으로 클라이언트 측 개체 LocalScript 및 스크립트와 관련된 개체와 같이 플레이어를 초기화하는 데 필수적인 개체를 포함합니다.이 컨테이너의 모든 콘텐츠는 서버에서 클라이언트로 한 번만 복제됩니다.

복제된 저장소

ReplicatedStorage 에는 서버와 연결된 클라이언트 모두에서 사용할 수 있는 개체가 포함되어 있습니다.클라이언트에서 발생하는 모든 변경 사항은 유지되지만 서버에 복제되지 않습니다.서버는 클라이언트의 변경 사항을 덮어쓰여 일관성을 유지할 수 있습니다.이 컨테이너는 일반적으로 서버 측과 클라이언트 측 모두에서 공유되고 액세스해야 하는 개체에 사용됩니다.또한, 필요할 때까지 3D 세계에 존재할 필요가 없는 개체를 복제하기 위해 이 컨테이너를 사용할 수 있습니다, 예를 들어 모든 들어오는 캐릭터 모델에 대한 클론 및 부모 작업을 위한 ParticleEmitter입니다.

복제가 작동하는 방법에 대한 자세한 정보는 클라이언트-서버 런타임을 참조하십시오.

서버

데이터 모델은 클라이언트에 결코 복제되지 않는 서버 측 전용 개체에 전용 컨테이너를 정의합니다.이렇게 하면 서버가 클라이언트 행동과 상태에 영향을 미치면서 클라이언트에 서버의 개체와 논리를 노출시키지 않습니다.

서버스크립트 서비스

ServerScriptService 에는 Script 개체, ModuleScript 서버 스크립트에 필요한 개체 및 서버용으로만 사용되는 기타 스크립트 관련 개체가 포함되어 있습니다.스크립트에서 다른 비스크립트 개체가 필요한 경우, ServerStorage 에 배치해야 합니다.이 컨테이너의 스크립트는 클라이언트에 결코 복제되지 않으므로 안전한 서버 측 논리를 사용할 수 있습니다.

서버 스토리지

ServerStorage 은 서버 사용에만 적합한 개체를 포함합니다.이 컨테이너를 사용하여 런타임에 작업 영역이나 다른 컨테이너에 복제하고 부모로 지정하려는 개체를 저장할 수 있습니다.예를 들어, 맵과 같은 큰 개체는 필요할 때까지 이 컨테이너에 저장하고 필요할 때만 작업 영역으로 이동할 수 있습니다. 이렇게 하면 초기 조인 시 클라이언트 네트워크 트래픽을 줄일 수 있습니다.

클라이ент

클라이언트 컨테이너 서비스는 연결된 모든 클라이언트에 복제되는 개체를 위한 것입니다.이 카테고리의 컨테이너는 연결된 모든 클라이언트에 복제되며 일반적으로 3D 개체와 관련된 LocalScript 개체를 포함합니다.이러한 컨테이너에 저장하는 모든 개체는 세션 간에 비영구적이며 클라이언트가 다시 참여할 때마다 재설정됩니다.플레이어 GUI, 클라이언트 사이드 스크립트 및 클라이언트에만 관련된 다른 개체와 같은 이러한 컨테이너에 개체를 넣을 수 있습니다.

클라이언트가 서버에 연결할 때, Players 컨테이너 서비스가 귀하의 장소에 참여하는 사용자를 수신하고 모든 클라이언트에 대해 Player 개체를 생성합니다.서버는 편집 데이터 모델의 클라이언트 컨테이너에서 개체를 런타임 데이터 모델 내의 해당 위치로 복사합니다. Players 개체 내에서.다음 표에서는 컨테이너에 있는 원래 컨테이너와 클라이언트에 복사되는 결과 컨테이너를 설명합니다.

데이터 모델 편집런타임 데이터 모델노트
StarterPack플레이어.백팩플레이어의 인벤토리를 설정하고 일반적으로 Tool 개체를 포함하는 스크립트지만 종종 로컬 스크립트도 포함합니다.
StarterGui플레이어.PlayerGui플레이어의 로컬 GUI를 관리할 수 있는 스크립트.플레이어가 재생성되면 PlayerGui의 콘텐츠가 비워집니다.서버는 StarterGui 내의 개체를 PlayerGui에 복사합니다.
StarterPlayerScripts플레이어.PlayerScripts클라이언트용 일반 목적 스크립트.예를 들어, 특정 조건이 충족되면 클라이언트에 특수 효과를 생성하려면 이 컨테이너에 로컬 스크립트를 배치하여 수행할 수 있습니다.서버는 이 컨테이너에 액세스할 수 없습니다.
StarterCharacterScripts선수.캐릭터스크립트는 플레이어가 재생성될 때 클라이언트에 복사됩니다. 이러한 스크립트는 플레이어가 재생성될 때 유지되지 않습니다.
ReplicatedFirst이 컨테이너의 콘텐츠는 다른 무엇보다 먼저 모든 클라이언트에 복제(하지만 서버에 다시 복제되지는 않음)됩니다.

채팅

TextChatService

TextChatService는 채널 관리, 메시지 장식, 텍스트 필터링, 명령 생성 및 사용자 지정 채팅 인터페이스 개발과 같은 다양한 경험 내 텍스트 채팅 작업을 처리하는 서비스를 나타냅니다.

자세한 내용은 경험 내 텍스트 채팅 시스템을 참조하십시오.

음성 채팅 서비스

VoiceChatService는 다른 사용자와 얼마나 가까이 있는지에 따라 실제 통신을 시뮬레이션하는 근접 기반 음성 채팅 기능을 나타냅니다.이 서비스를 사용하여 기능을 끄기끌 수 있습니다.

자세한 내용은 음성 채팅을 참조하십시오.

폴더 및 모델

데이터 모델에서 개체를 그룹화하기 위한 두 가지 주요 방법이 있습니다: 폴더모델 .둘 다 개체용 컨테이너이지만 목적이 다릅니다.

  • 폴더 는 로비나 전투 아레나와 같은 환경의 섹션을 저장하는 데 가장 적합합니다.
  • 모델 은 의자, 테이블 및 램프가 포함된 책상 세트와 같은 개체 세트에 사용됩니다.더 복잡한 세트를 구성하려면 모델 내에 중첩 모델을 배치합니다.

항상 개체의 이름을 기술적으로 지정해야 합니다. 이렇게 하면 나중에 필요할 경우 개체를 쉽게 찾고 수정할 수 있습니다.

The Explorer window with a demonstration of a folder organization structure.
개체가 조직된 경로 Folders
The Explorer window with a demonstration of a model organization structure in several services.
다양한 "맵" 모델을 교환하여 WorkspaceServerStorage 사이에 배치합니다.