묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
Enumeration에 대한 질문입니다.
Attack을 먼저 Enum 목록에 만든 다음 스샷과 같이 만들고 재생하면 처음부터 공격애니메이션이 계속 실행됩니다. 스페이스 바를 몇번 누르면 다시 제대로 돌아오구요.Attack을 먼저 목록에 만들지 않고 Idle이나 Move로 만든 다음 다시 블루프린트를 만들고 재생하면 정상적으로 실행됩니다.Enum 순서가 상관이 있나요?? 해당하는 set만 잘 설정하면 순서는 아무 상관 없지 않나요??
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Extensions 설치 후
안녕하세요 선생님. 선생님처럼 매크로에 보라색이 빠져있거나 Alt+Enter 로 정의가 불가능한 경우는 어떻게 해야할까요?? ㅠ
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
bUseAccelerationForPaths를 C++로 활성화시키고 싶습니다.
안녕하세요. 섹션1의 캐릭터 컨트롤 설정 수업을 듣고 캐릭터를 wasd말고 NavMesh를 이용하여 클릭으로 캐릭터를 움직이고 싶어서 제작하고 있습니다.그런데 Nav Movement의 UseAccelerationForPaths를 true로 변경시켜야 캐릭터의 애니메이션이 움직인다는 것을 알게 되었습니다. blueprint로는 바꿀 수 있지만 C++로는 도저히 바꾸는 방법을 찾지 못하여 물어보게 되었습니다.어떻게 하면 C++코드를 이용하여 UCharacterMovementComponent클래스의 bool변수인 bUseAccelerationForPaths를 true로 변경시키고 ACharacter클래스에 변경된 UCharacterMovementComponent 클래스를 성공적으로 적용시킬 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
UE_LOG에 빨간 밑줄이 생겨요.
h#pragma once#include "CoreMinimal.h"#include "Engine/GameInstance.h"#include "MyGameInstance.generated.h" UCLASS()class ABC_API UMyGameInstance : public UGameInstance{ GENERATED_BODY()public: virtual void Init() override;private:}; cpp#include "MyGameInstance.h"void UMyGameInstance::Init(){ Super::Init(); TCHAR LogCharArray[]= TEXT("Hello Unreal"); UE_LOG(LogTemp, Log, LogCharArray);}인데 UE_LOG에 밑줄 생기고 실행이 안됩니다.
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
빌드 시스템에 대해 이해가 되지 않는 부분이 있어 여쭤봅니다
Build.cs 파일에 PublicDependencyModuleNames 와 PrivateDependencyModuleNames 의 차이를 공홈에서 처럼 Public 폴더의 헤더(보통의 경우) 에서 참조하는 경우는 PublicDependencyModuleNames 를 사용하라 하는데요 이렇게 사용하면 안 좋다는 것을 알지만 PrivateDependencyModulesNames 에 추가해도 컴파일은 제대로 되다보니 이해가 안됩니다 ㅠ예를 들면)ModuleAPublic-> ObjectA.hModuleBPublic-> ObjectB.hModuleB.build.cs 의 PrivateDependencyModuleNames에 ModuleA 를 추가하더라도 ObjectB.h 에서 ObjectA 이 사용 가능한 상황입니다.알려주세요 ㅠ
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
코드로 PlayerControllerClass 지정하는 과정에서 빌드 실패
안녕하세요 섹션1 언리얼 엔진 게임 제작 기초 강의 중 궁금한거 세가지가 생겨서 질문드립니다.1. PlayerControllerClass 지정하는 과정에서 빌드 실패AABGameMode::AABGameMode(){ PlayerControllerClass = AABPlayerController::StaticClass();}이렇게 게임모드 생성자에서 특정 컨트롤러 클래스를 지정하는 부분 따라가던 중 라이브 코딩에서 사진과 같이 build failed 가 발생하였습니다. 어찌어찌 비주얼 스튜디오에서 솔루션 프로젝트 정리 눌러보고 다시 빌드해보니까 성공적으로 돌아갔습니다. 근데 처음에는 왜 실패했는지 전혀 모르겠네요 ㅠ2. cpp 파일에서 inlude 자동 추가교수님 강의에서는 언리얼 에디터에서 GameMode 클래스를 생성하면 바로 cpp파일에서 #include "Game/ABGameMode.h"#include "ABGameMode.h"이 두가지 경로가 자동 추가되는데 제가 했을 때는 #include "Game/ABGameMode.h" 이거 하나만 추가되었습니다. 그냥 무시하고 넘어가도 되는 부분인가요? 3. 헤더파일이 디렉토리 또는 빌드 시스템 경로에 없습니다.ABGameMode 클래스를 만들면서 cpp 파일에 자동 추가 된 #include "Game/ABGameMode.h" 부분에서 F12를 누르면 이와 같은 에러가 발생합니다. 이 또한 무시해도 괜찮은 부분일까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Serialization 용어 질문 바이트스트림에서 오브젝트, 오브젝트에서 바이트스트림
바이트스트림를 오브젝트로 Decoding 하는 함수도 Serialize() 이고오브젝트를 바이트스트림으로 Encoding 하는 함수도 Serialize() 인 것 같은데 맞나요?Reader/Writer 에 따라 다르게 동작하는 거겠죠.. 이해를 하라면 이해는 가는데 왜 이렇게 네이밍을 했을까요?? 다른 분들은 헷갈리지 않나요?? operator << 도 굉장히 헷갈려서 전 차라리 operator overriding 말고 함수를 만들었으면 좋았을 것 같다고 생각하는데 강사님은 어떻게 생각하시나요? 또 다른 분들은 어떻게 생각하시나요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
IFileManager::Get().CreateFileWriter로 생성된 객체 delete
예제에서 CreateFileWriter로 생성된 FArchive 를 delete 키워드로 삭제하셨는데... 제가 혼자서 CreateFileWriter()를 사용하는 케이스를 상상했을 때 delete 로 지워야겠다라는 것은 모르고 그냥 넘어갔을 것 같습니다. 혼자 공부하면서 올바른 Unreal Engine/API 사용법 같은 걸 배울 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
FGCObject 상속받은 FStudentManager 예제
GameInstance Shutdown 함수에서 StudentInManager Object가 Valid하다고 로그가 나오고 난 후에 Shutdown 함수 execution이 끝나면 StudentInManager는 더이상 레퍼런스가 없으므로 가비지 콜렉션에 의해 수거되는 거 맞을까요?
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
Animation blending 관련
layered blend per bone의 blend pose 0번(슈팅모션)에 모든 weight를 준 상태 (1.0)에서도 base pose를 완전히 무시하고 재생되지는 않는건지요? idle 상태에서 총을 쏘게 되면 idle motion 방향에 따라 이리저리 몸을 돌리면서 총 쏘는 모션이 블렌딩 됩니다. 달리는 중에 총을 쏘게 되어도 달리는 팔 동작은 유지되면서 총을 쏘는 진동만 블렌딩 되고 있네요. (총구가 왔다갔다 합니다.)base pose를 완전히 무시하고 애니메이션을 블렌딩하는 방법이 있나요?
-
미해결언리얼 엔진4 입문 (C++ 기반)
언리얼엔진 VisualStudio build 오류
안녕하세요. 유니티vs언리얼 강의를 들으며 이제 프로젝트 내에 C++ 코드를 처음 작성하고 있던 중이었습니다. 그런데 이제 코드를 동일하게 작성하고 빌드를 눌렀는데 아래와 같은 오류가 나옵니다. 코드를 잘못 따라친건가 싶어서 아예 새 C++ 파일을 생성해 빌드를 해봐도 위와 동일한 오류가 나옵니다. 구글에도 찾아보고 해결 방법을 찾아보고 있기는 한데 , 혹시 오류의 원인을 알 수 있을까 해서 질문을 올립니다. 언리얼 버전은 5.2입니다.비쥬얼스튜디오 버전은 2022 입니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
상위 레이어를 참조할땐 인터페이스를 이용하는 이유가 무엇인가요?
C++강의에 내용이 있을까요 아직 수강하기 전이라.. 간략하게라도 설명 해주시면 감사하겠습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
실무에선 c++을 먼저 만들고 블플르 파생시키나요 아니면
언리얼 엔진에선 블프로 프로토타입을 만들고 c++로 구체화 한다고 하던데c++클래스를 먼저 만들고 블프로 자식 클래스를 만드는게 흔한가요, 아니면 블프를 먼저 만들고 c++을 자식으로 만드나요?c++을 먼저 만들고 블프를 자식으로 만들면 프로토타입 단계를 c++로 만들게 된다는말 아닌가요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
인코딩 질문입니다
강의 중 한글 '와'를 포함한 소스코드를 utf-8 인코딩으로 변경해서 저장하고 컴파일하면 '와'로 잘 출력되었는데요...근데 Unreal 에서는 스트링 저장시 UTF-16 format을 쓴다고 되어있는데 그럼에도 불구하고 UTF-8로 인코딩된 영어랑 " <-요런 (기호)문자들이 잘 호환된 이유는 뭘까요?Character Encoding in Unreal Engine 문서에 When serializing to packages to/from disk or during networking, strings with all TCHAR characters less than 0xff are stored as a series of 8-bit bytes, and otherwise as 2-byte UTF-16 strings. The serialization code can deal with any endian conversion as necessary.이 내용 때문인가요? 시리얼라이징에만 해당하는 것 같아 보이는데요.. 인코딩 정말 헷갈리는군요..
-
미해결언리얼 엔진4 입문 (C++ 기반)
UI실습 강의 질문
UI로 체력을 띄우는 부분에서 블루프린트로 객체를 만들면 체력이 나오는데 C++객체로 생성하면 체력이 나오지 않는 현상이 발생합니다 혹시 이유가 무엇인지 알 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
블루트린트 말고 c++ 로 액터를 생성하는 이유가 뭔가요?
언리얼 입문을 블프 튜토리얼로 입문하고나서이득우님의 강의를 보고 있는데요, 블프로 하면 시각적인 환경에서 간단한 클릭들로 액터를 만들고 메쉬를 지정할수 있는데, 액터를 c++로 만드는 이유가 궁금합니다. 단순히 c++에서의 원리도 알겸 하는건지, c++로 액터를 생성하는게 실무적인 측면에서 더 좋은건지 궁금합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
섹션1 캐릭터 컨트롤 설정의 IMC 관련 질문입니다.
섹션1의 캐릭터 컨트롤 설정 파트에서 궁금한 부분이 있어 질문 드립니다.강의 영상에서는 DataAsset 부분(15:15 ~ 16:10)에서 IMC 설정을 하지 않고 생략 되는 것으로 알고 있습니다.(때문에 Github 소스 자체에는 문제가 없습니다. 다만 영상과 같이 DataAsset의 IMC를 None으로 두면=영상 내용을 그대로 따라한다면 질문1 질문2 과 같은 문제가 발생합니다.)이를 해결하기 위해서 위의 링크들과 같이 에디터 상에서 DataAsset에 직접 IMC를 지정하는 방법도 있지만, DataAsset을 불러오는 김에 IMC도 코드를 이용해서 추가 하는 것이 좋지 않을까? 싶어 코드를 약간 변형해봤습니다.아래는 ABCharacterBase.cpp의 소스코드 일부 입니다. 기존 소스코드에 헤더를 추가한 상태를 기준으로 48번 Line부터 내용을 추가 했습니다.#include "InputMappingContext.h" // 헤더 파일 추가 (중간 생략...) // DataAsset 탐색 static ConstructorHelpers::FObjectFinder<UABCharacterControlData> ShoulderDataRef(TEXT("/Script/ArenaBattle.ABCharacterControlData'/Game/ArenaBattle/CharacterControl/ABC_Shoulder.ABC_Shoulder'")); if (ShoulderDataRef.Succeeded()) { // DataAsset에 IMC 삽입 static ConstructorHelpers::FObjectFinder<UInputMappingContext>ShoulderInputMappingContextRef(TEXT("/Script/EnhancedInput.InputMappingContext'/Game/ArenaBattle/Input/IMC_Shoulder.IMC_Shoulder'")); if(ShoulderInputMappingContextRef.Succeeded()) { UInputMappingContext* ShoulderInputMappingContext = ShoulderInputMappingContextRef.Object; ShoulderDataRef.Object->InputMappingContext = ShoulderInputMappingContext; } CharacterControlManager.Add(ECharacterControlType::Shoulder, ShoulderDataRef.Object); // 기존 DataRef의 InputMappingContext는 Default = None으로 설정되어 있었음 } // DataAsset 탐색. Quarter <-> Quater 오타 주의 static ConstructorHelpers::FObjectFinder<UABCharacterControlData> QuarterDataRef(TEXT("/Script/ArenaBattle.ABCharacterControlData'/Game/ArenaBattle/CharacterControl/ABC_Quarter.ABC_Quarter'")); if (QuarterDataRef.Succeeded()) { // DataAsset에 IMC 삽입하는 과정 static ConstructorHelpers::FObjectFinder<UInputMappingContext>QuarterInputMappingContextRef(TEXT("/Script/EnhancedInput.InputMappingContext'/Game/ArenaBattle/Input/IMC_Quarter.IMC_Quarter'")); if(QuarterInputMappingContextRef.Succeeded()) { UInputMappingContext* QuarterInputMappingContext = QuarterInputMappingContextRef.Object; QuarterDataRef.Object->InputMappingContext = QuarterInputMappingContext; } CharacterControlManager.Add(ECharacterControlType::Quarter, QuarterDataRef.Object); }위와 같은 방식들로 IMC를 DataAsset에 추가해줬을 때 별다른 문제가 없다면,해당 섹션의 강의 정보에 공유 해주실 수 있으신가요?!아무 생각 없이 코드만 생각하다가 여기서 쳇바퀴 열심히 돌렸습니다 ㅎㅎ;;
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
패키지 강의에서 서브 오브젝트 질문
강의에 나온 코드를 보다 보니Student 패키지를 만들고 그걸 로드 해보는 다양한 방법을 배웠습니다.그런데 TopStudent 에셋 저장 시 함께 입력된 SubObject 학생 1~10 에 대한 정보는 입력만 되고 따로 불러서 확인해 보는 부분이 없어서 이렇게 저렇게 해보다 질문 드립니다.이 에셋 속에 있는 서브 오브젝트는 어떻게 불러 올 수 있을까요?
-
미해결[입문자를 위한 UE5] Part5. 언리얼 엔진 VR
BP_PAWN 첫강의 시야 고정 관련
안녕하세요 루키스 강사님!BP_Pawn 강의를 듣고 따라하고있는데 마지막에 DesiredCamerHeights를 이용해 75높이로 카메라 높이를 고정하는 블루프린트를 따라했는데 실행하면 일어서도 Camera 높이가 계속 변경되고 75로 고정 되지않습니다. 그래서 BegincPlay 이벤트 문제인가 싶어서 Tick 이벤트에 넣었는데 그때는 이상하게 일어나거나 앉아도 Camera 값이 고정이 잘 됩니다.강사님은 BeginPlay에 연결하셔서 하시는데 Tick에 연결해서 해도 되는지 몰라서 질문 드립니다.
-
미해결언리얼 엔진4 입문 (C++ 기반)
UBTTask_Attack의 TickTask 함수 호출이 안되는 것 같습니다.
생성자에서 bNotifyTick = true;를 해주고틱테스크 함수에 디버깅 포인트를 찍고 디버깅을 해봤으나 함수에 들어오지 않는 것 같습니다.혹시 저 부분 외에 다른 작업도 해주어야 하나요? 그리고 람다를 사용해서 계속 델리게이트를 구독하는 것 같아서 bool값을 통해 초기 한 번만 등록되도록 바꿔봤는데 혹시 문제가 있을까요? 아직 델리게이트를 정확히 이해하지 못해 질문 드립니다.