[Unreal] 13

[Unreal 4] 언리얼 엔진분석#2

지난번에 다운 받은 언리얼 엔진 소스코드를 분석하는 여러 방법이 있다. 메인함수부터 볼 수도 있고, 관심있는 분야(예-네트워크)부터 볼 수도 있다. 그러나 이번엔 강사의 책에 따라서 언리얼의 가장 핵심이 되는 5대 클래스를 분석해보고자 한다. 컨텐츠를 만들 때 가장 핵심이 되는 프로젝트 1. UObject 2. Actor 3. Pawn 4. Controller 5. Character 1. UObject 1-1. UObject 클래스 상속 vs. 일반 C++클래스 사용. UObject클래스는 언리얼의 최상위 클래스이다. 대부분의 언리얼 컨텐츠를 만들때 UObject 클래스를 상속받아서 만들어진다. 새로운 클래스를 만들 때 UObject클래스를 상속받거나 상속받지 않고 일반 C++클래스를 만들 수도 있는데 ..

[Unreal] 2023.08.08

[Unreal 4] 엔진 분석 #1

엔진이 오픈소스이므로 필요에 따라 바꿔서 쓸 수도 있다. 언리얼 5의 사용을 대비하면서 미리 언리얼4의 엔진을 분석해보자.기존엔 언리얼엔진의 바이너를 다운받아 그 위에 콘텐츠 작업을 했엇구 실제로 언리얼은 오픈소스이므로 소스코드를 다운 받을 수 있다.언리얼 엔진 소스코드 다운로드 경로는 https://docs.unrealengine.com/5.0/ko/downloading-unreal-engine-source-code/ 언리얼 엔진 소스 코드 내려받기소스 코드 저장소에 접속하여 언리얼 엔진 최신 빌드를 다운로드하는 법에 대한 단계별 안내입니다.docs.unrealengine.comhttps://github.com/EpicGames/UnrealEngine 위에 나온래도 여기에 가서 HTTPS의 주소를 복사..

[Unreal] 2023.08.04

[Unreal 4] 언리얼 컨테이너

1. 오브젝트 관리 예를들어 FirstPlayer 프로젝트를 보면 총알을 발사할 때 월드에서 SpawnActor를 이용해 Actor를 상속받은 총알 클래스를 만들어 내는 식이였다. 그런데 만약 우리가 마법 투사체를 만든다면 플레이어도 이 투사체를 기억해야할 경우도 있다. 인벤토리를 만든 다음에 아이템을 줍는다면 인벤토리를 관리하는 컴포넌트를 넣은 다음에 그 인벤토리를 플레이어 캐릭터 안에다가 넣는게 일반적이다. 그리고 인벤토리 안에서는 습득한 아이템을 관리하고 있는 방식일 것이다. 혹은 그 인벤토리를 플레이어 캐릭터 안에다가 넣는 대신 인벤토리를 싱글톤으로 만들어서 접근하게 하는 것도 하나의 방법이다. 그래도 인벤토리 클래스 안에서 아이템 목록을 관리해야하는 것은 마찬가지이다. 일반적으로 C++에서 자주..

[Unreal] 2023.08.04

[Unreal 4] 샘플 둘러보기#2 - 일인칭(First Player)

언리얼 엔진 자체가 사실은 언리얼 토너먼트라는 FPS게임을 만들면서 발전되었기 때문에 일인칭 게임을 만드는데 가장 대표적인 템플릿이라고 볼 수있다. 언리얼 프로젝트를 FirstPlayer라는 이름으로 일인칭을 선택해 만들었다. 실행하면 기본적으로 w,a,s,d키로 움직이고 마우스로 시선을 움직이며 좌클릭시 발사하여 공이 나가고 소리와 물체에 부딪칠시 충격도 있고 반동도 있다. 기본적인 슈팅게임의 요소를 다 가지고 있다. 1. 이번엔 FirstPlayerCharacter클래스 파일부터 먼저 보자. PlayerController가 따로 없이 입력을 받는 부분이 함께 들어가있다. 생성자에서 VR게임인지 여부를 판단해 모션게임인가를 세팅도한다. // [FirstPlayer]Character.h #include ..

[Unreal] 2023.07.21

[Unreal 4] 샘플 둘러보기 - 내려보기 샘플

언리얼엔진의 장점이자 단점인 타이트하게 미리 정해져있는 구조! 이를 익히고 있으면 적응하기 빠르다 새 프로젝트>게임을 하면 이렇게 여러 템플릿 중 선택할 수 있는데 내려보기는 탑다운 구조로 디아블로 , 리니지 같이 쿼터뷰나 탑뷰로 이루어진 게임의 틀 처럼 보인다. 주로 마우스로 움직이고 싶은 위치를 찍어서 이동하게 하는데 레이캐스팅을 해서 그쪽으로 가면 되겠다는 감이 온다. 이렇게 만든 샘플을 키면 마우스 클릭한 위치로 움직이고 커서 부분에 데칼이 있는 샘플이 만들어진다. 이동하는 방법이랑 내 캐릭터에 로봇대신 진짜 캐릭터를 입히고 육면체 장애물 대신 건물을 입혀보고 AI몬스터도 배치해보자. 1. 내 캐릭터 살펴보기 내 캐릭터는 TopDownCharacter라는 이름으로 블루프린트로 만들어져 있다. 클릭..

[Unreal] 2023.07.17

[Unreal 4] 충돌과 UI #2 - 스탯 매니저, UI 실습

충돌과 UI #2 - 스탯 매니저 스탯이라는 개념을 둬서 체력을 표시해보자. 만약 엔진을 사용하지 않고 직접 구조를 만들면 전체적으로 싱글톤패턴이나 전역 클래스로 데이터 매니저를 둬서 장점도 있었는데 이미 언리얼 엔진은 구조가 잡혀있기 때문에 어떤 방식으로 만들어야하는지 고민해봐야한다. 유니티처럼 Actor를 만들어서 BeginPlay에 넣고 로드해온 다음에 Update되는 방법이 있고 아니라면 정석적인 방법으로 새로운 Game Instance클래스를 상속받아서 클래스를 만들고 게임이 실행되는 순간에 한 번 초기화되기 때문에 전역 매니저로 사용하기 괜찮다. 우리도 GameInstance클래스를 상속받아서 MyGameInstance 클래스를 만들었다. 그런데 스탯은 공격력이나 HP등을 말하는데 이런 데이터..

[Unreal] 2023.06.25

[Unreal 4] 애니메이션 #2 - 애니메이션 몽타주, 델리게이트, 애니메이션 노티파이, 블레드 스페이스.

1. 애니메이션 몽타주 몽타주는 프랑스어로 '잘라 붙이다' 라는 의미. 애니메이션도 오려서 다른 애니메이션에 붙이기 때문에 쓰인다. 간단히 말해서 애니메이션 몽타주는 애니메이션을 만드는 기법이라 할 수 있다. 캐릭터의 스켈레탈 메쉬를 에디터로 열어 왼쪽에서 네 번째를 보면 에셋 생성이 있고 누르면 애님 몽타주를 선택해 만들 수 있다. 새로 Animations라는 폴더를 만들고 생성해보자. 예를들어 액션게임에서는 여러 액션 애니메이션들을 합쳐서 연타 애니메이션을 만들어 사용하면 좋을 수 있다. 몽타주에 여러 애니메이션 시퀀스를 배치하고 시간도 조절하고 해서 저장할 수 있다. 액션맵핑으로 Attack이라는 이름으로 마우스 좌클릭을 입력에 추가하고 MyCharacter.cpp의 SetupPlayerInputC..

[Unreal] 2023.04.11

[Unreal 4] 애니메이션 - 애니메이션 기초, 스테이트 머신

1. 애니메이션 기초 MyCharacter C++클래스를 부모로 만든 블루프린트 클래스 BP_MyCharacter클래스를 기본 DefaultPawn으로 하고 시작하자. 그럼 이제💥 애니메이션을 어디에 넣냐 ❓❓❗ 👉 Character클래스에는 Actor클래스에서는 StaticMesh컴포넌트를 이용했던 반면 SkeletalMesh컴포넌트를 가지고 있었다. BP_MyCharacter를 블루프린트 에디터로 열어서 Mesh 를 누르면 디테일에 Animation란이 있는게 보인다. Animation Mode콤보박스에서 두번째 Use Animation Asset을 선택하면 그냥 바로 애니메이션을 지정해주면 된다. 그런데 한 동작을 반복할때 쓰는것이고 실제로는 동작에 따라 애니메이션이 달라야한다. 그래서 블루프린트로..

[Unreal] 2023.03.24