묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
OnExperienceLoaded 함수에서 PlayerCanRestart에서 false가 나옵니다.
AHakGameModeBase::OnExperienceLoaded 함수에서 PlayerCanRestart에서 false가 되어서 RestartPlayer로 들어가지 않는데요.제공한 수업자료의 PDF도 보고 소스도 보고 했지만원인을 찾기가 힘들어 문의 드려봅니다. 내부적으로 false로 될 만한 부분이 딱히 보이지는 않는데혹시나 싶어 내부 체크 코드중 아래 부분을 해봤는데 null이 나오긴 하더라구요.UNetConnection* Connection = Cast<UNetConnection>(PC->Player); ============================클론해본 코드에 위 코드까지 넣은 코드입니다.void AHakameModeBase::HandleStartingNewPlayer_Implementation(APlayerController* NewPlayer){ if(IsExperienceLoaded()) { Super::HandleStartingNewPlayer_Implementation(NewPlayer); void AHakGameModeBase::OnExperienceLoaded(const UGrayExperienceDefinition* CurrentExperience){ // PlayerController를 순회하며 for (FConstPlayerControllerIterator Iterator = GetWorld()->GetPlayerControllerIterator(); Iterator; ++Iterator) { APlayerController* PC = Cast<APlayerController>(*Iterator); UNetConnection* Connection = Cast<UNetConnection>(PC->Player); if(Connection == nullptr) { int i = 0; } // PlayerController가 Pawn을 Possess하지 않았다면, RestartPlayer를 통해 Pawn을 다시 Spawn한다 // - 한번 OnPossess를 보도록 하자: if (PC && PC->GetPawn() == nullptr) { if (PlayerCanRestart(PC)) { RestartPlayer(PC); } } }}
-
미해결[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
mac에서 따라하려면 어떻게 해야할까요?
mac과 Rider 사용해서 수업 듣고 있는데요.D1 프로젝트 받게 되면 여러가지 에러 발생해서요 혹시 mac에서 프로젝트 따라하려면 어떻게 해야할 까요?
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
Cosmetic에서 PawnComponent를 AddComponent로 붙이지 않은 부분에 대한 질문
PawnComponent를 GameFeature Action을 통해 붙이지 않은 이유를 무거워서 직접 붙이고 필요할때마다 Character를 BP클래스로 나눠서 붙이는 방식이라고 하셨는데그러면 아예 처음부터 CharacterBaseClass를 만들고, BP로 인간 클래스, 괴물 클래스, 동물 클래스를 별도로 나눠놓고 각 BP클래스에 각기 다른 CharacterPart를 AddComponent를 하는거랑 차이가 있을까요??
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Plugins Person 상속 관련
안녕하세요 교수님.강의 잘 듣고 있습니다.42:20 부분에 Plugins 으로 만든 Person을 상속하는 과정에서 Person.h 파일을 못 찾는 에러가 발생했습니다. 빌드 cs 파일에서도CommonUtility를 추가한 상태입니다ㅠㅠ
-
미해결[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
GameFeatureData 의 Current State Active 오류
"GameFeaturePlugin.StateMachine.Registering.Plugin_Missing_GameFeatureData"이렇게 오류가 뜨면서 Active가 활성화되지 않습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
FTakeItemDelegateWrapper에 대한 질문입니다.
안녕하세요 교수님.델리게이트를 리스트에 담아주기 위해 구조체를 이용해서 감싸주었는데, 델리게이트만으로는 리스트에 담는것이 어려운 것인지 궁금해 질문남깁니다.예를 들어, 래퍼 없이 직접 TakeItemActions을 TArray<FOnTakeItemDelegate>로 정의하고TakeItemActions.Add(FOnTakeItemDelegate::CreateUObject(this, &AABCharacterBase::EquipWeapon)); TakeItemActions.Add(FOnTakeItemDelegate::CreateUObject(this, &AABCharacterBase::DrinkPotion)); TakeItemActions.Add(FOnTakeItemDelegate::CreateUObject(this, &AABCharacterBase::ReadScroll)); void AABCharacterBase::TakeItem(UABItemData* InItemData) { if (InItemData) { TakeItemActions[(uint8)InItemData->Type].ExecuteIfBound(InItemData); } }와 같이 래퍼 없이 사용하는 것입니다.이에는 문제가 없을까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
uproject 파일로 언리얼 엔진 실행시키는 과정
안녕하세요, 교수님강의 잘 듣고 있습니다. uproject 파일로 언리얼 엔진 실행시키는 과정에서외장하드에 언리얼 엔진을 받았을때,런처랑 연동이 안 되어있는데어떻게 연동 할 수 있을까요?ㅜㅜ 결론 엔진을 못 찾아서 실행이 안됩니다...
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
헤더에서 cpp 작은 창 띄우는 것 어떻게 하나요?
저 밑에 작은 창 생기는 거 어떻게 설정하나요?
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
강의 내용과 무관하지만 질문드리고자 합니다.
제가 만든 UnrealMemory 이름의 프로젝트에 있는 여러 소스파일들을 UnrealMemory2 라는 이름의 새로운 언리얼엔진 프로젝트를 만들어 해당 소스폴더에 붙여넣은 후, UNREALMEMORY2_API로 전부 바꾸고 UnrealMemory2 프로젝트를 개별 빌드하면 아래와 같이 오류없이 빌드가 성공하나, (12>Unhandled exception: System.IO.IOException: The process cannot access the file 'F:\LeeProject\UnrealMemory2\Intermediate\Build\Win64\x64\UnrealGame\DebugGame\UnrealMemory2\MyGameInstance.cpp.obj.rsp' because it is being used by another process.12> at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in C:\Program Files\Epic Games\UE_5.4\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.cs:line 664========== 모두 다시 빌드: 12 성공, 0 실패, 0 건너뛰기 ==========), 그 후 ctrl+shift+space 를 누르면 다음과 에러가 뜹니다.심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 MSB3073 ""C:\Program Files\Epic Games\UE_5.4\Engine\Build\BatchFiles\Build.bat" UnrealMemory2 Win64 DebugGame -Project="F:\LeeProject\UnrealMemory2\UnrealMemory2.uproject" -WaitMutex -FromMsBuild -architecture=x64" 명령이 종료되었습니다(코드: 9). UnrealMemory2 C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44그리고 에디터가 실행되는지 테스트해보기 위해 f5 를 누르면, 콘솔창이 뜨고 다음과 같은 내용이 출력됩니다. Global options:-Help : Display this help.-Verbose : Increase output verbosity-VeryVerbose : Increase output verbosity more-Log : Specify a log file location instead of the default Engine/Programs/UnrealBuildTool/Log.txt-TraceWrites : Trace writes requested to the specified file-Timestamps : Include timestamps in the log-FromMsBuild : Format messages for msbuild-SuppressSDKWarnings : Missing SDKs error verbosity level will be reduced from warning to log-Progress : Write progress messages in a format that can be parsed by other programs-NoMutex : Allow more than one instance of the program to run at once-WaitMutex : Wait for another instance to finish and then start, rather than aborting immediately-RemoteIni : Remote tool ini directory-Mode= : Select tool mode. One of the following (default tool mode is "Build"):AggregateClangTimingInfo, AggregateParsedTimingInfo, Analyze, ApplePostBuildSync, Build,ClRepro, Clean, Deploy, Execute, FixIncludePaths, GenerateClangDatabase, GenerateProjectFiles,IOSPostBuildSync, IWYU, InlineGeneratedCpps, JsonExport, PVSGather, ParseMsvcTimingInfo,PipInstall, PrintBuildGraphInfo, ProfileUnitySizes, Query, QueryTargets, Server, SetupPlatforms,Test, UnrealHeaderTool, ValidatePlatforms, WriteDocumentation, WriteMetadata-Clean : Clean build products. Equivalent to -Mode=Clean-ProjectFiles : Generate project files based on IDE preference. Equivalent to -Mode=GenerateProjectFiles-ProjectFileFormat= : Generate project files in specified format. May be used multiple times.-Makefile : Generate Linux Makefile-CMakefile : Generate project files for CMake-QMakefile : Generate project files for QMake-KDevelopfile : Generate project files for KDevelop-CodeliteFiles : Generate project files for Codelite-XCodeProjectFiles : Generate project files for XCode-EddieProjectFiles : Generate project files for Eddie-VSCode : Generate project files for Visual Studio Code-VSMac : Generate project files for Visual Studio Mac-CLion : Generate project files for CLion-Rider : Generate project files for RiderC:\Program Files\Epic Games\UE_5.4\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.exe(프로세스 17220)이(가) 1 코드(0x1)와 함께 종료되었습니다.디버깅이 중지될 때 콘솔을 자동으로 닫으려면 [도구] -> [옵션] -> [디버깅] > [디버깅이 중지되면 자동으로 콘솔 닫기]를 사 용하도록 설정합니다.이 창을 닫으려면 아무 키나 누르세요...binaries 와 save, derivedcaches, intermediate 폴더를 삭제하고 시도하였으며, .uproject로 generate Vs project files 를 실행해도 동일하게 콘솔창이 뜨게 됩니다. 정상적으로 에디터를 실행하기 위해선 어떤 방법이 필요한지 알고싶습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
이 시리즈 25년에 계획 있으실까요?
C++도 C# Part7+Part9 처럼게임 구현하고 서버에 물리는 과정까지 하실 예정 있으신지 궁금합니다. 다른 게시글에서 나~~중에 한다고 하신걸 봤는데 25년에는 계획이 있으신가요?
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
길찾기 이후 이동이 동작하지 않습니다.
랜덤하게 좌표 찍히는것도 확인했고 다른 설정도 모두 동일하게 잘 된거 같은데 이동을 하지 않습니다...
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TWeakObjecPtr 과 CG 와 관련하여 궁금한점이 있습니다.
void AABStageGimmick::SpawnRewardBoxes(){ for (const auto& RewardBoxLocation : RewardBoxLocations) { FVector WorldSpawnLocation = GetActorLocation() + RewardBoxLocation.Value + FVector(0.0f, 0.0f, 30.0f); AActor* ItemActor = GetWorld()->SpawnActor(RewardBoxClass, &WorldSpawnLocation, &FRotator::ZeroRotator); AABItemBox* RewardBoxActor = Cast<AABItemBox>(ItemActor); if (RewardBoxActor) { RewardBoxActor->Tags.Add(RewardBoxLocation.Key); RewardBoxActor->GetTrigger()->OnComponentBeginOverlap.AddDynamic(this, &AABStageGimmick::OnRewardTriggerBeginOverlap); RewardBoxes.Add(RewardBoxActor); } }}AActor*인 ItemActor 가 가리키는 액터가 월드에서 스폰된 후, 이것을 RewardBoxes.Add(RewardBoxActor); 구문을 통해 약참조 포인터로 참조하도록 한 후 SpawnRewardBoxes() 함수를 종료 하게 되었을 때, 강참조 역할을 했던 해당 객체의 소유권을 갖고있던 지역변수 RewardBoxActor 는 소멸하므로, 강참조 포인터가 파괴됨에 따라 소유권을 가질 능력이 없는 RewardBoxes 안의 WeakPtr 또한 GC의 수집에 의해 더이상 유효하지 않게 될것처럼 느껴지는데 실제론 그렇지 않은 것인가요? 만약 그렇지 않은것이 맞다면 이유가 무엇인지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TSoftPtr 에 대해 질문이 있습니다.
예를들어 TSoftObjectPtr로 된 TSoftObjectPtr<class USkeletalMeshComponent> 타입의 포인터는 UPROPERTY() 로 설정하게 될 경우 TObjectPtr 과 마찬가지로 GC의 자동 수거대상에서 제외되는 않고 명시적으로 참조를 해제해야만 GC가 수거하게 되나요? 그리고 TObjectPtr 과 TSoftObjectPtr 전부 UPROPERTY()로 설정하지 않을 경우, GC 시스템에 의해 자동으로 메모리가 회수당하게 되나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
움직임은 캐릭터에서 처리해야하나요? 컨트롤러 클래스에서 해야하나요
별건 아니고 단순한 궁금증이 생겨서 질문 남깁니다.강의에서는 플레이어의 입력을 받고 움직임을 처리하는 것을 ABCharacterPlayer 클래스에서 처리하였는데요.그렇다면 Controller는 어떨 때 사용하는건가요?제가 강의를 봤을 때 움직임 등을 PlayerController에서 처리한다고 했는데 Character 클래스에서 처리해서 질문 남깁니다.강의를 위해 카메라와 움직임을 하나의 클래스로 보여주신 것인지 아니면 원래 이렇게 하는지 궁금하네요
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
솔루션 빌드에 실패합니다
안녕하세요 강사님 강의 잘 보고 있습니다. 올려주신 최종 소스코드 파일을 보면서 강의를 듣고싶은데 올려주신 프로젝트의 솔루션 파일이 계속 빌드에 실패합니다.파일을 받고 바로 빌드하면 문제가 발생합니다.D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\Shared\EpicGames.Build\EpicGames.Build.csproj : warning NU1904: 'System.Drawing.Common' 4.7.0 패키지에 알려진 위험 심각도 취약성인 https://github.com/advisories/GHSA-rxg9-xrhp-64gj이(가) 있습니다. [D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj]D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj : warning NU1904: 'System.Drawing.Common' 4.7.0 패키지에 알려진 위험 심각도 취약성인 https://github.com/advisories/GHSA-rxg9-xrhp-64gj이(가) 있습니다.D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj : warning NU1903: 'System.Text.Json' 6.0.0 패키지에 알려진 높은 심각도 취약성인 https://github.com/advisories/GHSA-8g4q-xg66-9fp4이(가) 있습니다.D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj(2,3): error MSB4019: 가져온 프로젝트 "D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\Shared\UnrealEngine.csproj.props"을(를) 찾을 수 없습니다. Import 선언 "..\Shared\UnrealEngine.csproj.props"의 식이 올바르고 디스크에 파일이 있는지 확인하세요.경고 6개, 오류 1개저렇게 해당 파일이 없다고 컴파일에 실패해서 프로젝트 버전을 5.4로 스위치 해서 빌드해봤는데 HakEditor modifies the values of properties: [ bStrictConformanceMode: False != True ]. This is not allowed, as HakEditor has build products in common with UnrealEditor. Remove the modified setting, change HakEditor to use a unique build environment by setting 'BuildEnvironment = TargetBuildEnvironment.Unique;' in the HakEditorTarget constructor, or set bOverrideBuildEnvironment = true to force this setting on.이런 오류가 뜹니다. (5.5버전 스위치도 동일하네요..ㅠ) 이외에 프로젝트 빌드를 위해 많은 시간을 할애해봤지만 제가 아직 강의 초반부를 듣고있어서 따로 해주어야 하는걸 안해줘서 그런건지 궁금합니다. 위의 오류에서 수정하라는대로 수정도 해보고 인터넷에 검색도 많이 해봤는데 잘 해결이 되지않아 질문드립니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
액터를 C++로 생성하는 이유
강의를 듣다가 의문이 생겨 글 남깁니다.분수대를 만드는데 BP와 C++을 이용해서 각각 만들어봤는데BP를 통해서 만들때는 너무 쉽고 간단하지만 C++을 사용할때는 복잡하고 초기에 해줘야하는 세팅이 너무 많은것 같아서 굳이 왜 C++을 통해서 액터를 만들어야하는가? 라는 의문이 듭니다.가령 액터를 꾸미는? 작업은 BP로 하고 주요 로직은 C++로 작성하는게 맞지 않나 라는 생각이 드는거죠. 실제 현업에는 어떻게 사용하지는 모르겠지만, 프로그래머가 C++을 통해 맵에 배치할 모든 액터를 작성하지 않을 것 같아서 질문 드립니다.액터를 만들때에는 왜 C++을 사용해야하는지?만약 그렇다고 한다면 일련의 노가다와 같은 초기화 작업을 다 해야하는지?지금까지 강의를 들었을 때 제가 내린 스스로의 해결법?은 C++ A클래스를 만들고 헤더 파일에 UPROPERTY(VisibleAnywhere, BlueprintReadWrite)를 통해 프로퍼티를 열어둔 상태에서 B라는 블루프린트 클래스를 만들어서 A를 상속 받은 후 에디터를 통해 작업하는 것 입니다. 이것도 어떻게 생각하시는지 궁금합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
9강 30:13 에서 빌드 에러 부분입니다.
강의 내용에는 #include Engine/OverlapResult.h" 를 포함하지 않음에도 불구하고 빌드후 에디터 실행까지 이루어지지만, 현재 버전에서는 어째서인지 깃허브 파일에서 추가해놓은 위 헤더를 추가해야만 빌드가 실행이 되는 것으로 보입니다..
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
DI 환경, DI 란 무엇인가요??
강의 내용 중 "DI 환경에서는" 이란 말씀을 하시는데 처음 듣는 용어라서요.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
ABCollision.h
ABCollision.h 에서 CoreMinimal 헤더파일의 경로를 자꾸 못잡아주네요. 메모장에서 .h 바꿔서도 해보고, 깃허브에서 ABCollision.h 파일을 옴기고 generate 다시 해봐도 ABCollision.h 파일에서 CoreMinimal 경로를 못찾네요 어떻게 해줘야 할까요
-
해결됨[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
Subsystem 궁금한게 있어서 질문드립니다!
1.Subsystem은 plugin에만 넣어서 사용할 수 있나요? 아니면 기본프로젝트에서도 사용가능한가요?2.같은 부모를 상속 받는 Subsystem을 여러개 만들수 있나요?예: UGameInstanceSubsystem를 상속받아서 MyASubsystem, MyBSubsystem 이렇게 여러개 생성해서 사용해도 문제 없을까요?