본문 바로가기

전체 글

UE 헤드업 디스플레이 (공부 정리) 헤더 디스플레이 (HUD) 플레이어 컨트롤러에 의해 제작되고 관리되는 UI를 의미한다. 위젯을 생성하고 이를 플레이어 뷰포트에 띄우는 과정으로 생성된다. 이렇게 만들어진 위젯은 자신을 소유한 플레이어 컨트롤러에 접근할 수 있다. 주요 기능 1. CreateWidget() HUD위젯을 생성한다 생성 클래스는 플레이어 컨트롤러 클래스이다. 2. GetOwningPlayer() 플레이어 정보를 가져온다 HUD에서 컨트롤러에게서 가져온다 기존 위젯클래스와는 달리 직접 함수로 데이터를 가져오는 위젯을 만들것이기에 BaseWidget을 사용하지않고 UserWidget을 상속받는 새 클래스 HUD를 만들어준다 플레이어 컨트롤러 디자인 구현을 위해서 HUD 클래스와 오브젝트 레퍼런스 2개가 모두 필요하다 // HUD .. 더보기
UE Ai Task Unreal C++에서 구현방법 BTTaskNode 클래스를 상속받는 PatrolClass 생성 및 초기화 BTTaskNode를 C++프로젝트에서 사용하기위해서는 3가지 모듈을 Build.cs에서 추가해야한다. "NavigationSystem", "AIModule", "GameplayTasks" PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "UMG", "NavigationSystem", "AIModule", "GameplayTasks" }); 블랙보드에서 정의한 키값의 접근을 가독성을 위해서 전처리기로 정의하는편이 좋다. #define BBKEY_HOMEPOS TEXT("Hom.. 더보기
UE Ai Behavior Tree 기본용어 (공부 정리) Composit 셀렉터 - 여러 행동중 하나의 행동을 지정 (제어문) 시퀀스 - 여러 행동을 모두 수행 (순차 처리) 패러랠 - 여러 행동을 함께 수행 (? 동시수행) 컴포짓 하위에 존재하는 행동(Action)의 처리과정에서 결과타입을 4가지로 받아올수있다. 행동 결과 타입 성공 실패 중지 - 외부 요인으로 인한 행동의 실패 진행중 커포짓 노드 마다 다른 결과 처리 셀렉터 - 성공이 나오면 종료된다 시퀀스 - 실패가 나올때까지 진행한다 성공이 나오면 다음 행동을 처리한다. 부가기능 데코레이터 컴포짓 노드가 실행되는 조건을 지정 (제어문) 서비스 컴포짓 노트가 활성화될 때 주기적으로 실행하는 부가 명령 관찰자 중단(abort) 데코레이터 조건에 부합되면 컴포짓 내 활동을 모두 중단 객체 Ai 적용 구조 A.. 더보기
UE 게임 데이터 관리 엑셀 데이터 임포트 DataAsset과 유사하게 FTableRowBase를 상속받은 구조체를 선언 엑셀의 Name 칼럼을 제외한 칼럼과 동일하게 UPROPERTY 속성을 선언 엑셀 데이터를 csv로 익스포트한 후 언리얼 엔진에 임포트 USTRUCT(BlueprintType) struct FABCharacterStat : public FTableRowBase { GENERATED_BODY() } 스탯 합산 기능 FABCharacterStat operator+(const FABCharacterStat& Other) const { const float* const ThisPtr = reinterpret_cast(this); const float* const OtherPtr = reinterpret_cast(&.. 더보기
UE 아이템 시스템 (공부 정리) 트리거 박스 구현 루트에 트리거 추가 - 하위 스태틱 매시 - 하위 이펙트 트리거 박스 클래스 생성 1. 엑터 ->ItemBox 생성 2. ItemBox 비긴 틱 제거 3. 위 추가할 3가지 객체를 멤버변수 선언 - UBoxComponent ,UStaticMeshComponent , UParticleSystemCompoent 4. 생성자 오버로딩 ItemBox 초기화 4-1. 멤버변수 데이터 초기화 - CreateDefaultSuboject 함수 사용 매개변수는 생성할 기본서브오브젝트의 이름이다. 4-2. 트리거 매쉬컴포넌트 셋업 - Trigger->SetCollisionProfileName("내가 생성한 프로파일 트리거") ; - Mesh->SetStaticMesh(아이템 메쉬 레퍼런스) 4-3. 이펙.. 더보기
UE5 향상된 입력 Unreal C++ 에서 사용방법 UE Input System 구조 https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Input/ 입력 Input 오브젝트는 플레이어로부터의 입력을 액터가 이해하고 활용할 수 있는 형태의 데이터로 변환하는 작업을 담당합니다. docs.unrealengine.com 입력 언리얼의 입력 구조에 대해 이해하고 현제 언리얼5에서 입력 이벤트 처리에 사용되는 향상된 입력 기능을 활용하여 컨텐츠 구현 알아보겠습니다. 글을 통해 알수있는것들 언리얼 입력 시스템의 처리 플로우 향상된 입력 사용법 Input 오브젝트 Input 오브젝트는 플레이어로부터의 입력을 액터가 이해하고 활용할 수 있는 형태의 데이터로 변환하는 작업을 담당합니다. PlayerInput Pla.. 더보기
UE5 GameMode Setup Code GameMode란? https://docs.unrealengine.com/4.27/ko/InteractiveExperiences/Framework/GameMode/ 게임 모드와 게임 스테이트 Game Mode, 게임 모드와 Game State, 게임 스테이트에 대한 개요입니다. docs.unrealengine.com 플레이중인 게임의 정보를 처리하는 클래스는 크게 Game Mode (게임 모드)와 Game State (게임 스테이트), 둘입니다. 가장 제약이 없다는 게임일지라도 토대가 되는 규칙들이 있으며, 이러한 규칙들이 게임 모드를 이룹니다. 가장 기본적인 수준에서 이러한 규칙에 포함되는 것은 다음과 같습니다: 존재하는 플레이어와 관람자의 수는 물론, 허용된 플레이어와 관람자 최대 수 플레이어가 게임.. 더보기
언리얼5 코딩표준 코딩 표준이란 게임개발 기업마다 프로젝트에 맞는 코딩 표준이 존재합니다 코딩표준이 사용되는 이유는 개발자들이 협업시 서로 다른 코딩 스타일로 발생되는 이슈또는 저하되는 작업 가독성을 방지하기위해 효율적인 코드의 사용을 권장하게끔 기업에서 지정하는것이 코딩표준을 지키는 이유입니다. 코딩표준의 옳바른 사용법 코딩 표준의 옳바른 사용법은 자신이 작성된 코드와 다른사람이 작성한 코드를 비교하였을 시 단 한사람이 작업한것처럼 보인다면 옳바르게 코딩 표준을 지키고 있는것입니다. 다른 예시로 자신이 사용하는 코드 스타일이 더욱 퍼포먼스가 좋을수있다 해서 기업에서 사용하는 코딩 표준을 지키지않는다면 이는 좋은 코딩습관이 될 수 없습니다. 언리얼 코딩표준 코딩표준이 기업에서 사용되는것과 같이 언리얼 코딩 표준이 존재합니.. 더보기