빌드와 업로드
이 문서를 읽으면 MLC가 언제 어디에 메뉴를 만드는지 알고, 연결 방식을 골라 업로드까지 진행하고 실패 메시지를 읽을 수 있습니다.
원본 아바타는 바뀌지 않습니다
편집 중인 아바타에는 MLC가 아무것도 설치하지 않습니다. Expressions 메뉴 · Expression Parameters · FX 애니메이터 · 애니메이션 클립 · 연결용 하위 오브젝트 중 어느 것도 씬에 저장된 아바타에 생기지 않습니다. 컴포넌트 인스펙터와 MLC 창은 직렬화된 설정을 편집하고 검증할 뿐입니다.
설정 검증 (원본 변경 없음) 같은 버튼도 이름 그대로입니다. 검증만 하며, 생성물을 남기지 않습니다.
NDMF 빌드 클론에서만 만들어집니다
MLC는 NDMF가 만드는 일회용 아바타 복제본 안에서만 실제 자산을 만듭니다. 이 경로는 두 곳에서 지나갑니다.
- NDMF를 거치는 Play Mode 미리보기
- VRChat 업로드 빌드
복제본 위에서 메뉴 · 파라미터 · 클립 · FX 컨트롤러를 만들고, 고른 방식으로 붙인 뒤, 완성된 복제본에서 MLC 컴포넌트 자신을 제거합니다. 원본 아바타와 그 아바타가 이미 갖고 있던 FX · 메뉴 · 파라미터 자산은 그대로입니다.
MLC의 빌드 단계는 Modular Avatar보다 먼저 실행됩니다. 그래서 복제본에만 생기는 Modular Avatar 컴포넌트가 이후 단계에서 정상적으로 소비됩니다.
NDMF 없이 호출되면 MLC는 생성 폴더를 만들거나 원본에 무언가를 붙이는 대신, 진단 메시지를 내고 준비를 중단합니다. 이것은 의도된 동작입니다.
연결 방식 고르기
- 아바타 루트를 선택합니다. 컴포넌트가 아직 없으면
GameObject > Studio Raming > Ming Light Controller > Add or Configure Component를 씁니다.- 이렇게 되면 정상입니다. 아바타 루트에
Ming Light Controller컴포넌트가 붙고 인스펙터에 카드들이 나타납니다.
- 이렇게 되면 정상입니다. 아바타 루트에
- 인스펙터에서
고급 옵션카드를 펼칩니다.- 이렇게 되면 정상입니다.
연결 방식·고급 카탈로그·동기화 비트 목표·파라미터 항목 목표·알 수 없는 예산에서 강제 설치·빌드 clone 준비 허용·Play Mode 미리보기·진단 표시가 이 순서로 한 묶음에 보입니다.
- 이렇게 되면 정상입니다.
연결 방식을 고릅니다.- 이렇게 되면 정상입니다. 선택이 바로 저장되고, 필요한 패키지가 없는 방식을 골랐다면 경고 메시지가 함께 표시됩니다.
설정 검증 (원본 변경 없음)을 누릅니다.- 이렇게 되면 정상입니다.
검증 완료가 표시됩니다. 실패 메시지가 뜨면 실패했을 때를 보세요. - 버튼이 눌리지 않고 회색이라면
연결 방식을 VRCFury로 고른 상태에서 그 provider를 찾지 못한 것입니다. 다른 방식을 고르거나 VRCFury를 설치하세요.
- 이렇게 되면 정상입니다.
자동이 고르는 순서
자동은 사용 가능한 첫 번째 방식을 다음 순서로 고릅니다.
- Modular Avatar
- VRCFury
- Direct Descriptor
- Standalone
아래 모든 연결 작업은 복제본에서만 일어납니다.
Modular Avatar
복제본에 임시 자식 오브젝트를 만들고, 메뉴 설치 · 파라미터 · 애니메이터 병합에 필요한 컴포넌트만 붙입니다. 도중에 실패하면 만들다 만 오브젝트를 스스로 제거합니다.
VRCFury
복제본 부착을 VRCFury 쪽 공개 API에 맡깁니다. VRCFury를 명시적으로 고른 경우, 그 provider가 없으면 실패하고 다른 방식으로 넘어가지 않습니다. 현재 지원 대상은 VRCFury 1.1426.0 이상입니다.
Direct Descriptor
MLC가 만든 메뉴 · 파라미터 · FX 컨트롤러를 복제본의 아바타 디스크립터에 직접 지정합니다.
이미 FX 컨트롤러 · Expressions 메뉴 · Expression Parameters 중 하나라도 쓰고 있는 아바타에는 병합을 거부합니다. 그런 아바타에는 Modular Avatar나 VRCFury를 쓰세요. 부착에 실패하면 복제본을 이전 상태로 되돌립니다.
Standalone
아바타에 아무것도 붙이지 않습니다. 외부에서 결과물을 가져다 쓰기 위한 끝점이며, 이 방식만으로는 아바타 안에 컨트롤이 생기지 않습니다.
Play Mode 미리보기
고급 옵션의 Play Mode 미리보기 를 끄면 Play Mode 복제본에 컨트롤을 만들지 않습니다. 이때 복제본에서 MLC 컴포넌트는 제거되고 그걸로 끝입니다.
컴포넌트 자체를 비활성화해 두어도 같습니다. 복제본에서 컴포넌트만 제거되고 아무것도 만들어지지 않습니다.
빌드 clone 준비를 끄면
빌드 clone 준비 허용 을 끄면, 복제본에서 MLC 컴포넌트만 떼어 내고 payload를 붙이지 않습니다. 업로드는 진행되지만 아바타에 MLC 메뉴가 없습니다.
기능을 전부 껐을 때
켜진 기능이 하나도 없으면 빌드는 그대로 성공합니다. 다만 만들 것도 붙일 것도 없으므로 아바타에는 MLC 메뉴가 생기지 않습니다.
실패했을 때
| 메시지 | 뜻 |
|---|---|
검증 완료 | 현재 구성으로 생성 가능합니다 |
검증 실패: ... | 구성 자체가 규칙을 어겼습니다. 뒤에 붙은 이유를 보세요 |
재질 바인딩 검증 실패: ... | 등록한 머티리얼 그룹 쪽 문제입니다 |
MLC compile plan이 없습니다. | 계획이 만들어지지 않았습니다. 켜진 기능과 메뉴 배치를 먼저 확인하세요 |
업로드 과정에서 NDMF 빌드 클론 단계가 아예 지나가지 않았다면 Console에 다음 오류가 남고 업로드가 중단됩니다. 프로젝트에 NDMF가 있는지, 그리고 VRChat 빌드 처리에서 동작하고 있는지 확인하세요.
Ming Light Controller was not prepared by the NDMF build-clone pass. Enable NDMF for VRC build processing.
업로드 직전에는 VRChat 파라미터 자산을 한 번 더 검사합니다. 여기서 걸리면 Console에 Ming Light Controller final VRC parameter validation failed: 로 시작하는 오류가 남고 업로드가 중단됩니다. 대표적인 이유는 다음과 같습니다.
- Expression Parameters의 항목 수가 VRChat 상한을 넘음
- 동기화 비트 합계가 VRChat 상한을 넘음
- 설치된 VRChat SDK의 상한값이 MLC가 기대하는 값과 다름
- 파라미터의 기본값이 그 타입의 허용 범위를 벗어남
이름이 비었거나 중복된 파라미터처럼 업로드는 되지만 예상과 다르게 동작할 수 있는 경우는 오류가 아니라 경고로 남습니다.
증상별 대처는 문제 해결에 정리돼 있습니다.