inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

27분에서 헤더 파일에서 #include 이유

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

헤더에서 상호 참조 또는 컴파일이 오래걸리는 것을 방지하려고 class로 전방선언하여 작업하는 것으로 이해하고 따라하고있는데, 여기서는 헤더에서 클래스를 include하여 작업하는 이유는 무엇일까요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
장 현성 댓글 2 좋아요 0 조회수 159

[강의명: virtual 소멸자] 자식 클래스의 소멸자에도 virtual 을 붙이시는 이유가 궁금합니다

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

#include <iostream> using namespace std; class Player { public: Player() { cout << "Player()" << endl; } virtual ~Player() { cout << "~Player()" << endl; } }; class Pet { }; class Archer : public Player { public: Archer() { cout << "Archer()" << endl; _pet = new Pet(); } virtual ~Archer() { cout << "~Archer()" << endl; delete _pet; } public: Pet* _pet; }; int main() { Player* archer = new Archer(); delete archer; } 영상 내용에서 자식클래스의 소멸자에도 virtual 을 붙이셨는데 부모 클래스의 소멸자에만 붙여도 자식 클래스의 소멸자가 잘 호출이 됩니다. 그래서 GPT를 통해 둘 다 붙이는게 좋은지 부모 클래스에만 붙이는게 좋은지 질문해봤는데 부모 클래스에만 붙여도 문제가 없다고 답변을 받았습니다. 근데 루키스님께서 둘 다 붙이는 이유가 분명 있으실탠데 그 이유가 궁금합니다.

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
sn j 댓글 2 좋아요 0 조회수 230

캐릭터가 갑자기 안 움직입니다ㅜ

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

#include "InputMappingContext.h" #include "EnhancedInputComponent.h" #include "EnhancedInputSubsystems.h" void ACharacterPlayer::BeginPlay() { Super::BeginPlay(); APlayerController* PlayerController = CastChecked<APlayerController>(GetController()); if (PlayerController) { if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PlayerController->GetLocalPlayer())) { Subsystem->AddMappingContext(DefaultMappingContext, 0); } } } // Called to bind functionality to input void ACharacterPlayer::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); UEnhancedInputComponent* EnhancedInputComponent = CastChecked<UEnhancedInputComponent>(PlayerInputComponent); EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Triggered, this, &ACharacter::Jump); EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Completed, this, &ACharacter::StopJumping); EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &ALCharacterPlayer::Move); EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &ACharacterPlayer::Look); EnhancedInputComponent->BindAction(AttackAction, ETriggerEvent::Triggered, this, &ACharacterPlayer::Attack); } void ACharacterPlayer::Move(const FInputActionValue& Value) { FVector2D MovementVector = Value.Get<FVector2D>(); const FRotator Rotation = Controller->GetControlRotation(); const FRotator YawRotation(0, Rotation.Yaw, 0); const FVector ForwardDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X); const FVector RightDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y); AddMovementInput(ForwardDirection, MovementVector.X); AddMovementInput(RightDirection, MovementVector.Y); } void ACharacterPlayer::Look(const FInputActionValue& Value) { FVector2D LookVector = Value.Get<FVector2D>(); AddControllerYawInput(LookVector.X); AddControllerPitchInput(LookVector.Y); } 코드는 위와 같이 작성을 했습니다. 화요일까지 움직였는데 갑자기 안 움직입니다. 플러그인도 있고, IMC에도 다 설정을 했는데 갑자기 안 움직입니다... 구글에서 찾아봐도 해결이 안됩니다ㅜㅜ... ThirdPersonCharacter 를 추가해서 이 캐릭터를 사용하니 움직입니다. 그래서 ThirdPersonCharacter 의 부모 클래스를 제가 만든 클래스로 설정을 하니 다시 안 움직입니다. 코드 문제인 거 같은데 뭐가 문제인걸까요..

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
ajkdfj 댓글 2 좋아요 0 조회수 225

패키징에 관한 질문입니다

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

UATHelper: Packaging (Windows): Running AutomationTool... UATHelper: Packaging (Windows): Using bundled DotNet SDK version: 6.0.302 UATHelper: Packaging (Windows): Starting AutomationTool... UATHelper: Packaging (Windows): Parsing command line: -ScriptsForProject=D:/UnrealGame/Test/Test.uproject Turnkey -command=VerifySdk -platform=Win64 -UpdateIfNeeded -EditorIO -EditorIOPort=64148 -project=D:/UnrealGame/Test/Test.uproject BuildCookRun -nop4 -utf8output -nocompileeditor -skipbuildeditor -cook -project=D:/UnrealGame/Test/Test.uproject -target=Test -unrealexe="C:\Program Files\Epic Games\UE_5.4\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" -platform=Win64 -installed -stage -archive -package -build -clean -pak -iostore -compressed -prereqs -archivedirectory=D:/UnrealGame/Test/package -clientconfig=Shipping -nodebuginfo -nocompile -nocompileuat UATHelper: Packaging (Windows): Initializing script modules... UATHelper: Packaging (Windows): Total script module initialization time: 0.30 s. UATHelper: Packaging (Windows): Using C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe UATHelper: Packaging (Windows): Executing commands... UATHelper: Packaging (Windows): Installed Sdk validity: UATHelper: Packaging (Windows): Win64: (Status=Valid, MinAllowed_Sdk=10.0.18362.0, MaxAllowed_Sdk=10.9.99999.0, Current_Sdk=10.0.22621.0, Allowed_AutoSdk=10.0.19041.0, Current_AutoSdk=, Flags="InstalledSdk_ValidVersionExists") UATHelper: Packaging (Windows): Scanning for envvar changes... UATHelper: Packaging (Windows): ... done! UATHelper: Packaging (Windows): Cleaning Temp Paths... UATHelper: Packaging (Windows): BUILD SUCCESSFUL UATHelper: Packaging (Windows): Setting up ProjectParams for D:\UnrealGame\Test\Test.uproject UATHelper: Packaging (Windows): ********** BUILD COMMAND STARTED ********** UATHelper: Packaging (Windows): Running: C:\Program Files\Epic Games\UE_5.4\Engine\Binaries\ThirdParty\DotNet\6.0.302\windows\dotnet.exe "C:\Program Files\Epic Games\UE_5.4\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" Test Win64 Shipping -Project="D:\UnrealGame\Test\Test.uproject" -Clean -NoHotReload "D:\UnrealGame\Test\Test.uproject" -NoUBTMakefiles -remoteini="D:\UnrealGame\Test" -skipdeploy -log="C:\Users\user\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_5.4\UBA-Test-Win64-Shipping.txt" UATHelper: Packaging (Windows): Log file: C:\Users\user\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_5.4\UBA-Test-Win64-Shipping.txt UATHelper: Packaging (Windows): No target name was specified on the command-line. UATHelper: Packaging (Windows): Took 0.30s to run dotnet.exe, ExitCode=6 UATHelper: Packaging (Windows): UnrealBuildTool failed. See log for more details. (C:\Users\user\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+Program+Files+Epic+Games+UE_5.4\UBA-Test-Win64-Shipping.txt) UATHelper: Packaging (Windows): AutomationTool executed for 0h 0m 2s UATHelper: Packaging (Windows): AutomationTool exiting with ExitCode=6 (6) UATHelper: Packaging (Windows): BUILD FAILED PackagingResults: Error: Unknown Error 패키징이 안되는데 무슨 문제일까요???

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
chikcod 댓글 1 좋아요 0 조회수 121

콤보 애니메이션 몽타주의 MontageJumpToSection에 대하여

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

안녕하세요. 하나의 콤보 애니메이션 몽타주에서 섹션으로 점프하는 방식으로 강의 내용이 진행되고 있는데요. 강의 프로젝트 재확인하는 느낌으로 개인 프로젝트를 조금씩 진행하고 있는 중 콤보 공격을 넣기 위해 강의 내용따라 애니메이션 몽타주를 만들었습니다. JumpToSection 을 사용하게 되면 애님 몽타주 내부에서 해당 지점으로 바로 점프해버리다보니 점프 직전 프레임과 이후 프레임간의 모션 차이가 클 경우 상당히 눈에 띄더라구요. 그래서 각 콤보 공격의 단계를 개별 애니메이션 몽타주로 제작하고 다음 콤보 입력시 개별 애니메이션 몽타주 재생을 해봤는데 이 경우는 애니메이션 블렌딩이 되어 자연스럽게 이어지는것 처럼 보였습니다. 여기서 질문인데, JumpToSection 이 직전/직후 프레임간의 애니메이션 블렌딩이 불가능하다면 실제 프로젝트에서는 어떤 상황에서 사용하게 되는지 궁금합니다. 감사합니다.

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
Kyoungsoo Nam 댓글 1 좋아요 0 조회수 129

PossessedBy() 함수는 싱글플레이에서는 호출되지 않나요?

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

PossessedBy 함수가 서버에서만 호출된다면, 싱글플레이용 게임에서는 어느 위치에서 Character 의 ASC 에 PlayerState 의 ASC 를 대입하는게 적절할지 궁금합니다.

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
댓글 2 좋아요 0 조회수 182

SetTimer

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

안녕하세요. 혼자 게임을 만들어보다가 타이머 함수에 대해 궁금한게 생겨 질문을 드립니다. SetTimer(FTimerHandle& InOutHandle, UserClass* InObj, typename FTimerDelegate::TMethodPtr< UserClass > InTimerMethod, float InRate, bool InbLoop = false, float InFirstDelay = -1.f) SetTimer 함수의 인자를 살펴보면 InFirstDelay라고 있는데 이건 무슨 변수인가요? 구글에서 찾아보니 최초 실행 시 대기 시간이라고 하던데 만약 2로 설정되어 있다면 2초 뒤에 타이머가 실행이 된다는 소리인가요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
ajkdfj 댓글 1 좋아요 0 조회수 100

Scene과 SceneManager 강의 수강 중 키보드 입력 오류

해결됨

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

Scene과 SceneManager 강의 수강 중 키보드 입력 오류가 있어서 문의드리게 되었습니다. DevScene의 Update()에서 키보드 입력을 받을 때 강의와 똑같이 코드를 입력했음에도 불구하고 콘솔창에서는 한쪽 방향으로만 오브젝트가 움직입니다. (만약 A를 입력하면 A로만 움직임.) 혹시 원인이 뭔지 알 수 있을까요?

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
꿈꾸는 프로그래머 댓글 1 좋아요 0 조회수 169

Window API 강의 수강 중 LARGE_INTEGER 타입 변환 오류

해결됨

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

안녕하세요! 10주차의 Window API 강의를 듣던 중 TimeManager.cpp에서 QueryPerformanceFrequency와 QueryPerformanceCounter메서드에 LARGE_INTEGER 타입으로 변환해서 인자를 넘겨주는 과정에서 오류가 있었는데 해결 과정을 문의하고 싶습니다. Types.h에 문제가 있을까 싶어서 찾아봤지만, 별다른 이상이 없어서 원인을 모르겠습니다.

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
꿈꾸는 프로그래머 댓글 3 좋아요 0 조회수 239

CommitAbility 함수 관련 질문

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

안녕하세요 교수님. 5.4.4 버전으로 강의를 듣고 있는데, 계속해서 Cost 옵션과 CoolDown이 적용되지 않아 이것저것 찾아보다가 ActivateAbility부분에 해당 코드가 있는것을 발견했습니다. if (!CommitAbility(Handle, ActorInfo, ActivationInfo)) { EndAbility(Handle, ActorInfo, ActivationInfo, false, true); return; } 해당 코드를 넣고 난 후 정상적으로 cost와 cooldown이 적용되었습니다. 해당 함수는 어떤 기능을 하는 함수인지 궁금합니다.

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
eric1306 댓글 2 좋아요 0 조회수 216

새 리타겟 포즈 생성이 안됩니다.

해결됨

[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문

20:27 에서 뉴 포즈 생성에 성공하신분 계신가요?

  • unreal-engine
  • ue-blueprint
hush park 댓글 0 좋아요 0 조회수 155

15:08 에서 기본 블렌드가 보이지 않습니다.

해결됨

[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문

blend 를 따라 검색해보니 blend 기본형이 나타나지 않습니다. 버전업이 되면서 사라진걸까요...?

  • unreal-engine
  • ue-blueprint
hush park 댓글 2 좋아요 0 조회수 179

12:26 에서 왜 CurrentHp = MaxHp; 를 생성자와 BeginPlay 에서 중복해서 작성하는지 궁금합니다

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

생성자가 BeginPlay보다 먼저 실행되고, 양쪽 다 초기화할때 최초에 실행되는 코드라는건 알고있지만, 왜 굳이 같은 코드를 중첩해서 작성하는지 궁금합니다. 안정성 체크같은 특정한 이유가 있을까요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
inv 댓글 2 좋아요 0 조회수 183

가스 입력함수 AbilityLocalInputPressed() , 태그

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

교수님 안녕하세요. 복습하려고 필요한 부분들만 보고 있습니다. 궁금한게 있어서요. (질문해도되나요? ) 가스용 입력함수가 따로 있다고 들었는데, AbilityLocalInputPressed() 함수는 사용하는데 어떤 장단점이 있는지 아시나요? 아레나 플젝에서는 입력바인딩은 네이티브함수로 다 되있어서요. 태그는 매틱마다 반드시 검사할수밖에 없을까요? 태그로 상태,조건을 하는데 너무 많이 쓰면 오버헤드가 생긴대서요. 아니면, 태그 사용을 어느정도까지 사용이 안전한지 디버깅이 될까요?

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
eunjeong seo 댓글 2 좋아요 0 조회수 159

비교연산 관련 문제.

미해결

[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트

문자열 비교를 하고싶은데, C++에선 Compare가 있어서 손쉽게 될줄알았는데, 생각보다 잘되지 않았습니다. ex) (abcd == Abcd) = false; 찾은결과 1. Equal, Case Insensitive를 off로 만들면 비교를 한다고하는데 Details 패널쪽에도 체크박스가 없음. 2. 아스키 코드값으로 바꿔서 int값을 비교하려고함. SubString->GetCharacter as Number ->Sum+=ASCII코드값. 방법이 틀린건지 잘 되지 않았습니다..ㅜ 방법이 있을까요?

  • unreal-engine
  • ue-blueprint
빠직.. 댓글 2 좋아요 0 조회수 187

리타게터 익스포트 후 얼굴이...?

미해결

[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문

리타게팅 중에는 문제 없고 애니메이션도 잘 연동되는데.. 문제는 익스포트 한 후입니다.. Face Attach 부분이 UE4 마네킹에는 없어서 그런건지 어떤지 어떤지 모르겠네요. 근데 리타게터에선 이상없던게 어째서 익스포트 후에 이렇게 바뀔까요? 다양한 방법으로 시도해보고 있습니다만 아직 혼자 해결하지 못해서 질문 남겨봅니다.

  • unreal-engine
  • ue-blueprint
부공열심히 댓글 2 좋아요 1 조회수 323

Infinity Blade: Warriors를 다운 에러

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

4강 수업을 위해 Infinity Blade: Warriors를 다운받으려고 하는데 fab으로 바뀌어서 검색이 되지 않습니다. 자료다운을 통해 Github에서 언리얼에디터파일을 다운받았으나 에디터가 실행은 되나 Animation폴더 내 애셋 전체가 에러가 나면서 실행되지 않습니다. 또한 Animation폴더를 다른 언리얼에디터 프로젝트로 migration하거나 직접 content폴더내로 이동해도 계속 에러가 납니다. Infinity Blade: Warriors 파일을 다운 받도록 도와주세요~

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
댓글 2 좋아요 0 조회수 410

안녕하세요 구구단 관련해서요

미해결

[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트

이렇게 알려 주신 거랑 조금 다르게 각 세팅값을 a,b get으로 넣고 해봤는데 b값은 +1이 되는데 a값이 +1이 안되더라고요 그래서 2*1=2 2*2=4 ~ 2*9=18 하고 끝나버려요 만약 b도 안 늘어나면 세팅값을 get으로 넣어버려서 안되는구나 하겠는데 아니 이게 왜 b값은 올라가고 a값은 안올라가죠?

  • unreal-engine
  • ue-blueprint
오왕좌왕 댓글 2 좋아요 0 조회수 155

GA에서 Attribute를 가져올때 발생하는 C6011 Warning과 관련하여 질문드립니다.

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

안녕하세요 교수님. 좋은 퀄리티의 강의를 제공해주셔서 정말 감사드립니다. 저는 현재 언리얼 엔진 5.4.4, Visual Studio 2022 17.12.3 버전으로 강의를 수강하고 있습니다. 다름이 아니고 "6강 : 캐릭터 어트리뷰트 설정"의 35분 즈음에 Source와 Target의 AbilitySystemComponent를 가져오고, 해당 ASC에서 AttirbuteSet을 가져오는 부분을 구현하던 도중, 초록색 줄이 나오면서 C6011 Warning이 발생하였습니다. https://learn.microsoft.com/ko-kr/cpp/code-quality/c6011?view=msvc-170 이는 null포인터 역참조에 의한 경고임을 확인했습니다. 근데, SourceASC의 경우 checked 함수를 통해서 점검하고 가져오기 때문에 null포인터가 발생할 수 없지 않나요? 아니면 check함수가 unreal에서만 사용하는 함수이기 때문에 C++은 이를 인지하지 못하여 저렇게 디레퍼런싱 경고를 띄워주는 것일까요?

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
eric1306 댓글 2 좋아요 0 조회수 129

BT 데코레이터 문제

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

안녕하세요. 강의를 완강하고 다시금 따라하며 게임을 제작해보고 있는 한 학생입니다. 강의와 크게 상관은 없지만 질문해봅니다. Selector를 통해서 공격범위에 있다면 Attack을 아니라면(inverse) Move to하게 했습니다. 근데 제가 하고 싶은 건 공격범위 안에 들어가는 즉시 공격을 하고 싶은데(CheckAttackRange에서 공격사거리 측정) 지금은 무조건 Target의 위치까지 Move to 한 뒤에 Attack 을 하게 됩니다. Move to 위에있는 CheckAttakcRange(inverse)에 옵션으로 Observer Aborts을 self로 해봐도 결과는 동일합니다. 어떤 이유로 인해 발생하는지 계속 고민해봐도 모르겠어서 질문 드립니다.

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
qmal789 댓글 3 좋아요 0 조회수 152

인기 태그

인프런 TOP Writers

주간 인기글