본문으로 건너뛰기

VRChat

이 문서를 읽으면 VRChat 쪽 제한(파라미터 상한 · 메뉴 8칸 · SDK 버전) 안에서 지금 구성이 업로드 가능한지 판단할 수 있습니다.

필요한 SDK​

업로드까지 가려면 다음이 모두 있어야 합니다.

항목조건
VRChat Avatars SDK3.x
NDMF1.x
아바타 재질MingToon
연결 방식Modular Avatar · VRCFury · 비어 있는 VRC 아바타 디스크립터 중 하나

VRCFury를 쓴다면 1.1426.0 이상이어야 합니다. Modular Avatar와 VRCFury는 선택 사항이고, MLC가 둘 중 어느 것도 몰래 설치하지 않습니다.

VRCSDK Avatars를 찾지 못하면 창에 VRCSDK Avatars를 찾지 못했습니다. 코어 compile plan은 계속 검증할 수 있습니다. 가 표시됩니다. 구성 검증은 계속할 수 있지만 업로드는 되지 않습니다.

동기화 비트 256​

VRChat 아바타 하나가 쓸 수 있는 동기화 비트는 256개이고, 이것은 아바타 전체가 나눠 쓰는 자원입니다. MLC 메뉴도 이 예산 안에서 만들어집니다.

예산·검증 카드의 동기화 비트 줄이 Smooth ... / Compact ... (예산 ...) 형태로 두 프로필의 비용과 현재 예산을 함께 보여 줍니다.

기본 카탈로그를 전부 켠 상태의 비용은 다음과 같습니다.

프로필동기화 비트파라미터 항목
Smooth8422
Compact4151

Compact는 값을 단계로 나눠 보내고 받는 쪽에서 복원하는 방식이라 비트를 아끼는 대신 항목 수가 늘어납니다. 기능을 끄면 두 숫자 모두 줄어듭니다.

프로필을 자동으로 두면 남은 예산을 보고 Smooth를 먼저 시도한 뒤 Compact로 내려갑니다.

파라미터 항목 수​

동기화 비트와 별개로, Expression Parameters의 항목 수 자체에도 상한이 있습니다. MLC가 기대하는 값은 8192개입니다. 업로드 직전 검사에서 설치된 SDK가 보고하는 값과 대조합니다.

메뉴 한 페이지 8칸​

VRChat Expressions Menu는 한 페이지에 최대 8개 슬롯만 표시합니다. 메뉴 구성 카드의 루트 줄이 루트 (n / 8) 로 현재 개수를 보여 줍니다. 넘긴 항목은 아바타에서 보이지 않으므로 폴더로 묶으세요. 자세한 것은 메뉴 구성에 있습니다.

이미 아바타에 있는 파라미터​

MLC가 쓸 수 있는 몫은 다른 도구가 이미 쓰고 남은 것입니다. 예산·검증 카드의 아바타 합계 줄이 외부 ... bit / ... entries + MLC (목표 ... bit, ... entries) 형태로 이를 보여 줍니다.

고급 옵션의 두 목표값은 이렇게 동작합니다.

항목0으로 두면0이 아닌 값을 넣으면
동기화 비트 목표남은 VRC 예산을 자동으로 씁니다그 값이 아바타 전체 상한이 됩니다
파라미터 항목 목표VRC 최대값을 씁니다그 값이 아바타 전체 항목 상한이 됩니다

기존 VRC 파라미터를 읽을 수 없을 때만 쓰는 알 수 없는 예산에서 강제 설치 옵션이 따로 있습니다. 이것을 켜면 외부 예산을 비어 있는 것으로 가정하므로, 직접 확인한 경우에만 쓰세요.

업로드 직전 최종 검사​

업로드 직전에 완성된 Expression Parameters를 한 번 더 검사합니다. 이 검사는 설치된 VRChat SDK가 보고하는 상한값을 직접 읽어 MLC가 기대하는 값과 대조하므로, SDK를 올린 뒤 상한이 달라졌다면 여기서 잡힙니다.

여기서 걸리면 Console에 Ming Light Controller final VRC parameter validation failed: 로 시작하는 오류가 남고 업로드가 중단됩니다.

  • 항목 수 초과 · 동기화 비트 초과 · SDK 상한 불일치 → 오류, 업로드 중단
  • 기본값이 타입의 허용 범위를 벗어난 파라미터 → 오류, 업로드 중단
  • 이름이 비었거나 중복된 파라미터 → 경고, 업로드는 진행

기본값 범위는 타입마다 다릅니다.

타입허용되는 기본값
Bool정확히 0 또는 1
Int0 이상 255 이하의 정수
Float-1 이상 1 이하

NDMF 빌드 클론 단계 자체가 지나가지 않은 경우에도 업로드가 중단됩니다. 이때는 파라미터 검사가 아니라 준비 단계에서 걸린 것이므로, 프로젝트에 NDMF가 있는지 먼저 확인하세요.

MingToon 재질 쪽 준비​

메뉴를 만들어도 재질 쪽이 그 값을 런타임에 읽을 수 있어야 합니다. MingToon 재질 인스펙터의 두 스위치가 그 역할입니다.

재질 쪽 스위치켜 두면
VRC 런타임 제어 사용VRC Quality Tier 와 가상 조명 · 마스터 조정 · 포토 룩 프로퍼티가 베이크에서 상수로 접히지 않습니다
FX 메뉴로 그림자 투영 전환그림자 투영 이 베이크에서 상수로 접히지 않습니다

둘 다 꺼 두면 해당 값들이 상수로 접혀 가장 가벼운 상태가 되지만, 메뉴로 돌릴 수 없게 됩니다.

성능 거리 (m) 과 성능 거리 배율 두 항목은 이 스위치와 무관하게 베이크에서 접히지 않습니다. MLC 없이 재질에 값만 저장해 두어도 업로드 후 거리 판정이 계속 동작합니다. 다만 두 값의 곱이 0이면 거리와 상관없이 항상 가장 가벼운 상태로 그려지고, MingToon 검증기가 MING-MAT-PERF-DISTANCE-ZERO 경고를 냅니다. 인게임 라디얼로 0까지 내리게 두는 것이 의도라면 그대로 두면 됩니다.

알려진 제약​

  • Direct Descriptor는 이미 FX 컨트롤러 · Expressions 메뉴 · Expression Parameters를 쓰는 아바타에 병합하지 못합니다. 그런 아바타에는 Modular Avatar나 VRCFury를 쓰세요.
  • Standalone은 아바타에 아무것도 붙이지 않으므로 그 자체로 완성된 구성이 아닙니다.
  • VRCFury provider는 그 선택적 어셈블리가 정상적으로 컴파일되고 등록됐을 때만 쓸 수 있습니다.
  • MLC는 MingToon 재질만 대상으로 합니다. 다른 셰이더로의 변환이나 컨트롤 생성은 없습니다.

관련 문서​