일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- UE
- ue4 Crash
- 리디렉터 크래쉬
- UE5
- staticmesh mobility
- 13iew
- Unreal Engine 5
- 랜덤 맵 생성
- Unreal Engine Error
- splinemeshcomponent scale
- Unreal Engine 4
- ue4 error
- LittleNightMare
- unity
- ai jitter
- ai 뚝뚝 끊김
- unreal ai lag
- UE4
- register component
- Random Map Generator
- 리디렉션 크래쉬
- unreal engine redirection crash
- deltaTime
- redirection crash
- redirector crash
- UnrealEngine
- Ai
- unreal engine
- 언리얼
- ai 주춤거림
- Today
- Total
목록전체 글 (64)
Class GameDev* SheepAdult
언리얼 엔진 위에서 Delay 기능에 대해 구글링하면 람다 함수를 활용하는 방법이 나온다. 예를 들어 아래와 같다. FTimerHandle WaitHandle; float WaitTime; GetWorld()->GetTimerManager().SetTimer(WaitHandle, FTimerDelegate::CreateLambda([&]() { // 딜레이 후 코드 }), WaitTime /*대기 시간*/, false /*반복*/); 그런데 "만약 딜레이 후 코드" 부분이 레벨이 바뀐 후 호출된다면 크래쉬가 나버린다. 그래서 처음엔 코드에 작성된 객체의 포인터가 레벨이 바뀌면서 참조 해제되어 null을 가리켜서 그런가 보다 생각해 객체를 null check를 해주었다. 그런데도 크래쉬가 났다... 좀 더..
2022년 2월부터 시작한 13iew 프로젝트가 2023년 3월 22일을 끝으로 드디어 스팀 출시합니다. 이미 상점 페이지가 올라와 있지만 다운로드 및 플레이는 4월 5일부터 가능합니다. 해당 블로그의 모든 언리얼 관련 글은 13iew 프로젝트로부터 나온 글들이라고 생각하니 정말 오래되고 노력을 기울인 프로젝트라고 생각이 되네요. 최근 몇 달간 글 등록이 뜸했던 이유는 개발이 거의 끝나고 끝없는 알파 테스팅과 베타 테스팅, 여러 피드백으로 인한 수정, 스팀에 등록(굉장히 까다로웠습니다...) 등등의 문제였습니다. 취업 준비에 필요한 알고리즘이나 cs 지식 등은 많이 못했어도 학부생치고 작지 않은 프로젝트를 1년 넘는 기간 동안 기획하고 개발, 출시했다는 게 정말 기쁘고 뿌듯하네요. 포트폴리오용이라 부족한..

Nav Mesh를 런타임 중 변경하는 것은 구글링을 해보면 쉽게 알 수 있는 내용이다. 바로 아래와 같이 Runtime Generation을 Dynamic으로 바꿔주면 된다. 프로젝트를 생성한 후 아무런 설정도 건들지 않았다면 실행이 잘 되겠지만 본인도 모르는 사이에 설정을 바꿨다면 위의 값이 Dynamic이어도 runtime에 nav mesh가 바뀌지 않을 때가 있다. 바로 Navigation System의 설정값 중 "초기 빌드 잠금"이 true일 경우이다. 저 값을 true로 설정하면 내비게이션 시스템의 내비게이션 리빌드가 ReleaseInitialBuildingLock()을 호출할 때까지 중지된다.
TMap Container에 TArray를 Key나 Value로 저장하려고하면 Nested Container이기 때문에 저장할 수 없다고 에러 메세지가 뜬다. 이럴 경우 USTRUCT를 하나 선언한 후 이 안에 Nested Container를 담으면 된다. 아래는 예시 코드이다. USTRUCT() struct FTest { GENERATED_BODY() public: UPROPERTY() TArray Transforms; }; USTRUCT(Atomic, BlueprintType) struct FLevel1Struct { GENERATED_BODY() public: UPROPERTY() TMapTestData; }

먼저 InVisible하게 만들 오브젝트의 디테일 창의 렌더링 카테고리에서 Hidden In Game을 true로 설정해준 뒤, Lighting 카테고리의 Hidden Shadow를 true로 설정해주면 된다. Hidden Shadow는 Hidden으로 설정되었을 때 Shadow Cast해주는 기능을 한다.
본론부터 말하자면 CallFunctionByNameWithArguments 함수를 사용하면 된다. 해당 함수는 인자로 FOutputDeviceNull을 받는데 #include "Misc/OutputDeviceNull.h"를 include 해줘야 한다. #include "Misc/OutputDeviceNull.h" ... void ATest::TestFunction() { FOutputDeviceNull Ar; CallFunctionByNameWithArguments(TEXT("BPFunction"), Ar, nullptr, true); }

Assertion failed: IsSet() [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Misc/Optional.h] [Line: 190] It is an error to call GetValue() on an unset TOptional. Please either check IsSet() or use Get(DefaultValue) instead. 이라는 문구가 나오면서 특정 오브젝트 클릭할 때마다 크래쉬가 났다. 넷상에 정보가 아예 없어서 혼자 끙끙댔다,, 분명 생성자가 문제일 것 같았지만 생성자는 수정한 것이 없었는데 이런 문제가 나와 당황스러웠고, 하루 동안 깃 디스카드하고 클래스 다시 만들고 하는 삽질을 한 결과 string(Te..

(2022-12-27 수정) 물건이 떨어져서 바닥에 닿았을 때 소리가 나는 경우를 구현하고자 할 때, OnComponentHit을 사용해서 구현해야 한다는 생각이 자연스럽게 들 것이다. 하지만, OnComponentHit은 우리가 생각했던 것보다 더 많은 빈도수로 호출된다. 만약 어떠한 처리도 하지 않고 물건을 떨어뜨리면 바닥에 한 번만 닿아도 수십 번의 소리가 재생되어 원치 않던 소리가 나므로 적절한 처리를 해주어야 한다. 본문에서 사용할 처리 방법은 OnComponentHit의 매개변수인 NormalImpulse에 임계점을 주어 강한 충돌만 다룰 것이다. 여러 오브젝트에 이식할 수 있도록 컴포넌트로 만들었다. 아래는 PhysicsCollisionSoundComponent.cpp 이다. // Physi..

전혀 문제가 없을만한 코드에서 『Unable to merge actions producing ... : prerequisites are different 』 와 같은 에러가 발생했다. 단순히 bool 값을 추가하고 값을 설정해준 코드여서 당황했다. 위와 같은 에러는 cpp 파일 등이 복제가 되어 나타나는 에러이다. 처음 구글링했을 때 봐도 뭔말인가 싶어 브라우저에서 source 디렉토리를 직접 찾아보니 위와 같이 복제가 되어 있었다. 해당 파일은 private에도 있어 사용하지 않는 파일을 삭제해주면 된다. 근데 도대체 bool값 하나 추가했다고 되고 안되고 하는지 모르겠다. 복제된 파일이 문제면 추가 안해도 문제가 생겨야 할텐데 이해가 안된다. 그리고 어떻게 복제가 된건지도 모르겠다. 하지만 언리얼을 ..

1. 'void ConstructorHelpers::ValidateObject(...) :인수 1을(를) 'T *'에서 'UObject *'(으)로 변환할 수 없습니다.' with 괄호 내에 해당하는 헤더를 추가하면 된다. https://sheep-adult.tistory.com/41 2. -WaitMutex 어쩌고... (한 번 더 발생하면 내용 추가 및 수정) 1) 그냥 오타가 났을 확률이 큼. 예를 들어 UPROPERTY()의 오타라든지 2) 에디터에서 실행하고 로컬 디버거로 실행하면 (2중 실행) 나타남 3. 재정의 어쩌고... (한 번 더 발생하면 내용 추가 및 수정) 전역변수로 설정한 변수의 값을 지역변수로도 사용하여 생기는 오류 4. 에디터 시작 or 디버깅 시 75%(또는 다른 지점)에서 ..