본문 바로가기

전체 글

[C++] 델리게이트, 컴포넌트 클래스에서의 이벤트 디스패처 호출 C++에서도 언리얼 엔진의 이벤트 디스패처 기능을 사용할 수 있다. Switch 헤더에서 이벤트 디스패처 생성 Switch.cpp 파일에서 호출한다. 이후, 바인딩할 클래스의 헤더에서 Switch 변수와 바인딩할 함수를 생성한다. 해당 클래스의 BeginPlay에서 이벤트 디스패처를 바인딩해 주면 실행된다. https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Delegates/ 델리게이트 C++ 오브젝트 상의 멤버 함수를 가리키고 실행시키는 데이터 유형입니다. docs.unrealengine.com 앞선 방법들과 똑같이 컴포넌트 클래스를 만들어준다. 이후 생성된 헤더파일에서 이벤.. 더보기
[C++] 언리얼 C++ SwitchTool 생성, 클래스 이름 변경 언리얼 에디터의 C++ 클래스에서 폴더를 만들고 싶은 경우 경로상에 추가해 주면 자동으로 생성된다. 또한 클래스 타입을 퍼블릭으로 설정하면 헤더파일은 public, cpp파일은 private으로 설정된다. 언리얼 에디터에서 생성한 C++ 클래스 이름 바꾸기 1. 해당 헤더파일과 cpp파일의 클래스이름을 전부 원하는 이름으로 변경한다. 2. 해당 프로젝트 파일의 Source파일 안의 헤더파일와 cpp파일의 이름도 변경한다. 3. 이후 프로젝트의 UProject파일을 새롭게 Generate 하고 새롭게. sln파일을 빌드한 후 언리얼 에디터를 실행한다. OnComponentBeginOverlap과 OnComponentEndOverlap을 사용하려면 해당 함수의 인수가 부족하다는 오류가 발생한다. 이를 해결하.. 더보기
[C++] 언리얼 C++ 사용 연습 C++로 언리얼 프로젝트를 생성하면 위와 같이 폴더가 생성된다. 여기서 꼭 있어야 하는 파일은 Config, Content, Source, HelloUnrealCode.UProject 가 있다. 앞의 4개를 제외하고 모두 지운 뒤에. UProject파일을 우클릭하여 Generate Code를 클릭하면 생성된다. 꼭 지켜야 하는 순서 1.. UProject파일을 우클릭 후 Generate Code를 클릭하여 파일 생성 2.. sln 파일에 들어가 Games안의 코드를 우클릭하여 빌드한다. 3. 이후. UProject 파일을 클릭하여 언리얼 프로젝트 파일을 실행한다. 언리얼 에디터를 실행하면 콘텐츠 드로어에 C++클래스 폴더가 생성된 것을 확인할 수 있다. C++클래스 안에는 Character와 GameMo.. 더보기
[UE] AI 생성, 블랙보드와 비헤이비어 트리 비헤이비어 트리는 해당 AI 캐릭터가 어떤 움직임을 어떤 순서로 행할지 작성하는 BP_Class이며, 블랙보드는 비헤이비어 트리에서 사용할 변수를 설정할 수 있다. Selector: 각각의 상태에 따라 아래의 Sequnce로 이동. Sequnce: 현재 실행 중인 노드가 성공하면 그다음 노드를 실행. 실패할 때까지 반복하는데 만약 실패한다면 그 이후 다른 자손의 실행을 중지한다. 자손으로 연결된 노드들은 무조건 왼쪽에서부터 실행되어 성공 시 오른쪽의 노드로 넘어간다. AI Controller 블루프린트 클래스를 생성한다. 이후 생성한 BP_Class를 레벨에 배치한 캐릭터의 AI 컨트롤 클래스에 설정한다. 생성된 AI_Controller에서 비헤이비어 트리를 실행시킨다. 이후 Target을 따라 움직이기.. 더보기
[UE] BPI, 이벤트 디스패처, 액터 컴포넌트 블루프린트, 렉돌 ⇒ 루트 컴포넌트는 월드와 똑같아 상대적 좌표를 줄 수 없음. 그래서 상대적 위치 좌표를 줬는데도 액터가 월드좌표를 기준으로 움직인다면 해당 컴포넌트가 루트 컴포넌트로 되어 있지는 않은지 확인. BPI 방법 사용 ⇒ 블루프린트 인터페이스를 사용하여 상속과 같은 기능 구현. → 공용으로 사용하는 특정 소켓을 만든다는 느낌. 원하는 인터페이스를 계속해서 추가하여 사용할 수 있음. 하나의 상속만을 받을 수 없는 블루프린트에서 사용가능한 좋은 방법 1. 원하는 블루프린트 클래스의 클래스 세팅에서 구현된 인터페이스에 생성한 블루프린트 인터페이스를 선택 2. 선택하면 컴포넌트 창에서 인터페이스 탭이 생기고 그 안에 블루프린트 인터페이스의 함수가 생성된다. ⇒ 한 BPI안에서 두 개의 함수 생성 가능. ⇒ 액터 배열.. 더보기
[UE] 액터 블루프린트, 블루프린트 상속 후 이벤트 처리 언리얼 ⇒ 이벤트 기반 프로그래밍, 이벤트와 액션이 중요함 1. 구현화되어 있는 이벤트 2. 프로젝트에 새로운 유형의 레벨 추가하는 방법 3. 캐릭터는 폰을 상속받고, 폰은 액터를 액터는 오브젝트를 상속받는 구성. 기능이 하나하나 추가된다. ⇒ 게임모드 베이스를 선택하였다면, 게임 스테이트 베이스를 선택해야 한다. 추가 기능이 있고 없음에 차이. ⇒ 액터를 좌우로 움직이게 하는 이벤트그래프. ⇒ 위의 이벤트 그래프를 타임라인을 사용하여 재생성 ⇒ DeltaSeconds의 소수점을 없애주기 위해 아래의 4가지 방법을 사용. Floor: 가장 가까운 정수로 내림한다. Round: 가장 가까운 정수로 반올림한다. Ceil: 가장 가까운 정수로 올림 한다. Absolute: 절댓값(양수)을 반한다. ⇒ 함수 사.. 더보기
[UE] 애니메이션 출력, 애님 블루프린트 1. 애니메이션 출, 애님 블루프린트 2. 스켈레톤: 캐릭터의 기능을 넣기 위한 뼈대 3. 피직스 에셋: 언리얼 엔진을 통한 피지컬 추가(ex 중력) 4. 스켈레탈 메시: 눈에 보이는 캐릭터, 폴리곤 덩어리 ⇒ 배치된 캐릭터 블루프린트 클래스는 디테일 창의 폰 → 플레이어 자동빙의를 활성화하지 않으면 게임플레이 시 해당 캐릭터로 빙의되지 않는다. ⇒ 아직 블루프린트 내에서 움직임 로직이 없으므로 게임모드에서 움직일 수 없음. 입력 매핑: 해당 키가 입력되었을 때 축 매핑: 해당키를 누르고 있을 때 ⇒ 프로젝트 세팅에서 세팅해 준 값을 가지고 캐릭터를 움직일 수 있음 ⇒ 3개의 스켈레탈 메시와 1개의 캐릭터 블루프린트 클래스를 레벨에 배치한 모습 https://docs.unrealengine.com/4.2.. 더보기
[UE] 언리얼 콘솔 명령어, UI와 HUD, UMG UI 디자이너 https://microsoft.tistory.com/982 UE4 콘솔 명령어 사용 방법 및 자주 사용하는 명령 목록 정리 콘솔 명령의 용도 콘솔 명령의 용도는 주로 다음과 같습니다. 1. 디버깅 정보를 화면에 UI로 표시 ↓ 예 : stat fps / stat unit / stat unitgraph. 얼마나 처리 시간이 걸려 있는지를 표시한다. ↓ 예 : stat par microsoft.tistory.com 유저 인터페이스와 HUD 게임의 Interface (인터페이스)는 플레이어에게 정보를 전달하고 사용자에게 지시된 입력을 받는 수단을 제공하기 위해 사용됩니다. 게임 인터페이스는 일반적으로 두 가지 주요 요소로 구성된다. 하나는 HUD와 메뉴 또는 유저 인터페이스(UI) 다. HUD는 게임플레이 .. 더보기