묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 심화편
4:59 ~ 5:20 질문
화면에 가려진부분은 간접광이 안생긴다는 의미 이신가요?? 설명이 붕뜬거같아 추가설명을 듣고싶습니다.
-
미해결[나 혼자 레벨업] UE5 멀티플레이 게임 제작 Lv. 1 (Listen 서버 입문)
클라이언트에서 닉네임 변경시
서버쪽에서 닉네임을 바꾸면 다른 유저의 화면에서도 바로 적용되는데클라이언트에서 닉네임을 바꾸고 엔터를 누르면 왜 서버쪽에서는 전환이 안될까요?레디버튼을 누르면 바뀌긴해요블루프린트 버전에선 됐었는데 C++로 바꾼뒤로 안되네요
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
언리얼 버전
안녕하세요 항상 수준높은 강의해주셔서 감사합니다강의에선 5.3언리얼 버전으로 진행하는데, 최신버전인 5.6 버전으로 진행해도 무방할까요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
플레이어(Actor) 로 (리슨)서버에서 생성 되나요?
강의를 계속 듣고 보니 저는 (리슨)서버 의 경우 필요한 객체만 생성되는 줄 알았으나 마지막 Owner 에 대한 내용도 보니 결국 서버에서 플레이어 캐릭터 액터 도 생성 및 초기화 하고 이를 다시 클라이언트에서 Owner 가 설정되기 전이긴 하나 다시 생성 후 컴포넌트 초기화 , 오너 설정 등이 이루어지는데요.(리슨)서버의 경우 플레이어-접속된 클라이언트의 객체 모두 생성 후 다시 이를 클라이언트에게 전달 , 클라이언트에서는 서버에서 받은 객체 정보를 바탕으로 다시 플레이어 캐릭터 생성 및 오너 설정 즉 서버는 모두 생성한다. 그리고 접속되어 진 클라이언트 플레이어 액터 객체는 모두 서버에 의해 클라에서 생성되며 OnRep_Owner, PostNetInit 등을 통해 서버의 PossessedBy 와 동일한 일을 진행한다 이렇게 이해해도 될까요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
2강) HandleBeginPlay 의 역활이 궁금합니다.
마지막에 로그를 찍어보니 서버 역활을 하는 객체에는 HandleBeginPlay 로그가 출력되었으나 클라 역활을 하는 객체에는 OnRep_ReplicatedHasBegunPlay 로그가 출력되었습니다. 현재는 리슨서버로 진행되니 서버-클라 모두 HandleBeginPlay 가 호출될 줄 알았지만 클라에서는 출력되지 않습니다. 강의 내용처럼 HandleBeginPlay 는 서버 (로컬)에만 호출되니 클라에서는 호출 될 일이 없으며 클라에서는 OnRep_ReplicatedHasBegunPlay 만 호출되나 이것도 bReplicatedHasBegunPlay 값에 의해 호출 될수도 있고 안될 수도 있다 이렇게 이해해도 되나요?다만 bReplicatedHasBegunPlay 는 그렇가면 게임이 시작 이후에는 무조건 true 가 될테니 시작 이후에 접속되면 무조건 bReplicatedHasBegunPlay 가 호출 될 것이고시작 이전에 호출 되면 bReplicatedHasBegunPlay 호출이 안될 것이다이렇게 이해해도 될까요?
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
3강 중간, 모드 로그로 찍을 시 스탠드얼론이 안찍힙니다.
최초 리슨서버 역활을 하는 클라이언트 의 로그가 출력시 스탠드얼론은 없고 전부 서버 로만 나옵니다. 스탠드얼론이 아닌 서버에서 로그인 시작/끝 , 포스트 로그인 시작/끝 이렇게 출력되는데이건 엔진 업데이트가 되어 버전이 달라서 내부 로직 구조가 변경되어서 그런 것이다 라고 이해해도 될까요? 현재 버전은 5.6 입니다.
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
Papertilemapactor에서 타일맵이 보이지않음
제목대로 BluePrints란에서 페이퍼 타일 맵 액터를 만들고 렌더컴포넌트의 타일 맵 지정 부분에서 기존 타일맵을 지정해주는 작업에서 지정을 해도 BP_TileMap의 뷰포트에서 보이지 않습니다. GPT해결방법과 구글링을 해도 모르겠어서 질문글 남깁니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
쿠킹 폴더 지정시 , Item 이외에는 지정하지 않는지 궁금합니다.
ItemData 의 경우, 코드 상에서 경로로 읽어오는 것이라고는 하나 ItemData 의 경우 에셋매니저에 등록되어 에셋매니저의 Primary 키값으로 가져옵니다.반면 Box 와 같은 스태택 메쉬, 입력맵핑, 애님 몽타주 등은 코드 상 텍스트로 불러오는데요.그냥 보았을때는 텍스트로 코드상에 직접 경로를 추가하여 불러오는 객체들의 경로(폴더)를 지정해야 할 것 같은데 반대로 에셋매니저를 통해 불러오는 아이템데이터만 쿠킹경로에 별도로 추가하였습니다.이유를 알 수 있을까요?기본적으로 빌드시, 맵에 대한 정보를 기본적으로 가져온다고 멘트하였는데 맵에는 또 위의 입력맵핑, 애님 몽타주 등은 없는 것 같은데.. 게임모드->게임플레이어컨트롤러->캐릭터 등등 하여 코드상 참조된 코드들의 FClassFinder, FObjectFinder 혹은 TSubclassOf, T(F)SoftObjectPtr 을 엔진이 알아서 알아내고 빌드시 추가되는 것인지 궁금합니다.
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
강의 자료
안녕하세요 강의를 잘 듣고있습니다.혹시 강의에서 사용된 노션 자료는 따로 공유 해주실수 있나요?
-
해결됨[Rookiss R&D Lab] UE5 Framework Insight (Liu)
RootSet 에 설정이 안되어 있는 경우의 조건문이 다르지 않나요?
if(!!(FlagToSet & EInternalObjectFlags::RootSet))의 조건문은 RootSet 이 FlagToSet 에 설정되어 있어야 true 로 반환되지 않나요?설정이 안되어 있을 때 true 로 반환된다는 설명이 이해되지 않아요
-
미해결[입문자를 위한 UE5] Part4. 언리얼 엔진 C++
언리얼 프로젝트를 생성할 수 없었습니다(컴파일 실패)
안녕하세요 루키스님 강의 언제나 잘 보고 있습니다. 다름이 아니라 강의를 보며 프로젝트를 생성해보았지만 계속 실패하게 되어 질문드립니다.구글링을 해본 결과 언리얼 엔진과 비주얼 스튜디오와의 호환성 또는 버전의 문제인 것 같은데, 검색을 하며 이것저것 설정을 바꿔보아도 잘 되지가 않습니다.. 어떻게 해야하나요? 엔진 버전은 5.3.2입니다 Running C:/Program Files/Epic Games/UE_5.3/Engine/Build/BatchFiles/Build.bat Development Win64 -Project="C:/Users/giml7/Desktop/UE5/R2/R2/R2.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDEUsing bundled DotNet SDK version: 6.0.302Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" Development Win64 -Project="C:/Users/giml7/Desktop/UE5/R2/R2/R2.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDELog file: C:\Users\giml7\AppData\Local\UnrealBuildTool\Log.txtCreating makefile for R2Editor (no existing makefile)@progress push 5%Parsing headers for R2EditorRunning Internal UnrealHeaderTool C:\Users\giml7\Desktop\UE5\R2\R2\R2.uproject C:\Users\giml7\Desktop\UE5\R2\R2\Intermediate\Build\Win64\R2Editor\Development\R2Editor.uhtmanifest -WarningsAsErrors -installedTotal of 0 writtenReflection code generated for R2Editor in 1.0054079 seconds@progress popBuilding R2Editor...Using Visual Studio 2022 14.44.35219 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207) and Windows 10.0.26100.0 SDK (C:\Program Files (x86)\Windows Kits\10).Determining max actions to execute in parallel (6 physical cores, 12 logical cores)Executing up to 6 processes, one per physical coreRequested 1.5 GB memory per action, 4.77 GB available: limiting max parallel actions to 3------ Building 6 action(s) started ------[1/6] Resource Default.rc2[2/6] Compile [x64] SharedPCH.Engine.Cpp20.cppDetected compiler newer than Visual Studio 2022, please update min version checking in WindowsPlatformCompilerSetup.hC:\Program Files\Epic Games\UE_5.3\Engine\Source\Runtime\Core\Public\Experimental\ConcurrentLinearAllocator.h(31): error C4668: '__has_feature' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'C:\Program Files\Epic Games\UE_5.3\Engine\Source\Runtime\Core\Public\Experimental\ConcurrentLinearAllocator.h(31): error C4067: unexpected tokens following preprocessor directive - expected a newlineC:\Program Files\Epic Games\UE_5.3\Engine\Source\Runtime\Engine\Classes\Engine\SkeletalMesh.h(799): warning C4996: 'FBoneMirrorInfo': FBoneMirrorInfo is deprecated. Please use UMirrorDataTable for mirroring support. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.Total time in Parallel executor: 22.86 secondsTotal execution time: 40.24 seconds 엔진 5.4로 생성했을때는 생성은 되지만 비주얼 스튜디오에서 빌드를 했을때 NuGet 오류가 생기게 됩니다.. 디버깅 모드로 실행을 해도 언리얼 에디터가 켜지기만 하고 게임이 실행되지가 않습니다
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TSoftObjectPtr 를 사용했음에도, 메모리에 로드 됩니다.
UABWeaponItemData 의 WeaponMesh 의 속성을 TSoftObjectPtr 으로 변경 및 Base 에서 팬딩 대기 및 처리까지 모두 수정하였으나 최초 실행 시 여전히 검이 로드가 된 상황입니다.혹시 몰라 코드를 아예 복붙을 하였음에도 여전합니다.위 내용중 코드 내용에 문제가 없다면, 강의 내용중 에디터에서 무언가 제가 행위를 빼먹은 것 같은데 죄송합니다. 계속 돌려보는데 잘 찾지를 못하겠습니다. 혹 TSoftObjectPtr 을 사용할 WeaponMesh 등을 에디터에서 무언가 설정해야 할 것이 있을까요? 별도로 아주 만약 TSoftObjectPtr 가 어떠한 캐릭터를 레퍼런싱 한다고 하면 그리고 그 캐릭터가 중간에 삭제가 된다고 한다면 다시 로드해야 하는 행위가 필요할까요?아니면 tweakobjectptr 와 다르게 TSoftObjectPtr 를 단지 디스크에서 에셋을 참조하기 위한 역활로만 사용하는 것일까요? 즉 런타임에 도중 TSoftObjectPtr 에 무언가를 할당하는 것은 안되고 단지 디스크에서 객체를 참조하는 역활인지 그것이 헷갈립니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
7강에 나오는 생성자에 대해서 궁금합니다.
일단 찾아본 모든 Actor 등은 위젯과 동일하게 const FObjectInitializer& 를 파라미터를 받는 생성자를 가지고 있습니다. 그러나 왜 위젯만 const FObjectInitializer& 를 파라미터로 가지고 있는 생성자로만 사용해야 하는지 궁금합니다. 모든 객체가 동일한게 const FObjectInitializer& 를 인자로 갖고 있는 생성자로 생성해야 하는 것 같은데. 왜 그런 것일까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
6강을 마무리하며 트레이스 채널 을 이해하지 못했습니다.
강의 내용을 들었을 때 트레이스 채널은 반드시 필요한데 막상 사용하는 곳은 SweepSingleByChannel 의 파라미터 중 하나로 기입하는 것 뿐입니다. CollisionProfileName 처럼 각 액터별로 지정해 특정 액터(콜리젼)과 충돌 처리에 대한 여부를 설정하지도 않ㄱ트레이스 채널에서 Ignore 만 설정된 것은 그럼 Engine->Collision->Preset 리스트 중, ignore 로 설정 된 Name 만 찾는 것인지.. 죄송합니다. 제대로 이해를 못했는데 정확한 역활은 무엇인가요?
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 심화편
GetRandomPointInNavigableRadius 함수가 없어요
안녕하세요. 언리얼 5.6으로 따라가는 중인데 Context Sensitive를 끄고 검색해봐도 GetRandomPointInNavigableRadius 함수가 없습니다. 대신 GetRandomReachablePointInRadius 함수를 사용하니까 똑같이 동작은 하는데 이걸 사용해도 되는건가요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
3강을 마무리 하며, 카메라가 움직이지 않습니다.
Shoulder 모드 일 때 마우스 움직임에 따라 카메라가 움직이지 않고, 캐릭터의 방향벡터가 변경됩니다. 즉 마우스가 움직이는 대로 캐릭터에 앞으로 움직이면 똑바로 앞으로 가지 않고 이리저리 마우스 회전대로 움직이는데요. (카메라는 캐릭터를 따라는 다니나 회전은 고정 입니다.) 제가 뭔가 잘못 설정한 것 같은데 혹 어디를 체크하면 좋을까요? 혹시 몰라 이전에 질문한 Use Controll 옵션을 모두 껏다 켜보고 있습니다...
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Use Controller Rotation 옵션값이 궁금합니다.
강의에 설명해 주신 내용은 토대로 이해한다면 입력값에 의해 회전이 일어나고 이것이 ControlRotation 값을 변경 실제 회전에 대한 값이 지정되며 Use Controller Rotation 의 각 피치/요/롤 를 체크시 ControlRotation 값이 바로 반영된다고 이해했는데요. yaw 를 체크 후 테스트(마우스 회전) 해보니 캐릭터는 회전하지 않고 여전히 카메라만 회전합니다. 물론 Move 함수에서는 체크와 상관 없이 바로 ControlRotation 값을 가져와 방향벡터를 구해 이동하기는 하는데 로테이션은... 잘 이해가 안갑니다. 즉 Use Controller Rotation 와 캐릭터의 회전은 다른 개념일까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
3강 입력 시스템 적용 중, 5.6 버전은 입력 매팅이 2개 입니다.
5.6 버전에서는 입력 매핑 중, 마우스 룩 에 대해서는 기본 3인칭 예제 게임 컨트롤러 에 설정된 바로는 모바일 기기일 경우 별도의 hud 를 띄우고 아니면 마우스 룩 , 맵핌을 등록하도록 정의되어 있습니다. 하여 저는 3강 강의 예제 중 DefaultMappingContext 이 등록 된 아래에 바로 MouseLookMappingContext 를 별도로 제작 및 똑같이 AddMappingContext 을 하였음에도 마우스 룩이 제대로 작동되지 않습니다. AddMappingContext 시 입력 우선 순위를 0, 1 등으로도 변경해보았는데도 안되는데요.혹 입력맵핑은 무조건 하나만 등록 가능한가요? 우선순위 파라미터가 있는 것으로 보아 그건 아닌 것 같은데.. 가능하다면 답변 부탁드립니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
PlayerController 에 대헤 제가 잘못 이해한 것 같습니다.
2강의 강의에서 플레이어는 카메라, HUD 등을 관리 하고 폰은 입력에 대한 값을 빙의 되었을 때 실제 움직임 혹은 어떠한 액션을 줄 수 있겠금 하나의 액터 객체로 이해했는데요. 전 당연히 PlayerController 에 플레이어에 대한 기능 즉 (카메라 등은 어태치 하기 위해 어쩔 수 없다고 하더라도 ) 입력에 대한 처리가 잇을 줄 알았는데 입력에 대한 처리도 모두 PlayerCharacter 에 몰아 넣어 있습니다. 그럼 내가 특정 폰에 빙의 할 때 만약 그 폰의 클래스가 PlayerCharacter 가 아니라면 당연히 컨트롤 등을 하지 못하는 것인데요. 그럼 PlayerController 의 역활은 무엇인가요?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
ProtoBuf UE 연동 문제
Spawn #2 따라하고 실행해보는데 메모리 충돌로 인해 언리얼 크래쉬가 발생하네요혼자 열심히 시도해 본 결과 UE FMemeory와 ProtoBuf 소멸자에서 delete 되는 부분에서 UE delete 오버라이드 문제인 것 까진 알게 되었으나 어떻게 해결해야 할 지 모르겠어서 질문 드립니다UE 5.6 버전이고, ProtoBuf는 C++ 5.29.5(29.5) 버전입니다vcpkg를 사용해서 라이브러리 다운 받았고 /MD 동적 라이브러리로 UE 프로젝트에 포함시켰습니다 (dll로 인해서 new/delete 오버라이드로 인한 메모리 충돌 문제가 더 쉽게 발생하여 /MT로 포함하는 것이 나을 수도 있겠다고 LLM(gpt, grok) 등이 말한 내용을 적용하고자 하였으나 빌드를 실패하여 그 부분은 진행하지 못하였습니다)다음 이미지는 실행했을 때 크래쉬가 발생하는 부분과 로그 일부 입니다LoginId:468bde9140a0ef5bd78746b7d5b86a2cEpicAccountId:e6607fa7037e41448797c486f54e5315Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000023d9d00116fUnrealEditor_CoreUnrealEditor_CoreUnrealEditor_S1!operator delete() [C:\Program Files\Epic Games\UE_5.6\Engine\Source\Runtime\Core\Public\HAL\PerModuleInline.inl:9]UnrealEditor_S1!Protocol::PlayerInfo::`scalar deleting destructor'()libprotobuf!google::protobuf::internal::RepeatedPtrFieldBase::DestroyProtos() [C:\Users\yudle\vcpkg\buildtrees\protobuf\src\v5.29.5-5bafd96eab.clean\src\google\protobuf\repeated_ptr_field.cc:90]UnrealEditor_S1!Protocol::S_LOGIN::~S_LOGIN() [D:\GitHub\S1\Source\S1\Network\Protocol.pb.cc:586]UnrealEditor_S1!std::_Func_impl_no_allocServerPacketHandler::Init'::2'::<lambda_1>,bool,TSharedPtr<PacketSession,1> &,unsigned char *,int>::_Do_call() [C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\functional:810]UnrealEditor_S1!PacketSession::HandleRecvPackets() [D:\GitHub\S1\Source\S1\Network\PacketSession.cpp:37]UnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_CoreUnrealEditor_CoreUnrealEditor_CoreUnrealEditor_CoreUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditorUnrealEditorUnrealEditorUnrealEditorUnrealEditorUnrealEditorkernel32ntdllS_LOGIN 패킷의 소멸자에서 오염된 메모리 접근 문제로 크래시가 발생한 것으로 보입니다