Tip!
- 노드 정렬 : 두 노드를 선택 후 'Shift + W,A,S,D' or 'Q'
(알아두면 블루프린트 가독성에 좋긴한데 그렇다고 노드 정리에 너무 집착하진 말자)
- 에셋 추가하고 싶을 때, 추가/임포트 클릭 - 에셋 임포트를 클릭하여 원하는 에셋을 선택하면 된다.
언리얼 프로젝트 내부 파일의 확장자들을 보면 .uasset으로 되어있는 것을 볼 수 있다.
이는 원본을 그대로 복사하여 uasset으로 붙여놓은 사본으로 원본/사본이 사라져도 문제는 없다.
Dodge 이벤트의 데이터 에셋 만들기
BP_Character에서 MontageDataMap 변수를 추가한다.
변수 유형은 맵 형태의 E_CharacterState / BP_MontageDataAsset으로 설정한다.
이제 해당 변수에 넣어줄 DataAsset을 생성했다.(CharacterDodgingData)
CharacterDodgingData 안에는 두 개의 원소를 추가 - Roll몽타주와 BackStep몽타주를 넣었다.
이후 MontageDataMap의 원소 Dodging - CharacterDodgingData로 추가했다.
블루프린트 함수 라이브러리
현재 BP_Weapon에 구현된 Get State Montage Data 함수를 BP_Character에서도 필요하게 되었다.
따라서 해당 함수를 전역으로 사용할 필요가 있기 때문에, 블루프린트 함수 라이브러리를 추가해준다.(Functions)
(우클릭 - 블루프린트 - 블루프린트 함수 라이브러리)
블루프린트 함수 라이브러리는 매크로와 비슷한데 전역 함수들을 작성하여 사용할 수 있는 곳이다.
Functions에 들어와서 Find Montage Data 전역 함수를 만들어줄 것이다.
(값을 변환하는 것이 아니라 퓨어 지정을 해준 모습)
블루프린트 함수 라이브러리로 만든 전역함수 Find Montage Data를 이용하여 Dodge 이벤트 로직을 수정했다.
이렇게 Dodging 이벤트의 로직을 정리했다.
무기 장착 후 Idle 변경하기
먼저 ABP_Character 애니메이션 블루프린트가 어떤 무기를 장비한 상태인지부터 알고 있어야 한다.
따라서 어떤 무기를 장비했는지 받을 새로운 변수를 만들어 줄 것인데, 해당 무기를 받아올 변수 유형을 만들어줄 것이다.
※ 정보를 전달하는 방법
1. A가 B에게 정보를 전달한다.
2. B가 A에서 정보를 받아온다.
3. A가 C에 정보를 맡기고 B가 C에서 정보를 받아온다.
애니메이션 스테이트
특정 애니메이션의 세부사항에서 조절할 수 있다.
들어오는 스테이트 이벤트 / 나가는 스테이트 이벤트 / 완전히 블렌딩된 스테이트 이벤트 3가지가 있다.
여기서 추가해준 스테이트는 애니메이션 블루프린트 이벤트그래프에서 해당하는 노드를 따로 추가해줄 수 있다.
이를 통해 해당 애니메이션에 진입 시 자동으로 스테이트 호출이 되는 방법이다.
인터페이스를 통해서 현재 장착한 무기가 어떤 무기인지 받아올 것이다.(BP_CharacterAnimationInterface)
여러개의 무기를 사용할 것이기 때문에 어떤 대상의 무기인지를 아는 것이 중요하다.
BP_CharacterAnimationInterface 내부에서 함수 SetWeaponType으로 현재 장착한 무기를 입력시켜주는 함수를 만든다.
입력값으로 무기를 받아와야하기 때문에 새로운 변수 유형을 만들어 줄 필요가 있다.
변수 유형을 만들어주기 위해서 새로운 열거형(Enumerations)을 만들어 줄 것이다.(E_WeaponType)
- 열거자 1 : None
- 열거자 2 : Sword
- 열거자 3 : 두번째 무기
3가지의 열거자를 만들고 인터페이스 SetWeaponType 함수에서 입력으로 받아오는 WeaponType변수의 유형을 E_WeaponType으로 설정해준다.
그리고 이렇게 만든 BP_CharacterAnimationInterface 인터페이스를 ABP_Character에 적용시켜준다.
(ABP_Character 클래스 세팅 - 구현된 인터페이스 추가 BP_CharacterAnimationInterface)
그리고 ABP_Character와 BP_Weapon에 각각 변수 WeaponType을 새로 만들어주고 변수 유형 E_WeaponType으로
생성해준다.
마지막으로 BP_Sword에서 WeaponType을 Sword로 바꿔주면 된다.
'언리얼엔진' 카테고리의 다른 글
24. 머티리얼 / Construction Script / Overlap (0) | 2023.06.06 |
---|---|
23. 블렌드 스페이스(8방향) / Calculate Direction (0) | 2023.06.01 |
21. 연속 공격 구현 / 노티파이 스테이트 (0) | 2023.05.30 |
20. Layered blend per bone / 애니메이션 슬롯 / Root Motion (0) | 2023.05.29 |
19. Weapon 교체 로직 / 선택(Select) (1) | 2023.05.26 |