갬장장이
'game engines' 카테고리의 글 목록

game engines

game engines/Unreal Engine

Custom Movement Component

https://docs.unrealengine.com/4.26/ko/ProgrammingAndScripting/ProgrammingWithCPP/CPPTutorials/Components/3/ SafeMoveUpdatedComponent는 언리얼 엔진 피직스를 사용하여 입체 장애물을 피해 Pawn Movement Component 를 이동시킨다. SlideAlongSurface 는 이동하다가 충돌이 발생할 경우 미끄러짐 벡터를 계산해 시 표면을 타고 부드럽게 미끄러지도록 하는 물리 연산을 한다.

game engines/Unreal Engine

[UE5] 블루프린트에서 RootComponent가 제대로 설정되지 않을 때

https://forums.unrealengine.com/t/setting-root-component-to-primitive-component-doesnt-work/507801 Setting root component to primitive component doesn't work? If I have a C++ actor like: UCLASS() class MYMOD_API AMyActor : public AActor { GENERATED_BODY() public: AMyActor(); public: UPROPERTY(VisibleAnywhere, Category = "Components") USceneComponent* SceneRootComponent = nullptr; }; AMyActor::AM..

game engines/Unreal Engine

[UE5] FRunnable, FRunnableThread 사용 시 참고

언리얼 5.2.1 기준으로 작성되었습니다 1. FRunnable의 가상함수들은 직접 호출할 필요가 없다. FRunnableThread의 여러 함수들이 스레드와 연결되어있는 FRunnable의 가상함수를 내부적으로 호출해 사용한다. 때문에 코드 작성 시에는 FRunnableThread로 스레드 동작의 흐름을 제어하며, FRunnable 가상함수를 직접 호출할 일은 거의 없다. 2. FRunnable::Init()의 override가 false를 반환하고 있지는 않은지 확인해야 한다. VS에서 자동으로 정의를 만드는 기능을 사용해 함수 구현부를 자동 생성하면 항상 false를 반환하도록 구현하기 때문에 주의가 필요하다. 3. FRunnableThread::Kill()을 사용할 때는 조심해야 한다. 이 함수는..

game engines/Unreal Engine

[UE5] Standalone Playmode에서 빌드가 업데이트가 안되는 경우

빌드를 하고 나서 뷰포트 Playmode에서는 정상적으로 최신 빌드가 플레이 되지만 Standalone playmode에서는 플레이 되는 경우가 있다. 원인은 Live Coding과 관련된 이슈로 추정되며, Live Coding을 끄고 다시 한 번 빌드를 하고 실행하면 Standalone playmode에서도 제대로 최신 빌드가 실행되는 것을 볼 수 있다.

game engines/Unreal Engine

[UE5] exception_access_violation writing address 0x0000000000000000

결론부터 말하면, 어디선가 Null포인터에 접근하고 있을 가능성이 크다. NULL Check를 코드 전체에서 제대로 하고 있는지 확인하자. 크래시 발생 시 출력되는 로그를 살펴보면 대략적인 에러 지점을 알 수 있는데, 정확한 에러지점이 아닌 경우가 있어 해당 포인트 이전 실행과정들을 거슬러 올라가며 살펴봐야 한다.

game engines/Unreal Engine

[UE5] 윈도우 라이브러리를 사용하며 발생하는 문제들

윈도우 계열의 일부 라이브러리를 사용할 경우, 언리얼에서 정의된 값들 간의 이름 충돌 방지를 위해 헤더 추가지점과 외부 헤더에 정의된 값을 사용하는 코드의 앞뒤를 특수한 헤더로 감싸주어야 한다. 그렇지 않을 경우 링커 관련 에러가 발생할 수 있다.// Socket.h #include // (코드) // 에러 발생// Socket.h #include "Windows/AllowWindowsPlatformTypes.h" #include "Windows/prewindowsapi.h" #include // (코드) #include "Windows/PostWindowsApi.h" #include "Windows/HideWindowsPlatformTypes.h" 또 AllowWindowsPlatformTypes.h는..

game engines/Unreal Engine

[UE5] Could not be compiled, Try rebuilding ...

해당 에러를 발생시키는 다양한 이유들이 있을 수 있지만 가장 흔한 사유는 Dependencies에 필요한 모듈을 추가하지 않는 경우이다. 예시로, 소스코드의 어떤 부분에서 FSocket을 사용한다면 FSocket이 정의된 Sockets 모듈을 .Build.cs의 Public 또는 Private dependencies에 추가해주어야 에러가 발생하지 않는다.

game engines/Unreal Engine

[UE5] MSB3073 에러

당연히 에러 코드만 보고 정확히 진단하기 어렵고 원인이 여러 가지가 있을 수 있는데, 프로젝트 초반부에 빌드 시 이 에러가 발생한다면 UE5의 Live coding과 관련해 발생하는 것일 가능성이 크다. 이 경우 Ctrl Alt f11을 눌러 Live coding을 사용해 컴파일, 빌드하거나 혹은 아예 Live coding 기능을 꺼버린 후 VS에서 빌드하는 방식으로 해결 가능하다.