Unity 검색

2020 LTS 및 차기 버전에서 VFX 그래프가 선사하는 새로운 가능성

Scary metal character with red eyes
Scary metal character with red eyes

2020 LTS와 2021.1에서 이루어진 VFX 그래프의 업데이트는 안정화와 성능 최적화, 새로운 CPU 이벤트 출력을 통한 게임플레이와의 통합 개선, 메시에서 파티클을 생성하는 새로운 방법에 초점을 맞췄습니다.

2021.2와 차기 버전에서 유니티의 주요 목표는 더욱 다양한 플랫폼과 콘텐츠를 아우를 수 있도록 지원하고, URP(유니버설 렌더 파이프라인)에 대한 지원을 개선할 뿐 아니라 2D와의 호환성을 향상하고, 더 많은 플랫폼(컴퓨팅 가능한 모바일 기기, Oculus Quest, 스위치 등)을 지원하도록 확장하는 것입니다. 특히 VFX 그래프에서 셰이더 그래프의 고급 통합 기능을 사용하는 등 VFX를 구축하고 커스터마이즈하는 툴을 더 포함하고자 합니다. 이러한 목표를 달성하면 헤어나 패브릭과 같은 모든 URP(유니버설 렌더 파이프라인) 및 HDRP(고화질 렌더 파이프라인) 마스터 노드는 물론 에디터 내 Signed Distance Field 베이커 툴에도 직접 액세스할 수 있으며, 타사 툴로 전환하고 복귀하는 데 드는 시간을 절약할 수 있습니다. 유니티는 GPU 내에서 다이내믹 헤어와 같은 고급 시뮬레이션을 개발할 수 있도록 그래픽스 버퍼에 대한 지원도 추가하고 있습니다.

프로젝트 개발 속도를 지원하기 위해 샘플 라이브러리에 새로운 샘플을 추가하고 2020 LTS에 라이브러리를 업데이트했습니다. 또한 Spaceship 데모에도 2주년 기념 업그레이드가 이루어졌습니다. 비주얼 개선 및 2020 LTS와의 프로젝트 호환성 향상, Mac과 Linux 지원까지 이제 다양한 데스크톱에서 다양한 품질 설정으로 데모를 실행할 수 있습니다.

시작하기

VFX 그래프를 사용하기 전에 해당 툴에 대해 간단히 설명하는 짧은 동영상을 시청하세요.

Unity에서 VFX 그래프로 화염, 연기 및 안개 효과 만들기

Unity에서 비주얼 이펙트 그래프로 파티클 렌더링

Unity에서 비주얼 이펙트 그래프로 만드는 멀티레이어 효과

기본적인 내용을 숙지했다면, 다음 프로젝트를 본격적으로 시작하기 전에 Unity Hub에 있는 HDRP 씬 템플릿으로 여러 기능을 실험해 보세요. 이 템플릿에는 먼지, 나비, 유리 상자 안에서 떨어지는 나뭇잎 등의 파티클 시스템이 이미 통합되어 있을 뿐 아니라, 나만의 파티클 시스템을 테스트할 수 있는 다양한 조명 조건이 포함되어 있습니다.

완전히 새로운 효과를 원하더라도 처음부터 새로 만들 필요가 없습니다. 시스템 카테고리에 있는 노드를 사용하여 주요 사용 사례를 위해 사전 구성된 설정을 활용하세요.

Showcasing different effects in-editor

전체 시스템을 사용하려면 VFX 그래프 샘플을 다운로드하세요. 모닥불, 나비, 마법책과 같은 효과뿐만 아니라 이번 포스팅 끝에서 공개할 새로운 효과도 포함되어 있습니다.

노드를 사용하게 되면 2020 LTS에서 최신 툴 팁과 오류 메시지가 포함된 컨텍스트 도움말을 참고하거나, 업데이트된 기술 자료에서 추가적인 지침을 얻을 수 있습니다.

Showcasing aspects of VFX in-editor
Showcasing aspects of VFX in-editor

더 구체적인 내용은 다양한 프로젝트에 참여 중인 전문 유니티 아티스트 팀이 제작한 튜토리얼과 VFX 요약 설명을 참조하세요.

이밖에 시간을 절약해주는 다음 툴을 살펴보고 프로젝트의 수준을 높여 보세요.

새로운 Meteorite 샘플

Short animation of a cartoon meteorite hitting a small forest scene

새로 추가된 Meteorite 샘플은 운석의 충격으로 인해 다양한 요소가 서로 상호 작용하는 모습을 하나의 씬으로 보여 줍니다. 이 샘플은 VFX Output Event Handler라는 2020 LTS의 새로운 기능을 사용하여 제작되었으며, 해당 기능을 통해 이벤트와 추가 효과를 타임라인에 연결합니다.

Still image of meteorite in the middle of hitting a small forest scene
Visual showing the many branching components of the meteorite's impact from the backend

Output Event Handler의 장점

VFX Output Event Handler를 사용하여 카메라의 흔들림과 나무 판자가 받는 충격, 조명 애니메이션 등을 만들 수 있습니다.

이 예제에서는 Output Event를 사용하여 VFX용 인스펙터의 스크립트 컴포넌트로 카메라 흔들림을 트리거합니다. 카메라의 흔들림은 Spawn Event Velocity 노드에서 속도 정보를 가져오며, 메인 FX가 촉발되고 1.15초 후에 Single Burst로 생성됩니다.

Visual of the Output Event to trigger a camera shake with a script component in the Inspector for the VFX.
Image of the in-editor VFX Output Event

충격에 반응하는 렌더링 잔디

VFX 파티클 스트립으로 구성되는 이 잔디는 렌더 텍스처로 렌더링되는 다른 효과와 상호 작용하여 폭발과 화염을 트리거합니다. 이 버퍼 VFX는 메인 운석의 VFX 출력 핸들러에 의해 반응합니다.

카메라 한 대가 버퍼 VFX(메인 카메라로 렌더링되지 않음)를 기록하도록 설정되며, 이를 잔디에 사용된 렌더 텍스처에 저장하여, 돌풍과 같은 효과를 구현하고 셰이더와 불길 효과가 사라지게 합니다. 이 방식으로 하나의 효과에서 다른 효과로 정보가 이동하며, 모든 요소는 제자리에 유지됩니다.

Image depicting how the camera is set up to record the buffer VFX

타임라인으로 동기화 개선

VFX 아티스트가 사용하기에 좋은 또 다른 훌륭한 툴은 타임라인입니다. 타임라인은 다양한 효과를 트리거하는 데 사용하며, 필요에 따라 타이밍을 조정할 수 있습니다.

Image showing the timeline in-editor

섬광, 날고 있는 새, 떨어지는 나뭇잎 등의 추가 효과는 초기에 주요 VFX와 함께 버튼 캔버스에 연결되어 있었으나, 이후 Demo Scene과 함께 타임라인에서 사용되도록 변경되었습니다.

나무도 VFX 그래프 메시 출력과 하위 그래프, 셰이더 그래프로 제작되었으므로, 파라미터의 상당수를 무작위화할 수 있습니다.

Spaceship 데모

첫 번째 Spaceship 데모를 공개한 이후 많은 시간이 지났습니다. 공개 이후 데모는 지속적으로 개선 및 최적화가 이루어졌고 Unity 주요 버전마다 업그레이드되었으며, 이제 업그레이드 주기의 거의 막바지에 이르렀습니다.

여기에서 데모를 다운로드하고, 프로젝트에 대해 간단히 소개하는 동영상을 시청하세요. 이 예제를 통해 실제 제작에서 서로 다른 기능을 통합하고 최적화하는 것이 얼마나 중요한지 알 수 있습니다.

VFX 그래프와 HDRP의 최신 기능을 다수 반영하기 위해 2020.3의 데모 내용을 일부 수정하고 개선했습니다.

우주 탐사

생각을 거듭할수록 우주를 탐험하면서 은하계의 풍경을 실제로 보는 것이 중요하다는 점을 더 잘 알게 되었습니다. 그렇지 않다면 우주선에 탑승할 이유가 없겠지요. 그래서 행성을 비롯한 우주의 풍경을 우주선에서 살짝 볼 수 있도록 데모에 새로운 디테일을 구현했습니다.

 

Animation of a spaceship looking out into space at a large planet

우주선이 요동치며 비행하는 상황을 표현하기 위해, 카메라 흔들림 외에도 다른 노이즈가 적용되는 2차 흔들림을 환경 큐브맵에 추가했습니다.

스파크, 사운드, 조명 동기화

이전에는 스파크를 처리하는 방식을 수정하기 위해 스크립트를 사용하여 사운드 효과와 조명 애니메이션을 동기화했지만, VFX 아티스트를 위해 작업의 접근성을 높이기로 했습니다.

Animation of sparks flying from the ceiling in a spaceship

이후 2020.3 버전에서 선보인 추가 VFX 그래프 샘플에서 Output Event Handler를 사용하도록 시스템을 업데이트했습니다. VFX의 동작을 변경하여 VFX 그래프에서 직접 이펙트가 무작위로 생성되고 그때 섬광의 지속 시간을 설정하도록 했습니다.

Image describing the orchestration branch

그런 다음, 프리팹 생성 및 Play Audio Helper의 지원을 통해 VFX 그래프에서 무작위로 이펙트를 생성하고, Spawn 컨텍스트로 조명과 사운드 효과를 동기화할 수 있게 되었습니다. 또한 Flash Lifetime 속성을 지연으로 사용하여 VFX Output Event Prefab Spawn에서 해당 시간 범위 이후 프리팹을 비활성화할 수 있었습니다.

Image depicting the VFX Output event prefab spawn

품질 설정 및 특정 콘텐츠

다양한 하드웨어에서 Spaceship 데모를 실행할 수 있도록 Quality Settings 옵션을 구현했습니다. Ultra Quality 모드에서 실행하면 기기에 상관없이 디테일한 포스트 프로세싱과 볼류메트릭 효과, 그리고 향상된 광원을 사용할 수 있습니다.

고사양 옵션이 비활성화되는 GTX 760 등 저사양의 게이밍 하드웨어에 적합한 로우엔드 옵션도 추가했습니다.

유니티는 올해 말에 Spaceship 데모의 최종 버전을 릴리스할 예정입니다. 또한 NVIDIA의 DLSS와 AMD FSR를 지원하고, 향상된 성능을 자랑하는 2021.2 버전에는 아직 공개하지 않은 흥미로운 기능이 포함될 계획입니다.

2020 LTS 및 2021.1에서 주목할 만한 최신 업데이트

2020 LTS 버전에 많은 최신 기능을 추가했으며, 2021.1 개발 주기에서는 두 버전 모두에 적용되는 버그 수정에 주력했습니다. 몇 가지 주요 내용을 살펴보면 아래와 같습니다.

플립북에서 빠른 임포트 및 반복 작업

Texture Import 옵션에 추가된 항목에 맞춰 Image Sequencer가 개선되었으며 2021.1 버전에서는 VFX 그래프로 처리됩니다. 이제 VFX 그래프에서 플립북 텍스처를 변경할 때 열과 행을 수동으로 설정하지 않아도 됩니다. 플립북을 Texture 배열로 임포트하는 새로운 옵션이 추가되어, 열과 행의 값이 Importer에 직접 저장되고 Image Sequencer에서 자동 처리되기 때문입니다.

Showcasing the improvements made to our Image Sequencer

메시에서 파티클 생성

Animated woman running while on fire

2021.1의 최신 Skinned Mesh Sampling 기능을 사용하면 타오르는 화염을 연출할 수 있으며, 캐릭터와 오브젝트를 대상으로 디졸브와 모핑을 비롯한 다양한 효과를 구현할 수 있습니다.

이 기능을 살펴보려면 구현하려는 효과에 따라 Initialize 혹은 Update, Output 컨텍스트에서 Position(Skinned Mesh) 연산자를 사용하세요.

그런 다음, 블랙보드에서 노출된 Skinned Mesh Renderer 프로퍼티와 트랜스폼을 설정합니다.

Image showcasing getting the transform information of your Skinned Mesh in the Scene in order to position the effect in the right place

원하는 모드에서 Skinned Mesh를 포지션 블록에 연결한 후, 해당 효과를 적절한 위치에 배치하기 위해 씬에서 Skinned Mesh의 트랜스폼 정보를 가져옵니다. VFX 게임 오브젝트 인스펙터를 활용하여 이 작업을 수행합니다. Property Binder를 사용하면, 골격의 계층을 바인딩하는 데 필요한 컴포넌트를 찾을 수 있습니다.

Image going through the user interface indicating what each portion does

다음은 Update 컨텍스트에서 Skinned Mesh Sampling의 또 다른 예입니다.

Showcasing an example of Skinned Mesh Sampling in the Update context

VFX 그래프에서 Skinned Mesh를 사용하여 멋진 콘텐츠를 제작해 보세요.

Mesh LOD로 성능 최적화

Image of generated space with a planet, meteorites, and a sun in the background

이제 디테일 수준(LOD) 시스템을 구현하여 메시 출력을 사용하는 특수 효과가 최적화되므로, 멀리 있는 파티클에 더 간단한 메시를 수동으로 지정할 수 있게 되었습니다.

인스펙터에서 메시 출력을 선택할 때 새로운 Mesh Count 프로퍼티에 액세스하여 출력에 최대 4개의 메시를 지정할 수 있습니다. 그 아래에 위치한 LOD 체크박스를 활성화하면 파티클은 화면에서 차지하는 비율을 기준으로 메시를 선택합니다.

Showcasing the ability to modify the LOD values field in your output to designate the minimum percentage of the screen that each of your meshes must occupy to be visible

출력에서 LOD 값 필드를 수정하여 각 메시가 표시되기 위해 차지해야 하는 최소 화면 비율을 지정할 수 있습니다. 예를 들어, 값이 10이면 화면의 10% 이상을 차지해야만 특정 메시가 표시됨을 의미합니다. 효과의 품질을 유지하면서 성능을 향상하려면, 멀리 있는 파티클에 단순한 메시와 작은 LOD 값을 선택하면 됩니다. Radius Scale 값을 수정하여 모든 메시를 대상으로 LOD 값을 동시에 조정할 수도 있습니다.

아래의 행성 고리 예시에서 볼 수 있듯이, 메시 파티클에 LOD를 구현하면 눈에 띄는 시각적 영향 없이 초당 프레임(fps)을 약 6에서 60이상으로 높여 성능을 개선할 수 있습니다.

Image showcasing the difference in frames per second between no mesh LODs and with mesh LODs

향후 계획

2021.2 베타 버전을 시작으로 향후 버전에서는 다음을 통해 더욱 다양한 플랫폼과 콘텐츠를 아우를 수 있도록 지원 범위를 늘릴 계획입니다.

또한 VFX를 용도에 맞게 만들고 커스터마이즈할 수 있도록 다음과 같은 추가 툴을 제공합니다.

마찬가지로 그래픽스 버퍼에 대한 추가 지원이 있을 예정이므로 개발 시 GPU로 보다 고차적인 시뮬레이션을 활용할 수 있습니다.

업데이트된 기능은 2021.2 베타 버전에서 대부분 사용해볼 수 있습니다. 아직 개발 단계라는 점에 유의하여 직접 테스트한 후 피드백을 공유해주세요.

추후 릴리스에 대한 자세한 정보를 얻고 싶다면 언제든지 그래픽스 제품 로드맵에 방문하여 원하는 기능에 투표하세요. 필요한 기능 또는 새로운 아이디어나 요청 사항을 제출할 수 있습니다.

 

다음은 정보 전달 목적으로만 제공되며 어떠한 계약에도 포함될 수 없습니다. 다음 자료의 내용을 바탕으로 구매 결정을 내려서는 안 됩니다. 유니티는 어떠한 기능 또는 코드의 제공을 약속하지 않습니다. 모든 제품, 기능, 특징의 개발, 관련 작업 시기, 출시는 유니티의 단독 재량이며 변경될 수 있습니다.