Unreal

[Unreal] 4월 24일 수업정리

k-codestudy 2025. 4. 24. 14:19

애디티브에 대한수업을 들었다

 

기본 설정

기본적인 백업 ( 이벤트 그래프 )

  • init 호출
  • BP_ThirdPersonCharacter 캐스팅 (형변환) / object는 try Get pawn Owner
  • BP_ThirdPersonCharacter 변수 승격 ( 백업 )
  • Character Movement 호출 후 변수 승격 ( 백업 )

M-speed, M-is Move 함수 ( 이벤트 그래프 )

  • Update에 시퀀스 연결
  • Character Movement의 velocity 호출 
  • Velocity에서 Vector Length XY 호출 후 변수 승격 ( m-Speed )
  • > 연산자를 이용하여 0.3 초과라는 조건 지정 후 변수 승격 ( m-is Move )

groud Loco ( 애니메이션 그래프)

  • state Machine을 호출 ( Ground Loco )

Ground Loco 내부

  • 에셋 브라우저에서 MM_Idle, BS_MF_Unarmed_WalkRun 드래그 앤 드롭 후 연결
  • MM_Idle 무한 루프 설정
  • BS_MF_Unarmed_WalkRun에 m-Speed 연결
  • 조건으로 m-is Move가 true, false 설정

태스트

 

애디티브

기존의 애니메이션과 재생하는 애니메이션의 차이를 통해 애니메이션을 만드는 것

 

애디티브 호출

  • base : 기본 베이스
  • Additive :섞을 애니메이션
MM_Land 애니메이션 디테일 패널중 애디티브 세팅

사용 방법

  • 테스트를 진행해 보면 가만히 있거나 움직일 때 MM_Land의 애니메이션이 같이 섞여서 나오게 된다. 
  • Alpha값을 건드려서 비율을 줄이게 되면 덜 섞이게 된다
state Machine 호출 ( Motion Loco ) -> cache로 백업

 

스테이트 에일리어스
  • 보이지 않는 선을 그어주는 느낌으로 디테일 패널에 스테이트 에일리어스 아래 체크를 하게 되면 그 체크된 매개로 부터 시작할 수 있음
  • Ground Loco를 클릭했으니 들어갈 수 있다.
( 이벤트 그래프 )
  • Character Movement의 is Falling 호출 후 변수 승격 (m-is Falling )
  • Velocity 변수 승격 ( m-Velocity )

각각 선 연결

To Falling ->MM_Jump
  • Velocity 핀 분할 후 Z값이 100 초과 && m-is Falling 이라는 조건 추가

MM_Fall_Loop도 꺼내서 연결

  • 문제점 발생 : 점프, 떨어질 때 2개다 연결하게 되면 어떤 식으로 조건을 달아야 하는지
  • 해결 방법 : 조건을 클릭해 보면 디테일 판 우측 상단에 우선권 순서가 존재, 우선권이 높은 순서대로 실행이 된다
  • MM_Jump는 우선권 1, MM_Fall_Loop는 우선권 2로 설정 
  • To Falling -> MM_Fall_Loop 조건 : is Moving이라면 

 
  • state machine Land를 만들고 에일리어스 (To Land) 생성 후 연결
  • 조건은 Not is-Falling일 때
Land 내부
  • C-ground, MM_Land, Apply Additive 호출
  • base : c-ground, Additive : MM_Land 연결 
  • Land -> Ground Loco 조건 : automatic Rule Based.. On
  • 중요 포인트 : Always Reset on Entry
  • 리셋을 하지 않게 되면 잔량을 실행해야하기에 모션이 섞여 버그가 일어남 
  • 원하는 State 클릭 후 디테일 패널에 고급을 보면 On, Off 가능 ( 적절히 설정 하면 됨 )
  • 디테일적인 부분 : Land에서 조건문 하나 더 추가 ( 선을 한번 더 그으면 조건이 추가됨 )
  • is Move라는 조건을 추가 하게되면 좀 더 부드러운 동작이 나오게 됨