묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[입문자를 위한 UE5] Part4. 언리얼 엔진 C++
섹션4 디아블로 방식의 컨트롤 강의 소스코드를 올려주실 수 있을까요?
안녕하세요.제목 그대로 섹션4 디아블로 방식의 컨트롤 강의 소스코드를 받고 싶습니다. 따라 하고 있는데요. 해당 강의 끝 부분에 커서를 따라서 캐릭터가 이동하지 않는 오류에 대해서 강의를 보면 갑자기 해결이 되기도 하고, 강의에 있는 해결 방식으로 해결이 안 됩니다.ㅠㅠ해결된 소스파일과 제 소스파일을 비교해서 어느 부분이 문제인지 보고 싶습니다. 부탁드립니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
MSB3073 빌드 에러
안녕하세요 수업자료 비주얼 스튜디오에서 빌드시 아래 에러가 발생하는데 무엇이 문제일가요?Severity Code Description Project File Line Suppression State DetailsError MSB3073 The command ""C:\Program Files\Epic Games\UE_5.1\Engine\Build\BatchFiles\Build.bat" ArenaBattleEditor Win64 Development -Project="F:\Workspace\Unreal5\Inf_LDW_GAS_Lecture2\ArenaBattleGAS.uproject" -WaitMutex -FromMsBuild" exited with code 6. ArenaBattleGAS C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
IsLocalControlled와 오너쉽
8강 48분 40초에서 Client, Server RPC의 사용 조건인 엑터의 오너쉽 여부를 IsLocalControlled함수로 파악하라고 되어있습니다.근데 서버에서 ROLE_Authority / ROLE_AutonomousProxy에 해당 하는 엑터는 IsLocalControlled가 false인데 클라이언터와의 커넥션은 가지고 있어 client RPC가 사용 가능하고,ROLE_Authority / ROLE_SimulatedProxy는 IsLocalControlled가 true이지만 커넥션 없을 수도 있어 Client RPC를 사용하지 못할 수 있지 않나요?hasAuthority등으로 서버, 클라이언트 여부를 먼저 파악한뒤 클라이언트 일 때 커넥션 오너쉽을 확인하기 위한 용도로 isLocalConrolled를 사용할 수 있다는 뜻인지, 아니면 제가 isLocalConrolled 자체를 잘못 이해한 건지 헷갈립니다. 그리고 오너쉽, 소유라는 단어의 개념이 혼동됩니다.46분 40초에서 pawn의 '오너쉽', 50분의 표에서 클라 '소유', 서버 '소유'에서의 '오너쉽'과 '소유'는 해당 프로세스가 해당 엑터에서 isLocalControlled가 true가 나와 컨트롤 권한을 가지고 있다는 의미이고,Client, Server RPC의 사용 조건인 엑터의 '오너쉽' 여부에서의 '오너쉽'은 최상위 오너 엑터가 커넥션을 가진 playerContoroller인 경우를 의미하는게 맞나요?
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
character와 controller의 onrep_playerstate
character와 controller 모두 onrep_playerstate 함수를 사용하고 있습니다. 지금 제 코드는 controller의 onrep_playerstate 에서는 playerstate를 초기화하고, playerstate 안에 변수 값들을 HUD에 바인드 하고 있고character의 onrep_playerstate 에서는 playerstate의 변수 안에 값을 넣는 상황인데controller->character라는 기존의 프레임워크 실행 순서와는 다르게onrep_playerstate 함수가 리슨서버의 클라이언트 입장에서 매번 실행 순서가 뒤바뀌는 경우가 발생합니다. 이유를 찾아보니 playerstate를 서버에서 클라이언트로 리플리케이트하는데 매번 지연속도가 다르다고 하는 것 같은데 이럴 경우는 어떻게 해야할까요? settimer를 사용하는 방법은 지양되는 방식이라는 의견이 많아서 다른 해결방법을 모르겠습니다.
-
미해결[왕기초] 후디니 게임 이펙트 만들기
"Flipbook 추출하기 " 중복 영상제보 합니다.
Flipbook 추출하기 영상이 내용이Flipbook 언리얼 임포트 하기 영상과 동일합니다.즉 , Flipbook 언리얼 임포트 하기 영상이 없습니다.확인 바랍니다.
-
미해결[왕기초] 후디니 게임 이펙트 만들기
POP원리 이해하기 01,02 중복영상
강사님 덕분에 후디니 강의 쉽게 배우고 있어서 감사드립니다.시청중에 확인해보니 pop원리 이해하기 01 과 02가 중복 영상 입니다.확인 바랍니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
블록 태그 관련 질문
안녕하세요. 블록 태그 관련해서 질문 있습니다.강의에서는 각 어빌리티별로 블록할 태그들을 설정하고 있는데 이런 방식이라면 새로운 태그를 추가할 때마다 기존에 있던 어빌리티들의 블록할 태그에 해당 태그를 일일이 추가해줘야 하잖아요? enum 클래스를 사용해서 state패턴으로 구현하는 방법처럼 더 나은 방식은 없을까요?일반적으로 게임에서는 두 가지 이상의 행위를 동시에 하는 것은 막고 있기 때문에 블록 태그 같은 부정문 방식보다는 state패턴처럼 긍정문 방식이 더 좋을 것 같아 질문합니다.
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
뷰포트 play 버튼 클릭시 카메라 초기화
안녕하세요 강의를 보고 열심히 따라해보고 있습니다. 뷰포트에서 play 버튼을 누르는데, 항상 origin 위치로 초기화가 되더라구요. 강사님께서 마지막 슬라임 경주 강의 찍으실 때 보면, play 버튼 누르면 편집하던 위치에서 시작되던데, 어떻게 그렇게 할 수 있나요?
-
미해결언리얼 엔진4 (Unreal Engine) 3D 횡스크롤 게임 만들기
exe 빌드할 시 컷씬 이후 화면 꺼짐
완성된 프로젝트 파일을 다운로드 받아 exe파일을 만들어 실행해보았는데, 컷씬 재생 이후 플레이어 체력 등 UI들만 출력되고 화면이 까맣게 되어 아무 것도 안보입니다. 어떻게 해결하나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
delegate wrapper 사용 이유
안녕하세요 좋은 강의 정말 감사드립니다.다름이 아니라 delegate wrapper 사용 이유가 궁금하여 질문 드립니다.선생님께서 delegate를 다수 배열로 관리하기 해야 하는데 이 자체를 인자로 쓸 수 없다고 하신 부분이 잘 이해가 되지가 않습니다. 어느 부분을 인자로 쓸 수 없는지에 대해 구체적으로 말씀해주실 수 있나요?FTakeItemDelegateWrapper 랩퍼 구조체가 아닌 FOnTakeItemDelegate 델리게이트를 TArray 배열에 넣을 수도 있고이런 식으로 바인드도 되고, 실행도 되는데 왜 델리게이트 랩퍼 구조체를 따로 만들어야하는지가 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
enhanced input 키 동시입력
안녕하세요 교수님, void APACharacterPlayer::Move(const FInputActionValue& Value) { FVector2D MovementVector = Value.Get<FVector2D>(); const FRotator Rotation = Controller->GetControlRotation(); const FRotator YawRotation(0, Rotation.Yaw, 0); FVector ForwardDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X); FVector RightDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y); if (bIsRunning) { if (MovementVector.Y != 0) MovementVector.Y = 0; if (MovementVector.X == -1) MovementVector.X = 1; AddMovementInput(ForwardDirection, MovementVector.X); } else { if (MovementVector.Y != 0 || MovementVector.X == -1) bCanSprint = false; else bCanSprint = true; AddMovementInput(ForwardDirection, MovementVector.X); AddMovementInput(RightDirection, MovementVector.Y); UE_LOG(LogTemp, Log, TEXT("X = %f y = %f"),ForwardDirection.X, RightDirection.Y); } } 위 코드는 3인칭 게임플레이를 위해 강의 기반으로 작성한 코드입니다. bCanSprint 및 Running 로직은 무시하셔도 됩니다.발생한 문제는 키의 동시 입력을 받을 때 입니다. 왼쪽 방향키를 누른 채로 오른쪽 방향키를 누르면 MovementVector 값이 1.0 으로 변해서 오른쪽으로 잘 이동 하는데, 오른쪽 방향키를 누른 채로 왼쪽 방향키를 누르면 벡터 값이 변하지 않아 계속 오른쪽으로 갑니다. 똑같이 앞 방향키를 누른 채로 뒷 방향키를 누르면 뒤로 가지는데, 뒷 방향키를 누른채로는 앞으로 갈 수가 없습니다. 물론 따로따로 한 버튼씩 서로 역이 되는 방향키를 누를 때는 값이 알맞게 잘 변경됩니다. 원하는 로직은 두 가지 중에 하나입니다.동시입력이 들어왔을 경우 마지막 입력 방향으로 이동동시입력이 서로 반대 방향으로 들어왔을 경우 상쇄되어 정지 로직을 어떻게 수정해야 할까요? 동시입력(오른쪽 홀드+왼쪽이동, 뒤쪽홀드 + 앞쪽이동) 할 때만 벡터값이 제대로 변하지 않는 이유를 못 찾겠습니다..
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
리슨 서버 시 위젯 부착 관련
//CharacterBase.hif (!IsLocallyControlled()) { UE_LOG(LogTemp, Log, TEXT("LocallyControlled")); InfoBar = CreateDefaultSubobject<UWidgetComponent>(TEXT("Widget")); InfoBar->SetupAttachment(GetMesh()); InfoBar->SetRelativeLocation(FVector(0.0f, 0.0f, 210.0f)); static ConstructorHelpers::FClassFinder<UUserWidget> InfoBarWidgetRef(TEXT("/Script/UMGEditor.WidgetBlueprint'/Game/ProjectA/Blueprints/UI/WBP_InfoBar.WBP_InfoBar_C'")); if (InfoBarWidgetRef.Class) { InfoBar->SetWidgetClass(InfoBarWidgetRef.Class); InfoBar->SetWidgetSpace(EWidgetSpace::Screen); InfoBar->SetDrawSize(FVector2D(300.0f, 75.0f)); InfoBar->SetCollisionEnabled(ECollisionEnabled::NoCollision); } }안녕하세요 교수님, 리슨 서버로 동작 시킬 때 제가 만든 InfoBar 를 로컬의 캐릭터에는 부착하지 않고 로컬이 바라보는 프록시들에게만 부착을 하고 싶습니다. 그래서 제 생각에는 로컬로 컨트롤 되고 있다면 위젯을 생성하지 않는 방식으로 해결을 하려 했는데, 그럼에도 InfoBar 가 생성되어 부착됩니다.어떻게 하면 제가 의도한 대로 로컬에서는 프록시의 InfoBar 만 보이게 설계 할 수 있을까요?
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
이벤트 vs 함수 차이
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이벤트 경우에 시작되는 지점은 알 수 있지만 끝나는 시기를 모른다는 의미를 잘 모르겠습니다. 일단 실행되면 끝날 때까지 이벤트 함수에 머무는 것이 아니라 비동기적으로 처리하는 건가요? 딜레이를 이벤트에서는 사용가능하지만 함수에서는 사용하지 못 하는 게 함수는 점유율을 100% 다 가져가서 다른 코드가 실행될 여지를 빼았기 때문인가요? 반대로 이벤트는 점유율이 왔다갔다 왕복하면서 실행이 되는 건가요?
-
해결됨[왕기초] 후디니 게임 이펙트 만들기
export 오류에 관해 질문드립니
초심자에게 빛줄기와 같은 강의입니다 감사합니다 다만 문제가 생겼는데 export 따라하는 과정에서 vat abc fbx 방법들이 후디니 프리버전에선 지원하지 않는다고 오류(FBX export Apprenticeis not supported in houdini.)가 뜨는데 학생이나 인디버전 사용하면 해결 될까요?
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
애니메이션 커브 Rotation관련 질문드립니다.
섹션3 애니메이션 - 애니메이션 커브강의에서 궁금한점이 있느데요.Get Curve Value가 리턴하는 값을 print text 함수를 통해서 로그를 찍어보았는데, Right로 돌리는걸 기준으로 해서 제 예상에는 -90, -80, -70 ... 0 이렇게 될거라고 예상을 했는데, 실제로 로그를 찍어보니, -1, -10, -20, ... -80, -75, -70, .... 0 이런느낌으로 찍히는데, 이유를 잘 모르겠습니다.Right Animation에서 Rotation Curve는 -90~0으로 세팅되어있습니다.
-
미해결[입문자를 위한 UE5] Part4. 언리얼 엔진 C++
SimpleMoveToLocation() 작동 안함.
디아블로 방식의 컨트롤 강의중 PlayerController에서 클릭 했을 때 그 위치로 이동하는 SimpleMoveToLocation()함수가 작동을 안 하는데 네비메쉬 문제 일까요?
-
미해결언리얼5 액션 RPG 만들어봐요!! 파트1
강의자료 구글 드라이버가 끈겨습니다
언리얼 C++은 의지가 있어야 합니다. 저는 여러분들이 프로그래밍 언어와 언리얼 엔진에 대해서 많은 관심이 있어서 강의를 듣는다고 생각합니다. 여러분들의 미래를 위해서 시간 투자 많이 해주시고, 네이버 카페를 통해서 적극적으로 해 주셔서 언리얼 엔진에 푸짐하게 익숙해 지셔서 여러분들의 미래를 여러분들이 만들어 가기를 바랍니다.https://cafe.naver.com/insaneoops//구글드라이버가 끈겨습니다 ~ ;;;어디서 자료를 받아야하나요 ?아 2 번에 코드만 모아논건 살아있내요
-
미해결[입문자를 위한 UE5] Part4. 언리얼 엔진 C++
GamePlayAttribute & Protobuf
데디서버가 아닐때 protobuf 클래스를 그대로 사용하는 것을 상당히 좋은 방법이라고 생각했었는데, GameplayAttribute를 쓰면 앞의 방식을 포기하게 되는 경우가 있었나요? 아니면 사용하기는 하나 GameplayAttribute를 위해 protobuf에서 FGameplayAttributeData쪽에 복사를 해서 사용하려나요...
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
데디케이티드 서버 관련 질문
안녕하세요, 강의 관련 질문은 아니지만 궁금한 점이 생겨 질문 올립니다. 개인 프로젝트로 TPS 생존 게임을 제작하려 합니다. 한 경기에 10명 내외의 클라이언트가 접속할 예정입니다.언리얼 엔진에서 제공하는 리슨 서버와 데디케이티드 서버 중 어떤 방식이 알맞을까요?만약 데디케이티드 서버가 알맞다면 리슨 서버에서 구현했던 if(Hasauthority()) 등의 로직들은 제거해주면 되는 것인가요? 만약 데디케이티드 서버로 구성하면 어디서 클라이언트의 데이터 검증을 하게 되는지 등 리슨 서버와 어떻게 다르게 구성해야 하는지 잘 와닿지가 않습니다. characterplayer.cpp 등에 작성한 코드 자체가 서버 로직임과 동시에 클라이언트 로직인 것인지.. 인터넷에는 데디 서버를 구축하는 방법만 나와 있어서 여쭈어 봅니다. ++) 그리고 게임을 제작할 때 BP와 C++을 혼용해도 상관 없을까요? 강의는 전부 C++로 진행되어서 웬만하면 C++로 제작할 예정이지만, BP를 혼용하여 사용하는 것에 있어서 주의점 등이 있는지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000004
UE_LOG(LogTemp, Log, TEXT("%s 수업에 입장합니다.")); f로그에 %s등을 넣고 뒤에 *Name을 뺴먹고 Interface 호출시 잘못된 액세스 오류 발생하였습니다. %s를 지워주니까 잘 동작합니다!좋은 강의 해주셔서 감사합니다!