아키텍처 구축

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

모듈러 방식으로 역을 구축하면 콘텐츠 업데이트를 업데이트하고 전파할 수 있었으며, 개별 메쉬, 텍스처, 부품 등을 업데이트하는 데 몇 시간을 소비하지 않도록 하는 데 중요했습니다.

Roblox 패키지는 함께 쉽게 스냅되고, 트림 시트 세트 및 노드를 공유할 수 있는 팔레트를 패키지화하여 이러한 모듈러 디자인을 달성할 수 있도록 합니다.이를 통해 조기 플레이테스트 중 레이아웃과 크기가 변경되더라도 적응할 수 있으며 역의 채우기 과정이 훨씬 빨라졌습니다.

Architecture Overview

최종 아트에 유연한 디자인

처음 시작했을 때, 우리는 역에 있으려는 것이나 50명의 플레이어를 위해 얼마나 큰 것이 필요한지에 대한 완전한 이해가 없었습니다.

그것을 파악하기 위해, 우리는 먼저 Parts를 사용하여 환경을 구축하기 시작했고, Maya 또는 Blender와 같은 외부 DCC 응용 프로그램의 회전형 모양과 같은 메쉬를 가져왔습니다.이러한 간단한 모양으로 맵의 크기, 방의 배치 및 경로를 조정하여 가장 재미있는 배치를 찾았습니다.게임이나 소셜 경험에 관계없이, 이 초기 단계는 가장 역동적입니다.

역의 레이아웃을 구축할 때 탐색을 드라이브하는 가장 중요한 일은 사용자에게 목표를 제공하는 것이었습니다.이 경우 가장 명백한 목표는 블랙홀을 더 자세히 살펴보는 것입니다.다음으로, 플레이어가 스폰에서 맵 끝까지 걸어갈 수 있기 때문에 그들에게 직접적인 길을 블랙홀로 가는 것이 지루할 것이라는 것을 알았습니다.경로를 파괴해서 플레이어가 먼저 돌아다니고 다른 것들을 보지 않고는 블랙홀에 갈 수 없게 했습니다.

모듈러 디자인을 통해 전체 디자인의 재작업 없이 환경에 이러한 변경을 적용할 수 있었습니다.역의 전체 섹션을 이동하여 다양한 게임플레이 아이디어로 플레이할 수 있습니다.궁극적으로 이러한 동일한 모듈 조각은 패키지를 사용하여 업데이트할 수 있으므로 동일한 자산의 여러 버전을 다시 빌드할 필요가 없었습니다.

Architecture Example 1 Architecture Example 2 Architecture Example 3 Architecture Example 4

Kerr-Newman DSR-14의 모듈러 디자인

우주 정거장은 모듈러 팔레트 조각 몇 개만 사용합니다.모듈러 팔레트 조각은 재사용 가능한 자산이므로 각 벽을 고유하게 만들 필요가 없고 대신 여러 작은 벽을 함께 배치할 수 있습니다.이렇게 하면 건설하는 동안 레이아웃의 유연성을 확보할 수 있습니다.

여기에는 모듈러 디자인을 만드는 데 도움이 된 몇 가지 팁이 있습니다.

  • 일관된 그리드 크기에 정착 — 역의 경우 모듈러 설정대부분을 생성하기 위해 16스터드 그리드 크기에 합의했습니다.사용하는 그리드 크기는 임의이지만 프로젝트 전체와 해당 프로젝트에서 작업하는 모든 아티스트에서 일관되어야 합니다.프로젝트 시작 시 그리드 크기에 정착하면 각 조각이 옆에 있는 조각과 잘 어울릴 수 있습니다.예를 들어, 벽 섹션을 문 섹션으로 쉽게 교체할 수도 있습니다.

  • 모든 유닛은 스터드로 가져옵니다 — Maya 또는 Blender와 같은 다른 DCC 응용 프로그램에서 메쉬를 생성할 때 Studio는 미터, 센티미터, 피트 또는 인치를 변환하지 않습니다. 단순히 스터드에서 동일한 유닛으로 교체합니다.예를 들어, 단위를 미터로 설정하면 Studio는 2미터를 2스터드로 변환합니다.선택한 응용 프로그램에서 유닛 스케일을 Roblox의 스터드 스케일로 처리하는 것이 가장 좋습니다.Roblox의 단일 스터드에 대한 가장 가까운 실제 규모는 28cm입니다.

  • 조각을 간단하게 유지하십시오 — 필요할 것으로 생각되는 모든 조각을 빌드하지 마십시오.아이디어는 몇 가지 매우 다재다능한 조각과 많은 일회성이 아닌 것입니다.가지고 있는 조각이 많을수록 각 조각을 만드는 데 걸리는 시간과 전체 메모리 및 성능 예산에 미치는 영향이 커집니다.절대적으로 필요한 경우 키트에 다른 조각을 항상 추가할 수 있습니다.

  • 패키지 사용 — 모든 모듈 조각을 패키지로 변환하고 경험에 채우기 시작하기 전에 패키지에 재료를 넣습니다.이렇게 하면 모든 인스턴스에 업데이트를 쉽게 푸시할 수 있습니다.패키지에 조금 나중에 들어갈 것입니다.

다음 스크린샷에서는 모듈러 디자인을 사용하여 역의 일부를 건설하는 다양한 방법을 보여줍니다.

Architecture Example 5 Architecture Example 6 Architecture Example 7 Architecture Example 8

트림 시트 생성

1:1 텍스처는 미래의 방법이지만 메모리 예산과 생성 시간에 관해서는 비용이 많이 듭니다.우주 정거장의 경우, 90%의 아키텍처 요소가 수평이나 세로 방향으로 배열된 교체 가능한 트림 시트 세트를 사용하여 텍스처 맵 세트를 구성했습니다.시트의 각 행이나 열에는 모델을 풀어낼 때 선택할 수 있는 다양한 표면 처리가 있는 독특한 모양이 있으며, 모두 하나의 이미지 시트를 사용하여 진행합니다.

여기에 테두리 시트를 만드는 몇 가지 팁이 있습니다:

  • 필요한 개체 및 재료 유형의 인벤토리로 시작 — 트림 시트에는 나무, 금속, 고무 등의 재료 유형에 큰 변화가 포함될 수 있습니다.첫 번째 개체를 모델링하기 시작하기 전에 트림 시트 템플릿을 만듭니다.이것은 모든 다른 트림 시트 세트의 시작점이며 모델을 풀어내는 데 빠른 시작점을 제공합니다.이러한 트림 시트는 나중에 설명할 SurfaceAppearance 노드 내에서 살아갑니다.

  • 한 장에 다양한 표면 처리를 포함하십시오 — 이렇게 하면 메쉬를 여러 메쉬로 분할할 필요 없이 새로운 처리를 적용할 수 있습니다.이렇게 하면 개체 및 재료 드로우 호출을 줄여 런타임 성능이 향상됩니다.

  • 트림 시트 템플릿 만들기 — 템플릿을 사용하면 맵 세트를 다른 것으로 교체할 수 있습니다.예를 들어, 청결한 금속 세트를 녹슨 금속 설정교체할 수 있습니다.

여기 역을 위한 트림 시트를 만드는 방법입니다:

시트가 어떻게 보여야 하는지에 대한 대략적인 개요를 만들었습니다.

Trim Sheet Example

Photoshop에서 우리는 시트의 각 트림 섹션이 어떻게 보일지에 대한 빠른 아이디어를 얻기 위해 모형을 만들었습니다.

Trim Section Example

우리는 질감을 사용했지만, 마지막 맵을 만들기 위해 원하는 응용 프로그램을 사용할 수 있습니다.이것은 서브스턴스에서 생성된 최종 트림 시트 맵입니다.모든 네 맵은 표면 모양 노드 내에서 함께 작동하여 물리적으로 렌더링된 재료(PBR)를 생성합니다.

여기에는 소재 디자이너 내부의 트림 시트의 최종 렌더링이 있습니다:

여기에는 다양한 개체에서 사용되는 동일한 트림 시트의 예가 있습니다.

Modular Trim Sheets

Trim Sheet UV 매핑에 대해 자세히 알아보려면 웹에서 주제를 검색하면 됩니다; 많은 훌륭한 자습서가 있습니다.

표면 모양 적용

SurfaceAppearance 새로운 텍스처 입력을 우리의 물리적 기반 렌더링 시스템에 지정할 수 있으며, MeshParts 색상 맵, 금속성 맵, 거칠기 맵 및 일반 맵을 포함한 메시의 모양을 재정의할 수 있습니다.또한 Roblox가 재료에서 반사를 위해 사용하는 새로운 동적 큐브맵 시스템을 사용합니다.예를 들어, 여기에는 표면 모양이 적용된 메쉬와 그 옆에 없는 메쉬의 측면 이미지가 있습니다.

Surface Appearance Example

표면 모습사용할 때 다음 팁을 염두에 두십시오:

  • 트림 맵에 투명도 정보가 포함되어 있으면 알파 모드를 오버레이에서 투명도로 변경합니다.
  • 표면 모양은 부품에서 UV 정보가 없기 때문에 맵을 적용할 수 없습니다.부품은 UV 정보 대신 세계 정렬 프로젝션을 사용합니다.메쉬 파트는 일반적으로 마야, 3ds Max 또는 블렌더와 같은 다른 앱에서 생성되며 UV 손상 정보를 포함합니다.

적용하려면 SurfaceAppearance :

  1. 탐색기에서 끝에 있는 MeshPart 또는 폴더 이름을 클릭하고 SurfaceAppearance를 검색합니다.하나 추가하면 이미 적용한 모든 BrickColor, Color, Material 및 TextureID를 재정의합니다.

  2. 노드를 고유한 무언가로 이름 바꾸기 및 검색하기 쉽도록 접미사 를 추가하세요.이 예제에서는 Metal_Trim_A_SA 을 사용했습니다.

  3. 트림 시트 맵을 가져와서 자산 관리자 패널에서 ID를 복사하고 속성 패널의 적절한 슬롯에 붙여넣으세요.여기에는 모든 맵 ID가 삽입되고 문에 적용된 Metal_Trim_A_SA 노드가 어떻게 보이는지가 표시됩니다.

Surface Appearance Example 2

패키지로 효율성 향상

패키지를 사용하면 Roblox 경험 전체에서 개체 인스턴스를 생성할 수 있으므로 패키지에 적용한 업데이트가 해당 패키지의 모든 인스턴스에 게시됩니다.스테이션에 넣은 거의 모든 개체에 패키지를 사용했으므로 조정해야 할 경우 각 배치를 찾아야 할 필요가 없었습니다.예를 들어, 패키지의 1,000개 이상의 벽 패널 인스턴스를 사용하여 패키지를 수정하여 업데이트를 즉시 게시할 수 있었습니다.

패키지를 사용할 때 다음 팁을 따르십시오:

PackageLink에서 자동 업데이트 기능을 켜십시오.모든 수정 사항은 이 기능이 활성화되면 패키지의 모든 사용에 적용되어 업데이트 전체기능을 사용해야 하는 단계를 절약합니다.

Packages Example

패키지를 사용하여 SurfaceAppearance 개체에 대한 "재료 라이브러리"를 만들 수 있습니다. 이를 통해 비트맵을 SurfaceAppearance 개체에서 수정하고 사용하는 모든 개체에 게시할 수 있습니다.다음 스크린샷은 데모 내내 사용된 마스터 재료를 보여줍니다.맵을 수정해야 하는 경우 마스터 재료를 업데이트하고 패키지를 다시 게시해야 했습니다.

Packages Example 2