레벨 디자인이란?
❗게임 내에서 플레이어가 경험할 수 있는 환경과 구조를 만드는 과정입니다. 플레이어의 경로, 도전, 그리고 스토리를 설계하며, 게임플레이의 재미와 균형을 조화롭게 담아내야합니다.
레벨 디자인은 시각적 요소의 배치를 넘어, 플레이어 경험의 핵심을 설계하는 역할입니다.
💡오늘은 컨텐츠를 고민해보는 시간을 가져보겠다!
사용 에셋: OnlineLearning Kit, Lower Sector Building kit
먼저 두 가지 에셋을 추가해준 뒤 프로젝트 만들기를 눌러 프로젝트를 하나 만들어 준다. 그리고 Lower 에셋을 프로젝트에 5.4 버전으로 추가 해준다
플레이어 캐릭터는 게임에서 사용자가 조종하는 핵심 오브젝트입니다. 블루프린트와 엔진 기능을 활용해 직접 캐릭터를 설정하며 게임 개발의 기초를 익혀봅시다!
캐릭터의 외형, 시점, 이동 및 점프와 같은 기본적인 동작을 구현하게 됩니다. 언리얼 엔진의 블루프린트 시스템과 향상된 입력 시스템을 사용하여 코드 작성 없이도 다양한 기능을 적용할 수 있습니다.
콘텐츠 폴더 안에 NBC-BluePrint 폴더를 만들고 캐릭터를 상속 받는 BP_NBC_Character을 하나 만들어 준다.
이후 캐릭터를 열고 메시를 선택해 스켈레탈 메시에 y_bot을 선택해 넣어준다
이후에 캡슐 컴포넌트에서 캡슐 절반 높이를 수정해주고 캐릭터 위치도 수정해서 아래와 같이 만들어 준다
컴포넌트에 스프링 암과 카메라를 세팅해준다. 중요한 점은 스프링 암 자식으로 카메라를 넣어주는 것이다
움직이기 위해 입력->입력 액션인 IA_NBC_Move와 IA_NBC_Look 두가지를 만들어 준다.
그리고 두개는 x,y 와 카메라 앞 뒤로 움직이기 위해 2D로 설정한다
그리고 만들어둔 입력 액션을 바탕으로 입력 액션 컨텍스트를 만들어준다.
언리얼 엔진에서 "스위즐 입력 축 값(Swizzle Input Axis Value)"은 보통 입력된 데이터의 축을 변환하거나 재구성하는 설정을 의미합니다. 이를 통해 특정 축의 데이터를 다른 축으로 매핑하거나, 특정 입력 값을 재구조화하여 사용자 정의 동작을 구현할 수 있습니다
움직이는 것을 처리하기 위해 블루프린트 노드를 사용해서 처리해준다.
LOOK 함수를 Yaw와 Pitch를 사용해서 처리 해준다
뭔가 이상하다 캐릭터랑 카메라랑 같이 움직이는 것을 볼 수 있다
해결해보자
캐릭터 전체와 연결되어 있는 2가지 옵션은 모두 해제한다
다음으로 캐릭터 무브먼트 컴포넌트의 '무브먼트 방향으로 회전 조정'을 체크해준다
스프링 암 컴포넌트의 ‘폰 제어 회전 사용’을 체크해줍니다.
카메라의 피치(상하)가 반대인 것 같아 마지막으로 IMC_NBC_DefaultMappingContext 에서 마우스의 Y축을 반전시켜주도록 한다.
기존에 위에서 생성한 이동의 경우 '월드'를 기준으로 캐릭터를 회전을 구현하는데 아래의 노드들은 현재 컨트롤러를 기존으로 구현을 하고 있다. 그래서 실행하면 빙글빙글 돈다.
📝TIL 레벨 디자인과 플레이어 캐릭터 설정
⛔발생한 문제
문제 해결!
1. 옵션 해제: 카메라 전체에 연결된 두 가지 옵션 해제
2. 캐릭터 무브먼트 수정: 무브먼트 방향으로 회전 조정 활성화
3. 스프링 암 설정: 스프링 암 컴포넌트의 폰 제어 회전 사용 활성화
4. y축 반전: IMC 입력 매핑 컨텍스트에서 마우스 Y축 반전
추가 이동 방식: Enhanced Input System - Move 2
느낀점: 원래 프로젝트 세팅의 INPUT을 사용해 C++에서 코드짜는 것만 했는데 이렇게 시스템을 만들어두니 블루프린트에서 플레이어의 이동과 시점 조절을 더 간단하게 할 수 있다를 알게 되었다.