Unreal 캐릭터 - 애님노티파이, 카메라쉐이크, 트레일, 다이나믹메테리얼

2025. 4. 4. 21:27·Unreal5 프로젝트 다이어리

 

e스킬의 점프모션을 좀더 다이나믹하게 만들기위해

애님노티파이를 사용해보자

animinstance 생성

노티파이를 추가한다음

인스턴스내에서 NativeInitializeAnimation오버라이드

NativeThreadSafeUpdateAnimation도 만들고

전역변수로 선언

추가

UFUNCTION()을 반드시 붙히고AnimNotify_(노티파이이름) 선언

(이름이 반드시 동일해야한다)

이렇게 하면 노티파이와 연결이 된다

그래서 애니메이션시퀀스에 노티파이가 찍혀있으면 그 찍혀있는 노티파이에서 해당 함수가 실행이된다

내가구현하고싶은건 e의 점프모션이 나올때 45도방향으로 점프하고

내려찍는 애니메이션이 나올때 쌔게 내려찍게 하고싶은거다

 

여기서 역시 수학이 등장한다

포물선 운동 공식을 사용해보자

어떤 각도 로 발사될때 속도 벡터가 수평 x,y방향과 수직 z방향이 있음

각도 기준으로 삼각함수를 이용하면

물체발사시 x,y방향과 z방향의 속도 를 구할수있음

 

Cos(각도)는 앞으로 나아가는 힘을 구할때 사용

Sin(각도)는 점프하는 힘을 구할때 사용

즉 cos(각도)는 수평 sin(각도)는 수직 을 구할때 사용한다

 

만약 기본속도가 1000 이고 45도 방향으로 점프하고싶다면

cos45가 0.707이고 sin45가 0.707이므로

x방향과 z방향의 속도가 같아짐! ==45도 각도 점프임

즉 cos45 sin45를 곱해주면된다

코드를 살펴보도록하자

 

삼각함수 (sin cos)은 라디안 단위를 사용한다

그래서 각도를 DegreeToRadian으로 바꿔준다

 

forwardDirection * 속도 * cos하면

이동방향과 속도가 계산된 x,y속도가 되고

skillEJumpDirection.Z = firstSpeed * FMath::Sin(radianAngle);

은 z의 방향속도를 계산한다

 

sin45는 0.707이니깐 위쪽방향 속도가된다

그방향으로 launch하면 45도 발사!

결과를 확인해보자

점프할려는 모션에 애님노티파이가 호출이되서 45도 포물선공식으로 45도 발사를한다

이제 올라갔으니 내려오는 코드를 작성해봤다

반대 각도만 구하면 되는것이다

일단 내려올지점에 노티파이를 찍어주고

내려올때의 모습에 다시한번 노티파이를 찍어주고

반대방향을 구해줬다

캐릭터가 내가 계산한 방향대로 잘 움직여준다

그리고 이제 검에 트레일을 달아주자

내가 사용하고있는 캐릭터의 스켈레탈에서

내가 사용하고있는 righthandsocket에 들어가서 (에셋프리뷰) 추가를 해준다

 

그전에 프리뷰의 위치와 나의 칼 위치를 동일하게 맞추기 위해 칼은 전부

기본 위치 회전 스케일로 바꿔준뒤

크기만 1.3으로 변경

right handSocket의 상대적크기위치회전을 바꿔줄예정이다

RightHandSocket의 위치를 바꿔주어 맞게 변형해줬다

트레일의 시작점 끝점을 만들어주고

트레일 스타트포인트와 엔드포인트 설정 그리고 들어갈 트레일을 넣어주고

 

트레일을 추가해주면

 

이렇게 트레일을 추가할수있다

에셋을 추가하고 지금까지 만든 스킬 및 평타에 적용해봤다

대충 이런느낌이다

 

이제 밑의 노란색 게이지를 사용한 각성을 만들어보자

컨셉은 force가 다 차면 컨트롤키로 활성화

포스의 컨셉은 이렇다

 

  1. 캐릭터가 각성 애니메이션이 나온다
  2. 캐릭터의 카메라에 각성을 의미하는 케스캐이드파티클이 연출된다
  3. 캐릭터의 외형이 변하고 칼이 바뀐다
  4. 캐릭터는 전기를 두르며 스킬이 변한다

 

바인드작업을 해줘서 컨트롤키를 누르면 각성 애니메이션이 나오는건 이제 쉬우니

각성을 하면 카메라의 원하는 위치에서 케스케이드실행을 한번 해보도록 하자

UNiagaraSystem이랑 UParticleSystem이 있다

일단 파티클부터 써보도록 하자

include도 깜빡하지말고 해준다

우린 컴포넌트를 카메라앞에 달아두고 활성화 비활성화로 사용할테니

컴포넌트로 선언해준다

선언해주고

컴포넌트 만들고

이걸 카메라에 붙혀보고 위치조정을 하자

카메라컴포넌트에 attach

카메라에 붙혀주고

사용할려는 파티클이 처음 자동실행이니

처음에 비활성화를 해줘야한다

bAutoActivate를 false로 하면된다

그리고 SetActive(true)를 해주면 활성화가됨

결과물을 보자

컨트롤키를 누르면 애니메이션이 나오고 파티클이 카메라앞에서 나온다

 

이제 나이아가라 스폰을 해보자

나이아가라를 쓸려면

build.cs에 추가를 해야한다

이렇게 추가한다

(만약 추가했는데도 밑줄이 뜨거나 인식을 잘못하는거같으면 프로젝트를 새로 generated해주도록하자)

필요한걸 #include 해준다

수정된 전체코드다

각성을 시작하면 타이머를 통해서 미리달아둔 niagaracomponent를 보여줬다 사라졌다 컨트롤을 해보았다

이제 각성을 하면 무기와 캐릭터의 외형이 변경되게 해보겠다

 

그리고 한가지 문제점을 발견했다

currentForce변수가 100이 넘어버리는 현상이 있어서 100일때 force가 켜지는 조건이 틀어진다

이럴땐 clamp를 주면된다

playerCurrentForce = FMath::Clamp(할값, 최소, 최대)

로 설정해주면된다

이번에는 칼의 메테리얼을 바꿔보자

선언후

기본메테리얼, 바꿀메테리얼 넣어주고

이런식으로 사용하면

이렇게 메테리얼이 바뀐다!

이제 카메라 쉐이크도 추가해보자

블루프린트에서 CameraShakeBase클릭

흔들만큼의 양을 세팅해준다

ClientStartCameraShake로 흔들어준다

달리기도 추가해주고

각성하면 달릴수있게

기능도 달아주었다

걸을때는 400 공격모드일때는 600 각성하면 800 이렇게 차례대로 애니메이션이 자연스럽게 바뀌고

각각에 알맞는 이동속도로 바뀐다 + 약간의 카메라 쉐이크

 

 

'Unreal5 프로젝트 다이어리' 카테고리의 다른 글

Unreal 캐릭터 - 비네트효과  (0) 2025.04.04
Unreal 캐릭터 - 줌인/줌아웃, 타임딜레이션, 번개 나이아가라  (1) 2025.04.04
Unreal 캐릭터 - UI추가조정1, 일렁거리는 프로그래스바 만들기  (1) 2025.04.04
Unreal 캐릭터 - 위젯애니메이션  (0) 2025.04.04
Unreal 캐릭터 - UI위젯과 동기화  (0) 2025.04.04
'Unreal5 프로젝트 다이어리' 카테고리의 다른 글
  • Unreal 캐릭터 - 비네트효과
  • Unreal 캐릭터 - 줌인/줌아웃, 타임딜레이션, 번개 나이아가라
  • Unreal 캐릭터 - UI추가조정1, 일렁거리는 프로그래스바 만들기
  • Unreal 캐릭터 - 위젯애니메이션
lucodev
lucodev
커피와 노트북 그리고 개발
  • lucodev
    루코 개발테이블
    lucodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (121) N
      • Unreal5 프로젝트 다이어리 (73)
      • Unreal5 프로젝트 다이어리2 (3) N
      • Unreal 팁 (8)
      • Unreal 디버깅 (8)
      • C++ 프로그래머스 다이어리 (21)
        • Stack (3)
        • Hash (4)
        • Heap (2)
        • Sort (1)
      • 코드 개인보관함 (8) N
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

  • 공지사항

  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 태그

    언리얼 behavior tree
    unreal 모션매칭
    언리얼
    언리얼 페이드 아웃
    언리얼 foot step
    언리얼 로딩
    unreal look at
    언리얼 behaviortree
    언리얼 비헤이비어트리
    언리얼 motionmatching
    unreal 시퀀스
    unreal 로딩
    언리얼 컷씬
    언리얼 시퀀스
    unreal 컷씬
    unreal sequence
    언리얼 로딩창
    언리얼 모션매칭
    unreal loading
    언리얼 look at
  • hELLO· Designed By정상우.v4.10.3
lucodev
Unreal 캐릭터 - 애님노티파이, 카메라쉐이크, 트레일, 다이나믹메테리얼
상단으로

티스토리툴바