양방향 텔레포트 시스템

게임에 양방향 텔레포트 시스템을 생성하여 창의성을 더해 보세요.

참고: 텔레포트 시스템이 업데이트 되었습니다. 여기를 클릭하여 자세한 내용을 확인하세요.

참고: 이 시스템이 작동하려면 아바타가 사망한 후 재생성되어야 합니다. 현재 아바타가 사망하지 않을 경우 텔레포트 시스템을 이용할 수 없으므로 이를 고려하여 게임을 디자인해 주세요.

  • 화면 상단의 ‘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’로 설정합니다.

모두 완료되었습니다! 이제 양방향 텔레포트 시스템을 완성했습니다. 정말 멋지죠!

Last updated