캐릭터는 플레이어가 제어하거나 상호작용하는 인물로, 게임을 진행하고 도전을 제공하며 세상을 생동감 있게 만드는 데 도움을 줍니다. Roblox에서 캐릭터는 움직이고, 소통하며, 환경과 상호작용하는 모든 Model, 휴머노이드 또는 기타 모델을 의미합니다. 그들은 퀘스트에 대한 주요 정보를 제공하는 빛나는 구체처럼 간단할 수도 있고, 강직하고 레이어드 액세서리를 부착할 수 있는 얼굴 애니메이션이 있는 완전 리깅된 드래곤처럼 풍부할 수도 있습니다.
이 플랫폼은 경량 비플레이어 캐릭터와 같은 게임의 특정 디자인 요구 사항에 맞게 구축할 수 있는 다양한 캐릭터 유형을 지원합니다. 표준화된 아바타 캐릭터는 화장품을 착용하고 애니메이션을 재생하는 내장 기능을 가지고 있으며, 보편적인 애니메이션 라이브러리에 접근할 수 있는 사용자 정의 리깅도 가능합니다. 옵션을 살펴보겠습니다.
유형
넓게 말하자면, 캐릭터에는 두 가지 주요 유형이 있습니다: 플레이어 캐릭터와 비플레이어 캐릭터. 두 유형의 캐릭터는 시각적으로 동일하게 보일 수 있지만, 각 캐릭터가 게임에서 수행해야 하는 작업에 따라 내부 구성은 크게 다를 수 있습니다.
플레이어 캐릭터
플레이어 캐릭터는 플레이어가 게임을 플레이하기 위해 제어하는 캐릭터입니다. 일부 게임 개발자는 게임 디자인 미학에 맞는 사용자 정의 플레이어 캐릭터를 처음부터 만들지만, 많은 개발자는 플레이어가 자신의 플랫폼 아바타를 플레이어 캐릭터로 유지하도록 허용합니다.


플레이어에게 아바타는 개인적인 의미가 깊습니다. 아바타는 개인의 디지털 정체성을 상징하며, 마켓플레이스와 게임에서의 개별 구매 또는 경품으로 독특하게 제작됩니다. 게임 개발자에게 아바타는 다음과 같은 기능을 제공하는 표준화된 완전한 기능의 캐릭터입니다:
- 신체 및 얼굴 애니메이션
- 강직한 액세서리, 레이어드 액세서리, 클래식 의류 및 메이크업 자산
- 표시 이름, 건강 바 및 기본 이동 상태와 같은 핵심 캐릭터 행동 및 속성
아바타는 다음과 같은 구성 요소 시스템을 포함해야 하므로 이러한 기능을 제공할 수 있습니다. 이를 통해 제작자는 마켓플레이스에 업로드할 수 있습니다:
| 구성 요소 | 기능 |
|---|---|
| 표준화된 명명 규칙을 가진 15개의 MeshPart 신체 부위 | 액세서리, 화장품 및 애니메이션을 위한 균일한 분할로 각 캐릭터에 대한 일관된 사지 수. |
| 표준화된 명명 규칙과 관절 계층 구조를 가진 리깅 골격 | 애니메이션 지원을 위한 일관된 포즈 가능한 관절 수. 15개의 필수 포즈 가능한 관절이 있지만, 고해상도 리깅을 위해 최대 37개의 추가 관절을 추가할 수 있습니다. |
| Humanoid 객체 | 캐릭터의 이름과 건강을 Head 신체 부위 위에 표시하는 것과 같은 일관된 캐릭터 행동 및 속성.
|
| 최소 17개의 표준화된 얼굴 기본 포즈를 가진 FaceControls 객체 | 일관된 얼굴 표정. |
| 15개의 WrapTarget 객체 | 캐릭터의 몸에 맞고 레이어드되는 강직한 액세서리를 위한 일관된 변형 목표. |
| 19개의 Attachment 포인트 | 캐릭터의 몸에 부착할 강직한 액세서리 및 게임 내 장착 가능한 객체를 위한 일관된 목표. |
표준 아바타 리깅, 종종 R15 리깅이라고 불리는 것은 캐릭터의 15개 신체 부위를 표현하기 위해 15개의 포즈 가능한 관절이 필요합니다. 그러나 더 높은 수준의 사실감을 가진 고해상도 리깅을 만들고 싶다면, 관절이 있는 손, 어깨 및 척추 움직임을 위해 최대 37개의 추가 선택적 관절을 만들 수 있습니다.
이 선택적 관절에는 다음이 포함됩니다:
- 척추: Spine 및 Chest 세분화
- 쇄골: 어깨 관절을 위한 LeftClavicle 및 RightClavicle
- 머리: 목과 얼굴 관절을 위한 Head 신체 부위 아래에 부모로 설정된 HeadBase
- 손가락: 손당 최대 15개의 관절 (3개의 관절 × 5개의 손가락)
- 발가락: 발 관절을 위한 LeftToeBase 및 RightToeBase
자세한 내용은 신체 사양 - 고해상도 리깅을 참조하세요.
StarterPlayer.AvatarJointUpgrade를 활성화하면, 업그레이드는 자동으로 모든 캐릭터의 관절에 힘 및 토크 제한이 있는 AnimationConstraint 객체를 도입하여 Motor6D 객체를 대체합니다. 이를 통해 완전히 시뮬레이션된 사지와 동력화된 래그돌과 같은 사실적인 물리 기반 움직임과 상호작용을 생성할 수 있습니다.
비플레이어 캐릭터
비플레이어 캐릭터(NPC)는 게임 내 시스템이 플레이어를 지원하거나 도전하기 위해 제어하는 캐릭터로, 동맹이나 적과 같은 역할을 하거나 환경을 채워 몰입감을 제공합니다. 플레이어 캐릭터가 게임 목표를 완료하기 위해 다양한 속성과 기능을 요구하는 것과 달리, 비플레이어 캐릭터는 종종 경로를 걷거나 피해를 입거나 플레이어의 행동에 반응하는 것과 같은 한두 가지 간단한 작업만 수행하면 됩니다.

비플레이어 캐릭터는 플레이어 캐릭터와 동일한 구성 요소 세트, 리깅 골격 또는 기능 깊이를 요구하지 않기 때문에, 가장 기본적인 비플레이어 캐릭터는 단순히 기하학과 몇 가지 스크립트를 가진 Model만 필요합니다. 사실, 많은 게임 개발자는 NPC를 Model로 만들고, 자식 메시 하나 또는 두 개와 기본 캐릭터 행동 및 속성을 구현하고 접근하기 위한 Humanoid 객체만 포함하는 것을 선택합니다.
생성 도구
캐릭터를 생성하는 데 사용하는 도구와 프로세스는 생성하는 각 캐릭터의 유형과 복잡성에 따라 다를 수 있지만, 일반적으로 많은 게임 개발자는 캐릭터의 몸체를 위해 제3자 모델링 도구에서 최소한의 원시 메시를 생성하는 것으로 시작합니다. 다음은 제작자가 사용자 정의 캐릭터 몸체, 텍스처, 리깅 골격, 액세서리 및 애니메이션을 생성하는 데 일반적으로 사용하는 인기 있는 제3자 소프트웨어의 예입니다.
![]() | ![]() | ![]() |
| Blender는 모델링, 조각, 텍스처링, 리깅 및 애니메이션 도구의 폭넓은 범위를 갖춘 무료 오픈 소스 3D 제작 스위트입니다. | Autodesk Maya는 전체 3D 제작 파이프라인을 포괄하는 구독 기반의 산업 표준 전문 도구 세트입니다. | GNU 이미지 조작 프로그램 (GIMP)는 2D 자산 생성을 지원하는 무료 오픈 소스 이미지 편집기입니다. |
캐릭터의 기초가 마련되면, Studio에 가져오기하여 Roblox가 제공하는 모든 1차 도구에 접근할 수 있습니다. 여기에는 원시 메시를 캐릭터로 변환하는 전체 파이프라인이 포함되어 있으며, 이는 마켓플레이스에 준비되기 위해 플랫폼 정책 및 기술 표준을 충족합니다. 다음은 모든 기술 수준의 게임 개발자가 캐릭터 자산을 생성, 구성 및 테스트하는 데 사용할 수 있는 주요 도구를 자세히 설명합니다.
다음 기능은 캐릭터 생성 프로세스의 다양한 단계에 대한 지원을 제공합니다:
| 도구 | 설명 |
|---|---|
| 아바타 설정 | 전역 게임 수준 아바타 행동, 충돌, 애니메이션 팩 및 캐릭터 컨트롤러 라이브러리 전환을 활성화합니다. |
| 가져오기 도구 | 캐릭터를 위한 PBR 텍스처, 리깅, 스키닝 및 애니메이션 데이터를 가진 사용자 정의 메시를 가져옵니다. |
| 애니메이션 편집기 | 제스처 및 반응과 같은 캐릭터의 애니메이션을 가져오고 디자인하며 게시합니다. |
| 액세서리 장착 도구 | 여러 조합의 캐릭터 몸체, 애니메이션 및 액세서리에 대해 사용자 정의 모델을 테스트합니다. |
| 자동 스키닝 전송 | 레이어드 및 얼굴 액세서리에 스키닝 데이터를 전송하거나 생성하여 캐릭터 몸체에 부착된 대로 변형되도록 합니다. |
아바타 설정
아바타 설정은 원시 메시에서 플레이어 캐릭터로 가는 가장 빠른 경로로, 사용자 정의 모델을 아바타 캐릭터 자산으로 자동 처리합니다. 캐릭터가 이동하고 애니메이션을 재생하며 액세서리를 착용하는 데 필요한 모든 구성 요소가 없는 경우, 아바타 설정은 다음과 같은 모든 누락된 구성 요소를 생성할 수 있습니다:
- 분할 - 캐릭터의 몸체를 표준 15개 신체 부위로 분리합니다.
- 리깅 데이터 - 캐릭터의 몸체에 표준 또는 고해상도 리깅 골격을 추가하여 이동 및 애니메이션을 가능하게 합니다.
- 스키닝 데이터 - 캐릭터의 몸체의 다양한 표면에 가중치와 영향을 추가하여 이동 중 유기적이고 자연스러운 유연성을 보장합니다.
- 얼굴 애니메이션 - 얼굴 애니메이션에 필요한 FACS 포즈, 얼굴 리깅, 스키닝 및 애니메이션 데이터를 생성합니다.
- 케이지 - 캐릭터의 신체 부위에 레이어드 액세서리를 착용할 수 있도록 필요한 내부 및 외부 케이지를 추가합니다.
- 부착 포인트 - 캐릭터의 몸체에 적절한 부착 포인트를 추가하여 강직한 액세서리를 착용할 수 있도록 합니다.
게임 개발자가 캐릭터를 마켓플레이스에 업로드하려는 경우, 아바타 설정은 이전의 다중 도구, 다중 반복 작업 흐름을 단일 패스로 축소합니다:


적응형 애니메이션
적응형 애니메이션은 하나의 애니메이션 라이브러리를 매우 다른 신체 유형에서 작동하게 만드는 어려운 문제를 해결합니다. HumanoidRigDescription 및 DigitsRigDescription 객체를 사용하여 적응형 애니메이션은 캐릭터의 관절을 Roblox의 표준화된 리깅 골격 사양에 매핑할 수 있게 해줍니다. 이는 양방향으로 작동합니다:
- 아바타 요구 사항 > 사용자 정의 리깅 - 사용자 정의 리깅은 즉시 이모트 및 이동 상태의 전체 애니메이션 라이브러리를 사용할 수 있습니다.
- 사용자 정의 리깅 > 아바타 요구 사항 - 사용자 정의 리깅에서 생성한 애니메이션은 즉시 표준 리깅 골격을 가진 아바타로 리타겟팅됩니다.
이것은 고해상도 리깅의 손과 손가락에도 적용됩니다. 적응형 애니메이션 시스템을 사용하여 캐릭터의 손 관절을 할당하면, 한 손의 비율에 대한 손가락 애니메이션이 즉시 다른 손 기하학에 적응합니다.

애니메이션 그래프 편집기
애니메이션 그래프 편집기는 개별 애니메이션 클립을 런타임 논리로 구성하는 시각적 노드 기반 도구로, 애니메이션 컨트롤러 스크립트를 수동으로 작성할 필요가 없습니다. 캐릭터에 대한 블렌드 트리, 상태 기계 및 매개변수화된 애니메이션 동작을 구축할 수 있으며, 애니메이션 그래프 노드에 프로그래밍적으로 접근하여 직접 제어할 수 있습니다.

캐릭터 최적화
게임이 더 많은 플레이어, 광범위한 환경 및 풍부한 애니메이션으로 성장함에 따라, 캐릭터 시스템은 최적화를 지원하는 아키텍처가 필요합니다. 이를 직접적으로 해결하는 두 가지 시스템이 있습니다: 캐릭터 이동 및 행동을 위한 캐릭터 컨트롤러 라이브러리와 렌더링 성능을 위한 SLIM입니다.
캐릭터 컨트롤러 라이브러리
플레이어 캐릭터 내의 기본 Humanoid 객체는 작동하는 상태 기계를 제공하지만, 경직되어 있습니다. 고정 전환 논리로 한 번에 하나의 고정된 상태만 트리거할 수 있으며, 구성하기 어렵고 대규모로 구성하기 힘듭니다.
이러한 문제를 해결하기 위해, 캐릭터 컨트롤러 라이브러리 (CCL)는 능력 기반 아키텍처로 대체합니다:
- 능력은 캐릭터가 할 수 있는 일을 동적으로 결정합니다. 예를 들어, 달리기, 점프, 오르기 및 수영과 같은 동작입니다.
- 컨트롤러는 캐릭터의 움직임이 어떻게 시뮬레이션되는지를 동적으로 처리합니다. 예를 들어, 지면 마찰, 가속 곡선 및 캐릭터가 점프할 때 선형 및 각 운동량의 현실적인 보존입니다.
아바타 설정에서 CCL을 선택하면 게임이 실행되는 동안 능력 구성을 실험하고 특정 컨트롤러를 수정하여 캐릭터의 물리적 시뮬레이션과 환경과의 상호작용을 조정할 수 있습니다. 예를 들어, 캐릭터의 기본 이동 속도를 조정할 수 있습니다.

SLIM을 통한 렌더링
캐릭터는 렌더링 비용이 많이 들 수 있으며, 특히 레이어드 액세서리와 물리 기반 렌더링(PBR) 텍스처가 있는 고해상도 캐릭터의 경우 더욱 그렇습니다. NPC, 건물, 소품 및 차량으로 가득 찬 활기찬 마을과 같은 많은 모델과 캐릭터를 포함하는 게임에서는 플레이어가 낮은 프레임 속도와 저조한 성능을 경험할 수 있습니다.
렌더링 성능을 위한 이러한 문제를 해결하기 위해, 확장 가능한 경량 인터랙티브 모델 (SLIM)은 클라우드 기반 트랜스코딩을 사용하여 아바타 캐릭터와 모델의 경량화되고 최적화된 표현을 생성하는 자동 최적화 시스템을 제공합니다. 런타임에서 엔진은 거리, 장치 기능 및 스트리밍 상태에 따라 최상의 표현을 선택합니다.


SLIM은 세 가지 주요 이점을 제공합니다:
- 시각적 품질 - 먼 모델이 이전 모델 수준의 세부 사항 시스템보다 더 자세하게 보이며, 원본에 더 가까운 충실도를 유지합니다.
- 일관된 전환 - 모델 내 모든 부분이 동시에 세부 수준을 전환하여 불쾌한 부분별 전환을 제거합니다.
- 성능 - 복합 메시가 드로우 호출, 삼각형 수 및 메모리 사용량을 극적으로 줄여 모든 장치 계층에서 더 풍부한 장면을 가능하게 합니다.
또한 아바타 캐릭터에 대해 SLIM을 구성하면 엔진이 다음을 수행합니다:
- 실제 아바타 모델이 스트리밍 아웃될 때 SLIM 버전을 렌더링합니다.
- 사용 가능한 리소스에 따라 SLIM과 전체 해상도 표현 간에 전환합니다. 스트리밍 반경 내에서도 가능합니다.
- 장면 중요성과 사용 가능한 대역폭에 따라 SLIM 애니메이션을 조절합니다.




