빠른 시작: 팩 사용과 제작

MMDX12 앱 내 셰이더 관리자 사용법, 캐릭터별 적용, 슬라이더 조절 및 실시간 핫 리로드를 다룹니다.

앱에서 셰이더 팩 다루기

MMDX12 상단 바의 셰이더(Shader) 탭(라이브러리와 벤치마크 사이)을 클릭하면 셰이더 팩 관리자가 열립니다.

설치됨 화면

현재 내 컴퓨터에 있는 모든 팩을 카드 형태로 보여줍니다:

  • 정보 표시: 팩 미리보기, 이름, 버전, 제작자, 태그, 출처 뱃지(기본 제공, 설치됨, 온라인).
  • 상태 확인:
    • 사용 가능: 매니페스트가 정상이며 즉시 사용할 준비가 된 상태.
    • 컴파일됨: 현재 실행 세션에서 성공적으로 컴파일되어 사용 중인 상태.
    • 컴파일 오류: HLSL 문법이나 셰이더 컴파일 실패 시 붉은 상태로 표시되며, 상세 패널에 컴파일러 로그가 출력됩니다.
    • 호환되지 않음: API 버전이 앱보다 높거나 요구 앱 버전(minAppVersion)이 최신인 경우.
    • 매니페스트 오류: pack.json 구문이 잘못되었거나 필수 항목이 빠진 경우.
    • 중복: 동일한 ID를 가진 다른 팩이 이미 존재하여 비활성화된 경우.
  • 주요 기능 버튼:
    • 폴더 열기: 선택한 팩의 폴더를 파일 탐색기에서 엽니다.
    • 삭제: 설치된 팩이나 온라인 다운로드 팩을 삭제합니다 (기본 제공 팩은 삭제 불가).
    • zip 설치: 파일 선택 창을 띄워 .zip 팩을 직접 설치합니다. 창 위로 .zip 파일을 드래그 앤 드롭해도 즉시 설치됩니다.
    • 새 팩 만들기: 템플릿으로부터 나만의 새 팩을 즉시 생성합니다.
    • 다시 불러오기: 팩 파일들을 다시 스캔하고 캐시를 새로고침합니다.

온라인 갤러리 화면

공식 웹 갤러리(https://mmdx.codingbot.kr/shader-packs/index.json)에서 배포되는 팩 목록을 둘러보고 클릭 한 번으로 설치할 수 있습니다:

  • 설치: 버튼 클릭 시 다운로드 파일의 SHA-256 해시와 파일 크기를 매니페스트와 대조 검증한 후 안전하게 설치합니다.
  • 업데이트: 이미 설치된 팩보다 갤러리에 더 높은 버전이 올라온 경우 업데이트 버튼이 활성화됩니다.

캐릭터에 팩 적용하기

셰이더 팩은 전역 설정이 아니라 캐릭터 모델 단위로 적용됩니다:

  1. 라이브러리(Library) 화면:
    • 캐릭터를 선택한 뒤 오른쪽 속성 패널에서 셰이더 행을 클릭합니다.
    • 검색창에서 팩 이름을 검색하거나 목록에서 선택합니다 (MMD 기본을 선택하면 표준 음영으로 복귀).
  2. 팩 설정(파라미터 슬라이더):
    • 팩을 선택하면 하단에 팩 설정 슬라이더 목록이 나타납니다.
    • 그림자 경계, 부드러움, 림 라이트 세기 등을 실시간으로 조정할 수 있습니다.
    • 사용자가 변경한 파라미터만 모델별 설정으로 저장됩니다.
  3. 재생(Play) 모드 중 실시간 조절:
    • 재생 화면 하단 바의 다이아몬드(◇) 모양 버튼을 누르면 동일한 파라미터 조절 창이 열려 실시간으로 변화를 확인할 수 있습니다.
  4. 스튜디오(Studio) 편집기:
    • 모델을 선택하고 인스펙터의 셰이더 항목에서 팩을 지정합니다. 프로젝트 파일(.mmdxproj의 shader 키)에 함께 저장됩니다.
  5. 명령줄 실행 옵션:
    • 특정 실행에서만 팩을 강제 적용하고 싶다면 명령줄 인수로 전달할 수 있습니다:
      MMDX12.exe --shader-pack hoyo_toon
      --shader-pack none을 주면 모든 팩을 끄고 기본 셰이딩으로 실행합니다.

새 팩 제작과 실시간 핫 리로드

직접 셰이더를 작성할 때 앱을 껐다 켤 필요가 없습니다:

  1. 셰이더 관리자에서 새 팩 만들기를 클릭하고 ID와 이름을 입력합니다.
  2. <MMDX12>/shader_packs/<내 팩 ID>/ 폴더가 생성되며, 주석이 달린 기본 surface.hlsl과 pack.json이 준비됩니다.
  3. Visual Studio Code 등의 편집기로 해당 폴더를 엽니다.
  4. 라이브러리 화면에서 내가 만든 팩을 캐릭터에 적용해 둡니다.
  5. surface.hlsl이나 pack.json을 저장하는 순간, MMDX12가 파일 변경을 감지하여 백그라운드에서 DXC로 즉시 다시 컴파일하고 화면에 반영합니다 (핫 리로드).
  6. 만약 문법 실수가 있더라도 앱이 꺼지지 않고 빨간색 알림과 함께 컴파일 로그가 나타나며, 모델은 안전하게 기본 음영으로 유지됩니다.