Summary
- How to add a crouch button that makes the player crouch to half height with a different walking speed while blending into a crouch animation blendspace.
- Fix a few issues of cycling between walk, run, sprint and crouch.
In Project Settings - Input

◼️ Mixamo 사이트 이용
//In place 옵션 True
◼️ In <Animations> - 폴더 생성 <Crouch>

◼️ Crouching Blendspace 생성
In <Animations> - 폴더 생성 <Blendspaces>

◼️ Anim Graph에 적용
In Animation Blueprint <AnimBP_Paladin> - Anim Graph
//두 변수를 통해 Crouch Animation 결정//bool 값에 따라 두 입력 포즈 중 하나 선택- Anim Montage를 사용하여 코드에서 애니메이션 재생- 애니메이션 블루프린트의 최종 포즈 결정 과정에서 기본 애니메이션을 설정하고, 다른 슬롯에서 오버라이드되는 애니메이션을 혼합하거나 덧붙이기 위한 기반 역할을 합니다
◼️ Blueprint Interface 생성
In <Blueprints> - Blueprint Interface 생성 <BPInterface_CharacterAnims>
- 이름만 있고 구현은 없는 하나 이상의 함수 모음으로,
다른 블루프린트에 추가시킬 수 있다- 다른 블루프린트에 추가시킨 다음에는 고유한 방식으로 블루프린트 인터페이스의 함수를 구현해 줘야 한다
- 이는 본질상 일반 프로그래밍의 인터페이스 개념과 비슷한데, 각기 다른 다수의 오브젝트가 모두 공통의 인터페이스를 통해 접근할 수 있게 된다
- 간단히 말해서, 블루프린트 인터페이스를 통해 블루프린트들 서로간에 데이터를 공유하고 전송할 수 있다
//Anim Graph에서 사용한 IsCrouched와 중복되지 않도록 이름 지정
◼️ Animation Blueprint에서 Blueprint Interface 사용
In Animation Blueprint <AnimBP_Paladin>
In Class Settings
//해당 인터페이스 안의 PaladingCrouching 함수를 갖게 됨In Event Graph
//PaladinCrouching 이벤트가 발생되면 해당 BP Interface안의 Enabled 값을 읽어서 IsCrouched에 반영.반영된 IsCrouched를 Anim Graph에서 이용하여 최종 애니메이션 포즈 결정
◼️ Character Blueprint에서 Blueprint Interface 사용
In Character Blueprint <BP_Base>
In Class Settings
In <Movement Graph>
//Crouching Animation 결정에 사용할 변수1. Character BP의 Crouching 2. Blueprint Interface의 Enabled3. Animation BP의 IsCrouched즉, Blueprint Interface가 Character BP, Animation BP의 매개 역할//Crouch 액션을 입력 받으면 Crouching 변수가 Toggle처럼 작동하는 로직
//함수를 호출하는 방식으로, 인터페이스에 정의된 함수를 호출하여 메시지를 전달하는 개념//인터페이스 함수 구현을 위한 Mesh
//Crouch, UnCrouch는 Character가 제공하는 함수
In CharacterMovement Component
◼️ New Blueprint Interface <BPInterface_CharacterActions>

◼️ In Character Blueprint <BP_Base>
In Class Settings
//RunOn, SprintOn, CrouchOn 함수 포함됨각각의 함수 호출로 간편하게 Animation 전환 가능In Comment: Toggle Walk/Run


In <Toggle Walk/Run M>

In Comment: Sprint


In Comment: Crouch



In <Crouch M>

함수 호출을 통해 구현