묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
방어 시스템에 관해서
방어 시스템까지 강의를 들었는데 몇가지 문제점이 있습니다.첫번째는 해결할 수 있을 거 같은데 두번째는 어떻게 해야 하나요?방어로 모든 스태미나를 소모했을 때 스태미나 재생이 안되는 문제 - 스태미나 재생 코드만 연결하면 해결할 수 있을 것 같습니다.방어를 한 다음 공격을 수행한 다음 다시 방어를 취하면 실제 데미지 처리는 0이지만이펙트와 사운드는 Hit와 동일하게 재생되는 문제(수정)여러번 테스트 해봤을 때 어떤 경우에는 저 현상이 발생하고 어떤 경우에는 정상적으로 보이기도 해서저의 실수인지 잘 모르겠네요,, 링크의 동영상을 볼 수 있는지 잘 모르겠지만 제가 테스트해본 영상입니다.25초~35초 구간 정도 보시면 될 것 같습니다. (빨간색 로그에 TotalDamage->0.0 / UI 확인) https://youtu.be/umVB9mTpD3g
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
함수 구현부 자동 완성 기능에 대한 질문입니다.
함수 구현부를 정의하지 않았음에도 불구하고 인텔리전스에서 인식을 못하는 문제가 있습니다. Alt + Enter 혹은 CTRL + . 을 사용해서 Create를 하면 FGCObject class의 Init 함수 구현부로 이동되는 문제가 있습니다.
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
방어구 애니메이션 적용 관련
방어구를 장착했을때 방어구애니메이션이 제대로 적용이 안되어 늘어짐현상이 발생해서 최종 프로젝트를 다운받아서 실행해보니 여기서도 방어구가 늘어짐현상이 있네요 혹시 뭔가 설정해야하는게 있을까요?
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
UI가 유닛 스프라이트에 가려집니다.
강의 영상을 보면 UI가 캐릭터 스프라이트 위에 뜨는데 저는 위의 사진처럼 스프라이트에 UI가 가려집니다.혹시 어떤 설정을 빼먹어서 그런 것인지 알 수 있을까요?
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
에디터 로그에 자꾸 이런게 뜨는데 이유가 뭘까요?
오른쪽 아래가 에디터 로그입니다자꾸 저런식으로 오류가 뜨는데요 전문은 이런 식입니다LogStreaming: Display: FlushAsyncLoading(3028): 1 QueuedPackages, 0 AsyncPackages 어떻게 해결해야하나요?
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
캐릭터 사망 시 삭제는 어떻게 처리해야 하나요?
현재 캐릭터의 HP가 0이 되어서 사망하면 무기하고 캐릭터 몸체는 계속해서 남아있지만 소울라이크에서 보면 일정 시간이 지나면 무기와 캐릭터를 삭제하던데 이것은 어떻게 처리해야 하는지 잘모르겠습니다. OnDeath()함수에서 단순히 Destory()로 처리하면 되나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
혹시 GetOwningPlayerPawn() 문제가 현재 해결되었나요?
간만에 강의코드를 다시 필요한 부분만 복습중인데, 기억이 가물하긴 한데 OwningActor 를 따로 변수로 둔 이유가 WidgetComponent 에서 InitWidget 내부에서 자체적으로 CreateWidget을 하여 만들어진 HpBar 위젯의 플레이어컨트롤러를 오버라이드된 NativeConstruct() 부분에서 제대로 가져올 수 없어서인 것으로 알고 있습니다.근데 현재 코드에서 지금 당장 GetOwningPlayerPawn() 을 했을 때 정상적으로 참조하여 값을 제대로 가져오는 것 같은데, 그렇다면 더이상 굳이 OwningActor 를 별도로 저장할 필요가 없게 되었다고 볼수 있는 것인가요?
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
구르기가 스태미나가 있는 동안 무한으로 됩니다
현재 24강까지 수강했습니다!근데 스태미나가 있을 때, 연속해서 스페이스바를 누르면 구르기 애니메이션이 끝나기도 전에 바로 구르기를 시전하여서, 스페이스바를 연타하면 애니메이션 초반부만 나오면서 구르기를 연속으로 합니다 원래 24강까지 진행했을때는 구르기가 연속으로 되는건가요?추후 강의에서 수정하는건가요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
AnimNotify를 GA에서 받는방법이 있을까요?
AnimNotify신호를 GA의 함수로 받고싶은데 방법이있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
섹션 4 퀴즈 3번이 잘못된 것 같습니다.
정답은 '경량 데이터 저장/전송 및 'UPROPERTY()'인데 보기에 없습니다.
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
5.5 에서 AddPlayerMappableConfig를 대체할 함수
Subsystem->AddPlayerMappableConfig(Pair.Config.LoadSynchronous(), Options); 5.5 버전에서는 해당 함수가 없어진 것 같습니다. 그래서 for (const FLyraCloneMappableConfigPair& Pair : DefaultInputConfigs) { if (Pair.bShouldActivateAutomatically) { FModifyContextOptions Options = {}; Options.bIgnoreAllPressedKeysUntilRelease = false; // 내부적으로 Input Mapping Context를 추가한다: // - AddPlayerMappableConfig를 간단히 보는 것을 추천 for (const auto ConfigObject = Pair.Config.LoadSynchronous(); const auto& MappingContextPair : ConfigObject->GetMappingContexts()) { const UInputMappingContext* MappingContext = MappingContextPair.Key; const int32 Priority = MappingContextPair.Value; // 우선순위 값도 가져옵니다 Subsystem->AddMappingContext(MappingContext, Priority, Options); } } }이렇게 해주시면 5.5에서도 정상적으로 실습이 됩니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Montage_JumpToSection 미호출 문제
안녕하세요. 이득우 선생님. 늘 좋은 강의 감사드립니다.다름이 아니라 제가 저만의 프로젝트를 제작하며 해당 강의를 복습중에 이해가 안되는 부분이있어서, 하루종일 헤메다가 질문드립니다...ㅠㅠ현재 ABAComboAttack의 Data중 EffectiveFrameCount으로 설정한 프레임 이전에 입력이 발생하면, 해당 시점에 Montage_JumpToSection으로 다음 섹션으로 넘겨주는 구조로 이해했습니다. 다만 궁금한 점은, 수업 예제에서 첫 번째 콤보 공격 애니메이션의 총 프레임, 즉 애니메이션 전체 길이에 해당하는 프레임이 44프레임인것으로 보이는데, (사진 참조)제가 이해한것을 바탕으로 생각했을때는, 첫 번째 EffectiveFrameCount는 44이하이기만 하면 상관없다고 생각했고, 약간의 계산 오차를 생각했을때도, 적어도 40이하에서는 안전하게 동작할것이라 예상했습니다.하지만 예상과 달리 36이상의 값 부터는 문제가 됐습니다. 아무리 연타를 해도 두 번째 콤보 공격이 등장하지 않습니다. 해당 부분 로그를 찍어 디버깅 해보니, Montage_JumpToSection 함수 내부의 GetActiveInstanceForMontage라는 함수에서 인자로 받아온 몽타주가 현재 실행중인 몽타주 인스턴스 목록, 즉 ActiveMontagesMap내부에 존재하는지 찾고, 존재하면 해당 섹션으로 이동하도록 되어있는데, 이 부분에서 계속 찾지 못하고 있었습니다. 결론적으로, 1번 섹션이 끝나기 이전에 이미 ActiveMontagesMap에서는 몽타주 인스턴스가 사라져 있었습니다.이것이 첫 번째 콤보 공격 애니메이션인 WarriorAttack1 에서 EffectiveFrameCount값이 35이하 일 때는 Montage_JumpToSection 호출 시점에 존재하고 있고, 36이상의 값에서는 존재하지 않는것이 문제였습니다. 혹시나, 계산 문제일 수도 있겠다 생각하여void AABCharacterBase::SetComboCheckTimer() { int32 ComboIndex = CurrentCombo - 1; ensure(ComboActionData->EffectiveFrameCount.IsValidIndex(ComboIndex)); const float AttackSpeedRate = 1.0f; float ComboEffectiveTime = (ComboActionData->EffectiveFrameCount[ComboIndex] / ComboActionData->FrameRate) / AttackSpeedRate; /*Test Code*/ float SectionStart = ComboActionMontage->CompositeSections[ComboIndex].GetTime(); int NextIndex = FMath::Clamp(ComboIndex + 1, 0, ComboActionData->MaxComboCount - 1); float SectionNext = ComboActionMontage->CompositeSections[NextIndex].GetTime(); float Length = SectionNext - SectionStart; /*************/ UE_LOG(LogTemp, Warning, TEXT("Section Length : %f, EffectiveTime : %f"), Length, ComboEffectiveTime); if (ComboEffectiveTime > 0.0f) { GetWorld()->GetTimerManager().SetTimer(ComboTimerHandle, this, &AABCharacterBase::ComboCheck, ComboEffectiveTime, false); } } void AABCharacterBase::ComboCheck() { ComboTimerHandle.Invalidate(); if (HasNextComboCommand) { UAnimInstance* AnimInstance = GetMesh()->GetAnimInstance(); CurrentCombo = FMath::Clamp(CurrentCombo + 1, 1, ComboActionData->MaxComboCount); FName NextSection = *FString::Printf(TEXT("%s%d"), *ComboActionData->MontageSectionNamePrefix, CurrentCombo); /*Test Code*/ if(AnimInstance->Montage_IsPlaying(ComboActionMontage)) { UE_LOG(LogTemp, Warning, TEXT("Montage Is Playing")); } else { UE_LOG(LogTemp, Warning, TEXT("Montage Not Playing")); } /*************/ AnimInstance->Montage_JumpToSection(NextSection, ComboActionMontage); SetComboCheckTimer(); HasNextComboCommand = false; } }위와 같이 테스트 코드를 넣어서 로그도 점검해 봤지만,계산에는 이상이 없는것으로 보였습니다....서론이 너무 길었는데, 제가 궁금한점은 몽타주가 종료되지 않았음에도 불구하고 ActiveMontagesMap에서 몽타주 인스턴스가 삭제될 수 있는건지, 만약 그럴 수 있다면 현재 상황에서는 왜 삭제되는것인지 궁금합니다.긴글 읽어주셔서 감사합니다.
-
미해결실전! 언리얼 소울라이크 개발: A to Z
AnimNotifyState 이름에 관하여
무기 콜리전 시스템과 데미지 처리 강의를 듣고 있는데 강사님이 제공해주신 파일에는 AnimNotifyState_DS1WeaponCollision 파일이 있는데 언리얼에서 생성하려고 보니 클래스의 이름이 32글자 이하로 설정해야 한다고 하면서 막히더라구요. 이런 경우는 어떻게 해야 하나요? 강사님 파일을 그대로 사용해도 되겠지만, 제가 조금씩 추가해 놓은 기능들이 있어서 일일히 바꾸기는 어려워서 질문 남깁니다.
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
Rider 디버깅 관련 질문입니다.
Experience Load #4에서 강의와 동일하게 종단점을 찍어보면서 디버깅을 진행하고 있는데, VS와 다르게 상당히 Low한 부분(Assembly)까지 디버깅이 들어갑니다. 혹시 이게 원래 Rider가 강의에서 VS로 디버깅 하는 것과 다르게 더 세세하게 디버깅을 보여주는건가요?
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
블루프린트 부분 질문드립니다.
안녕하세요 강의 2분 부분쯤 BP_ThirdPerxosnCharater 부분이 강사님의 내용과 다르게나와서 혹시 어떤게 문제인지 알 수 있을까요?
-
미해결[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
빌드시 f_sps.pdb가 포함 안되있다고 오류가 납니다
비쥬얼 스튜디오 환경에서 DebugGameEditor로 설정하고 f5를 눌러 실행하면에디터가 거의 로딩이 다 끝나고 켜질때 f_sps.pdb 포함 안된다고 합니다.언리얼 폴더에서 3개 삭제 (캐쉬, 이미데이트 등) 하고 uproject다시 regenerate 하고 새롭게 빌드하고 해도 뭔가 모듈에 지정이 안되어있다고 하네요.글레디에이터 플러그인에 대한 모듈을 뭔가를 넣어줘야 하나요
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
언리얼도 Sprite Editor 가 있나요?
안녕하세요유니티에서는 아틀라스에서슬라이스 한다음 한장당 이름을 따로 부여하고피봇, 사이즈 등 세팅하는 기능이 있었는데그냥 궁금해서 질문드려요
-
미해결[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트
블프 에디터 사용 관련해서 질문있어요
혹시 블루프린트 창 내이벤트 그래프 / 뷰포트 창이 있잖아요?단축키로 최대화 <-> 원상태로 토글 관련 단축키가 있을까요?
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
무기마다 장착모션을 다르게 하고 싶은데 어떻게 처리하는 게 좋은가요?
무기 장착 및 해제 애니메이션 처리 강의를 듣고 나서 완성물을 보니까 장착 완료시 손의 모양이 무기를 쥐고 있지 않아 어색한 것 같아 수정해보고 싶기도 하고 에셋에도 여러 무기들이 있길래 활용해 보고 싶은데 어렵네요.. Define에 Enum으로 WeaponType를 정의하고 Weapon에서 설정하고 애니메이션을 연결하면 되는 건지 아니면 이렇게 작업하면 나중에 설계적으로 꼬여서 확장할 때 어려움이 생길지 잘 모르겠습니다. 혹시 좋은 방법이 있는지 궁금합니다.
-
해결됨실전! 언리얼 소울라이크 개발: A to Z
DoAttack() 함수
혹시 이 함수는 동기 함수인가요..?!한 프레임 내에서 ToggleStaminaRegeneration의 bEnabled가 false도 되고 바로 true도 되는 건지 궁금합니다..!