특수효과 만들기
- Timevir
- Jul 24, 2022
- 4 min read
반가워요, 여러분. 제 이름은 Sid지만, 온라인에서는 Sidremus로도 찾아보실 수 있을 거에요. 저는 생츄어리 팀의 VFX 아티스트랍니다. 제 첫 개발자 로그에 오신 걸 환영해요!
간단하게 자기소개를 하자면, 팀에 참여하기 전에 저는 대학원에서 영어와 철학을 공부하며 영원같은 시간을 보냈습니다. 겸사겸사 다양한 종류의 일들에도 뛰어들어보았고요, 그러면서, 저는 계속해서 창의적으로 나 자신의 생각을 표출할 방법을 찾아왔습니다 – 사진, 그림, 3D 모델링, 물론 게임도 포함해서 말이죠. 저는 중증 SF 덕후고, 가장 좋아하는 최애 작품들이 있긴 하지만 그렇게 까다롭진 않아요. 무엇보다 가장 좋아하는 것은 간지나고 번쩍거리는 초미래적인 특수효과들이죠. 레이저 빔, 크고 아름다운 폭발, 에너지 방어막, 플라즈마 수류탄, 뭐 그런 것들이요. 저는 그걸 보는 것도, 만드는 것도 좋아하고, 그래서 이렇게 지금의 작업을 맡게 되었습니다!
오늘, 저는 시각 효과 중 하나가 만들어지는 과정을 처음부터 끝까지 여러분과 함께해보려고 합니다. 우선 제가 보통 그러는 것처럼 문제 상황부터 시작해봅시다:
파수대의 투사체가 필요해
작업을 시작하기 전에, 우리는 효과가 달성하고자 하는 목표가 무엇인지 찾아내야 합니다. 모든 VFX 효과들은 시각적인 멋짐과 게임에 대한 정보를 전달하는 것 사이에서 적당한 타협점을 찾아내야 하니까요. 이게 무슨 뜻이냐고요?

킬링 플로어 2에서 나온 타오르는 에펠탑과 스트리트 파이터의 류가 사용하는 파동권을 한 번 비교해봅시다.
전자는 순수하게 멋을 내기 위한 효과의 완벽한 예시입니다. 플레이어가 도달할 수 있는 범위에서 멀리 떨어진 곳에 배치된, 말 그대로의 배경이죠. 오직 세기말적인 파리의 풍경을 강조하기 위해서 추가된 요소입니다. 작업하느라 기술적으로는 힘이 좀 들었겠지만, 예술적인 관점에서는 어떻게 봐도 멋있습니다.
반면에 파동권에 사용된 시각 효과는 보기에도 멋지긴 하지만, 단순히 멋이나 아름다움 이상의 것을 필요로 합니다. 먼저, 정확하게 공격의 히트박스를 묘사해야만 하죠. 그렇기에 파동권의 전면은 모서리 형상이고, 양쪽에 딸려오는 불꽃은 실제 범위 이상으로 공격이 미친다는 인식을 주지 않도록 그렇게 길지 않습니다. 여기서는 나오지 않았지만 플레이어를 헷갈리게 하는 일이 없고, 플레이어의 실력으로 회피가 가능할 수 있게 애니메이션의 타이밍 또한 실제 투사체의 속도와 일치해야 하고요.
그렇다면 이게 어떻게 우리가 만들고자 하는 투사체와 연관이 있을까요?
한편으로, 이 효과는 보기에 멋져야 합니다. 미적 감각이란 상대적인 것이지만, 이런 경우에는 얼마나 게임 내의 세상에 잘 들어맞는가를 통해 효과의 질을 따질 수 있겠죠. 우리의 경우에는:
머나먼 미래의 태양계에서 다이슨 스피어를 배경으로 펼쳐지는 생츄어리란 게임
다이슨 스피어를 수호하는 AI의 기계 군단, 파수대. 파수대의 디자인은 날것 그대로, 인간의 미학이나 편의성을 고려하지 않은 기계적인 디자인과, 그들의 에너지를 공급하는 태양의 찬란한 화염에서 모티브를 얻었습니다.
게임플레이 측면에서의 억제의 경우, 우리는 사실 비교적 운이 좋은 편입니다. 생츄어리의 전투는 상당한 대규모로 펼쳐지는 탓에 이 정도만 염두하고 있으면 되니까요:
단순한 저티어 투사체를 회피할 수는 없습니다. 그러니 정확한 충돌이나 착탄에 대해서는 조금 느슨하게 진행해도 되겠죠?
낮은 티어의 전차가 발사하는 비교적 작은 크기의 투사체입니다. 치명적으로는 보여야겠지만, 더 크고 강한 무기들의 시각 효과가 빛이 바래게 만들어서는 안 됩니다.
대부분의 플레이어들이 어느 정도 떨어진 시점에서 명령을 내리기 때문에, 시각 효과는 멀리 떨어진 곳에서도 선명히 보여야 합니다. 미묘한 디테일도 나쁜 건 아니지만, 대부분의 경우에는 플레이어가 눈치채기 힘들겠죠.
우리가 만들고자 하는 효과는 상당히 빠른 속도로 움직이는 투사체기 때문에, 어느 정도 날아가는 방향을 나타낼 수 있게 만들어져야 하기도 합니다. 이것은 특히 게임을 언제나 멈출 수 있는 싱글플레이어와 리플레이에서 중요한데, 정지 화면에서도 플레이어가 어떤 게 어느 방향으로 날아가고 있는지 확인이 가능해야 하기 때문입니다. 여기서는 흔적 효과가 도움이 되겠군요. 뒤에 더 설명하도록 하죠
애니메이션은 유동적인 비행 시간을 허용해야 합니다. 애니메이션의 시작으로 돌아가지 않고서도 매끄럽게 루프가 이루어져야 한다는 뜻이죠.
옛 것은 가고
이전의 테스트용 투사체는 기능에는 충실했지만, 우리의 취향에는 너무 단순했습니다. 그냥 에너지 무기를 쓰기만 한다면 어느 팩션에서나 나올 법한 모양새였죠. 게다가 '귀가 큰 어느 쥐'한테 고소미를 먹을 수 있을 정도로 익숙하게 생긴 외형이기도 합니다.

극초기에 만들어진 버전. 코드 테스트를 위해 사용되었지만 그대로 적용할 만큼 만족스럽지는 않았습니다.
자, 그러면 어도비 애프터 이펙츠를 사용해서 멋진 불타는 태양광 투사체를 한 번 만들어보도록 합시다!

시각 효과를 만드는 단계.
전 이런 방식으로 효과를 만들었습니다. 먼저 생각해두었던 기초적인 형상을 스케치하고, 두 개의 매우 중요한 기능을 지원하는 스톡 효과를 집어들었죠. 이 효과는 제가 그린 형상을 따라가는 것이 가능하고, 애니메이션화가 가능한 성질을 가지고 있습니다. 효과가 고정된 뒤, 저는 몇 개의 효과를 더해 투사체가 좀 더 역동적으로 보이게 바꾸었고, 외곽선을 옅게 지운 뒤 살짝 되살려 더 잘 보이게 하는 효과를 내었습니다.
이 다음부터 애니메이션화가 시작됩니다. 클립 전체를 흑과 백의 이미지 시퀀스로 렌더링하고, 그러면서 자연스럽게 루프가 가능하도록 클립을 두 배로 늘린 뒤 애니메이션의 시작 파트에서 페이드 인 효과가 나타나도록 합니다. 이건 괜찮은 기법이지만, 다소 혼란스러운 시각 효과에서만 통합니다. 걷는 애니메이션과 같은 것에서 응용하려는 생각은 안 하시는 게 좋아요.
그 다음에는, 클립 전체를 투명한 배경에 이미지 시퀀스로 옮기게 됩니다. 마지막으로, 이 시퀀스를 유니티의 파티클 시스템이 샘플링할 수 있는 스프라이트 시트로 조립하게 되죠.

16프레임짜리 반복되는 화염구 효과
전체적으로 이 과정은 저만의 개인적인 방식이라고 할 수 있습니다. VFX를 만드는 것에는 뚜렷하게 정해진 방식이 없고, 몇몇 도구가 다른 것보다 더 접하기 쉽긴 해도, 거의 모든 아티스트들이 이런 효과를 만드는 각자만의 방법을 가지고 있을 겁니다.
V 는 Visual, F 는 Effects, 그리고 X 는...
자, 마침내 유니티로 들어가볼 시간이 왔습니다. 유니티의 파티클 시스템인 Shuriken은 꽤 강력하고, 전체적으로 훑어보기만 해도 너무 많은 시간을 소비하게 될 겁니다. 하지만 간단하게 요약하자면, 이제 우리가 가진 스프라이트 시트를 슈리켄에 집어넣을 수 있다는 겁니다. 거의 100만개에 달하는 효과 범주를 설정할 수 있는 시스템에 말이죠. 투사체의 방출, 지속 시간, 움직임은 궁극적으로 게임에 의해서 결정되갰지만, 어떻게 보이게 될 것인가는 여기서 자유롭게 결정할 수 있습니다.
짧게 줄여서 이야기해드렸지만, 사실 이 파트는 제가 가장 많은 시간을 보내는 구간입니다. 딱 맞는 느낌을 내기 위해서 끊임없이 수정과 조작을 반복하게 되니까요. 우리가 만든 애니메이션은 프레임 단위로, 우리가 설정 할 수 있는 속도로 재생되며 분석됩니다. 여기에 포스트 프로세싱에 파티클 효과가 걸릴 수 있도록 약간의 광채 효과를 집어넣습니다. 크기도 중요하고요(뭐 적어도, 특수효과에서는요) 마지막으로, 약간의 스파크 흔적을 넣어줍니다. 이것도 물론 파티클 효과의 하나기 때문에, 주 효과를 변경하듯이 이것 또한 자유롭게 조정이 가능합니다.
여기서 저는 굉장히 다양하게 사용될 수 있는 흰색 선 효과를 약간 넣었습니다. 더 빠르면 더 길게 하는 식으로요. 거기에 더해 주 파티클 효과에서 약간의 관성과 랜덤 노이즈를 위한 떨림 효과를 넣었고요. 최종적으로는, 이런 결과물이 나오게 됩니다:

이전보다 훨씬 멋지게 생긴 투사체로 변신했군요.