묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
13강 직렬화에서 질문있습니다.
13:34쯤 파일경로와 관련해서 출력을 할 때 제가 동일하게 작성을 했습니다. MakeStandardFileName이후 출력값과 이전 출력값이 동일해서 궁금증이 생겼습니다. 혹시 D드라이브에 저장했는데 이것과 연관이 있는지 궁금합니다!
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
.uproject 관련 질문
영상 말미에 uproject파일에서 Generate Visual Stduio File 하신 이유가 궁금합니다!검색해보니 어떤 기능인지는 알겠는데, 스크립트 파일을 삭제할 때마다 해주면 되는걸까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
SetComboCheckTimer함수에서 질문이 있습니다!
ComboTimer의시간을 설정하는 float ComboEffectiveTime = (ComboActionData->EffectiveFrameCount[ComboIndex] / ComboActionData->FrameRate) / AttackSpeedRate;이 코드가 1초를 30Frame으로 잡고 원하는 Frame까지 시간을 체크하기위해서 시간계산 용으로 이해했는데위같은 방법 대신 Animation Montage BluePrint 에서 Notify로 설정하고 함수를 호출하는 방법은 성능적 차이가 클까요?? 아니면 그냥 개발자의 선택에 따른 차이일까요??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
랜덤박스에 waepon이 생기지 않습니다
Weapon이 primaryasset으로 안들어가서 그런가 싶어서 weapon의 데이터를 봤는데Primary Asset Type은 ABItemData(비쥬얼스튜디오에서는 복사붙여넣기로 넣은거라 이름이 다를 리는 없을 거같습니다.)로 들어가있었습니다. 근데 박스가 생성될 때 assets의 num을 찍어보니 3이 아닌 2가 나오는거 보니 인식이 안되는 거 같은데 엔진의 문제일 수도 있나요?
-
해결됨언리얼로 만드는 게임사운드 - 중.고급 과정
Quartz 를 이용한 인터렉션 질문입니다~
안녕하세요설명대로 구현햇는데..올리신 영상이랑 결과가 달라 질문드립니다1.강의 영상에는 제일 안쪽까지 들어갔나가 나올때 음악이 꺼졌다가 다른 트리거 볼륨으로 가면 다른 음악이 재생되는데..(10분49초정도)강좌와 똑같이 쿼츠 구성한 후 실행을 하면 음악이 꺼지지를 않은 상태에서 다른 음악이 재생되는거 같습니다(사운드큐는 루프가 되게 설정하는건 맞죠?)2.아 그리고 들어갔던 같은 장소를 다시 반복적으 들어가면 소리가 중첩되며 소리의 크기가 점점 커지는거같습니다 요 두가지를 해결할라면 어떻게 해야할까요?
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
GameModeBase.cpp, .h가 없습니다.
7,8강에서 프로젝트를 생성하였을 때 해당 프로젝트의 GameModeBase.cpp와 .h가 저는 안생기는데 혹시 언리얼 5.3 버전에서는 다른 경로에 존재하나요? 해결방법을 알고 싶습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
2강 - 입력 매핑 컨텍스트 오류가 발생했습니다.
BeginPlay 함수를 오버라이딩 하실 때 void AABCharacterPlayer::BeginPlay(){Super::BeginPlay();APlayerController* PlayerController = CastChecked<APlayerController>(GetController());if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PlayerController)){Subsystem->AddMappingContext(DefaultMappingContext, 0);// Subsystem->RemoveMappingContext(DefaultMappingContext);}}와 같이 정의하셨는데, ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PlayerController) 이 함수에서 인수가 일치하지 않는다는 오류가 발생합니다. 선생님 코드를 보면 동일한 코드임에도 실행이 잘 되던데, 저는 이 부분 때문에 빌드가 안되고 있습니다. 인수가 ULocalPlayer가 들어와야 한다고 해서, APlayerController이 아닌 ULocalPlayer로 캐스팅도 해봤는데, 런타임에서 바로 터집니다. 혹시 어느 부분이 문제일까요?모듈에는 EnhancedInput 추가했고, 로그에 해당 오류 말고 다른 오류가 발생하고 있지는 않습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Unreal 애니메이션이 기본적으로 MultiThread 옵션이 켜져있는 점에 대해서.
아마 성능을 위해 애니메이션 블루프린트 로직이 작업자 스레드에서 돌아가도록 옵션 켜는게 있는 것 같은데요. 많은 다른 예제에서 블루프린트 EventGraph 대신 Blueprint Thread Safe Update Animation 이라는 블루프린트 함수를 대신 사용하고 또, C++ 로도 NativeUpdateAnimation() 대신 NativeThreadSafeUpdateAnimation() 가 있더라구요. 그리고 블루프린트 전용 함수에서도 ThreadSafe 옵션을 켜고 끄는게 있는데 이걸 켜면 일반적인 C++ 함수를 호출할 수 없고, C++ 함수에 Meta = (BlueprintThreadSafe) 지정자를 설정하면 보이긴 하는데요. 여기서 NativeThreadSafeUpdateAnimation() 함수나 Meta = (BlueprintThreadSafe) 지정자를 붙인 C++ 함수에는동기화 기법( mutex 같은)을 사용해서 정말 내부적으로도 멀티스레드 프로그래밍 같이 코드를 짜야 하는건가요???
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TObjectPtr을 사용할 때 전방선언
TObjectPtr 클래스에는 static_assert 선언이 되어있습니다.UObject 에서 파생된 클래스인지 검사하고 에러메시지를 표시해주게 되는데요.우리가 평소 어떤 액터 클래스나 컴포넌트 클래스를 생성해서 사용할 때 내부에 TObjectPtr 을 사용해서 UObject 클래스를 등록하고 사용하게 됩니다.문제는 UObject 의 헤더파일을 바로 포함시키기 보다는 중복 참조와 컴파일 시간을 줄이기 위해서 전방선언으로 처리하는 경우입니다.이때 전방선언된 UObject 의 파생 클래스는 실제로 UObject 에서 파생되었는지 이 시점에서는 알 수 없습니다.하지만 실제로 그렇게 사용해보면 문제없이 사용되는 것을 확인 할 수 있었습니다.왜 TObjectPtr의 static_assert의 조건을 통과하는 것일까요?Ex)class UInputAction;TObjectPtr<UInputAction> UTestAction; // 왜 에러가 아닐까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
뷰포트에서 화면이 아래 위로 밖에 안움직입니다
움직임도 잘되고 v키를 눌러 시점 전환도 잘되는데 마우스가 오른쪽이나 왼쪽으로 가면 화면이 그쪽으로 돌아가지 않고 아래 위로만 회전합니다 혹시 마우스 관련 설정이 잘못된걸까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
21 : 41 OnGameClear OnGameOver 이벤트 노드
앞서 만든 코드에서는 OnGameClearCpp, OnGameOverCpp 이름으로 나오도록 했는데 미리 만드신것에선 이름을 다르게 지으신건가요?OnGameClear, OnGameOver이름이 다르길래 질문드립니다. +수정강의 뒤에 내용을 듣다보니 OnGameClearCpp, OnGameOverCpp 도 가져와 연결시켜주네요..미리만들어진것말고 제가 직접 만들어보고 있는데 저노드가 안보이는데 어떻게 추가를하면 될까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
8강 16:00분 class UCard* card; -> 컴포지션을 사용과 NewObject를 이용한 생성의 구분에 대한 질문
해당 코드에서UPROPERTY()TObjectPtr<class UCard> Card;컴포지션을 사용한 Card와UPROPERTY()UCard* Card = NewObject<UCard>();동적으로 생성한 Card의 정확한 차이와 구분을 모르겠습니다.어떻게 구분해서 사용해야 할까요?
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
에러메세지 뜨면서 막히는데 뭐가 잘못된건지 잘모르겠어요
플레이하면 정상작동되고 몬스터를 한대라도치면 HP가 안달고 esc로 종료하면 해당 메시지가 뜹니다.이 메세지는 왜 뜨는 건가요 ~?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
1강 Default Pawn Class가 바로 변경되지 않는 이유
안녕하세요1강 23:03 에서 강의 영상에서는 Ctrl+Alt+F11을 눌러 에디터 빌드를 완료를 하면 Default Pawn Class가 바로 ThridPersonCharacter로 변경이 되는데, 제 컴퓨터에서는 바로 변경이 되지 않습니다. cpp의 생성자 부분만 변경했음에도, 에디터를 끈 후 비주얼스튜디오에서 빌드를 한 후 다시 에디터를 실행해야 변경된 것이 확인되는데 왜 그럴까요? 제가 놓친 설정이나 빌드 방법이 있는지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Live Coding이 안되는 것 같습니다
안녕하세요 3강까지 수강 잘하고 있는 김동현 학생입니다.한가지 질문이 있습니다.cpp파일만 수정했을 경우 언리얼에서 (Ctrl+Alt+F11)단축키로 Live Coding으로 컴파일 하면 된다고 하셨었는데,이렇게 했을 경우 수정된 부분에 대한 LogTemp가 보여지지 않고 아예 에디터를 종료후, 비주얼스튜디오에서 컴파일 해야 수정된 부분까지 출력되는데 어떻게 해야 문제를 해결할 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
10강 내용에 대해서 질문드립니다.
안녕하세요 이득우님.이전에 다른분이 남겨주신 내용과 위치가 같은데요,380번째줄, void AABCharacterPlayer::ServerRPCAttack_Implementation(float AttackStartTime) 함수에 대한 질문이 있습니다. 수업을 위해서 401번째줄에 if(!PlayerController->IsLocalController()) 조건문을 넣어주신것 같아보이긴 하는데, 사실 엄밀하게는, 이 조건문은 아예 없어도 전혀 문제되지 않는 로직이라고 생각되는데 제가 잘못 생각한걸까요? 좀 찝찝하기도 해서, 혹시 제가 놓친게 있나 싶어서 질문 남깁니다. 위 조건문이 없어도 되는 이유는, 해당 로직이 있는 곳은 클라이언트에서는 절대 동작할 수 없는 Server RPC 함수 내부 코드이며, 그렇기 때문에 서버에서만 동작하는 상태가 보장되고, 추가로 서버에 있는 모든 PlayerController는 서버 클라이언트 서버 모델에서 항상 IsLocalController가 false가 되기 때문이라고 생각하였습니다.다른분의 질문에서 올려주신 IsLocalController 함수는 AController의 함수로 올려주셨는데, 저희가 사용하는 Controller는 현재 형변환에 의해 PlayerController이고, 언리얼에서 함수 호출을 살펴보면, PlayerController의 IsLocalController이 호출되는것 같습니다. 그래서 위의 로직에서if (NetMode == NM_DedicatedServer)return false;에 의해 false가 항상 반환될거 같은데, 혹시 제가 놓친 부분이 있을까요?=> 혼자 고민을 이것저것 해보고 테스트 해보면서, 아마도 이렇게 해주신 이유는 Listen 서버이기 때문에 그런것 같네요. 리슨서버에서는 리슨서버의 PlayerController가 bIsLocalPlayerController가 true가 나오더군요. 그럼에도 불구하고, 일반적으로 데디케이티드 서버 환경에서는 리슨서버를 생각하지 않기 때문에 위 조건문은 필요없을것으로 생각됩니다. 게임 환경을 Client로 바꿔서 사용하였을때를 생각해보았습니다. 그리고 추가로 질문이 하나 더 있습니다.강의에서 Multicast 방식을 각각의 Controller에 대해 Client RPC를 사용해주면서 네트워크 최적화를 설명하신것에 대해서, 저는 이 부분을 멀티캐스트 하나를 사용하는것과 월드 내에 모든 클라이언트에 해당하는 Controller에게 직접 Client RPC를 직접 각각 호출해주는게 좀더 네트워크 성능상 좋다, 라고 이해했는데, 이 부분은 제가 올바르게 이해한게 맞을까요? 언제나 좋은 강의 해주시고, 질문도 꼼꼼하게 달아주셔서 감사드립니다(_ _)
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
22:53분에서 나오는 FClassFinder 함수 질문입니다.
게임모드에 언리얼에서 제공하는 3인칭 템플릿 캐릭터 에셋을 디폴트 폰 클래스로 지정할 때 ConstructorHelpers::FClassFinder 함수에 템플릿으로 APawn을 지정해주셨는데 캐릭터는 폰을 상속받은 클래스인데 ACharacter로 지정하면 안되는 이유가 있나요? 해보니깐 컴파일 오류가 나던데요ACharacter로 클래스를 찾아야 오히려 더 명확하게 찾는게 아닌가 싶어서 질문드립니다.
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Live Codeing 오류 질문
안녕하세요 언리얼 엔진 5 를 공부중인데 저는 라이브 코딩이 잘 되지 않아서 그냥 라이브 코딩을 unable 한 상태로 쓰고 있습니다. net 이나 community 에서도 종종 같은 문제를 겪는 분들이 있던대 다들 해결방법을 찾으시진 못한 것 같더라구요 json file 을 parsing 할 때 뭔가 문제가 생기는 것 같은데 혹시 같은 문제를 경험해보셨거나 해결방법을 아시는지 궁금합니다 . 강의 감사합니다.
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
언리얼엔진 MMORPG 2D
언리얼엔진으로 만든 MMORPG 2D는 뭐가 있나요?
-
해결됨[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
git push 오류, C++ 연동 관련
강의를 다 보고 개인 포트폴리오를 준비하고 있는데 프로젝트의 파일 크기가 너무 커서 git에 push 가 안되고 있습니다. 에러코드는 이렇습니다. error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500해결방법으로 git config --global https.version HTTP/1.1git config --global http.postBuffer 157286400명령어로 HTTP 버전변경이나 버퍼 크기를 늘려보라는 답이 나와서 해봤는데 다 안먹히더라구요 그러면 그냥 push할 파일의 크기가 커서 그렇다고하는데 이럴때 어떻게 버전관리를 하시나요? 그냥 로컬에서만 하는것으로는 나중에 포트폴리오 제출할때 불편할것 같아요 두번째 궁금한것은 언리얼엔진과 C++의 연동입니다. 파트.4 가 그에 관한 내용이라고 들었는데 아직 안나왔더라구요 그래서 이전에 언리얼엔진4 버전 강의가 있던데 그것을 기반으로 언리얼엔진5 에도 적용해도 될까요?