게임플레이 요소 시작하기
개요
언리얼 엔진 3나 언리얼 개발 키트로 만든 프로젝트면 무엇에든 공통이 되는 게임플레이 요소가 여럿 있습니다. 이러한 요소를 커스터마이징하면 딱 바라는 대로 보여지고 동작하는, 완전히 독특한 게임을 만들 수 있습니다. 똑같은 프로젝트가 둘 있을 수는 없기에, 언리얼 엔진이 이러한 요소의 기본 구현을 제공함에도, 원하는 게임 디자인을 맞추기 위해서는 각 요소를 꽤나 많이 변경해 줘야 할 것입니다.
Basic Game Quick Start KR 페이지에 프로젝트를 돌릴 수 있게끔 준비하고 커스텀 게임플레이 클래스를 제작하는 데 도움이 될만한 내용이 담겨 있습니다. 모바일이든 PC든, 필요에 따라 커스터마이징할 수 있는 (3인칭 시점 구현이긴 해도) 빈 게임 프레임워크를 만드는 과정을 자세히 다루고 있습니다.
게임타입 개요
게임타입은 게임의 규칙을 담당합니다. 게임의 틀을 구성하며, 본질적으로는 언리얼 엔진 3로 만든 게임의 기반이 됩니다. 언리얼 토너먼트 3같은 게임이라면 게임타입 개념은 꽤나 확실하겠습니다. 메뉴에서 바로 선택할 수 있는 데쓰매치, 깃발뺏기 등의 게임타입이 여럿 있습니다. 다른 게임에서는 게임타입 개념이 훨씬 불분명할 수 있습니다. 1인용 플랫포머 게임을 예로 들어보겠습니다. 플레이어가 볼 수 있는 명시적인 게임타입은 없으나, 현재 "레벨"을 깬 것으로 판단하는 게임 규칙과 조건은 있을 것입니다. 플레이어에게 부과된 시간 제한이 있을 수도 있고, 플레이어가 특정 지점에 도착하거나 "보스" 캐릭터를 무찔러야 레벨을 깨는 것일 수도 있습니다. 이러한 것들이 게임타입이 콕 짚어 기록을 유지하게 될 요소의 유형입니다. 좀 더 복잡한 예를 들자면, 던전 탐험 유형의 게임이 되겠습니다. 메인 월드에는 게임 프로세스와 조건의 기록을 유지하는 최상위 게임타입이 있을 것입니다. 그러나 각 던전마다 자체적인 규칙과 목표 세트를 두어 완전히 독특하게 만들기 위해, 그 던전에 맞는 게임타입을 둘 수도 있겠습니다.
GameInfo 게임인포
게임의 게임타입은 GameInfo (게임인포) 클래스에 의해 제어됩니다. 이 클래스의 새로운 서브클래스는 게임이 포함할 각 게임타입에 대해 생성됩니다. 게임의 게임타입 수는 얼마든 있을 수 있습니다만, 한 번에는 딱 하나만 사용되어야 할 것입니다. 게임인포 액터는 게임플레이 UGameEngine::LoadMap() 에 대해 레벨이 초기화될 때 인스턴스화됩니다. 별달리 지정되지 않는 한 이 게임타입이 레벨 지속기간동안 사용됩니다.
이 클래스는 일반적으로 다음과 같은 것을 담당합니다:
- 어디에 플레이어를 스폰시킬지 결정합니다.
- 플레이어에게 적절한 인벤토리 아이템을 줍니다.
- 제한 시간을 설정합니다.
- 플레이어의 점수/킬수를 기록합니다.
- 필요한 경우 레벨을 리셋시킵니다.
- 게임 끝 조건을 검사합니다.
플레이어를 구성하는 데 사용된 클래스, HUD에 사용된 클래스, 각 게임타입이 완전히 독특해지게 하기 위해 필요한 여러가지 클래스 등이 게임타입에 지정됩니다.
게임타입, 게임인포 클래스, 커스텀 게임타입 제작 등에 대한 상세 정보는, Gametype Technical Guide KR 페이지를 참고해 주십시오.
플레이어 개요
언리얼 엔진 게임의 각 플레이어는 모두 함께 작동하는 여러가지 시스템들로 구성됩니다. 이 시스템들은 플레이어의 모양과 동작은 물론 세계를 어떻게 바라볼 것인지, 게임을 하는 사람의 입력을 게임내 동작으로 어떻게 해석할 것인지 등을 제어합니다.
PlayerController 플레이어 콘트롤러
플레이어와 언리얼 엔진 3의 기타 개체는 일반적으로 Controllers 에 의해 제어됩니다. Controller 는 개체의 뇌로, 동작 방식을 결정합니다. 플레이어는 자체적으로 별도의 콘트롤러 PlayerController 를 갖는데, 게임을 하는 사람의 입력을 받아 동작으로 변환하는 기능을 합니다.
Pawn 폰
PlayerController 가 플레이어의 뇌라면, Pawn 은 플레이어나 게임 내 기타 개체의 물리적 표현, 즉 몸을 나타냅니다. Pawn 은 Controller 에서 명령을 받은 다음 수행합니다. 여기서 애니메이션과 대미지 및 플레이어의 기타 물리-관련된 국면이 처리됩니다.
플레이어 시스템, 콘트롤러, 폰, 커스텀 플레이어 및 캐릭터 생성에 대한 상세 정보는, Characters Technical Guide KR 페이지를 참고해 주시기 바랍니다.
Camera 카메라
플레이어가 세계를 보는 시야는 카메라 시스템과 Camera 클래스에 의해 처리됩니다. 이 클래스는 월드를 뷰포트에 렌더링할 위치와 회전을 지정합니다. 즉 본질적으로 플레이어의 눈인 것입니다. 커스텀 Camera 클래스, 또는 완전 별도의 커스텀 카메라 시스템을 사용해서 완전히 새롭고 독특한 형태의 뷰를 만들 수 있습니다. 예를 들어 디폴트 뷰는 플레이어 자체가 보이지는 않은 일인칭 원근 시점입니다. 마치 게임을 하는 사람이 게임의 플레이어 눈으로 직접 보는 것과 같은 것입니다. 커스텀 Camera 클래스로 이 뷰를 게임내 플레이어에서 쉽게 떨어뜨릴 수 있으며, 게임을 플레이하는 사람이 게임내 캐릭터와 함께 세계를 같이 볼 수도 있습니다. 내려보기, 횡스크롤, 등척(isometric) 원근법도 모두 이 시스템으로 쉽게 만들어낼 수 있습니다.
Input 인풋
PlayerController 는 플레이어에게서 입력을 받은 다음 게임의 동작으로 변환하는 기능을 합니다. 이 입력은 Input 클래스, 특히 PlayerInput 클래스에서 옵니다. 콘트롤러나 키보드나 마우스에서 버튼이나 키 입력을 받아 사용가능한 데이터로 변환하는 작업을 담당하는 클래스입니다. 그 후 이 PlayerController 가 필요한 작업을 하기 위해 이 데이터를 사용할 수 있게 됩니다. 이는 별개의 시스템이지만, 카메라 시점을 크게 바꾸면 플레이어를 제어하는 데 사용되는 플레이어 인풋 방식도 거의 변경해 줘야 할 것입니다.
카메라 시스템, Camera 클래스, 커스텀 카메라 시점 및 플레이어 콘트롤 제작 등에 대한 세부사항은, Camera Technical Guide KR 페이지를 참고해 주시기 바랍니다.
HUD 및 UI 개요
HUD(Heads-Up Display, 머리위 표지)는 게임플레이 도중 화면에 겹쳐놓이는 상태 및 정보를 가리킵니다. HUD의 목적은 플레이어에게 게임의 현 상태, 즉 점수, 생명력, 남은 시간 등을 알려주기 위함입니다. HUD는 보통 상호작용식이 아닌데, 무슨 뜻이냐면 플레이어가 HUD 요소는 클릭용이 아니라는 것입니다. 이는 종종 특정 게임 형태에서는 HUD와 UI(유저 인터페이스)의 구분이 모호해 지기도 합니다.
UI는 메뉴와 기타 상호작용식 요소를 가리킵니다. 이러한 요소는 보통 HUD와 훨씬 비슷한 방식으로 화면상에 겹쳐놓여 그려지지만, 어떤 경우에는 세계의 표면상에 렌더링되는 게임 세계 자체의 일부가 될 수도 있습니다. UI의 가장 확실한 예는 게임 시동시 표시되면 메인 메뉴 또는 플레이어가 게임을 일시정지시킬 때 표시되는 일시정지 메뉴가 되겠습니다. 그러나 다른 UI도 게임 도중에 표시될 수 있습니다. 이는 게임 내 캐릭터간의 대화를 표시하거나 RTS 또는 RPG에서는 좀 더 복잡한 상황에서 쓰일 수 있는데, 무기나 갑옷 또는 만들 유닛을 플레이어가 선택하게 하는 등 게임 플레이 자체의 필수 요소가 될 수도 있습니다.
HUD
HUD 클래스가 화면상에 겹쳐놓이는 요소를 표시하기 위한 베이스 클래스입니다. 게임의 모든 플레이어는 개별 뷰포트에 그려주는 자체 HUD 인스턴스를 갖고 있습니다. 사용할 HUD의 종류나 클래스는 사용되는 게임타입에 의해 지정됩니다.
HUD 클래스와 커스텀 HUD 제작에 대한 세부 정보는, HUD Technical Guide KR 페이지를 참고해 주시기 바랍니다.
화면상에 요소를 표시하는 데 HUD 클래스가 사용할 수 있는 방법은 크게 두 가지가 있습니다. 캔버스 그리기 또는 스케일폼 GFx 무비입니다.
Canvas 캔버스
Canvas 클래스는 화면( 또는 스크립팅된 텍스처 를 통해 다른 표면) 위에 이미지나 텍스트를 그리는 데 필요한 함수성이 모두 담겨 있습니다. 그리기가 반복될 때마다 매번 Canvas 가 HUD 에 할당되며, 화면에 필수 요소를 그리는데 사용될 수 있습니다.
Canvas 클래스와 이를 사용해서 화면상에 그리는 법에 대해 자세한 것은, Canvas technical Guide KR 페이지를 참고해 주시기 바랍니다.
Scaleform 스케일폼
언리얼 엔진 3의 스케일폼 GFx 통합을 통해, 어도비 플래시 프로페셔널에서 만든 모션 그래픽을 게임내 HUD와 UI에 사용할 수 있게 되었습니다. 무비와 무비 플레이어 및 무비 내에 포함된 개별 오브젝트를 나타내는 클래스 집합체로 구성됩니다. 무비 플레이어는 커스텀 HUD 안에 생성 가능하며, 이를 통해 게임 내에 어떤 무비를 표시할 것인지를 완벽히 제어할 수 있습니다.
스케일폼과 그 언리얼 엔진 3 통합 사항에 대한 상세 정보는, Scaleform KR 페이지를 참고해 주시기 바랍니다.
스케일폼 시스템의 기술적인 측면은 Scaleform Technical Guide KR 페이지에 수록되어 있습니다.
Important!
You are viewing documentation for the Unreal Development Kit (UDK).
If you are looking for the Unreal Engine 4 documentation, please visit the Unreal Engine 4 Documentation site.