스켈레탈 메시에서 본에 오브젝트를 어태치할 때 이 어태치먼트를 오프셋해야 하는 경우가 있습니다. 수학 연산을 사용하여 오프셋 트랜스폼을 추정하는 대신 소켓 을 생성할 수 있습니다. 소켓은 스켈레톤 계층구조 내의 전용 어태치 포인트로, 부모로 지정된 본에 상대적으로 트랜스폼할 수 있습니다. 구성한 후에는 오브젝트, 무기 및 기타 액터를 소켓에 어태치할 수 있습니다.
이 문서에서는 소켓을 생성하고 사용하는 방법을 살펴봅니다.
전제 조건
- 프로젝트에 스켈레탈 메시가 있어야 합니다.
소켓 생성하기
소켓은 스켈레톤 트리(Skeleton Tree) 에서 생성됩니다. 메인 애니메이션 에디터 중 하나에서 스켈레톤 트리에 액세스할 수 있습니다. 스켈레톤 트리 에서 본을 우클릭하고 소켓 추가(Add Socket) 를 선택합니다.

새 소켓이 '스켈레톤 트리'에 표시되면 앞에서 선택한 본을 부모로 지정합니다.

소켓을 우클릭하고 삭제(Delete) 를 선택하거나 키보드의 Delete 를 눌러 삭제할 수 있습니다.

기본적으로 소켓을 생성하고 조작하면 스켈레탈 메시의 스켈레톤 에셋이 편집됩니다. 따라서 소켓을 변경한 경우에는 저장해야 합니다.
소켓 관리 및 편집하기
소켓을 생성하면 다음과 같은 방식으로 소켓과 인터랙션할 수 있습니다.
소켓 비저빌리티
기본적으로 소켓은 애니메이션 에디터 뷰포트에 표시되지 않습니다. 뷰포트 메뉴에서 캐릭터(Character) > 본(Bones) 으로 이동하여 소켓(Sockets) 을 활성화하면 소켓을 시각화할 수 있습니다.

선택 및 이동
소켓을 '스켈레톤 트리'에서 클릭하거나, 뷰포트에 표시된 경우 뷰포트에서 클릭하여 선택할 수 있습니다. 그런 다음 뷰포트에서 트랜스폼 조작 툴로 드래그하여 옮길 수 있습니다. 소켓은 이동, 회전 및 스케일 조절할 수 있습니다.

복사 및 붙여넣기
소켓은 필요에 따라 다양한 방식으로 복사하고 붙여 넣을 수 있습니다.
소켓을 복사하려면 '스켈레톤 트리'에서 우클릭하고 선택된 소켓 복사(Copy Selected Sockets) 를 선택하거나 Ctrl+C 를 누릅니다.

다음으로 둘 중 하나를 선택합니다.
-
소켓을 같은 본에 붙여 넣습니다. 이렇게 하려면 '스켈레톤 트리'에서 본을 우클릭하고 소켓 붙여넣기(Paste Sockets) 를 선택합니다. 그러면 소켓이 복제됩니다.
-
소켓을 다른 본에 붙여 넣습니다. 이렇게 하려면 '스켈레톤 트리'에서 다른 본을 우클릭하고 선택된 본에 소켓 붙여넣기(Paste Sockets To Selected Bone) 를 선택합니다. 그러면 해당 소켓의 사본이 같은 오프셋 정보를 사용하여 붙여 넣어지고 새 본이 부모로 지정됩니다.
메시 소켓
여러 스켈레탈 메시 간에 스켈레톤을 공유할 때 스켈레탈 메시 중 하나에만 적용되는 소켓을 생성해야 할 수도 있습니다. 이 경우 메시 소켓(Mesh Socket) 을 사용하면 스켈레톤 이 아닌 스켈레탈 메시 에 소켓이 생성됩니다.

메시 소켓을 생성하려면 기존 소켓을 우클릭하고 메시 소켓 생성(Create Mesh Socket) 을 선택합니다. 이렇게 하면 소켓이 메시 소켓으로 변환됩니다. 메시 소켓을 생성할 스켈레탈 메시에 대한 스켈레탈 메시 에디터(Skeletal Mesh Editor)를 사용 중인지 확인해야 합니다.

스켈레톤 에셋의 소켓과 마찬가지로 메시 소켓은 스켈레탈 메시에 존재하며, 메시 소켓을 생성하거나 수정할 때마다 저장해야 합니다.
소켓 디테일
소켓을 선택하면 디테일(Details) 패널에 다음과 같은 프로퍼티가 표시됩니다.

이름 | 설명 |
---|---|
상대적 위치(Relative Location)/상대적 회전(Relative Rotation)/상대적 스케일(Relative Scale) | 위치, 회전 또는 스케일에서 부모 본에 대한 현재 소켓 트랜스폼 좌표(상대적 좌표)입니다. |
항상 애니메이팅 강제(Force Always Animated) | 활성화한 경우, 이 소켓의 모든 부모 본이 현재 LOD 세팅으로 인해 제거되어도 항상 평가됩니다. |
소켓 이름(Socket Name) | 이 소켓의 이름입니다. |
본 이름(Bone Name) | 이 소켓이 어태치된 본의 이름입니다. 이 값을 다른 본으로 변경하면 소켓의 부모가 다시 지정됩니다. |
소켓에 어태치하기
소켓을 생성하고 배치한 후에는 소켓에 오브젝트, 이펙트 및 기타 액터를 어태치할 수 있습니다. 다음과 같은 어태치먼트를 수행할 수 있습니다.
기본 레벨 어태치먼트
레벨 내에 기본 어태치먼트를 구성할 수 있습니다. 여기에서 오브젝트는 기본적으로 소켓에 어태치됩니다. 여기에는 몇 가지 방법이 있습니다.

드래그 앤 드롭
'레벨 아웃라이너(Level Outliner)'에서 오브젝트를 스켈레탈 메시 액터로 드래그합니다. 표시되는 창에서 어태치할 본 또는 소켓을 선택할 수 있습니다. 소켓을 선택하면 어태치먼트 프로세스가 완료됩니다.

레벨에서 어태치할 때 오브젝트가 이전의 월드 트랜스폼을 유지합니다. 이는 여러 오브젝트에 대해 고유한 오프셋을 생성하는 경우 유용합니다. 오브젝트가 소켓 트랜스폼에 일치하게 하려면 오브젝트의 트랜스폼 값을 디폴트로 설정합니다.

컨텍스트 메뉴
오브젝트를 우클릭하고 다음에 어태치(Attach To) 를 선택한 다음 스켈레탈 메시 액터를 클릭합니다. 표시되는 창에서 어태치할 본 또는 소켓을 선택할 수 있습니다. 소켓을 선택하면 어태치먼트 프로세스가 완료됩니다.

소켓 스냅
레벨 에디터에서 세팅(Settings) 드롭다운 메뉴를 클릭하고 소켓 스냅 활성화(Enable Socket Snapping) 를 선택합니다. 그러면 뷰포트에 모든 소켓 이 표시됩니다.

다음으로, 오브젝트를 먼저 선택한 후 소켓을 선택하여 오브젝트를 표시되는 소켓에 빠르게 어태치할 수 있습니다.

기본 블루프린트 어태치먼트
기본 디폴트 어태치먼트를 블루프린트의 스켈레탈 메시 컴포넌트 에 구성할 수도 있습니다.
먼저 오브젝트를 컴포넌트(Components) 패널의 스켈레탈 메시로 드래그하여 스켈레탈 메시 컴포넌트를 오브젝트의 부모로 지정합니다.

다음으로, 자손 오브젝트를 선택하고 디테일 패널에서 부모 소켓(Parent Socket) 프로퍼티를 찾습니다. 검색 버튼 을 클릭하고 어태치할 소켓을 선택합니다.

동적 어태치먼트
오브젝트의 소켓 어태치 및 디태치 시점을 제어하려는 경우 다양한 어태치 및 디태치 블루프린트 함수를 사용할 수 있습니다.
어태치의 경우, 다음 함수를 사용할 수 있습니다.
- Attach Actor To Actor
- Attach Actor To Component
- Attach Component To Component

어태치 함수는 다음과 같은 프로퍼티를 포함합니다.
이름 | 설명 |
---|---|
타깃(Target) | 어태치되는 자손 액터 또는 컴포넌트입니다. |
부모(Parent) | 타깃 이 어태치되는 대상 부모 액터 또는 컴포넌트입니다. |
소켓(Socket) | 어태치할 때 사용할 소켓입니다. |
위치 규칙(Location Rule)/회전 규칙(Rotation Rule)/스케일 규칙(Scale Rule) | 타깃 이 어태치된 이후의 위치를 제어하는 트랜스폼 규칙입니다. 다음 옵션 중에서 선택할 수 있습니다.
|
시뮬레이션된 바디 결합(Weld Simulated Bodies) | 타깃을 부모와 결합할지 여부입니다. |
디태치의 경우 다음 함수를 사용할 수 있습니다.
- Detach From Actor
- Detach From Component
