월 27,720원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
GameMode의 HUD클래스는 화면에 플레이어HUD랑 중첩되나요?
모든 플레이어에게 공통된 정보를 나타낼 때 사용된다 라고 하는데, 클라이언트 화면에 표시할 UI로서 플레이어 컨트롤러의 HUD가 그려지는 와중에 어떤 정보를 어떻게 그린다는 건지 아직 상상이 잘 안 되서 여쭤봅니다.
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
player controller 초기화 과정이 이상해요.
PlayerController와 HUD위젯 초기화 순서가 먼저 진행했던 캐릭터의 HP위젯이랑 어떻게 다른지 볼려고 중단점찍고 확인해봤는데요. PlayerController 액터에 PostInitializeComponents()도 한번 그냥 재정의 해서 이것도 확인해 보니, CharacterBase 액터의 생성자가 호출되기전에 PlayerController의 PostInitializeComponents()가 호출되었습니다. 이 경우, 제가 뭔가 잘못한 걸까요?? Initialize 함수가 다른 액터의 생성자보다 먼저 실행되는게 이해가 가질 않습니다....
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
2강 캐릭터와 입력시스템: compile error로 인해 코드를 적용할 수 없습니다.
34분 15초 부터 시작해서 강의 끝까지 들었습니다.선생님 코드에서 compile error 표시가 있어도 빌드랑 ctrl + f5를 통한 Editor 실행까지 잘 수행되는 것을 확인했습니다. 하지만 제 환경에서는 compile error 표시를 해결하지 않으면 아무것도 수행할 수 없었습니다.수업 자료에 있던 zip 파일의 소스 코드를 복붙해서 오타가 있는지 확인했는데도, compile error가 발생합니다.이를 해결하고 싶습니다.Build started... 1>------ Build started: Project: ArenaBattle, Configuration: Development_Editor x64 ------ 2>------ Skipped Build: Project: UE5, Configuration: BuiltWithUnrealBuildTool Win64 ------ 2>Project not selected to build for this solution configuration 1>Using bundled DotNet SDK version: 6.0.302 1>Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" ArenaBattleEditor Win64 Development -Project="C:\Unreal Projects\ArenaBattle\ArenaBattle.uproject" -WaitMutex -FromMsBuild 1>Log file: C:\Users\kdh\AppData\Local\UnrealBuildTool\Log.txt 1>Invalidating makefile for ArenaBattleEditor (ABCharacterPlayer.cpp.obj.response modified) 1>Building ArenaBattleEditor... 1>Using Visual Studio 2022 14.34.31947 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933) and Windows 10.0.18362.0 SDK (C:\Program Files (x86)\Windows Kits\10). 1>[Upgrade] 1>[Upgrade] Using backward-compatible include order. The latest version of UE has changed the order of includes, which may require code changes. The current setting is: 1>[Upgrade] IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_1 1>[Upgrade] Suppress this message by setting 'IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_2;' in ArenaBattleEditor.Target.cs. 1>[Upgrade] Alternatively you can set this to 'EngineIncludeOrderVersion.Latest' to always use the latest include order. This will potentially cause compile errors when integrating new versions of the engine. 1>[Upgrade] 1>Determining max actions to execute in parallel (8 physical cores, 16 logical cores) 1> Executing up to 8 processes, one per physical core 1> Requested 1.5 GB free memory per action, 5.08 GB available: limiting max parallel actions to 3 1>Building 4 actions with 3 processes... 1>[1/4] Link [x64] UnrealEditor-ArenaBattle.dll cancelled 1>[2/4] WriteMetadata ArenaBattleEditor.target cancelled 1>[3/4] Link [x64] UnrealEditor-ArenaBattle.lib cancelled 1>[4/4] Compile [x64] ABCharacterPlayer.cpp 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(58): error C2672: 'ULocalPlayer::GetSubsystem': no matching overloaded function found 1>C:\Program Files\Epic Games\UE_5.2\Engine\Source\Runtime\Engine\Classes\Engine\LocalPlayer.h(332): note: could be 'TSubsystemClass *ULocalPlayer::GetSubsystem(const ULocalPlayer *)' 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(58): note: 'initializing': cannot convert from 'APlayerController *' to 'const ULocalPlayer *' 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(58): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or parenthesized function-style cast 1>C:\Program Files\Epic Games\UE_5.2\Engine\Source\Runtime\Engine\Classes\Engine\LocalPlayer.h(322): note: or 'TSubsystemClass *ULocalPlayer::GetSubsystem(void) const' 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(58): note: 'TSubsystemClass *ULocalPlayer::GetSubsystem(void) const': expects 0 arguments - 1 provided 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(88): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(88): error C2146: syntax error: missing ';' before identifier 'Rotation' 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(88): error C2065: 'Rotation': undeclared identifier 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(89): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(89): error C2086: 'const int FRotater': redefinition 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(88): note: see declaration of 'FRotater' 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(89): error C2146: syntax error: missing ';' before identifier 'YawRotation' 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(89): error C2065: 'Rotation': undeclared identifier 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(89): error C3861: 'YawRotation': identifier not found 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(91): error C2065: 'YawRotation': undeclared identifier 1>C:\Unreal Projects\ArenaBattle\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(92): error C2065: 'YawRotation': undeclared identifier 1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets(44,5): error MSB3073: The command ""C:\Program Files\Epic Games\UE_5.2\Engine\Build\BatchFiles\Build.bat" ArenaBattleEditor Win64 Development -Project="C:\Unreal Projects\ArenaBattle\ArenaBattle.uproject" -WaitMutex -FromMsBuild" exited with code 6. 1>Done building project "ArenaBattle.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 1 skipped ========== ========== Build started at 오후 11:32 and took 07.270 seconds ==========이처럼 해당 클래스를 찾을 수 없다는 compile error가 계속 발생했습니다.10000자 제한으로 답글에 코드를 올리겠습니다.
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
제가 빌드 이후에 대한 것들을 좀 찾아봤는데 질문이 하나 있습니다.
패키지 빌드 디버깅 | 언리얼 엔진 커뮤니티 위키 (unrealcommunity.wiki) shipping 빌드 이후 실행파일 디버그 하는 방법에 대한 내용 같은데요.제가 빌드한 것에는 tbb라는 이름의 pdb 밖에 없어서 모듈 연결을 할 수 없었습니다. shipping모드의 실행파일의 pdb를 얻는 법이 따로 있을 까요? shipping은 최적화된거라 사실 디버그 잘 안 될것 같긴한데 방법이 있다고하니 따라해 보려 했지만 잘 모르겠습니다...
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
c++로 Data Asset을 로드 했으면 Cook에 폴더 지정해야한다 라고 이해했는데요.
숄더랑 쿼터 data asset 있는 폴더는 Additional Asset Directories to Cook에 추가 안 하나요???
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
비정상 상황을 만들고 동작을 살펴봤는데 이해가 안 가서 질문드립니다..
처음 시작 후, 오른쪽 스테이지 이동하고, 점프로 다시 왼쪽(처음 ) 스테이지로 강제로 넘어가면 이제 비정상 상황이 되는데요. 오른쪽 문으로 다시 접근 시, GateTrigger가 작동되서 오른쪽에 스테이지가 있는지 확인을 하는 로직이 실행되는 것까지 이해가지만, 스테이지가 있는데도 OverlapMultiByObjectType()가 false를 반환하고 계속해서 같은 위치에 스테이지를 생성시킵니다. Fight 상태인 스테이지는 체크안되고 NEXT 상태인 스테이지는 체크되는 이유를 알 수 있을 까요.....
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
델리게이트 자료형 생성 매크로에 세미콜론 붙여야 하는건가요?
실행은 되는데 헤더의 몇몇 함수들이 링크가 안 맞는 뭔지 모를 오류 때문에 한참 찾았는데요..... 저도 모르게 세미콜론을 붙였다 안붙였다 해서 쓴 것 같은데안 붙여도 오류는 안 나는 이유가 뭘까요....
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
공격하면서 회전하는데요. MOVE_None은 이동만 막는건가요?
MovementMode의 MOVE_None는 이동만 막는거고 회전은 막지 않는 것인가요???
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
데코레이터의 abort 설정 범위가 정확히 어떻게 되나요??
Self는 자기 자신만,Both는 자신과 오른쪽 노드까지 중지 시킴으로 상위 노드로 돌아간다면이쪽으로 가는게 맞나요??? 아니면 Root 까지 가는건가요?
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
FSoftObjectPtr 와 FSoftObejctPath는 어떤점이 다른가요???
둘다 나중에 로드하는 식으로 사용하는건 똑같긴 하지만 Path는 자료형을 지정 안하던데 예상하기로는 Path는 말그대로 문자열 저장 같은거고로드하기위해서는 핸들 같은 다른 객체의 도움을 받는 듯한 느낌인데요. 이번 수업에서 보여주신 Path - FStreamableHandle 사용법은 정형화되어있나요? 아니면 다른식으로 path 사용하는 방법이 무궁무진하나요?
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
에셋 매니저에 버그인지 제 기존 weapon 데이터 에셋을 못찾습니다.
왼쪽에 Weapon1 이 예전부터 실습하던 데이터 에셋인데요.weapon 박스가 생성이 안되길래 디버그로 확인해보니 에셋 매니저가 이 weapon1를 못 찾아서 에셋 목록에 없었습니다. 리로드 다시 해도 안되는 것 같습니다. 그래서 새로운 data asset을 ABWeaponItemData기본으로 만들어서 같이 테스트 해보니, 오른쪽 새로 만든 건 또 에셋 매니저가 찾아서 목록 안에 있더라구요..... 이게 버그인지 아니면 제가 뭘 잘못한 건지 잘 모르겠는데 혹시 뭔지 알 수 있을까요....
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
FSoftObjectPtr 함수 질문
IsPending()은 객체정보는 있지만 로딩되지 않았을 때 True.IsValid()는 객체정보있고 로딩도 되있을 때 True 인가요?? 그렇다면,IsPending()은 nullptr 일 때 false.IsValid()는 객체정보는 있고 로딩 전 일때 false 인가요??
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
속성의 변화를 알려주는 OnConstruction
보통 Transfrom이 변하면 호출되어 사용하는 함수 같은데요. 제가 사용해봤던 다른 엔진에서는 객체의 멤버변수가 변화되면 변화된 프로퍼티의 ID값과 함께 호출되는 콜백 함수로 OnChangedProperty( 프로퍼티 ID) 라는게 있어서변화된 게 누구인지 보고 처리하는 것이 있었는데요. 언리얼에서는 이런 것이 있나요???
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
DataAsset에 궁금증이 있습니다
15분 쯤 이제 Potion Data Asset을 생성하는 장면이 있는데 저렇게 구분해서 Data Asset을 생성하는 것이 더 좋나요? 제가 생각했던것은 이러한 Data 내용들은 Excel 혹은 json 파일을 이용해서 데이터 레이블에 저장해놓고 사용했을것 같은데 혹시 Data Asset을 사용하는게 어떤 이점이 있을까요?
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
플레이어 캐릭터의 블루프린트에 위젯 컴포넌트 질문입니다.
플레이어의 체력바가 변화가 없길래 블루프린트를 봤더니HpBar 위젯 컴포넌트가 그냥 기본 UWidgetComponent로 되어있었습니다.자동으로 AABWidgetComponent로 바뀌여야 하지 않나요??혹시 수동으로 직접 바꿔야 되는 건가요??? 혹시 몰라서 HpBar를 직접 UABWidgetComponent로 바꿔봤는데 그렇게 하면 블루프린트에 디테일 패널이 안나와요....
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
UserWidget의 GetOwningPlayerPawn()은 컨트롤러가 붙어있는 폰만 유효한거죠?
GetOwningPlayerPawn() 함수가 UI와 관련된 플레이어 폰이라고 설명이 되있는데말그대로 플레이어컨트롤러가 붙어있는 Pawn인거죠??
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
몽타주에 델리게이트 set 하는거는 일회용인가요??
//몽타주 섹션 End 델리게이트 만들어서 콜백함수 연결하고 FOnMontageEnded EndDelegate; EndDelegate.BindUObject(this, &AABCharacterBase::ComboActionEnd); //델리게이트를 몽타주에 설정 AnimInstance->Montage_SetEndDelegate(EndDelegate, ComboActionMontage);수업 내용처럼 계속해서 지역변수로 선언한 델리게이트를 넣어줘야 하는 건가요??? 안에서 MontageInstance->OnMontageEnded 처럼 멤버변수에 따로 복사 되는 것 같은데도한번만 설정했을 시 잘 안되는 것 같아요. FAnimMontageInstance 라고 몽타주 실행 할 때마다 생성되서 내부에 관리하는데 델리게이트를 FAnimMontageInstance에다가 설정하는 것으로 보입니다.이 인스턴스가 어디서 계속 삭제되니까 설정도 계속 해줘야 하는 것으로 보입니다. 이곳은 복잡해서 흐름을 이해하기가 조금 힘든 것 같습니다.
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Landing모션에서 곧바로 Loco모션의 달리기로 바로 바뀔 수 있는 이유
제가 점프 얼라이어스에 Landing도 체크 했기 때문에 landing 하자마자 점프를 하면 바로 점프 모션으로 바뀌게 되는 것은 이해가 되는데요. Landing모션이 시작되고 10퍼센트 이하 남은 시점에 Locomotion으로 바뀌게 설계를 했기 때문에, landing하자마자 이동하면 landing모션이 10%남은 시점 까진 Landing이 유지되다가 달리기 모션을 바뀔 줄 알았는데 Landing하자마자 이동을 하면 바로 Locomotion의 달리기 모션으로 전환 될 수 있는 이유를 알 수 있을까요..
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
스프링암의 Use Pawn Control Rotation적용 질문이 있습니다.
Use Pawn Control Rotation을 켜면 컨트롤러 회전값을 해당 컴포넌트의 rotation에 적용한다고 이해했었는데요.이것만 켜면 마우스로 인한 컨트롤러 회전값 변화가 스프링암에 적용되어 스프링 암이 회전할 거라고 생각했는데스프링암에 있는 부모의 회전값을 상속받는 옵션을 켜야만 작동이 되는 것을 확인했습니다.어떤 이유로 스프링암의 부모컴포넌트의 회전값을 상속받아야지만 작동되는지 알수있을까요? 반대로 Use Pawn Control Rotation을 끄고 회전값 상속을 하니 무조건 캐릭터의 뒷면만 보게끔 되는것을 확인했습니다. 이러한 동작은 이해가 되었습니다.
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
입력 모디파이어 질문있습니다.
질문이 많아 죄송합니다.매뉴얼을 봐도 모디파이어가 인풋의 출력 값을 변형시킨다는 어렴풋한 이해만 되고 정확히 무엇인지 잘 모르겠습니다... 스위즐과 Order에 대한 이해도 잘 안되지만 인풋 액션에만 모디파이어가 있는게 아니라 맵핑 컨텍스트의 키맵핑에도 모디 파이어가 있는데 어떤관계고 어떻게 동작하는건지 좀 어렵습니다...