본문 바로가기
UE5 : Paper 2D (Blueprint)/기초

[UE5 : Paper2D(BP) - 기초] Chapter 03. PaperCharacter

by song.ift 2023. 12. 14.

GitHub : https://github.com/developeSHG/UE5-Paper2D/commit/0249b0e9d4aff5c7bb5157aaf027418da5265d49

 

PaperCharacter · developeSHG/UE5-Paper2D@0249b0e

hokyung.song committed Dec 8, 2023

github.com

 

결과물

 

 


 

 

카메라를 붙일 때, 자주 사용하는 방법이 셀카봉.

SpringArm이 셀카봉이고, 배치 한 다음 Camera 설치.

정방향이 아니기 때문에 Rotate을 임의로 회전시키고, Target Arm Length를 통해 거리조정.

 

하지만 실제로 게임을 실행해보면, 딱히 카메라가 지금 찍고있는 화면이 나타나지 않고, 여전히 자유롭게 돌아다니는 화면이 게임상에 찍히는 걸 볼 수가 있다. 결국에 카메라가 찍게끔 뭔가를 만들어줘야 한다.

 

그러면 만약 일반적인 예를 들면, 플레이어를 복붙해서 카메라를 여러 개 더 만들 수 있다고 가정해보면. (플레이어에 카메라가 달려있음.)

아무나가 아니라 진짜로 이 게임의 주인공이 되는 내가 1인칭으로 현재 컨트롤하고 있는 플레이어를 만들어줘야 된다. 여러가지 방법이 있겠지만 최종적으로 윈도우 창의 월드 세팅을 보면 게임 모드라는 것이 있다.

 

형식을 지켜야하는 언리얼 엔진에선 옛날에 FPS 게임을 만들 때, 처음 만들어졌다 보니 게임 모드가 존재한다. IPS 게임은 여러가지 모드들이 있는데, 예를 들면 Free For All, Capture The Flag, 오버워치나 그런 게임들처럼 깃발 뺏기 놀이를 하면서 앞으로 가는 룰도 있을 것이며 다양한데 그런 것들을 게임 모드라고 생각할 수 있다.

이 게임 모드를 정하면서 관련된 여러가지 클래스들을 설정할 수 있는데, 위 사진처럼 미리 정의된 여러가지 부품들이 있고, 이것을 개발자가 잘 조립해서 만들어야 된다는 걸 알 수 있다. 이게 유니티에 비해서 어려운 게 이미 구조가 꽉 잡혀 있기 때문에, 이 구조를 지켜서 게임을 만들어야 된다는 것이 좀 어려운 부분이다. 

 

그래서 결국 이 디폴트 폰 클래스가 현재 사용하고 있는 플레이어로 인식을 시켜줘야 되는데 그것을 하려면 게임 모드를 만들어주고, 또 폰을 연결해주고.. 굉장히 단계가 복잡하다.

그래서 가장 쉽게 하는 방법은 플레이어를 강제로 우리가 주인공으로 인식을 시켜주는 '빙의'를 해버리는 방법이 있다. (영어로 Possess)

플레이어 컨트롤러라는 존재하지 않는 물체를 만들어 플레이어로 빙의해 조종할 수 있다는 것이다. 플레이어 컨트롤러가 물체를 떠나 그 빙의를 풀어주게 되면 사용자가 다시 컨트롤하지 않는 그저 일반 물체가 된다고 볼 수 있다.

그래서 기사가 여러가지 있다고 하면, 이 중에서 하나를 사용자가 영혼을 포세스해가지고 컨트롤하게 되는 것이 기본적인 원리다.

 

여기서 카메라를 빙의를 하려면, 최소 폰 이상 캐릭터까지 가야한다. 만약 액터로 만들어놨다고 하면 상속 구조에서 클래스 세팅을 바꿔놓자. PaperSpriteActor -> PaperCharacter

(폰은 액터를 상속받고 빙의를 할 수 있다. 그리고 입력을 컨트롤러에 의해 영향받을 수 있는 것을 폰이라고 한다. 더 나아가서, 캐릭터는 폰을 상속받고 움직일 수 있는걸 캐릭터라고 한다.)

 

플레이어 컨트롤러 0번이라는 애가 현재 플레이어를 자동적으로 빙의해주게 연결시켜준다. 플레이어 컨트롤러 0번이 게임을 실행했을 때, 먼저 실행하는 게 플레이어 컨트롤러 0번이다.

(언리얼 엔진이 FPS게임 그 중에서도 온라인으로 여러 명이서 할 수 있는 그런 게임을 염두에 두고 만들었다 보니까 플레이어 컨트롤러가 굉장히 많아질 수가 있는데, 0번이 기본적으로 로컬 컨트롤러, 즉 내 자신이라는 의미다.)

 

 

댓글