본문 바로가기
반응형

Unreal Engine/UE4 C++ 게임 개발 공부8

[오류 해결] 4.27.2 엔진 풀소스 빌드시 Engine modules are out of date / GeometryCacheTracks.dll 오류 해결법 - Engine modules are out of date 오류 프로젝트 소스에 별다른 수정도 하지 않았는데 갑자기 프로젝트 에디터가 크래쉬가 났다. 로그에는 AddOnScreenDebugMessage가 문제가 있는 것 처럼 나오길래 해당 코드를 모두 없앤 후 빌드해 봐도 계속 크래쉬가 났다. 그래서 결국 git reset --hard 로 이전 버전으로 돌려서 실행을 해봤지만 failed to launch editor 창이 뜨며 에디터가 실행되지 않았다. 프로젝트 솔루션 파일을 다시 생성해서 빌드해봐도 / 엔진 소스를 다시 빌드해봐도 modules out of date 창만 계속해서 떴다. - 해결 내 프로젝트 폴더의 {프로젝트이름}.Target.cs 와 {프로젝트이름}Editor.Target.cs 코드.. 2022. 7. 11.
[짤막 팁] UE4 클래스 생성 시 FObjectInitializer 사용법 UE4에서 FObjectInitializer 구조체를 이용해서 특정 맴버를 초기화 시키는 방법이 있다. (코드에서 해당 구조체로 검색해보면 여러가지 나온다.) 사용방법은 아래 두가지 방법중 하나를 이용하면 되므로 입맛대로 사용하자. 1. 클래스 생성자 매크로를 GENERATED_BODY() -> GENERATED_UCLASS_BODY() 로 변경하고 const FObjectInitializer& ObjectInitializer 가 있는 생성자를 구현하는 방법 // .h 파일 UCLASS() class XXXX_API ClassA : public APawn { GENERATED_UCLASS_BODY() // 언리얼에서 클래스를 생성하면 GENERATED_BODY()가 디폴트 // 기타 클래스 세팅... }.. 2022. 6. 30.
[짤막 팁] UE4의 벡터 정규화(Normalize) 점 A에서 점 B로 가는 벡터 = B벡터 - A벡터 (시작위치 A, 목적지 B 라면 목적지-시작위치) 일정한 속도로 이동하려면 이 벡터를 정규화(normalize) 해야 한다. == 크기를 1이 되게 만든다.(언리얼 단위는 cm로 취급됨) -> 틱 단위로 적절한 속도의 움직임을 만들기 위해 속도를 곱할 수 있다. - FVector의 정규화(Normalize) 함수 Normalize: 실제로 벡터 자체를 수정함. GetSafeNormal: 새로운 벡터를 생성. 정규화된 벡터는 보호된다. (언리얼에서의 Normal은 정규화된 벡터를 의미, 법선벡터 의미X) -> 벡터 자체를 수정하지 않는 것이 좋은 습관. 소스가 변형되면 버그 찾기 힘들다. -> 정확한 계산이 가능하다.(아주 작은 오차는 존재) GetUns.. 2022. 6. 25.
[UE4 C++] 애니메이션 시스템 활용(Animation Montage, 델리게이트, Animation Notify) 캐릭터에 공격 기능을 만들려 할 때 스테이트 머신을 사용한다면 모든 공격에 대한 스테이트, 트랜지션을 만든다면 스테이트를 계속 추가해야 하고 스테이트 머신이 복잡해질 것이다. 애니메이션 몽타주(Animation Montage) 스테이트 머신 확장 없이 특정 상황에서 원하는 애니메이션을 발동시키는 기능. 애니메이션 몽타주는 섹션을 단위로 애니메이션을 관리. 여러 애니메이션 클립들의 일부를 떼어내고 붙여서 새로운 애니메이션을 생성하는 기법. 이 때 섹션 단위로 애니메이션을 자르고 붙이는 작업을 진행. - 애님 인스턴스에서 몽타주 애니메이션 실행 애님 인스턴스에 멤버 함수와 멤버 변수를 생성한다. * UPROPERTY 키워드 Anywhere에서 세분화된 키워드 InstanceOnly : 인스턴스의 속성을 보여.. 2022. 1. 13.
[UE4 C++] 디버깅을 위한 로그 UE_LOG, 로깅 환경 설정 UE_LOG 언리얼 엔진은 로깅 환경을 위해 UE_LOG라는 매크로를 제공. UE_LOG(카테고리, 로깅 수준, 형식 문자열, 인자.. ) 이 매크로를 사용해 생성한 로그는 에디터의 창-개발자 툴-출력 로그 윈도우에서 확인할 수 있다. 혹은 Saved-Logs-log 확장자 파일을 메모장같은 외부 프로그램으로 열면 파일로 로그를 직접 확인할 수도 있다. 로그 카테고리 : 기능마다 로그를 구분하기 위해 다른 카테고리가 선언되어 있다. 이를 사용해 로그 남김. 로깅 수준 : 로그의 중요도 메시지 : 흰색 경고 : 노란색 에러 : 붉은색 출력 로그 윈도우에서 필터를 사용해 내가 원하는 로깅 수준/ 카테고리에 해당하는 로그 정보만 출력 가능 형식 문자열 : C언어의 printf함수와 같은 기능. 다양한 데이터를.. 2022. 1. 12.
반응형