관리 메뉴

기억을 위한 기록들

언리얼 커스텀 애니메이션 노드 만들기- 세팅편(1) 본문

UnrealEngine/Unreal Engine 관련

언리얼 커스텀 애니메이션 노드 만들기- 세팅편(1)

에드윈H 2020. 7. 5. 11:58

 

 

애니메이션 블루프린트에는 다양한 애니메이션 그래프들이 있다.

 

원하는 기능을 작동하는 애니메이션 그래프를 만들어보자

 

 

 

AnimGraphNode_Base 클래스를 상속받아 생성해준다.

 

만들어주게 되면 별 다른 내용은 없다.

 

우선 추가해줘야 할게 있는데 이 부분은 별도로 만들어서 #include 해줘도 된다.

 

여기서는 보기 편하게 같은 파일 안에 넣어주겠다. 그것은 바로,

FRunAnimNode라고 지어주었다.(이름 짓기는 힘들어..)

FAnimNode_Base 구조체를 상속받는 구조체이다.

 

간단히 설명하자면,

 

FRunAnimNode는 애니메이션 그래프에서 해당 로직이 실행될 때, 실질적으로 연산되는 부분들이다.

 

 

AnimGraphNode_Base는 그것들이 애니메이션 블루프린트에서 화면에 표시되도록 도와주는 역할이다.

 

 

우선, FRunAnimNode이라는 이름으로 만든 구조체에 추가해줘야 할 부분이 있다.

해당 FPoseLink 변수와 

 

해당 함수들을 추가시켜준다.

 

 

그리고 비어있던 함수들 몸통에

 

 

BasePoseNode 변수와 함께 채워준다.

 

일단 이 정도까지 하고나서도, 애니메이션 그래프에서는 뭘 할순 없다.

 

그 다음 UCustomAnimGraphNode 클래스를 채워보도록하자.

 

4개의 함수를 선언해주며, 몸통 부분에

여기서 사용 되는 LOCTEXT_NAMESPACE 이란,

https://docs.unrealengine.com/ko/Gameplay/Localization/Formatting/index.html

 

텍스트 현지화

텍스트 리터럴, 텍스트 포맷, 텍스트 생성, 스트링 테이블 등 텍스트 현지화 관련 필요한 모든 정보를 제공합니다.

docs.unrealengine.com

선언 해주며,

 

 

위와 같이 작성해주면 빨간색 색상과 Apply라는 이름으로 표시가 될것이다.

(색상 설정 함수(GetNodeTitleColor)나, 노드 카테고리 설정 함수(GetNodeCategory)는 필요에 따라

 선언 해주지 않아도 된다.)

 

애니메이션 블루프린트에서 호출해보자.

 

잘나오고 있다.

하지만, 이 상태에서 불러보았자,

 

 

아무것도 할수 없는 그래프노드이다.

 

여기서 이제 이전에 추가해줬던, 구조체 변수를 하나 추가해주자.

이런식으로 해당 구조체를 추가해주었다.

 

그 상태에서 컴파일 한뒤, 다시 애니메이션 블루프린트를 가면

 

 

배치에 놓았던 Apply는 Base Pose Node가 있는 상태로 바뀌지 않으며,

다시 Apply를 검색하여 새로 추가해주었더니 위와 같이 생겼다.

 

 

아무런 가능이 없는 애니메이션 그래프가 추가 되었다.

 

여기서 이제 Node 이외에 추가로 넣어보자.

 

여기서 어떤 기능을 조절하기 위한 float형 알파값은 넣는다고하면, 아까 FRunAnimNode 구조체에 추가해준다.

 

그리고 컴파일을 다시하면,

 

 

역시나 배치 해놨던 노드는 변하지 않았고,

 

새로 호출해주니 기존에 있던 그래프는 위에 있는것처럼 아무런 기능을 할 수 없게 된다.

 

그리고 Alpha 값이 추가 되었다.

 

 

이제 다음 글에서 이렇게 세팅되는 Alpha값외에도 Vector값 등이 어떻게 적용되는지 확인해보자. 

 

 

 

 

 

 

https://www.unrealengine.com/ko/blog/creating-custom-animation-nodes

 

Creating Custom Animation Nodes

애님 블루프린트는 알파 값에 따라 다양한 애니메이션들을 블랜딩 할 수 있게 해 줍니다. 여러분이 커스텀 노드를 만드실 수 있도록 이에 관한 설명을 읽어 보시기 바랍니다.

www.unrealengine.com

 

https://docs.unrealengine.com/ko/Programming/Animation/AnimNodes/index.html

 

애니메이션 노드 테크니컬 가이드

애님 블루프린트의 그래프 안에서 사용할 노드를 새로 만드는 방법에 대한 안내서입니다.

docs.unrealengine.com