일반적으로 언리얼에서는 시작할 때 캐릭터를 월드 특정 위치에 배치하지 않음.
배치하기 보다는 플레이어 스타트 지점에서 캐릭터가 스폰되게 하는 경우가 많음.
이렇게 하는 가장 큰 이유는 플레이어의 시작 방식을 좀 더 유연하게 할 수 있기 때문임.
예를 들어, 플레이를 시작할 때 테스트하고 싶은 위치에서 우클릭 후 Play From Here 를 클릭하면 해당 위치에서부터 게임을 테스트할 수 있음.
그러나 지금 게임을 플레이해보면 캐릭터를 월드에 직접 배치해놨기 때문에 해당 위치에서만 시작하게 됨.
월드에서 해당 캐릭터를 제거하고 시작하게 되면 캐릭터가 생성되지 않고 게임이 플레이됨.
플레이어 스타트 지점을 월드에 배치하고 게임을 시작해도 마찬가지.
그 이유는, 우리가 어떤 캐릭터를 사용하고자 하는지 모르기 때문임.
이러한 문제는 게임 모드라는 클래스로 해결할 수 있음.
게임 모드란 기본적으로 레벨에 들어가서 게임 규칙을 관리하는 액터로, 누가 어디에 스폰해야 하는지, 플레이어에게 어떤 클래스를 사용하고 그외에도 게임 작동 방식을 정의하는 수많은 클래스를 사용하는 방법을 알려줌.
멀티플레이어 게임에서는 해당 게임에 허용되는 플레이어 수, 바람 조건, 게임 유형 등을 제어할 수 있음.
툴바에서 블루프린트 드롭다운 버튼을 클릭하면 게임 모드와 관련된 두 가지 선택사항이 있는 것을 확인할 수 있음.
GameMode: New... 는 프로젝트 전체에 대한 설정으로, 프로젝트에서 생성한 모든 레벨에 대한 기본 게임 모드를 알려줌.
GameMode: Edit ~ 는 특정 레벨에 대한 게임 모드를 알려줌.
현재 메인 레벨에서 사용하고 있는 게임 모드가 월드 오버라이드 섹션에 있는 것을 확인할 수 있는데, 해당 게임 모드 클래스는 에셋 키트와 프로젝트에 포함되어 있던 것이므로 우리만의 게임 모드를 만들어 볼것임.
이번에는 블루프린트로 게임 모드를 만들겠지만, C++로도 만들 수 있음.
GameMode: New > Create > 새로 만들 게임모드 액터 클래스의 기반이 될 베이스를 선택.
권장하는 것은 불필요한 것을 제외한 최소한의 설정과 항목만 포함하는 GameModeBase
생성시 일반적인 블루프린트 클래스를 생성했을 때와 동일한 블루프린트 에디터 창이 나옴.
여기서 주목해야 할 점은, 위의 메뉴에서 Class Defaults 를 클릭하면 오른쪽 Details 창에 Classes 섹션이 있음.
이 섹션에서 월드에 어떤 플레이어를 스폰할지 정할 수 있음.
해당 섹션에서 Default Pawn Class 를 우리가 만든 캐릭터 클래스로 설정.
Default Pawn Class 는 플레이할 기본 플레이어
그리고 메인 레벨로 돌아와 똑같은 메뉴를 클릭하면 월드 오버라이드에 여전히 기존에 있던 게임모드가 있음.
따라서 이걸 없애고 우리가 방금 만들었던 프로젝트의 디폴트 게임 모드로 설정.
마지막에 None을 클릭하여 월드 오버라이드 게임 모드를 없애주면 됨.
그러면 우리가 만든 게임 모드의 왼쪽에 하얀색 원이 채워진 것을 통해 더 이상 게임 모드가 오버라이드 되지 않고 기본 게임 모드로 설정된 것을 확인할 수 있음.
그리고 월드에 배치했던 캐릭터를 제거하고 Player start 액터를 월드에 배치함.
이후 게임플레이를 누르면 기본적으로 player start 지점에서 캐릭터가 스폰되고 시작됨.
그리고 다른 지점에서 Play From Here를 누르면 해당 지점에 플레이어가 스폰되고 게임이 시작됨.
따라서 플레이할 캐릭터를 직접 월드에 배치하기 보다는, 플레이어가 스폰될 시작 위치를 배치해두고, 게임모드에서 디폴트 폰을 설정하면 유연한 게임 플레이 및 테스트가 가능해짐!