수강생 여러분들 안녕하세요. 이득우의 언리얼 프로그래밍 강사 이득우입니다. 언리얼에 처음 접하는 분들이 학습에 여러움을 겪는 것 같아 간단한 질답 및 대화를 주고받을 수 있도록 제자들과 함께 디스코드 서버를 열었습니다. 아래 초청 주소를 통해 가입하신 후 별도 채널 내에서 수강 인증을 해주시면 보다 상세하게 답변드리겠습니다. 디스코드 초청 주소 : https://discord.gg/G45cCJ4AKs 이득우 드림.
수강생 여러분들 안녕하세요. 이득우의 언리얼 프로그래밍 강사 이득우입니다. 언리얼에 처음 접하는 분들이 학습에 여러움을 겪는 것 같아 간단한 질답 및 대화를 주고받을 수 있도록 제자들과 함께 디스코드 서버를 열었습니다. 아래 초청 주소를 통해 가입하신 후 별도 채널 내에서 수강 인증을 해주시면 보다 상세하게 답변드리겠습니다. 디스코드 초청 주소 : https://discord.gg/G45cCJ4AKs 이득우 드림.
영상 10:48초 부분입니다. 먼저 WBP_HpBar에 ProgressBar를 생성해 HpProgress로 이름을 바꿔주었습니다. 다음 BP_Creature의 컴포넌트에 Widget을 추가하고 Detail창에 있는 Widget Class에 WBP_HpBar을 연결해 주었습니다. 그리고 Cast to해주었는데 get HpProgressBar를 꺼내 줄려고하는데 없다고 뜹니다 ㅜ Get HpProgressBar가 생성이 안되는 이유가 있을까요? 3번정도 반복해서 들었는데 중간에 놓친부분이 있을까요?
적 체력이 45이고 플레이어 총 데미지가 10일때 적 체력이 0~5 사이라면 쓰러져서 빈사상태 애니메이션 몽타주를 실행하도록 로직을 짰습니다. 적은 폰센싱을 이용해서 플레이어를 감지해서 공격하구요. 적 피격 이벤트 (Event AnyDamage) 로직을 짜서 hp가 0~5 사이 라면 빈사상태 몽타주를 작동하도록 연결했습니다. 그런데 해당 빈사상태 몽타주가 실행되지 않아서 hp 디버그 정상, 몽타주를 다른 적에게 씌어서 해보고, 해당 적 begin play 에 연결해서 몽타주는 정상작동하는걸 확인했습니다. 그런데 피격이벤트 로직쪽에서 빈사상태 몽타주가 작동을 안하는데 어떤 문제점이 있는걸까요....?
안녕하세요, 지금 제가 '타일 단위 이동' 강의까지 들었습니다. 그런데 실습을 따라하던 도중 Rookiss 님의 실행 화면에서는 게임이 잘 작동하는데, 저는 게임 시작을 누르면 처음에 플레이어가 안 보이다가, 이동시키면 보이기 시작하는데 체력 바가 Ground 타일맵에 가려서 보이질 않네요. 그래서 중간에 제가 잘못 따라했나 싶어서 강의 자료에서 새로 다운받아서 프로젝트를 실행했는데도 같은 결과가 나옵니다. 어떤 문제인지 알 수 있을까요? 이해를 도와주기 위한 영상 링크 또한 올려 드리겠습니다. https://youtu.be/X892-cHkeN8
For loop와 함수를 가지고 여러 장난을 치던 중, for loop의 loop body부분이 딜레이를 가지고 함수를 실행한후 3초있다가 다시 실행하게 되었으면 좋을거 같아. 함수 뒤쪽에 delay를 넣었지만, 이에 불구하고 함수가 3번 연속으로 실행된 뒤, completed에 연결된 노드들까지 실행이 되었습니다. 제가 이에대해 이해한 바는 for loop는 event를 호출하는것과 같이, loop body에 연결된 노드들을 연속적으로 호출한 후, completed의 노드를 실행하는거 같았는데 혹시 제가 이해한게 맞나요? 또한 제가 원래 원하던 느낌이 되게 delay를 가지고 여러번 실행되게 하는 방법이 있을까요? 아 그리고 이건 또 다른 이야긴데... bp creature의 attack 콜리젼 범위를 보이게 하거나 안보이게 하는 방법을 잘 모르겠네요..분명 강의에서 가르쳐 주셨는데 찾질 못하겠어요 ㅠㅠ
안녕하세요 선생님! 강의 열심히 듣고있습니다 ! 기존에 C++ 를 약 1년 반 정도 공부하고 사용하고 있습니다. 제가 알고 있는 인터페이스 클래스란 넓은 범위로 공통적인 속성을 추출해 상속 관계에서 기능을 구현할 것을 약속한, 순수 가상 함수만을 갖고있는 클래스이다. 라고 알고있습니다. 상태나, 구현 또한 가질 수 없구요. 그런데 오늘 언리얼C++ 인터페이스를 공부하다보니 다중 상속을 오히려 권장하는 부분인 것 같아서요. 그리고 인터페이스 클래스가 부모로 사용되진 않는다고 지나가듯 말씀하셨는데 이 부분에 대해 자세하게 설명해주실 수 있으실까요??
동일하게 진행했는데 몇 번을해도 파티맵은 없고 Advanced lightning Firstpersonmap Minimal default Start map 만 나와요 ㅜㅜ 그라고 처음 새프로젝트 만들고 플레이 버튼 후 총을 먹고 f8 로 카메라 모양이 안보입니다 Firstpersonal Camera를 클릭해도 없고 회전도 안되네요 회전 시 다시 돌아오니다
안녕하세요. 질문 드리기 앞서 감사 인사를 전하고 싶습니다. 저 같은 초보도 이해가 잘되고 쉽게 배울 수 있는 양질의 강의를 저렴한 값에 제공 해주셔서 감사합니다. 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 -FromMsBuild 1>Log file: C:\Users\leehy\AppData\Local\UnrealBuildTool\Log.txt 1>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 core 1>Building 4 actions with 4 processes... 1>[1/4] Link UnrealEditor-Study.lib cancelled 1>[2/4] WriteMetadata StudyEditor.target cancelled 1>[3/4] Link UnrealEditor-Study.dll cancelled 1>[4/4] Compile PlayerCharacter.cpp 1>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 compiled 1> with 1> [ 1> FmtType=int32 1> ] 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 size 1> with 1> [ 1> FmtType=int32 1> ] 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; } }
헤더에서는 가급적으로 bool 대신 uint8 : 1 을 통해 비트필드를 사용하라고 하셨습니다. 이 비트 필드를 헤더에서 초기화 해주고 싶은데, 어떻게 초기화 해주어야하나요? 헤더에서 uint8 bTemp:1 = false; 나 uint8 bTemp:1 = 0; 으로 하니 C++20 이 필요하다고 컴파일 오류를 뱉습니다. 생성자에서는 bTemp = false; 이런식으로 초기화가 잘 가능한데, 헤더에서 초기화를 진행하고 싶으면 어떻게 해야하나요?
캐릭터와 입력 시스템 강의 보고 똑같이 따라했는데 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); } 코드도 같습니다. 그리고 혹시나 인풋액션을 잘못넣었나 확인해봤는데도 이상없었습니다. 왜 그런지요
Attack을 먼저 Enum 목록에 만든 다음 스샷과 같이 만들고 재생하면 처음부터 공격애니메이션이 계속 실행됩니다. 스페이스 바를 몇번 누르면 다시 제대로 돌아오구요. Attack을 먼저 목록에 만들지 않고 Idle이나 Move로 만든 다음 다시 블루프린트를 만들고 재생하면 정상적으로 실행됩니다. Enum 순서가 상관이 있나요?? 해당하는 set만 잘 설정하면 순서는 아무 상관 없지 않나요??
안녕하세요. 섹션1의 캐릭터 컨트롤 설정 수업을 듣고 캐릭터를 wasd말고 NavMesh를 이용하여 클릭으로 캐릭터를 움직이고 싶어서 제작하고 있습니다. 그런데 Nav Movement의 UseAccelerationForPaths를 true로 변경시켜야 캐릭터의 애니메이션이 움직인다는 것을 알게 되었습니다. blueprint로는 바꿀 수 있지만 C++로는 도저히 바꾸는 방법을 찾지 못하여 물어보게 되었습니다. 어떻게 하면 C++코드를 이용하여 UCharacterMovementComponent클래스의 bool변수인 bUseAccelerationForPaths를 true로 변경시키고 ACharacter클래스에 변경된 UCharacterMovementComponent 클래스를 성공적으로 적용시킬 수 있을까요?