Choose your operating system:
Windows
macOS
Linux
이 글에서는 스프라이트에 오브젝트를 붙일 수 있는 소켓을 추가한 뒤 블루프린트 안에서 그 소켓에 접근하는 법에 대해 알아보겠습니다. 스프라이트 소켓에서 파티클 이펙트를 스폰(하여 불붙은 캐릭터를 표현)한다든가, 캐릭터의 손에 (총이나 칼같은) 무기를 붙이는 등, 스프라이트의 소켓에 붙이거나 스폰할 수 있는 것은 여러가지 있습니다.
이 예제에서는 캐릭터의 머리에 모자를 붙여보도록 하겠습니다.
스프라이트에 소켓을 추가하려면 :
-
소켓을 추가하고자 하는 스프라이트를 찾아 엽니다.
-
디테일 패널에서 Sockets 옆의 + 를 클릭하셔 소켓을 추가합니다.
-
Socket Name 을 입력하고 Local Transform 또는 뷰포트내 위젯을 사용하여 소켓을 옮깁니다.
뷰포트 안에서 소켓을 옮기려면, 먼저 줌인한 뒤 소켓을 클릭해야 할 수 있습니다.
참고로 소켓에 짓는 이름이 중요합니다. 위에서 HatSocket 이라는 이름의 소켓을 만들어 캐릭터에 2D 모자를 씌우고자 했습니다. 위 단계에서는 스프라이트 하나만 다뤘지만, idle 애니메이션에는 스프라이트가 8 종 있으므로, 그 스프라이트 각각에도 소켓을 추가해 줘야 합니다.
프로퍼티 매트릭스 를 사용하면 그 작업을 빠르게 할 수 있습니다.
다수의 스프라이트에 소켓 추가 :
-
콘텐츠 브라우저 에서 소켓을 추가하고자 하는 플립북 애니메이션 내 스프라이트 각각을 선택합니다.
-
스프라이트에 우클릭 한 다음 애셋 액션 아래 프로퍼티 매트릭스... 를 선택합니다.
프로퍼티 매트릭스 를 열면 이 스프라이트 전부를 동시에 변경할 수 있어 시간이 절약됩니다.
8 개의 프레임 전부가 선택되도록 이미 참고삼아 소켓을 추가했던 스프라이트도 선택했습니다.
-
프로퍼티 매트릭스 안에서 (소켓이 없는) 스프라이트 각각을 선택한 다음 + 를 클릭하여 소켓을 추가합니다.
-
엘리먼트 0 을 펼친 다음 Socket Name 아래 이름을 첫째 스프라이트와 똑같이 지어줍니다 (우리 예제에서는 HatSocket 입니다).
-
Local Transform 과 이동 을 펼친 다음 XYZ 값을 첫 스프라이트와 똑같이 설정합니다.
-
애니메이션 내 각 스프라이트를 열어 소켓이 잘 추가됐는지 확인합니다.
각 프레임마다 위치가 제대로 됐는지 확인하기 위해 스프라이트별로 소켓 위치를 조정해줘야 할 수도 있습니다.
플립북 각 프레임에 소켓을 붙였으니, 블루프린트더러 소켓 위치에 액터를 스폰시키라 할 수 있습니다.
블루프린트를 통해 스프라이트 소켓 접근하기 :
-
캐릭터 블루프린트 안에서 내 블루프린트 창의 눈 아이콘과 Show Inherited Variables (상속된 변수 표시)를 클릭합니다.
-
캐릭터의 Sprite 컴포넌트를 좌클릭 후 끌어 놓습니다.
-
Event Begin Play 노드에서 Spawn Actor from Class 노드를 추가한 다음 원하는 액터 클래스로 설정합니다.
-
Spawn Transform 에는 Make Transform 노드를, Return Value 에는 Attach To 노드를 사용합니다.
-
Sprite 컴포넌트를 In Parent 에 연결하고, In Socket Name 에는 만들어 둔 소켓 이름을 입력합니다.
구성이 위와 비슷할 것입니다. 예로 캐릭터에 아까 만든 HatSocket 위치에 모자 스프라이트 컴포넌트가 들어있는 블루프린트 Hat_BP 를 스폰하여 붙이고 있습니다. Idle 프레임에도 위와 똑같은 프로세스를 적용하여, 게임에서 (아래와 같이) 모자를 쓰고 있는 캐릭터가 만들어지게 되었습니다.
-
컴파일 후 에디터에서 플레이하면, 스폰되는 액터 클래스는 소켓 위치에 스폰되어 붙을 것입니다.
스프라이트에 소켓을 추가하면 그 소켓에 여러가지 것들을 붙일 수 있으며, 스프라이트가 플립북의 일부인지와는 상관없이 애니메이션이 적용될 뿐만 아니라, 소켓에 무엇이 들어가는지도 전적으로 여러분에게 달려있습니다.