묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
iocp 질문
iocp 를 설명하는 부분에서 메인 쓰레드에서 CreateIoCompletionPort 함수로 cp 에 소켓을 넣고 WSARecv 를 해주면 그 다음부터는 다른 쓰레드에서 WSARecv를 해줘야 한다고 하셨는데 그렇다면 그 소켓은 cp 에 게속 있으면서 이벤트를 받는건가요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
map과 레드블랙트리가 같은건가요?
레드블랙트리 부분 강의를 들었는데규칙은 외울 필요 없이 이해만 하고, map을 사용하면 된다고 하셨는데map과 레드블랙트리가 같은건가요?
-
미해결[입문자를 위한 UE5] Part5. 언리얼 엔진 VR
오큘러스 컨트롤러의 버튼들을 인식하지 못합니다
안녕하세요 강사님기본 이동 부분을 다 따라하고 테스트 해봤는데 조이스틱을 움직여도 캐릭터가 이동하지 않습니다.키보드 W를 눌렀을 때는 정상적으로 이동을 합니다.컨트롤러를 움직이면 캐릭터의 손도 같이 움직이는데조이스틱을 움직였을 때는 아무 반응이 없네요.언리얼 기본 VR 컨텐츠 맵에서는 정상적으로 작동합니다.제 힘으로는 도저히 어디가 문제인지 모르겠어서 질문 드립니다 ㅠㅠ
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
게임서버 엔진 섹션을 듣다가 궁금한게 있습니다.
게임서버 엔진 부분 챕터 부분이 서버의 밑단을 직접 구축해보는 파트인 것으로 알고 있는데 언리얼 엔진에서 클라이언트와 연동을 할 때도 이러한 밑 단을 구축할 방법이 있는 것인지 궁금합니다. 또한 용어에 대해 궁금한 것이 언리얼 엔진에서 리슨서버나 데디서버를 사용한다는 것이 포톤서버와 같은 상용 서버를 사용하는 것인지 궁금합니다. 아니면 본 강의에서 처럼 iocp를 사용하는 개념과 비슷한 개념인지 궁금합니다. 감사합니다.
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
페이퍼 캐릭터 빙의 관련 질문
1 섹션 수업을 따라가다가 막히는 부분이 있어 질문 드립니다.수업 내용대로 페이퍼 캐릭터를 상속받아 BP_Knight 클래스를 생성하고 스프라이트에 소스 플립북을 적용시켰습니다. 이후 스프링암과 카메라 컴포넌트를 추가 했습니다. 에디터에서는 이런 모습입니다.아직 빙의를 하지 않은 상태에서는 수업 내용대로 중력의 영향을 받아 낙하가 되었습니다. 그런데 BP_Knight 에 플레이어 자동 빙의를 Player 0 으로 설정하고 실행하면 수업 내용대로 라면 실행했을 때 카메라가 BP_Knight에 빙의되어 낙하되는 걸 따라가며 찍어야하는데 왜 인지 원래는 낙하가 되었던 BP_Knight 가 낙하도 되지 않고 카메라가 빙의도 되지 않는 것 같습니다.수업 내용을 그대로 따라하며 진행했는데 제가 실수한 부분이 어디 인지를 모르겠습니다.
-
해결됨[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
이벤트 디스패처와 델리게이트에 관한 질문
마지막 강의인 이벤트 디스패처 부분까지 수강했습니다.좋은 강의 제공해 주셔서 감사합니다.다름이 아니라 언리얼 엔진에서의 함수와 이벤트, 델리게이트를 제가 추상적이게나마 맞게 이해한 것인가 궁금하여 글 남겨봅니다.1. 함수- 함수는 기존 C나 C++언어에서와 같이 반환값, 함수명, 매개변수가 있다.- 클래스 안의 멤버 함수(메서드)라면 접근 제어 지시자를 통해 외부에서의 접근을 제어할 수 있다.- 함수는 호출되면 딜레이를 시킬 수 없고 즉시 모든 로직을 실행하고 적절한 값을 반환한다.2. 이벤트- 함수와 유사하지만 실행 과정에서 딜레이를 시킬 수 있다.- 이벤트(함수포인터)를 델리게이트에 추가?(등록)하여 여러 이벤트들을 동시에 병렬로 실행할 수 있다.3. 델리게이트- 이벤트(함수)의 함수 포인터를 저장하여 관리(추가, 삭제, 호출, 등)할 수 있는 어떤 자료 구조가 있다.- 등록된 이벤트들을 차례대로 각각 일정 시간동안 실행(병렬)한다.- 블루프린트 클래스의 이벤트 그래프에서 생성한 이벤트들은 모두 델리게이트에 추가(등록) 되어 관리 된다.4. 바인딩과 언바인딩- 이벤트 디스패처에 의해 바인딩 된 이벤트는 델리게이트에 추가된다.- 언바인딩된 이벤트는 델리게이트에서 삭제된다.5. 마지막 수업 내용 중 이벤트와 델리게이트 부분에 대한 정리Slimes 배열을 순회하며 각 BP_Slime 클래스의 OnArrivedEvent 커스텀 이벤트를 델리게이트에 추가(총 4개 등록)한다. -> 이게 바인딩인가? 델리게이트에 등록된 모종의 이벤트에서 내부적으로 현재 레벨에 콜리전이 있는 모든 액터들의 위치 정보를 실시간으로 확인한다.위치가 겹치는 액터(클래스)가 있다면 해당 액터(클래스)의 ActorBeginOverlap 이벤트를 델리게이트에 추가(등록)한다. 등록된 ActorBeginOverlap 이벤트 안에서 OnArrived 함수(이벤트 디스패처)를 호출한다. OnArrived 함수(이벤트 디스패처) 안에서 바인딩 된 (델리게이트에 등록된) OnArrivedEvent 커스텀 이벤트를 호출(실행)한다.-> 그럼 각 BP_Slime 클래스는 이벤트 디스스패처와 바인딩되어 델리게이트에 등록된 커스텀 이벤트의 함수 포인터나 호출할 수 있는 어떤 정보를 갖고 있는 것인가? OnArrivedEvent 커스텀 이벤트(함수 포인터)를 델리게이트에서 삭제한다. -> 이게 언바인딩인가?
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
연습문제 Player vs Monster강의 변수생성 질문
연습문제 Player vs Monster강의 듣고 있는데레벨블루프린트에서 BP참조로 불러오고 변수로 생성하는 부분에서 BP_Player, BP_Monster 검색했는데 강의화면에서는 액터 아이콘이 나오는데 저는 다른 아이콘이 나옵니다.뭘 잘못한 걸까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
학습전용 디스코드 서버 초대의 건
수강생 여러분들 안녕하세요. 이득우의 언리얼 프로그래밍 강사 이득우입니다.언리얼에 처음 접하는 분들이 학습에 여러움을 겪는 것 같아 간단한 질답 및 대화를 주고받을 수 있도록 제자들과 함께 디스코드 서버를 열었습니다. 아래 초청 주소를 통해 가입하신 후 별도 채널 내에서 수강 인증을 해주시면 보다 상세하게 답변드리겠습니다.디스코드 초청 주소 : https://discord.gg/G45cCJ4AKs이득우 드림.
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
Cast To WBP_HpBar를 해주었는데 Get HpProgressBar가 없습니다.
영상 10:48초 부분입니다.먼저 WBP_HpBar에 ProgressBar를 생성해 HpProgress로 이름을 바꿔주었습니다.다음 BP_Creature의 컴포넌트에 Widget을 추가하고 Detail창에 있는 Widget Class에 WBP_HpBar을 연결해 주었습니다.그리고 Cast to해주었는데 get HpProgressBar를 꺼내 줄려고하는데 없다고 뜹니다 ㅜGet HpProgressBar가 생성이 안되는 이유가 있을까요?3번정도 반복해서 들었는데중간에 놓친부분이 있을까요?
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
Enemy AI 응용관련
적 체력이 45이고 플레이어 총 데미지가 10일때 적 체력이 0~5 사이라면 쓰러져서 빈사상태 애니메이션 몽타주를 실행하도록 로직을 짰습니다.적은 폰센싱을 이용해서 플레이어를 감지해서 공격하구요. 적 피격 이벤트 (Event AnyDamage) 로직을 짜서 hp가 0~5 사이 라면 빈사상태 몽타주를 작동하도록 연결했습니다. 그런데 해당 빈사상태 몽타주가 실행되지 않아서 hp 디버그 정상, 몽타주를 다른 적에게 씌어서 해보고, 해당 적 begin play 에 연결해서 몽타주는 정상작동하는걸 확인했습니다. 그런데 피격이벤트 로직쪽에서 빈사상태 몽타주가 작동을 안하는데 어떤 문제점이 있는걸까요....?
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
타일 단위 이동 실습 관련 질문
안녕하세요, 지금 제가 '타일 단위 이동' 강의까지 들었습니다. 그런데 실습을 따라하던 도중 Rookiss 님의 실행 화면에서는 게임이 잘 작동하는데, 저는 게임 시작을 누르면 처음에 플레이어가 안 보이다가, 이동시키면 보이기 시작하는데 체력 바가 Ground 타일맵에 가려서 보이질 않네요. 그래서 중간에 제가 잘못 따라했나 싶어서 강의 자료에서 새로 다운받아서 프로젝트를 실행했는데도 같은 결과가 나옵니다.어떤 문제인지 알 수 있을까요? 이해를 도와주기 위한 영상 링크 또한 올려 드리겠습니다.https://youtu.be/X892-cHkeN8
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
For loop 관련 질문입니다.
For loop와 함수를 가지고 여러 장난을 치던 중, for loop의 loop body부분이 딜레이를 가지고 함수를 실행한후 3초있다가 다시 실행하게 되었으면 좋을거 같아. 함수 뒤쪽에 delay를 넣었지만, 이에 불구하고 함수가 3번 연속으로 실행된 뒤, completed에 연결된 노드들까지 실행이 되었습니다.제가 이에대해 이해한 바는 for loop는 event를 호출하는것과 같이, loop body에 연결된 노드들을 연속적으로 호출한 후, completed의 노드를 실행하는거 같았는데 혹시 제가 이해한게 맞나요?또한 제가 원래 원하던 느낌이 되게 delay를 가지고 여러번 실행되게 하는 방법이 있을까요? 아 그리고 이건 또 다른 이야긴데... bp creature의 attack 콜리젼 범위를 보이게 하거나 안보이게 하는 방법을 잘 모르겠네요..분명 강의에서 가르쳐 주셨는데 찾질 못하겠어요 ㅠㅠ
-
미해결언리얼 엔진 5 FPS 게임 만들기
프로젝트 맵에서 파티맵이 없어요
동일하게 진행했는데 몇 번을해도 파티맵은 없고Advanced lightningFirstpersonmapMinimal defaultStart map만 나와요 ㅜㅜ 그라고 처음 새프로젝트 만들고 플레이 버튼 후 총을 먹고 f8 로 카메라 모양이 안보입니다Firstpersonal Camera를 클릭해도 없고 회전도 안되네요 회전 시 다시 돌아오니다
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
안녕하세요. 질문하나 드리겠습니다.
안녕하세요. 질문 드리기 앞서 감사 인사를 전하고 싶습니다. 저 같은 초보도 이해가 잘되고 쉽게배울 수 있는 양질의 강의를 저렴한 값에 제공 해주셔서 감사합니다.Build started...1>------ Build started: Project: Study, Configuration: Development_Editor x64 ------2>------ Skipped Build: Project: UE5, Configuration: BuiltWithUnrealBuildTool Win64 ------2>Project not selected to build for this solution configuration 1>Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" StudyEditor Win64 Development -Project="C:\Users\leehy\Documents\Unreal Projects\Study\Study.uproject" -WaitMutex -FromMsBuild1>Log file: C:\Users\leehy\AppData\Local\UnrealBuildTool\Log.txt1>Building StudyEditor...1>Using Visual Studio 2022 14.33.31631 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).1>Determining max actions to execute in parallel (8 physical cores, 16 logical cores)1> Executing up to 8 processes, one per physical core1>Building 4 actions with 4 processes...1>[1/4] Link UnrealEditor-Study.lib cancelled1>[2/4] WriteMetadata StudyEditor.target cancelled1>[3/4] Link UnrealEditor-Study.dll cancelled1>[4/4] Compile PlayerCharacter.cpp1>C:\UE_5.1\Engine\Source\Runtime\Core\Public\Containers\UnrealString.h(1241): error C2338: static_assert failed: 'Formatting string must be a TCHAR array.'1>C:\Users\leehy\Documents\Unreal Projects\Study\Source\Study\PlayerCharacter.cpp(221): note: see reference to function template instantiation 'FString FString::Printf<int32,>(const FmtType &)' being compiled1> with1> [1> FmtType=int321> ]1>C:\UE_5.1\Engine\Source\Runtime\Core\Public\Containers\UnrealString.h(1240): warning C4312: 'type cast': conversion from 'const FmtType' to 'const TCHAR *' of greater size1> with1> [1> FmtType=int321> ]1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets(44,5): error MSB3073: The command "C:\UE_5.1\Engine\Build\BatchFiles\Build.bat StudyEditor Win64 Development -Project="C:\Users\leehy\Documents\Unreal Projects\Study\Study.uproject" -WaitMutex -FromMsBuild" exited with code 6.1>Done building project "Study.vcxproj" -- FAILED.========== Build: 0 succeeded, 1 failed, 0 up-to-date, 1 skipped ==================== Build started at 11:31 PM and took 03.141 seconds ==========PlayerCharacter.cpp(221) 에서 오류가 있는데요. FString::Printf 로 섹션 이름과 번호를 가져오는부분에서 잘 안되는 것 같습니다. 언리얼 개발자를 꿈꾸게 된 계기는 모두 이득우님 덕분입니다. 항상 감사드립니다. void APlayerCharacter::ComboCheck() { ComboTimerHandle.Invalidate(); if (HasNextComboCommand) { UAnimInstance* AnimIntance = GetMesh()->GetAnimInstance(); CurrentCombo = FMath::Clamp(CurrentCombo + 1, 1, ComboActionData->MaxComboCount); FName NextSection = *FString::Printf((TEXT("%s %d"), *ComboActionData->MontageSectionName, CurrentCombo)); AnimIntance->Montage_JumpToSection(NextSection, ComboAttackMontage); SetComboCheckTimer(); HasNextComboCommand = false; } }
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
병합정렬 MergeResult() 질문입니다
안녕하세요 루키스님 강의를 듣다가 이해가 잘 되지 않는 부분이 있어서 질문드립니다!!병합 정렬의 MergeResult() 에서 아래 코드가 잘 이해가 안되는데요..! 왜 v[left] = temp[i] 가 아니라 v[left + i] = temp[i] 인건가요..??// temp 에 넣어준 걸 원본에 덮어쓰기 for (int i=0; i<temp.size(); i++) v[left + i] = temp[i];
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
캐릭터가 입력 방향이 잘못되어서 움직여요
캐릭터와 입력 시스템 강의 보고 똑같이 따라했는데 w 누르면 오른쪽으로 캐릭터가 돌아서 움직이고s 누르면 왼쪽으로 캐릭터가 돌아서 움직이고a누르면 캐릭터가 전진하고d 누르면 캐릭터가 카메라 방향으로 뒤로갑니다. 코드 똑같이 따라했고요 - YXZ 맞고void AABCharacterPlayer::Move(const FInputActionValue& Value){ FVector2D MovementVector = Value.Get<FVector2D>(); const FRotator Rotation = Controller->GetControlRotation(); const FRotator YawRotation(0, Rotation.Yaw, 0); const FVector ForwardDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X); const FVector RightDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y); AddMovementInput(ForwardDirection, MovementVector.X); AddMovementInput(RightDirection, MovementVector.Y);}코드도 같습니다. 그리고 혹시나 인풋액션을 잘못넣었나 확인해봤는데도 이상없었습니다. 왜 그런지요
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
"게임의완성"강의 마지막 부분
40분 20초 쯤에서 플레이어가 죽어서 RetryCount가 1 올라간 상태에서다음 스테이지로 넘어가니 1이 한번 더 올라가 총 3이 되었습니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
GameInstance와 GameSingleton
두 가지 클래스는 단 하나의 객체만을 가지는데이 둘은 각각 어느 상황에 사용하는지 알 수 있을까요?
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
Enumeration에 대한 질문입니다.
Attack을 먼저 Enum 목록에 만든 다음 스샷과 같이 만들고 재생하면 처음부터 공격애니메이션이 계속 실행됩니다. 스페이스 바를 몇번 누르면 다시 제대로 돌아오구요.Attack을 먼저 목록에 만들지 않고 Idle이나 Move로 만든 다음 다시 블루프린트를 만들고 재생하면 정상적으로 실행됩니다.Enum 순서가 상관이 있나요?? 해당하는 set만 잘 설정하면 순서는 아무 상관 없지 않나요??
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
섹션5 인벤토리 강좌에서 Weapon 구현부 작성 질문
Weapon::Weapon() : Item(IT_Weapon){ switch (_rarity) { case IR_Normal: _damage = 1 + rand() % 5; break; case IR_Rare: _damage = 10 + rand() % 5; break; case IR_Unique: _damage = 50 + rand() % 5; break; }} 이 부분에서 맨 위, Item(IT_Weapon) 가 어떻게 나온건지 궁금합니다. : 뒷 부분은 초기화하는 것을 간략하게 나타낸 것이 아닌가요? 그렇다면 Item = IT_Weapon; 이라는 코드 대신에 사용했다는 말인데, Item 자체는 class 명인데 코드가 말이 안되는 것 같습니다..