재질 상속

파티클 흐름은 이벤트의 재질 사용에 특정 제한을 적용합니다. 특히 표준 재질 연산자를 통해서나 모양 인스턴스 연산자의 매개변수로 이벤트에 할당된 재질은 한 이벤트에서 다음 이벤트로 파티클과 함께 이동하지 않습니다. 따라서 파티클 흐름 시스템의 전체 유연성이 감소하므로 몇 가지 해결 방법을 사용해야 합니다. 재질 연산자를 전역 이벤트에 할당하거나 재질 연산자를 영향을 받는 모든 이벤트에 할당합니다.

파티클 흐름은 이벤트 기능을 향상시켜 시스템의 전체적인 재질 처리를 개선합니다. 파티클이 이벤트 사이에서 재질을 전달하도록 허용하지는 않지만 재질 할당 및 상속을 단순화하는 일련의 도구를 제공합니다.

파라메트릭 및 합성 재질

파티클 흐름 이벤트에 재질을 할당하는 컨텍스트에서 재질은 파라메트릭 또는 합성으로 분류될 수 있습니다.

표준 재질 연산자를 사용하는 경우 재질은 파라메트릭입니다. 연산자에는 재질 편집기에서 재질을 정의하는 버튼이 있습니다. 이 재질은 이 이벤트에 있는 동안 파티클에서 사용할 재질 연산자를 포함하는 이벤트에 대한 참조로 전달됩니다. 이 경우도 파라메트릭 재질이며 재질 연산자에서 매개변수로 할당됩니다.

예를 들어 표준 모양 인스턴스 연산자를 사용하는 경우의 재질은 합성입니다. 연산자의 재질 획득이 설정되어 있으면 참조 형상에 할당된 재질을 가져와 현재 이벤트에 할당합니다. 또한 연산자가 파티클 형상 오브젝트와 같은 오브젝트 그룹을 참조하는 경우 연산자는 그룹에서 모든 재질을 수집하고 이벤트에 할당할 새 다중/하위 오브젝트 재질을 만듭니다. 이 경우 새 재질은 다른 재질에서 합성됩니다.

전역 이벤트의 제목 영역을 클릭하면 전체 파티클 흐름 파티클 시스템과 관련된 매개변수를 볼 수 있습니다. 또한 로컬 이벤트의 제목 영역을 클릭하여 재질 처리와 관련된 도구 및 이벤트에 할당된 재질을 볼 수도 있습니다.

예제 보기

간단한 예제 파일인 MaterialInheritance01.max(ParticleFlowSamples 폴더의 자습서 파일에 포함)를 열어 재질 도구가 작동하는 방법을 확인합니다. 장면에는 네 개의 이벤트가 있는 간단한 파티클 흐름 시스템이 있습니다. 재질 연산자는 포함되어 있지 않으며, 뷰포트의 파티클 색상이 각 이벤트에서 서로 다른 표시 연산자로 정의되어 애니메이션을 재생할 때 파티클이 이벤트를 전환하면 색상 변경을 통해 파악할 수 있습니다.

이제 정적 재질 연산자를 이벤트 01에 추가하고 선택한 다음 재질 편집기(첫 번째 슬롯)에서 인스턴스(기본 모드)로 다중/하위 오브젝트 재질을 할당하고 정적 재질 매개변수를 조정하여 하위 재질을 순환합니다. 이벤트 맵은 다음과 같습니다.

지금 애니메이션을 재생하면 시작 부분에서는 파티클의 색상이 모두 다르지만 하나의 블록이 다른 색상으로 전환되는 것을 볼 수 있습니다. 이는 다음 세 개의 이벤트에 재질 연산자가 없어 뷰포트에서 표시 색상을 사용하기 때문입니다.

이벤트 01의 제목 막대를 클릭하여 이벤트 01의 매개변수를 표시한 다음 재질 다운스트림 버튼을 클릭합니다. 파티클 흐름에서는 재질이 있는 세 개의 이벤트를 업데이트한 것으로 보고합니다. 애니메이션을 다시 재생합니다. 이제 파티클 색상이 모든 이벤트에서 일관됩니다. 또한 다른 이벤트를 선택하면 현재 재질 버튼이 첫 번째 이벤트와 동일한 재질을 나타내는 것을 관찰할 수 있습니다.

다음으로 더 복잡한 예제인 MaterialInheritance02.max(ParticleFlowSamples 폴더의 자습서 파일에 포함)를 봅니다. 이 예제에는 공통 스트림으로 수렴되는 두 개의 파티클 스트림이 있습니다. 시작 이벤트에는 정적 재질 연산자에 의해 정의된 서로 다른 재질이 있습니다. 파티클이 두 번째 이벤트(이벤트 02)로 이동하면 해당 재질이 손실됩니다. 이런 경우 수행할 수 있는 작업에 대해 살펴보겠습니다.

이벤트 01을 선택하고 재질 다운스트림 버튼을 클릭합니다. 이벤트 02, 이벤트 03 및 이벤트 04에 할당된 재질을 검토할 수 있습니다. 애니메이션을 재생하면 됩니다. 결과적으로 모든 이벤트는 초록색 재질이 상속된 이벤트 01에서 다운스트림됩니다. 이벤트 05의 파티클도 초록색 재질을 갖게 되므로 이 작업은 제대로 작동하지 않습니다. 어떤 방식으로든 이런 상황을 해결해야 합니다. 여기서 목표는 두 개의 생성 이벤트에서 생성되는 파티클이 원래의 해당 재질을 유지하도록 하는 것입니다.

먼저 이벤트 05(파란색 재질이 있는 시작 이벤트)를 선택하고 재질 다운스트림 버튼을 클릭합니다. 이벤트 01에서 버튼을 클릭했을 때 소프트웨어에서 "3개 이벤트의 재질이 업데이트되었습니다."라고 보고했습니다. 이제 이벤트 05에서는 "모든 이벤트에 유효한 재질이 있습니다."라고 다르게 보고합니다. 해당 보고를 통해 다운스트림 이벤트의 재질이 변경되지 않았음을 알 수 있습니다. 애니메이션을 재생하거나 다운스트림 이벤트를 검토하면 이벤트 01의 초록색 재질이 계속 유지되는 것을 확인할 수 있습니다. 그 이유는 무엇일까요?

재질 다운스트림 버튼을 클릭하면 플러그인은 현재 이벤트에서 다운스트림되는 모든 이벤트를 찾고 각 다운스트림 이벤트에 대해 재질 업데이트를 트리거합니다. 이벤트의 재질은 해당 재질 상속 매개변수에 따라 업데이트됩니다. 상속 유형이 없음이거나 이벤트에 재질을 보유하는 고유한 연산자(재질 연산자 또는 재질을 획득한 모양 인스턴스 연산자)가 있는 경우 이벤트의 재질이 이미 정의되어 있기 때문에 이벤트에서 해당 재질을 업데이트하지 않습니다. 상속 유형이 가장 높은 우선 순위로 설정되어 있으면 이벤트는 업스트림 이벤트(이벤트 02의 업스트림 이벤트는 이벤트 01과 이벤트 05임)를 찾은 다음 재질 우선 순위 값을 확인하고 우선 순위가 가장 높은 이벤트의 재질을 상속합니다. 이 경우 이벤트 01과 이벤트 05 모두 재질 우선 순위가 영(0)으로 동일합니다. 따라서 결과가 모호합니다. 이벤트 02는 찾은 첫 번째 업스트림 이벤트를 선택할 수 있습니다. 이벤트 05에서 재질 상속을 적용하려면 이벤트 05의 재질 우선 순위 값을 1로 변경하고 재질 다운스트림 버튼을 다시 클릭합니다. 이제 다운스트림 이벤트에 파란색 재질이 있는 것을 확인할 수 있습니다.

언급한 목표는 여전히 모호합니다. 이벤트 01의 파티클이 이벤트 02로 이동하면 재질이 초록색에서 파란색으로 바뀝니다. 따라서 다른 작업을 수행해야 합니다.

상속 유형의 마지막 옵션은 재질 결합입니다. 이 유형은 재질을 다운스트림으로 제대로 전파하기 위해 사용합니다. 이벤트 02를 선택하고 상속을 재질 결합으로 설정합니다. 이제 현재 이벤트 재질 버튼을 클릭하여 업스트림에서 결합된 재질을 끌어냅니다. 이제 이벤트 02에서 현재 재질을 확인하면 초록색 또는 파란색 재질이 아니라 재질 #10과 같은 레이블이 지정된 새 재질입니다. 재질을 재질 편집기로 드래그하면 "파란색"이라는 단일 하위 재질이 있는 다중/하위 오브젝트 재질임을 확인할 수 있습니다.

그 이유는 무엇일까요? 이벤트 01과 이벤트 05 둘 다 표준 재질을 사용하며 이벤트 설정에 따라 이벤트 05의 우선 순위가 더 높습니다. 이러한 재질은 둘 다 표준 재질(다중/하위 오브젝트 재질과 반대됨)이므로 두 재질 모두 이벤트 02에 대한 합성 다중-하위 오브젝트 재질에서 첫 번째 슬롯을 할당하려고 합니다. 그러나 우선 순위 값이 더 높기 때문에 이벤트 05가 적용됩니다.

재질 충돌을 해결하려면 이벤트 01과 이벤트 05의 재질 중 하나를 조정해야 합니다. 방법은 이벤트 05에서 정적 재질 연산자를 선택하고 하위 재질 ID 오프셋 값을 1(기본값: 0)로 변경하는 것입니다. 재질 ID 할당 옵션이 자동으로 설정(이유는 나중에 설명)되지만 뷰포트에 재질 효과를 표시하려면 뷰포트에 표시도 설정해야 합니다. 또한 연산자의 동적 이름이 정적 재질 02(파란색)에서 정적 재질 02(파란색 >> 1)로 변경된 것으로 확인할 수 있습니다. 이 이름은 ID 오프셋이 적용되었음을 나타냅니다.

이벤트 05를 선택하고 현재 재질 버튼에서 재질 편집기로 드래그하여 재질을 검토합니다. 재질은 두 개의 하위 재질이 있는 실제 다중/하위 오브젝트 재질입니다. 첫 번째 슬롯은 비어 있고 두 번째 슬롯은 파란색 재질로 채워져 있습니다. 이제 이벤트 01과 이벤트 05의 재질을 충돌 없이 결합할 수 있습니다.

이벤트 02를 선택하고 현재 재질 업데이트 버튼을 클릭합니다. 현재 재질 버튼에서 재질을 검토합니다. 결합된 재질에는 초록색과 파란색이라는 두 개의 하위 재질이 있습니다. 재질 다운스트림 버튼을 클릭하여 이 재질을 이벤트 03과 이벤트 04로 전파합니다.

지금 애니메이션을 재생하면 이벤트 01에서 생성된 파티클에서 여전히 불일치를 볼 수 있습니다. 해당 파티클은 이벤트 01에서 나가면 파란색으로 바뀝니다. 이 문제를 해결하려면 정적 재질 01(초록색)에서 재질 ID 할당 및 뷰포트에 표시를 설정해야 합니다. 초록색 재질에는 하위 재질이 없지만 나중에 파티클이 이벤트를 나가면 다중/하위 오브젝트 재질에 의해 관리되므로 하위 재질 인덱스가 필요합니다.

인터페이스

이 섹션에서는 이벤트 제목 막대를 클릭하여 액세스하는 재질 상속 컨트롤과 재질을 사용하는 연산자에 추가된, 새로운 매개변수인 하위 재질 ID 오프셋에 대해 설명합니다.



재질 상속 그룹

상속
재질이 업스트림 이벤트를 기반으로 현재 이벤트에 할당되는 방법과 현재 이벤트가 재질 다운스트림에 영향을 주는 방법을 정의합니다. 드롭다운 리스트에서 다음을 선택합니다.
  • 없음 이벤트가 업스트림 이벤트에서 재질을 상속하지 않습니다.
  • 가장 높은 우선 순위 모든 직계 업스트림 이벤트에서 우선 순위가 가장 높은 이벤트를 선택하고 이 이벤트의 재질을 가져옵니다.
  • 재질 결합 업스트림 이벤트의 재질에서 다중/하위 오브젝트 재질을 합성합니다. 서로 다른 재질과 하위 재질 사이에 충돌이 있을 경우 우선 순위가 가장 높은 엔티티가 적용됩니다.
재질 우선 순위
상속의 가장 높은 우선 순위 및 재질 결합 옵션(이전 참조)에서 사용되는 우선 순위 값을 설정합니다.
주: 이벤트에 재질 유형 연산자가 포함된 경우 이벤트는 업스트림 이벤트에서 재질을 상속하지 않으며, 상속 유형 옵션은 중요하지 않습니다.

재질 업데이트 그룹

이 그룹에는 파티클 흐름 이벤트에서 재질을 설정하는 도구가 포함되어 있습니다.

현재 이벤트 재질
업스트림 이벤트에서 재질을 가져와 현재 이벤트 재질을 업데이트합니다.
재질 다운스트림
모든 다운스트림 이벤트에서 재질을 업데이트합니다.
모든 이벤트의 재질
장면에 있는 모든 PFlow 시스템의 모든 이벤트에서 재질을 업데이트합니다.
현재 재질
이벤트에서 사용된 재질을 표시합니다. 이 특성은 읽기 전용이며 이 버튼에서 재질 편집기로 재질을 드래그하여 검토할 수 있지만 재질 편집기에서 이 버튼으로 재질을 드롭할 수는 없습니다.

추가 매개변수: 재질/Birth 그룹/모양 인스턴스 연산자

하위 재질 ID 오프셋
다중/하위 오브젝트 재질, 재질 연산자, Birth 그룹 연산자 및 모양 인스턴스 연산자에서 재질 상속을 사용하는 경우 이 값을 재질 ID 값에 추가하여 파티클 흐름에서 사용하는 하위 재질 ID를 만듭니다. 파티클 흐름은 재질의 이 하위 재질 ID에 따라 상속할 재질의 하위 재질을 결정하고 해당 이벤트의 파티클에 적용합니다.