본문 바로가기
프로그래밍/Unreal 부트캠프

TIL 2025.02.14 기록

by Rozentea 2025. 2. 14.

0. 개요


오늘은 스파르타 캠프에서 커리어 데이를 진행했어서 오늘은 이력서 작성과 팀프로젝트 회의에 집중을 했었다.

 

추가적으로는 애니메이션 리타게팅, 모션 매칭에 대해 공부해 보았다.

ㄴ> 이건 아직 감이 많이 안잡히기도 했고, 실험도 해보긴 했지만.. 아직 크게 진전은 없어서 포스팅은 나중에 프로젝트에 적용할 수 있을 만큼 공부를 하고 포스팅하려한다.

 

때문에 강의 들었던 것을 조금 기록하고 오늘은 마치겠다.

 

1. UI 애니메이션 효과 및 3D 위젯 UI 구현하기


< UI에 애니메이션 넣기 >

기본적으로 하단에 애니메이션 창이 있다.

애니메이션을 추가한 다음 해당 애니메이션을 어떤 UI에 적용할 것인지 지정해줄 수 있다.

우리는여기서 랜더 오파시티를 이용해 깜빡이는 텍스트를 만들어주었다.

이제 이렇게 만든 애니메이션을 실행시켜줄 수 있는 함수를 만들어야 한다.

안보이게 꺼두었던 Text들을 다시 보이게 해주고, 애니메이션을 실행시켜주도록 함수를 만들었다.

블루프린트로 애니메이션 함수를 만들었으면

UFunction* PlayAnimFunc = MainMenuWidgetInstance->FindFunction(FName("Anim_TimeOver"));

를 사용해서 플레이어 컨트롤러에서 애니메이션을 실행 시켜줄 수 있도록 애니메이션을 찾아왔다.

MainMenuWidgetInstance->ProcessEvent(PlayAnimFunc, nullptr);

확인해보면, 점수 갱신이 안되었다.

때문에 이전과 동일하게 TotalTextBlock에 데이터를 연결해주었다.

 

이제 플레이어의 HP를 띄워줄 것이다.

그러기 위해서는 3D 위젯 컴포넌트라는 것을 사용해야 한다.

우선 택스트 형식으로 10/100과 같은 형태로 캐릭터에 붙여줄 것이다.

그래서 택스트만을 이용해 WBP를 만들어주었다.

이제 이것을 플레이어 3D 위젯 컴포넌트에 붙여주어야 한다.

이것은 UI를 3D월드 공간에 배치할 수 있게 해주는 기능이다.

이것도 2가지 모드가 있는데

  1. 스크린 모드
    ㄴ> UI가 항상 화면에 고정되어 있는 것으로 보인다.
    ㄴ> 즉, 3D 공간상에 배치는 되어있는데 우리가 예전에 파티클을 만들었던 것 처럼 항상 카메라의 정면을 바라보도록 그려진다는 것
  2. 월드 모드
    ㄴ> 캐릭터의 움직임에 따라서 택스트도 회전하게됨.

일단 우리 캐릭터 클래스에 해당 3D위젯 컴포넌트를 만들어 붙여주었다.

OverHeadWidgetComp = CreateDefaultSubobject<UWidgetComponent>(TEXT("OverHeadWidget"));
OverHeadWidgetComp->SetupAttachment(GetMesh());

또, 이전과 마찬가지로 위잿 인스턴스를 만들어서 텍스트를 전달해주었다.

이후에는 다시 에디터에서 캐릭터 BP를 열러 붙여준 3D위젯컴포넌트에 우리가 만들었던 체력 WBP를 연결해주면된다. 블루 프린트에서 스페이스 모드를 잠시 월드로 하면 체력바를 뷰포트에서 확인할 수 있다. 이 상태에서 위치나 크기를 조절해주고, 다시 스페이스 모드를 스크린으로 바꿔 저장해주면 된다.

게임 스테이트쪽에 게임이 완전히 정지될 수 있는 기능을 추가해주었다.

void ASpartaGameState::OnGameOver()
{
	if (APlayerController* PlayerController = GetWorld()->GetFirstPlayerController())
	{
		if (ASpartaPlayerController* SpartaPlayerController = Cast<ASpartaPlayerController>(PlayerController))
		{
				SpartaPlayerController->SetPause(true);
				SpartaPlayerController->ShowMainMenu(true);
		}
	}
}

SetPause()함수를 이용해 완전히 컨트롤러를 멈추거나 동작하게 할 수 있다.

 

2.  마무리


오늘 회의에서는

- 팀 프로젝트 동안 약속 정하기

- 코딩 컨벤션 정하기

- 업무 분담

- Git GUI tool 정하기

를 진행했다.

 

우리 조 분위기가 좋고 화목하고, 열정이 넘쳐서 좋았다. ㅎㅎ >ㅅ< b 쵝오

'프로그래밍 > Unreal 부트캠프' 카테고리의 다른 글

TIL 2025.02.18 기록  (0) 2025.02.18
TIL 2025.02.17 기록  (0) 2025.02.17
TIL 2025.02.13 기록  (0) 2025.02.13
TIL 2025.02.12 기록  (0) 2025.02.12
TIL 2025.02.11 기록  (0) 2025.02.11