베리언트에 액터를 바인딩할 때마다 베리언트 매니저(Variant Manager)에서는 현재 베리언트가 켜질 때 변경할 액터의 프로퍼티를 선택하라는 메시지를 표시합니다. 하지만 바인딩된 액터의 프로퍼티 값을 변경하는 대신 베리언트 매니저에서 해당 액터에 대해 호출할 함수를 하나 이상 지정할 수 있습니다.
베리언트 매니저를 구성하면 바인딩한 액터에 의해 이미 노출된 함수를 호출할 수 있습니다. 또한 바인딩된 액터를 입력으로 받아들이는 새 블루프린트 함수를 처음부터 새로 만들 수도 있습니다. 이 페이지에 설명된 단계를 따르면 이러한 두 가지 방법을 모두 수행할 수 있습니다.
단계
베리언트가 활성화되어 있을 때 블루프린트 함수를 호출하려면 다음 단계를 따릅니다.
-
콘텐츠 브라우저 에서 레벨 베리언트 세트 에셋을 더블클릭하여 베리언트 매니저 UI에서 엽니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
-
베리언트 매니저 UI의 왼쪽 열에서 구성하려는 베리언트를 선택합니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
-
베리언트에 호출하려는 함수를 가진 액터를 바인딩하지 않은 경우 액터를 월드 아웃라이너(World Outliner) 패널에서 베리언트 매니저의 액터(Actors) 열로 드래그합니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
베리언트 매니저에서 캡처할 프로퍼티를 선택하라는 메시지가 표시되면 모든 프로퍼티의 체크를 해제할 수 있습니다. 선택(Select) 을 클릭하여 계속합니다.
-
베리언트에 바인딩된 액터 목록에서 액터를 우클릭한 후 컨텍스트 메뉴에서 함수 호출자 추가(Add function caller) 를 선택합니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
-
프로퍼티(Properties) 열의 하단에서 새로운 함수 호출자(Function caller) 항목을 찾아 값(Values) 열에서 드롭다운 목록을 사용하여 호출할 함수를 선택합니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
새로운 함수 생성(Create New Function) 을 선택하여 완전히 새로운 블루프린트 함수를 생성하거나 액터에 호출하려는 함수가 이미 구성되어 있는 경우 퀵 바인딩 생성(Create Quick Binding) 목록에서 기존 함수를 선택합니다.
-
베리언트 매니저에서 LevelVariantSetDirector 라는 특수한 블루프린트 클래스를 편집할 수 있도록 엽니다. 이 블루프린트는 레벨 베리언트 세트 에셋이 소유합니다. 이 블루프린트의 역할은 활성화된 베리언트에 반응하여 실행해야 하는 모든 로직을 저장하는 것입니다.
베리언트 매니저가 LevelVariantSetDirector 블루프린트에서 새로운 함수를 자동으로 생성합니다. 베리언트가 활성화될 때마다 베리언트 매니저에서 이 함수를 자동으로 호출합니다. 베리언트가 활성화될 때 트리거되는 블루프린트 로직을 더 커스터마이징해야 하는 경우 이 그래프에서 커스터마이징할 수 있습니다.
이전 단계에서 새로운 함수를 생성하기로 선택한 경우 디폴트 이름이 지정된 새로운 비어 있는 함수를 가지게 됩니다. 이 함수는 실행해야 하는 블루프린트 로직으로 채울 수 있습니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
베리언트 매니저는 블루프린트 그래프를 생성하는 데 유용한 정보를 새 함수에 전달합니다.
파라미터: 설명 Target 이전 단계에서 함수 호출자로 구성한 바인딩된 액터에 대한 레퍼런스입니다. Level Variant Sets 이 LevelVariantSetDirector 블루프린트가 제어하는 레벨 베리언트 세트 에셋에 대한 레퍼런스입니다. 레벨 베리언트 세트를 사용하여 동일한 에셋에 대해 환경설정한 모든 베리언트 및 베리언트 세트에 대한 정보를 얻을 수 있습니다. Variant Set 현재 베리언트를 가지고 있는 베리언트 세트에 대한 레퍼런스입니다. 즉, 방금 활성화된 베리언트입니다. Variant 방금 활성화된 베리언트에 대한 레퍼런스입니다. 즉, 함수 호출자로 구성한 바인딩된 액터를 가지고 있는 베리언트입니다. 액터에 의해 노출된 기존 함수에 퀵 바인딩을 생성하기로 선택한 경우 베리언트 매니저는 해당 함수에 호출을 자동으로 추가하고 LevelVariantSetDirector 블루프린트에서 생성한 새 함수에 이를 연결합니다. 액터에서 호출되는 함수인 경우 아래 이미지의 새 액터 콜리전 활성화(New Actor Enable Collision) 옵션과 같은 다른 입력 값이 필요합니다. 이 그래프에서 다른 입력 값을 구성할 수 있습니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
기본적으로 베리언트 매니저는 베리언트가 런타임에서 활성화된 경우에만 함수를 호출합니다. 에디터에서 베리언트가 켜져 있을 때에도 함수가 실행되게 하려면 LevelVariantSetDirector 블루프린트에서 함수 노드를 선택하고 디테일(Details) 패널에서 에디터에서 호출(Call in Editor) 세팅을 활성화합니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
-
LevelVariantSetDirector 블루프린트에서 새 함수 또는 퀵 바인딩 구성을 완료했다면 블루프린트를 컴파일(Compile) 및 저장(Save) 합니다. 이제 블루프린트 에디터와 베리언트 매니저 창을 닫아도 됩니다.
최종 결과
런타임에서 함수 호출자로 구성한 베리언트를 켤 때마다 베리언트 매니저는 LevelVariantSetDirector 블루프린트에서 정의한 함수를 자동으로 호출합니다.
LevelVariantSetDirector 블루프린트에서 함수에 대해 에디터에서 호출 옵션을 활성화한 경우 베리언트 매니저는 언리얼 에디터에서 베리언트를 켤 때미다 함수를 자동으로 호출합니다.
베리언트가 활성화되어 있을 때 액터에서 여러 개의 함수를 호출해야 하는 경우 바인딩된 하나의 액터에 여러 개의 함수 호출자를 추가할 수 있습니다.