Unreal

[Unreal] 4월 23일 수업정리

k-codestudy 2025. 4. 23. 13:51

애니메이션 블루 프린트 기본 베이스

abp-player

  • 스캘래톤 매 쉬을 우클릭 -> 생성 -> 애님 블루프린트로 abp-player 생성 

BP_ThirdPerson, Character Movement 백업 ( 중요 과정)

  • init를 호출하여 BP_ThirdPerson을 다운 캐스팅 후 변수 승격하여 character를 백업, object는 - Try get pawn onwn
  • Character Movement도 연결하여 변수로 승격하여 Movement를 백업

m-Groud Speed, is-Move, is-Falling 변수 생성

  • Update를 호출하여 시퀀스로 연결 
  • Character Movement의 velocity (속력)을 얻고 Vector Length XY를 얻어와 변수로 승격 ( m-Ground Speed )
  • > 연산자를 이용하여 0.3초 과로 설정하고 변수로 승격 ( m-is Move )
  • Character Movement의 is Falling을 얻어와 변수로 승격 ( m-is Falling )
  • is Falling의 경우 중력의 영향을 받으면 true값이 호출이 된다 ( z Velocity값이 바뀌게 되면 bool값이 변동 ) 

 

애니메이션 그래프 기본 베이스

 

정석적인 방법 

애니메이션 그래프/ state Machine 호출
state Machine 더블 클릭 -> state 생성 -> 연결
우측 하단 에셋 브라우저에서 MM_Idle 드래그 앤 드랍 -> output animation pose에 연결

 

좀 더 간단한 방법 

에셋 브라우저 -> BS_MF_Unarmed_WalkRun 드래그 앤 드랍
BS_MF_Unarmed_WalkRun에 들어가 보면 잘 연결 되어있는것을 확인할 수 있다.

  • 에셋 브라우저에서 애니메이션을 드래그 앤 드랍을 하면 알아서 저 위에 과정을 해주게 된다. 
 
걷기 

BS_MF_Unarmed_WalkRun에 m-Ground Speed 연결
연결을 하게 되면 저런식으로 동그라미가 생기게 되는데 If라고 생각하면 될꺼같다.
MF_Idle -> BS_MF_Unarmed_WalkRun : M-is Move가 true라면

  • 여기까지 진행을 하고 실행하게 되면 BS_MF_Unarmed_WalkRun가 실행이 되는데 BS_MF_Unarmed_WalkRun에서 M-Idle로 넘어오지는 않는다. 
  • 스테이트 패턴과 같이 자기 상태의 조건을 보고 포인터를 이용하여 그쪽으로 이동한 것이다. 즉 탈출구를 마련하지 않으면 그 포인터에 계속 머물러 있는 것이다.

BS_MF_Unarmed_WalkRun -> MF_Idle : M-is Move가 Flase라면

 

점프

만들었던 state를 ground Loco로 이름 변경 -> cache Poses로 백업
state를 main Loco로 이름 변경 -> cache Poses로 백업

  • Cache Poses를 사용하면 state Machine을 백업할 수 있다.

Ground Loco은 생성, MM_Jump, MM_Fall_Loop은 에셋 브라우저에서 드래그 앤 드랍 후 각각 연결
Ground Loco로 들어가 백업해 둔 c-Ground Loco 연결 ( 걷기에 관련된 것이 전부 들어있음 )
Ground Loco -> mm_Jump : m-is Falling이 True라면 넘어감
MM_Jump -> MM_Fall_Loop : atuomatic rule on ( 실행 완료로 실행이 완료되면 자동으로 넘어감 )
MM_Fall_Loop -> Ground Loco : m-is Falling이 False라면 넘어감
Output Pose에 c-Main Loco 연결