메테리얼 하나로 다양한 Variation 만드는 법

KJW·2022년 9월 16일
0

하나의 오브젝트에 다양한 베리에이션이 필요할 때 인스턴스를 생성하지 않고 드로우콜을 절약하는 방법에 대해 소개하겠습니다.
블루프린트를 사용하면 하나의 메테리얼로도 다양한 베리에이션을 만들 수 있습니다. 또한 아티스트 작업자가 레벨디자인할 때 디테일패널에서 직관적으로 수정할 수 있는 기능도 같이 추가할 수 있습니다.

  1. 블루프린트 클래스 엑터를 생성하고 베리에이션을 적용하고 싶은 오브젝트를 불러옵니다.

  2. Construction script에서 로직을 구성합니다.

  • Construction script는 런타임 실행 전에 '편집단계에서 어떤 작업을 처리할 것인가?' 대한 그래프창입니다.

Switch on int/ String의 문제점

  • Switch to int를 사용한다면 힌트를 포함할 수 없이 정수로만 기록되서 협업간에 무슨 용도인지 알 수 있는 직관성이 떨어지는한계를 가지고 있다.

  • Switch to string을 사용한다면 가령 자료형 변수가 오타가 나도 컴파일오류가 나지 않고, Defalut로 처리돼서 디버깅만으로 버그를 인식할 수 없어 문제를 찾고 고치는데 상당한 시간이 걸릴 수 있는 단점이 있습니다.

이 둘을 보완할 수 있는 좋은 방법은 Enum(열거형)으로 만드는 것 입니다.

열거형으로 문제해결

열거형은 자료형 데이터를 담아둔 컨테이너박스입니다

만들어둔 열거형을 그래프에서 변수로 불러옵니다

열거형은 특히 분기점에서 이점이 부각됩니다.

Topdown방식으로 정보가 포함된 분기점을 선택하면 되니 직관적이고, 오타같은 실수를 범할 걱정도 없어집니다.

Select방식

예제와 같이 하나의 함수를 가지고 데이터테이블을 만들고 싶다면 분기점보단 데이터 Select 방식을 사용하길 권장합니다.
즉 하나의 함수Set Vector parameter value ... 를 가지고 분기점을 나누는게 비효율적인 이유는 분기점이 많이 사용될수록 로직이 복잡해보일 수 있어 혼란을 야기합니다.
그래서 열거형 변수를 Select index입력핀에 연결하면 보다 깔끔한 로직을 만들 수 있습니다

profile
빈공간을 채워가는 개발자

0개의 댓글