묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
게임어빌리티를 멀티플레이로 동기화하는 방법을 알고 싶습니다.
PlayerState 클래스의 생성자에 ASC->SetIsReplicated(true);를 추가하고캐릭터의 SetCharacterControl 함수에 if (!IsLocallyControlled()){return;}를 추가한 뒤캐릭터의 PossessedBy 함수에 SetupGASInputComponent();를 넣었는 데 이걸로는 공격 어빌리티가 완전히 동기화되지는 않더라고요서버역할도 하는 클라이언트(A)에서 공격키를 누르면 다른 클라이언트(B)에서 동기화되는데 클라이언트(B)에서 공격키를 눌렀을 때는 아무일도 일어나지 않습니다.OnRep_PlayerState 함수 안에서도 어빌리티를 등록해줘야 하는 걸까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
55강 수업자료 빌드를 하면 이상합니다.
저만 이런건지 뭐가 문제인지 잘 모르겠어요. 줄간 공백이 없어야지 정상일텐데...
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
12강 NPC를 죽인 후 문제가 생깁니다.
NPC를 죽인 후에 이동키가 먹지않고 점프만 가능하며 점프할 경우 바닥을 뚫고 계속해서 아래로 떨어집니다.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
안녕하세요. 프로젝트 생성시 GAS 관련 모듈이 나오지 않습니다.
새로운 환경에서 GAS를 실습하고자 프로젝트를 하나 새로 파서 GAS시스템을 적용하고자 하였습니다.처럼 Gameplay관련 모듈을 넣고 빌드를 했는데와 같이 관련 모듈이 나타나지 않는 상황입니다.세팅시 추가적으로 해야할 일이 있을까요??강의 항상 잘 듣고있습니다. 감사합니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
virtual 소멸자 관련 질문
안녕하세요. 부모클래스의 함수를 override 하기 위한 목적으로 부모클래스 함수에 virtual 키워드를 붙여주고 자식클래스가 이 함수구현을 강제하기 위해 virtual 키워드를 사용하는 것으로 이해 했습니다. 하나 이해가 되지 않는 부분은, 소멸자에 virtual 키워드를 붙여주었을때, 부모클래스의 소멸자와 자식클래스의 소멸자가 이름이 다름에도 자식클래스 소멸자를 호출해준다는 것인데, 해당 내용을 Perplexity에 질문해보니 C++ 내부적으로 소멸자를 동일한 이름으로 취급하기 때문이라는 답변을 얻었습니다. 이 내용이 맞는건지 답변 부탁드립니다.감사합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
InifityBlade Weapons 에셋 관련 질문
위 이미지 처럼 압축을 풀고,해당 부분을 복사해서제가 강의를 따라하는 프로젝트의 붙여넣었습니다.그리고 에디터를 통해 확인해보니 아래 이미지 처럼 인식하지 않습니다.더블 클릭할 시 아래 메시지가 나옵니다.아래의 다른 문의 글의 이미지에 나와있는 Github의 InfinityBladeWarriors와 InfinityBladeWeapons 폴더들은 현재 존재하지 않습니다.어떻게 해결할 수 있을까요? 제가 잘못 복사한건가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
라이브코딩 문제가 나오네요..ㅠ
비쥬얼 스튜디오에서 디버그로 게임 에디터를 킨 다음 실행하면 반영이 잘 되어서 실행이 되는데요한 번 오류가 나오더니 에디터에서 이전버전?으로 적용이 되는 것같아요 만들어 놨던 npc도 표시가 안되서 라이브코딩을 해보려는데 계속 저렇게 오류가 나옵니다.. Generate VS Project File도 다시 해보고 했는데도 이러네요.. 해결방법이 뭔지 좀 알 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
안녕하세요. 강의와는 별개의 내용이지만 질문드립니다.
선생님 강의를 전부 듣고 저만의 게임을 제작하고 있습니다.강의 내용과 크게 상관은 없지만 여쭐 곳이 없어 질문합니다.문제상황은 이렇습니다.저는 PMAttack 이라는 트레이스채널을 하나 만들고 기본 설정은 Overlap으로 둔 상태입니다.그리고 다음과 같은 코드를 통해 구 안에 들어오는 모든 액터를 찾아보려했습니다.void APMArrowRain::HitOfRain() { // 1초마다 데미지 FVector Center = GetActorLocation(); const float SphereRadius = 500.f; FCollisionShape CollisionSphere = FCollisionShape::MakeSphere(SphereRadius); FCollisionQueryParams Params(FName(TEXT("Attack")), false, this); TArray<FOverlapResult> Overlaps; DrawDebugSphere(GetWorld(), Center, SphereRadius, 12, FColor::Green, false, 1.0f, 0, 2.0f); bool bIsHit = GetWorld()->OverlapMultiByChannel( Overlaps, // 결과를 저장할 배열 Center, // 중심점 FQuat::Identity, // 회전 ECollisionChannel::ECC_GameTraceChannel2, // 채널(PMAttack) CollisionSphere, // 콜리전 형태 Params // 추가 파라미터 ); if (bIsHit) { for (auto& Overlap : Overlaps) { AActor* OverlapActor = Overlap.GetActor(); if (OverlapActor == Owner) { UE_LOG(LogTemp, Log, TEXT("asd")); continue; } if (OverlapActor) { // 데미지를 받는 인터페이스를 생성해서 인터페이스가 구현됐는지 확인 UE_LOG(LogTemp, Log, TEXT("%s"), *OverlapActor->GetName()); } } } } 하지만 코드를 실행해보면 주변에 있는 액터(큐브나 플레인, 그리고 Owner 등)이 아무도 로그에 찍히지 않았습니다.(모든 액터는 Overlap event를 전부 true로 설정했습니다.)문제는 여기부터 입니다. 범위에 들어오는 액터중 하나라도 ColiisionPreset에서 PMAttack에 대한 채널 반응을 Block으로 바꿀 경우 그 때부터 정상적으로 범위에 있는 액터들이 출력됩니다.오랜 시간 조사를 했지만 끝내 해답을 얻지 못해 질문드립니다. 왜 범위 내 모든 액터의 콜리전 설정이 특정 채널에 대해 Overlap 인 경우 일땐 위 코드가 정상적으로 동작하지 않고,왜 범위 내 액터 중 하나만 이라도 Block으로 설정되어 있다면 그제서야 모든 액터에 대해 정상적으로 Overlap 판정이 날까요?긴 글 읽어주셔서 감사합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
The Project file or web cannot be found라고 뜹니다.
안녕하세요. 강의를 듣고 코드를 작성한 후에 빌드를 해보니,Hp 바가 max값으로 채워지지도 않고 줄어들지도 않아서 Binaries와 Intermediate 폴더를 삭제하고 다시 실행해 보았습니다.근데 사진과 같이 갑자기 not found 라고 뜨면서 헤더파일과 cpp 파일이 뜨지 않습니다. 어떻게 해결을 해야 할까요..
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
수업 외 질문은 어디서 하면 되나요?
혼자 따로 개발을 해보고 싶어서 해보고 있는데 클래스 생성부터 막히네요ㅠㅠ.. 강의 보고 클래스를 생성하면 잘 생성이 되는데 개별적으로 생성을 하면 클래스 경로를 아예 찾지를 못합니다.. 수업 외의 질문은 여기서 질문을 할 수는 없는 건가요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TakeDamage함수에 관해 궁금한게 있습니다!
안녕하세요. 강의를 듣던 중에 TakeDamage 함수에 관해 궁금한게 있어 질문을 남깁니다. FDamageEvent DamageEvent; OutHitResult.GetActor()->TakeDamage(AttackDamage, DamageEvent, GetController(), this);위 코드에서 NPC가 공격을 받은 경우, OutHitResult.GetActor() 이 값은 NPC의 액터를 가져오고, GetController() 과 this 는 플레이어의 정보를 가져오는 건가요?
-
미해결[게임 프로그래머 입문 올인원] 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);}*/ 경로를 변경한 후 플레이를 하니 갑자기 크래쉬가 나타났습니다.애니메이션 클래스가 문제인가 싶어서 주석을 처리한 후 다시 빌드를 하여도 크래쉬가 동일하게 발생합니다.문제가 나는 곳이 현재 프로젝트의 코드가 아닌 다른 곳인거 같은데 어떻게 해결해야할지 모르겠습니다..
-
해결됨언리얼 엔진 5 스파르타 클래스 [Part2 심화편]
강의 너무 잘 보고 있습니다. 질문있습니다!
제가 업데이트가 될 때마다 쭉 들어봤는데 강사님만큼 쉽게 설명하시는 분은 없는 거 같습니다ㅜㅜ 다른 언리얼엔진 강의도 결제했는데 어려워서 거의 못 따라갔는데 좀 해결이 되는 기분이네요 항상 감사하다는 말씀 드리고 싶습니다.제 질문은 다음 강의도 준비중이라고 하셨는데 다음 커리큘럼은 뭔가요??
-
미해결[게임 프로그래머 입문 올인원] 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이 된 것이 맞나요?? 감사합니다.