블루프린트와 비슷하게 함수를 ‘퍼블릭'으로 만들어 사용자 생성 함수를 에셋 그래프 간에 공유할 수 있습니다. 함수를 자손 클래스하고만 공유하는 블루프린트와 달리 컨트롤 릭(Control Rig) 함수는 프로젝트 범위로 공유할 수 있습니다. 커스텀 함수 라이브러리를 생성하고 프로젝트의 모든 컨트롤 릭 그래프와 공유할 수 있습니다.
이 문서에서는 컨트롤 릭에서 함수 라이브러리를 생성하는 모범 사례를 안내하고 엔진에서 기본으로 제공하는 함수 라이브러리 사용 방법을 보여줍니다.
새 함수 라이브러리
다음 단계는 새 컨트롤 릭 함수 라이브러리를 생성하고 사용하는 방법을 보여줍니다.
컨트롤 릭 컨테이너 생성하기
커스텀 함수는 컨트롤 릭 에셋 안에서만 존재할 수 있으므로 첫 번째로 할 일은 컨트롤 릭 에셋을 생성하는 것입니다. 이 컨트롤 릭은 함수를 담는 기본 컨트롤 릭이 될 예정이므로 어떤 스켈레탈 메시에도 연결하면 안 됩니다.
콘텐츠 브라우저(Content Browser)에서 추가(Add)(+) 를 클릭한 다음, 애니메이션(Animation) > 컨트롤 릭(Control Rig) 을 선택합니다. 컨트롤 릭 블루프린트 생성(Create Control Rig Blueprint) 대화창에서 ControlRig 을 선택하고 생성(Create) 을 클릭합니다. 생성된 컨트롤 릭을 엽니다.
이 에셋의 목적에 따라, 해당 함수 라이브러리는 컨트롤 릭 에셋 이며 어떤 스켈레톤에도 종속되지 않습니다. 덕분에 함수의 컨테이너로서 에셋을 최대한 가볍게 유지할 수 있습니다.
퍼블릭 함수 생성하기
컨트롤 릭 에디터(Control Rig Editor)에서 내 블루프린트(My Blueprint) 의 함수(Functions) 섹션에서 추가(Add)(+) 를 클릭하여 새 함수를 생성합니다.
다음으로, 함수를 선택하고 디테일(Details) 패널에서 접근 지정자(Access Specifier) 를 퍼블릭(Public) 으로 설정합니다. 이렇게 하면 모든 컨트롤 릭에서 이 함수에 공개적으로 액세스할 수 있습니다.
함수 안의 데이터 구성
함수 내에 원하는 임의의 로직이 포함되도록 생성할 수 있으며, 여기에는 툴팁 설명, 컨텍스트 메뉴 카테고리 등 함수의 메타데이터도 포함됩니다.
이 예시에서는 For Each 노드와 Set Control Visibility 노드를 생성한 후 함수의 Entry 노드와 Return 노드에 연결했습니다.
Entry 노드에 변수 입력을 생성하려면, Entry 를 선택하고 디테일 패널의 입력(Inputs) 카테고리에서 추가(+) 를 클릭합니다. 이 예시에서는 다음 변수를 생성했습니다.
릭 엘리먼트 키(Rig Element Key) : 배열(Array) 타입
부울(Boolean) : 단일(Single) 타입
이제 변수 입력을 각각의 노드에 연결합니다.
필요에 따라, 디테일 패널에서 노드 세팅(Node Settings) 프로퍼티를 편집하여 카테고리, 툴팁이나 기타 유용한 프로퍼티를 함수에 추가할 수도 있습니다.
이름 |
설명 |
---|---|
카테고리(Category) |
이 프로퍼티를 채우면 명명된 컨텍스트 메뉴 카테고리 내에 노드가 배치됩니다. 이 카테고리는 컨트롤 릭 그래프에 노드를 추가할 때 표시됩니다.
|
키워드(Keywords) |
컨텍스트 메뉴를 사용하여 검색 시 이 함수를 찾는 데 사용할 수 있는 검색어를 추가합니다.
|
설명(Description) |
이 함수에 대한 툴팁 설명을 추가합니다. 툴팁 설명을 그래프에 추가한 뒤 해당 노드나 컨텍스트 메뉴 항목 위에 커서를 가져가면 툴팁을 볼 수 있습니다.
|
색(Color) |
함수 노드 헤더의 색을 설정합니다. 노드 디폴트(Node Defaults) 카테고리를 확장하여 노드의 모습을 미리 확인할 수 있습니다.
|
함수 참조하기
다른 컨트롤 릭에 공유된 함수를 추가하려면 릭 그래프(Rig Graph) 에서 우클릭하고 컨텍스트 메뉴에서 함수를 추가합니다. 공유된 함수는 참조할 수 있도록 노드 헤더에 폴더 경로가 표시됩니다.
공유된 함수 노드를 더블클릭하면 해당 함수와 함수 로직이 포함된 컨트롤 릭 에셋이 열립니다.
함수 현지화하기
함수의 로직을 공유 버전으로부터 분리하려는 경우, 함수를 현지화하면 현재 릭 그래프 내에서 함수 로직의 로컬 사본이 생성됩니다.
이렇게 하려면 함수 노드를 우클릭하고 함수 현지화(Localize Function) 를 선택합니다. 대화창에서 함수가 활성화되어 있는지 확인하고 확인(OK) 을 클릭합니다
이제 함수가 로컬 함수로 변환되어 로직을 로컬로 분리할 수 있습니다.
표준 함수 라이브러리
언리얼 엔진에는 기본적으로 컨트롤 릭 표준 함수 라이브러리(Standard Function Library) 가 포함되어 있으므로, 이를 참조하여 자체적인 함수 라이브러리를 생성하는 방법을 알 수 있습니다. 추가로, 여기에는 자체 리깅 워크플로를 지원하는 데 사용할 수 있는 다양한 함수도 포함되어 있습니다.
이 표준 함수 라이브러리는 Control Rig Plugin 폴더에 있습니다. 이 라이브러리를 사용하려면 콘텐츠 브라우저 를 열고, 세팅(Settings) 을 클릭한 다음 엔진 콘텐츠 표시(Show Engine Content) 및 플러그인 콘텐츠 표시(Show Plugin Content) 를 활성화하여 해당 플러그인 폴더를 확실하게 활성화합니다.
그런 다음, 엔진(Engine) > 플러그인(Plugins) > 컨트롤 릭 콘텐츠(Control Rig Content) > StandardFunctionLibrary 로 이동하여 StandardFunctionLibrary 를 엽니다.
라이브러리를 열면 내 블루프린트(My Blueprint) 패널에 다양한 함수가 보입니다.
표준 함수 라이브러리는 엔진 콘텐츠(Engine Content) 에서 제공하므로 이 에셋에 적용한 모든 변경사항은 언리얼 엔진을 재설치하거나 업데이트하면 오버라이드됩니다. 엔진 콘텐츠의 함수 라이브러리를 수정하는 것보다 자체적인 함수 라이브러리를 생성하는 것을 권장합니다.