ALS 캐릭터 디버깅
1. PIE 시작 직후 ensure 크래시
Ensure failed: !bUseControllerDesiredRotation && !bOrientRotationToMovement
(AlsCharacterMovementComponent.cpp:196, BeginPlay)
- 원인:
BP_SovereignCharacter의 무브먼트 컴포넌트 디폴트에 bOrientRotationToMovement = true가 BP 에셋에 저장(오버라이드)돼 있었음.
- ALS는 회전을 매 프레임 직접 제어하므로 이 플래그들은 반드시 false여야 함. 켜져 있으면
BeginPlay의 ensure가 트립.
- C++ 생성자에서 false로 줘도 소용없음 → BP 저장값이 생성자 실행 이후 로드되어 덮어씀.
2. ALS 잠긴 속성을 BP에서 못 고침
UAlsCharacterMovementComponent::CanEditChange가 RotationRate / bUseControllerDesiredRotation / bOrientRotationToMovement를 디테일 패널에서 잠금.
- 해결:
CanEditChange를 임시로 return Super::CanEditChange(Property);로 완화 → 리빌드 → BP에서 값 리셋/해제 → 저장 → 원본으로 원복 → 다시 리빌드.
3. 플러그인 콘텐츠가 콘텐츠 브라우저에 안 보임
- 콘텐츠 브라우저 Settings → Show Plugin Content 체크.
- ALS 에셋: 스켈레톤
SK_Als, 스켈레탈 메시 SKM_Als (Plugins/ALS-Refactored-4.16/Content/ALS/Character/).
4. ALS 2-메시 구조 (Sovereign)
- 메인 메시
SKM_Als(스켈레톤 SK_Als): 숨김, AB_Als AnimBP 구동, 모든 몽타주가 여기서 재생.
- VisualMesh(커스텀 스켈레톤): 보이는 메시,
Retarget Pose From Mesh ABP로 메인 메시 포즈를 런타임 복사.
- 개별 애니/몽타주를 리타겟하는 게 아니라, 런타임 포즈 리타겟이 한 번에 처리. → 몽타주는
SK_Als에 두는 게 맞음.