양방향 텔레포트 시스템
게임에 양방향 텔레포트 시스템을 생성하여 창의성을 더해 보세요.
Last updated
게임에 양방향 텔레포트 시스템을 생성하여 창의성을 더해 보세요.
Last updated
참고: 텔레포트 시스템이 업데이트 되었습니다. 여기를 클릭하여 자세한 내용을 확인하세요.
참고: 이 시스템이 작동하려면 아바타가 사망한 후 재생성되어야 합니다. 현재 아바타가 사망하지 않을 경우 텔레포트 시스템을 이용할 수 없으므로 이를 고려하여 게임을 디자인해 주세요.
화면 상단의 ‘Global Parameters’ 버튼을 클릭합니다.
‘Controller’ 탭을 클릭합니다.
‘Components’ 탭을 클릭합니다. 이 창에서 아바타의 체력과 사망 조건을 설정할 수 있습니다.
‘Health’ 컴포넌트의 ‘Death Event’ 필드에서 ‘RespawnToTag’를 선택합니다.
‘Respawn Tag’에서 태그를 추가합니다. 위 이미지의 예시에서는 ‘spawn1’을 사용했습니다. 게임 내 ‘spawn1’ 태그가 추가된 모든 오브젝트는 아바타 사망 시 스폰 포인트로 이용됩니다.
‘Death Delay’는 아바타 사망 후 재생성되기까지 땅에 누워있는 시간을 설정합니다. 위 예시에서는 ‘-2’를 사용했습니다. 이는 사망 애니메이션 없이 즉시 아바타를 재생성합니다.
‘Instant Death Message’의 기본 메시지를 다른 옵션으로 변경하면 해당 메시지가 발생할 때 완전한 제어가 가능합니다. 위 예시에서는 'Killx'를 사용했습니다.
이제 아바타가 사망하면 가장 가까운 ‘spawn1’ 태그가 적용된 오브젝트를 찾아 해당 위치로 아바타를 재생성합니다. 태그를 찾을 수 없는 경우 시작 지점이나 현재 위치에서 생성됩니다.
스폰 포인트로 이용할 애셋을 배치합니다. 클라이언트에서 버그가 발생하지 않도록 게임 메이커 내 기본 오브젝트를 이용할 것을 권장합니다. 이미지의 예시에서는 평평하고 관리에 용이한 크기인 'Stone Carving'을 이용했습니다.
스폰 포인트를 선택하고 ‘spawn1’이라는 태그를 추가합니다.
이제 아바타가 사망하면 해당 돌 조각 위에 다시 생성될 것입니다. 해당 오브젝트를 투명하게 만들거나 게임에서 보이지 않도록 지하로 넣을 수 있습니다.
축하합니다! 이제 게임에 재생성 위치를 설정할 수 있습니다.
그럼 양방향 텔레포트 시스템은 어떻게 작동하는 것일까요? 조금 복잡하니 차근차근 함께 알아보도록 하겠습니다.
‘spawn point’를 선택하고 복사한 뒤 양방향 텔레포트 시스템이 작동할 다른 장소로 드래그합니다.
각 스폰 포인트를 선택하고 오브젝트를 투명하게 하기 위해 눈 모양 아이콘을 클릭합니다.
두 스폰 포인트를 선택하고 Physics를 'No collisions'로 설정합니다. 이렇게 하면 아바타를 포함한 다른 오브젝트에 의해 방해를 받지 않습니다.
스폰 포인트를 더블 클릭하여 아바타의 Health 컴포넌트 설정에 추가한 Tags와 동일한 태그를 추가합니다. 이 예시에서는 ‘spawn1’을 사용했습니다.
좋습니다! 이제 두 개의 스폰 포인트를 생성했습니다. 이제 텔레포트가 사용될 수 있도록 아바타의 사망을 트리거할 무엇인가가 필요합니다.
다음 단계로 진행하며 어떻게 해야 하는지 방법을 설명해 드리도록 하겠습니다. 양방향 텔레포트 시스템을 정확히 작동시키기 위해서는 두 개의 각자 다른 오브젝트에 'Asker' 비헤이비어를 사용해야 합니다. 불필요한 생성기를 삭제하기 위한 ‘Void’ 비헤이비어 또한 사용됩니다. 첫 번째 'Asker' 비헤이비어는 메시지를 전송하여 텔레포트해야 하는 생성기를 트리거하고, 두 번째 'Asker'는 아바타를 죽여 새로운 스폰 포인트로 텔레포트합니다. 아래를 통해 함께 알아보겠습니다.
텔레포트 시스템을 활성화할 레버나 버튼이 필요합니다. 이 예시에서는 기본 애셋인 ‘Ancient Lever’를 이용했고, 각 텔레포트 지점에 하나씩 추가했습니다.
레버에 ‘Asker’ 비헤이비어를 추가합니다.
플레이어가 읽을 텍스트를 추가합니다. 하나의 답변과 하나의 옵션만 제공합니다. 위 예시에서는 전송할 메시지로 ‘teleportAway’를 사용했습니다.
두 번째 Asker는 어차피 보이지 않을 것이므로 아무 애셋이나 사용해도 상관 없습니다. 이 예시에서는 작은 기본 애셋인 'NumPad Switch'를 사용했습니다.
레버 가까이에 오브젝트를 두고 ‘Asker’ 비헤이비어를 추가합니다.
‘Message Required’를 ‘teleportAway’로 설정합니다.
이제 아바타가 레버와 상호작용할 경우, 질문 1이 전달됩니다. 대답하면 질문 2에 메시지가 전송되며 즉시 로직 체인이 시작됩니다.
질문 2의 대답을 아바타의 죽음 즉, 앞서 설정한 'Kill1'으로 설정합니다.
‘NumPad Switch’를 투명하게 하고 ‘No Collisions’로 설정합니다.
이제 아바타가 사망하면 레버 밑에 있는 스폰 포인트로 텔레포트가 될 텐데, 우린 이걸 원하는 게 아니죠. 다른 쪽의 스폰 포인트로 아바타가 생성되게 하고 싶은데, 둘 다 같은 태그를 가지고 있으니 이제 어떻게 해야 할까요? ‘Void’ 비헤이비어를 이용해 레버를 활성화하면 아바타 발 아래 스폰을 삭제하도록 하겠습니다. 아래 설명을 통해 알아보시죠.
또다른 ‘NumPad Switch’를 놓고 ‘Void’ 비헤이비어를 설정합니다.
‘NumPad Switch’를 투명하게 하고 ‘No Collisions’로 설정합니다.
‘Void’ 비헤이비어 설정에서 Asker가 응답할 때 가장 먼저 보내는 메시지인 Message Required를 'teleportAway'로 설정합니다.
‘Blocks Destruction’을 ‘DontDestroy’로 설정합니다.
‘Assets Destruction’을 ‘OnlyDestroyFromList’로 설정합니다.
‘Assets List’에 텔레포트로 이용할 애셋을 선택합니다. Void는 빨간색 구역의 애셋을 찾게 되므로 텔레포트가 해당 경계 안에 있는지 확인하세요.
이제 텔레포트를 이용하면 다른 쪽으로 텔레포트되어야 합니다!
하지만 아직 몇 가지가 더 남았습니다. 다른 쪽으로 이동할 순 있지만, 첫 번째 텔레포트를 삭제했으므로 다시 돌아올 방법이 없는데요. 이제 이 부분을 설정해 보겠습니다.
생성한 두 개의 ‘NumPad Switch’를 복사하여 다른 쪽의 텔레포터로 드래그하고 놓습니다.
다른 쪽의 'Void' 비헤이비어가 추가된 'NumPad Switch'가 빨간색 구역 안에 포탈이 있는지 확인하세요.
Message Required를 ‘teleportHome’으로 설정합니다.
다른 ‘NumPad Switch’를 선택하고 Message Required를 ‘teleportHome’으로 설정합니다.
‘Ancient Lever’를 선택해 ‘A1 Broadcast’ 메시지를 ‘teleportHome’으로 변경합니다.
이제 발 밑의 생성기를 삭제 후에 아바타를 다시 죽이는 모든 기능을 설정했지만, 이번에는 추가 스폰 포인트가 없습니다. 다른 쪽으로 이동하기 위해 홈 텔레포트를 삭제했기 때문입니다. 그럼 이제 이동할 수 있도록 텔레포트를 반대편으로 불러올 방법을 찾아야 합니다. 이제부터 함께 해 보죠.
또다른 ‘NumPad Switch’를 만들어 ‘Asset Spawner’ 행동을 부여합니다.
‘NumPad Switch’를 투명하게 하고 ‘No Collisions’로 설정한 뒤 생성기 바로 위에 배치합니다. 아래 이미지를 참조하세요.
‘Asset to Spawn’을 ‘Stone Carving’으로 설정합니다.
‘Tags’에 ‘spawn1’을 추가합니다. 이를 통해 새 스폰 포인트로 이동하게 됩니다.
다른 설정을 모두 완료하면 ‘Message required’를 ‘teleportHome’ 으로 설정하고 Ctrl + D로 이 애셋을 복사한 뒤, 다른 텔레포터 장소로 끌어다 놓고 메시지를 ‘teleportAway’로 변경합니다.
‘Physics Type’을 ‘No Collisions’로 설정합니다.
모두 완료되었습니다! 이제 양방향 텔레포트 시스템을 완성했습니다. 정말 멋지죠!