레이어드 의류는 거의 모든 아바타가 다른 레이어드 의류와 조합하여 착용할 수 있는 3D 의류 및 액세서리를 만들 수 있게 해줍니다. 레이어드 의류는 아바타의 몸과 다른 레이어드 의류 아이템 위에 자연스럽게 늘어나며 클리핑이나 파손 없이 착용됩니다.
우리는 여러분이 만들고 있는 레이어드 의류를 맞출 수 있는 기본 바디 캐릭터를 만드는 것을 추천합니다. 이를 외부 DCC 애플리케이션에서 어떻게 하는지 살펴보고, 스튜디오에서 모든 것을 결합하여 우주 정거장에서 최종 캐릭터를 만드는 방법을 설명하겠습니다.
커스텀 캐릭터 만들기
우리는 게임의 사용자들이 어떤 불안한 사건을 조사하기 위해 정거장에 파견된 사람을 구현하기를 원했습니다. 초기에는 실제 캐릭터가 무엇이 될지, 여러 유형의 캐릭터가 있을지 확신이 없었지만, 우리는 그들이 우주복을 입기를 원했습니다. 그래서 우리는 의류를 별도의 구성 요소로 만들어 디자인의 유연성을 허용하기로 결정했습니다.
결국 우리는 "방문자"라는 이름의 단일 캐릭터 디자인으로 정착했지만, 레이어드 의류 덕분에 주요 캐릭터를 만들면서도 의류를 마켓플레이스에 모듈형 구성 요소로 출시할 수 있었습니다. 창작자로서 여러분도 곧 같은 일을 할 수 있을 것이니, 우리가 어떻게 했는지 따라와 주세요.

기본 바디 만들기
기본 바디는 본질적으로 레이어드 의류 시스템의 가장 낮은 레이어입니다. 이는 우리의 캐릭터가 속옷을 입고 있는 몸일 수도 있고, 물고기 인간일 수도 있으며, 심지어 블록형 아바타일 수도 있습니다.
레이어드 액세서리 체크리스트:
- 바디 지오, 케이지 파트 및 스켈레톤은 표준 R15 스키마를 준수해야 합니다.
- 바디 케이지는 Roblox에서 제공하는 케이지를 사용해야 합니다.
- 케이지는 바디 지오와 동일한 수의 파트를 가져야 하며, 접미사 _OuterCage를 사용해야 합니다.
- LeftUpperArm_Geo (메시)
- LeftUpperArm_OuterCage (케이지)
- 각 파트의 폴리 예산은 10,000 삼각형을 초과할 수 없습니다.
- 캐릭터 크기는 2000×2000×2000 유닛을 초과할 수 없습니다.
모델 만들기
레이어드 의류는 물고기 인간, 바위 골렘 또는 인간 우주 탐험가 등 거의 모든 종류의 몸에 맞게 의류를 착용할 수 있게 해줍니다. 유일한 요구 사항은 이들이 두 발로 걷는 인간형이어야 한다는 것입니다.
캐릭터를 중립적이고 자연스러운 포즈로 모델링해야 합니다. 이는 애니메이션 시 더 넓은 범위의 움직임을 허용하며, 또한 움직임의 방향성을 암시합니다. 방향성 암시는 캐릭터의 스켈레톤을 구축할 때 관절이 자연스럽게 구부러져야 하는 방향을 알 수 있도록 약간 구부러져 있어야 함을 의미합니다. 다음 예제는 팔과 다리에 아주 작은 굴곡을 보여줍니다. 우리는 또한 손을 자연스러운 자세로 포즈를 취하게 하여 게임에서 아이템이나 장비를 잡을 수 있도록 했습니다.

캐릭터의 실루엣, 즉 형태는 멀리서 다른 플레이어가 쉽게 구별할 수 있어야 하며, 이는 멀티플레이어 게임에서 중요합니다. 이는 혼란을 줄이고 많은 일이 일어날 때 안전한 것과 위험한 것을 사용자에게 알리는 데 도움이 됩니다.


기본 캐릭터에 대한 중요한 점: 이는 플레이어 아바타이므로, 우리는 결국 바디와 의류를 마켓플레이스에 출시하고 싶었기 때문에 여전히 표준 R15 스키마를 따라야 합니다. 여기에는 바디가 15개 파트로 분리되어 있어야 한다는 것이 포함됩니다.


부품이 여전히 연속적으로 보이도록 하려면 메시 구성 요소의 끝을 캡하고 애플리케이션을 사용하여 바디 파트 "이음새" 사이의 정점 노멀을 "평균화"하는 것이 좋습니다. 이렇게 하면 바디 파트 양쪽의 두 정점이 표면 노멀과 관련하여 하나로 취급됩니다.


텍스처
캐릭터에 텍스처를 입히면 원하는 모습에 따라 생명을 불어넣을 수 있습니다. 우주 정거장을 위해 우리는 주변과 유사한 수준의 사실성을 가진 캐릭터를 원했으며, 다음과 같은 캐릭터로 정착했습니다:

이제 스튜디오에 텍스처를 가져오고 캐릭터가 멋지게 보이고 게임에 잘 맞도록 하는 방법을 살펴보겠습니다.
텍스처링 전에 캐릭터 관절을 움직이고 포즈를 취하여 모델이 잘 변형되는지 확인하기 위해 움직임 테스트를 수행했습니다. 텍스처링 전에 움직임 테스트를 수행하는 것이 항상 필요한 것은 아니지만, 텍스처에 몇 시간을 투자하기 전에 모델에서 놀라운 점을 발견하는 데 도움이 됩니다. 그 후 우리는 리그를 메시에서 분리(언바인드)하여 텍스처링에 집중했습니다. 캐릭터가 리그에 바인딩된 후에는 텍스처 작업이나 애니메이션을 넘어서는 작업을 하는 것이 바람직하지 않습니다.

마켓플레이스를 위한 피부 톤 조절을 가능하게 하기 위해 우리는 셔츠, 반바지, 장갑 및 부츠와 같은 영역을 완전히 불투명하게 만들었습니다. 그러나 노출된 피부가 있는 영역에는 부분 투명성을 사용하여 피부 톤에 세부 사항을 추가할 수 있도록 하되, 완전히 덮이지 않도록 했습니다. 이를 통해 우리는 스튜디오의 현재 조명이 할 수 있는 것 이상으로 해부학적 특징을 향상시킬 수 있었습니다.

다음 이미지는 색상(알베도), 금속성, 거칠기 및 노멀 맵을 보여줍니다.




다음 이미지는 스튜디오에서 피부 톤 투명성이 작동하는 모습을 보여주며, 투명성과 피부 톤 색상이 적용된 동일한 색상 맵을 보여줍니다.




케이지
기본 바디를 설정한 후, 레이어드 의류가 그 위에 맞도록 케이지를 만들어야 했습니다. 케이지는 의류와 바디가 상호작용하는 방식입니다. 바디와 의류는 동일한 케이지를 가지며, 사용자가 의류의 핏을 정의하기 위해 변형합니다. 바디 케이지는 의류에 캐릭터의 형태를 알려주며, 메시 자체의 세부 사항은 포함하지 않습니다. 의류의 내부 케이지는 의류의 핏이 얼마나 타이트한지를 정의합니다.
케이지를 맞추는 첫 번째 단계는 현재 외부 DCC 애플리케이션 내에서 수행해야 합니다. Roblox에서 제공하는 케이지를 사용하여 시작할 수 있습니다.
바디의 케이지는 의류의 케이지와 대체로 동일하지만, 최종 결과는 15개 파트(각각 바디 파트 메시와 대응하는)로 구성된 케이지입니다. 아래는 "편집 가능한" 케이지로, 단일 메시, "편집 가능한" 케이지를 편집하여 변형된 케이지 파트 및 메시 자체입니다.

케이지를 처음 시작할 때, 캐릭터와 일치하지 않을 가능성이 높으므로 "편집 가능한" 케이지 또는 직접 파트를 조정하여 바디 메시의 외부 경계에 맞춰야 합니다. 의류와 마찬가지로 외부 케이지는 항상 바디 메시의 외부에 맞아야 하며, 의류가 바디의 형태를 알 수 있도록 해야 합니다. 의류에는 이 외부 케이지에 의류를 "스냅"하는 "쌍둥이" 케이지가 사용됩니다(아래에서 더 자세히 설명하겠습니다).

우리는 외부 케이지가 피부를 덮도록 하되, 장갑과 부츠는 덮지 않기로 결정했습니다. 그 외의 영역에서는 케이지가 바디 외부에 최대한 잘 맞도록 하며, 얼굴 케이지가 얼굴 특징의 거리와 형태에 맞도록 조정되었습니다.




스킨
캐릭터에 스킨을 입히는 것은 커스텀 캐릭터와 유사하게, 환경을 이동할 때 캐릭터가 유기적으로 구부러지고 비틀어지도록 합니다. 우리는 캐릭터 메시가 스튜디오에 올바르게 가져와지도록 하기 위해 다음과 같은 지침이 유용하다는 것을 발견했습니다:
개별 관절과 뼈는 고유한 이름을 가져야 합니다.
메시에는 스킨/바인딩 전에 변형이 없어야 하며, 즉 변형은 0이고 스케일은 1이어야 합니다.
메시 노멀은 바깥쪽을 향해야 하며(모델이 안쪽을 바라보지 않아야 함),
스켈레톤에는 스케일 팩터가 없어야 하며, 모든 관절은 [1, 1, 1]이어야 합니다.
이 캐릭터의 스킨 작업은 관절 수의 제한으로 인해 다소 어려웠지만, 우리가 수행한 작업에서 몇 가지 메모는 다음과 같습니다:
명확한 해부학을 가진 인간의 스킨을 입힐 때는 구부러짐이 자연스럽게 보이도록 가중치를 칠하는 것이 가장 좋습니다. 예를 들어, 팔을 위아래로 움직일 때 어깨 근육이 늘어나거나 압축되는 것입니다.


인간의 스킨 작업에서 또 다른 일반적인 문제는 스킨 작업 기본값이 종종 "너무 부드럽다"는 것입니다. 즉, 팔꿈치와 무릎과 같은 영역에서 영향이 너무 많이 분산됩니다. 이들은 더 조밀하게 칠하는 것이 가장 좋습니다. 그래야 다리/팔이 구부러질 때 압축되지 않습니다.


마지막으로, 모델이 15개 파트로 나뉘어져 있기 때문에, 파트 간의 이음새가 가중치 측면에서 1:1이 되도록 해야 합니다. 대부분의 애플리케이션에서는 한 정점에서 다른 정점으로 영향을 복사하여 정확히 동일한 가중치를 가질 수 있도록 합니다.


장갑과 부츠
기본 바디에서 알 수 있듯이, 우리는 장갑과 부츠를 포함하기로 결정했습니다. 다음과 같은 이유로 여러분도 일시적으로 이렇게 할 수 있습니다:
우리는 장갑이 레이어드 의류 수트의 일부가 되기를 원했지만, 현재 레이어드 의류 기능에서는 장갑이 지원되지 않기 때문에, 초기 모델의 손을 장갑이 있는 모델로 교체했습니다.
우리는 신발의 금속 링이 단단하고 발과 다리에 맞게 변형되지 않기를 원했기 때문에, 초기 모델의 발을 부츠가 있는 모델로 교체했습니다.

레이어드 의류가 부츠나 장갑 주위에 맞지 않도록 하기 위해, 우리는 의류 내부에 케이지를 의도적으로 유지했습니다. 이는 우주복의 상단과 하단이 손과 발에 맞게 변형될 수 있도록 합니다.

수트 만들기
프로세스 초기에 우리는 수트가 여러 캐릭터에 맞도록 하고, 다른 사람들이 의류를 즐길 수 있도록 자산을 마켓플레이스에 출시하기로 결정했습니다. 레이어드 의류 외에도, 우리의 캐릭터는 헬멧과 배낭과 같은 "하드포인트" 아이템이 필요했습니다. 다음 이미지는 다양한 캐릭터에 우주복이 어떻게 보이는지를 보여줍니다.

레이어드 의류를 만들 때 유용한 지침은 다음과 같습니다:
- DCC 애플리케이션에서 내보낸 .fbx 파일에는 의류 메시, 내부 케이지, 외부 케이지, 및 스켈레톤이 포함되어야 합니다.
- 의류의 이름 지정 방식은 임의적이지만, 두 케이지는 다음과 같은 이름 형식을 가져야 합니다:
- [의류 이름]_InnerCage
- [의류 이름]_OuterCage
- 의류는 표준 R15 스켈레톤에 최대 4개의 영향을 주어야 합니다.
- 표준 R15 스켈레톤은 이 이름 스키마를 따라야 합니다.
이러한 지침을 염두에 두고, 우리는 우주복을 만들기 위해 다음 단계를 따랐습니다:
Roblox 레이어드 의류 케이지 템플릿을 사용하여 의류를 맞출 수 있는 기본 프레임을 만듭니다. 의류와 프레임 간의 거리에 따라 의류가 타이트하거나 느슨하게 맞을 수 있습니다.
프레임에 맞춰 의류를 모델링하고 외부 DCC 애플리케이션에서 더 높은 폴리 모델을 조각합니다.
더 높은 폴리 모델의 낮은 폴리, 게임 준비 버전을 재구성합니다. 이 과정에 대한 더 많은 정보가 필요하다면, 고폴리에서 게임 준비 모델로의 전환에 대한 많은 튜토리얼이 온라인에 있습니다. 의류는 덮고 있는 바디 파트에 해당하는 파트로 나눌 필요는 없으며, 단일 메시일 수 있습니다.


최종 텍스처를 확정하기 전에 다른 캐릭터에서 움직임과 핏을 테스트합니다.
의류 아이템의 "외부 케이지" 또는 외부 경계를 정의합니다. 이는 추가 레이어가 우주복 상단에 얼마나 타이트하게 맞아야 하는지를 알려줍니다.

케이지 작업 후, 템플릿 파일의 스켈레톤에 의류를 임시로 스킨하는 것이 도움이 될 수 있습니다. 다양한 포즈로 리그를 포즈를 취하여 텍스처링을 확정하기 전에 잘 변형되는지 확인할 수 있습니다. 이렇게 할 경우, 텍스처링으로 이동하기 전에 반드시 언바인드하세요!

텍스처
우리는 의류에 스킨을 입힌 후, 의도한 대로 움직였기 때문에 텍스처링으로 넘어갔습니다.
사실성을 목표로 하여, 우리는 아름다운 PBR 재료를 위해 표면 외관을 사용했습니다. 우리는 이를 텍스처링 애플리케이션으로 가져와 알베도, 금속성, 거칠기 및 노멀 맵을 만들었습니다. 이를 통해 의상에 금속처럼 보이는 부분과 거친 캔버스처럼 보이는 부분을 만들 수 있었습니다.





더 진행하기 전에 모델과 텍스처를 스튜디오로 가져와 우주 정거장에서 적절한 조명으로 재료를 테스트했습니다. 이는 팔과 몸통 밴드의 금속성을 조정하는 데 도움이 되었습니다.

의류에 텍스처를 입힐 때 다음 사항을 염두에 두세요:
- 표면 외관을 위해 색상(알베도), 금속성, 거칠기 및 노멀 맵을 포함해야 합니다.
- 금속성이 없으면 표면 외관은 0 금속성, 즉 플라스틱 표면으로 기본 설정됩니다.
- 거칠기가 없으면 표면 외관은 0 거칠기, 즉 매끄러운 표면으로 기본 설정됩니다.
스킨
의류에 스킨을 입히는 것은 기본 바디와 함께 제대로 구부러지도록 하기 위해 필요합니다. 스킨을 입힘으로써 애니메이션에 의류가 어떻게 구부러져야 하는지를 알려주며, 어떤 부분이 단단하고 어떤 부분이 캐릭터와 함께 움직이는지를 포함합니다.

다행히도 기본 바디와 달리 의류를 나눌 필요가 없으므로 수트 상단은 단일 메시로 만들 수 있으며 그렇게 스킨을 입힐 수 있습니다. 시간을 절약하기 위해 대부분의 애플리케이션에서는 메시를 특정 관절에만 스킨을 입힐 수 있도록 허용합니다. 수트 상단에 영향을 주고자 하는 관절은 상체/하체, 상팔/하팔, 그리고 머리뿐입니다. 전체 바디에 바인딩하지 않음으로써 불필요한 가중치를 제거하는 데 시간을 절약했습니다.

그러나 바디와 마찬가지로, 이 재료에 따라 자연스럽게 구부러지도록 스킨을 입혀야 합니다. 이는 중간 플라스틱 부분에 대해 상체에 단단한 가중치를 두었다는 것을 의미합니다.
장갑이 단단할 것이고 수트 상단이 손목 위에서 멈추기 때문에, 손과 함께 구부러질 필요는 없다고 느꼈습니다.

수트 상단의 스킨 작업이 완료되면, 동일한 절차를 바지에 반복하여 스튜디오에 가져오고 엔진에 준비합니다!
스튜디오로 가져오기
의류가 DCC 애플리케이션과 스튜디오에서 잘 보였을 때, 우리는 이를 스튜디오로 가져오고 액세서리 도구를 사용할 준비가 되었습니다. 이 도구는 의류의 케이지를 조정하여 최상의 핏을 얻는 데 도움을 줄 것입니다. 이 도구는 또한 의류를 액세서리로 내보낼 수 있어, 캐릭터에 의류를 추가할 수 있습니다.
스튜디오에서 우리는 레이어드 의류 아이템에 LC_ 접두사를 붙여, 이를 기존 스타일 액세서리(헬멧과 배낭 파트)와 구별할 수 있도록 했습니다.

헬멧 만들기
헬멧은 수트의 중요한 요소입니다. 우리는 사용자가 캐릭터의 얼굴을 볼 수 있도록 하고 헬멧의 유리 표면의 광택을 포착하기를 원했습니다.

머리에 맞게 변형되지 않기를 원하는 액세서리, 즉 이 헬멧은 현재 마켓플레이스에서 찾을 수 있는 "하드포인트" 액세서리로 만드는 것이 가장 좋습니다. 헬멧과 마켓플레이스에서 찾을 수 있는 것의 주요 차이점은 SurfaceAppearance를 사용하여 설득력 있는 플라스틱 및 금속 외관을 생성하고 헬멧 바이저에 약간의 투명성을 부여한다는 것입니다.
모델 만들기
헬멧 모델을 만들기 위해:
헬멧을 캐릭터의 머리에 올렸을 때 좋은 실루엣을 설정했습니다.

우리는 텍스처의 양을 최소화하기 위해 우주 정거장에서 트림 맵을 재사용했습니다. 헬멧을 모델링할 때 UV를 최적으로 활용할 수 있도록 충분히 분리된 섹션을 만들었습니다.

그런 다음 우리는 정거장의 여러 영역에서 사용한 동일한 트림 맵을 사용했습니다.




스튜디오로 가져오기
헬멧이 대략적으로 맞춰지고 DCC 애플리케이션에 배치되었을 때, 우리는 원하는 모든 효과와 함께 스튜디오로 가져올 수 있었습니다.
우리는 처음에 자산 관리자를 사용하여 헬멧을 가져왔지만, 단일 메시이기 때문에 MeshPart를 장소에 드롭하고 속성 창을 사용하여 MeshId를 지정할 수도 있습니다.

그런 다음 메시 파트에 SurfaceAppearance 객체를 통해 텍스처 맵을 추가했습니다. 이 과정은 헬멧을 완전히 투명하게 만들지 않고도 헬멧을 통해 볼 수 있도록 이상적인 알파를 얻기 위해 약간의 조정이 필요했습니다.

우리는 일부 수트는 깨끗하고 일부는 더럽게 보이기를 원했기 때문에 여러 텍스처를 사용하지 않고도 이 효과를 만들기 위해 동일한 객체에 데칼을 추가했습니다. 데칼은 각 표면에 평면 투영하여 작동합니다.

우리는 어두운 방에서 사용자가 어떤 방향을 보고 있는지를 나타내고 그들이 걷고 있는 영역을 비추기 위해 빛줄기와 빛을 원했습니다. 이를 위해 우리는 첨부물을 사용했습니다. 첨부물은 임의의 수를 추가할 수 있으며, 부품이 아니기 때문에 액세서리에서 유효합니다. 다음 예제와 같이 첨부물을 입자 효과, 빔 또는 조명에 사용할 수 있습니다.

액세서리 도구 소개
많은 구성 요소가 병렬로 구축되고 있기 때문에 자산이 정확하게 맞고 원하는 방식으로 보이는지 알기 어려울 수 있습니다. 그러나 곧 출시될 액세서리 도구를 사용하면 의류를 맞추고 다듬는 것이 훨씬 쉬워집니다. 우리는 이 도구를 사용하여 캐릭터의 상단과 하단, 하드포인트 헬멧 및 배낭 액세서리를 설정했습니다.

레이어드 의류에 대한 액세서리 도구 사용 요약은 다음과 같습니다:
우리는 먼저 수트의 상단을 캐릭터에 맞췄습니다. 다행히도 핏이 훌륭했고 내부 케이지가 바디에 잘 맞았습니다. 우리는 또한 다른 의류 아이템과 함께 외부 케이지를 테스트했습니다. 핏에 만족하면 도구를 사용하여 마켓플레이스를 위한 적절한 액세서리를 생성했습니다.

수트의 하단은 처음에 너무 부풀어 있었기 때문에 스튜디오 내에서 핏을 조정하고 싶었습니다. 포인트 편집기를 사용하여 위치를 조정했습니다. 수트 상단과 마찬가지로 액세서리로 만들었습니다.

헬멧과 배낭은 케이지가 없기 때문에 크기 조정, 회전 및 이동만으로 조정했습니다.

헬멧이 나머지 수트 없이 어떻게 맞는지 보는 것은 까다로웠기 때문에, 우리는 액세서리 도구를 사용하여 수트의 상단과 하단을 시각화했습니다. 이를 통해 핏이 수트 상단과 정렬될 것인지 확인할 수 있었습니다.

헬멧, 배낭, 상단 및 하단이 완료되면, 우리는 이 캐릭터가 우리 우주 정거장에서 어떻게 보이는지 확인할 준비가 되었습니다. 우리는 액세서리를 캐릭터에 복사하고 붙여넣어 핏을 확인할 수 있었습니다. 그런 다음 캐릭터를 장소 파일에 배치하고 모든 재료, 조명 및 기타 효과가 우리가 원하는 대로 정확히 설정되었는지 확인했습니다.
