속성
속성은 시스템의 요소에 연결된 데이터 조각입니다. 예를 들어 파티클의 컬러, 파티클의 포지션, 또는 생성 시스템이 생성하는 파티클의 개수는 모두 속성입니다.
시스템은 커스텀 동작을 수행하고 요소를 구별하기 위해 속성에서 읽거나 쓸 수 있습니다.
시스템은 필요한 경우에만 속성을 저장합니다. 즉 시스템이 불필요한 데이터를 저장하지 않으므로 메모리가 절약됩니다.
속성 사용
속성 쓰기
속성에 쓰려면 블록을 사용하십시오. 블록은 시스템에 속성을 쓸 수 있는 유일한 그래프 요소입니다.
나중에 컨텍스트가 속성을 읽는 경우 비주얼 이펙트 그래프는 시뮬레이션 데이터에 쓰는 속성만 저장합니다. 이는 다음을 의미합니다.
- Initialize 또는 Update 컨텍스트에서 속성에 쓸 때 비주얼 이펙트 그래프는 나중에 Update 또는 Output 컨텍스트가 속성에서 읽는 경우 시뮬레이션 데이터에 속성만 저장합니다.
- Output 컨텍스트에서 속성에 쓸 때 비주얼 이펙트 그래프는 시뮬레이션 데이터에 속성을 저장하지 않고 렌더링을 위해서만 속성을 사용합니다.
속성 읽기
속성에서 읽으려면 연산자 또는 블록을 사용하십시오.
- Get Attribute 연산자를 사용합니다.
- 속성의 이전 값에 의존하는 Set Attribute 블록에서 다른 합성 모드를 사용합니다.
참고:
- 비주얼 이펙트 그래프가 시뮬레이션 데이터에 저장하지 않은 속성을 읽는 경우 속성은 기본 상수 값을 전달합니다.
- 현재는 파티클 및 ParticleStrip 시스템의 속성에서만 읽을 수 있습니다. 생성 시스템의 속성에서 읽으려면 생성자 콜백을 사용하십시오.
속성 위치
모든 시스템은 고유한 특정 데이터 컨테이너에 속성을 저장합니다. 하지만 현재 시뮬레이션 데이터 풀, 또는 시스템이 의존하는 다른 데이터 풀에서 속성을 읽을 수 있습니다.
현재
현재 속성 위치는 값을 읽는 현재 시스템 데이터 컨테이너를 참조합니다. 예를 들면 다음과 같습니다.
- 파티클 시스템의 파티클 데이터
- ParticleStrip 시스템의 ParticleStrip 데이터
- Spawn 컨텍스트에서 또는 SendEvent EventAttribute 페이로드를 통해 전송된 SpawnEvent 데이터
소스
소스 속성 위치는 값을 읽은 이전 시스템 데이터 컨테이너를 참조합니다. 시스템 데이터가 변경된 후 시스템의 첫 번째 컨텍스트에 있는 소스 속성에서만 읽을 수 있습니다. 예를 들어 Particle 및 ParticleStrip System Initialize 컨텍스트에서 EventAttribute 및 GPU EventAttribute에만 액세스할 수 있습니다.
- Initialize Particle 및 Initialize Particle Strips 컨텍스트에서
- 들어오는 Spawn 컨텍스트에서
- GPUEvent 생성을 통해 다른 파티클 시스템에서
가변 속성
일부 속성에는 가변 속성이 있습니다. 이러한 속성은 시뮬레이션 및/또는 렌더링에 필요한 컴포넌트에 따라 다른 차원의 벡터 또는 스칼라일 수 있습니다.
가변 속성에서 읽는 경우 기본값을 사용하여 다른 모든 암시적 컴포넌트에서 읽습니다.
예를 들어 사각형 파티클의 스케일을 Vector2로(사각형의 너비와 길이로) 표현할 수 있는 반면, 상자 파티클의 스케일을 표현하려면 Vector3을 (큐브의 너비, 길이 및 뎁스로) 사용할 수 있습니다. 가변 속성을 설정하면 모든 채널 조합의 드롭다운을 통해 필요한 채널에만 쓸 수 있습니다.
또 다른 예는 노멀을 중심으로 하는 스프라이트의 회전입니다. 각도 속성(angleZ)의 Z 컴포넌트만 필요하므로, angleX 및 angleY를 저장할 필요가 없습니다.