inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

ABItemBox 아이템 에셋 배열이 비어있는 경우 크래쉬

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

LoginId:a941906b4a64d255e61742bb3c03f580 EpicAccountId:06c1d8e5195c4b94839c2f03669096c0 Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\Epic Games\UE_5.4\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 758] Array index out of bounds: 0 into an array of size 0 UnrealEditor_ArenaBattle!AABItemBox::PostInitializeComponents() [C:\Users\jinhy\Desktop\Unreal\Inflearn\UE5Part2\ArenaBattle\Source\ArenaBattle\Item\ABItemBox.cpp:54] UnrealEditor_Engine UnrealEditor_Engine 강의 내용 중 ABItemPotionData와 ABItemScrollItemData 클래스를 생성한 뒤 코드를 똑같이 입력하고 에디터 실행했더니 위 에러 메시지와 함께 에디터가 열리지 않고 있습니다. DefaulGame.ini의 셋팅도 문제 없습니다. +PrimaryAssetTypesToScan=(PrimaryAssetType="ABItemData",AssetBaseClass="/Script/ArenaBattle.ABItemData",bHasBlueprintClasses=False,bIsEditorOnly=False,Directories=((Path="/Game/ArenaBattle/Item")),SpecificAssets=,Rules=(Priority=-1,ChunkId=-1,bApplyRecursively=True,CookRule=Unknown)) bOnlyCookProductionAssets=False bShouldManagerDetermineTypeAndName=False bShouldGuessTypeAndNameInEditor=True bShouldAcquireMissingChunksOnLoad=False bShouldWarnAboutInvalidAssets=True MetaDataTagsForAssetRegistry=() // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Item/ABItemData.h" #include "GameData/ABCharacterStat.h" #include "ABScrollItemData.generated.h" /** * */ UCLASS() class ARENABATTLE_API UABScrollItemData : public UABItemData { GENERATED_BODY() public: UABScrollItemData(); FPrimaryAssetId GetPrimaryAssetId() const override { return FPrimaryAssetId("ABItemData", GetFName()); } public: UPROPERTY(EditAnywhere, Category = Stat) FABCharacterStat BaseStat; }; // Fill out your copyright notice in the Description page of Project Settings. #include "Item/ABScrollItemData.h" UABScrollItemData::UABScrollItemData() { Type = EItemType::Scroll; } // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Item/ABItemData.h" #include "ABPotionItemData.generated.h" /** * */ UCLASS() class ARENABATTLE_API UABPotionItemData : public UABItemData { GENERATED_BODY() public: UABPotionItemData(); FPrimaryAssetId GetPrimaryAssetId() const override { return FPrimaryAssetId("ABItemData", GetFName()); } public: UPROPERTY(EditAnywhere, Category = Stat) float HealAmount; }; // Fill out your copyright notice in the Description page of Project Settings. #include "Item/ABPotionItemData.h" UABPotionItemData::UABPotionItemData() { Type = EItemType::Potion; } ABItemBox.cpp 의 에셋 매니저에서 에셋을 불러올 때 배열이 비어있는 것 같습니다. void AABItemBox::PostInitializeComponents() { Super::PostInitializeComponents(); UAssetManager& Manager = UAssetManager::Get(); TArray<FPrimaryAssetId> Assets; Manager.GetPrimaryAssetIdList(TEXT("ABItemData"), Assets); ensure(0 < Assets.Num()); int32 RandomIndex = FMath::RandRange(0, Assets.Num() - 1); FSoftObjectPtr AssetPtr(Manager.GetPrimaryAssetPath(Assets[RandomIndex])); if (AssetPtr.IsPending()) { AssetPtr.LoadSynchronous(); } Item = Cast<UABItemData>(AssetPtr.Get()); ensure(Item); Trigger->OnComponentBeginOverlap.AddDynamic(this, &AABItemBox::OnOverlapBegin); } 깃헙에 올려주신 코드와 비교해보았는데 다른 부분이 없어서 어느 것이 문제인지 알고 싶습니다. 에디터가 열리지 않아서 설정을 확인할 수 없습니다。 추가로, 올려주신 프로젝트를 다운받아 실행했더니 똑같은 문제가 발생했습니다..

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
진현지 댓글 2 좋아요 0 조회수 96

선생님 짱짱~!!

미해결

[입문자를 위한 UE5] Part5. 언리얼 엔진 VR

collision preset에 3DWidget이 어딨는지 잘몰랐는데 왜 이런 메뉴가 없는지 몰랐는데 선생님덕분에 해결했습니다 감사합니다!

  • unreal-engine
  • ue-blueprint
  • VR/AR
q2go14d8 댓글 2 좋아요 0 조회수 162

SetupGASInputComponent 함수 호출위치가 이해가안갑니다.

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

void AABGASCharacterPlayer::PossessedBy(AController* NewController) { Super::PossessedBy(NewController); AABGASPlayerState* GASPS = GetPlayerState<AABGASPlayerState>(); if (GASPS) { ASC = GASPS->GetAbilitySystemComponent(); ASC->InitAbilityActorInfo(GASPS, this); int32 InputId = 0; for (const auto& StartAbility : StartAbilites) { FGameplayAbilitySpec StartSpec(StartAbility); StartSpec.InputID = InputId++; ASC->GiveAbility(StartSpec); SetupGASInputComponent(); } } } 위 코드에서 제생각에는 서버에서는 input과 관련된 처리가 전혀 필요가 없기 때문에 SetupGASInputComponent 를 안넣어도 될것같은대요. 혹시 꼭 넣으셔야만 하는 이유가있을까요? (그리고 for문안에 두신건 단순 실수이신것 같습니다.) => for문안에 넣으셨던 것은 나중에 수정해주셨네요. 확인했습니다. 클라는 참고로 아래코드를 씁니다. void AABGASCharacterPlayer::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); SetupGASInputComponent(); }

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
파일로 댓글 3 좋아요 0 조회수 176

왼손이 움직이지 않습니다.

미해결

[입문자를 위한 UE5] Part5. 언리얼 엔진 VR

오른손 애니메이션은 확인하였습니다. 왼손이 움직이지 않습니다. 왼손 움직임을 블루프린트에서 움직이게 하려면 어떻게 해야하나요? 5.4 버전입니다.

  • unreal-engine
  • ue-blueprint
  • VR/AR
지구 댓글 4 좋아요 0 조회수 161

[GAS] Player State에 대해 궁금한 점이 있습니다.

해결됨

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

안녕하십니까. 1강 2강 4강을 수강한 학생입니다. 다름아니라, 6강에서 NonPlayer의 경우에는 ASC와 AttributeSet을 직접 들고 있는 이유가 궁금해서 질문을 드리게 되었습니다. Player의 경우에는 Owner를 PlayerState로 설정하고 Avatar를 Character로 설정하는 것이 네트워크 멀티 플레이어 환경에서 적합하다고 저번 시간에 학습했는데, NonPlayer는 그렇게 하지 않는 이유가 궁금합니다. 언리얼 엔진에서도 Player State 클래스만 제공해주고 NonPlayer State 클래스는 제공하지 않던데, 이 부분도 멀티 플레이 부분과 연관이 있을까요?

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
김민재 댓글 2 좋아요 0 조회수 173

map UI 오류

해결됨

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

안녕하세요. 언리얼 5.1버전으로 인프런 강의 자료를 다운로드 한 뒤에 AreanaBattle1_2의 Content 폴더에서 ArenaBattle 폴더를 복사한뒤 언리얼 에디터에서 step1.umap을 실행했으나 UI가 표시되지 않는데 어떤 문제인지 모르겠습니다..

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
진현지 댓글 3 좋아요 0 조회수 160

인코딩 중인 영상이에요. 라는 문구만 나오고 영상 재생은 안됩니다.

해결됨

2. [언리얼 시스템 연구 과정] UE5 스파르타 클래스: 심화편

강의 잘 듣고 있습니다. 저만 그런진 모르겠지만 인코딩 중인 영상이에요. 라는 문구만 나오고 영상 재생은 안되는 현상이 아래 3개의 강의에서만 동일하게 발생하고 있습니다.

  • unreal-engine
  • ue-blueprint
CHAFA 댓글 2 좋아요 0 조회수 96

스테이트 머신으로 Locomotion 제작 영상 질문드립니다.

해결됨

2. [언리얼 시스템 연구 과정] UE5 스파르타 클래스: 심화편

17:15 부분에서 스피드 값을 3으로 설정하셨습니다만 뛰는모션이 나올려면 3보다 커야지 모션이 나온다는 소리일까요? 3보다 낮으면 그냥 걷는모션이 나오는 방식이고요? 제가 맞게 이해했는지 검증받고싶습니다

  • unreal-engine
  • ue-blueprint
라임 댓글 2 좋아요 0 조회수 99

섹션5_25 조건 And, Or에서

미해결

[LV3 : 기술편] 게임스킬 만들기 - 기획, 아트 누구나 만드는 블루프린트

1:22초 쯤 스킵이 된거 같은데 TargetActor는 어떻게 만드는건가요? 5:22초에 GrabSucceed 커스텀 이벤트에서 나오는 애 같은데 전 이렇게만 떠요 ㅜㅜ 커스텀 이벤트에서 변수를 만드는게 아닌건가요? 이것때문에 막혔습니다 ㅜ

  • unreal-engine
  • ue-blueprint
Ii!il!i! 댓글 1 좋아요 0 조회수 53

애니메이션 블루프린트 AnimGraph 내부 Land State 질문

해결됨

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

안녕하세요 애니메이션 블루프린트의 AnimGraph > MainStateMachine > Land(State) 에서요 Apply Additive 를 사용하지않고 그냥 WarriorLand 애니메이션을 연결하고 플레이해보았습니다 플레이 시 움직임등 잘되고 점프하고 착지 Land State 시점에 캐릭터가 사라져 버리는데 딱 이부분만 바뀌었을뿐인데 왜그런지 모르겠습니다 ㅠㅠ

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
Jethro Yang 댓글 2 좋아요 0 조회수 127

후속 강의 언제나오나요??

해결됨

2. [언리얼 시스템 연구 과정] UE5 스파르타 클래스: 심화편

GTA모작 너무 기대됩니다. 여름 방학 시즌에 딱 맞춰서 수강할 수 있다면 참 좋을 것 같은데...

  • unreal-engine
  • ue-blueprint
최성우 댓글 2 좋아요 0 조회수 71

분수대에서 워터 위치까지 해주시는데

해결됨

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

Water->SetupAttachment(Body); 워터는 여기 까지만 하고 해당 클래스를 상속받는 블루프린트에서 세부적인 위치를 세팅해주는것도 괜찮을까요? 이 질문을 하게된게 비주얼적으로 보면서 세팅하면 좋을거같다는 생각이 들었습니다 업계에선 해당 방식으로 하는지도 궁금합니다

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
Jethro Yang 댓글 2 좋아요 0 조회수 108

강의 자료 다운로드해서 실행시 공격을 해도 HpBar가 줄어들지 않습니다!

미해결

[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문

자료 다운로드하고 아무것도 안건들이고 플레이하면 공격을 해도 HpBar 빨간색이 줄어들지 않습니다! 다시 해보려고 HpRatio 변수를 만들고 컴파일을 했음에도 불구하고 Bind 목록에 뜨지를 않습니다!

  • unreal-engine
  • ue-blueprint
dlagudwn17 댓글 1 좋아요 0 조회수 103

34:44 SpawnActorDeferred 질문입니다.

해결됨

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

FinishSpawning 이전에 StatComponent는 아직 생성자만 호출한 상태이며, InitializeComponent 호출을 하지 않았고, NonPlayer 의 경우엔 아직 PostInitializeComponent 를 호출하지 않은 상태인데, 그렇다면 Stat 이라는 이름의 StatComponent를 아직 사용하기엔 위험하다고 볼 수 없는 건가요? SetLevel 함수 내부에 Stat 을 참조하여 Stat-> 을 하고 있는데, PostInitializeComponent 같은 것을 아직 실행하지 않은 상태에서도 이렇게 참조해도 아무런 문제가 발생하지 않는 것인가요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
hush park 댓글 2 좋아요 0 조회수 113

UI가 유닛 스프라이트에 가려집니다.

미해결

[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문

강의 영상을 보면 UI가 캐릭터 스프라이트 위에 뜨는데 저는 위의 사진처럼 스프라이트에 UI가 가려집니다. 혹시 어떤 설정을 빼먹어서 그런 것인지 알 수 있을까요?

  • unreal-engine
  • ue-blueprint
  • ui
  • umg
  • unreal-ui
김명수 댓글 3 좋아요 0 조회수 144

혹시 GetOwningPlayerPawn() 문제가 현재 해결되었나요?

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

간만에 강의코드를 다시 필요한 부분만 복습중인데, 기억이 가물하긴 한데 OwningActor 를 따로 변수로 둔 이유가 WidgetComponent 에서 InitWidget 내부에서 자체적으로 CreateWidget을 하여 만들어진 HpBar 위젯의 플레이어컨트롤러를 오버라이드된 NativeConstruct() 부분에서 제대로 가져올 수 없어서인 것으로 알고 있습니다. 근데 현재 코드에서 지금 당장 GetOwningPlayerPawn() 을 했을 때 정상적으로 참조하여 값을 제대로 가져오는 것 같은데, 그렇다면 더이상 굳이 OwningActor 를 별도로 저장할 필요가 없게 되었다고 볼수 있는 것인가요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
댓글 2 좋아요 0 조회수 91

AnimNotify를 GA에서 받는방법이 있을까요?

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

AnimNotify신호를 GA의 함수로 받고싶은데 방법이있을까요?

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
댓글 2 좋아요 0 조회수 110

Montage_JumpToSection 미호출 문제

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

안녕하세요. 이득우 선생님. 늘 좋은 강의 감사드립니다. 다름이 아니라 제가 저만의 프로젝트를 제작하며 해당 강의를 복습중에 이해가 안되는 부분이있어서, 하루종일 헤메다가 질문드립니다...ㅠㅠ 현재 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 에서 몽타주 인스턴스가 삭제될 수 있는건지, 만약 그럴 수 있다면 현재 상황에서는 왜 삭제되는것인지 궁금합니다. 긴글 읽어주셔서 감사합니다.

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
dhqks6 댓글 2 좋아요 0 조회수 111

블루프린트 부분 질문드립니다.

해결됨

1. [언리얼 노베이스/입문] UE5 스파르타 클래스: 실전편

안녕하세요 강의 2분 부분쯤 BP_ThirdPerxosnCharater 부분이 강사님의 내용과 다르게나와서 혹시 어떤게 문제인지 알 수 있을까요 ?

  • unreal-engine
  • ue-blueprint
  • 애니메이션
  • 디자인-시스템
  • niagara
tldos97 댓글 2 좋아요 0 조회수 203

언리얼도 Sprite Editor 가 있나요?

미해결

[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문

안녕하세요 유니티에서는 아틀라스에서 슬라이스 한다음 한장당 이름을 따로 부여하고 피봇, 사이즈 등 세팅하는 기능이 있었는데 그냥 궁금해서 질문드려요

  • unreal-engine
  • ue-blueprint
Jethro Yang 댓글 3 좋아요 0 조회수 225

인기 태그

인프런 TOP Writers

주간 인기글