피벗 페인터(Pivot Painter) 머티리얼 함수는 메시의 버텍스 안에 회전 정보를 저장하는 피벗 페인터 MAXScript를 활용할 수 있습니다. 이는 스태틱 메시의 다이내믹 모션을 처리하는 좋은 방법 중 하나입니다.
피벗 페인터가 제공하는 데이터는 이러한 함수 없이도 활용할 수 있지만, 함수를 사용하면 프로세스가 훨씬 더 쉬워집니다.
피벗 페인터 함수
다음은 피벗 페인터 카테고리에 속하는 모든 함수의 목록입니다.
이와 같은 함수들은 피벗 페인터 MAXScript가 모델의 UV에 저장한 월드 포지션 및 각도 정보를 처리하고 정리하는 데 사용됩니다.
PivotPainter_HierarchyData
이 함수는 오브젝트 계층구조와 함께 작동하도록 특수하게 설계되었습니다.
| 항목 | 설명 |
|---|---|
| 입력 | |
| 부모 피벗에 대한 최대 거리(스칼라)(Max Dist for Parent Piv (Scalar)) | 이 값은 에셋을 페인팅하는 동안 MAXScript 'Max Dist for Parent Piv' 스피너에서 사용된 값과 일치해야 합니다. |
| 출력 | |
| 부모 피벗 위치(Parent Piv Position) | 월드 스페이스 내 각 부모에 대해 피벗 포인트 정보를 반환합니다. 자손은 어태치된 부모의 피벗 포인트 정보를 반환합니다. |
| 부모 X축 벡터(Parent X Axis Vector) | 부모의 X축을 가리키는 정규화 벡터를 반환합니다. |
| 자손 피벗 위치(Child Piv Position) | 각 자손에 대해 월드 스페이스 내 피벗 위치 정보를 반환합니다. 부모는 (0,0,0) 값을 반환합니다. |
| 자손 X축 벡터(Child X Axis Vector) | 부모의 X축을 가리키는 정규화 벡터를 반환합니다. |
| 오브젝트 피벗 포인트(Object Pivot Point) | 오브젝트의 피벗 포인트 위치입니다. |
| 오브젝트 오리엔테이션(Object Orientation) | 오브젝트의 방향입니다. |
| 오브젝트 스케일(Object Scale) | 오브젝트의 스케일입니다. |
| 오브젝트 블랙 마스크(Object Black Mask) | (현재 작동하지 않음) 피벗 페인터 툴이 검은색으로 페인팅한 표면에 대한 검은색 값을 반환합니다. |
"-----------------" 라벨이 있는 출력은 목록의 구분 기호로, 사용하도록 의도된 것이 아닙니다.
PivotPainter_PerObjectData
이 함수는 오브젝트별로 작동하도록 설계되었습니다.
| 항목 | 설명 |
|---|---|
| 출력 | |
| 피벗 위치(Pivot Position) | 월드 스페이스 내 각 엘리먼트에 대해 피벗 포인트 정보를 반환합니다. |
| 자손 X축(Child X-Axis) | 엘리먼트의 X축을 가리키는 정규화 벡터를 반환합니다. 피벗 포인트에서 메시의 평균적인 중앙 쪽을 향합니다. |
| 엘리먼트당 랜덤 값(Random Value Per Element) | 0~1 사이의 엘리먼트당 랜덤 값을 반환합니다. |
| 커스텀 알파 값(Custom Alpha Values) | 모델의 버텍스 알파 채널에 저장된 커스텀 감쇠 값을 반환합니다. |
| 오브젝트 스케일(Object Scale) | 오브젝트의 균등 스케일과 같은 스칼라 값을 반환합니다. |
PivotPainter_PerObjectFoliageData
이 함수는 개별 폴리지 오브젝트와 함께 작동하도록 특수하게 설계되었습니다.
| 항목 | 설명 |
|---|---|
| 입력 | |
| 바람 벡터(Vector4)(Wind Vector (Vector4)) | 바람의 방향과 세기를 위해 수신되는 벡터를 받습니다. |
| 폴리지 배치에 최적화됨(StaticBool)(Optimized for Foliage Placement (StaticBool)) | 'Optimize for Foliage Placement' 옵션을 체크한 상태로 피벗 페인터를 사용하여 메시를 처리한 경우 true로 설정되어 있습니다. 디폴트는 false입니다. |
| 최적화된 벡터(Vector3)(Optimized Vector (Vector3)) | 엘리먼트의 회전축으로 사용될 로컬 벡터를 입력합니다. Optimized for Foliage Placement 입력이 true로 설정되어 있을 때만 유효합니다. |
| 출력 | |
| 피벗 위치(Piv Position) | 월드 스페이스 내 각 엘리먼트에 대해 피벗 포인트 정보를 반환합니다. |
| 엘리먼트 회전축(Element Rot Axis) | 'RotateAboutAxis' 노드에 사용할 가지의 회전축을 반환합니다. 잎도 같은 정보를 반환합니다. 참고: 각도는 가지의 X축의 벡터를 로컬에서 월드 스페이스로 변환하여 알아냅니다. 그런 다음 바람 방향과 변환한 벡터의 외적을 알아냅니다. |
| 엘리먼트 X축(Element X-Axis) | 엘리먼트의 X축을 가리키는 정규화 벡터를 반환합니다. 피벗 포인트에서 메시의 평균적인 중앙 쪽을 향합니다. |
| 엘리먼트당 랜덤 값(Random Value Per Element) | 0~1 사이의 엘리먼트당 랜덤 값을 반환합니다. |
| 커스텀 알파 값(Custom Alpha Values) | 모델의 버텍스 알파 채널에 저장된 커스텀 감쇠 값을 반환합니다. |
| 정규화된 바람 벡터(Normalized Wind Vector) | 바람의 방향과 세기가 0~1 범위로 정규화된 벡터입니다. |
| 바람 속도(Wind Speed) | 바람 속력 x 시간 x -1을 출력합니다. |
| 바람 세기(Wind Strength) | 바람의 세기를 반환합니다. 바람 벡터의 세기는 바람 벡터에서 0까지의 거리를 계산하여 알아냅니다. |
| 오브젝트 스케일 XYZ(Object Scale XYZ) | 오브젝트의 균등 스케일과 같은 스칼라 값을 반환합니다. |
| 균등 오브젝트 스케일(Uniform Object Scale) | 오브젝트의 균등 스케일과 같은 스칼라 값을 반환합니다. |
PivotPainter_TreeData
tree로 시작하는 출력은 Pivot Painter MAXScript가 저장하는 것이기에 모델의 UV 정보를 처리합니다. Leaf로 시작하는 출력은 스크립트의 오브젝트별 피벗 페인팅 섹션이 저장하는 것이기에 UV 정보를 처리합니다.
| 항목 | 설명 |
|---|---|
| 입력 | |
| 바람 벡터(Vector3)(WindVector (Vector3)) | 바람이 부는 방향입니다. |
| 부모 피벗에 대한 최대 거리(스칼라)(Max Dist for Parent Piv (Scalar)) | 이 값은 에셋을 페인팅하는 동안 MAX 스크립트 'Max Dist for Parent Piv' 스피너에서 사용된 값과 일치해야 합니다. |
| 출력 | |
| 가지 피벗 위치(Branch Piv Position) | 월드 스페이스 내 각 가지에 대해 피벗 포인트 정보를 반환합니다. 잎은 어태치된 가지의 피벗 포인트 정보를 반환합니다. |
| 가지 바람 회전축(Branch Wind Rot Axis) | 'RotateAboutAxis' 노드에 사용할 가지의 회전축을 반환합니다. 잎도 같은 정보를 반환합니다. 참고: 각도는 가지의 X축의 벡터를 로컬에서 월드 스페이스로 변환하여 알아냅니다. 그런 다음 바람 방향과 변환한 벡터의 외적을 알아냅니다. |
| 가지 X축 벡터(Branch X-Axis Vector) | 가지의 X축을 가리키는 정규화 벡터를 반환합니다. 커스텀 벡터 계산이 필요한 경우가 아니면 일반적으로 폴리지 애니메이션에는 필요하지 않습니다. |
| 가지 흐름 그레이디언트(Branch Flow Grad) | 바람이 부는 방향의 그레이디언트 값을 반환합니다. |
| 가지 흐름 그레이디언트 90도(Branch Flow Grad 90 Deg) | 바람에 90도로 교차되는 월드 스페이스의 그레이디언트 값을 반환합니다. |
| 잎 피벗 위치(Leaf Piv Position) | 각 잎에 대해 월드 스페이스 내 피벗 위치 정보를 반환합니다. 가지는 (0,0,0) 값을 반환합니다. |
| 잎 회전축(Leaf Rot Axis) | 'RotateAboutAxis' 노드에 사용할 잎의 회전축을 반환합니다. 가지는 (0,0,0)을 반환합니다. 참고: 각도는 잎의 X축의 벡터를 로컬에서 월드 스페이스로 변환하여 알아냅니다. 그런 다음 바람 방향과 변환한 벡터의 외적을 알아냅니다. |
| 잎 X축 벡터(Leaf X-Axis Vector) | 가지의 X축을 가리키는 정규화 벡터를 반환합니다. 커스텀 벡터 계산이 필요한 경우가 아니면 일반적으로 폴리지 애니메이션에는 필요하지 않습니다. |
| 잎 마스크(Leaf Mask) | 잎의 흰색 마스크를 반환합니다. 모든 가지는 검은색입니다. |
| 잎 흐름 그레이디언트(Leaf Flow Grad) | 바람이 부는 방향의 그레이디언트 값을 반환합니다. |
| 잎 흐름 그레이디언트 90도(Leaf Flow Grad 90 deg) | 바람에 90도로 교차되는 월드 스페이스의 그레이디언트 값을 반환합니다. |
| 오브젝트 피벗 포인트(Object Pivot Point) | 오브젝트의 피벗 포인트 위치를 반환합니다. |
| 오브젝트 오리엔테이션(Object Orientation) | 오브젝트의 방향을 반환합니다. |
| 오브젝트 회전축(Object Rotation Axis) | 오브젝트의 회전축을 반환합니다. |
| 오브젝트 스케일(Object Scale) | 오브젝트의 스케일을 반환합니다. |
| 오브젝트 흐름 그레이디언트(Object Flow Grad) | 월드 스페이스의 오브젝트 수준에서 바람 벡터에 정렬된 그레이디언트입니다. |
| 오브젝트 흐름 그레이디언트 90도(Object Flow Grad 90 deg) | 월드 스페이스의 오브젝트 수준에서 바람 벡터에 90도 틀어 정렬된 그레이디언트입니다. |
| 바람 세기(WindStrength) | 바람의 세기를 반환합니다. 바람 벡터의 세기는 바람 벡터에서 0까지의 거리를 계산하여 알아냅니다. |
| 정규화된 바람 벡터(Normalized Wind Vector) | 0~1 범위로 정규화된 바람 벡터를 반환합니다. |
| 바람 속도(WindSpeed) | 바람 속도 x 시간입니다. |
| 블랙 마스크(Black Mask) | 피벗 페인터 툴이 검은색으로 페인팅한 표면에 대한 검은색 값을 반환합니다. 이 마스크는 버텍스 셰이더에서만 작동합니다. |
"-----------------" 라벨이 있는 출력은 목록의 구분 기호로, 사용하도록 의도된 것이 아닙니다.