※모든 내용은 AI로 제작하거나 요약하지 않은, 직접 작성한 글입니다.
이 글에서는 모듈러 아바타의 기능을 이용해 월드 고정을 쉽게 구현해 보겠습니다.

야광 공룡입니다.
이녀석을 월드에 설치할 겁니다.

기능 구현에는 이 두 개의 컴포넌트가 주요하게 사용됩니다.
World Fixed Object는 Constraint 계열 컴포넌트가 작동하지 않을 때, 자동으로 월드에 고정시켜 줍니다.
Parent Constraint를 사용하면 원하는 부위에 오브젝트를 고정시킬 수 있습니다.
필요할 때 이 컴포넌트를 토글하는 식으로 활용하게 됩니다.
Parent Constraint를 사용하는 순간부터 오브젝트가 고정되어있기 때문에,
Bone Proxy 종류의 컴포넌트로 추가적으로 고정할 필요는 없습니다.

오브젝트에 해당하는 컴포넌트들을 넣어줍니다.
Source 부분에 손 등의 부분을 지정한 다음 위치를 맞추고 Is Active를 체크함으로써 역할을 합니다.

손에 묶었으니 이렇게 따라옵니다.
월드 고정과 아바타 고정을 전환하는 기능을 짜 봅시다.

공룡을 항상 손에 쥐고 다니지 않고 필요할 때만 버튼을 통해 꺼낼 겁니다.
MA Menu Item을 사용하면 비파괴로 간단한 토글 메뉴를 만들 수 있습니다.
5분만에 쉽게 아바타 옷장 만들기 (2) 악세서리 옷장 에 자세한 진행 과정이 있으니 참고해 주세요.
파라미터 부분만 후에 만들 애니메이션 레이어에 사용하기 위해 dino를 지정했습니다.
아이템 종류는 월드에 입장했을 때 켜두지는 않으니 기본값 저장 전부 체크 해제했습니다.

이후 MA Merge Animator를 추가합니다.
애니메이션을 기능에 맞게 배치하려면 애니메이션 컨트롤러가 필요합니다.
그 컨트롤러 파일을 비파괴로 배치해 주는 컴포넌트입니다.

원하는 곳에 컨트롤러 파일을 만들어 이전 사진처럼 배치해 주면 밑작업은 끝났습니다.

최종적으로 짜여지는 계층 구조와 컴포넌트 배치는 이렇게 됩니다.
dino: Menu Installer, Merge Animator, Menu Item-sub menu
ㄴNightGlowingDinosaur(오브젝트): World Fixed Object, Parent Constraint
ㄴtoggle: Menu Item-toggle, Object Toggle
참고해 주세요.

오브젝트 폴더 최상단에 애니메이션을 드래그드롭 합니다.
이러면 컨트롤러 파일이 생성되면서, 애니메이션이 오브젝트에 연결되어 녹화할 수 있는 상태가 됩니다.

애니메이션을 더블클릭해서 하단 애니메이션 탭을 열고,
오브젝트를 선택한 다음 녹화를 켭니다.
Parent Constraint의 컴포넌트 체크박스를 켰을 때가 고정, 껐을 때가 고정 해제입니다.
일단 한쪽을 녹화해 줍시다.

녹화를 끝마친 이후 애니메이션 파일을 복제해서 이름이랑 값만 바꿔주면 됩니다.
애니메이션 녹화는 이렇게 끝났습니다.

이제 Merge Animator에 집어넣는 컨트롤러의 내용물을 짜봅시다.
맨 위쪽 레이어는 빈 상태로 두고, 새 레이어를 만들어 Weight를 1로 지정합니다.

녹화한 애니메이션을 끌어서 집어넣으면 사각형 박스인 스테이트가 생성됩니다.
기능을 짤 때는 상태변화가 없는 기본 상태를 Layer Default State (주황색) 으로 지정합니다.
저희는 아바타에 고정된 게 기본 전제이기 때문에, 그쪽을 기본으로 지정합니다.

두 스테이트의 Write Defaults는 체크 해제합니다.
체크할 필요가 없기 때문입니다.

많은 방법이 있지만, 손동작으로 상태를 제어하기 위해 Int형인 GestureLeft를 사용해 보겠습니다. (대소문자 구분)
아바타가 기본적으로 사용하는 파라미터이기 때문에 따로 파라미터를 등록하지 않아도 됩니다.
Bool형 dino는 Menu Item에 등록해두었던 파라미터로, 역시 세팅한 그대로 이용할 수 있습니다.
강좌에서 MA Parameters를 사용하지 않는 이유입니다.

우클릭 > Make Transition으로 각 스테이트에 화살표를 연결합니다.
각각 세팅한 조건을 만족하면 상태가 바뀌게 됩니다.
dino on(아바타 고정) -> dino off(월드 고정) 으로 가는 트랜지션부터 살펴보겠습니다.

오브젝트가 켜져 있을 때 + 왼손 제스처가 2(open)일 때 월드에 고정되도록 합니다.

오브젝트가 꺼질 때 다시 아바타 고정으로 돌아오도록 합니다.
Transition Duration은 둘 다 0으로 설정했습니다.
이제 설정이 끝났습니다.

제스처 매니저로 테스트해 봅니다.
toggle로 공룡을 껐다켤 수 있으며...

의도한 대로, Open으로 월드에 고정시킬 수 있습니다.
이후 제스처를 바꿔도 끌 때까지 월드 고정이 계속 유지되어, 원하는 기능을 만들었습니다.
이렇게 모듈러 아바타를 활용해서 월드 고정을 구현해 보았습니다.
글을 참고해서 재밌는 기능을 많이 만들어 보아요.
'VRChat > 아바타 꾸미기 (Unity)' 카테고리의 다른 글
| 아바타에 호환되는 다른 아바타 옷 입히기 (0) | 2026.01.06 |
|---|---|
| VRCHeadChop으로 시야에서 숨기기 / 시야에서 표시하기 (0) | 2025.11.29 |
| 릴툰 fakeshadow를 이용해 앞머리 그림자 만들기 (1) | 2025.11.22 |
| 알파 마스크로 반투명 앞머리 만들기 (0) | 2025.11.20 |
| 모듈러 아바타로 모델의 메쉬 지우기 (0) | 2025.11.10 |