Unreal Engine - UI Animation

2025. 2. 13. 00:58·Unreal Engine
목차
  1. 1. BP에서 애니메이션 생성 (디자이너 탭)
  2. 2. 그래프 탭
  3. 3. cpp 세팅

progress bar를 통해 구현한 타이머 UI의 시간이 일정 시간보다 적어진 경우 애니메이션을 실행하는 것을 구현한 내용이다.

1. BP에서 애니메이션 생성 (디자이너 탭)


  • 애니메이션을 주고 싶은 UI를 클릭 후 애니메이션 탭에서 +애니메이션 선택
  • +추가를 눌러서 애니메이션을 주고 싶은 UI 선택

  • 추가된 UI의 오른쪽 +버튼을 눌러 원하는 효과(동작) 을 선택한다.

  • 아래 사진은 랜더 오파시티(투명도 조절)와 트랜스폼을 선택한 모습이다.
    • 추가적으로 아래 사진에 보이는 + 버튼을 통해 효과를 바꾼 후(오파시티를 바꾸는 등)
    • 빨간점을 찍어서 표시를 할 수 있다. (프레임을 저장하는 것)

 

 

2. 그래프 탭


  • 함수를 하나 추가한 후 PlayAnimation 노드와 연결해주면 된다.
    • Progress Bar라는 노드는 위에서 애니메이션을 만들면, 자동으로 변수에 추가되어있는 
    • 애니메이션 타입의 변수이다.
    • 추가적으로 Loop를 5번으로 바꿔서 반복해서 보이도록 구현하였다.

 

 

3. cpp 세팅


  • 먼저 UI 관련 세팅이므로 애니메이션을 실행하는 함수는 PlayerController에서 구현하였다.
    • 주의할 점) ProgressBarAnimation 이라는 이름으로 받아왔는데, 이 이름은 위에서 BP의 그래프 탭에서 만든 함수의 이름이다.
void APlayerCharacterController::PlayBarAnimation()
{
	UFunction* PlayBarAnim = HUDWidgetInstance->FindFunction(FName("ProgressBarAnimation"));
	if (PlayBarAnim)
	{
		HUDWidgetInstance->ProcessEvent(PlayBarAnim, nullptr);
	}
}
  • 위에서 구현한 함수를 실행하는 로직은 GameState에 UpdateHUD이다. 
    • if 문을 통해, 애니메이션을 실행한다.
      • value 값이 0.3 보다 작아지면 실행하며,
        • (0.001보다 크게 한 이유는 처음으로 시작되는 경우 0.3f보다 작은 조건을 만족해버리는 오류가 있어서 추가한 내용이다.)
      • bPlayBefore라는 flag를 통해 함수가 여러 번 call되는 것을 방지하였다.
void ADefaultGameState::UpdateHUD()
{
	...
    if (UProgressBar* ProgressBar = Cast<UProgressBar>(HUDWidget->GetWidgetFromName(TEXT("TimeBar"))))
	{			
            RemainingTime = GetWorldTimerManager().GetTimerRemaining(LevelTimerHandle);
            float value = RemainingTime / LevelDuration;
            ProgressBar->SetPercent(value);

            if (!bPlayBefore && value > 0.001f && value < 0.3f)
            {
                PlayerCharacterController->PlayBarAnimation();
                bPlayBefore = true;
            }
	}	
}
  • 실행 모습

 

'Unreal Engine' 카테고리의 다른 글

UE5 Issues : 이모저모  (0) 2025.02.13
Unreal Engine - 3D UI  (0) 2025.02.13
Unreal Engine - Main Menu UI (Start, Restart)  (0) 2025.02.12
Unreal Engine - 간단한 UI 만들기 (HUD)  (0) 2025.02.12
UE5 Issues : Complex Collision  (0) 2025.02.11
  1. 1. BP에서 애니메이션 생성 (디자이너 탭)
  2. 2. 그래프 탭
  3. 3. cpp 세팅
'Unreal Engine' 카테고리의 다른 글
  • UE5 Issues : 이모저모
  • Unreal Engine - 3D UI
  • Unreal Engine - Main Menu UI (Start, Restart)
  • Unreal Engine - 간단한 UI 만들기 (HUD)
gbleem
gbleem
gbleem 님의 블로그 입니다.
gbleem 님의 블로그gbleem 님의 블로그 입니다.
  • gbleem
    gbleem 님의 블로그
    gbleem
  • 전체
    오늘
    어제
    • 분류 전체보기 (185)
      • Unreal Engine (73)
      • C++ (19)
      • 알고리즘(코딩테스트) (28)
      • TIL (60)
      • CS (4)
      • 툴 (1)
  • 블로그 메뉴

    • 홈
    • 카테고리
  • 링크

    • 과제용 깃허브
    • 깃허브
    • velog
  • 공지사항

  • 인기 글

  • 태그

    매크로 지정자
    enhanced input system
    BFS
    addonscreendebugmessage
    additive animation
    상속
    Vector
    싱글턴
    blend pose
    const
    cin함수
    applydamage
    motion matching
    C++
    gamestate
    DP
    actor 클래스
    map을 vector로 복사
    템플릿
    character animation
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gbleem
Unreal Engine - UI Animation

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.