묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
노드가 검색이 안됩니다.
11:43 에서 사용하는 new state machine 이 검색이 안됩니다. context sensitive도 체크 해제해서 검색 해봐도 안보이고 혹시 이름이 바뀌었나 해서 언리얼 문서도 확인했는데 이상이 없네요 그리고 영상에서는 fwd를 연결하면 계속 반복실행이 되는데 제 상황에서는 따로 설정한 것이 없는데 1번 실행되고 반복실행이 안됩니다. 이 같은 경우는 어떻게 해결하나요?
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
8강 Getter Setter 에 대한 질문이 있습니다.
안녕하세요 교수님.CPP에 대한 이해가 아직 많이 부족해서 수업을 듣던 중 질문이 생겼습니다. 조금 이상한 질문일 수도 있을것같은데,FString 멤버 변수의 Getter Setter 멤버 함수는FORCEINLINE FString& GetName() { return Name; }FORCEINLINE void SetName(const FString& InName) { Name = InName; }이렇게 인라인 함수 선언과 참조자 반환으로 성능을 중시한 반면, ECardType 열거형 멤버 변수의 Getter Setter의 경우에는ECardType GetCardType() const { return CardType; }void SetCardType(ECardType InCardType) { CardType = InCardType; }이렇게 선언하여 안정성을 추구한 것처럼 보이는데, 이런 설계 이유나 판단 기준이 무엇인가요? 객체의 크기와 특성에 따라 적절한 설계 방법이 조금씩 다르기 때문일까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
11강 내용중 FStruct 안에 GetTypeHash 함수 friend 선언
friend 키워드는 인자가 클래스일때 private , protected 변수에 접근이 자유롭게 가능하다로 알고있는데요 여기서 들어오는 인자는 FStruct 구조체이므로 모든 변수는 public 이기 떄문에 딱히 의미가 없는부분일까요 ?..
-
미해결이득우의 언리얼 프로그래밍 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자 제한으로 답글에 코드를 올리겠습니다.
-
미해결[LV2] 이펙터로 취업하기 위한 포트폴리오 만들기
매직볼 2번 던지는 현상
강사님,.. 저 이렇게 Once로 해놨는데 왜 매직볼 던지는 모션을 2번 취하는 걸까요...? ㅠㅠ 그냥 시퀀서에서 빨간 라인(라이프 사이클) 줄이면 한 번만 던지긴 하는데 중간에 끊겨버려서요..
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
제가 빌드 이후에 대한 것들을 좀 찾아봤는데 질문이 하나 있습니다.
패키지 빌드 디버깅 | 언리얼 엔진 커뮤니티 위키 (unrealcommunity.wiki) shipping 빌드 이후 실행파일 디버그 하는 방법에 대한 내용 같은데요.제가 빌드한 것에는 tbb라는 이름의 pdb 밖에 없어서 모듈 연결을 할 수 없었습니다. shipping모드의 실행파일의 pdb를 얻는 법이 따로 있을 까요? shipping은 최적화된거라 사실 디버그 잘 안 될것 같긴한데 방법이 있다고하니 따라해 보려 했지만 잘 모르겠습니다...
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
c++로 Data Asset을 로드 했으면 Cook에 폴더 지정해야한다 라고 이해했는데요.
숄더랑 쿼터 data asset 있는 폴더는 Additional Asset Directories to Cook에 추가 안 하나요???
-
미해결언리얼 엔진4 입문 (C++ 기반)
BindHp에서...
BindHp에서 빠른작업으로 만들려고 하니 저런 메세지가 뜨면서 안만들어져요 ㅠㅠ 검색해보니 같은 질문이 있는데 답이 없어서 뭐 때문인지 모르겠습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
SetActorLocation, Rotation이 제대로 적용되지 않는 이슈
안녕하세요 이득우 선생님.강의를 듣고 혼자 실습해보다가 의문이 생겨서 결국 이곳에 질문을 드리게 되었습니다. 제가 데디케이티드 서버 환경에서 캐릭터의 위치와 회전을 원하는 값(정해진 위치와 회전)으로 지정하여 변경시키는 실습을 혼자 해보고 있었는데, 간헐적으로 캐릭터가 제대로 정해진 위치로 이동하지 않거나, 회전값도 제대로 돌아가지 않는 문제가 발생하는것 같습니다.혼자 열심히 찾아보고 고민하면서 내린 생각은, 서버 RPC함수를 통해 SetActorLocation을 수행하였는데, 서버에서 위치 혹은 회전값을 변경시키기전에 캐릭터가 '직전에' 이동하려고 했던 값이 아직 서버 패킷? 같은곳에 남아있어서 이전 이동 정보로 인해 위치 혹은 회전 변경 함수가 서버에서 적용된 이후 곧이어서 뒤늦게 도착한 캐릭터 위치 혹은 회전 변경값에 의해 다시 값이 바뀌어서 원하는 위치와 회전이 나오지 않는거지 않을까 혼자 추측만 하고 있습니다. 제가 원하는 결과를 얻기 위해서 무엇을 고려하고, 혹은 이런 상황이 많이 벌어질것 같은데, 어떻게 해결하면 좋을지 궁금합니다. 추운 날씨에 좋은 강의 주셔서 공부하는데 몹시 도움되고 있습니다. 감사합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
비정상 상황을 만들고 동작을 살펴봤는데 이해가 안 가서 질문드립니다..
처음 시작 후, 오른쪽 스테이지 이동하고, 점프로 다시 왼쪽(처음 ) 스테이지로 강제로 넘어가면 이제 비정상 상황이 되는데요. 오른쪽 문으로 다시 접근 시, GateTrigger가 작동되서 오른쪽에 스테이지가 있는지 확인을 하는 로직이 실행되는 것까지 이해가지만, 스테이지가 있는데도 OverlapMultiByObjectType()가 false를 반환하고 계속해서 같은 위치에 스테이지를 생성시킵니다. Fight 상태인 스테이지는 체크안되고 NEXT 상태인 스테이지는 체크되는 이유를 알 수 있을 까요.....
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
델리게이트 자료형 생성 매크로에 세미콜론 붙여야 하는건가요?
실행은 되는데 헤더의 몇몇 함수들이 링크가 안 맞는 뭔지 모를 오류 때문에 한참 찾았는데요..... 저도 모르게 세미콜론을 붙였다 안붙였다 해서 쓴 것 같은데안 붙여도 오류는 안 나는 이유가 뭘까요....
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
명칭에 대한 질문이 있습니다.
강의에서 언리얼 오브젝트라고 말하신 것은 UObject를 상속받은 클래스들을 칭한 것인가요?
-
미해결이득우의 언리얼 프로그래밍 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) 라는게 있어서변화된 게 누구인지 보고 처리하는 것이 있었는데요. 언리얼에서는 이런 것이 있나요???