언리얼 엔진 에서 레벨 을 만들 때, 스태틱 메시 에 무언가를 어태치해야 하는 경우가 생길 수 있습니다. 월드 아웃라이너(World Outliner) 에서 스태틱 메시를 오브젝트의 부모로 지정할 수도 있습니다. 그러나 오브젝트를 메시의 정확한 위치에 배치해야 해서 번거로울 수 있습니다. 소켓(Socket) 은 스태틱 메시에 배치할 수 있는 어태치 포인트입니다. 소켓을 설정하면 오브젝트를 소켓에 연결할 수 있습니다. 이 튜토리얼에서는 스태틱 메시에 소켓을 생성하고 레벨에서 사용하는 방법에 대해 알아봅니다.
설정
현재 작업하고 있는 프로젝트가 있다면 해당 프로젝트를 사용하여 예시를 따라해도 좋습니다. 작업하고 있는 프로젝트가 없다면 언리얼 엔진을 시작하고 시작용 콘텐츠(Starter Content) 를 활성화한 상태로 새 프로젝트를 생성합니다. 이 가이드에서는 일인칭 템플릿을 사용하지만, 실제로는 어느 것이든 원하는 템플릿을 사용할 수 있습니다. 언리얼 엔진에서 새 프로젝트 생성하는 방법을 자세히 알아보려면 새 프로젝트 생성을 참고하세요.
프로젝트가 열리면 콘텐츠 브라우저(Content Browser) 에서 StarterContent 폴더를 찾습니다. 그런 다음 Props 폴더로 이동하여 SM_DoorFrame 이라는 스태틱 메시를 찾습니다.
프로젝트 작업을 하고 있지만 시작용 콘텐츠를 활성화하지 않았다면 콘텐츠 브라우저에서 에셋 을 임포트할 수 있습니다. 추가(Add) 드롭다운 메뉴에서 피처 또는 콘텐츠 팩 추가(Add Feature or Content Pack) 를 선택합니다. 자세한 내용은 콘텐츠 브라우저 인터페이스를 참고하세요.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
다음 중 하나를 수행하여 스태틱 메시 에디터(Static Mesh Editor) 에서 SM_DoorFrame 을 엽니다.
- 에셋을 더블클릭 합니다..
- 에셋을 우클릭 하고 컨텍스트 메뉴에서 편집(Edit) 을 선택합니다.
그 후 다음과 같이 스태틱 메시 에디터(Static Mesh Editor)에 문틀이 나타납니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
첫 소켓 생성하기
스태틱 메시 에디터(Static Mesh Editor)에서 스태틱 메시를 열었다면, 소켓을 생성하여 출입구 가운데에 불 파티클을 배치합니다.
먼저 스태틱 메시 에디터(Static Mesh Editor) 상단에서 창(Windows) 드롭다운 메뉴를 클릭하고 소켓 매니저(Socket Manager) 를 선택합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
다음과 같이 디테일 패널 옆에 소켓 매니저 창이 나타납니다. 창이 열린 후 소켓 생성(Create Socket) ()을 클릭합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
버튼을 클릭하면 소켓이 생성되며 이름 변경 메시지가 나옵니다. 이 예시에서는 Fire 를 사용합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
뷰포트에서 스태틱 메시를 보면 소켓의 이동 위젯이 보입니다. 보이지 않는다면 뷰포트 또는 소켓 매니저 패널에서 클릭하여 소켓이 표시되도록 합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
소켓이 보이게 되면 위치가 잘못된 것을 파악할 수 있습니다. 기본적으로 새 소켓을 생성하면 스태틱 메시의 원점이 있는 곳에 배치되기 때문입니다. 이 경우에는 문틀의 하단 중앙입니다.
뷰포트에서 이동 위젯을 사용하여 수동으로 소켓을 원하는 위치로 움직이거나, 소켓 매니저(Socket Manager) 패널에서 상대적 위치, 회전, 스케일을 변경할 수 있습니다. 이 가이드에서는 소켓을 출입구 중앙에 배치하여 플레이어가 문을 통과할 때 불을 지나가게 할 것입니다.
아래 이미지에 보이는 것처럼 상대적 위치의 Z 값을 0에서 115로 변경합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
스태틱 메시에 오브젝트 어태치하기
스태틱 매시에 소켓을 배치했다면, 이제 레벨에서 스태틱 메시에 오브젝트를 어태치할 수 있습니다.
스태틱 메시 에디터의 툴바에서 저장 을 클릭하고 레벨 에디터로 돌아갑니다.
콘텐츠 브라우저 에서 SM_DoorFrame 을 찾아서 레벨로 드래그합니다. 다음으로 StarterContent 폴더 안의 Particles 폴더로 이동한 다음 P_Fire 라는 에셋을 찾습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
P_Fire 도 레벨로 드래그하여 사본을 만듭니다. 이 파티클 이펙트는 SM_DoorFrame 에 어태치되어 불 역할을 할 것입니다.
P_Fire 의 인스턴스를 드래그했으면, 뷰포트에서 파티클을 우클릭 하여 컨텍스트 메뉴를 엽니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
컨텍스트 메뉴에서 어태치(Attach to) 를 선택합니다. 표시되는 검색 박스에 DoorFrame 을 입력하고 SM_DoorFrame 을 선택합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
SM_DoorFrame 을 선택했다면 오브젝트를 어디에 어태치할지를 정합니다. 이 목록에는 없음(None) 과 스태틱 메시에 생성한 모든 소켓이 표시됩니다. 목록에서 Fire 를 선택합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
아웃라이너에서 P_Fire 는 이제 SM_DoorFrame 의 자손입니다. 그러나 파티클 이펙트가 소켓 위치에 스냅되지 않은 것을 알 수 있습니다. 소켓 위치로 스냅하려면 파티클 이펙트의 트랜스폼 위치를 리셋해야 합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
P_Fire 를 선택하고 디테일(Details) 패널의 트랜스폼(Transform) 섹션으로 이동합니다. 위치(Location) 바의 맨 오른쪽에서 리셋 화살표 ()를 클릭하여 세팅을 디폴트로 다시 변경합니다.
이제 SM_DoorFrame 의 자손이므로 파티클 이펙트의 위치는 부모에 대해 상대적이 됩니다. 따라서 소켓 위치로 스냅되며 트랜스폼 값이 0,0,0으로 리셋됩니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
이제 파티클 이펙트가 스태틱 메시에 어태치되었습니다.

파티클 이펙트가 소켓을 통해 스태틱 메시에 어태치되었지만, 여전히 스태틱 메시와 별도로 이동하고, 회전하고, 스케일을 조절할 수 있습니다. 하지만 스태틱 메시의 트랜스포메이션을 변경하면 항상 어태치된 오브젝트의 트랜스폼도 영향을 받습니다.
디태치하기
오브젝트를 스태틱 메시에서 디태치하는 과정은 오브젝트를 어태치할 때와 비슷합니다.
디태치하려는 메시를 우클릭 하고 컨텍스트 메뉴에서 디태치(Detach) 를 선택하면 됩니다. 그러면 오브젝트는 더 이상 스태틱 메시의 자손이 아니게 됩니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
입체 문이 있는 출입구 만들기
소켓을 사용하여 불타는 출입구를 만들었으니, 이제 더 실용적인 것을 만들어 볼 차례입니다.
StarterContent 의 Props 폴더에서 SM_DoorFrame 을 레벨로 하나 더 드래그합니다. 그런 다음 SM_Door 를 찾아서 레벨로 드래그합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
이미 생성된 소켓을 사용하여 문틀에 문을 어태치할 수 있지만, 문제가 하나 있습니다. 스태틱 메시 SM_Door 는 원점이 하단 구석에 있으므로, 이 문을 Fire 소켓에 어태치하면 문이 공중에 떠서 출입구 구석을 뚫고 나오게 됩니다. 이 문제를 해결하기 위해 소켓을 하나 더 만들겠습니다.
새 소켓 만들기
스태틱 메시 에디터(Static Mesh Editor)에서 SM_DoorFrame 을 다시 열고 소켓 매니저(Socket Manager) 패널에서 새 소켓을 추가합니다. 소켓을 door라고 명명하여 나중에 문 메시를 어태치할 곳임을 알 수 있도록 합니다.
뷰포트에서 3D 위젯을 사용하여 소켓을 수동으로 움직이거나 소켓 매니저 패널 내에서 상대적 위치, 회전, 스케일을 변경할 수 있습니다. 예를 들어 소켓 상대적 위치의 Y 값을 42로 변경하면 소켓은 문틀 메시의 하단 구석에 배치됩니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
소켓이 보이지 않으면 소켓 버튼을 하이라이트하여 소켓을 표시하세요.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
문을 문틀에 어태치하기
이제 문을 문틀에 어태치할 소켓이 생겼으니 문틀 메시를 저장하고 레벨 에디터로 돌아갑니다.
레벨에서 문 메시 인스턴스를 선택하고 우클릭 하여 컨텍스트 메뉴를 엽니다.
컨텍스트 메뉴에서 어태치 를 선택한 다음, 표시되는 검색 박스에 SM_DoorFrame 을 입력합니다.
문을 어태치할 문틀 인스턴스를 찾아 선택합니다. 연결할 소켓을 물으면 Door 를 선택합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
기본적으로 SM_Door 에는 콜리전이 설정되어 있지 않습니다. 지금 레벨을 플레이하면 플레이어가 입체 문을 통과하여 걸을 수 있으므로, 문이 별로 유용하지 않습니다. 스태틱 메시 에디터에서 문에 단순한 박스 콜리전(Simple Box Collison) 을 설정합니다. 콜리전을 설정하는 방법ㅇ느 스태틱 메시에 콜리전 구성하기를 참고하세요.
콜리전을 설정한 후에는 블루프린트를 사용하여 문이 열리고 닫힐 수 있도록 비헤이비어를 스크립팅할 수 있습니다. 그 방법은 문 열기 가이드에서 알아보세요.