묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
GameModeBase 클래스가 자동으로 생성되지 않습니다..
왜인지 모르겠는데, 6:53 부분에서 게임모드 베이스의 키워드를 복사해서 붙여넣기 하라고 나와있지만 저는 Source 폴더에 있는 UnrealInterface 에 UnrealInterface.h 와 .cpp 둘다 보이지 않습니다. 이유가 무엇인지 궁금합니다... 저만 그런건가요
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
콤보액션 관련해서 질문 남깁니다
디버그를 할때 EffectiveFrameCount 에 Num=4 가 지정되 있는대 이것이 4개의 항목이 안에 있다는 의미가 맞을까요?? 그리고 콤보엑션에서 다음콤보로 넘어가지 않을때에 어느부분을 봐야하나요?? CurrentCombo는 정상적으로 1에서 2로 바뀝니다
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
간단한 프로젝트에서 포즈 워핑을 연습하던 도중 문제가 발생했습니다.
교수님의 강의에 언제나 큰 도움을 얻고 있습니다.기존의 질문을 GAS 강의에서 작성하였으나, 강의 주제와 맞지 않다고 판단하여 다시 작성하게 되었습니다. 제가 겪고 있는 문제를 글로 설명드리기 보다는 직접 보여드리는 것이 나을 것 같아 동영상으로 대체하였습니다.아래의 링크는 현재 발생하고 있는 문제를 담은 유투브 링크입니다.https://www.youtube.com/watch?v=SC1bD4pls3U C++ 클래스로 만든 애님 인스턴스에서 파생된 애니메이션 블루 프린트를 사용해포즈 워핑을 연습하고 있던 도중 영상과 같은 문제가 발생했습니다. 가속도에 따라 발을 디디는 속도가 달라지게끔 설계하였지만, 영상처럼 애니메이션이 굳어버리는 문제가 발생하였습니다.문제가 발생하고 있는 원인을 찾기 위해 로그를 찍어 확인한 결과, LogTemp: Warning: Accelation : X=-2048.000 Y=0.000 Z=0.000LogTemp: Warning: bHasAccelation : trueLogTemp: Warning: Accelation : X=0.000 Y=0.000 Z=0.000LogTemp: Warning: bHasAccelation : false 문제가 발생하는 시점부터 로그가 위와 같이 찍히는 것을 확인할 수 있었습니다.Accelation과 bHasAccelation은 다음의 코드에 의해 값이 결정됩니다. Accelation = Movement->GetCurrentAcceleration() * FVector(1.0f, 1.0f, 0.0f);bHasAccelation = !Accelation.IsNearlyZero(0.001f); 제가 생각해본 문제의 원인은 가속도가 MaxAccelation 이상을 넘어가면 가속도를 0으로 초기화하는 것이라고 생각하고 있습니다.혹시 제가 생각한 것이 문제의 원인이 맞는 것일까요?만약 맞다면 가속도가 MaxAccelation에 도달했을때 어떻게 값을 조절해야 하는지 궁금합니다.제가 생각한 부분에서 문제가 없다면, 어느 부분에서 문제가 발생할 수 있는지 알려주시면 감사하겠습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
5강 캐릭터 콤보액션에서 콤보액션데이터가 안잡히는대 왜그런건가요
24분 부분에 콤보액션데이터를 설정하는곳이 안잡힙니다.데이터에셋은 만들었고 cpp에서 빠진부분이 있는건가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
강의 진행이 어떻게 되는건지 질문드립니다
1강부터 14강까지 잘따라오다가 15강 21분 29초부터BP_ABPlayerController 블루프린트를 켜보니 이렇게 구현되어있는 화면이 나오는데강사님하고 전혀 다른화면이 나옵니다. 강사님이 15강에 올려주신 파일에서 가져와서 실습을 진행해야하는건가요 ?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
VS 자동완성 관련 질문 드립니다.
UPROPERTY 안의 속성이나 BeginPlay() 와 같은 상속받아 사용하는 함수들에 대해 Visual Studio 에서 자동완성을 하려고 한다면 어떻게 해야 하나요? 인터넷을 뒤져도 찾을 수가 없어서 여기에 질문 남깁니다..!!
-
미해결[입문자를 위한 UE5] Part4. 언리얼 엔진 C++
Vector 25:57
블루프린트에서 월드에 있는 Sphere를 Target으로 설정할 수 없고 R1Actor를 직접 월드에 배치한 경우만 스피어를 타겟으로 설정할 수 있는 이유가 뭔가요?
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
UObject의 'Outer'가 무엇인지 궁금합니다.
안녕하세요 교수님, 강의를 듣고 공부 겸 포트폴리오 하나 만드려고 열심히 코딩하고 있습니다만,NewObejct<>()의 첫번째 인자인 Outer의 개념이 무엇인지 궁금해서 질문합니다. 엔진 코드나 공식 문서를 찾아봐도 그냥 이 'Object this object resides in' 정도의 설명만 적어져 있고, 자세한 Outer의 역할이 작성되어 있지 않습니다.엔진 코드를 자세히 분석해보기는 너무 어렵고,, 그래서 구글링을 해보았더니 Outer는 Outer Chain, 계층 구조를 표시하는데 유용하다고 합니다.ex) 월드 -> 레벨 -> 액터 -> 컴포넌트. 등 이런 계층 구조를 유지하고 필요할 때 사용하기 위하여 outer를 지정해야 한다는 것 까지는 이해가 갑니다만,종종 'GC'에도 관여한다는 사람도 있고 아니라는 사람도 있어서 궁금해서 질문을 올립니다. GC는 1. UPROPERTY() 2. FGCObject 상속 후 구현 3. RootSet의 경우에만 GC와 참조 카운트에 영향을 미치는 것이 아닌가요? GC에 관여하지 않는 것이 맞다면, Outer의 목적은 대체 무엇인가요? 단순히 계층 구조의 표현과 필요할 시 사용을 위한 용도인 것인가요? 'Owner'같은 경우는 Part3. 강의에서 오너십과 커넥션 관련 판별에서 유용하게 사용되는 것을 알겠지만Outer는 정확한 목적을 모르겠습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
아이템박스에서 배열 빈경우,
안녕하세요.아이템박스인걸로 봐서, 처음 아이템랜덤으로 어셋매니저사용할때 내용인거같은데, 지금 크래쉬가 나서 보니 이부분인데요.//ItemBox.cpp void AABItemBox::PostInitializeComponents(){ Super::PostInitializeComponents(); UAssetManager& Manager = UAssetManager::Get(); TArray<FPrimaryAssetId> Assets; Manager.GetPrimaryAssetIdList(TEXT("ABItemData"), Assets); ensure(0 < Assets.Num()); int32 RandomIndex = FMath::RandRange(0, Assets.Num() - 1); FSoftObjectPtr AssetPtr(Manager.GetPrimaryAssetPath(Assets[RandomIndex])); if (AssetPtr.IsPending()) { AssetPtr.LoadSynchronous(); } Item = Cast<UABItemData>(AssetPtr.Get()); ensure(Item); Trigger->OnComponentBeginOverlap.AddDynamic(this, &AABItemBox::OnOverlapBegin);} //이렇게 확인했습니다. else { UE_LOG(LogTemp, Error, TEXT("GetPrimaryAssetPath Problem")); }배열이 비어있는거같은데, 이런경우에 시도해볼 해결책은 어떤것이 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
함수질문1, 행동트리(블프vsc++) 2,gas3
질문1.ABCharacterNonPlayer.cppvoid AABCharacterNonPlayer::AttackByAI(){ProcessComboCommand();//계속 선언안됬다고 못찾아서..}그냥,ABCharacterNonPlayer안에 같은 함수 만들어서 썼는데요.그래도 되나요? ㅠㅠ(된다고 해주세요ㅠㅠ)질문2.블프로 ai만드는거 좋아해서 기다렸는데, 우째 ...4배는 복잡하것같은건, 제가 프로그래밍실력이 부족해서겠죠?질문3.GAS할려고 달려가고있는데,,,아무래도 지금보단 공부좀더하고 가는게 낫겠죠? 잠깐 봤는데 인터페이스 엄청 쓰시던데..
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
39:00 캐릭터 방향
강의보면서 Modifiers변경하고 코드 수정했는데 W,S는 좌우, A,D는 앞뒤로 설정됩니다. 왜 그런걸까요..ㅠㅠ
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
32:00 EnhancedInput
이렇게 추가했는데 반영이 안되는 것 같아요. 왜 걸까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
추가해도되는 헤더인지 봐주세요.
안녕하세요.OnGateTriggerBeginOverlap함수에서 오버랩구조체를 간단히 사용됬는데, TArray<FOverlapResult> OverlapResults;어쩐일인지 정의가 안됬다고 자꾸 빌드실패해서,...어쩔수없이 그녀석 헤더 를 포함시켰는데요.#include "Engine/OverlapResult.h"문제가 찜찜하게 해결되서 여쭤봅니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
많이 어려운데, 한개씩 이해하고있는 중이라,질문입니다.
스탯,위젯컴포들의 초기화를 하려할때, 스탯정보를 갖고있는 컴포넌트는 postinitializer로 생성이되고, 스탯정보로 자신을 업데이트할 위젯컴포넌트는 비긴플레이에서 생성이되는데, 위젯이 스탯컴포넌트를 알기위해서 nativeconsturctor함수를 쓸때 자신의 오너정보를 가져와야하는데, 오너,즉 플레이어나 몬스터는 ,비긴플레이이후라면 이미 생성이 되있을텐데, (선생님도 알수없는 언리얼의 설계라서)둘을 연결하기위해선 1. PostInitializeComponents(스탯컴포넌트는 이시점에), BeginPlay(위젯은 이시점에) -> 이 과정은 이미 적용되었고,2. 클래스확장을 더할건데, 컴포넌트와 위젯의 파생클래스를 만들고, "인터페이스"를 추가하고, 컴포지션방식으로, 플레이어의 함수를 스탯에 등록시켜서 연결한다.->제가 이해한게 맞나요?-> 이 다음이 아직 머릿속에 정리가 안되는데, ..
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
GetWorld() 가 nullptr을 반환합니다
좋은 강의 감사드립니다. 9강 무한맵의 제작 파트 중 28:29초, 31:27초에 나오는 GetWorld() 관련 함수에 대해 질문드립니다. 아무리 캐릭터를 움직여 문쪽으로 다가가도 새로운 맵을 생성하지 않습니다. 떨어지지 않을 정도로 문 밖에 나갔다가 다시 맵 안으로 들어오면 에디터가 터지는 현상이 생겨 알아보니 SetFight에서 타이머를 설정하는 부분에서 GetWorld가 nullptr을 반환한다는 것을 로그로 확인했습니다.강사님의 깃허브에서 코드파일을 받아 실행했을 때에는 정상 작동되는 것을 확인하였고, 해당 파일의 ABStageGimmick 관련 헤더와 cpp만 그대로 복사하여 제 환경에서 실행해보았을 때에는 똑같이 GetWorld()가 nullptr을 반환하는 현상이 나타납니다.맵을 생성하지 않는 문제도 OnGateTriggerBeginOverlap에서 GetWorld()를 호출하는 코드 때문인 것 같은데, 해당 부분에 중단점을 찍어 살펴보니 중단점이 한 번 걸린 이후에는 정상적으로 맵도 생성되고, 이후 SetFight 코드도 정상실행됩니다. (중단점을 안 찍으면 맵이 생성되지 않으며 SetFight가 호출될 때 터집니다)강사님 코드를 그대로 사용하는데 왜 이런 문제가 생기는 걸까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
9강_서브오브젝트 생성
만약에 CourseInfo를 CDO안에서 생성하게 되면 8강에서 서브오브젝트 생성했던 것처럼 CourseInfo = CreateDefaultSubobject<UCourseInfo>(TEXT("NAME_CourseInfo));이렇게 생성하면 되나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
매크로 지정자설정 질문입니다.
매크로 질문UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, Meta = (AllowPrivateAccess = "true"))BlueprintReadOnly는 블프에서 수정이 안되는것이고,AllowPrivateAccess = "true"는 레벨에디터>디테일패널에서만 수정되는데, 그러면,스폰해서 사용할땐 수정내용이 적용이 안될텐데, 담당자외에 수정못하게, 테스트용으로만 사용하란 의도일까요?비주얼스튜디오문제언리얼5.4를 사용중인데,어느순간부터 매크로 지정자들과 몇몇함수들이 자동완성이 안되던데, 혹시 해결책 아실까요? 타이핑도 느리고,명칭들을 정확히 알지않는데, 시간이 더 오래 걸려서요..비주얼어시스트는 너무 비싸구요.
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Compiling changes for live coding
안녕하세요 강사님.강사님 강의를 통해 언리얼 c++ 입문한 학생입니다.언리얼에서 c++클래스를 추가할 때마다 Compiling changes for live coding이 시간이 너무 오래 걸리는 상황이 많습니다. 그래서 Cancele하고 7강 전까지 학습을 했었습니다. 근데 "Compiling changes for live coding"완료하지 않으면 Person 클래스가 생성이 안돼서 10분 정도 걸려서 완료했더니 Person클래스가 생성 됐습니다. visual studio에서 빌드할 때도 최소 4~5분정도 걸리는 것 같아요. 컴퓨터 성능은 충분한데 왜 그런가요? 빌드에 소요되는 시간을 단축시키는 방법이 없을까요?
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
BeHavior Tree 강의 중 AI가 움직이지 않습니다.
안녕하세요~ 5.4버전을 사용하고 있고강의를 따라했는데, 몬스터가 이동하지 않습니다.Print String으로 좌표를 출력해보면, 동일한 좌표만 출력하고 있습니다. 확인 부탁 드립니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
5강 HitCheck문제
5강을 듣고 수행하면서 마지막 테스트할 때 점프를 하기 위해 스페이스바를 누를 시 점프는 수행되지 않고 hitcheck만 계속해서 수행되는 것 같습니다. 코드와 tag등 똑같이 따라하였는데 무엇이 문제일까요?위의 사진처럼 스페이스바를 꾹 누른 상태로 돌아다니면 점프 대신에 이렇게 나옵니다