묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
블루트린트 말고 c++ 로 액터를 생성하는 이유가 뭔가요?
언리얼 입문을 블프 튜토리얼로 입문하고나서이득우님의 강의를 보고 있는데요, 블프로 하면 시각적인 환경에서 간단한 클릭들로 액터를 만들고 메쉬를 지정할수 있는데, 액터를 c++로 만드는 이유가 궁금합니다. 단순히 c++에서의 원리도 알겸 하는건지, c++로 액터를 생성하는게 실무적인 측면에서 더 좋은건지 궁금합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
섹션1 캐릭터 컨트롤 설정의 IMC 관련 질문입니다.
섹션1의 캐릭터 컨트롤 설정 파트에서 궁금한 부분이 있어 질문 드립니다.강의 영상에서는 DataAsset 부분(15:15 ~ 16:10)에서 IMC 설정을 하지 않고 생략 되는 것으로 알고 있습니다.(때문에 Github 소스 자체에는 문제가 없습니다. 다만 영상과 같이 DataAsset의 IMC를 None으로 두면=영상 내용을 그대로 따라한다면 질문1 질문2 과 같은 문제가 발생합니다.)이를 해결하기 위해서 위의 링크들과 같이 에디터 상에서 DataAsset에 직접 IMC를 지정하는 방법도 있지만, DataAsset을 불러오는 김에 IMC도 코드를 이용해서 추가 하는 것이 좋지 않을까? 싶어 코드를 약간 변형해봤습니다.아래는 ABCharacterBase.cpp의 소스코드 일부 입니다. 기존 소스코드에 헤더를 추가한 상태를 기준으로 48번 Line부터 내용을 추가 했습니다.#include "InputMappingContext.h" // 헤더 파일 추가 (중간 생략...) // DataAsset 탐색 static ConstructorHelpers::FObjectFinder<UABCharacterControlData> ShoulderDataRef(TEXT("/Script/ArenaBattle.ABCharacterControlData'/Game/ArenaBattle/CharacterControl/ABC_Shoulder.ABC_Shoulder'")); if (ShoulderDataRef.Succeeded()) { // DataAsset에 IMC 삽입 static ConstructorHelpers::FObjectFinder<UInputMappingContext>ShoulderInputMappingContextRef(TEXT("/Script/EnhancedInput.InputMappingContext'/Game/ArenaBattle/Input/IMC_Shoulder.IMC_Shoulder'")); if(ShoulderInputMappingContextRef.Succeeded()) { UInputMappingContext* ShoulderInputMappingContext = ShoulderInputMappingContextRef.Object; ShoulderDataRef.Object->InputMappingContext = ShoulderInputMappingContext; } CharacterControlManager.Add(ECharacterControlType::Shoulder, ShoulderDataRef.Object); // 기존 DataRef의 InputMappingContext는 Default = None으로 설정되어 있었음 } // DataAsset 탐색. Quarter <-> Quater 오타 주의 static ConstructorHelpers::FObjectFinder<UABCharacterControlData> QuarterDataRef(TEXT("/Script/ArenaBattle.ABCharacterControlData'/Game/ArenaBattle/CharacterControl/ABC_Quarter.ABC_Quarter'")); if (QuarterDataRef.Succeeded()) { // DataAsset에 IMC 삽입하는 과정 static ConstructorHelpers::FObjectFinder<UInputMappingContext>QuarterInputMappingContextRef(TEXT("/Script/EnhancedInput.InputMappingContext'/Game/ArenaBattle/Input/IMC_Quarter.IMC_Quarter'")); if(QuarterInputMappingContextRef.Succeeded()) { UInputMappingContext* QuarterInputMappingContext = QuarterInputMappingContextRef.Object; QuarterDataRef.Object->InputMappingContext = QuarterInputMappingContext; } CharacterControlManager.Add(ECharacterControlType::Quarter, QuarterDataRef.Object); }위와 같은 방식들로 IMC를 DataAsset에 추가해줬을 때 별다른 문제가 없다면,해당 섹션의 강의 정보에 공유 해주실 수 있으신가요?!아무 생각 없이 코드만 생각하다가 여기서 쳇바퀴 열심히 돌렸습니다 ㅎㅎ;;
-
미해결[입문자를 위한 UE5] Part5. 언리얼 엔진 VR
BP_PAWN 첫강의 시야 고정 관련
안녕하세요 루키스 강사님!BP_Pawn 강의를 듣고 따라하고있는데 마지막에 DesiredCamerHeights를 이용해 75높이로 카메라 높이를 고정하는 블루프린트를 따라했는데 실행하면 일어서도 Camera 높이가 계속 변경되고 75로 고정 되지않습니다. 그래서 BegincPlay 이벤트 문제인가 싶어서 Tick 이벤트에 넣었는데 그때는 이상하게 일어나거나 앉아도 Camera 값이 고정이 잘 됩니다.강사님은 BeginPlay에 연결하셔서 하시는데 Tick에 연결해서 해도 되는지 몰라서 질문 드립니다.
-
미해결언리얼 엔진4 입문 (C++ 기반)
UBTTask_Attack의 TickTask 함수 호출이 안되는 것 같습니다.
생성자에서 bNotifyTick = true;를 해주고틱테스크 함수에 디버깅 포인트를 찍고 디버깅을 해봤으나 함수에 들어오지 않는 것 같습니다.혹시 저 부분 외에 다른 작업도 해주어야 하나요? 그리고 람다를 사용해서 계속 델리게이트를 구독하는 것 같아서 bool값을 통해 초기 한 번만 등록되도록 바꿔봤는데 혹시 문제가 있을까요? 아직 델리게이트를 정확히 이해하지 못해 질문 드립니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
무한맵의 제작에서 아이템 랜덤 생성 시 weapon은 배치되지 않는 문제 문의 드립니다.
안녕하세요무한맵의 제작 마지막 부분에 보상 상자 4개에 아이템 랜덤 배치 시potion과 scroll만 랜덤으로 배치되고 weapon은 배치되지 않습니다.혹시 어느 부분을 확인해 봐야 할까요~?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
비주얼 스튜디오 질문입니다.
루키스님께서 해주시는 강의 귀에 쏙쏙 들어와서 항상 감사의 말을 먼저 드립니다. 루키스님의 강의 중 터미널 창이 매우 깔끔하게 촘촘히 박혀있으신데 제 터미널창은 세로로 길쭉하여 결국 코드에 TILE뒤 << " "; 이런 식으로 억지로 띄워썼습니다.혹시 이 방법 말고도 다른 방법이 있으신지 견식을 여쭙고자 합니다.가르쳐 주신다면 정말 감사하겠습니다.
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Select와 Overlapped의 차이에 대해 좀 헷갈리는 부분이 있습니다.
Overlapped 방식은 비동기 + 논블로킹 이고 이전 예제 WSASelectEvent를 이용한 예제는 동기 + 논블로킹 으로 이해 했습니다.Overlapped의 로직 흐름은 while문 진입 후 Event방식의 경우 WSARecv의 반환값이 SOCKET_ERROR일때 WSAGetLastError()가 WSA_IO_PENDING이라면 Sleep 혹은 WSAWaitForMultipleEvents으로 대기하다가 콜백방식이면 깨워서 처리, 이벤트방식이면 시그널되었으므로 이후 다음 코드 실행Select의 로직 흐름은 while문 진입 후 WSAWaitForMultipleEvents로 대기 후 시그널되면 인덱스정보로 세션의 위치를 알아낸 후 해당 세션의 소켓을 통해 NetworkEvent를 확인해서 Accept인지 Recv플래그를 통해 적절한 처리이렇게 정리하고 나니 결국 Overlapped는 Recv를 먼저 실행한 후 대기하는 것이고 Select는 대기한 후 Recv하는 것이구나 라는 생각이 들었고, 처음에 보여주신 블로킹/논블로킹, 동기/비동기에 관한 그림으로 볼 때 Select와 Overlapped 모두 Sync-NonBlocking과 같이 동작하는게 아닌가 하는 생각이 들었습니다. 왜냐하면 INFINITE로 두면 반환할때까지 Blocking 방식처럼 동작할 것이라고 생각했고, INFINITE가 아닌 Timeout을 주면 주기적으로 확인한다는 것이므로 Sync-NonBloking처럼 동작한다고 생각했습니다. 제가 생각한 것이 맞는지 궁금합니다.
-
미해결언리얼 엔진4 입문 (C++ 기반)
자동완성 기능 사용법
선언 혹은 인클루드 입력하실 때 자동완성기능이 활성화되시는데 따로 설정할 것이 있는지 궁금합니다.예를들어 MyCharacter.cpp에서 #include "Components/WidgetComponent.h"를 전부 입력하는 반면선생님은 Comp로만 입력했을 때 자동완성으로 표기되셔서 다른 설정을 하신 것 같아 질문드립니다.
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
C++ 프로그램 관련
대중적으로 C++를 공부할 때 비주얼 스튜디오를 사용하기도 하지만 Rider 프로그램도 있는 것으로 알고 있습니다. 개인적으로 인텔리제이를 선호하는 터이기도 하고, 언리얼 공부를 위해 C++를 공부하고 있는데, Rider를 사용해서 수강해도 되는 부분일지 궁금합니다.
-
해결됨언리얼 엔진4 입문 (C++ 기반)
충돌체크 콜리젼 반응에 대한 질문입니다.
MyCharacter에서 Attack을 Overlap으로 설정했는데, 충돌판정이 되지 않고 block을 했을때만 충돌 판정이 됩니다. 혹시 오버랩으로 설정할 때 다른 옵션을 주어야 하나요?
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
언리얼 엔진 블루프린트의 상속에 대한 확인 질문입니다.
저는 이때까지 상위클래스-하위클래스의 관계를 가지고 있으면 상위 클래스의 변수와 로직을 하위클래스에서 끌어 쓸 수 있다고만 알고 있었는데요. 테스트를 해 보니 상위 클래스의 이벤트 그래프의 로직을 하위 클래스에 복사 붙여넣기 하지 않아도 하위클래스의 객체가 이 로직을 그대로 실행하더군요. 상위클래스의 이벤트 그래프의 로직을 하위클래스의 이벤트 그래프에 복사 붙여넣기 해주지 않아도 하위클래스로 만든 객체가 상위 클래스의 로직을 자동으로 실행하는게 맞는지 확인하고 싶습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Stat외에 싱글톤 클래스는 어떻게 만드나요?
프로젝트세팅에 추가한 ABGameSingleton안에는스텟관련된것이 추가되있는데.. 다른 싱글톤을 만드려면 어떻게 해야하나요?? 스탯 관련된것은 빼고 ABGameSingleton을 상속받아 다른 클래스를 제작하면 될까요??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
다른 스켈레탈 메쉬를 가진 적을소환하려고 하면
스켈레탈 메쉬도 동일한방법으로 불러와 세팅해야 할까요?
-
해결됨[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
Set 함수의 기능에 대한 질문입니다. (초보 질문 죄송..)
State 패턴 강의 중 궁금한게 생겨 질문 드립니다.Set(Skill) 노드는 Attack을 변수 설정하기 위한 노드,뒷 부분의 Set(Move) 노드는 공격 애니메이션을 해제, 즉 액션을 위한 노드로 이해하고 있습니다.제 가정이 맞다면 Set 노드의 기능은 변수 설정, 액션 2가지로 나눌 수 있다는 것인데,만약 같은 set 노드라도 변수 설정을 위한 노드와 액션을 하는 노드는 어떻게 구분하며 써야하는지 그 기준이 궁금합니다.
-
해결됨[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
블루프린트로는 연결 리스트, 이진 탐색 트리 사용이 불가능 한가요?
강의 잘 듣고 있습니다!블루프린트에서 Array 타입은 STL의 vector로 동적 배열로 구현이 되고, Set과 Map은 STL의 unordered_set, unordered_map으로 해시 테이블로 구현이 되어있다고 이해했습니다.그렇다면 궁금한게 STL의 list나 set, map인 연결 리스트, 이진 탐색 트리는 사용하지 못하나요?못한다면 이유가 뭔지 궁금합니다!
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
연결 리스트 33분 부근에서 건너뛰기 같은게 되요..
연결 리스트 영상에서 33분 정도 쯤에 GetNode 메소드를 만드는 방법(원리?)를 간략히 설명하던도중 건너뛰기 같은게 됩니다..이거 어떻데 해야하나요..
-
미해결언리얼 엔진4 입문 (C++ 기반)
언리얼 엔진 관련으로 질문 드립니다.
기존 컴퓨터는 사양이 낮아서 오류가 발생했고 찾아본 결과 그래픽 카드가 낮아서 일어난 오류였고, 이번에 새로 4070으로 맞췄는데도 계속해서 새로운 오류가 나옵니다.. 도와주세요
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
무한맵에서 스태이지 생성이 되지 않습니다.
일단 동작이 안되서 코드를 전부 복붙을 하였지만 2번째 스태이지가 생성이 되지 않고요.GateTrigger 4종이 ABTrigger 콜리전으로 되어있지 않고 Custom..으로 설정되어 있습니다.그리고 이런 오류를 잡기위해 어디에 중단점을 놔야 할까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
코드상에서 경로를 불러오는 방법이 작동이 안됩니다.
World Settings 창에는 제대로 적용이 되었다고 뜨지만 게임 플레이를 할 경우 Inspector 창에서는 DefaultPawn 이라고 뜨네요.. 무슨 문제 때문에 이럴까요?PlayerController 도 헤더파일로 적용시키는 방법은 잘 작동 하였지만 경로를 이용한 방법에서는 먹통이 됩니다..
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
디버깅할떄 강의처럼 빨갛게 움직이고 어디로 실행되는지 표현되는 비쥬얼이 안나옵니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.