UE4 57

[UE4] PlayerController

GameMode에 PlayerController 배정 게임모드는 플레이어가 입장할 때 플레이어 컨트롤러라는 특별한 액터도 함께 배정한다. 폰을 조종하는 역할을 맡는다. 게임모드의 생성자에서 플레이어컨트롤러의 클래스 정보를 넘겨주면 된다. PlayerController 가 배치되어 있는 폰에 빙의하는 법 폰의 Auto Possess Player 속성을 사용하면 레벨에 이미 배치돼 있는 폰에 플레이어 컨트롤러가 빙의할 수 있다. 원하는 폰을 레벨에 배치한 다음 디테일 윈도우 하단에 위치한 Auto Possess Player 항목을 Player 0으로 설정한다. Player 0은 로컬 플레이어를 의미한다.

UE4 2022.09.26
[UE4] 언리얼 코딩 표준

https://docs.unrealengine.com/4.27/ko/ProductionPipelines/DevelopmentSetup/CodingStandard/ 언리얼 엔진4 코드베이스에 에픽게임즈가 사용하는 표준과 규칙들. 코딩 표준 언리얼 엔진 4 코드베이스에 에픽게임즈가 사용하는 표준과 규칙입니다. docs.unrealengine.com 자세한 내용은 위의 docs를 참고하자. 1. 클래스 체계 클래스 체계는 작성자보단 읽는 사람을 기준으로 체계를 잡아야 한다. 읽는 사람 대부분은 클래스의 공용 인터페이스를 쓸 것이기에, public을 먼저 선언하고, private을 나중에 구현한다. 2. 작명규칙 - 변수이름, 유형 이름 등의 이름 내 각 단어의 첫 글자는 “대문자”로 써야 하며, 단어 사이에 ..

UE4 2022.09.26
[UE4] GameMode

게임이 시작되기까지 플로우 1. 게임 앱의 초기화 : UGameInstance::Init() 2. 레벨에 속한 액터의 초기화 : AActor::PostInitializeComponents() 3. 플레이어의 로그인 : AGameMode::PostLogin 4. 게임 시작 : AGameMode::StartPlay(), AActor::BeginPlay() 1. GameModeBase 클래스를 상속받는 액터 생성. 클래스 생성 후 제작한 게임모드를 현재 레벨에만 적용하려면 월드세팅 윈도우에서 Game Mode 섹션에 있는 GameMode Override항목을 누른 후 제작한 게임모드를 선택하면 된다. 2. 게임모드에 폰을 지정하기. 게임모드 클래스의 소스파일에 지정할 폰의 헤더파일을 추가해주고, 다음과 같이 ..

UE4 2022.09.26
[이득우 책] CHAPTER 12 오류발견

비헤이비어 트리를 공부하던 와중에 p.429에서 OverlapResults중 하나로 보이는 OverlapResult 가 정의되어있지 않다는 오류가 떴다. 분명 책에는 눈씻고 찾아봐도 정의되어있지 않았기에 교재에서 제공하는 소스파일을 찾아보았다. 어쩐지 괄호가 조금 이상한 곳에 있다 했더니 아니나 다를까 for문을 책에서 적어주지 않았다. 언리얼 공부하는 사람이 많이 없어서인지 이 책이 나온지 얼마 안되서인지 구글에도 나오지 않길래 이득우님 홈페이지에 제보해보기로 했다.(다시 찾아보니 출판사에 정오표가 있었다. 앞으로 이런 이론서를 살땐 정오표를 항상 확인해야겠다....!!) http://www.acornpub.co.kr/book/unreal-c#errata [정오표 링크] 예전에 Step3로 새로운 레벨..

UE4 2022.08.24
[UE4] LNK2001 LNK2019 ERROR 해결법

원인 언리얼에서 어떠한 클래스를 상속받은 새로운 C++클래스를 만들었을 때 컴파일하면 에러가 발생하고, 에디터를 다시 켜봐도 켜지지 않는 경우가 발생한다. 삽질한 결과 LNK에러는 링크할 때 나는 오류인데 소스코드 오류가 아니라 초보자가 찾기 어렵다고한다. 결론은 선언부는 있으나 구현부가 없어 나는 오류로 언리얼의 경우엔 상속받고자 하는 클래스의 모듈이 추가되어있지 않아 발생하는 오류이다. 무려 14년전 글이지만 밑의 블로그가 도움이 많이 되었다 ㅠㅜ https://rnathsus.tistory.com/40 해결 먼저 비주얼 sln (솔루션파일)로 들어간다. -> 솔루션 탐색기로 프로젝트명.Build.cs 파일을 찾는다. -> 본인이 추가하고 싶은 부모클래스가 속한 모듈을 추가해준다. 여담 밤새 공부하다..

UE4 2022.08.11
[UE4] 언리얼의 핫리로드(Hot Reload)시스템

모듈(Module)이란 무엇인가? 모듈이란 프로그램을 구성하는 구성 요소로, 관련된 데이터와 함수를 하나로 묶은 단위를 의미한다. 보통 프로그램 코드를 기능별로 나눠서 독립된 파일에 저장하여 관리하는데 이러한 방식을 모듈화 프로그래밍이라고 한다. 모듈들은 개별적으로 컴파일된 후, 링커에 의해 하나의 실행 파일로 만들어진다. 자세한 내용은 이 블로그를 참고하도록 하자. https://nerdooit.github.io/2020/09/08/cpp_book_2.html 핫리로드(Hot Reload)란 무엇인가? 언리얼엔진은 유니티와 마찬가지로 핫 리로드를 지원한다. 언리얼 에디터의 실행 중에 에디터가 사용하고 있는 모듈을 컴파일하면 언리얼 에티터는 이를 감지해 기존의 모듈을 내리고 신규 모듈로 바꾸는 작업을 수..

UE4 2022.08.09