버전 10의 새로운 기능
이 페이지에서는 비주얼 이펙트 그래프 버전 10의 새로운 기능, 개선 사항, 해결된 문제에 대해 간략히 설명합니다.
기능
다음은 비주얼 이펙트 그래프 버전 10에 Unity가 추가한 기능 리스트입니다. 각 엔트리에는 기능 요약과 관련 문서에 대한 링크가 포함되어 있습니다.
CPU 출력 이벤트
출력 이벤트는 트리거 시 그래프에서 C#으로 이벤트를 전송합니다. 이를 통해 광원, 소리, 물리적 반응 또는 게임플레이를 시각 효과에 동기화할 수 있습니다.
이 기능에 대한 자세한 내용은 이벤트 출력을 참조하십시오.
이 기능을 사용하는 방법에 대한 예제는 출력 이벤트 핸들러를 참조하십시오.
파티클별 메시 LOD(실험 단계)
화면 크기에 따라 LOD를 사용하여 메시 파티클을 최적화합니다.
이 기능에 대한 자세한 내용은 파티클 메시 출력을 참조하십시오.
다중 메시(실험 단계)
동일한 파티클 메시 출력에서 최대 4개의 메시를 사용하여 효과에 파티클별 다양성을 더합니다. 이렇게 하면 여러 출력을 사용하지 않고도 개별 메시 파티클에 시각적 다양성을 더할 수 있습니다.
이 기능에 대한 자세한 내용은 파티클 메시 출력을 참조하십시오(특히 Mesh Count 프로퍼티).
정적 메시 샘플링(실험 단계)
메시에서 직접 파티클을 생성합니다. 이렇게 하면 먼저 포지션을 포인트 캐시에 베이크할 필요 없이 메시에서 직접 더욱 복잡한 모양의 파티클을 빠르게 생성할 수 있습니다.
Position (Mesh) 블록과 Sample Mesh 연산자를 사용하여 메시의 버텍스를 샘플링할 수 있습니다.
이 기능에 대한 자세한 내용은 메시 샘플링을 참조하십시오.
연산자 및 블록
이 버전의 비주얼 이펙트 그래프에는 다음과 같은 새로운 연산자와 블록이 도입되었습니다.
- Exp
- 로그
- LoadTexture
- GetTextureDimensions
- WorldToViewportPoint
- ViewportToWorldPoint
- 구성 매트릭스
- TransformVector4
개선 사항
다음은 Unity 버전 10의 비주얼 이펙트 그래프에 대한 개선 사항 리스트입니다. 각 엔트리에는 개선 사항에 대한 요약과 관련 문서에 대한 링크가 포함되어 있습니다.
문서
이제 문서에는 비주얼 이펙트 그래프의 모든 노드에 대한 레퍼런스 정보가 포함됩니다. 또한 속성, 블록, 컨텍스트, 연산자, 다양한 메뉴 및 옵션에 툴팁이 포함됩니다.
UX 및 워크플로
이 버전의 비주얼 이펙트 그래프에는 많은 워크플로 개선 사항이 도입되었습니다. 다음은 개선 사항 리스트입니다.
- 현재 열려 있는 비주얼 이펙트 그래프를 저장하는 Save 버튼이 그래프 뷰에서 제공됩니다.
- 이제 Unity는 에셋을 임포트할 때 VFX 에셋을 컴파일합니다. 이전 버전에서는 Unity가 에셋을 저장할 때마다 컴파일을 수행했습니다. 이 개선 사항은 버전 간 셰이더 비호환성 문제를 해결하고, 소스 컨트롤로 불필요한 변경을 생성하는 것을 방지합니다.
- 가장자리에 대한 여러 가지 사항이 개선되었습니다.
- 이제 가장자리를 마우스 오른쪽 버튼으로 클릭하면 중간 노드를 생성하는 옵션이 표시됩니다.
- 노드의 입력에서 연결을 설정하는 경우 클릭을 해제할 때 Alt 키를 누르고 있으면 빈 공간에 새로운 노출 프로퍼티를 생성할 수 있습니다. 노출 프로퍼티는 생성한 입력과 동일한 타입입니다.
- 이제 연결된 노드를 복제할 경우 복제된 노드는 동일한 가장자리 연결을 갖습니다.
- 블랙보드에 대한 여러 가지 사항이 개선되었습니다.
- 블록 및 노드
이제 Position(모양, 순차, 뎁스) 및 Velocity from Direction & Speed 블록에 두 포지션과 방향 모두에 대한 합성이 포함됩니다. 원래는 해당 포지션에 대한 합성만 포함되었습니다.
이제 빌트인 연산자가 새로운 시간 액세스를 제공합니다.
이제 Update 컨텍스트에 대한 커스텀 인스펙터가 제공됩니다. Euler Integration 대신 Update Position 및 UpdateRotation이 표시됩니다.
이제 루프 및 지연 설정을 포함하는 Spawn 컨텍스트용 커스텀 인스펙터를 사용할 수 있습니다. 커스텀 인스펙터는 커스터마이즈가 가능한 생성 동작을 생성할 때 뎁스의 또 다른 레이어를 추가합니다.
성능 최적화
이 버전의 비주얼 이펙트 그래프에는 다음과 같은 여러 성능 최적화가 도입되었습니다.
- 이제 Unity는 컴퓨트 셰이더를 사용하여 파티클을 컬링함으로써 비활성이거나, 화면 밖에 있거나, 살아 있지 않은 파티클의 렌더링을 매우 효율적으로 폐기합니다. 이 기능에 대한 자세한 내용은 공통 출력 설정 및 프로퍼티의 Compute Culling 프로퍼티를 참조하십시오.
- 이제 Unity는 가능한 경우 CPU에서 노이즈 평가를 처리합니다. 원래 Unity는 파티클별로 이 작업을 수행했지만, 일부 사용 사례에서는 모든 파티클에 대해 한 번만 수행해야 했습니다.
서명된 거리 필드
이 버전의 비주얼 이펙트 그래프에서는 서명된 거리 필드(SDF) 작업이 개선되었습니다. SDF를 샘플링하는 새로운 연산자와 SDF를 기반으로 파티클 포지션을 설정하는 새로운 블록이 추가되었습니다.
이를 통해 파티클이 SDF와 충돌했는지 감지하는 것과 같은 커스텀 동작을 생성할 수 있습니다.
SDF 연산자 샘플링에 대한 자세한 내용은 서명된 거리 필드 샘플링을 참조하십시오.
새로운 포지션 블록에 대한 자세한 내용은 포지션(서명된 거리 필드)를 참조하십시오.
왜곡 출력
이 버전의 비주얼 이펙트 그래프는 왜곡 출력에 대한 팔각형 및 삼각형 지원을 제공합니다. 또한 파티클 스트립에 대한 새로운 Output Distortion Quad 컨텍스트가 추가됩니다.
왜곡 출력에 대한 자세한 내용은 왜곡 출력을 참조하십시오.
파티클 스트립
이 버전의 비주얼 이펙트 그래프에는 파티클 스트립에 대한 여러 개선 사항이 도입되었습니다.
- 이제 사각형 스트립 텍스처 매핑 옵션이 제공됩니다. UV 또는 커스텀 매핑을 사용할 수 있습니다.
- 스트립 출력을 위한 커스텀의 z축 옵션이 제공됩니다. 이를 통해 스트립에 대한 커스텀 정방향을 설정하고, 스트립이 특정 방향을 향하도록 지정할 수 있습니다. 이는 벽에서 반대쪽을 향하는 벽에 배너를 만들려는 경우에 유용합니다.
- 파티클 스트립의 새로운 속성인 particleCountInStrip은 스트립의 파티클 수를 저장합니다.
- Initialize 컨텍스트에서 파티클 스트립의 새로운 속성인 spawnIndexInStrip은 spawnIndex에 대한 파티클 스트립으로 작동합니다.
연산자 및 블록
이 버전의 비주얼 이펙트 그래프에는 연산자 및 블록에 대한 여러 개선 사항이 도입되었습니다.
- 이제 Compare 연산자는 int 및 uint를 입력으로 허용합니다.
- 이제 Spawn 컨텍스트의 속성을 읽을 수 있습니다.
샘플
다음은 Unity 버전 10에서 생성했거나 개선한 비주얼 이펙트 그래프 패키지 샘플의 리스트입니다. 각 엔트리에는 변경 사항에 대한 요약과 관련 문서에 대한 링크가 포함되어 있습니다.
비주얼 이펙트 그래프의 추가 요소
이 버전의 비주얼 이펙트 그래프는 Visual Effect Graph Additions 샘플에 새로운 유틸리티 연산자를 도입합니다.
- Get Strip Progress: 스트립의 파티클 진행도를 0-1 범위로 계산하는 하위 그래프입니다. 이는 진행도에 따라 스트립을 수정하기 위해 커브 및 그레디언트를 샘플링하는 경우에 유용합니다.
- Encompass (Point): AABox의 경계를 확장하여 점을 포함하는 하위 그래프입니다.
- Degrees to Radians 및 Radians to Degrees: 그래프 내에서 라디안과 도 사이를 전환하도록 도와주는 하위 그래프입니다.
OutputEvent 도우미
이 버전의 비주얼 이펙트 그래프는 OutputEvent Helpers 샘플에 새로운 도우미 스크립트를 도입하여 OutputEvent의 다양한 사용 사례를 설정하도록 돕습니다.
Cinemachine Camera Shake: 특정 출력 이벤트가 발생할 때 시네머신 임펄스 소스를 통해 카메라 흔들림을 트리거하는 출력 이벤트 핸들러 스크립트입니다.
Play audio: 특정 출력 이벤트가 발생할 때 단일 AudioSource를 재생하는 출력 이벤트 핸들러 스크립트입니다.
Spawn a Prefab: 특정 출력 이벤트에 대해 프리팹(풀에서 관리됨)을 생성하는 출력 이벤트 핸들러 스크립트입니다. 포지션, 각도, 스케일, 수명을 사용하여 프리팹을 배치하고 지연 후 비활성화합니다. 다른 값을 동기화하기 위해 프리팹 내에서 다른 스크립트를 사용할 수 있습니다.
- Change Prefab Light: 광원을 효과와 동기화하는 방법을 보여주는 예제입니다.
- Change Prefab RigidBody Velocity: 리지드바디의 속도 변경을 효과와 동기화하는 방법을 보여주는 예제입니다.
RigidBody: 특정 출력 이벤트가 발생할 때 리지드바디에 힘 또는 속도 변경을 적용하는 출력 이벤트 핸들러 스크립트입니다.
Unity Event: 특정 출력 이벤트가 발생할 때 UnityEvent를 발생시키는 출력 이벤트 핸들러입니다.
해결된 문제
비주얼 이펙트 그래프 버전 10에서 해결된 문제에 대한 정보는 변경 로그를 참조하십시오.