묻고 답해요
152만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
아이패드에서 2강부터 재생 불가
Part.4 게임플레이 어빌리티 시스템 2강 캐릭터와 입력 시스템부터 재생이 안됩니다.다른 파트는 정상적으로 재생됩니다..검색해보니까 인프런에 유사한 증상을 겪는 유저가 종종 있는것 같은데, 한번 살펴봐 주십시오. 실행환경: 아이패드 프로11 3세대브라우저: 크롬과 웨일 (일반/시크릿 모드에서 테스트)
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
15강에서 AGameModeBase 관련 에러가 뜹니다.
(5.4.3 기준)14강까지 잘 달려오다가 15강에서 갑자기 오류가 뜹니다.우선 14강까지 쓰던 프로젝트를 문제없이 그대로 써왔으며, 15강을 시작하기 앞서 이 프로젝트를 빌드를 통해 에디터가 켜지는것을 확인 후, 15강의 앞부분 c++코드를 따라하면서, 정확히"7:42 까지 따라한 후, 즉 캐스팅코드 작성 이후 헤더까지 포함 시킨 후 바로 F5를 누르면 맨 아래와 같은 에러가 뜹니다.((바로 전 단계인 ABGameInterface.h 를 에디터에서 생성 후, 모두 로드를 클릭한 후에 그 즉시 f5를 눌러 문제없이 에디터가 켜지는 것을 재차 테스트하여 확인함)"이후에 어떤 코드를 이어 써서 디버깅해도 같은 에러가 떠서 수강 진행이 막혀있는 상태입니다.그래서 깃허브에서 올려주신 "UnrealProgrammingPart2-14" 도 받은 후 15강을 따라하면서 아까와 동일하게 매 코드작성마다 디버깅확인을 해봤더니, 이 파일 또한 정확히 7:42부분에IABGameInterface* ABGameMode = Cast<IABGameInterface>(GetWorld()->GetAuthGameMode()); 코드를 작성 후, Interface/ABGameInterface.h 헤더를 포함시키고 그 즉시 F5를 하면 위와 동일한 상황에서 동일한 에러가 뜹니다. 근데 신기한건, 깃허브에 올려주신 "UnrealProgrammingPart2-15" 도 받아서 F5를 눌렀더니 이것은 문제 없이 에디터가 켜집니다. 어떤 차이가 있길래 이것은 켜지는걸까요...?어떤 문제로 인해 저 시점에 아래와 같은 에러가 발생하는지 궁금합니다. 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 MSB3073 "F:\UE_5.4\Engine\Build\BatchFiles\Build.bat ArenaBattleEditor Win64 Development -Project="C:\Users\qkrwo\Downloads\UnrealProgrammingPart2-14\UnrealProgrammingPart2-14\ArenaBattle.uproject" -WaitMutex -FromMsBuild -architecture=x64" 명령이 종료되었습니다(코드: 6). ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 157오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 167오류(활성) E0020 식별자 "FTextureBuildSettings"이(가) 정의되어 있지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\Texture.h 2017오류 C2027 정의되지 않은 형식 'AGameModeBase'을(를) 사용했습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88오류 C2338 static_assert failed: 'Attempting to cast between incomplete types' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88오류 C2139 'AGameModeBase': 정의되지 않은 클래스는 컴파일러 내장 형식 특성 '__is_base_of'에 대한 인수로 사용할 수 없습니다. ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits 1298오류 C2338 static_assert failed: 'Attempting to use Cast<> on a type that is not a UObject or an Interface' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 135
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
다중 타겟액터 설정할때, 자신이 제외가 안됩니다.
안녕하세요. 10강 다중 타겟으로 스킬 데미지 입히는 부분 학습중입니다. 그런데, 스샷처럼 CollisionQueryParams 생성할때 Source Character 를 넣어줘도 Overlaps 정보에보면 자신이 포함되있는 상태로 나옵니다. 실제로 게임 플레이시, 자신도 피해를 입는 상황이고요.. 혹시 어떤부분을 확인해봐야될지 알수있을까요? 감사합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
강의중 HUD와 HPWIDGET
13강에서 HUD를 업데이트하면서 화면에 띄우는 작업을 하게되는데요,좀 궁금한 사항이 생겼습니다.기본적으로 케릭터마다 HP위젯을 가지고있는데, 만약 플레이어는 따로 HP를 가지고 있지 않게하고 HUD에 HP를 띄우는것만으로 UI를 변경하게 된다면, 플레이어쪽에서 HPBar위젯 CDO를 하지 않게 변경하고 몬스터들만 CDO를 생성하도록 변경하면 되는건가요? 그리고 이제 플레이어는 HUD를 통해서만 소유한엑터정보를 가저와서 스텟에 접근하는 방식으로 변경하면 될려나요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
State에 Falling을 추가하고 싶습니다.
안녕하세요. 프로젝트 작업 중 점프가 아닌 Falling 스테이트를 부여하고 싶습니다. Effect를 만들어서 강제로 부여해야하는건지 아니면 다른 기능이 있는지 여쭤보고 싶습니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
_wfopen_s(&file, path.c_str(), L"wb"); 실패하는 경우
void Tilemap::SaveFile(const wstring& path){ { FILE* file = nullptr; ::_wfopen_s(&file, path.c_str(), L"wb");//writebinary ::fwrite(&_mapSize.x, sizeof(_mapSize.x), 1, file); <- 여기에서 크러쉬 나면서 뻗어버립니다.} 이럴 경우 관리자 권한 문제일까요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
ArenaBattle 과 ArenaBattleGAS 모듈을 분리하는 이유가 있을까요?
안녕하세요. 강의 듣다보니, ArenaBattle 과 ArenaBattleGAS 모듈이 분리되있는데, 혹시 모듈을 분리하는 특별한 이유가 있을까요? 아니면 GAS 시스템과 기존 제작된 ArenaBattle 을 명시적으로 나누기 위해서 분리한것인가요? 궁금합니다 ^^;
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
abort와 관련한 질문이 있습니다.
27:03 부분에서, target이 is not set으로 시작하여 오른쪽 시퀀스의 하위 테스크를 순차적으로 실행중인 상황에서, 만약 target이 detect에 의해 감지되어 is set이 되면 blackboard:target is not set <- 이 데코레이터는 실시간으로 target 값을 감지하여, detect로 인해 데코레이터의 target이 is set으로 될 경우 실행중이던 task는 즉시 failed를 반환한 후 abort를 하게 되는건가요? (데코레이터도 service처럼 tick 함수가 호출되나요?)이것이 참이라면, abort가 된 후에 root로 돌아가는것이 아니라 상위 노드인 selector로 돌아가서 평가를 다시 하게 되는 원리인가요? 아니면 root로 돌아가게 되나요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
OnHpChanged 델리게이트의 broadcast 호출시점에 대한 궁금증이 있습니다.
우선 제가 알고있는 바로는 UABCharacterStatComponent::BeginPlay() 가 호출될 시, 내부에서 SetHp 함수가 호출되며 그 안에 있는 OnHpChanged.Broadcast(CurrentHp); 가 호출되므로, 그 전에 OnHpChanged가 바인딩되어 있어야 한다. UABHpBarWidget::NativeConstruct() 내부에 SetupCharacterWidget(this) 가 호출되고, 이 안에서 Stat->OnHpChanged.AddUObject를 통해 &UABHpBarWidget::UpdateHpBar 를 바인딩한다. ---먼저 OnHpChanged 에 어떤 함수를 바인딩 후에 1. 처럼 Broadcast 를 하는것이 순서로 알고 있는데, 위젯의 NativeConstruct() 는 스탯컴포넌트의 BeginPlay() 보다 늦게 호출되는 것으로 알고 있어서 만약 이것이 사실이라면, 2. 의 바인딩 과정 이전에 이미 스탯컴포넌트의 BeginPlay를 통해서 바인딩되지 않은 OnHpChanged를 Broadcast를 해버리는 결과가 생길수도 있는건가요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
오브젝트 설계 #1 질문
34분 50초ObjectManager::Remove(Object* object)에서 auto it = std::remove(...);_objects.erase(it, _objects.end());대신에 _objects.erase(findIt); 를 해도 findIt 에는 object에 대한 iterator 값이 저장되어 있으니 erase함수만 사용해도 제거할 object를 vector에서 삭제할 수 있지 않을까 해서 질문드립니다
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
시퀀스 하나가 성공을 반환하면 트리 전체가 종료가되나요?
예를들어 13:50 에서 "친구에게 간다" 가 "친구와 약속"이라는 데코레이터를 만족하여 "약속장소로 이동"을 수행하고 이를 성공적으로 수행했다면, "친구에게 간다"라는 시퀀스는 root에게 성공을 반환하게 되고, 나머지 두 개의 시퀀스는 검토하지 않고 바로 트리 전체를 종료하는 원리인건가요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
DefaultArenaBattle.ini 관련 질문입니다
우선 메모장을 이용해서 만들기는 했는데, 여기 안에 있는 내용물은 직접 작성하는 것인가요? 메모장을 만들어놓으면 자동으로 내용이 로드되는게 아닌건가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
데이터에셋 블루프린트 reload 후 저장 관련 질문
45:30 부분에서 에서 세 데이터에셋의 블루프린트를 하나로 묶고 Reload 후 Save All을 했을때, Reload 된 각각의 에셋들이 실제로는 Reload가 안된 채로 저장이 되는 것 같습니다.(다만, 마우스를 갖다대면 primary Asset Type은 표면적으로 변경된것처럼 보입니다.) 반면, 묶음으로 Reload를 한 후, 개별적으로 블루프린트를 열고 일일이 저장버튼을 누르면 그제서야 Reload가 적용이 되는지, ensure()이 통과가 됩니다. 예를들어 에러를 띄우기 위해 ,ABItemData.h 에 있는 코드return FPrimaryAssetId("ABItemData", GetFName()); 부분에 태그ID 를 "ABItemData3333", GetFName()) 로 바꾼 후, ABItemBox.cpp 에서FPrimaryAssetId SpecificAssetId(TEXT("ABItemData"), TEXT("ABIS_ScrollTest")); FSoftObjectPtr AssetPtr(Manager.GetPrimaryAssetPath(SpecificAssetId)); 로 바꿔서 아이템 전부를 의도적으로 Scroll 자산으로 설정하고 에디터 실행 후에 설명하신 대로 전체묶음+Reload+save all 을 한 후 플레이를 누르면, 아이템이 생성되는 시점에 ensure(Item) 에서 에러가 발생되길 기대했지만 에러가 발생하지 않고 여전히 정상적으로 아이템박스 인스턴스가 생성이 됩니다. 반면 세묶음으로 Reload를 한 후 세이브는 데이터에셋 블루프린트 각각을 열어 개별저장 한 후에 다시 플레이를 하면 원하던 에러가 뜹니다. 아무래도 save all 이 Reload한 데이터 에셋들을 제대로 저장시키지 못하고 있는게 아닌가 싶습니다. 버그인지 아닌지는 모르겠지만..
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
동적배열 강의 듣는중 에러
c++ crt detected that the application wrote to memory after end of heap buffer이라는 오류가 뜹니다.이걸 무시하면 그대로 원하는 값은 나오기는 합니다. 근데 이걸 그냥 지나칠 수는 없어서 질문해봅니다.f11눌러가면서 에러나는 부분을 찾았는데reserve에 delete[] _buffer; 를 실행하니 오류가 났습니다. [Vector.h]#pragma once#include<assert.h>class Vector{using T = int;public:explicit Vector(){}~Vector(){if(_buffer)delete[] _buffer;}int size() { return _size; }int capacity() { return _capacity; }void push_back(const T& data){if (is_full()){int newCapacity = static_cast<int>(_capacity * 1.2f);if (_capacity == newCapacity)newCapacity++; reserve(newCapacity);}buffer[size] = data;_size++;}void reserve(int capacity){if (capacity <= _capacity)return;_capacity = capacity;T* newBuffer = new T(_capacity);for (int i = 0; i < _size; i++){newBuffer[i] = _buffer[i];}if (_buffer)delete[] _buffer;_buffer = newBuffer;} T& operator[](int index){assert(index >= 0 && index < _size);return _buffer[index];} int is_full() { return _size == _capacity; }int is_empty() { return _size == 0; }private:T* _buffer = nullptr;int _size = 0;int _capacity = 0;}; 해결방법이 있을까요?
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
SceneManager.cpp에서 구문오류가 발생했습니다.
안녕하세요 Rookiss님, 섹션11-3 Scene과SceneManager의 중간~32분 정도에서 작성중인 코드입니다. 이렇게 newScene에 DevScene()과 GameScene()을 넣는 부분에 형식지정자 없음과 구문 오류가 발생합니다... Scene클래스와 DevScene, GameScene 클래스 코드도 동영상을 몇번씩 돌려보면서 확인했는데 어디가 문제인지 잘 모르겠습니다... 혹시 어느 부분이 문제가 될지 확인 한 번 부탁드려도 될까요? 감사합니다!
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
SetLevelStat함수의 Clamp처리 부분에서 수정이 필요한 것 같습니다.
안녕하세요 먼저 좋은 강의 감사드립니다.ABCharacterStatComponent.cpp의 SetLevelStat함수에서 CurrentLevel에 대한 Clamp의 MinValue가 1, MaxValue가 CharacterMaxLevel로 설정되어있는데 인덱스값이므로MinValue = 1, MaxValue = CharacterMaxLevel - 1로 수정이 필요할 것 같습니다.
-
미해결[LV3 : 기술편] 게임스킬 만들기 - 기획, 아트 누구나 만드는 블루프린트
Level 3 아트편 문의
감사합니다 강의 재밌게 잘 들었습니다 !!혹시 Level 3 아트편은 언제 오픈되나요 ??오픈되면 바로 수강하고 싶습니다
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
GC발동이 다른 객체와는 좀 다른데요
안녕하세요, GA, GE 등은 그래도 객체 정보를 담을 수 있게C++에서 기본적인 작업을 하고 BP로 만든 객체를 세팅해주고 구현이 되는데, GC는 BP로 만든 객체를 세팅 없이 Tag로 바로 발동 되는 거 같습니다. AbilitySystem에서 GamePlayCue로 설정된 Tag의 Asset들을 Tracking하여 따로 관리하는 것일까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
HudWidget 질문이 있어요
Hud위젯 생성을 PlayerController 클래스가 아닌 Player클래스에 해도 주기 관련해서 문제는 없을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
UI 생성 질문이 있습니다.
HUDWidget 같은 경우 CreateWidget함수로위젯을 만들잖아요,. 근데 HpBarWidget같은 경우CreateWidget함수가 안 보이더라고요.어디서 만들어지는거죠? 제가 이해한 바로는 다음과 같습니다. Base클래스 생성자에서 HpBar라는 위젯컴포넌트에주소 참조해서 가져온 HpBarWidget클래스를 HpBar->SetWidgetClass함수에 넣으면 CreateWidget함수처럼 위젯을 생성한다. 이렇게 이해하는게 맞을까요?만약 맞다면 언리얼에서 Widget 생성하는 방법은 이렇게 2가지 있을까요?1. CreateWidget 사용 (HUD 만들 때 사용)2. 위젯 클래스를 주소참조해 가져와 위젯컴포넌트에 담기 (Actor를 따라다닐 UI 만들 때 사용 )
주간 인기글
순위 정보를
불러오고 있어요