인프런 커뮤니티 질문&답변

Walnut님의 프로필 이미지
Walnut

작성한 질문수

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

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

작성

·

128

·

수정됨

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 태그를 사용할 경우에는 정상 동작 합니다..

답변 2

0

민규이님의 프로필 이미지
민규이
지식공유자

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

Walnut님의 프로필 이미지
Walnut
질문자

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

민규이님의 프로필 이미지
민규이
지식공유자

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

Walnut님의 프로필 이미지
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 로 상속해서 만들었습니다.


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

민규이님의 프로필 이미지
민규이
지식공유자

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

Walnut님의 프로필 이미지
Walnut
질문자

깃 주소는 삭제 했습니다.

깃 허브 주소 입니다.

0

안녕하세요, 인프런 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 상태에 있는지 확인해 보세요.

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

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

Walnut님의 프로필 이미지
Walnut

작성한 질문수

질문하기