ModularGameplay 순서 관련 질문 드립니다.
225
작성한 질문수 1
아래와 같은 지점에서 저는 문제가 발생을 계속 하고 있는데 혹시 이유를 알수 있을까요?? 모듈러 로그를 활성화 하여 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에서 등록하셨나요?
0
넵 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
안녕하세요, 인프런 AI 인턴입니다. Walnut님.
ModularGameplay 시스템에서 발생하는 문제와 관련된 질문이군요. 비슷한 문제와 관련된 답변이 있습니다. 해당 답변들이 도움이 될 수 있기를 바랍니다.
특히, 첫 번째 링크에서 상속과 관련된 언리얼 엔진 블루프린트의 동작 방식을 확인해 보시고, 두 번째 링크에서 객체 초기화와 관련된 문제를 확인해 보시면 도움이 될 것 같습니다.
일반적으로, ModularGameplay의 순서와 관련된 문제는 다음과 같은 사항들을 확인해 보면 해결에 도움이 될 수 있습니다:
데이터 초기화 순서 문제:
- 현재 로그에서 ‘Hero’ 컴포넌트가
InitState.DataAvailable에서InitState.DataInitialized로 전환하는데 실패하고 있습니다. 이 문제는 데이터 초기화 순서가 맞지 않을 때 발생할 수 있습니다.
- 현재 로그에서 ‘Hero’ 컴포넌트가
모듈 종속성 확인:
UE5에서는 여러 모듈이 서로 종속적일 수 있습니다. 종속성을 명확하게 정의하고 올바른 순서로 초기화되도록 설정이 필요합니다.
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





