월 39,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
SpawnActorDeferred 관련
void AABStageGimmick::SpawnRewardBoxes() { for (const auto& RewardBoxLocation : RewardBoxLocations) { FTransform SpawnTransform(GetActorLocation() + RewardBoxLocation.Value + FVector(0.0f, 0.0f, 30.0f)); AABItemBox* RewardBoxActor = GetWorld()->SpawnActorDeferred<AABItemBox>(RewardBoxClass, SpawnTransform); if (RewardBoxActor) { RewardBoxActor->Tags.Add(RewardBoxLocation.Key); RewardBoxActor->GetTrigger()->OnComponentBeginOverlap.AddDynamic(this, &AABStageGimmick::OnRewardTriggerBeginOverlap); RewardBoxes.Add(RewardBoxActor); } } for (const auto& RewardBox : RewardBoxes) { if (RewardBox.IsValid()) { RewardBox.Get()->FinishSpawning(RewardBox.Get()->GetActorTransform()); } } }위 코드에서 SpawnActorDeferred 와FinishSpawning을 같은 for문 블록에서 처리하지 않고 따로 처리하신 이유가 궁금합니다.
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
PlayerController의 존재 의미
지금까지 컨트롤에 관련된 강의를 들으면서 PlayerController는 무슨 역할을 하는지 궁금합니다. 제가 2~3강을 듣고 이해한 흐름은 다음과 같습니다. AABCharacterPlayer의 BeginPlay함수에서 맵핑 컨텍스트(IMC)를 설정하는데 PlayerController를 가져와 Subsystem을 선언하는데 쓰인다. (추후엔 SetCharacterControl로 바뀜)Subsystem은 IMC를 운영하는 클래스로 Subsystem에서 InputSystem을 가져와서 DefaultMappingContext을 맵핑 컨텍스트 에셋으로 추가한다. DefaultMappingContext는 AABCharacterPlayer의 CDO에서 주소값으로 가져온다. DefaultMappingContext는 IA_Jump, IA_Move, IA_Look가 등록된 IMC로 이걸 SubSystem에 등록시킨다. 이는 Move또는 Look함수에 있는 AddControllerYawInput 함수를 파보면 PlayerContoller에 Rotation값을 계속 갱신하는 것으로 움직인다는 것을 알 수 있다. 그렇다면 PlayerController는 그냥 GameMode에서 지정만 하고 실질적인 구현은 없는건가요?
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TSubclassOf 관련
안녕하세요,TSubclassOf 대신 TObjectPtr을 사용하고 StaticClass()를 할당시킬 수는 없나요?전자는 에디터에서 아키타입을 지정할 수 있었고 후자는 인스턴스를 지정할 수 있었는데, 둘의 명확한 차이를 잘 모르겠습니다.
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
[40:20] retry count가 2번 올라갔습니다.
retry 버튼을 눌렀을 때 1 -> 2가 되었는데그 이후로 [40:24] 쯤에 2->3으로 또 올라갔는데 BeginPlay외에는 카운트가 올라가는 코드가 없는 거 같은데 왜 2번 올라갔는지 알 수 있을까요?
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
액터 스폰과 생성자에 대한 질문이 있습니다.
아이템박스에 상호작용 하면 아이템이 스폰되도록 시스템을 수정하고있습니다. 현재 아이템 액터를 다양하게 만들고 싶어액터 생성자에서 메시의 패스를 받아서 초기화하는 방법을 생각했습니다.현재 이 코드를 빌드하면 오류가 생기는데요 UObject() constructor called but it's not the object that's currently being constructed with NewObject. Maybe you are trying to construct it on the stack, which is not supported. 언리얼에서는 생성자를 여러개를 못만드는건가요? 또 생성자를 여러개를 만들수 있으면 SpawnActorDeferred에 어떻게 전달할 수 있는지 궁금합니다.
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
강의 22:21에 SweepSingleByChannel 함수 부분 질문 있습니다
안녕하세요 강의 항상 잘 듣고 있습니다!강의에서는 Attack Range = 40.0f로 설정하고 Sweep하는 구체의 반지름을 50.0f로 설정하셨던데 콜리전이 감지되는 부분은 40까지인데 보다 높은 값으로 구체의 반지름을 설정한 이유가 따로 있는지 궁금합니다.
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
22분 52초까지 진행하던 중 Faild to Find 오류가 나왔습니다
분명 파일에 있는 경로를 참조하여 붙여넣기 했는데 왜 이러는걸까요? #include "Character/ABCharacter.h" #include "Components/CapsuleComponent.h" #include "GameFramework/CharacterMovementComponent.h" // Sets default values AABCharacter::AABCharacter() { // Pawn bUseControllerRotationPitch = false; bUseControllerRotationYaw = false; bUseControllerRotationRoll = false; // Capsule GetCapsuleComponent()->InitCapsuleSize(42.f, 96.0f); GetCapsuleComponent()->SetCollisionProfileName(TEXT("Pawn")); // Movement GetCharacterMovement()->bOrientRotationToMovement = true; GetCharacterMovement()->RotationRate = FRotator(0.0f, 500.0f, 0.0f); GetCharacterMovement()->JumpZVelocity = 700.f; GetCharacterMovement()->AirControl = 0.35f; GetCharacterMovement()->MaxWalkSpeed = 500.f; GetCharacterMovement()->MinAnalogWalkSpeed = 20.f; GetCharacterMovement()->BrakingDecelerationWalking = 2000.f; // Mesh GetMesh()->SetRelativeLocationAndRotation(FVector(0.0f, 0.0f, -100.0f), FRotator(0.0f, -90.0f, 0.0f)); GetMesh()->SetAnimationMode(EAnimationMode::AnimationBlueprint); GetMesh()->SetCollisionProfileName(TEXT("CharacterMesh")); static ConstructorHelpers::FObjectFinder<USkeletalMesh> CharacterMeshRef(TEXT("/Script/Engine.SkeletalMesh'/Game/Characters/Mannequins/Meshes/SKM_Quinn_Simple.SKM_Quinn_Simple'")); if (CharacterMeshRef.Object) { GetMesh()->SetSkeletalMesh(CharacterMeshRef.Object); } static ConstructorHelpers::FClassFinder<UAnimInstance> AnimInstanceClassRef(TEXT("/Game/Characters/Mannequins/Animations/ABP_Quinn.ABP_Quinn")); if (AnimInstanceClassRef.Class) { GetMesh()->SetAnimInstanceClass(AnimInstanceClassRef.Class); } }
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
[5:03] operator+ 연산자 질문입니다.
덧셈 연산을 고칠 필요가 없다는 부분을 저는 속성이 늘어나도 속성이 늘어남에 따라 더해주는 코드를 추가할 필요 없이 속성들을 float으로 통일을 해서 (구조체 크기 / float 크기)를 통해 계산하기 때문에 고칠 필요가 없다고 이해를 했습니다.근데 다시 보니 새로운 연산자를 추가해도 고칠 필요가 없다고 말씀하셨는데 제가 이 부분이 잘 이해가 되지 않습니다. 다른 operator를 추가하는 것과 operator+를 고치는 것과의 상관관계를 잘 모르겠습니다.
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
컴포넌트 활성화/비활성화 관련 질문
안녕하세요! SetHiddenInGame()는 비활성화가 아닌 렌더링만 막는 함수인건가요?그렇다면 유니티처럼 각각의 컴포넌트를 비활성화하는 경우는 없는지, 그리고 액터를 비활성화시킬 때 Visibility와 Collision 외에 따로 고려할 사항이 있는지 궁금합니다.
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
위치 지정에 대한 질문입니다.
안녕하세요. 강사님!궁금한점이 있어, 이렇게 질문 남깁니다.오른쪽 핸드 소켓을 설정할 때 상대 위치와 회전을 지정하셨는데, 보통 기획적으로 이미 설정된 값으로 설정되는 것인지 아님 아트쪽에서 설정하는지 아님 이 강의처럼 프로그래머가 직접 무기를 들었을 때 어색하지 않는 위치를 찾아서 설정하는지 궁금합니다.또한, 보통 무기가 한 개가 아닌 여러 개의 종류가 있다면, 위치의 변동이 생기지 않을까?..라는 생각이 드는데 이때는 위치와 회전값을 동적으로 할당하나요? 아님 중간 타협점을 찾아 배치하나요???답변 주신다면 더 열심히 공부하겠습니다! 정말 감사합니다!
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
무기가 손에 장착이 안됩니다
상자에서 무기를 획득했을 때 무기가 hand_rSocket에 장착되는 것이 아닌 캐릭터의 아래에 고정됩니다.어디가 잘 못 된 건가요?
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
데드 애니메이션에서 오류가 발생합니다.
6강에서 강의대로 코드를 작성했는데 NPC를 죽이는 순간 에디터가 멈추고 오류가 발생합니다.위와 같은 오류가 나오는데코드를 그대로 따라 썼는데도 어디가 잘 못 된 건지 못 찾겠습니다.
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
한번만 눌러도 2번쨰 몽타주까지 실행이 됩니다.
몽타주는 다 분할 되어있고한번만 눌러도 2번째 공격까지 발동됩니다.디버그를 찍어봤는데 ProcessComboCommand 함수가 2번 들어오는데 이유를 알고싶습니다.
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
OnConstruction 함수가 실행이 안됩니다
액터가 초기화될때만 한번 실행되고 State값을 바꿔도 실행이 되지 않습니다. 에디터를 껐다 켜도 계속 안되는데 왜이러는건지 모르겠습니다
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
프로젝트를 로딩중에 75%에서 무한로딩에 걸리는 현상이 발생해요
여기저기 찾아봐도 해결방법을 찾지못해서 이렇게 올려봅니다 ㅠㅠ현상은 버전상관없이 발생하는것같구요단지 작업중 저장하고 언리얼프로젝트를 닫았다 다시 열게되면 한번씩 75%에서 무한로딩이 걸려 움직이질 않습니다.. CPU랑 프로세스 메모리도 변화가 없구요파일로드중 혹은 초기화중 무한로딩 걸리는 시점도 제각각인데진행도만 항상 75%에서 멈추네요..해결방법이나 최소한 원인을 찾을방법이 전혀 없을까요..?그냥 처음부터 다시 프로젝트를 만들어야 할까요??
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
mouse input action 반응성 관련 질문.
안녕하세요.동일 함수를 키보드 키로 bind 할 때와 달리 마우스로 하면 클릭의 반응성이 매우 떨어지는 문제를 발견했는데 Unreal 버전의 문제일까요? (5.3 사용중 입니다.)또 c++ 이 아니라 블루프린트로 구현 시에는 마우스 클릭 반응성에 문제가 없었습니다.
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
컴파일 에러
Error MSB3073WaitMutex -FromMsBuild" exited with code 6. C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44 The command "E:\ProgramFiles\UE_5.3\Engine\Build\BatchFiles\Build.bat ArenaBattleEditor Win64 Development -Project="C:\Users\User\Desktop\ArenaBattle\ArenaBattle.uproject" -WaitMutex -FromMsBuild" exited with code 6. ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44 원래 제작하던 프로젝트파일이 5.3.2 버전인데요, 5.1.1버전을 실행했다가 다시 돌아오니까 실행이 안되는것 같습니다.어떻게 해결할 수 있을까요? 엔진을 재설치해도 같습니다. https://forums.unrealengine.com/t/ue5-1-vs2022-c-build-error-with-msb3073/694392/10이런데에 적혀있는 해결방법으로도 해결이 되지 않습니다.ㅠ
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
"에셋을 로딩한다"의 의미
8강 소프트 레퍼런싱에 대해서 강의를 듣다가 에셋이 로딩되고 객체에 할당되는 과정에 궁금증이 생겼습니다. 제 생각은 다음과 같습니다.에셋이 로딩되면 에셋의 데이터를 가지고 객체를 만든다. 그리고 해당 에셋을 사용하는 클래스가 인스턴싱될 때 로딩된 에셋(객체화된 에셋)을 복사해서 추가한다.만약 같은 에셋을 사용하는 클래스가 두 개 이상이라면, 로딩된 에셋을 두 번 복사하게 된다.즉, 에셋을 로딩한다는 것은 복사를 위한 원본 객체를 생성하는 것을 의미한다. 제 생각이 맞을까요?
- 해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
9강 무한맵의 제작에서 블루프린트에 컴포넌트의 디테일창이 안보이는 현상
작업하다보면 가끔씩 이런 현상이 발생하는데 혹시 원인이 어떤게 있을까요?? ㅠㅠ
- 미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
5강 Montage_SetEndDelegate()함수 관련
FOnMontageEnded EndDelegate; EndDelegate.BindUObject(this, &AABCharacterBase::ComboActionEnd); AnimInstance->Montage_SetEndDelegate(EndDelegate, ComboActionMontage);Montage_SetEndDelegate 함수를 보면,AnimMontage클래스에서 AM이 종료되면 호출시키는 FOnMontageEnded타입의 델리게이트 변수를, 위 함수의 인자로 받는 델리게이트 변수와 치환해서(=) 실행되는 것으로 이해했습니다. 그렇다면 구현되어있는 델리게이트 변수에 ComboActionEnd함수를 바로 구독시키면 안되는건지 궁금해서 여쭤봅니다..