묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결언리얼 엔진 5 스파르타 클래스 [Part2 심화편]
본 별로 레이어로 블렌딩할 때
본 별로 레이어로 블렌딩 합니다 노드에Base Pose에는 Main States 포즈를 넣어주는 것을 알겠는데Default Slot 슬롯에는 왜 소스 포즈로 Main States가 연결되어야 하나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
지역변수와 관련해서 궁금한점이 있습니다
// 예시 1 : 지역변수를 함수 내에서 선언하고 사용 void ASample::Tick(float DeltaTime) { Super::Tick(DeltaTime); FVector Direction = GetActorLocation(); } ------------------------------------- // 예시 2 : 헤더파일에서 FVector Direction 선언 void ASample::Tick(float DeltaTime) { Direction = GetActorLocation(); } ```프로그래밍에 익숙하지 않아 궁금한 내용을 질문드립니다.반복해서 호출되는 경우, 이렇게 지역변수 안에 선언하는 것과, 헤더파일에서 선언하고 함수 내에서는 값만 대입하는것. 두 방법간에 비용(성능) 차이가 나나요? 두 방식이 섞여서 사용되는것 같아서 질문드립니다 (해당 변수의 사용은 지역변수 안에서만 사용한다고 가정)
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
Root 컴포넌트와 기즈모
안녕하세요2-3강 '게임플레이 프레임워크' 에 7분15초 부분에서 Body를 DefaultSceneRoot 로 끌어다 놓는 부분이 있는데요, 이렇게 해보니 Body에서 보이던 기즈모가 안보이게 되고 우측 상단에서 마우스로 직접 기즈모를 클릭해도 적용이 안되더라구요.혹시 이유가 무엇인지 알 수 있을까요? 메쉬 그 자체는 Root컴포넌트가 되면 기즈모로 조절이 불가능해지니 앞으로는 피해야 하나요? * 강의 후반부에 다시 DefaultSceneRoot 생성하는거 뒤늦게 확인했습니다!
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
Gameplayability vs Gameplaycue
여러 계산식(방향 , 상태 체크 )이 들어간 hitreaction을 구현하려고 합니다. Gameplayability 과 Gameplaycue 중 어느 구현방식이 최적화와 서버 비용 절감에 도움이 될까요? GameplayAbility로 계산식을 구현하고 ability안에서 cue를 사용해 애니메이션을 실행시키는게 좋을까요? 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
27분에서 헤더 파일에서 #include 이유
헤더에서 상호 참조 또는 컴파일이 오래걸리는 것을 방지하려고 class로 전방선언하여 작업하는 것으로 이해하고 따라하고있는데, 여기서는 헤더에서 클래스를 include하여 작업하는 이유는 무엇일까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
[강의명: virtual 소멸자] 자식 클래스의 소멸자에도 virtual 을 붙이시는 이유가 궁금합니다
#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를 통해 둘 다 붙이는게 좋은지 부모 클래스에만 붙이는게 좋은지 질문해봤는데 부모 클래스에만 붙여도 문제가 없다고 답변을 받았습니다. 근데 루키스님께서 둘 다 붙이는 이유가 분명 있으실탠데 그 이유가 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 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 의 부모 클래스를 제가 만든 클래스로 설정을 하니 다시 안 움직입니다. 코드 문제인 거 같은데 뭐가 문제인걸까요..
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
패키징에 관한 질문입니다
UATHelper: Packaging (Windows): Running AutomationTool...UATHelper: Packaging (Windows): Using bundled DotNet SDK version: 6.0.302UATHelper: 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 -nocompileuatUATHelper: 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.exeUATHelper: 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 SUCCESSFULUATHelper: Packaging (Windows): Setting up ProjectParams for D:\UnrealGame\Test\Test.uprojectUATHelper: 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.txtUATHelper: Packaging (Windows): No target name was specified on the command-line.UATHelper: Packaging (Windows): Took 0.30s to run dotnet.exe, ExitCode=6UATHelper: 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 2sUATHelper: Packaging (Windows): AutomationTool exiting with ExitCode=6 (6)UATHelper: Packaging (Windows): BUILD FAILEDPackagingResults: Error: Unknown Error 패키징이 안되는데 무슨 문제일까요???
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
콤보 애니메이션 몽타주의 MontageJumpToSection에 대하여
안녕하세요. 하나의 콤보 애니메이션 몽타주에서 섹션으로 점프하는 방식으로 강의 내용이 진행되고 있는데요. 강의 프로젝트 재확인하는 느낌으로 개인 프로젝트를 조금씩 진행하고 있는 중 콤보 공격을 넣기 위해 강의 내용따라 애니메이션 몽타주를 만들었습니다. JumpToSection 을 사용하게 되면 애님 몽타주 내부에서 해당 지점으로 바로 점프해버리다보니 점프 직전 프레임과 이후 프레임간의 모션 차이가 클 경우 상당히 눈에 띄더라구요. 그래서 각 콤보 공격의 단계를 개별 애니메이션 몽타주로 제작하고 다음 콤보 입력시 개별 애니메이션 몽타주 재생을 해봤는데 이 경우는 애니메이션 블렌딩이 되어 자연스럽게 이어지는것 처럼 보였습니다. 여기서 질문인데, JumpToSection 이 직전/직후 프레임간의 애니메이션 블렌딩이 불가능하다면 실제 프로젝트에서는 어떤 상황에서 사용하게 되는지 궁금합니다. 감사합니다.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
PossessedBy() 함수는 싱글플레이에서는 호출되지 않나요?
PossessedBy 함수가 서버에서만 호출된다면, 싱글플레이용 게임에서는 어느 위치에서 Character 의 ASC 에 PlayerState 의 ASC 를 대입하는게 적절할지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
SetTimer
안녕하세요. 혼자 게임을 만들어보다가 타이머 함수에 대해 궁금한게 생겨 질문을 드립니다.SetTimer(FTimerHandle& InOutHandle, UserClass* InObj, typename FTimerDelegate::TMethodPtr< UserClass > InTimerMethod, float InRate, bool InbLoop = false, float InFirstDelay = -1.f)SetTimer 함수의 인자를 살펴보면 InFirstDelay라고 있는데 이건 무슨 변수인가요?구글에서 찾아보니 최초 실행 시 대기 시간이라고 하던데 만약 2로 설정되어 있다면 2초 뒤에 타이머가 실행이 된다는 소리인가요?
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Scene과 SceneManager 강의 수강 중 키보드 입력 오류
Scene과 SceneManager 강의 수강 중 키보드 입력 오류가 있어서 문의드리게 되었습니다.DevScene의 Update()에서 키보드 입력을 받을 때 강의와 똑같이 코드를 입력했음에도 불구하고콘솔창에서는 한쪽 방향으로만 오브젝트가 움직입니다. (만약 A를 입력하면 A로만 움직임.)혹시 원인이 뭔지 알 수 있을까요?
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Window API 강의 수강 중 LARGE_INTEGER 타입 변환 오류
안녕하세요!10주차의 Window API 강의를 듣던 중 TimeManager.cpp에서 QueryPerformanceFrequency와 QueryPerformanceCounter메서드에 LARGE_INTEGER 타입으로 변환해서 인자를 넘겨주는 과정에서 오류가 있었는데 해결 과정을 문의하고 싶습니다. Types.h에 문제가 있을까 싶어서 찾아봤지만, 별다른 이상이 없어서 원인을 모르겠습니다.
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
CommitAbility 함수 관련 질문
안녕하세요 교수님.5.4.4 버전으로 강의를 듣고 있는데, 계속해서 Cost 옵션과 CoolDown이 적용되지 않아 이것저것 찾아보다가 ActivateAbility부분에 해당 코드가 있는것을 발견했습니다.if (!CommitAbility(Handle, ActorInfo, ActivationInfo)) { EndAbility(Handle, ActorInfo, ActivationInfo, false, true); return; }해당 코드를 넣고 난 후 정상적으로 cost와 cooldown이 적용되었습니다.해당 함수는 어떤 기능을 하는 함수인지 궁금합니다.
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
새 리타겟 포즈 생성이 안됩니다.
20:27 에서 뉴 포즈 생성에 성공하신분 계신가요?
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
15:08 에서 기본 블렌드가 보이지 않습니다.
blend 를 따라 검색해보니 blend 기본형이 나타나지 않습니다. 버전업이 되면서 사라진걸까요...?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
12:26 에서 왜 CurrentHp = MaxHp; 를 생성자와 BeginPlay 에서 중복해서 작성하는지 궁금합니다
생성자가 BeginPlay보다 먼저 실행되고, 양쪽 다 초기화할때 최초에 실행되는 코드라는건 알고있지만, 왜 굳이 같은 코드를 중첩해서 작성하는지 궁금합니다. 안정성 체크같은 특정한 이유가 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
가스 입력함수 AbilityLocalInputPressed() , 태그
교수님 안녕하세요.복습하려고 필요한 부분들만 보고 있습니다.궁금한게 있어서요. (질문해도되나요? ) 가스용 입력함수가 따로 있다고 들었는데,AbilityLocalInputPressed() 함수는 사용하는데 어떤 장단점이 있는지 아시나요? 아레나 플젝에서는 입력바인딩은 네이티브함수로 다 되있어서요.태그는 매틱마다 반드시 검사할수밖에 없을까요? 태그로 상태,조건을 하는데 너무 많이 쓰면 오버헤드가 생긴대서요. 아니면, 태그 사용을 어느정도까지 사용이 안전한지 디버깅이 될까요?
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
비교연산 관련 문제.
문자열 비교를 하고싶은데, C++에선 Compare가 있어서 손쉽게 될줄알았는데,생각보다 잘되지 않았습니다.ex) (abcd == Abcd) = false;찾은결과1. Equal, Case Insensitive를 off로 만들면 비교를 한다고하는데 Details 패널쪽에도 체크박스가 없음.2. 아스키 코드값으로 바꿔서 int값을 비교하려고함.SubString->GetCharacter as Number ->Sum+=ASCII코드값. 방법이 틀린건지 잘 되지 않았습니다..ㅜ방법이 있을까요?
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
리타게터 익스포트 후 얼굴이...?
리타게팅 중에는 문제 없고 애니메이션도 잘 연동되는데..문제는 익스포트 한 후입니다.. Face Attach 부분이 UE4 마네킹에는 없어서 그런건지 어떤지 어떤지 모르겠네요. 근데 리타게터에선 이상없던게 어째서 익스포트 후에 이렇게 바뀔까요? 다양한 방법으로 시도해보고 있습니다만 아직 혼자 해결하지 못해서 질문 남겨봅니다.