묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
DataAsset에 궁금증이 있습니다
15분 쯤 이제 Potion Data Asset을 생성하는 장면이 있는데 저렇게 구분해서 Data Asset을 생성하는 것이 더 좋나요? 제가 생각했던것은 이러한 Data 내용들은 Excel 혹은 json 파일을 이용해서 데이터 레이블에 저장해놓고 사용했을것 같은데 혹시 Data Asset을 사용하는게 어떤 이점이 있을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
플레이어 캐릭터의 블루프린트에 위젯 컴포넌트 질문입니다.
플레이어의 체력바가 변화가 없길래 블루프린트를 봤더니HpBar 위젯 컴포넌트가 그냥 기본 UWidgetComponent로 되어있었습니다.자동으로 AABWidgetComponent로 바뀌여야 하지 않나요??혹시 수동으로 직접 바꿔야 되는 건가요??? 혹시 몰라서 HpBar를 직접 UABWidgetComponent로 바꿔봤는데 그렇게 하면 블루프린트에 디테일 패널이 안나와요....
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
UserWidget의 GetOwningPlayerPawn()은 컨트롤러가 붙어있는 폰만 유효한거죠?
GetOwningPlayerPawn() 함수가 UI와 관련된 플레이어 폰이라고 설명이 되있는데말그대로 플레이어컨트롤러가 붙어있는 Pawn인거죠??
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
몽타주에 델리게이트 set 하는거는 일회용인가요??
//몽타주 섹션 End 델리게이트 만들어서 콜백함수 연결하고 FOnMontageEnded EndDelegate; EndDelegate.BindUObject(this, &AABCharacterBase::ComboActionEnd); //델리게이트를 몽타주에 설정 AnimInstance->Montage_SetEndDelegate(EndDelegate, ComboActionMontage);수업 내용처럼 계속해서 지역변수로 선언한 델리게이트를 넣어줘야 하는 건가요??? 안에서 MontageInstance->OnMontageEnded 처럼 멤버변수에 따로 복사 되는 것 같은데도한번만 설정했을 시 잘 안되는 것 같아요. FAnimMontageInstance 라고 몽타주 실행 할 때마다 생성되서 내부에 관리하는데 델리게이트를 FAnimMontageInstance에다가 설정하는 것으로 보입니다.이 인스턴스가 어디서 계속 삭제되니까 설정도 계속 해줘야 하는 것으로 보입니다. 이곳은 복잡해서 흐름을 이해하기가 조금 힘든 것 같습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Landing모션에서 곧바로 Loco모션의 달리기로 바로 바뀔 수 있는 이유
제가 점프 얼라이어스에 Landing도 체크 했기 때문에 landing 하자마자 점프를 하면 바로 점프 모션으로 바뀌게 되는 것은 이해가 되는데요. Landing모션이 시작되고 10퍼센트 이하 남은 시점에 Locomotion으로 바뀌게 설계를 했기 때문에, landing하자마자 이동하면 landing모션이 10%남은 시점 까진 Landing이 유지되다가 달리기 모션을 바뀔 줄 알았는데 Landing하자마자 이동을 하면 바로 Locomotion의 달리기 모션으로 전환 될 수 있는 이유를 알 수 있을까요..
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
스프링암의 Use Pawn Control Rotation적용 질문이 있습니다.
Use Pawn Control Rotation을 켜면 컨트롤러 회전값을 해당 컴포넌트의 rotation에 적용한다고 이해했었는데요.이것만 켜면 마우스로 인한 컨트롤러 회전값 변화가 스프링암에 적용되어 스프링 암이 회전할 거라고 생각했는데스프링암에 있는 부모의 회전값을 상속받는 옵션을 켜야만 작동이 되는 것을 확인했습니다.어떤 이유로 스프링암의 부모컴포넌트의 회전값을 상속받아야지만 작동되는지 알수있을까요? 반대로 Use Pawn Control Rotation을 끄고 회전값 상속을 하니 무조건 캐릭터의 뒷면만 보게끔 되는것을 확인했습니다. 이러한 동작은 이해가 되었습니다.
-
미해결언리얼 엔진4 입문 (C++ 기반)
현업에서 트레일같은 쉐이더질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.협업에서 트레일이나 파티클같은거도 c++로 하나요?포트폴리오만드는중에 트레일이나 파티클도c++로 만들어야하나 궁금해서 질문남겨봅니다
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
입력 모디파이어 질문있습니다.
질문이 많아 죄송합니다.매뉴얼을 봐도 모디파이어가 인풋의 출력 값을 변형시킨다는 어렴풋한 이해만 되고 정확히 무엇인지 잘 모르겠습니다... 스위즐과 Order에 대한 이해도 잘 안되지만 인풋 액션에만 모디파이어가 있는게 아니라 맵핑 컨텍스트의 키맵핑에도 모디 파이어가 있는데 어떤관계고 어떻게 동작하는건지 좀 어렵습니다...
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
애니메이션 몽타주 재생 후 마지막 프레임의 포즈로 고정하는 설정을 알고싶습니다.
Part2 6강 39분쯤 PlayDeadAnimation() 코드를 보면 모든 몽타주를 멈추고 DeadMontage를 재생하는 코드가 있는데, 제 프로젝트에서는 몽타주를 다 재생하고 나면 애니메이션 블루프린트로 지정된 IDLE상태로 돌아오는데, 수업 내용에서는 마지막 프레임의 모습으로 고정되어 있었습니다. 제가 놓친 부분을 찾아보았으나 차이를 찾지 못하여 이렇게 문의드립니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Look() 함수 설명해주실때 컨트롤러의 의미
void AABCharacterPlayer::Look(const FInputActionValue& Value) { //마우스 입력 같음 FVector2D LookAxisVector = Value.Get<FVector2D>(); //컨트롤러의 회전을 설정함으로서 스프링암이 해당 컨트롤러를 바라보도록 한다...? AddControllerYawInput(LookAxisVector.X); AddControllerPitchInput(LookAxisVector.Y); }저는 컨트롤러를 그냥 마우스/키보드 입력을 처리하거나 입력값을 자신이 빙의한 폰에 넘겨주는 역할을 하는 무형의 클래스라고 생각하고 있었는데요. 컨트롤러의 회전을 설정함으로서 스프링암이 해당 컨트롤러를 바라보도록 한다. 라는 설명에서는 카메라를 제어하는 듯한 의미같은데설명의 의미와 컨트롤러와 카메라의 관계를 잘 모르겠습니다... 컨트롤러가 빙의 되면 폰이 가지고있는 카메라 컴포넌트를 자동으로 컨트롤러가 참조하게 되고, AddControllerYawInput() 같은 함수를 통해 컨트롤러에 회전값을 주면 카메라를 제어하는 그런 시스템일까요???또, 그 카메라가 스프링암이 있다면 스프링암 위치와 떨어진 거리 기준으로 공전하는 회전이 적용되는 그런 의미일까요??
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
SetupPlayerInputComponent 함수에 대한 전반적 이해 질문...
void AABCharacterPlayer::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); // 반드시 UInputComponent를 가져올 수 있도록 CastChecked를 사용해서 없으면 에러 발생되게 함 UEnhancedInputComponent* EnhancedInputComponent = CastChecked<UEnhancedInputComponent>(PlayerInputComponent); ... }SetupPlayerInputComponent 라는 함수와 매개변수인 UInputCompononent가 무엇인지 전체적인 그림이 잘 그려지지 않습니다.... 지금은 향상된 입력을 수행하는 녀석이라고 이해하고 있는데 보니까 BeginPlay() 하기전에 실행되기도 하고..... UInputCompononent가 어디에서 온건지, 커스텀으로 에디터에서 만들고 등록할 수 있는건지. 전반적인 이해가 필요한데요. 이 함수와 매개변수에 대한 자세한 건 나중에 또 나오나요??
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
StaticClass 나 에셋 레퍼런스 경로로 클래스를 사용한다는 의미
이 예제처럼 클래스 정보를 얻어와 적용해 사용한다는 뜻은 엔진 내부적으로 받은 클래스 정보에 따라 인스턴스를 스스로 만들어 사용한다고 보면 되는 건가요?? AABPlayerController 클래스의 인스턴스를 직접 만들었다면 고칠꺼 고치고 GetClass()를 통해서 넣으면 되는 걸까요? 그리고 TSubclassOf의 효과를 알 수 있을 까요... 찾아보니 지정한 UClass 파생 클래스로만 할당 할 수 있어서 안전하다.. 이런 얘기가 있는데 잘 모르겠네요ㅜㅜ
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
1강 강의 대로 PlayerController를 변경한 후 캐릭터 조작이 안되고 있습니다.
1강 강의 대로 PlayerController를 변경한 후 캐릭터 조작이 안되는 문제를 겪고 있습니다.1강 언리얼 엔진 게임 제작 기초 강의 그대로 따라하고 있었는데요.23:21 부분 따라한 이후 부터는 캐릭터 뿐만 아니라 카메라도 이동이 되지 않고 있습니다. 재컴파일도 해보고 아예 새 프로젝트부터 다시 만들어보기도하였는데요. 동일한 현상 때문에 애를 먹고 있습니다. 어떻게 해결하면 좋을지 여쭤보고 싶습니다.아래는 조작이 안되는 상태 스크린샷입니다. (키보드나 마우스 움직여도 캐릭터가 움직이질 않음)
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
혹시 Basic으로 맵을 만들면 다시 월드 파티션 설정을 못하나요??
처음부터 오픈 월드 용 맵을 만들어야 월드 파티션 사용할 수 있는건가요??
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
[타일 좌표 구하기/19:30] 질문
로직은 Valid 체크 후 true일 때만 actor의 위치를 변경하도록 되어 있는데 왜 false인데 위치가 변경된 것일까요?설명도 "원래는 이동할 수 없지만 어찌됐건 이 그리드 단위를 기준으로 얘가 해당하는 그 월드 좌표를 구해 가지고 일단 이렇게 이동을 시켰다는 걸 알 수가 있는거죠" 라고 해주셨는데 어찌됐건, 일단이라는 부분이 잘 이해가 가지 않습니다.언리얼 엔진의 오류라고 봐야하는 부분인 지, GetTilePos를 순수 함수로 체크한 것이 영향이 있는 건지 궁금합니다 (이론적으로는 영향이 없겠지만 이게 오류의 원인인건지).
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
네트워크 모델
저희 프로젝트에서 클라이언트의 네트워크 모델은 WSAEventSelect 모델, 서버의 네트워크 모델은 IOCP 모델이 맞을까요??서버의 모델은 IOCP 라는 걸 확실히 알겠는데 클라이언트의 네트워크 모델도 IOCP 인건지 WSAEventSelect 인지 이해가 잘 안갑니다..!!클라, 서버 둘다 메인스레드 하나로 처리한다고 하셔서 헷갈려서 여쭤봅니다 ㅠㅠ
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Protobuf
안녕하세요 루키스님 덕분에 정말 많이 배우고 있습니다.Protobuf 가 현업에서도 자주 사용되는지 호기심에 여쭤봅니다.C++ 서버 강의에서도 다뤄주시는 것 같은데, 혹시 C# 서버 시리즈에서도 protobuf 로 작업하는 내용이 있을까요?
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
IOCP iocpHandle
// CP 생성 HANDLE iocpHandle = ::CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); // WorkerThreads for (int32 i = 0; i < 5; i++) GThreadManager->Launch([=]() { WorkerThreadMain(iocpHandle); }); 각 워커 스레드는 별도의 iocpHandle을 사용해서 WorkerThreeadMain 함수를 실행하는 걸까요? iocpHandle 은 하나의 공용적인 큐 일까요?
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Overlapped Callback - Session 구조체
Overlapped Callback 방식에서Session 구조체의 맨 첫 요소로 overlapped 를 넣어줘야하는 이유가 나중에 포인터로 변환하기 위해 메모리 구조상 넣는 거라고 하셨는데이 부분이 잘 이해가 안가서 여쭤봅니다... 배열의 이름이 배열의 주소인 것처럼 구조체의 첫 요소가 구조체의 주소라서 그런건가요..??
-
미해결언리얼4 블루프린트로 안드로이드 게임 만들기
혹시 언리얼5 안드로이드 패키징 강의가 있을까요?
언리얼4.27을 사용하는데 패키징이 안됩니다.혹시 5.0버전으로 패키징 하는 강의 좀 올려주실 수 있나요? 아니 이미 올라와 있는 강의가 있나요?