묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
하위 레벨...?? High Level 말씀하신거죠..??
9:57 부근 자막에언리얼 엔진의 통신은 크게 하위 레벨과 로우 레벨로 나눌 수 있다고 하셨는데 둘 다 같은 뜻 아닌가.. 하고 엄청 헷갈렸어요하위가 아니라 High 맞죠..?
-
미해결[입문자를 위한 UE5] Part5. 언리얼 엔진 VR
vr프리뷰가 안돼요
하라는대로 meta quest link 프로그램 다운로드하고 계정 가입하고 기본으로 설정했는데 vr프리뷰가 안돼요 제발........
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
CompressedFlags를 이용한 InputThrottle, InputSteering 전달 방법 질문
기본적으로 지원하는 단순 이동이 아니라 자동차처럼 Throttle와 Steering을 구현하려고 합니다.알려주신 방법을 응용해 다음과 같이 구현했습니다. USTRUCT(BlueprintType, Blueprintable) struct FDriveInput { GENERATED_BODY() UPROPERTY(VisibleAnywhere, BlueprintReadOnly) float Throttle = 0.0f; UPROPERTY(VisibleAnywhere, BlueprintReadOnly) float Steering = 0.0f; uint8 GetCompressedFlags() const { uint8 Compressed = 0; int32 ThrottleBits = FMath::Clamp(FMath::CeilToInt((Throttle + 1.0f) * 7.5f), 0, 15); int32 SteeringBits = FMath::Clamp(FMath::CeilToInt((Steering + 1.0f) * 7.5f), 0, 15); Compressed |= (ThrottleBits << 4); Compressed |= (SteeringBits & 0x0F); return Compressed; } void SetFromCompressedFlags(uint8 Flags) { int32 ThrottleBits = (Flags >> 4) & 0x0F; int32 SteeringBits = Flags & 0x0F; Throttle = (float(ThrottleBits) / 7.5f) - 1.0f; Steering = (float(SteeringBits) / 7.5f) - 1.0f; } }; FNetworkPredictionData_Client_TitanCharacter::FNetworkPredictionData_Client_TitanCharacter(const UCharacterMovementComponent& ClientMovement) : Super(ClientMovement) { } FSavedMovePtr FNetworkPredictionData_Client_TitanCharacter::AllocateNewMove() { return FSavedMovePtr(new FSavedMove_TitanCharacter); } void FSavedMove_TitanCharacter::Clear() { Super::Clear(); DriveInput.Steering = 0.0f; DriveInput.Throttle = 0.0f; } void FSavedMove_TitanCharacter::SetInitialPosition(ACharacter* Character) { Super::SetInitialPosition(Character); UTitanCharacterMovementComponent* Movement = Cast<UTitanCharacterMovementComponent>(Character->GetCharacterMovement()); if (Movement) { DriveInput = Movement->DriveInput; } } uint8 FSavedMove_TitanCharacter::GetCompressedFlags() const { uint8 Result = Super::GetCompressedFlags(); Result |= DriveInput.GetCompressedFlags(); return Result; } } void UTitanCharacterMovementComponent::OnMovementUpdated(float DeltaSeconds, const FVector& OldLocation, const FVector& OldVelocity) { UpdateWithDriveState(DeltaSeconds, DriveFlow.DriveState); } void UTitanCharacterMovementComponent::UpdateFromCompressedFlags(uint8 Flags) { Super::UpdateFromCompressedFlags(Flags); DriveInput.SetFromCompressedFlags(Flags); } UpdateWithDriveState 는 실제 캐릭터가 InputThrottle와 InputSteering을 가지고 움직이는 부분입니다.이렇게 하니까 다른 플래그와 겹쳐 아무런 입력을 하지 않았는데 점프를 한다거나, 손실압축의 특성때문에 입력을 하지 않아도 0이 아닌 다른 값이 전달되는 문제가 있었습니다.관련해서 도움을 받고 싶습니다. VehicleMovementComponent도 알아봤는데, CharacterMovementComponent를 확장해서 만들 수 있는 방법은 없는건가요?제가 찾아보면 좋을 법한 키워드 또는 해결방법을 알고 싶습니다.
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
스페이스바(공격키)를 누르면 공격이 두 번 되는게 정상인가요?
안녕하세요! 뒤늦게 게임개발에 빠져서 퇴근 후 틈틈히 루키즈님 강의 듣고 있는 직장인입니다! 현재 11강 State 패턴까지 들은 상태인데요. 캐릭터가 Idle 상태일 때, 스페이스바(공격키)를 누르면 공격 모션을 두 번 합니다. 원래 이게 정상인가요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
컴포지션 구현 방법에 대한 질문
컴포지션을 만드는 방식 중에서 생성자에서 미리 언리얼 오브젝트를 생성해 조합하는 방법은 실습을 통해 알았지만, 빈 포인터만 넣고 런타임에서 언리얼 오브젝트를 생성해 조합하는 방법은 어떤 식으로 하는 건지 모르겠습니다. 이 부분도 알려주세요!!
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
인코딩 관련
현재 설정이 UTF-8로 되어있는데 소스코드 최초 실행시 주석이 다 깨져서 나와서 무슨 문제인지 모르겠네요 ㅠ
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
ABP의 skeleton 오류
Git에서 https://github.com/ideugu/UnrealGAS1/tree/main다운받아서 실행하는데 에디터 실행을 누르면 Anim Blueprint 'ABP_ABCharacter'의 skeleton을 찾을 수 없다고 나오면서 실행이 안 됩니다.
-
해결됨[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
섹션 4. 근접 콤보 스킬에서 콤보 동작이 안되네요
강의 내용대로 파일 복사, 코드 수정하고 빌드 정상 완료되어 실행까지 잘 됩니다. 아래 NotifyBegin 부분에 브레이크 포인트를 걸어 보았는데 이 부분이 실행이 되지 않습니다.void UD1AnimNotifyState_SendGameplayEvent::NotifyBegin(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation, float TotalDuration, const FAnimNotifyEventReference& EventReference){ Super::NotifyBegin(MeshComp, Animation, TotalDuration, EventReference); if (BeginEventTag.IsValid()) { UAbilitySystemBlueprintLibrary::SendGameplayEventToActor(MeshComp->GetOwner(), BeginEventTag, EventData); }} 어느 부분을 확인해 봐야 할까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
인풋시스템 코드설명
코드설명이 부족한거같은데 이후에 자세히알려주시는지요.서브시스템이라던가
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
클래스 상속
첫번째 질문강의에서는 새로운 클래스 3개를 만들어서 Visual studio 안에서 상속을 해주셨는데, 이런식으로 Child Class를 만들어도 똑같은지, 혹은 차이점이 있다면 어떠한 차이점이 있는지 궁금합니다. 두번째 질문DoLesson함수 같은 경우 UFUNCTION() 매크로를 지정해주셨는데 getter 함수와 setter 함수에는 UFUNCTION() 매크로를 지정을 안해도 되는지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
모듈을 추가한 이유를 정확하게 모르겠습니다.
15분 35초쯤PublicIncludePaths.AddRange로 주모듈인 ArenaBattle을 추가해주셨는데 라이브 코딩에서 어떠한 이유로 경로가 안맞는지 궁금하고, 이를 위해서 왜 모듈을 추가하셨는지 자세하게 알고싶습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
빌드오류
Build started at 오전 3:06...1>------ Build started: Project: ScriptGeneratorUbtPlugin.ubtplugin, Configuration: Development Any CPU ------2>------ Skipped Build: Project: UE5, Configuration: BuiltWithUnrealBuildTool Win64 ------2>Project not selected to build for this solution configuration 3>------ Build started: Project: UE5Rules, Configuration: Development Any CPU ------4>------ Build started: Project: ArenaBattle, Configuration: DebugGame_Editor x64 ------4>Using bundled DotNet SDK version: 6.0.3021>ScriptGeneratorUbtPlugin.ubtplugin -> C:\Program Files\Epic Games\UE_5.4\Engine\Binaries\DotNET\UnrealBuildTool\Plugins\ScriptGeneratorUbtPlugin\ScriptGeneratorUbtPlugin.dll4>Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" ArenaBattleEditor Win64 DebugGame -Project="D:\Unreal Projects\inflearn\ArenaBattle\ArenaBattle.uproject" -WaitMutex -FromMsBuild -architecture=x644>Log file: C:\Users\ljy57\AppData\Local\UnrealBuildTool\Log.txt4>Using 'git status' to determine working set for adaptive non-unity build (D:\Unreal Projects\inflearn\ArenaBattle).4>Building ArenaBattleEditor...4>Using Visual Studio 2022 14.38.33144 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).4>Determining max actions to execute in parallel (8 physical cores, 16 logical cores)4> Executing up to 8 processes, one per physical core4>Using Parallel executor to run 5 action(s)4>------ Building 5 action(s) started ------3>C:\Program Files\Epic Games\UE_5.4\Engine\Source\Programs\Shared\EpicGames.Horde\EpicGames.Horde.csproj : warning NU1903: Package 'Microsoft.Extensions.Caching.Memory' 6.0.1 has a known high severity vulnerability, https://github.com/advisories/GHSA-qj66-m88j-hmgj3>Done building project "EpicGames.Oodle.csproj".3>UE5Rules -> C:\Program Files\Epic Games\UE_5.4\Engine\Intermediate\Build\BuildRulesProjects\UE5Rules\bin\Development\UE5Rules.dll5>------ Build started: Project: UE5ProgramRules, Configuration: Development Any CPU ------5>UE5ProgramRules -> C:\Program Files\Epic Games\UE_5.4\Engine\Intermediate\Build\BuildRulesProjects\UE5ProgramRules\bin\Development\UE5ProgramRules.dll4>[1/5] Compile [x64] ABCharacterBase.cpp4>C:\Program Files\Epic Games\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): error C2664: 'void ConstructorHelpers::ValidateObject(UObject ,const FString &,const TCHAR )': cannot convert argument 1 from 'TObjectPtr<T>' to 'UObject *'4> with4> [4> T=UABCharacterControlData4> ]4>C:\Program Files\Epic Games\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called4>C:\Program Files\Epic Games\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(193): note: see declaration of 'ConstructorHelpers::ValidateObject'4>C:\Program Files\Epic Games\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): note: while trying to match the argument list '(TObjectPtr<T>, FString, const TCHAR *)'4> with4> [4> T=UABCharacterControlData4> ]4>C:\Program Files\Epic Games\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): note: the template instantiation context (the oldest one first) is4>D:\Unreal Projects\inflearn\ArenaBattle\Source\ArenaBattle\Character\ABCharacterBase.cpp(49): note: see reference to class template instantiation 'ConstructorHelpers::FObjectFinder<UABCharacterControlData>' being compiled4>C:\Program Files\Epic Games\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(84): note: while compiling class template member function 'ConstructorHelpers::FObjectFinder<UABCharacterControlData>::FObjectFinder(const TCHAR *,uint32)'4>D:\Unreal Projects\inflearn\ArenaBattle\Source\ArenaBattle\Character\ABCharacterBase.cpp(49): note: see the first reference to 'ConstructorHelpers::FObjectFinder<UABCharacterControlData>::FObjectFinder' in 'AABCharacterBase::AABCharacterBase'4>[2/5] Compile [x64] ABCharacterPlayer.cpp4>Total time in Parallel executor: 12.07 seconds4>Total execution time: 13.25 seconds4>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.4\Engine\Build\BatchFiles\Build.bat" ArenaBattleEditor Win64 DebugGame -Project="D:\Unreal Projects\inflearn\ArenaBattle\ArenaBattle.uproject" -WaitMutex -FromMsBuild -architecture=x64" exited with code 6.4>Done building project "ArenaBattle.vcxproj" -- FAILED.========== Build: 3 succeeded, 1 failed, 45 up-to-date, 1 skipped ==================== Build completed at 오전 3:06 and took 13.983 seconds ==========코드는 틀린게 없고 오류도 안뜨는데 빌드가 되지 않습니다.
-
해결됨[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
프로젝트 파일 생성은 됐는데 .vcxproj 파일들이 없어요
안녕하세요! 환경설정에서 받은 Lyra 기반 프로젝트 실행에 대해서 질문이 있어요.제가 D1.uproject 기준으로 VS 프로젝트 파일을 생성하고 D1.sln을 켜서 빌드하려고 했는데 몇 가지 막히는 부분이 있어서 도움을 받고 싶습니다!.sln 파일을 열면 D1.vcxproj, LyraGameEOS.vcxproj, LyraServerEOS.vcxproj, UE5.vcxproj 파일들을 못 찾는다고 에러가 납니다.실제로 Intermediate/ProjectFiles 폴더를 확인해보면 해당 .vcxproj 파일들이 존재하지 않고요.Source/ 폴더에 LyraGameEOS.Target.cs나 LyraServerEOS.Target.cs 같은 파일은 있는데, 정작 Source/LyraGameEOS/, Source/LyraServerEOS/ 폴더랑 .Build.cs 파일은 없어요.제가 뭔가 빼먹은 세팅이 있는 걸까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
ConstructorHelpers::FObjectFinder 컴파일 오류
예제에 30분 경에 등장한 ConstructorHelpers::FObjectFinder 를 따라해보고 있습니다.ACollidingPawn::ACollidingPawn(){...static ConstructorHelpers::FObjectFinder<UStaticMesh> SphereVisualAsset(TEXT("/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere"));...}와 같이 사용했는데 다음과 같은 컴파일 오류가 나옵니다. >C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): error C2664: 'void ConstructorHelpers::ValidateObject(UObject ,const FString &,const TCHAR )': cannot convert argument 1 from 'TObjectPtr<UStaticMesh>' to 'UObject *'1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(193): note: see declaration of 'ConstructorHelpers::ValidateObject'1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): note: while trying to match the argument list '(TObjectPtr<UStaticMesh>, FString, const TCHAR *)'1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): note: the template instantiation context (the oldest one first) is1>C:\projects\unreal4sample\Unreal5Project\Example\UdnTutorial\HowTo_Components\Source\HowTo_Components\CollidingPawn.cpp(32): note: see reference to class template instantiation 'ConstructorHelpers::FObjectFinder<UStaticMesh>' being compiled1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(84): note: while compiling class template member function 'ConstructorHelpers::FObjectFinder<UStaticMesh>::FObjectFinder(const TCHAR *,uint32)'1>C:\projects\unreal4sample\Unreal5Project\Example\UdnTutorial\HowTo_Components\Source\HowTo_Components\CollidingPawn.cpp(32): note: see the first reference to 'ConstructorHelpers::FObjectFinder<UStaticMesh>::FObjectFinder' in 'ACollidingPawn::ACollidingPawn' TObjectPtr 와 UObject* 와 관련된형변환 문제로 나오는데, 어떤 차이로 인해 예제와 달리 오류가 나는 걸까요?
-
미해결[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
MaxWalkSpeed가 0으로 고정되는 문제 관련 질문드립니다
Interaction1, 또는 2 코드 이주 후 캐릭터가 움직이지 않는 문제가 있어서 원인을 쭉 분석해보니 CharacterMovementComponent의 MaxWalkSpeed가 0으로 세팅되어 있는 것을 발견했습니다.게임 실행 후 에디터에서 직접 값을 올려서 움직여보면, 클라에서 잠시 움직이려다가 서버에서 검증로직이 돌아가 다시 제자리로 돌아가는 듯한 모습이 보여서 서버 사이드에서 정상적으로 초기화하지 않거나 replication되지 않은 것 같았습니다.추가로 발견한 특이 사항으로는 UPackageMapClient::SerializeNewActor 함수에서 Actor = World->SpawnActorAbsolute 를 진행할 B_HeroCharacter_Base_C의 생성자 자체에서는 600이란 값으로 잘 초기화되지만 SpawnInfo.Template (FActorSpawnParameters) 에 들어간 애의 MaxWalkSpeed 값은 0으로 되어있는 바람에 최종적으로 0으로 세팅되는 것까지 확인했습니다.뭔가 저 값이 0으로 오는 원인이 있을 것 같은데, attribute set이 잘못되었는지 관련 값을 세팅해주는 초기 GameplayEffect를 지정해주지 않은 것인지 정확한 원인을 찾는데 난항을 겪고 있어서, 혹시 관련하여 어느 부분을 보는 것이 좋을지 질문 드립니다.
-
미해결[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
캐릭터 possess 문제인지 질문 드립니다
에디터에서 play 버튼을 누를 시 캐릭터 anim montage가 잠깐 실행되다가 중간에 멈추고 그 이후부터 입력은 들어가지만 애니메이션은 재생되지 않습니다.다만 월드에 스폰된 B_Hero_Gladiator를 에디터에서 클릭하면, 그때부턴 정상적으로 애니메이션이 재생됩니다.혹시 이러한 현상을 수정하기 위해서는, 어느 부분을 살펴보면 좋을까요?문제 상황 영상 링크 드립니다.https://drive.google.com/file/d/1aoWAUmri52KgmVs6AH1FgmRFLBeNbH7x/view?usp=drive_link
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
람다식 [] 안에 &를 넣는 이유를 잘 모르겠습니다.
아직 제가 람다식에 대한 개념이 잡혀있지 않은 상태입니다.34분 58초 여기 부분에서 필요한 값으로 TFunction<void()>가 되어있어서 람다식이 필요하구나 라는것은 이해하였고, 그 전에 사용했던 방식으로 () 안에는 매개변수를 넣는구나 그런거는 이해하고 있습니다만 []안에 & 레퍼런스 기호를 사용하는 이유를 잘 모르겠습니다.혹시 이유와 또 다른 기호가 어떤게 들어가는 지 알 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
GetRandomPointInNavigableRadius
GetRandomPointInNavigableRadius(Origin, PatrolRadius, NextPatrolPos)이 코드에서 Origin이 중심점이라는 것은 이해를 했는데 PatrolRadius과는 무슨 관계인건지 모르겠습니다..중심점을 기준으로 PatrolRadius 반경 내에 랜덤한 위치를 NextPatrolPos에 넣는다고 이해를 했는데 제가 이해한 게 맞는 건가요? Origin을 기준으로 반지름 내에서만 랜덤하게 이동을 한다라는 말인지 궁금합니다.그리고 AI가 플레이어를 쫓아다니다가 놓치면, PatrolRadius를 벗어난 위치에 있을 수도 있는데 이러한 경우에서도 Origin을 기준으로 랜덤한 위치를 찾는 건가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Capsule의 HalfHeight에 관하여
안녕하세요.강의 잘 듣고 있습니다.6강 캐릭터 공격 판정 강의에서 공격 트레이스를 시각적으로 보기 위해 DrawDebugCapsule을 사용하는 부분에서 HalfHeight가 반구를 제외한 원기둥 절반 높이라고 하셨던것 같은데, 제가 10강에서 무기를 얻었을 때 공격범위가 분명 증가하였는데도 DrawDebugCapsule로 보이는 범위는 차이가 없어 디버깅 및 여러 테스트를 해본 결과 HalfHeight는 반구를 포함한 캡슐의 세로 전체 높이의 절반인것 같습니다. 따라서 AttackRadius보다 작은 HalfHeight가 들어오면 그냥 무시되고 캡슐이 구 형태를 띄게 됩니다. 아래와 같이 고치니까 범위가 제대로 보이는것 같습니다.#if ENABLE_DRAW_DEBUG FVector CapsuleOrigin = Start + (End - Start) * 0.5f; float CapsuleHalfHeight = AttackRange * 0.5f + AttackRadius; FColor DrawColor = HitDetected ? FColor::Green : FColor::Red; DrawDebugCapsule(GetWorld(), CapsuleOrigin, CapsuleHalfHeight, AttackRadius, FRotationMatrix::MakeFromZ(GetActorForwardVector()).ToQuat(), DrawColor, false, 0.5f); #endif
-
미해결[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
예습용 프로젝트는 원래 빌드가 안되나요?
내용 없음