2025.05.29
오늘의 목표
상태수치 ui 달고 테스트
작업 내용
- 상태수치 틱당 변화량 적용
- hp, 에너지, 포만감 테스트 ui
- 게임모드, 컨트롤러 블루프린트 생성
버그 / 문제점
- 틱 적용
증상: 상태수치 컴포넌트의 틱값을 10프레임으로 적용해주었는데, 틱당 소모가 여전히 16.6초(기존값)임.
해결: 에디터 재시작
- WBP
증상: 프로그래스바 하나 추가하고, 또 추가하려니까 안됨.
원인: UMG의 루트 위젯은 하나만 존재 가능한데, 프로그래스바가 루트라서 추가 안되는 것.
해결: 캔버스 패널을 루트로 둠
이게 맞나?
- 컨트롤러 코드에 위젯을 추가하였는데 블루프린트에 뜨지 않음
원인: error LNK2019, UMG 모듈 누락
해결: .Build.cs에 "UMG" 추가
잘 뜸
- 화면에 ui 안뜸
u클래스를 찾지 못함.
원인: 게임모드 컨틀로러를 c++로 해놓고, BP로 안바꿔줌.
해결: 쉽게 하려고 게임모드 c++ PlayerControllerClass = AVVPlayerController::StaticClass() 주석처리.
블루프린트에서 직접 컨트롤러 할당.
- ui 게이지 소모 반영 안됨
Get Owning Player Pawn 부터 실패함.
원인: Event Pre Construct 에 연결함.
Event Construct, 틱에 연결해봐도 캐스팅 실패.
이 위젯을 달아준건 플레이어 컨트롤러인데, 컨트롤러의 owner를 불러와서 실패한거다ㅋㅋㅋㅋㅋ
해결: 캐릭터 참조를 넘겨주면 된다.
게터 만들자.
1. 게임모드: 주로 서버 측.
2. 플레이어 컨트롤러: 클라이언트 측 => 적합.
Get Owning Player 로 컨트롤러 - 캐스팅 - 겟 캐릭터
컨트롤러를 가져오는 데에는 성공했지만, 캐릭터를 가져오는데 실패한다.
원인은 게임모드에서 컨트롤러와 캐릭터를 이어주는 작업 이전에 위젯이 생성되기 때문으로 보인다.
틱에 연결하면 잘 됨.
일단, 위젯 생성이 먼저 되도록 순서를 바꿨는데, 절대적 보장이 아닌 임시이기 때문에 다른 조치를 취해야겠다.
델리게이트를 적용하자.
기본적으로 겟 캐릭터, 델리게이트를 통한 캐릭터 참조를 컴포넌트 세팅 함수에 넘겨준다.
이로써 순서상 위젯생성 - 캐릭터 연결 이 되더라도 캐릭터를 참조하지 못하는 상황이 방지되었다.
=> 위젯 생성 - 캐릭터 연결: 델리게이트
캐릭터 연결 - 위젯 생성: 겟 캐릭터 (주로 이 경우)
- ui 위젯이 원하는 위치에 자리하지 않음
증상: 전체화면이면 잘 적용되는데, 창모드이면 엉뚱한 위치에 있음.
원인: 앵커 설정
해결: 좌상단의 앵커를 우하단으로 옮김.
- 패키징 실패
다른 환경에서 장 돌아가는지 확인하기 위해서 패키징을 시도했다.
패키징 셋팅을 Shipping, 배포용 체크 후 패키징.
애니 블루프린트에서 에러가 났다. 원인은 이전에 코드에서 게터함수명을 바꿨는데, ABP에서는 수정해주지 않았기 때문.
다만, 그동안 컴파일이든 PIE 실행은 문제없었는데, 여기서 문제가 터진건 PIE와 패키징 빌드의 차이일 수도 있고, 캐싱 문제일 수도 있고.. 확실히는 모르겠지만, 블루프린트와 연동된 멤버를 변경할 땐 신경 쓰자.
그리고 종종 패키징을 통해서 문제를 바로 잡아야겠다.
=> 아 ㅋㅋ 내가 사용하지 않는, 이전에 사용했던 애니메이션이었다.
배운 것
- 틱당 변화량
16.6(게임 틱)당 소모되게 하니까 부자연스럽다.
10프레임 마다 소모되도록 했다. (EnergyDelta / VVTick) * DeltaTime
- 테스트용 UI. UMG(언리얼 UI 툴셋)
10프레임마다 로그가 자나가서 눈아프다.
간단한 게이지를 적용하자.
콘텐츠 브라우저 - 유저 인터페이스 - 위젯 블루프린트
- 위젯 블루프린트 WBP
디자이너 쪽에서는 별다른 설정을 하지 않았다.
프로젝트 생성부터 지금까지 거의 120시간 동안 했다.
지금은 느려도 구조와 개념을 잡고 가면 점점 빨라지겠지.
'프로젝트 VV 개발일지(0) > 다이어리' 카테고리의 다른 글
05.31 헤더 파일과 생성자를 수정 할 땐 에디터를 끄자. (0) | 2025.06.01 |
---|---|
05.30 기존 상태수치에 체온 시스템을 어떻게 연결할까 (0) | 2025.05.31 |
05.28 게임모드에서 캐릭터와 컨트롤러를 연결해주자 (0) | 2025.05.29 |
05.27 카메라 토글, 추적 모드와 자유이동 모드 (0) | 2025.05.27 |
05.26 휴식 (0) | 2025.05.26 |