묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
[클라 입장] 강의에서 빌드를 하면 오류가 발생합니다.
Server를 빌드하면 Server 프로젝트 내에 있는 Enum.pb.h 파일에서 이런 오류들이 발생합니다. 어떻게 해결해야 할까요?
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
MSB3073 오류로 프로젝트 빌드가 불가능합니다.
C4067 전처리기 지시문 다음에 예기치 않은 토큰이 있습니다. 줄 바꿈 문자가 필요합니다.C4668 '__has_feature'은(는) 전처리기 매크로로 정의되어 있지 않으므로 '#if/#elif'에 해당하는 '0'으로 바뀝니다.MSB3073 ""C:\Program Files\Epic Games\UE_5.4\Engine\Build\BatchFiles\Build.bat" ArenaBattleEditor Win64 Development -Project="C:\Users\Runner\Downloads\UnrealGAS1-10\UnrealGAS1-10\ArenaBattleGAS.uproject" -WaitMutex -FromMsBuild -architecture=x64" 명령이 종료되었습니다(코드: 6). 안녕하세요, 강의 자료 깃허브를 통해 브랜치 10 의 프로젝트를 다운 받아 열어보려고 하는 데 빌드가 되지 않아 프로젝트 실행조차 되지 않고 있습니다. 아래에 해결을 위해 시도한 내용들도 함께 작성하니 도움 부탁 드립니다. 새해 복 많이 받으세요.^^ <시도한 내용들>Binaries 삭제 후 Generate, Visual Studio에서 리빌드/빌드 -> MSB3073 오류 발생 uproject에서 VisualStudioTools 플러그인 확인 후 1번 과정 재진행 -> 해당 플러그인이 없음을 확인했으나 여전히 MSB3073 오류 발생언리얼 마켓플레이스(Fab)에서 Visual Studio Integration Tool 다운 후 1번 과정 재진행 -> uproject에 VisualStudioTools 플러그인이 존재했으나 여전히 MSB3073 오류 발생다른 브랜치로 다운 받은 프로젝트 실행 -> 브랜치 1, 2 등 다른 브랜치의 프로젝트로 다운 받아 실행해도 MSB3073 오류 발생
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
안녕하세요. 수업을 따라가면서 저만의 게임을 만드는 중인데 문제가 생겼습니다.
마지막에 빌드를 하고 exe 파일을 실행해보는데 검은 화면만 뜨고 아무것도 나오지 않습니다. 프로젝트 세팅에서 default game mode랑 level다 지정해 뒀는데도 검은 화면만 나오고 cmd에서 -log로 실행해봐도 콘솔창에 아무런 로그도 올라오지 않습니다. 어디가 문제인걸까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
4강에서 크래쉬가 발생합니다.
안녕하세요. 크래쉬가 발생을 하여 질문드립니다.LoginId:c94d24654bb053080c17c2ad5040f05aEpicAccountId:fccedefcd3d646a6a9f2c9f009701903Assertion failed: Pair != nullptr [File:D:\UE_5.3\Engine\Source\Runtime\Core\Public\Containers\Map.h] [Line: 671]UnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditorUnrealEditorUnrealEditorUnrealEditorUnrealEditorUnrealEditorkernel32ntdll위와 같이 크래쉬가 발생을 합니다.static ConstructorHelpers::FObjectFinder<USkeletalMesh> CharacterMeshRef(TEXT("/Script/Engine.SkeletalMesh'/Game/InfinityBladeWarriors/Character/CompleteCharacters/SK_CharM_Cardboard.SK_CharM_Cardboard'"));if (CharacterMeshRef.Object){GetMesh()->SetSkeletalMesh(CharacterMeshRef.Object);} /*static ConstructorHelpers::FClassFinder<UAnimInstance> AnimInstanceClassRef(TEXT("/Game/ArenaBattle/Animation/ABP_ABCharacter.ABP_ABCharacter_C"));if (AnimInstanceClassRef.Class){GetMesh()->SetAnimInstanceClass(AnimInstanceClassRef.Class);}*/ 경로를 변경한 후 플레이를 하니 갑자기 크래쉬가 나타났습니다.애니메이션 클래스가 문제인가 싶어서 주석을 처리한 후 다시 빌드를 하여도 크래쉬가 동일하게 발생합니다.문제가 나는 곳이 현재 프로젝트의 코드가 아닌 다른 곳인거 같은데 어떻게 해결해야할지 모르겠습니다..
-
해결됨[언리얼 시스템 연구 과정] UE5 스파르타 클래스: 심화편
강의 너무 잘 보고 있습니다. 질문있습니다!
제가 업데이트가 될 때마다 쭉 들어봤는데 강사님만큼 쉽게 설명하시는 분은 없는 거 같습니다ㅜㅜ 다른 언리얼엔진 강의도 결제했는데 어려워서 거의 못 따라갔는데 좀 해결이 되는 기분이네요 항상 감사하다는 말씀 드리고 싶습니다.제 질문은 다음 강의도 준비중이라고 하셨는데 다음 커리큘럼은 뭔가요??
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
수강 계획 관련해서 질문드립니다!
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버학습 완료 후루키스님 게임 서버 프로그래머 로드맵 따라가면 될까요?일단 저의 상태는 서버쪽 먼저 공부하고 싶은 마음이 크고 언리얼과 유니티 경험이 없습니다.[c++과 언리얼로 만드는 MMORPG]의 경우 part1에서 바로 part4로 넘어가고[c#과 유니티로 만드는 MMORPG] 강의에 경우에도 1, 4, 7로 구성되어 중간중간 비는 부분 때문에 어떻게 수강 계획을 잡을지 고민되어 질문드립니다!
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
NPC HpBar 설정
Player HpBar는 이상이 없었는데 NPC HpBar를 만들 때 ensure를 그대로 사용하면 null값이 나와서 에러가 나더라구요.Player와 NPC가 생성되는 시점이 다른 게 원인인가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
인터페이스가 기능확장에 유연한 이유에 대한 질문입니다.
7강에서도 그렇고 8강에서도, 기능 확장에 유연하게 대처하기 위해 직접 참조를 피하고 인터페이스를 사용했다고 하셨습니다. 인터페이스를 사용하면 기능 확장에 유연한 이유가 제가 이해한 게 맞는지 확인 받고 싶습니다.8강에서 예를 들자면, 만약 직접 참조로 설계하여 ABItemBox.cpp에서 #include "ABCharacterItemInterface.h"가 아니라 #include "ABCharacterBase.h"를 했는데 ABCharacterBase와 같은 급의 캐릭터 클래스가 추가 된다면 ABItemBox의 코드를 고쳐야 하므로 좋지 않은 게 맞을까요? 그리고 7강에서 스탯컴포넌트와 위젯컴포넌트간의 느슨한 결합을 위해 직접참조를 하지 않았는데, 만약 GSHpBarWidget에서 GSCharacterStatComponent를 직접 참조한다면 생기는 안 좋은 예도 들어주실 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
[43:11]Player가 사망시 Target이 null이 된 이유에 대해 질문드립니다.
안녕하세요. 행동트리에서 서비스Detect을 추가하고, NPC가 플레이어를 죽일시 target값이 null이 됐습니다. NPC는 캐릭터사망시 Setdead 호출에서 Pawn이 destroy되고, 플레이어캐릭터의 경우 .충돌처리 비활성화(SetActorEnableCollision)가 됩니다. 플레이어의 경우, 사망시 게임에서 사라지는 것이 아님에도 detect에서 감지를 못하였는데, 플레이어 사망시 충돌설정이 비활성화 되면서, NPC의 OverlapResults에서 플레이어를 감지하지 못해 target값이 null이 된 것이 맞나요?? 감사합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
GameMode를 부모로 생성시 ConstructorHelpers의 기능을 사용할 수 없나요?
예전에 실수로 2강을 먼저 듣다가 1강 다 듣고 공부중인 학생입니다. Reference 경로를 복사해서, ConstructorHelpers의 FClassFinder를 사용하여 DefaultPawnClass를 설정해줄때, GameMode를 부모로 상속받은 C++ 클래스는 DefaultPawnClass가 바뀌지 않던데 부모를 GameModeBase로 바꿔주니 정상적으로 DefaultPawnClass가 바뀌더라구요. 혹시 어떠한 차이 때문에 이러한 결과 차이가 벌어지는지 알 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
수업질문아님) PlayerController blueprint에서 Input Action 처리
Controlled Pawn이 Pawn이던 Character이던 같은 PlayerController 사용 가능하게 구현하고 싶음. Pawn, Character blueprint가 같은 Movement Interface 공유하려면 어떻게 해야 하나요? 근데 Character는 기본 제공되는 movement component 사용하고 싶음.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
수업 노트에 말씀주신 InfinityBlade 관련 애셋이 왜 안보일까요?... 어디서 받을 수 있을 까요
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
BT 실 사용 유무
다른 게시물에서 이러한 답변을 하셨는데 '사실 언리얼의 BT가 실전에서 쓰기에는 좀 애매한 부분이 있습니다.' 그 이유를 알 수 있을까요??그리고 만약 실전에서 사용하지 않는다면 몬스터의 AI는 어떤 방식으로 구현하나요??
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
다각도 바향 전환
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강의 듣고 실습도 해보고 강의의 내용을 토대로 소스들을 직접 제작하여 만들어 보다가 궁금한게 생겼습니다.애니메이션 위, 아래, 좌, 우 방향 전환은 알겠는데 대각선이나 8방향이나 16방향으로 방향 마다 다른 플립북을 배치 할려면 어떻게 블루프린트 를 생성해야할까요? 강의랑 다른 내용이라 인터넷에서 찾아보고는 있는데 언리얼엔진 내용은 너무 찾기 힘드네요
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
[파일 입출력] 28:50
28:20 영상을 보면 'Tilemap' 빈 파일을 만들지 않고 저장이 되는 모습입니다. 그런데 제가 진행을 하면 위 이미지와 같이 assert(file != nullptr);에 걸립니다. 혹시 28:50 같이 'Tilemap' 빈 파일을 만들고 타일맵 저장을 진행해야 하는 게 맞는 방법인지 알고 싶어 글 올립니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
[이벤트와 조건 변수] 강의에서 unique_lock 사용 이유?
17분 쯤 unique_lock을 사용하였는데별도의 인자로std::defer_lock, std::try_to_lock, std::adopt_lock등 을 넘겨주지도 않는데 굳이 unique_lock을 사용하는 이유가 있을까요? 그냥 lock_guard를 써도 되지 않나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
프로그래밍과 관련된 것은 아니지만 폴더를 만드는 방식에 대해서 궁금한 점 질문드립니다.
안녕하세요, 교수님. 강의 중에 게임레이어, 미들웨어레이어, 데이터레이어에 대해서 말씀해주셨는데 폴더도 그에 맞춰서 만들어도 되는지 궁금합니다./Source/ArenaBattle/Game/Character /Source/ArenaBattle/Interface /Source/ArenaBattle/Middleware/Item /Source/ArenaBattle/Data/Character 이런 식으로 나눠놓아도 될런지 알고 싶습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
28:50 에서 SetPercent 함수와 관련하여 궁금한 점이 있습니다.
파트2의 10강 28:50 에서, if 문에"ABOpponentCharacter->SetLevel(CurrentStageNum);" 구문을 추가로 넣은 후 게임을 진행하면서 다음 두번째 적이 스폰될 때, HpBar가 100/150의 비율로 렌더링이 되는 것이 이해가 잘 가지 않습니다. "HpProgressBar->SetPercent" 함수가 HpProgressBar의 비율을 계산하여 렌더링 하는것이 맞다면, 적이 스폰될 때 StatComponent에서의 beginplay를 통해 BaseStat.MaxHp 가 100 이 된 후, 위젯의 "SetupCharacterWidget" 이 호출되어 순서대로 "SetMaxHp"를 통해 위젯의 MaxHp 또한 100 이 되고 끝으로 "SetPercent(NewCurrentHp / MaxHp);" 를 실행하여 100/100 비율로 체력바가 올바르게 갱신되어 렌더링되는 것 까지는 이해했습니다. 근데 적 Level이 2가 될 때, 스텟컴포넌트의 BaseStat.MaxHp 가 "28:50"에서 추가했던 "SetLevel(CurrentStageNum);" 으로 인해 150 으로 갱신되고, 문제는 그 이후에 아래와 같은 두 추가적인 과정이 없이 어떻게 게임상에서 보이는 체력바의 비율이 100/150 의 비율로 갱신이 될수 있던 것인지 궁금합니다.HpBarWidget->SetMaxHp(Stat->GetTotalStat().MaxHp); 구문을 다시 실행시켜서 HpBarWidget 의 MaxHp 변수를 150 으로 갱신시켜주고OnHpChanged.Broadcast(CurrentHp); 를 명시적으로 호출하여, HpProgressBar->SetPercent(NewCurrentHp / MaxHp); 를 실행시켜서, 갱신이 필요한 CurrentHp의 값인 100과, 1.을 통해 150 으로 갱신된 MaxHp 두 값의 100/150 비율이 비로소 렌더링이 된다. 28:50 코드 이후에위 두가지 코드를 실행하는 구문이 명시적으로 추가되지 않다면, ABHpBarWidget의 MaxHp는 여전히 100일 것이며, 150으로 갱신되었다 하더라도 여전히 UpdateHpBar를 호출하지 않았으므로 SetPercent(NewCurrentHp/MaxHp)를 호출하지 못하여 100/100의 비율로 렌더링이 되었어야 한다고 생각이 드는데, 실제론 전혀 그렇지 않고 스텟컴포넌트에서 변경된 MaxHp가 위젯의 MaxHp에도 자동으로 적용되어 100/150의 올바른 비율로 갱신되는 이유가 궁금합니다. log 를 한번 찍어보았는데, 저는 "GetWorld()->SpawnActor" 로 월드에 적이 스폰 된후 InitWidget 을 통해 위젯이 생성된 다음, 곧바로 nativeconstruct 가 호출될 것으로 예상했으나 다음 구문인 "ABOpponentCharacter->SetLevel(CurrentStageNum);" 이 실행되고, 이 구문이 실행이 완료되고 나서야 뒤늦게 위젯의 nativeconstruct 가 실행됩니다. 만약 이 흐름이 버그가 아니라면, 뒤늦게 nativeconstruct가 호출됨으로써HpBarWidget->SetMaxHp(Stat->GetTotalStat().MaxHp);HpBarWidget->UpdateHpBar(Stat->GetCurrentHp()); 위 두 구문이 실행이 되는 것이므로 지금 보이는 체력바의 모습이 비로소 이해가 됩니다. 근데 이 nativeconstruct 의 호출타이밍이 왜 InitWidget 의 실행이 끝난 후 바로 호출이 되지 않고, 그 다음 구문인"ABOpponentCharacter->SetLevel(CurrentStageNum);" 이 실행이 끝나고 나서야 호출이 되는 것인지 궁금합니다. 혹시 몰라 해당 프로젝트를 깃허브에 올려놓았습니다.https://github.com/jaebyoung/MyArenaBattle_2_10(업로드가 처음이라 제대로 올라간 것인지 모르겠습니다..)
-
미해결이득우의 언리얼 프로그래밍 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); } }와 같이 래퍼 없이 사용하는 것입니다.이에는 문제가 없을까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
bmp 파일 알파 처리 방법 질문
애니메이션 강의 부분에서 알파 채널 있는 bmp파일의 경우는 어떤 함수를 사용하나요?검색해봐도 잘 나오지 않고 강의에서 다룬다고 언급은 되어 있는데 해당 부분은 영상에 나와있지 않아서 질문드립니다.