inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[Rookiss University] UE5 Lyra 클론 코딩 (Haker)

ModularGameplay 순서 관련 질문 드립니다.

225

Walnut

작성한 질문수 1

0

아래와 같은 지점에서 저는 문제가 발생을 계속 하고 있는데 혹시 이유를 알수 있을까요?? 모듈러 로그를 활성화 하여 ContinueInitStateChain 쪽 로그 입니다.

 

LogModularGameplay: Verbose: ContinueInitStateChain: Cannot transition B_SimpleHeroPawn_C_0:Hero (role 3) from InitState.DataAvailable to InitState.DataInitialized

LogModularGameplay: Verbose: ContinueInitStateChain: Transitioning B_SimpleHeroPawn_C_0:PawnExtension (role 3) from InitState.DataAvailable to InitState.DataInitialized

LogModularGameplay: Verbose: ContinueInitStateChain: Transitioning B_SimpleHeroPawn_C_0:PawnExtension (role 3) from InitState.DataInitialized to InitState.GameplayReady

LogModularGameplay: Verbose: ContinueInitStateChain: Cannot transition B_SimpleHeroPawn_C_0:Hero (role 3) from InitState.DataAvailable to InitState.DataInitialized

LogModularGameplay: Verbose: ContinueInitStateChain: Cannot transition B_SimpleHeroPawn_C_0:Hero (role 3) from InitState.DataAvailable to InitState.DataInitialized

 

Cannot transition 이 발상한 조건문 체크는

// DataAvailable -> DataInitialized

if (CurrentState == InitTags.InitState_DataAvailable && DesiredState == InitTags.InitState_DataInitialized)

{

// PawnExtensionComponent가 DataInitialized될 때까지 기다림 (== 모든 Feature Component가 DataAvailable인 상태)

//return CLMPS && Manager->HasFeatureReachedInitState(Pawn, UCLMPawnExtensionComponent::NAME_ActorFeatureName, InitTags.InitState_GameplayReady);

return CLMPS && Manager->HasFeatureReachedInitState(Pawn, UCLMPawnExtensionComponent::NAME_ActorFeatureName, InitTags.InitState_DataInitialized);

}

 

라이라 원본으로 정상 작동을 진행하는데 코드를 몇번을 수정을 하여도 진척도가 없는데 혹시 원인을 알수 있을까요?

 

InitState_GameplayReady 태그를 사용할 경우에는 정상 동작 합니다..

c++ unreal-engine

답변 2

0

Liu

아마 태그 등록이 초기화 시점보다 등록이 늦어서 발생하는거 같습니다. 혹시 Gameplay tag 등록을 AssetManager에서 등록하셨나요?

0

Walnut

AssetManager에 있는 StartInitialLoading 쪽에 태그를 등록 했습니다.

0

Liu

GameInstace랑 assetmanager 에디터에서 오버라이딩도 진행하셨나요?

0

Walnut

넵 GameInstance 정의 부분 입니다.

void UCLMGameInstance::Init()

{

Super::Init();

// 앞서 정의한 InitState의 GameplayTags 등록:

UGameFrameworkComponentManager* ComponentManager = GetSubsystem<UGameFrameworkComponentManager>(this);

if (ensure(ComponentManager))

{

const FCLMGameplayTags& GameplayTags = FCLMGameplayTags::Get();

// 초기화 순서를 정의 하는곳

//RegisterInitState 함수는 GameManager Init 함수 에서만 정의를 해야함 필수!

// -> 컴포넌트 생성 단계 순서가 보장할수없어 해당부분을 정의하기 위한방법.

ComponentManager->RegisterInitState(GameplayTags.InitState_Spawned, false, FGameplayTag());

ComponentManager->RegisterInitState(GameplayTags.InitState_DataAvailable, false, GameplayTags.InitState_Spawned);

ComponentManager->RegisterInitState(GameplayTags.InitState_DataInitialized, false, GameplayTags.InitState_DataAvailable);

ComponentManager->RegisterInitState(GameplayTags.InitState_GameplayReady, false, GameplayTags.InitState_DataInitialized);

}

}

CLMAssetManager 로 상속해서 만들었습니다.


혹시 풀소스를 원하시면 깃허브로 공유는 가능합니다.

0

Liu

git 링크 주시면 원인 찾은 후 말씀드릴게요

0

Walnut

깃 주소는 삭제 했습니다.

깃 허브 주소 입니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Walnut님.

ModularGameplay 시스템에서 발생하는 문제와 관련된 질문이군요. 비슷한 문제와 관련된 답변이 있습니다. 해당 답변들이 도움이 될 수 있기를 바랍니다.

  1. 언리얼 엔진 블루프린트의 상속에 대한 확인 질문입니다
  2. 완강후, UI_Base의 Start() 함수 호출순서에 관한 질문
  3. 바인딩 로그 출력 관련 질문이 있습니다.

특히, 첫 번째 링크에서 상속과 관련된 언리얼 엔진 블루프린트의 동작 방식을 확인해 보시고, 두 번째 링크에서 객체 초기화와 관련된 문제를 확인해 보시면 도움이 될 것 같습니다.

일반적으로, ModularGameplay의 순서와 관련된 문제는 다음과 같은 사항들을 확인해 보면 해결에 도움이 될 수 있습니다:

  1. 데이터 초기화 순서 문제:

    • 현재 로그에서 ‘Hero’ 컴포넌트가 InitState.DataAvailable에서 InitState.DataInitialized로 전환하는데 실패하고 있습니다. 이 문제는 데이터 초기화 순서가 맞지 않을 때 발생할 수 있습니다.
  2. 모듈 종속성 확인:

    • UE5에서는 여러 모듈이 서로 종속적일 수 있습니다. 종속성을 명확하게 정의하고 올바른 순서로 초기화되도록 설정이 필요합니다.
  3. Feature Component 상태 확인:

    • Manager->HasFeatureReachedInitState 함수가 올바르게 작동하는지 확인하십시오. 특히, 모든 Feature Component가 DataAvailable 상태에 있는지 확인해 보세요.

질문하신 내용을 바탕으로 위에 제공된 링크들에서 더 많은 정보를 찾아보시면 좋을 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Reticle이 안나옵니다.

0

14

1

AddGameFrameworkComponentReceiver vs AddExtensionHandler

0

24

0

B_TeleportToUserFacingExperience가 추가로 생성되지 않습니다.

0

57

2

.

0

59

1

SpawnDefaultPawnAtTransform_Implementation이 호출되지 않습니다.

0

58

2

Input Subsystem 에서 오류가 발생합니다

0

65

1

7강 GameMode와 Modules관련 질문드립니다.

0

56

1

LyraFrontEnd 에서 로딩화면에서 넘어가지 않는 원인이 뭔지 질문드립니다.

0

82

2

리소스 이주했는데 안보이는데 어떻게 해야하나요?

0

86

3

TakeFromAbilitySystem 함수에서 Array 에 대한 remove 는 수행하지 않나요?

0

57

1

CircumferenceMarkerWidget의 bReticleCornerOutsideSpreadRadius 초기화 관련

0

63

1

Pawn 교체, Possess 후 위젯이 이전 값(상태)을 잘못 보여줄 때 처리법이 궁금합니다.

0

75

2

Pawnextension#3 9:19 질문이 있습니다.

0

61

2

Experience 재시작

0

79

2

Log 파트에서 Subtitution Macro Call 를 사용하는 방법이 무엇인가요?

0

82

2

설치후 빌드하는데 에러가 발생하고 인텔리센스도 잘 활성화되지 않습니다.

0

204

1

FPerContextData에 대해 질문이 있어요

0

49

2

OnGameFeatureActivating와 WorldContext관해 질문 있습니다.

0

68

1

GameFeature Action 및 Common UI Widget 생성 관련 질문

0

82

1

가비지컬렉션 관련 질문있습니다.

0

95

3

Travel관련해서 질문 있습니다.

0

61

1

IMC가 먹통이에요

0

89

2

PawnExtension #3 에서 말한 라이라 공식문서가 뭔가요?

0

65

1

PawnExtensionComponent::SetPawnData에서의 CheckDefaultInitialization

0

58

1