[UE5] GameMode 이해하기
·
Unreal Engine
1. GameMode 개념GameMode는 게임의 전반적인 규칙 흐름을 총관 관리하는 클래스 싱글 플레이에서는 "서버"와 "클라이언트" 개념이 나뉘지 않으므로, GameMode가 온전히 로컬에서 동작함 2. GameMode 주요 기능플레이어 Pawn/Character 스폰게임이 시작될 때 (또는 플레이어가 리스폰될 때), DefaultPawnClass 또는 지정한 Pawn 클래스를 자동으로 스폰하게 해줌스폰된 Pawn을 플레이어가 조작할 수 있도록 PlayerController와 연동해줌PlayerController 지정플레이어의 입력(키보드, 마우스, 게임패드 등)을 전달하고 처리하는 PlayerController가 어떤 클래스로 동작할지 설정함게임 규칙 관리점수 계산, 타이머, 라운드 제어, 난이도 ..
[Unreal Engine] Actor Class 삭제 방법
·
Unreal Engine
1. 개요작업 중에 사용하지 않게 된 클래스는 삭제해야 할 때가 있는데, 단순히 언리얼 에디터의 컨텐츠 브라우저에서 삭제하는 것만으로는 완전히 제거되지 않으니 아래 절차를 따라야 안전하게 삭제할 수 있다.2. 제거 방법솔루션 탐색기에 있는 폴더들은 언리얼에서 만들어진 가상적인 공간으로 논리적으로 먼저 파일을 제거해준다"Visual Studio 솔루션에서 파일 제거" (논리적인 제거)먼저 언리얼 에디터를 종료한다Visual Studio를 열어, 솔루션 탐색기에서 삭제할 클래스를 찾는다".h"와 ".cpp" 파일을 각각 우클릭 → 제거를 선택한다"프로젝트 폴더에서 물리적인 파일 제거" (물리적인 제거)윈도우 탐색기로 "Source/[모듈] 아래의 Public 혹은 Private 폴더로 이동한다논리적으로 제..
[Unreal Engine] 언리얼엔진에서 빌드 방식과 빌드 오류 해결법
·
Unreal Engine
1. 핫리로드 vs 라이브코딩 핫리로드에디터가 열려 있는 동안 새 DLL 파일을 컴파일하고 로드하는 과정을 말한다 기본적으로, 핫리로드는 다음과 같은 경우에 시작된다프로젝트/언리얼 에디터를 연 상태에서 IDE에서 컴파일언리얼 에디터 내의 컴파일 버튼을 사용하여 컴파일언리얼 에디터 내부에서 새 C++ 클래스 만들기핫리로드는 가끔씩 잠시 동안 작동하지만 신뢰할 수 없으며 블루프린트가 손상되거나 기타 문제를 자주 발생시킨다그러므로 대부분의 사용자들이 핫리로드를 되도록 쓰지 말기를 권장한다안전하게 컴파일을 하기 위해서는 열려있는 언리얼 에디터를 닫고 빌드 후 컴파일하는 것이 좋다강력 추천!에디터 연결 종료 → C++ 코드 수정 → Visual Studio에서 빌드 → F5 (에디터 재연결) → 결과 확인” 라이..
[Unreal Engine] "파일 소스를 열 수 없습니다" 에러 - E1696 해결
·
Unreal Engine
1. 에러 원인언리얼 엔진 c++ 코드를 작성하던 중, 헤더 파일에서 include 부분에 빨간 오류선과 함께 해당 에러를 확인했다.구글링을 통해 에러의 원인을 찾아봤을 때, 헤더 파일의 경로를 찾지 못하거나 존재하지 않는 헤더 파일에 접근할 때 발생하는 에러라고 한다.필자가 작성하던 코드에서는 존재하지 않는 헤더 파일에 접근하는 것은 아니었기에 헤더 파일의 경로를 언리얼 엔진 내에서 읽어오지 못했던 것이다.2. 에러 해결에러의 해결 방법은 간단했다. 우선 윈도우 파일 탐색기를 통해 언리얼 엔진 프로젝트가 저장되어 있는 폴더를 연 뒤, 폴더 내에 "[프로젝트이름].uproject 파일이 있을 것이다. 해당 파일을 shift+우클릭 (윈도우11 기준)을 통해 열리는 옵션 창에서 "Generate Visua..
[Unreal Engine] C++ 클래스 관련 용어 정리 및 언리얼 레벨 디자인 관련 개념, 단축키
·
Unreal Engine
C++ 문법 classC++의 클래스는 세 가지 액세스 지정자 private, protected 또는 public에 의해 액세스가 제어되는 멤버로 데이터와 함수를 갖는 키워드 class, struct 또는 공용체로 선언된 사용자 정의 유형 또는 데이터 구조 public공개 멤버, 클래스 외부에서도 접근 가능 protected 상속된 자식과 부모 노드에서만 사용가능 private 비공개 멤버, 클래스 내에서만 접근 가능method 클래스 안에 들어있는 함수. 다른이름으로 멤버 함수virtual 상속된 자식이 새로운 내용을 작성할 수 있음override 부모의 virtual 함수에 대해 재구성할때 사용 언리얼 엔진 레벨 디자인레벨 디자인 레벨 개념 디자인: 맵의 전체적인 주제를 설정. 구조, 공간 디자인: ..
[Unreal Engine] AI 캐릭터 생성과 비헤이비어 트리
·
Unreal Engine
AI 캐릭터 - AI 캐릭터가 중간에 생성되었을 때 Controller를 적용시킬 수 있도록 Spawn Default Controller 함수를 사용- Default Speed는 200으로 세팅- 미리 생성한 BT_AICharacter Behavior Tree와 연결해주는 Run Behavior Tree 함수를 사용 - BP_Character 즉, 플레이어 캐릭터가 AI에 닿았을 때, 쓰러짐 함수를 호출- 쓰러짐 함수는 RagDoll 물리엔진을 적용시킴 Behavior Tree - BTD_IsNearPlayer 데코레이터는 플레이어가 근처에 있을 때, AI와 플레이어 사이값을 벡터값으로 저장하는 기능을 함- BTT_Move는 저장 되어있는 벡터값을 사용하여 AI를 플레이어 위치까지 이동시킴- BTS_Fi..
[Unreal Engine] 언리얼엔진 블루프린트 캐릭터 구현 및 애니메이션 추가
·
Unreal Engine
캐릭터 블루프린트 전체 모습애니메이션 블루프린트 전체 모습 배운 점2주차 강의에서는 1주차 강의에서 다뤘던 액터, 머티리얼, 블루프린트에 대해 상기시키는 시간을 가졌다. 또한 캐릭터 블루프린트를 다시 작성해보면서 아직 캐릭터 블루프린트에 관한 내용이 정확하게 이해하지 못했다는 사실을 깨달았다.주말을 이용하여 다시 정리해보아야겠다.
[Unreal Engine] 언리얼 엔진 용어정리 (콜리전, 랜드스케이프, 폴리지, 머티리얼)
·
Unreal Engine
콜리전(Collision)언리얼 엔진에서 물리적 충돌 영역 에셋에 존재하는 전깃줄 스태틱 메시를 가져와서 예시를 듬 언리얼 엔진 내에는 콜리전을 직접 설정해주거나 자동으로 설정하는 방법이 있다랜드스케이프(LandScape)랜드스케이프 시스템을 사용하여 월드의 터레인의 모양과 외형을 수정할 수 있으며 산과 계곡 및 울퉁불퉁하거나 경사진 땅, 동굴 입구 등을 만들수 있음 폴리지(Follage)스태틱 메시 또는 액터 폴리지 세트를 빠르게 페인팅하거나 지울 수 있는 툴 세트 머티리얼(Material)메시에 적용되어 시각적인 형태를 제어하는 페인트
[Unreal Engine] 블루프린트 활용 (액터,폰의 회전 오버랩 이벤트)
·
Unreal Engine
함수 및 이벤트 정리Event BeginPlay액터가 플레이 시작될 때 이벤트를 발생하는 이벤트Event Tick매 프레임 이벤트를 발생하는 이벤트Event ActorBeginOverlap액터가 다른 액터에 겹칠 때, 이벤트를 발생하는 이벤트Event ActorEndOverlap액터가 더이상 겹치지 않게 되었을 때, 이벤트를 발생하는 이벤트Set Actor Rotaion액터의 회전을 즉시 지정된 회전으로 설정하는 함수Find Look at Rotation위치에서 타깃 위치를 바라보게 만들기 위한 회전 값을 찾는 함수Get Actor Rotation액터의 컴포넌트 회전을 반환하는 함수Get Actor Location액터의 컴포넌트 위치를 반환하는 함수Cast To [BP_Charactor]인스턴스일 수 있..
[Unreal Engine] 블루프린트를 활용한 캐릭터 애니매이션 및 레벨 블루프린트 연산 함수 사용
·
Unreal Engine
캐릭터 블루프린트 전체 모습함수 정리GetPlayerController플레이어 인덱스의 컨트롤러를 가져오는 함수GetEnhancedInputLocalPlayerSubsystem향상된 입력 시스템을 받는 함수AddMappingContext입력 매핑 컨텍스트를 추가하여 특정 입력 설정을 적용하는 함수GetActorForwardVector액터의 전방 방향 백터를 반환받는 함수GetActorRightVector액터의 우측 방향 백터를 반환받는 함수GetControlRotation컨트롤러의 로테이션을 반환받는 함수AddMovementInputWorld Direction에서 주어진 백터의 Scale Value만큼 곱해진 이동입력을 추가하는 함수AddControllerYawInput컨트롤러의 좌우 회전 입력을 추가하..