묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
플레이어에만 위젯을 넣었는데 NPC에서 HpBar가 어떻게 나오나요??
강의 따라가다가 제 화면에서는 플레이어에만 HpBar가 나오는데 강의에선 NPC에도 나와서 질문 드렸습니다. +npc에도 같은 위젯코드를 넣어봤더니 에디터를 처음 켤 때 로딩중에 위젯컴포넌트에서 InitWidget()이 실행되면서 위젯의 SetAbilitySystemComponent()를 호출하게 되는데요. 저는 SetAbilitySystemComponent()에 ensure을 놔뒀더니 이 타이밍이 빙의 전이라 어트리뷰트가 등록이 안되있는 상태라서 에러가 발생하는 것같습니다.강의 처럼 if 로직으로 바꾸면 되긴하는데 로딩중에 위젯컴포넌트의 InitWidget()가 호출되는 이유가 무엇인가요? 월드에 npc가 배치되있긴하지만 BeginPlay()를 호출하지는 않는데 왜 InitWidget()이 호출되는지 잘 모르겠습니다.제가 part2에서 들었던거는 액터의 BeginPlay() 이후에 호출된다고만 들었는데 다른 이유가 있나요?? 이것 때문인 것 같습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
게임플레이 이펙트의 Magnitude Calculation Type을 바꿨을 때 질문입니다.
Magnitude Calculation Type을 Attribute Base로 바꿨을 때도 아래의 코드를 지우지 않았는데, 이거는 그냥 무시되는 건가요?
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
안녕하세요 서버 강의 질문드립니다.
안녕하세요 루키스님 항상 양질의 강의 감사합니다. 제가 현재 이 강의에서 서버 제외한 부분만 전부 수강을 했고 이제 서버부분을 들으려고 하는데[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버이 강의도 소지하고 있어서 위 강의를 먼저 수강 후 현재 강의를 듣는게 나을지 아니면 이 강의를 완독 후 Part4 강의를 듣는게 나을지 질문드립니다. PS: part5도 구매예정입니다
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
ASC의 컨테이너에 추가한 타겟 액터 질문
이렇게 ASC 에 추가하고나서 OnDestroy() 될 때, 타겟 액터는 지우는데요.ASC의 컨테이너는 이와 관련해서 타겟 액터를 다시 뺀다던가 하는 처리를 안 해도 되는건가요??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
프로젝트를 로딩중에 75%에서 무한로딩에 걸리는 현상이 발생해요
여기저기 찾아봐도 해결방법을 찾지못해서 이렇게 올려봅니다 ㅠㅠ현상은 버전상관없이 발생하는것같구요단지 작업중 저장하고 언리얼프로젝트를 닫았다 다시 열게되면 한번씩 75%에서 무한로딩이 걸려 움직이질 않습니다.. CPU랑 프로세스 메모리도 변화가 없구요파일로드중 혹은 초기화중 무한로딩 걸리는 시점도 제각각인데진행도만 항상 75%에서 멈추네요..해결방법이나 최소한 원인을 찾을방법이 전혀 없을까요..?그냥 처음부터 다시 프로젝트를 만들어야 할까요??
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
ASC->SpawnedTargetActors 에 추가된 타겟 액터에 관해서 질문있습니다.
6강의 ABAT_Trace의 FinalizeTargetActor() 함수에서, 이하와 같이 생성완료된 타겟 액터를 오너 캐릭터의 ASC의 SpawnedTargetActors에 추가했는데, Ability Task가 종료될때 SpawnedTargetActors에서 제거하지 않아도 괜찮을까요?void UABAT_Trace::FinalizeTargetActor() { UAbilitySystemComponent* ASC = AbilitySystemComponent.Get(); if (ASC) { const FTransform SpawnTransform = ASC->GetAvatarActor()->GetTransform(); SpawnedTargetActor->FinishSpawning(SpawnTransform); ASC->SpawnedTargetActors.Push(SpawnedTargetActor); SpawnedTargetActor->StartTargeting(Ability); SpawnedTargetActor->ConfirmTargeting(); } } 혹시나 삭제해야 한다면 타겟 액터 콜백 함수에서 EndTask() 의 실행 직전에 삭제하면 되는지 궁금합니다.void UABAT_Trace::OnTargetDataReadyCallback(const FGameplayAbilityTargetDataHandle& DataHandle) { if (ShouldBroadcastAbilityTaskDelegates()) { OnComplete.Broadcast(DataHandle); } // 추가한 부분 UAbilitySystemComponent* ASC = AbilitySystemComponent.Get(); if (ASC) { ASC->SpawnedTargetActors.Remove(SpawnedTargetActor); } EndTask(); }
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
SetWaitingOnAvatar() 질문
이거 주석해도 별다른 차이점을 잘 모르겠습니다.내부에 보니, 기다리는 상태 Enum을 Avatar 기준에 둘지/User에 둘지/Game에 둘지 정하는데 정확히 무슨 차이인가요??
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
SetupGASInputComponent() 함수 2군데에 작성 질문..
서버 전용 캐릭터든 클라이이언트 전용 캐릭터든 빙의 함수랑 SetupPlayerInputComponent()은 클라이언트에서는 아예 호출이 안되고 관련된 것들은 다 복제로 처리되고, 서버에서는 이 두 함수가 다 호출되면서 SetupGASInputComponent()가 중복 호출 되는 걸로 알고있는데 서버에서 중복 처리는 별로 상관 없는 건가요?
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
포함 디렉터리가 UE5.1로 자동으로 안잡힐 때는 어떻게 해야 하나요?
수업자료 받고 generate 했는데 에러나서 봤더니 이곳이 자동으로 처리가 안되있는데 이거 수동으로 바꿔야 하나요?? + 이 플러그인 메세지도 있어서 봤더니 이게 Visual Integration Tool 말하는 거인지는 잘 모르겠으나, 처음엔 프로젝트가 실행도 안됐는데 Visual Integration Tool 을 엔진에 추가하고 나서는 실행은 되네요. 하지만 빨간줄은 안 없어지는것 같아요.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
mouse input action 반응성 관련 질문.
안녕하세요.동일 함수를 키보드 키로 bind 할 때와 달리 마우스로 하면 클릭의 반응성이 매우 떨어지는 문제를 발견했는데 Unreal 버전의 문제일까요? (5.3 사용중 입니다.)또 c++ 이 아니라 블루프린트로 구현 시에는 마우스 클릭 반응성에 문제가 없었습니다.
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
함수 포인터, 함수 객체에 대한 질문입니다!
공부하다가 생긴 궁금증입니다. 함수 객체가 함수 포인터의 모든 기능을 대체할 수 있나요?함수 포인터를 매개변수로 받아주는 라이브러리를 사용하는 것을 제외하고c++에서 함수 객체 말고 함수 포인터를 사용해야만 하는 경우가 있나요?함수 객체의 기능이 매우 뛰어난데, std::functional을 이용해서 callable 을 따로 관리하는 기능이 있는 이유는 무엇이고 이점은 무엇인가요? 가장 궁금한 것은 std::functional 을 사용하는 이유입니다!
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
컴파일 에러
Error MSB3073WaitMutex -FromMsBuild" exited with code 6. C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44 The command "E:\ProgramFiles\UE_5.3\Engine\Build\BatchFiles\Build.bat ArenaBattleEditor Win64 Development -Project="C:\Users\User\Desktop\ArenaBattle\ArenaBattle.uproject" -WaitMutex -FromMsBuild" exited with code 6. ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44 원래 제작하던 프로젝트파일이 5.3.2 버전인데요, 5.1.1버전을 실행했다가 다시 돌아오니까 실행이 안되는것 같습니다.어떻게 해결할 수 있을까요? 엔진을 재설치해도 같습니다. https://forums.unrealengine.com/t/ue5-1-vs2022-c-build-error-with-msb3073/694392/10이런데에 적혀있는 해결방법으로도 해결이 되지 않습니다.ㅠ
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
"에셋을 로딩한다"의 의미
8강 소프트 레퍼런싱에 대해서 강의를 듣다가 에셋이 로딩되고 객체에 할당되는 과정에 궁금증이 생겼습니다. 제 생각은 다음과 같습니다.에셋이 로딩되면 에셋의 데이터를 가지고 객체를 만든다. 그리고 해당 에셋을 사용하는 클래스가 인스턴싱될 때 로딩된 에셋(객체화된 에셋)을 복사해서 추가한다.만약 같은 에셋을 사용하는 클래스가 두 개 이상이라면, 로딩된 에셋을 두 번 복사하게 된다.즉, 에셋을 로딩한다는 것은 복사를 위한 원본 객체를 생성하는 것을 의미한다. 제 생각이 맞을까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
SetConsoleTextAttribute 함수 특수문자 겹침 현상..
위와 같은 현상이 왜일어나는지 아시나요?같은 색으로 하면 괜찮습니다..색은 변경할때 반칸씩 밀려 겹쳐 보이네요..간단한 코딩 아래첨부합니다..#include <iostream>int main(){ int temp = 0; for (int y = 0; y < 25; y++) { for (int x = 0; x < 25; x++) { temp++; //단일색 안밀림.. //SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 1); //색변경시 밀림.. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), temp % 3 == 0 ? 1 : 2); cout << "■"; } cout << endl; }} 환경은 윈도우 11입니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
9강 무한맵의 제작에서 블루프린트에 컴포넌트의 디테일창이 안보이는 현상
작업하다보면 가끔씩 이런 현상이 발생하는데 혹시 원인이 어떤게 있을까요?? ㅠㅠ
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
5강 Montage_SetEndDelegate()함수 관련
FOnMontageEnded EndDelegate; EndDelegate.BindUObject(this, &AABCharacterBase::ComboActionEnd); AnimInstance->Montage_SetEndDelegate(EndDelegate, ComboActionMontage);Montage_SetEndDelegate 함수를 보면,AnimMontage클래스에서 AM이 종료되면 호출시키는 FOnMontageEnded타입의 델리게이트 변수를, 위 함수의 인자로 받는 델리게이트 변수와 치환해서(=) 실행되는 것으로 이해했습니다. 그렇다면 구현되어있는 델리게이트 변수에 ComboActionEnd함수를 바로 구독시키면 안되는건지 궁금해서 여쭤봅니다..
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
섹션 3. 포인터와 배열 (3주차) 배열 실습까지 진행했는데요
저는 코드를 똑같이 따라 했다고 생각했는데 오류가 납니다.파일 올려주신다고 했는데 어디서 다운 받을 수 있나요? https://youtu.be/7Tk8ocwMO7Q
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
반년넘게 C#해도 이해라는게 도저히 안갔는데
C++하니까스택이고 힙이고 참조고 이해가 됩니다진짜 왜 C#을 먼저했을까요? 감사합니다
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
hash_map, map 질문 드립니다.
hash_map 같은 경우 그럼 큰 공간을 미리 할당해 놓고 할당된 공간 안에 key값을 기준으로 value 값을 채워 넣어 준다.그럼 예를 들면 map.reserve(100);과 같은 개념일까요??메모리를 희생하여 CPU 연산 속도를 올린다는 의미가reserve : 큰 공간을 미리 할당(메모리 희생)이사비용 감소 (미리 큰 공간을 할당하여 사용하므로 new ...() 과 같은 동작을 안해도 되므로) -> CPU 연산 속도 증가? 이러한 의미로 이해했는데 제가 이해한바가 맞는지가 궁금합니다.key값을 알면 빠르게 찾을 수 있다. -> map은 이진 탐색 O(logN)으로 찾지만, hash_map은 hm[key] O(1) -> m[key]도 가능하지 않나요? 그럼 map도 키 값을 알면 O(1) 즉 빠르게 찾을 수 있게 되는 건가요?hash 기법을 이용해서 key값을 추출하는 이유가 보안 때문인건가요?메모리를 늘릴 수 록 성능이 좋아지는 의미가 키 값이 겹쳐질 확률이 적어져서 성능이 좋아지는 건가요? -> 키 값이 겹치면 빈 공간을 찾아 가야하니
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
SetComboCheckTimer함수에서 질문이 있습니다!
ComboTimer의시간을 설정하는 float ComboEffectiveTime = (ComboActionData->EffectiveFrameCount[ComboIndex] / ComboActionData->FrameRate) / AttackSpeedRate;이 코드가 1초를 30Frame으로 잡고 원하는 Frame까지 시간을 체크하기위해서 시간계산 용으로 이해했는데위같은 방법 대신 Animation Montage BluePrint 에서 Notify로 설정하고 함수를 호출하는 방법은 성능적 차이가 클까요?? 아니면 그냥 개발자의 선택에 따른 차이일까요??