묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Parallel 컴포짓의 태스크 실행 질문..
Main 인 Attack task는 Inprogress 반환이라도 딱 한번만 호출되는데요. 같이 실행되는 TurnToTarget task는 Succeeded를 반환해도 매 프레임 여러 번 호출되는 것 같습니다. 여기서 어떤 규칙이 있는 건가요??Parallel 컴포짓이 main task가 inprogress 일 동안에는매 프레임 sub task 의 ExecuteTask()를 호출 하는 방식인가요??
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
private를 잘 안 쓰시는 이유?
교수님 강의를 듣다 보니 private를 써도 되지 않나 싶은 곳에서도 전부 protected를 쓰시는 것을 보고 궁금증이 생겼습니다 예시로 4강에서 JumpAndWaitForLanding 클래스를 만들 때도 이 클래스는 제 생각에 더 파생되지 않을 것 같은데... 생각이 들었지만 protected를 사용하셨습니다 파생 클래스가 없다면 둘이 큰 차이는 없을 것 같다고 생각하지만 protected를 많이 사용하시는 이유와 스토리가 궁금합니다
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
37:24 오류질문드립니다
안녕하세요! 교수님! 강의 잘 듣고있습니다!37:24까지 강의를 듣고 빌드 후Ctrl+F5키를 눌러서 엔진 실행하기전에 이런 메세지가 나오며,실제 게임 실행할때도 움직이지가 않습니다 ㅜ 저 경로에서 찾을수없는것같은데.. 어떻게 해결하면될까요..? 에디터 5.1버전이고 코드 똑같이 복붙해도 안됩니다..
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
boolean 변수가 변경되는 이유를 모르겠습니다.
<#include "Item/ABItemBat.h"#include "Components/BoxComponent.h"#include "Components/StaticMeshComponent.h"#include "Particles/ParticleSystemComponent.h"#include "Physics/WMACollsion.h"#include "Interface/ABCharacterItemInterface.h"#include "Character/WMACharacterPlayer.h"#include <GameData/WMAGameInstance.h>#include "Blueprint/UserWidget.h"#include "Components/WidgetComponent.h"#include "UI/WMAItemInteractionWidget.h"#include "Interface/ABCharacterItemInterface.h"// Sets default valuesAABItemBat::AABItemBat(){ Trigger = CreateDefaultSubobject<UBoxComponent>(TEXT("TriggerBox")); Mesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh")); Effect = CreateDefaultSubobject < UParticleSystemComponent>(TEXT("Effect")); TextE = CreateDefaultSubobject<UWidgetComponent>(TEXT("TextE")); Item = CreateDefaultSubobject<UABItemData>(TEXT("ItemBat")); static ConstructorHelpers::FClassFinder<UUserWidget>InputE(TEXT("WidgetBlueprint'/Game/UI/WBP_ItemInteraction.WBP_ItemInteraction_C'")); if (InputE.Succeeded()) { InteractionItemWidgetClass = InputE.Class; } RootComponent = Trigger; Mesh->SetupAttachment(Trigger); Effect->SetupAttachment(Trigger); Trigger->SetCollisionProfileName(CPROFILE_WMATRIGGER); Trigger->SetBoxExtent(FVector(11.0f, 10.0f, 110.0f)); Trigger->OnComponentBeginOverlap.AddDynamic(this, &AABItemBat::OnOverlapBegin); Trigger->OnComponentEndOverlap.AddDynamic(this,&AABItemBat::OnOverlapEnd); static ConstructorHelpers::FObjectFinder<UStaticMesh> BoxMeshRef(TEXT("/Script/Engine.StaticMesh'/Game/Item/Bat/Batfbx.Batfbx'")); if (BoxMeshRef.Succeeded()) { TempBoxMesh = BoxMeshRef.Object; Mesh->SetStaticMesh(BoxMeshRef.Object); } Mesh->SetRelativeLocation(FVector(0.0f, -3.5f, -20.0f)); Mesh->SetCollisionProfileName(TEXT("NoCollision")); bInteractionItem = false; PrimaryActorTick.bCanEverTick = true;}void AABItemBat::Tick(float DeltaTime){ Super::Tick(DeltaTime); //UE_LOG(LogTemp, Warning, TEXT("Character is Die :: %s"), bInteractionItem ? TEXT("true") : TEXT("false")); if (bInteractionItem) { Trigger->OnComponentBeginOverlap.AddDynamic(this, &AABItemBat::OnOverlapBegin); UE_LOG(LogTemp,Warning,TEXT("NO item Attach")) }}void AABItemBat::OnOverlapBegin(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepHitResult){ //TextE->SetHiddenInGame(false); if (InteractionItemWidgetClass) { ItemText = CreateWidget<UUserWidget>(GetWorld(), InteractionItemWidgetClass); if(ItemText) ItemText->AddToViewport(); } if (nullptr == Item) { Destroy(); return; } //UE_LOG(LogTemp, Warning, TEXT("Character is Die :: %s"), bInteractionItem ? TEXT("true") : TEXT("false")); if (bInteractionItem) { IABCharacterItemInterface* OverlappingPawn = Cast<IABCharacterItemInterface>(OtherActor); if (OverlappingPawn) { OverlappingPawn->TakeItem(Item); //TextE->SetHiddenInGame(true); } //Effect->Activate(true); Mesh->SetHiddenInGame(true); SetActorEnableCollision(false); Effect->OnSystemFinished.AddDynamic(this, &AABItemBat::OnEffectFinished); Trigger->OnComponentBeginOverlap.RemoveDynamic(this, &AABItemBat::OnOverlapBegin); }}void AABItemBat::OnOverlapEnd(UPrimitiveComponent* OverlappedComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex){ if (ItemText) { ItemText->RemoveFromViewport(); ItemText = nullptr; }}void AABItemBat::OnEffectFinished(UParticleSystemComponent* ParticleSystem){ Destroy();}void AABItemBat::StartInteractionItem(){ bInteractionItem = true;}void AABItemBat::StopInteractionItem(){ //bInteractionItem = false;}> 일단 WMACharacterplayer.cpp에서 StartInteractionItem()을 호출하는데는 문제가 없습니다. StartInteractionItem() 함수 내부에서 로그를 출력해보면 bInteractionItem이 true로 잘 출력이 되는 것을 확인할 수 있습니다. 문제는 Tick함수 내부와 OnOverlapBegin()함수 내부에서 로그를 찍어보면 bInteractionItem이 false로 변경되어서 OnOverlapBegin()함수를 호출하지 못하고 있는 상황입니다. 혹시 어느 부분이 문제가 되어 bool값이 변경되는지 여쭐수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
13:48경에 나오는 헤더 파일의 클래스 안에 ":" 키워드는 "="과 같다고 보면 되나요?
uint32 bUseControllerRotationYaw : 1이런 거요.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
npc와 player 에셋을 다른 것을 사용하는 경우
강의 시에는 npc와 플레이어가 같은 에셋을 사용해서 mesh등의 reference들을 사용할때 base에서 한번에 처리하는 식으로 되어있는데 만약 캐릭터 asset과 몬스터 asset이 다른 경우에는 base의 생성자에서 처리하는게 아닌 각각의 npc와 player의 코드에서 에셋 경로를 입력해 주어야하나요? 또 공격판정시에 플레이어가 총을 쏘고 몬스터는 근접공격을 한다할때 이 또한 둘의 판정을 각각의 코드에서 적어주는게 맞는건가요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
C2666 ERRROR 관련 문의 드립니다 (operator == 오버로드~) - [17주차] 온라인 게임 개론
안녕하세요 선생님, 강의 열심히 듣고 있습니다.17주차 온라인 게임 개론에서 수업자료 받아서 실행시켜 보았는데, 아래와 같은 에러가 발생합니다ㅠㅠ 처음에 CollisionManager와 UI included 되어 있어서 컴파일 에러나는 거 때문에 그 부분만 include 된거 삭제하였고 다른거는 하나도 건들지 않았는데도 저런 에러가 뜨네요.. 각 오류에 해당하는 line의 코드는 아래와 같습니다. 구글에 찾아봐도 해결 방법을 모르겠네요.. 도움 주시면 감사 드리겠습니다!
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Windows API를 이용한 2d 로그라이크 게임
안녕하세요. 강의 소개에 나와있는 Windows API를 이용한 2d 로그라이크 게임 만들려면 섹션 어떤것들 들으면 되나요?
-
미해결[입문자를 위한 UE5] Part5. 언리얼 엔진 VR
BP_Pawn 위치 조정
안녕하세요 선생님! 가뭄에 단비 같은 VR 강의 너무 잘 보고 있습니다!강의를 따라가는데 자꾸 실행할 때마다플레이어의 눈높이가 바닥보다 아래에 있어서 진행에 어려움이 있습니다. VR_Root 의 Z축 값을 조정해봤는데도 그대로 이더라고요. 혹시 제가 블루프린트에서 놓친 설정이 있는지 하여 사진을 첨부합니다. 다시 한번 강의를 들어봤는데 답을 찾지 못하고 계속 시간이 소요되어... 생각보다 쉬운 부분을 제가 놓치고 있는지 여쭤보고 싶네요.이상입니다, 감사합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
캐릭터 애님블프변경
상속받은 블프-현재 플레이어로 쓰이는-에 skm,animBP를 바꿔보았습니다. 그냥 레벨에 두고,possess 0 이면,애니,카메라 잘 작동하는데, 게임모드를 사용하면,애니가 안되는이유가 뭘까요? 코드에서도 경로 수정한 상태입니다. 혹시나 애님블프가 문제일까해서 5마네킨 방식으로 다 고쳐도 그렇네요.(디버깅이 미숙해서,..결국은, 첨으로 자료 다운받아서 실행했습니다. 늘뜨던 두개의 fail도 없고,신기하네요...->근데,클래스추가하고나니,또 생겼습니다 ㅠ) [상담] 파트1의 메모리부분부터 정신이 탈출해서 잠깐 불붙이러 프레임웍으로 먼저 왔습니다. 낯익은 강의라 잠시 행복했는데, 4는 입력이 그닥 복잡하지않았던거같은데, 향상된 시스템에서 또 탈탈 털려서..멘탈 다시잡고 다음강의를 보고싶은데, 아무리 보고 따라코딩이지만, 직접 만든걸로 하는게 맞을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
티맵 에러
Assertion failed: Pair != nullptr [File:C:\UE_Editor\UE_5.3\Engine\Source\Runtime\Core\Public\Containers\Map.h] [Line: 671]에러가 이렇게뜨고,디버깅을 하면, SetCharacterControl함수의 UEJCharacterControlData* NewCharacterControl = CharacterControlManager[NewCharacterControlType];check(NewCharacterControl);부분에서 에러가 나는걸로, 티맵값을 못받아오는거같은데요. .. 어떻게 하면될까요?
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
파트4와 파트6은 언제쯤 나오나요?
파트4와 파트6은 언제쯤 나오나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
캐릭터구현부 설정중에.
bUseControllerRotationPitch = false;바로 값할당 GetCapsuleComponent()->InitCapsuleSize(42.0f, 96.0f); 포인터로 부모의 멤버변수에 접근해서,초기화. 둘다, ACharacter에서 초기화(nullptr아닌)되어있는데, 왜 불회전변수는 바로 쓰고,다른 프로퍼티들은 저런 형태로 써야하나요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
코드 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의를 보다보면 미로맵 제작 같이 다운로드가 안되는 코드를 올려주신 다는 말씀을 하시는데 혹시 코드는 어디서 다운 받을 수 있을까요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
포인터가 깊은복사 얕은복사와 같나요?
포인터 수업을 들으면서 C#의 깊은복사와 유사한거같은데 같은의미인가요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Constructorhelpers 크래시 관련 질문
안녕하세요 이득우 님, Constructorhelpers 관련해서 질문이 있어서 글을 올렸습니다.생성자에서 Constructorhelpers 를 사용해 에셋과 오브젝트를 불러오려고 하는데, 에디터가 75퍼센트까지 준비되다가 자꾸 멈춰 버립니다. 아래는 제가 사용한 Constructorhelpers 코드 전문입니다. 코드는 단순하게 제가 만든 캐릭터 베이스에서 메쉬와 애니메이션 클래스를 설정해 주는 것입니다.주석 처리를 통해 이 부분에서 오류가 나는 것을 확실히 확인 했습니다. 주석으로 처리하고 블루프린트에서 에셋을 설정해주면 잘 되거든요 .. (경로도 맞는 것 여러 번 확인 하였습니다.)static ConstructorHelpers::FClassFinder<UAnimInstance> AnimInstanceClassRef(TEXT("/Game/FirstPersonArms/Animations/FirstPerson_AnimBP.FirstPerson_AnimBP_C")); if (AnimInstanceClassRef.Class) { GetMesh()->SetAnimInstanceClass(AnimInstanceClassRef.Class); } static ConstructorHelpers::FObjectFinder<USkeletalMesh> CharacterMeshRef(TEXT("/Script/Engine.SkeletalMesh'/Game/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms.SK_Mannequin_Arms'")); if (CharacterMeshRef.Object) { GetMesh()->SetSkeletalMesh(CharacterMeshRef.Object); } 이럴 때는 어떻게 해야 할지 궁금합니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
include header
안녕하세요 선생님 ㅜㅜ선생님 코드 짜시는거 보면 막새로운 클래스를 생성하시구 나서막 Types.h, enums.h Defines.h에 정의되어있는 것들을그냥 입력해도 아무 에러가 안 뜨던데저는 그것들 #include 안해주면 정의 안되어있는거 쓴다구겁나 꼽주는데 따로 설정법이 있는건가요,,? ㅜㅜ
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
14강 게임플로우 다듬기 정리 이후 타임라인
안녕하세요제목 내용처럼 약 37분 쯤부터 화면 까만 상태로 48분까지 있던데 이거 정리에서 마무리 인사 하신게 끝난게 맞는거죠?
-
미해결언리얼 엔진 5 스파르타 클래스 - 실전편
0:33 에서 캐릭터 방향을 바꿨을 때
카메라 화면 방향이 바뀌지 않은 이유는 a,d 키가 아니라 방향키로 캐릭터를 제어해서 그런거죠? a,d 키 누르면 카메라 화면이 90도 바껴서요
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
불리언 선언
14:00 부분에서 uint32 크기로 불리언을 선언하셨는데 uint8로 선언하는 것과 차이점이 무엇인가요? uint8로 수정하여 실행해도 기능은 동일하게 작동되는 것을 보고 궁금증이 생겨 질문드립니다.