목록Game Dev/Unreal C++ : Dev Log (28)
KoreanFoodie's Study

오브젝트 생성 및 애셋 불러오기 언리얼에서 오브젝트를 생성하고 애셋을 불러올 때는 보통 CreateDefaultSubobject 로 CDO 를 만들어 준 다음, ConstructorHelpers::FObjectFinder 로 애셋을 연결시켜 준다. 이 과정을 단축시켜주는 Helper Function 을 만들어 사용해 보자. CHelpers.h #pragma once #include "CoreMinimal.h" #include "Components/SkeletalMeshComponent.h" #include "Kismet/GameplayStatics.h" #include "Particles/ParticleSystem.h" #include "NiagaraSystem.h" #include "NiagaraFun..

화면에 출력하는 로깅시스템 콘솔에 출력했던 것과 비슷하게, 이번에는 UE_LOG 가 아닌 AddOnScreenDebugMessage 함수를 활용해 화면에 값을 출력해보자. 출처는 여기! CLog.h class UE_PROJECT_NAME_API CLog { public: static void Print(int32 InValue, int32 InKey = -1, float InDuration = 10, FColor InColor = FColor::Blue); static void Print(float InValue, int32 InKey = -1, float InDuration = 10, FColor InColor = FColor::Blue); static void Print(const FString& I..

언리얼 로그 언리얼은 UE_LOG 함수를 이용하여 로그를 출력한다. 먼저, .h 파일에 카테고리를 선언하고, 그에 맞는 정의를 .cpp 파일에서 Define 해주면 된다. MyGame.h //General Log DECLARE_LOG_CATEGORY_EXTERN(LogMyGame, Log, All); //Logging during game startup DECLARE_LOG_CATEGORY_EXTERN(LogMyGameInit, Log, All); MyGame.cpp #include "MyGame.h" //General Log DEFINE_LOG_CATEGORY(LogMyGame); //Logging during game startup DEFINE_LOG_CATEGORY(LogMyGameInit); 헤더..

..은 힘들다. 이유는 여러가지 있겠지만, 역시 시간이 부족하다는게 가장 큰 문제다. 재택을 한다면 또 모르겠지만, 지금같은 상황에서는.. 평일에는 실제 개발에 1-2 시간이나 투입할수 있나 싶다. 주말을 잘 활용한다고 한들 절대적으로 시간이 부족하다. 기획은 계속 바뀐다. 개발에 무슨 진척이 있는것도 아닌데 망상만 늘어가는 느낌이다. 선택의 시간이 점점 다가오는 것 같다. 두렵기도 하고 떨리기도 하지만, 두렵지 않다면 그건 도전이 아니라는 것을 알고 있다. 그리고 도전은 언제나 내 예상을 뛰어넘는 가치가 있었다는 것도 잘 알고 있다. 바야흐로 폭풍전야.
Level Design 컨셉 : 무한맵. 4 개중의 하나의 방향으로 이동함. 목표 지점이 정해져 있음. 목표지점에 도달하여, 성화를 봉송하면 게임이 클리어. 전투 : 새 공간에 도착하면, 문이 닫히면서 적이 랜덤으로 스폰된 적과 싸우게 됨. 목표 지점에 가까이 갈수록 적이 강력해짐. 목표 지점 방에서는 보스와 전투를 하게 만들 수도 있음. 전투 완료 : 적을 전부 무찌르면, 2개의 아이템 박스가 나옴. 이때 선택을 해야 함. 선택지는 다음과 같음. 무기변경 무기강화 무기 내구도 수리 캐릭터 HP 증가 캐릭터 이동속도 증가 캐릭터 공격속도 증가 다만 2 가지 전부 효과 카테고리는 같은데, 하나는 "100% 확률로 10% 성능 향상" 이며, 나머지 하나는 "10% 확률로 성능 50% 상승, 40%확률로 성능..

언리얼에서 멤버 변수 선언의 윗줄에 UPROPERTY 매크로를 추가하면 자동으로 하단의 변수 선언 구문이 오른쪽으로 이동한다. 이를 자동조정하기 위해서는 비주얼 스튜디오 추가 확장 도구를 비주얼 스튜디오에 설치해야 한다! 링크는 아래에 있다 : https://github.com/hackalyze/ue4-vs-extensions GitHub - hackalyze/ue4-vs-extensions: Useful UE4 Visual Studio extensions. Useful UE4 Visual Studio extensions. Contribute to hackalyze/ue4-vs-extensions development by creating an account on GitHub. github.com 일단 ..

언리얼 프로젝트 구조를 변경하고, 모듈을 추가하는 작업을 한 후, 비주얼 스튜디오에서 "솔루션 다시 빌드" 를 했는데 빌드를 실패했다. 그리고 이런 에러 메시지가 떴다! (22/4/3 추가 : 비주얼 스튜디오에서 프로젝트를 빌드하면 해결됨) 그리고 나온 크래시 리포터. LoginId:be4263854175519d068bceae3ec68e43 EpicAccountId:8d541bf740fd4c8aa2ddbf45e5614f37 Assertion failed: Object->HasAnyFlags( RF_BeginDestroyed ) && !Object->HasAnyFlags( RF_FinishDestroyed ) [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUO..

Pure Virtual Function 이 왜 거기서 나와? 언리얼을 공부하던 중, 플레이 중에 ESC 버튼을 누르면 라는 에러가 나오면서 종료가 되는 현상이 발생했다. 그것도 지속적으로! pure virtual 함수가 호출되었다니?? 나는 만든적도 없는데.. 하며 에러로그를 보니 내 실수가 아닌, 엔진 쪽 버그로 보였다. 자세히 읽어보면 이 부분이 문제라는 건데... Fatal error: [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Core/Private/Windows/WindowsPlatformMisc.cpp] [Line: 475] Pure virtual function being called 일단 구글링을 조금 해보다가, 임시 방편으로 해당 소스코드를 약간..