묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[입문자를 위한 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 이렇게 여러개 생성해서 사용해도 문제 없을까요?
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
재장전 관련 공부 중, 궁금한 점이 있어 질문 올립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요, 언리얼 블루프린트를 배우기 위해 강의 신청한 학생입니다.재장전 수업 관련 블루프린트를 배치하던 중에서 조건과 실행 내용의 배치 순서에 따라 결과 값이 다르게 나오던데 이유가 제가 생각하는 이유 때문인지 아니면 다른 이유 때문인지 궁금합니다.1) 각 블루프린트 이미지 1-1) 1번 블루프린트 : 브랜치(조건) -> 실행문 배치 1-2) 2번 블루프린트 : 실행문 -> 브랜치(조건) 배치2. 결과 값이 다른 이유 개인 추측 내용 2-1) a. 1번 블루프린트의 경우, 조건을 우선적으로 판단 -> 이후에 총알 감소 실행문 절차 진행 b. 위 과정에서 1발이 남았을 경우, 실행문보다 조건문이 더 빠르므로 아직 해당 조건의 'True'에 적합하지 않음 c. 그에 따라 'False' 절차 진행, 1-1 절차값이 0이므로 0을 출력 d. 이후, 추가적인 절차 진행 시, 조건의 'True'에 적합하여 '총알이 없습니다!' 텍스트 출력 2-2) a. 2번 블루프린트의 경우, 실행을 우선적으로 진행 -> 이후에 조건을 판단 b. 위 과정에서 1발이 남았을 경우, 실행문이 더 빠르므로 1-1 절차 진행 및 절차값 0 제공 c. 이후, 조건문의 조건에 적합함에 따라 'True' 절차인 '총알이 없습니다!' 텍스트 출력
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
패키징 질문
안녕하세요. 강사님. 지금 제가 Lyra 클론 프로젝트를 패키징 하려고 하는 상황입니다. 실제로 패키징을 해보면 잘 되는데 패키징된 파일을 실행하면 바로 error가 나옵니다. 혹시 패키징 할 때 따로 설정해야 하는 게 있을까요??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
OnHpChanged 델리게이트 관련하여 호출순서 질문 드립니다.
7강을 끝낸 시점에서UABHpBarWidget::NativeConstruct()는UABCharacterStatComponent::BeginPlay()보다 먼저 호출되어야만 하는 것으로 알고 있는데요,(위젯의 NativeConstruct() 호출을 통해 먼저 함수를 OnHpChanged 에 바인딩 한 후, BeginPlay()를 호출하여 내부의 SetHp(MaxHp)를 호출, 그 안에서 OnHpChanged.Broadcast(CurrentHp); 실행을 통해 바인딩된 함수를 호출하여 위젯의 HpProgressBar를 초기화.) 문제는 위 두개의 함수 내부에 로그를 찍어보니 위젯의 NativeConstruct() 보다 캐릭터스텟의 BeginPlay() 가 먼저 호출이 됩니다. 혹시 저만 그런것인지, 그리고 제가 겪고 있는 현재 이 호출 순서는 정상적인 흐름인 것인지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
31:19 위젯컴포넌트와 액터의 정보를 가져오는것과 관련한 질문입니다.
현재 궁금한 것이 두가지가 있습니다.위젯은 자신을 소유하고 있는 액터를 직접적으로 가져오는 함수가 유저 위젯에 기본적으로 존재하지 않는것인가요? 만약 이것이 불가능하다면, 위젯은 자신을 소유하고 있는 위젯 컴포넌트를 통해서 위젯 컴포넌트를 소유하고 있는 특정 액터의 포인터를 가져오는 함수가 유저위젯에 존재하지 않으며, 또한 해당 액터의 포인터를 저장하는 변수도 유저 위젯에 모두 구현되어있지 않기 때문에 임의로 확장해서 이것들을 전부 구현했다고 볼 수 있는건가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
OnOverlapBegin함수에 관하여 질문있습니다.
안녕하세요 교수님.OnOverlapBegin 함수를 선언할때 많은 매개변수들이 있는데, 이러한 매개변수들을 외우고 다니는게 아니라면 참조하여 갖고올만한 소스코드나 파일이 있어야할 것 같은데, 어떠한 경로를 통해 갖고올 수 있을까요?추가적으로, 박스 콜리전 크기를 코드에서 설정해주고 있는데 박스 크기의 경우에는 경우에 따라 에디터에서 계속해서 변경하면서 테스트 해보고 싶을 수 있을 것 같은데, Blueprint에서 변경할 수 없도록 코드에서만 사이즈를 설정가능하게 한 이유가 혹시 있을까요? (UPROPERTY(VisibleAnywhere, Category = Box)) 항상 강의 잘 듣고 있습니다. 감사합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
우선순위 관련 질문입니다.
34:49 에서, DeadSlot 가 최우선순위로 재생하도록 설정하셨다고 하였는데, 이 죽는모션이 최우선순위로 재생된다는 것이 어떤 의미인지 알고 싶습니다. defaultGroup 안에서의 2개의 슬롯 중 DeadSlot 이 다른 슬롯보다 우선순위로 재생된다는 의미인가요?
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
언리얼 5.4 기준에선 조금 달랐습니다.
22분 13초 부분을 그대로 따라했는데 저건 빌드 에러가 나서 아래 주석 처럼 하니 빌드 성공했습니다. 이유가 뭘까요? 포맷까지 강제로 입력하도록 바뀐걸까요?
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
BP에서 노드 정리하는 단축키가 뭘까요??
BP에서 노드 정리하시는걸 단축키로 하시는 것 같은데찾아봐도 강사님처럼 노드 정리하는 옵션을 찾을 수가 없네요...
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
수업 자료들 어디서 다운 받아요?
프로젝트 는 보이는데 수업때 쓰신 사진 자료들 모아놓은 곳은 따로 있을까요?
-
해결됨[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
Cosmetic#1 강의 중 "Network Serialize Array"에 대하여
Cosmetic#1 강의 중 22분경에 CharacterPart에 대한 정보 단위를 'List'와 'Entry'로 나누는 이유에 대한 질문입니다.언리얼 네트워크에 Array의 수정사항을 요청할때, Array 전체를 보내는 것이 아닌 수정된 Array의 일부분만 요청해서 수정할수있게하는게 "Network Serialize Array 문법"이라고 하셨는데요.이 부분에 대해서 구글링 해보려하는데 정보를 찾을수가 없어서 혹시 참고할만한 링크 부탁드려도 될까요???