https://booth.pm/ko/items/3368697


시엘(Ciel)  제작자가 MMD대응을 하였지만

iY MMD 월드하고 최근에 나온 MR MMD 월드만

표정이 동작하고 벚꽃 등 다른 MMD월드 에서는

동작을 안하는 현상이 있음.


이러한 MMD 월드에서 동작하도록 하고자 팁 공유를 해봄.

그런데 이렇게 해도 고양이 MMD 월드는 작동을 안 함. 이유 모름.


0. 작업영역은 아래와 같으며 혹시 모르니까 백업을 해주자.

1. ciel_Parameters

2. ciel_Menu

3. ciel_FX(필수 수정)


0. 시작에 앞서서

- 완전 귀찮으면 "Avatar Default FX", "Blink Contro"레이어만 삭제해 줘도 된다.

   (단, 특정 표정이 망가지고 이유는 불명이며 눈 깜박임이 없어짐)

- 눈 깜박임을 원하지만 스위치 on/off가 귀찮으면 FX만 수정해줘도 된다.

   (단, MMD월드가 아닌 다른 월드에서 착석하면 눈 깜박임이 없어짐)

- 블링크 컨트롤을 완벽하게 하고 싶다면 익스프레션 파라미터와 메뉴도 같이 수정해준다.

=> 내가 아는 범위 내의 팁이므로 좋은 방법이 있다면 공유 부탁해. ㅠ


1. 시엘은 기본적으로 MMD를 할 수 있도록 아래와 같이 얼굴 메쉬 이름이 Body,

그리고 대응 블렌드쉐이프키(일본어o, 영어x)가 있어서 따로 만질 필요는 없다.



2. 시엘 파라미터에 스위칭용 파라미터를 Bool 타입으로 만든다.

Default, Saved 는 체크 해제를 권장.

여기서는 파라미터명을 MMD_mode로 하기로 함.



3. 시엘 메뉴(혹은 연결된 서브메뉴)에

스위칭용 메뉴를 Toggle타입으로 만든다.


파라미터는 앞서 만든 MMD_mode로 지정하고

토글 중 일 때 MMD모드로 동작하도록 구상하였기 때문에

알아보기 간결하도록 메뉴에 "on"라고 넣었음.



4. 시엘 FX의 파라미터 탭에 1과 2처럼 Bool타입으로 추가해준다.

주의할 점은 InStation은 대소문자를 꼭 맞춰야 한다.

2번 파라미터는 스위칭용으로 우리가 만든 파라미터임.

※ "InStation"은 착석 여부를 반환하는 상수



5. 시엘FX의 레이어 탭으로 가서 "NoCustomLayer"와

"Avatar Default FX" 레이어를 삭제한다.


※ "NoCustomLayer"는 놔두고,

"Avatar Default FX"와 "BlinkControl" 레이만 삭제해도 동작 한다. 

부작용으로 특정 표정이 흉측하게 망가지고(매우 중요한 사항) 눈 깜박임을 못함.




6. 아래와 같이 "BlinkControl"레이어가 0번(상단) 위치

그 밑에 "LeftHand Face"가 1번 위치 RightHand Face가 2번 위치에 오게 하고

기존에 연결되어 있던 트렌지션은 삭제한다.



7. BlinkOFF 스테이트를 선택하고 Motion에 등록된 BlinkOFF 애니메이션 부분을 선택 후

키보드의 Delete키를 눌러서 등록된 애니메이션을 삭제한다.

(애니메이션 클립이 삭제되는 것은 아니니까 걱정은 안해도 된다.)



8. 아래와 같이 BinkOFF 스테이트의 Motion이 None (Motion)으로 나오면 된다.



9. MMD모드를 on 하였을 때 발생하는 이벤트로

트랜지션을 ON에서 OFF방향으로 연결 하고 인스펙터 탭의 내용을 아래와 같이 고쳐준다.

이동 조건은 [MMD_mode = True] AND [InStantion = True] 로 하기 위해

아래와 같이 트렌지션 하나에 두 가지 조건을 모두 넣어 준다.



10. 반대로 MMD 모드를 off하였을 때 발생하는 이벤트.

이동 조건은 [MMD_mode = False] OR [InStantion = False] 로 해야 하고

트랜지션을 두 개로 만들어서 하나에 한개씩 이동 조건을 넣어준다.


첫 번째 트랜지션은 아래와 같이 인스펙터를 작성한다.

조건은 "InStation" 상수 하나만 넣고 False로 지정.



12. 두 번째 트랜지션은 아래와 같이 인스펙터를 작성한다.

조건은 우리가 만들어둔 스위칭용 파라미터 "MMD-mode" 하나만 넣고 False로 지정.

※ 같은 스테이트에 트랜지션이 1개 이상 만들어지면 화살표가 세개로 표시된다.


-- 끝 --


13. 여기부터는 선택 사항.

iY와 MR은 월드가 좌우 손 레이어의 가중치를 조정 해주지만

다른 MMD 월드 들은 그런 기능을 제공하지 않는다.

스테이션 진입했을 때 컨트롤러를 놓고 편하게

감상 하고 싶다면 어렵지 않으니까 진행 해보자.


좌우 손에 등록된 애니메이션을 MMD진행 여부에 따라서

동작/비동작 하도록 가중치를 제어할 것임.


먼저 BlinkOFF 스테이트를 선택 후

인스펙터 창에서 Add Behaviour을 클릭하여

"VRCAnimatorLayerControl" 스크립트를 2개 추가 해준다. 



14. 추가된 스크립트를 아래와 같이 고쳐준다.

공통사항 Playable = FX, Goal Weight = 0

스크립트 첫 번째 Layer = 1

스크립트 두 번째 Layer = 2

※ MMD스테이션에 진입하면 가중치를 0으로 만들어서 양 손의 트래킹 애니메이션이 나타나지 않게함



15. 반대로 BlinkON 스테이트를 선택 후

인스펙터 창에서 Add Behaviour을 클릭하여

"VRCAnimatorLayerControl" 스크립트를 2개 추가 해준다. 


추가된 스크립트를 아래와 같이 고쳐준다.

공통 Playable = FX, Goal Weight = 1

스크립트 첫 번째 Layer = 1

스크립트 두 번째 Layer = 2

※ MMD스테이션이 아니라면 가중치를 1로 만들어서 표정 트래킹이 되도록 한다.


-- 진짜 끝 --


16. 여담.

눈 깜박임을 자동으로 해주는 것이 있다고 하는데 시엘은 

저 BlinkON 애니메이션 클립이 좌우 손 보다 상단에 있어야

특정 표정이 망가지지 않는다. 왜 그런지는 내 능력 밖이라 모름.


하단에 있으면 감고 있는데도 깜박여서 현재 표정과 깜박임이 겹침.

가끔 가다 보면 눈을 감고 있는데 깜박임이 겹치는 사람들이 이에 해당 될 듯.


FX만 수정해서 스위칭을 빼도 상관 없다.

다만, MMD말고 다른 월드에서 착석하면 눈 깜박임이 멈추고

눈을 시퍼렇게 뜨고만 있음.


스위칭용 파라미터의 옵션 중 기본 값과 상태 저장을 0으로 해 둔 이유는

우리가 MMD 월드를 홈으로 하지 않는 이상 일반 월드에서 시작하거나

이동해도 일반 월드들일 것 임.

저 옵션을 1로 하면 MMD모드가 켜진 것을 잊고

일반 월드들을 돌아다닐 수 있기 때문에 권장함.


알고 나면 별 거 아니지만 월드에 적힌 내용을 이해하고

내 아바타를 이해하고 나서야 알아 내서 적용하는데 1년 걸림 ㅋ

아이고 머리야...


그런데 시엘을 사용하는 사람이 있을까??