언리얼엔진5/블루프린트 Paper2D 로 게임 만들기

[Paper2D로 게임 만들기 필기] 1-2. Unreal VS Unity, Spirte & Texture, 키 매핑, 매크로

Rocketbabydolls 2023. 7. 21. 16:20

언리얼 엔진의 계층구조

 

유니티에서는 큐브를 만들 때 아예 빈 깡통에서 채워 나간다. 반면에 언리얼 엔진은 이미 큐브를 생성하면 여러 기능을 가지고 있다. ex) cube 를 만들면 Actor 클래스를 상속받아져 있다.

 

언리얼엔진은 따라서 상속구조를 잘 이해 해야한다.

 

Unity : 컴포넌트가 핵심

Unreal : 상속 구조가 0순위

 

Sprite : 게임 등지에서 사용되는 움직이는 2차원 비트맵 개체를 가리키는 용어. 마치 도깨비불이 둥둥 떠다니듯 배경화면과 독립적으로 움직일 수 있었기 때문에 sprite를 어원으로 삼은 것 같다 (출처 : 나무위키)

 

Texture : 물체에 옷을 입힌다.

 

 

Flipbook

프레임 속도 및 여러 이미지로 움직이는 스프라이트를 만들 수 있다.

 

 

 

Actor -> Pawn -> Character 순으로 상속.

 

 

Auto Possess Player : 로컬 플레이어에 자동으로 빙의.

 

강의에서 준비해준 에셋을 이요해 키 입력에 따라 회전하는 플립북 액터를 배치시켜 보았다.

 

 

키 매핑 블루프린트
Axis Mapping

Axis Mapping

을 통해서 키 바인딩과 액션을 분리할 수 있다.

Scale 이 뭔지 추상적으로는 이해했는데 더 자세히 알고 싶어서 GPT 에게 물어봤다.

답변 내용 -> 

더보기

언리얼 엔진 5에서 Axis Mapping을 설정할 때 "Scale" 수치는 입력 축의 감도 또는 변환 비율을 나타냅니다. 기본적으로 게임에서 사용되는 입력 장치 (예: 마우스, 조이스틱, 게임 패드)의 움직임 범위가 축의 움직임 범위와 일치하지 않을 수 있습니다. 이런 경우 Scale 값을 사용하여 입력 장치의 움직임을 더 크게 또는 더 작게 변환하여 게임 내에서 원하는 감도를 얻을 수 있습니다.

Axis Mapping은 입력 장치의 움직임 범위와 게임 내에서의 움직임 범위 간의 연결을 매핑하는데 사용됩니다. 이것은 게임에서 움직임을 더 자연스럽고 반응적으로 만드는 데 도움이 됩니다.

예를 들어, 마우스의 경우 움직임 범위가 커서를 움직일 때 스크린의 영역보다 크지만, 게임에서는 작은 움직임만으로도 캐릭터를 회전시키기를 원할 수 있습니다. 이 경우 Scale 값을 적절히 조정하여 작은 마우스 움직임에도 게임 내에서 캐릭터가 원하는 정도로 회전할 수 있도록 할 수 있습니다.

Scale 값은 음수일 수도 있으며, 이는 축의 방향을 뒤집는 데 사용될 수 있습니다. 예를 들어, 게임 패드의 왼쪽 스틱이 X축 방향으로 오른쪽으로 움직일 때, Scale 값을 -1로 설정하면 게임에서는 캐릭터가 X축 방향으로 왼쪽으로 이동하는 것처럼 인식됩니다.

이렇게 Axis Mapping의 Scale 값을 조정하여 입력 장치와 게임 내 움직임 사이의 적절한 매핑을 수행함으로써 게임 플레이어가 더 나은 제어를 얻을 수 있게 됩니다.

패드 사용을 잘 안하는 우리 나라에서는 키보드로 대부분 처리를 하지만, 만약 패드를 사용하게 된다면 매핑에 신경을 잘 써줘야 할 듯 하다.

 

매크로

함수가 아니다!!

매크로는 코드의 복붙이다. (단순화) 10번 사용하면 사실은 10번 코드가 복붙되는 것

함수는 한번 실행하면 리턴 전까지 실행되지만 이벤트는 그렇지 않다. 중간에 딜레이를 넣어서 쉬어 갈 수 도 있음(코드의 실행을 미룬다.)

 

메모리 관점에서 설명을 하자면 함수는 한번 만들어지면 코드 영역에 저장이 되어 스택에 각종 매개변수가 쌓인 뒤 코드 영역으로 이동해 실행 한 후 종료되지만 매크로는 단순히 코드의 반복이기 때문에 컴파일 타임에 처리가 된다. 따라서 성능에 부담이 있을 수 있고 코드가 방대해질 수 있다.

 

 

1-2일차 후기

2D게임에는 흥미가 없지만 강의를 들으면서 얻을 수 있는 실전 지식들이 많아서 나쁘지 않다고 생각한다. 그리고 2D의 역량을 먼저 쌓아야 3D 객체의 움직임 또한 역량 쌓기에 수월할듯.