묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TsubclassOf 오류 관한 질문
현재 저부분에서 AABCharacterNonPlayer을 찾지못한다고 UHT001 오류가 나서 혼자 반나절을 해결해보려했지만 잘 모르겠습니다 제가 어느부분을 체크해보는게 좋을까요 강사님의 파일은 Generate 해서 실행해보면 잘 실행됩니다. 심지어 같은 코드를 붙여넣기해도 같은 오류가 나옵니다.또한 cpp파일에서도헤더를 추가했음에도이러한 ABChracterNonPlayer에 관한 오류가 발생합니다..
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
게임 서버 몬스터 ai에 관해 궁금한게 있습니다.
게임 서버에서 몬스터 ai(state machine)를 돌린다고 했을 때 제가 생각한 방식은 서버에서 일정 주기마다 랜덤으로 상태변화가 일어나게 구현하는 것인데, 더 좋은 방식이 있을까요?
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
IsTargetInRange(데코레이터) 내용 오류 아닌가요?
Q. 마지막에 삽입한 IsTargetInRange(데코레이터) 에서 Target에 SelfActor를 참조하도록 되어있는데 TargetEnemy를 참조해야 하는 것 아닌가해서요데코레이터 로직 안에서 Target의 오브젝트 이름을 출력해보니 Player가 아니라 Monster가 찍히더라구요(SelfActor에 값을 할당해준 적도 없는데 왜 들어간 건지는 모르겠지만...)
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
강의 내용을 바탕으로 다른 프로젝트를 만들던 중 스프링 암에 대해궁금한 점이 생겼습니다.
안녕하세요 교수님교수님의 강의에서 항상 큰 도움을 얻고 있습니다.그러다 강의에서 배운 내용을 바탕을 실제 프로젝트에 적용하기 위해 실습을 하던 중 막히는 부분이 생겨 질문글을 작성하게 되었습니다. 스프링 암에 관련된 설정 중CameraBoom->bUsePawnControlRotation = false;CameraBoom->SetRelativeRotation(FRotator(0.0f, -20.0f, 0.0f)); 위와 같이 설정하여 스프링 암의 로테이션을 변경할 수 있음을 확인하였습니다.그러나 이 경우, Pawn의 회전에 따라 스프링 암의 회전이 같이 이루어져 플레이하는 시점에서 불편함을 느끼게 되었습니다.혹시 bUsePawnControlRotation을 true로 유지하면서 스프링암의 로테이션을 변경할 수 있는 방법은 무엇인지 궁금합니다.
-
해결됨언리얼로 만드는 게임사운드 - 중.고급 과정
무료 드럼 샘플 링크 공유드립니다.
메타사운드 기초3(Trigger) 강의에서 드럼샘플이 사용 되는데요.혹 필요한 분들이 계실까 하여 공유드립니다.(저와는 아무런 이해관계가 없으며, 100% royalty-free 입니다.) https://wavbvkery.com/acoustic-drum-samples/
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
캐릭터의 기본 설정 값을 Attribute와 연동
캐릭터에서 기본적으로 제공되는 MaxWalkSpeed나 JumpZVelocity같은 값들을 AttributeSet과 연동하여 사용할 수 있는 방법이 있을까요? 이런 값들도 GAS를 통해서 조정할 수 있다면 좋을 것 같아 질문 남깁니다.
-
미해결[입문자를 위한 UE5] Part4. 언리얼 엔진 C++
언리얼 라이브 멘토링 관련 질문
우선 이 강의 학습 관련 질문이 아니어서 죄송합니다.5월에 Lyra Speed Cloning 이라는 라이브 멘토링을 진행한 것으로 알고 있는데, 지금은 언리얼 관련 라이브 멘토링을 따로 하지 않으시는지 궁금합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
2-8강 손에 무기 장착이 되질 않습니다...
안녕하세요 교수님, 2-8강에서 아이템 박스를 먹었을때 캐릭터 무기가 안 먹어지는 문제에 봉착했습니다... 캐릭터 생성자에서 weapon skeletal component는 만들어주었고 아이템 박스를 먹었을때 EquipWeapon 함수도 성공적으로 실행됩니다. Data Asset Table에 무기도 설정해주었구요. 디버깅을 위해서 EquipWeapon 함수를 실행했을시 DataAsset에서 가져온 skeletal mesh의 경로도 다시 한번 뽑아주어서 확인해보았습니다. 하지만, 캐릭터의 무기를 얻질 못하네요... 혹시나 해서 2번째 그림에 보시는 것과 같이 무기의 visibility, 재 rendering 등등을 해보았지만 문제가 해결되지 않아서 여기에 질문을 올립니다~
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
Beach, Sequence, flip flop강의에서 flip flop 의 다른 표현 방식이 이해가 안가요..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 강사님 강의가 유익하고 너무 잘 듣고있습니다.다름이 아니라 제가 계속 들어도 이해가 안가는 부분이 있어서 질문남깁니다..사진과 같이 bA의 변수 get(거짓)값을 가져와서 not Boolean 노드와 연결해 ‘참’의 출력값이 set bA의 입력값으로 들어갔잖아요, 그럼 Set bA의 출력값이 set bA의 입력값인 ‘참’이 출력값으로 나와서 branch 노드의 true 값만 출력되어야 하는거 아닌가요?? 랜덤으로 나올 수 있는 로직구조인지가 이해가 안돼서 글 남겨요…! 감사합니다..
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
멀티플레이어 프레임워크가 서버프로그래밍의 상위호환인가요?
포트나이트까지 언리얼 멀티플레이어 프레임워크로 제작할 수 있다면 서버개발자는 굳이 필요가 없을거같은데 언리얼의 멀티플레이어 프레임워크를 사용하면 서버 개발자를 대체할 수 있는건가요? 서버 개발자로 근무중인데 강의를 듣고 커리어 측면에서 궁금한 점이 생겨 질문드립니다
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
FProperty와 FField가 무엇인가요?
안녕하세요. 리플렉션 관련 강의를 보다 궁금한게 생겨 질문드립니다.FProperty* 를 통해 리플렉션을 통해 변수의 값을 가져오는 강의의 내용을 보다가,FProperty가 뭔지 궁금해서 엔진 코드를 약간 열어보다가 UProperty와 함께 리플렉션을 위한 클래스인 것을 알게 되었습니다. 두 개는 각각 FField, UField(이것의 경우 UObject까지 상속받기는 함)을 상속받는데,FField나 UField나 주석이 똑같이Base class of reflection data objects.라고 작성되어 있는데 설명된 문서도 못 찾겠어서 뭔지 잘 모르겠습니다. UField, FField 나 UProperty, FProperty 등 U나 F 접두사가 다른 리플렉션 클래스들이 무엇이 다르고 차이점과 용도가 어떻게 다른 것인가요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TSoftObjectPtr 로 변경해도 로그가 동일합니다.
부득이하게 언리얼버전을 5.4 로 강의를 따라하고있습니다.그런데, 강의에서 나온것처럼 코드를 작성해도 로그를확인해보면 결과가 동일한데 어떤 문제일까요..?로그는 박스 먹기전에 찍은로그입니다
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
WidgetComponent의 Widget의 GetOwning~() 함수 관련 질문..
궁금한것이 생겨서 아무 의미 없는 액터에 WidgetComponent를 붙인 다음, WidgetComponent의 GetWidget()이 가지고 있는 OwingPlayer 와 OwningPlayerPawn가 무엇인지 확인해봤더니 nullptr 이 나올 것으로 예상한 것과는 다르게실험한 액터와 상관없는, 월드에 있는 PlayerController_0 와 그 빙의된 캐릭터인 Character_0가 반환되는 것을 확인했습니다.WidgetComponent를 어떤 액터가 가지고 있던 간에 항상 같은 PlayerController_0와 Character_0가 반환되는 것 같은데요.제 실험 방식이 원래 말도 안되는 것인지, 아니면 원래 WidgetComponent가 만드는 UserWidget 은 무조건 해당 월드의 LocalPlayer와 그것에 빙의된 Pawn이 고정으로 정해진 것인지가 궁금합니다.
-
해결됨언리얼로 만드는 게임사운드 - 중.고급 과정
기초1 트리거 파트 수업 자료 관련 질문
메타사운드 기초1 트리거 파트 드럼 샘플은 업로드 따로 안해주시나요?강의 보며 차근차근 따라해보고 싶은데 샘플이 없어서 너무 힘들어요.ㅜ
-
해결됨[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
언리얼5 입문하려면 컴퓨터 사양을 어느 정도로 맞춰야 할까요?
맘만 급해서 일단 강의 결제는 해둔 상태에서 이제야 스터디 해보려 하는데요.현 PC 사양은CPU : 라이젠 3600GPU : GTX2070 superRAM : 32g 정도의 PC를 사용하고 있습니다.시작에 앞서 언리얼 같은 경우엔 높은 사양이 필요하다는 말을 많이 들어서적당하게 새로운 PC 구입하려고 알아보니 인터넷에선 너무 터무니없게높은 스펙으로 400~500만원 가량의 견적을 내고 있더라구요. 그리고 게임 개발에선 다다익램이라는 말이 있던데.. 64기가 이상의 램이 필요할까요? 2D , 3D 전부 게임서버와 클라 연동해서 상용화까진 아니더라도 온라인으로 돌려보고 싶은데어느정도 사양으로 맞춰야 할지 대략적인 조언좀 부탁드릴 수 있을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
UE 5.4부터 강의 섹션 3 - 9강 무한맵의 제작 파트의 예제 코드에서 다음의 수정이 필요해 보입니다.
참고 URL : https://forums.unrealengine.com/t/gameplay-ability-system-course-project-development-blog/1419542/14 언리얼 엔진 5.4 이전의 버전에서는 예제 코드를 빌드해도 문제없이 빌드되지만,언리얼 엔진 5.4버전 부터는 ABStageGimmick.cpp 파일에#include "Engine/OverlapResult.h" 을 작성해줘야FOverlapResult과 관련해 발생하는 문제가 사라지는 것 같습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
언리얼 엔진 C++ 가변 배열에 대해서
저는 최근에 면접 키워드를 정리하면서 가변 배열에 대해 알게되었는데 정보가 너무 오락가락이여서 여쭈어 봅니다. C#의 가변배열을(Jegged Array) 라 불리고보통 영어로 번역하면 Variable Array 변하는 배열 이라고도 하는데. Dynamic Array가 현재 TArray 개요에서 나오는데 이것은 동적 배열을 의미해서 해당 C++에서 new와 malloc과 같은 방식의 할당 방식을 의미하는 것이라고 알고 있는데, 위와 같이 모든 어원적 의미는 다 동일한 것인가요?또C++ 가변 배열은 결국 구조체를 생성해서 해야하는 것인지?아니면 그냥 C++자체적으로 구현하는 방법이 있는 것인지. 1. Jagged Array, Variable Array, Dynamic Array는 모두 같은 가변배열인 것인지. 2. C++ 에서 말하는 가변배열이 언리얼 에서 말하는 TArray의 가변배열과 동일한 것인지.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
람다 함수 캡쳐 관련 질문
안녕하세요 교수님, 람다 함수 캡쳐 관련 질문이 있어서 글을 올렸습니다. fps 프로젝트를 만들고 있는데, VICharacter 에서 reload 를 호출하면 VIWeaponbase를 상속받는 AKWeapon 에서 Reload 함수가 호출이 되는 형식입니다.VICharacter 에 bIsReloading 을 선언해 놓았는데, AKWeapon에서 캐릭터 참조를 가져와 재장전이 끝난 후 setter 로 false 설정을할 때 Timerdelegate 람다식에서 Character에 액세스를 하지 못합니다. 제 생각에는 참조의 생명 주기에 문제는 없는 것 같은데,, 왜 람다식 안에서만 캐릭터 참조를 사용 못하는지 모르겠습니다.아래는 Reload 코드와 프로젝트 깃허브 주소입니다. void AVIAKWeapon::Reload() { Super::Reload(); if (UWorld* World = GetWorld()) { APlayerController* PC = UGameplayStatics::GetPlayerController(World, 0); if (PC) { AVICharacter* Character = Cast<AVICharacter>(PC->GetCharacter()); if (Character) { if (AmmoCount < MaxAmmo) { if (!bDoOnceReload && !Character->GetbIsReloading()) { Character->SetbIsReloading(true); Character->GetFirstPersonMesh()->GetAnimInstance()->Montage_Play(AKReloadActionMontage, 1.0f); Mesh->PlayAnimation(ReloadActionAnimation, false); FTimerHandle ReloadTimeHandle; GetWorld()->GetTimerManager().SetTimer(ReloadTimeHandle, FTimerDelegate::CreateLambda([&]() { Character->SetbIsReloading(false); AmmoCount = MaxAmmo; //DF("EndTimer bisRelaoding %d", Character->GetbIsReloading()) // TimerHandle 초기화 GetWorld()->GetTimerManager().ClearTimer(ReloadTimeHandle); }), ReloadTime, false); bDoOnceReload = false; } } } } } }https://github.com/chataeg/VI/tree/Part7
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
Play Animation과 Play Anim Montage
강의에서 사용한 Play Anim Montage는 현재 메시 컴포넌트가 사용하는 ABP_Player(애니메이션 블루프린트) 안에 있는 몽타주에 접근해 재생시키는 것인가요? 애니메이션 관련 액션을 검색하다 Play Animation을 발견해서 사용해봤는데 ABP_Player(애니메이션 블루프린트)를 무시하고 Play Animation으로 재생한 것만 1순위로 실행하더라구요. (설명을 읽어도 안전하지 않으니 비추천한다는 것 같고) 그럼 Play Animation은 ABP_Player(애니메이션 블루프린트)의 실행을 무시하고 메시를 강제로 특정 애니메이션을 재생시키도록 작동하는 것일까요? 강의 잘 듣고 있습니다. 감사합니다. ps. 추가로 강의 관련 궁금한 점이 있습니다.유니티 MMORPG 만들기 강의와 켠김에 출시까지 강의 시리즈 중에서 실무적인 팁이나 지식을 얻기 위해서는 켠김에 출시까지를 들어보는 것이 좋을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Shipping 빌드의 save 파일은 어디에 저장되나요?
Shipping 빌드로 패키징한 exe 파일로 게임 진행 시 RetryCount를 보관하는 save 파일은 어디에 어떤 형태로 저장되는 지 궁금합니다.