2024/12/19 TIL

양우창·2024년 12월 19일

내일배움캠프 TIL

목록 보기
4/22

개요

오늘은 플레이어 캐릭터에 움직임과 시점이동을 주입해주는 과정에 대해서 배웠다.
그런데 강의 진도가 상당히 빨라서 꽤 고생했다..
그래서 중간 쯤 부터는 튜터님을 따라하는 것을 포기하고 그냥 강의만 경청했다.
나중에 알고 보니 나같은 사람이 많았다고 한다..
나는 천천히 뜯어보며 충분히 이해하고 넘어가는 것을 좋아하는데
(그래야 응용이 가능하기 때문에) 너무 외우고 넘어가는 느낌이 강해서 아쉬웠다.
그래도 추후에 강의자료를 보고 따라해보니 그렇게 어려운 내용은 아니었다.



레벨 디자인이란?

게임 내에서 플레이어가 경험할 수 있게 환경과 구조를 만드는 과정.
시각적 요소의 배치를 넘어, 플레이어의 경험의 핵심을 설계하는 역할.



실습

우리는 ‘Online Learning Kit’와 ‘Lower Sector Building Kit’ 를 사용하여 실습해 보았다.

러닝키트에서는 처음에 아래와 같은 화면이 나오고

빌딩키트를 프로젝트에 추가해주면

미리 만들어진 맵을 사용할 수 있게 된다.




에셋들도 다양하게 존재한다.





이 환경에서 우리는 주인공인 로봇 캐릭터에게 카메라 시점을 부여해주고, 방향키로 움직이고 스페이스바로 점프할 수 있도록 설계해 주었다.


바로 요렇게.

그 과정에 대해서 설명해 보자면

우선 ‘콘텐츠 > NBC_Unreal > Blueprints’ 폴더를 생성

마우스 우클릭 > 블루프린트 클래스 > 캐릭터 를 선택하여 캐릭터 블루프린트 클래스를 생성

그다음 위 사진에 있는 BP_Character 를 더블클릭 해보면

위 사진처럼 캡슐만 있는 것을 볼 수 있다.

그 다음 좌상단의 컴포넌트 패널에서 메시를 클릭 > 우측의 디테일 패널에서 SKM_Bot 메시를 선택

그러면
뷰포트에 위 사진처럼 뜨게 되는데 캐릭터 위치를 조정하고 캡슐 크기도 조절하면

요렇게 된다.

그 다음 카메라를 세팅할건데
우선 스프링 암 컴포넌트와 카메라 컴포넌트를 추가해준다.
이 때, 카메라 컴포넌트는 스프링암 컴포넌트에 붙여줘야한다.


위 사진처럼 뜨게 되는데 카메라 시점이 미묘하게 낮으니 수정해준다.

타깃 암 길이 300 -> 350 , 트랜스폼 z위치를 45로 수정

그리고 캐릭터를 움직이기 위해 입력 매핑을 설정해야하는데

우선 입력 액션과 입력 매핑 컨텍스트를 생성해준다.

이렇게 네이밍하고 Look(시점)과 Move(움직임)은 x,y축 모두 사용하기 때문에 더블 클릭한 후 설정값에서 ‘Axis 2D’ 를 선택.

‘IMC_NBC_DefaultMappingContext’는 아래와 같이 세팅.

그 다음 블루프린트로 넘어가서 노드들을 생성해준다.




x값으로는 앞,뒤 이동을 하고, y값으로는 좌,우 이동을 한다.
‘Get Actor Forward Vector’ 와 ‘Get Actor Right Vector’ 이 2개의 노드들에서 월드를 기준으로 액터의 벡터 값을 계산한 수를 받아 인풋 액션의 X, Y 값 만큼 이동시켜준다.

그 다음 뷰포트로 돌아가 우측 디테일 패널에서 '빙의'를 검색.
플레이어 자동 빙의 > ‘Player 0’ 를 선택 후에 플레이 버튼을 클릭해 캐릭터를 조작.


움직이기 시작한다.

그 다음은 시점이동이다.
Move 때와 같이 구조체 핀 분할하여 x 는 Yaw (좌우), y 는 Pitch (상하) 에 연결해준다.
이 때 사용하는 노드들은 ‘Add Controller Yaw Input’ 과 ‘Add Controller Pitch Input’.

그 다음 캐릭터 블루프린트 > 디테일 패널에서 컨트롤러를 검색하고 컨트롤러의 피치 및 요 사용을 체크 해제한다.

캐릭터 무브먼트 컴포넌트의 ‘무브먼트 방향으로 회전 조정’을 체크.

스프링 암 컴포넌트의 ‘폰 제어 회전 사용’을 체크.

카메라의 피치(상하)가 반대인 것 같아 마지막으로 'IMC_NBC_DefaultMappingContext' 에서 마우스의 Y축을 반전시켜준다.

그 다음은 점프를 구현할건데

먼저 인풋액션을 다시 생성해주고

인풋 맵핑 컨텍스트에 등록
이벤트 노드에서 불러와 Jump 와 연결

여기까지 오면 캐릭터의 움직임과 시점에 대한 기초적인 설정은 끝이다.

그러면 처음에 올렸던 사진처럼 된다.



마무리하며

배운걸 토대로 레벨 디자인 하는 것을 과제로 받았는데
어떤 방향성의 게임 컨셉을 잡아야 하는지에 대한 고민도 많았고
그림을 워낙 못그리는지라 공책에다 콘티를 짜보는 것도 쉽지 않았다.

그리고 컨셉을 잡고 나서도 그걸 엔진 안에서 구체화시키는 작업도 만만치 않았다.

그래도 코딩 없이도 블루프린트와 엔진 기능을 활용해서 나같은 초보도 이렇게 손쉽게 뚝딱 게임을 만들어낼 수 있는 이 프로그램의 시스템이 정말 대단하다고 느껴졌다.

profile
내배캠 언리얼 엔진 1기

0개의 댓글