묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
SubSystem이 궁금합니다.
갑자기 헷갈려서 질문을 드려봅니다. GetWorldNetwork에서[ 해당월드에 SubGameInstance의 Session을 통해 비교합니다.] 라는 말은 월드마다 SubGameInstance이 별도로 생성하고 관리가 된다는 뜻인가요? SubGameInstance는 단순히 GameInstance기능 + GC + 내가 추가적으로 넣고싶은 기능을 위해서 쓰는것으로 알고있는데 제가 모르는 부분이 뭔지 궁금해서 남겨봅니다..ㅠㅠㅠㅠ
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
마켓플레이스가 Fab으로 바뀌면서 더이상 Infinity Blade 에셋을 제공하지 않는것 같습니다.
8강의 infinity Blade: Weapons 에셋팩을 다운받으려 마켓 플레이스에 갔는데 Fab으로 바뀌어 있었습니다.Fab에서는 검색해도 해당 에셋팩이 뜨지 않고, 에픽게임즈 런처를 열어 Fab으로 바뀌기 전 받아놓았던 Infinity Blade: Warriors을 라이브러리에서 들어가도 Page not found가 뜹니다ㅠㅠ이런 경우에는 깃헙의 Content 폴더에 MaterialLibrary를 다운받아서 그대로 쓰면 될까요? 아니면 Fab에서 적당한 무료 weapon 에셋을 받아서 쓰면 될까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
GetController() 의 NULL
왜 인지는 모르겠지만, 8강을 시작하면서밑에 있는 코드의 GetController()에서 NULL을 반환하고 있어 게임 플레이가 안되던 문제가 있었습니다.void AABCharacterPlayer::SetCharacterControl(ECharacterControlType NewCharacterControlType) { UABCharacterControlData* NewCharacterControl = CharacterControlManager[NewCharacterControlType]; check(NewCharacterControl); SetCharacterControlData(NewCharacterControl); APlayerController* PlayerController = CastChecked<APlayerController>(GetWorld()->GetFirstPlayerController()); if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PlayerController->GetLocalPlayer())) { Subsystem->ClearAllMappings(); UInputMappingContext* NewMappingContext = NewCharacterControl->InputMappingContext; if (NewMappingContext) { Subsystem->AddMappingContext(NewMappingContext, 0); } } CurrentCharacterControlType = NewCharacterControlType; }아직 Pawn이 컨트롤러를 얻은 시점이 아니라서 NULL 값으로 반환된다고 합니다. GetWorld()->GetFirstPlayerController()를 호출해서 컨트롤러를 반환할수 있던데, Pawn이 컨트롤러를 얻은 시점이 언제인가요?
-
미해결Go Hard to Unreal (feat. 취준 멘토링)
리메이크 된 강의가 따로 있는건가요?
지금 듣고 있는걸 계속 들어도 되는건지 궁금해요
-
미해결[입문자를 위한 UE5] Part4. 언리얼 엔진 C++
visual studio와 vscode
안녕하세요 강사님현업에서는 언리얼 source code editor로 visual studio를 많이 쓰나요? VS Code를 더 많이 사용하나요?언리얼에서 사용한다면 각각의 장단점이 뭔지도 궁금합니다.
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
PrimaryAssetData 심화 강의
해당 수업보면서, UDataAsset 클래스 위에 강사님이 주석다신 것처럼 똑같이 달았는데, 빌드(컴파일)가 안되는 현상이 있었습니다. error c2143: syntax error : missing ';' before내용 즉슨 ';' 빼먹었다고 나오던데, 언리얼에서 정의된 클래스라서요. 혹시 주석만 달아도 위와 같은 문제가 발생할수 있는지 알수 있을까요? 발생 라인은 class UPrimaryDataAsset : public UDataAsset로 클래스 이름 정의하는 라인에서 발생했습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
E0077오류
Generated body부분에 오류가 뜨는데 선언도 잘 했고 헤더파일도 추가했는데 오류의 원인을 모르겠습니다.ENEMY로 다시 만들어보는중이라 변수명은 enemy입니다
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
아이패드에서 2강부터 재생 불가
Part.4 게임플레이 어빌리티 시스템 2강 캐릭터와 입력 시스템부터 재생이 안됩니다.다른 파트는 정상적으로 재생됩니다..검색해보니까 인프런에 유사한 증상을 겪는 유저가 종종 있는것 같은데, 한번 살펴봐 주십시오. 실행환경: 아이패드 프로11 3세대브라우저: 크롬과 웨일 (일반/시크릿 모드에서 테스트)
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
15강에서 AGameModeBase 관련 에러가 뜹니다.
(5.4.3 기준)14강까지 잘 달려오다가 15강에서 갑자기 오류가 뜹니다.우선 14강까지 쓰던 프로젝트를 문제없이 그대로 써왔으며, 15강을 시작하기 앞서 이 프로젝트를 빌드를 통해 에디터가 켜지는것을 확인 후, 15강의 앞부분 c++코드를 따라하면서, 정확히"7:42 까지 따라한 후, 즉 캐스팅코드 작성 이후 헤더까지 포함 시킨 후 바로 F5를 누르면 맨 아래와 같은 에러가 뜹니다.((바로 전 단계인 ABGameInterface.h 를 에디터에서 생성 후, 모두 로드를 클릭한 후에 그 즉시 f5를 눌러 문제없이 에디터가 켜지는 것을 재차 테스트하여 확인함)"이후에 어떤 코드를 이어 써서 디버깅해도 같은 에러가 떠서 수강 진행이 막혀있는 상태입니다.그래서 깃허브에서 올려주신 "UnrealProgrammingPart2-14" 도 받은 후 15강을 따라하면서 아까와 동일하게 매 코드작성마다 디버깅확인을 해봤더니, 이 파일 또한 정확히 7:42부분에IABGameInterface* ABGameMode = Cast<IABGameInterface>(GetWorld()->GetAuthGameMode()); 코드를 작성 후, Interface/ABGameInterface.h 헤더를 포함시키고 그 즉시 F5를 하면 위와 동일한 상황에서 동일한 에러가 뜹니다. 근데 신기한건, 깃허브에 올려주신 "UnrealProgrammingPart2-15" 도 받아서 F5를 눌렀더니 이것은 문제 없이 에디터가 켜집니다. 어떤 차이가 있길래 이것은 켜지는걸까요...?어떤 문제로 인해 저 시점에 아래와 같은 에러가 발생하는지 궁금합니다. 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 MSB3073 "F:\UE_5.4\Engine\Build\BatchFiles\Build.bat ArenaBattleEditor Win64 Development -Project="C:\Users\qkrwo\Downloads\UnrealProgrammingPart2-14\UnrealProgrammingPart2-14\ArenaBattle.uproject" -WaitMutex -FromMsBuild -architecture=x64" 명령이 종료되었습니다(코드: 6). ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 157오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 167오류(활성) E0020 식별자 "FTextureBuildSettings"이(가) 정의되어 있지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\Texture.h 2017오류 C2027 정의되지 않은 형식 'AGameModeBase'을(를) 사용했습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88오류 C2338 static_assert failed: 'Attempting to cast between incomplete types' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88오류 C2139 'AGameModeBase': 정의되지 않은 클래스는 컴파일러 내장 형식 특성 '__is_base_of'에 대한 인수로 사용할 수 없습니다. ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits 1298오류 C2338 static_assert failed: 'Attempting to use Cast<> on a type that is not a UObject or an Interface' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 135
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
다중 타겟액터 설정할때, 자신이 제외가 안됩니다.
안녕하세요. 10강 다중 타겟으로 스킬 데미지 입히는 부분 학습중입니다. 그런데, 스샷처럼 CollisionQueryParams 생성할때 Source Character 를 넣어줘도 Overlaps 정보에보면 자신이 포함되있는 상태로 나옵니다. 실제로 게임 플레이시, 자신도 피해를 입는 상황이고요.. 혹시 어떤부분을 확인해봐야될지 알수있을까요? 감사합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
강의중 HUD와 HPWIDGET
13강에서 HUD를 업데이트하면서 화면에 띄우는 작업을 하게되는데요,좀 궁금한 사항이 생겼습니다.기본적으로 케릭터마다 HP위젯을 가지고있는데, 만약 플레이어는 따로 HP를 가지고 있지 않게하고 HUD에 HP를 띄우는것만으로 UI를 변경하게 된다면, 플레이어쪽에서 HPBar위젯 CDO를 하지 않게 변경하고 몬스터들만 CDO를 생성하도록 변경하면 되는건가요? 그리고 이제 플레이어는 HUD를 통해서만 소유한엑터정보를 가저와서 스텟에 접근하는 방식으로 변경하면 될려나요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
State에 Falling을 추가하고 싶습니다.
안녕하세요. 프로젝트 작업 중 점프가 아닌 Falling 스테이트를 부여하고 싶습니다. Effect를 만들어서 강제로 부여해야하는건지 아니면 다른 기능이 있는지 여쭤보고 싶습니다.
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
로직 이슈 있음.
좌우로 추가 된다고 말씀주셨는데, 좌우로 추가되는 로직이 아닙니다.그리고 보니까 offset 추가되는 부분에서, UserFacingExperienceList 의 Length 가지고 로직 돌리던데, Index 없이 돌리는 부분이 없네요. 저렇게 되면 무조건 0번쨰 인덱스 가지고 계산하게 됩니다.수정은 상위 ForEachLoop 부분에서 ArrayIndex 반환하는 부분이 있는데, 그걸 쓰셔야할것 같아요. 보니까 포탈이 1개라서 눈치를 못채셨을것 같은데, 이 부분 영상수정 혹은 자막 첨부 부탁드립니다.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
ArenaBattle 과 ArenaBattleGAS 모듈을 분리하는 이유가 있을까요?
안녕하세요. 강의 듣다보니, ArenaBattle 과 ArenaBattleGAS 모듈이 분리되있는데, 혹시 모듈을 분리하는 특별한 이유가 있을까요? 아니면 GAS 시스템과 기존 제작된 ArenaBattle 을 명시적으로 나누기 위해서 분리한것인가요? 궁금합니다 ^^;
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
액터 생성/삭제와같은 중요한 행위에 대한 복제와 연관성
서버에서 어떤 AI 캐릭터 액터를 Spawn Actor 하거나생성된 이 AI 캐릭터가 스스로 Destroy하여 삭제되는 행위가 서버에서 발생했을때 이러한 것들은 무조건 연관성 상관없이 복제되서 위치상 매우 멀리 떨어져있는 클라이언트에서도 같은 캐릭터 액터가 생성되고 삭제 되는 건가요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
클라이언트 새로 생성시 크래쉬 나는 문제..
안녕하세요. 영상을 보면서 언리얼을 배우고있는 학생입니다.선생님께서 알려주신대로 제가 따로 만든 프로젝트에 점목을 시키고있는데 클라이언트 추가 생성시 GameMode를 상속받은 클래스에서 Login()함수에 NewPlayer의 플레이어 컨트롤러가 NULL로 들어와 크래쉬가 나 에디터가 꺼지는 현상이 일어 나고있습니다.. 어떻게 해결이 가능할까요???
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
abort와 관련한 질문이 있습니다.
27:03 부분에서, target이 is not set으로 시작하여 오른쪽 시퀀스의 하위 테스크를 순차적으로 실행중인 상황에서, 만약 target이 detect에 의해 감지되어 is set이 되면 blackboard:target is not set <- 이 데코레이터는 실시간으로 target 값을 감지하여, detect로 인해 데코레이터의 target이 is set으로 될 경우 실행중이던 task는 즉시 failed를 반환한 후 abort를 하게 되는건가요? (데코레이터도 service처럼 tick 함수가 호출되나요?)이것이 참이라면, abort가 된 후에 root로 돌아가는것이 아니라 상위 노드인 selector로 돌아가서 평가를 다시 하게 되는 원리인가요? 아니면 root로 돌아가게 되나요?
-
미해결Go Hard to Unreal (feat. 취준 멘토링)
Serialzation 부분 Object Graph 질문입니다.
하나의 오브젝트가 다른 오브젝트를 속성으로 가지고 있는 관계를 오브젝트 그래프라고 설명해주셨는데, Object그래프와 Has-a관계와는 어떤 비교가 가능할까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
OnHpChanged 델리게이트의 broadcast 호출시점에 대한 궁금증이 있습니다.
우선 제가 알고있는 바로는 UABCharacterStatComponent::BeginPlay() 가 호출될 시, 내부에서 SetHp 함수가 호출되며 그 안에 있는 OnHpChanged.Broadcast(CurrentHp); 가 호출되므로, 그 전에 OnHpChanged가 바인딩되어 있어야 한다. UABHpBarWidget::NativeConstruct() 내부에 SetupCharacterWidget(this) 가 호출되고, 이 안에서 Stat->OnHpChanged.AddUObject를 통해 &UABHpBarWidget::UpdateHpBar 를 바인딩한다. ---먼저 OnHpChanged 에 어떤 함수를 바인딩 후에 1. 처럼 Broadcast 를 하는것이 순서로 알고 있는데, 위젯의 NativeConstruct() 는 스탯컴포넌트의 BeginPlay() 보다 늦게 호출되는 것으로 알고 있어서 만약 이것이 사실이라면, 2. 의 바인딩 과정 이전에 이미 스탯컴포넌트의 BeginPlay를 통해서 바인딩되지 않은 OnHpChanged를 Broadcast를 해버리는 결과가 생길수도 있는건가요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
수업과 좀 관련없는 문제지만 질문 있습니다
안녕하세요. 항상 강의 잘 듣고 있습니다.제가 집에서 듀얼 모니터를 사용하면서 노트북 모니터가 아닌 다른 모니터에서 언리얼 엔진을 띄우고 공부를 합니다.근데 밖에 나가서 노트북 모니터로만 하다가 그동안은 잘 됐었는데 갑자기 GPU Crashed or D3D Device Removed.Use -d3ddebug to enable the D3D debug device.Check log for GPU state information. 이라는 에러 창이 뜨면서 프로젝트가 켜지질 않습니다.제가 인터넷에서 방법을 찾아보면서 드라이버 재설치, defaultengine.ini에서 dx11로 바꾸고 실행, trddelay 설정, 엔비디아 제어판 전원파워 최고 성능 선호로 설정, 언리얼 엔진 외장 그래픽만 사용하도록 설정이렇게 다양한 방법들을 해봤는데 그래도 안되더군요. 근데 집가서 다시 듀얼 모니터로 연결하고 실행해보니 언리얼 엔진이 잘 켜졌습니다.어디가 문제고 어떻게 해결할 수 있을까요? 다음은 크래쉬 리포터에 뜨는 내용입니다. LoginId:e119c4204e141de266d9dca94151ea5aEpicAccountId:2ceddc945c6f4fcab6b011ccf8e10152Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Util.cpp] [Line: 868] hr failed at D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\Windows\WindowsD3D12Viewport.cpp:189 with error DXGI_ERROR_DEVICE_REMOVEDUnrealEditor_D3D12RHI!D3D12RHI::VerifyD3D12Result() [D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Util.cpp:868]UnrealEditor_D3D12RHI!FD3D12Viewport::Init() [D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\Windows\WindowsD3D12Viewport.cpp:180]UnrealEditor_D3D12RHI!FD3D12DynamicRHI::RHICreateViewport() [D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Viewport.cpp:831]UnrealEditor_SlateRHIRenderer!FSlateRHIRenderer::CreateViewport() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateRHIRenderer\Private\SlateRHIRenderer.cpp:409]UnrealEditor_SlateCore!SWindow::ShowWindow() [D:\build\++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Widgets\SWindow.cpp:1410]UnrealEditor_MainFrame!FMainFrameHandler::ShowMainFrameWindow() [D:\build\++UE5\Sync\Engine\Source\Editor\MainFrame\Private\Frame\MainFrameHandler.h:265]UnrealEditor_MainFrame!FMainFrameModule::CreateDefaultMainFrameAuxiliary() [D:\build\++UE5\Sync\Engine\Source\Editor\MainFrame\Private\MainFrameModule.cpp:319]UnrealEditor_UnrealEd!EditorInit() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdGlobals.cpp:171]UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:176]UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:107]UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:244]UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:282]UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]kernel32ntdll