홈 > 취미 > 취미 > 게임
취미

가상현실에서 드론을 띄워봅니다, 언리얼엔진5 카메라 움직임 가이드

뒤집기교주 0 256 5 0

얼마전에 FPV 드론 움직임을 언리얼엔진에서 흉내내서 영상을 만들어 올렸었는데요, 반응이 좋아서 영상제작 과정을 대략적으로 정리해서 보여드리려고 글을 써봅니다. 사실 영상의 완성도 보다는 언리얼엔진5 가상현실 속의 드론 카메라라는 아이디어 자체를 많이들 좋아해주신 것 같습니다. 언리얼5에서 새롭게 3D 환경을 제작했는데 이 환경을 어떻게 연출해야 재미있을지 생각하다가, 이 숲에서 드론을 날리면 멋있지 않을까? 라는 생각이 들어 해보게 되었습니다.



언리얼 엔진 시퀸서 작업창에서 카메라 움직임을 키로 지정한 모습


사실 언리얼엔진에서 카메라를 이리저리 날아다니게 하는 것은 그리 어려운 일이 아닙니다. 애초에 언리얼에서 가장 기본적으로 하는 것이 WASD 키와 마우스를 이용해서 시점을 이리저리 바꿔가면서 3D 공간에서 작업을 하는 것이기에 시퀸서라는 툴에서 키 지정만 할줄 알면 카메라의 움직임을 녹화하는 것은 일도 아닙니다. 특히 아프터이펙트나, 프리미어, 다빈치 리졸브 같은 타임라인 기반 영상편집 툴을 사용해본 경험이 있으시다면 시퀸서는 언리얼 내에서도 아주 편안하게 느껴지실겁니다. 요즘은 영상편집이 많이 대중화 되어서 그런류의 프로그램을 사용해보신 경험이 있으신 분들이 많이 계실거라고 생각합니다. 어쨋든 카메라 움직임을 애니메이팅 하는게 그리 어렵지 않다보니 이 드론 카메라 아이디어도 별로 어렵지 않게 할 수 있을거라고 생각했었습니다. 그런데 막상 움직임을 녹화하고 작업을 시작해보니 생각보다 고려해야 할 점들이 많았습니다.

 

 

21년 3월에 출시되어 큰 인기를 얻은 DJI FPV 드론 


첫번째로 고려해야 할 것은 카메라 세팅이었습니다. 대부분의 드론들이 가지고 있는 광학적 특징을 언리얼엔진 속 카메라에 정확히 적용하고 싶었습니다. 언리얼엔진으로 지정할 수 있는 수많은 카메라 세팅들이 있지만 화각가 피사계심도에만 집중하면 될것 같았습니다. 


 

DJI FPV 드론 스펙 리스트


대부분의 드론이 액션카메라 정도 크기의 작은 센서에도 불구하고 넓은 화각을 가지고 있습니다. 제가 예시로 사용하기로 한 DJI FPV 드론의 경우 150도의 화각을 가지고 있는데 35미리 풀프레임 기준으로 14.66mm 의 아주 넓은 화각입니다. 


 

그 다음은 피사계심도 입니다. 비교적 작은 센서크기와 넓은 화각은 피사계심도가 필연적으로 깊어지게 됩니다. 쉽게 말하면 대부분의 경우 장면 전체가 초점이 맞게 됩니다. 작은센서 X 넓은화각 = 장면 대부분 in focus. 물론 피사계심도와 센서크기와의 상관관계를 과학적으로 정확히 설명하자면 훨씬 복잡하지만 일반적인 사용경우에는 맞는 이야기입니다. 


 

어쨋든 본론으로 돌아와 위에서 이야기한대로 DJI FPV 스펙에 맞추어서 언리얼엔진 카메라 세팅을 해줍니다. 화각은 14.66mm, Filmback 은 16:9 DSLR 그리고 조리개는 f16으로 맞춥니다. 대부분의 드론이 넓은 화각과 깊은 심도를 가지고 있기 때문에 많은 경우에 비슷한 수치가 적용 될 것이라고 생각합니다. 물론 소형드론임에도 불구하고 좁은 화각을 가지고 있거나, DSLR이나 씨네마카메라를 날리는 대형드론도 있기 때문에 예외는 존재합니다. 각자의 필요에 맞게 스펙을 검색해서 적용하면 될 것 같습니다. 


 

DJI Mavic Zoom 은 특유의 줌기능이 카메라에 탑재되어 있어서 대형드론에서나 볼 수 있었던 parallax 효과를 뽑을 수 있습니다


 

DSLR 부터 중소형 씨네마 카메라까지 날릴 수 있는 대형 드론도 물론 있습니다, 저런건 사고나면 얼마나깨질까 하는 생각부터 듭니다.


 

​카메라 설정을 마치고 나면 장소답사를 갈 차례입니다. 시퀸서를 끄고 찍을 환경을 여기저기 돌아다니면서 가장 멋있을 만한 앵글들을 찾아 다녔습니다. 이 부분은 실제로 촬영할 시에 하는 사전답사와 별반 차이 없을 것 같습니다. 물론 이 경우에는 드론 카메라가 주된 아이디어이기 때문에 찾은 포인트 간의 동선 같은게 너무 멀면 안되고 드론의 움직임도 고려해서 선정해야 되는 점이 있었습니다. 


 

찍을 포인트들을 대충 봐놓은 후에는 높은 시점으로 바꾸어서 환경을 내려다보면서 동선을 그려보고 수정해보고 했습니다. 일단 애니매이팅 작업이나 렌더링은 시작하면 시간이 많이 걸리고 중간에 수정하는 것도 번거로운 일이기 때문에 미리 계획을 대충 짜놓고 시작하려고 했습니다. 물론 막상 시작하면 계속 바뀌기도 하고 시간낭비하고 하는것은 안 비밀입니다.


 

드론의 동선을 특정 공간으로 한정시킬 것이였기 때문에 날아다닐 3D 환경자체가 엄청 커야할 필요는 없었습니다. 하지만 드론은 드론이기 때문에 필연적으로 시점이 높은곳에 위치하게 될 것 같아서 환경자체가 너무 작아보이면 안될 것 같았습니다. 중앙에 만든 랜드스케입의 주위로 산을 다양한 거리에 배치해서 지평선이 훨씬 더 멀어보이게 만들고 배경에 디테일을 추가했습니다. 


 

동선을 확실하게 생각해놓고 이제 드디어 시퀸서에서 애니메이션 작업을 시작합니다. 동선을 따라서 카메라를 움직이고, 키를 지정하고. 움직이고 지정하고 반복합니다. 시퀸서의 오토키 기능을 사용하면 카메라를 움직이는 즉시 키 지정이 됩니다. 카메라의 공간적으로도 움직이고, 비추고 있는 방향도 같이 바꿔가면서 작업합니다. 이 때 주의 할 점은 나중에 돌아와서 편집할 것들이 많기 때문에 타임라인에서 키와 키 사이의 공간을 충분히 남겨주어야 한다는 것입니다.



출처 : DJI 유튜브 채널, FPV 드론 영상 스크린샷입니다 


카메라 애니메이션 작업을 할 때에는 참조영상으로 FPV 드론 영상을 많이 봤습니다. 드론의 움직임도 보고 드론 파일럿들이 어떤 묘기를 부려서 멋진 영상을 찍어내는지 등등을 관찰했습니다. 작업하는 동안 계속 참조용으로 사용하면 좋을 것 같습니다. 


 

DJI Simulator 입니다. 현실이라면 절대 하지 않을 미친짓이지만 시뮬레이터니까 나무사이를 마음껏 질주 해볼 수 있습니다. 물론 이런 미친짓 하라고 시뮬레이터를 만들지는 않았을것 같지만 어쨌든 실제 드론 컨트롤러로 조작감도 익히고 여러모로 유익한것 같습니다. 


 

시퀸서에서 동선을 따라 키를 다 지정해주고 나면 이제 다시 타임라인의 시작점으로 돌아가서 속도를 하나하나 조절해줍니다. 타임라인에서 지정된 키를 드래그해서 선택하고 타임라인 좌우로 움직여서 속도를 조절합니다. 물론 중력도 큰 고려대상이고 어디서 가속을 할지 어느 부분에서 속도를 줄일지 드론파일럿에 빙의해서 상상하며 작업해봅니다. 예를 들어 보통 직선에서는 빠르게 가속할 수 있지만 크게 턴을 한다거나 아주 급선회를 한 후에는 느려진다거나 하는 것들을 생각하면서 속도조절을 합니다. 시퀸서 타임라인에는 커브 시스템이 있는데 이걸 이용해서 가속도를 조절합니다. 


 

동선을 따라 움직임을 지정하고 속도도 얼추맞추었는데도 아직 움직임이 딱딱하고 가상 카메라 티가 팍팍납니다. 여기까지 작업했는데 전혀 드론 같은 느낌이 안나서 고민을 해보니 움직임에 관성을 전혀 추가하지 않았습니다. 드론의 '느낌' 을 내려면 관성의 요소가 필수인 것 같습니다. 몇번 시행착오를 겪은 결과 내린 결론은 공간적 XYZ의 움직임과 방향적 Roll Pitch Yaw 회전의 타이밍에 차감을 주는 것입니다. 다르게 말하면 회전과 공간적 움직임을 같은 타이밍에 해버리면 관성이 있어보이지 않고 움직임이 딱딱해보였습니다. Pitch 와 Yaw는 대부분 XYZ 움직임보다 좀 더 빠른 타이밍에 회전을 시작할 수 있게 편집했고 Roll 은 아예 따로 편집해서 드론이 턴을 할 때마다 턴을 하는 쪽으로 기울도록 했습니다. 아직 이 '관성' 의 요소를 추가하는 제 방법이 썩 마음에 들지는 않습니다. 연구가 많이 필요한 부분 같습니다.


 

제가 처음 이 작업을 하고 영상을 만들어 올릴 때까지 제대로 깨닫지 못해서 실수 한 부분이 있는데 바로 드론이 프로펠러를 이용해 양력을 얻는 구조 입니다. 헬리콥터와 비슷한 이 구조 때문에 드론은 위쪽으로 머리를 들어서 상승할 수가 없습니다. 그래서 위 사진과 같이 상승하는 움직임에 카메라 머리를 저렇게 들어서 올라가면 안되는 거였는데 이 점을 완전히 간과해버렸습니다.



이 부분은 아직 연구가 많이 필요한 것 같은데, 대충 이정도의 각도로 상승하는게 맞는 것 같습니다. 물론 DJI FPV 드론의 경우 김벌이 달려 있기 때문에 어느정도 위를 보더라도 현실성은 있을 것 같으나 역시 드론의 '느낌'을 내기에는 이 각도 이상 올려서 상승하는 것은 피해야 할 것 같습니다. 이 부분 때문에 다시 연구해서 작업을 수정해 보려는 계획중에 있습니다.


사실 가상현실 속의 드론이라는 개념은 이미 많이 잡혀 있는 것 같습니다. 드론 조작법 숙달을 위함 시뮬레이터들도 많고, FPV 레이싱을 콘텐츠로 한 게임도 많으니까요. 제가 한 작업의 의미는 실시간 게임 환경에서 구현하기 힘든 고퀄리티의 그래픽을 드론의 시점으로 담아본다는 데에 있었던 것 같습니다. 꿈보다 해몽입니다. 


생각해보니 기존의 시뮬레이터 처럼 드론의 움직임을 물리적으로 구현해서 언리얼엔진내에서 진짜 드론을 날리는 것 처럼 컨트롤 해서 찍는다면 굳이 힘들게 하나하나 손으로 애니매이션 작업을 하지 않아도 되지 않을까 생각도 듭니다. 언리얼엔진 내의 블루프린트 기능을 생각하면 기능적으로는 충분히 가능할 것 같은데 제 공부가 짧아 한참 후에나 해볼 수 있을 것 같습니다. 


 

DJI Flight Simulator 입니다. 몇가지 드론과 환경에 한해서 무료입니다. 실제 드론 날리는 연습을 가상으로 해보기에 아주 좋은것 같습니다, 언리얼엔진 기반이라네요.


 

Drone Racing League 시뮬레이터입니다, 스팀에서 판매되고 있는 게임인데 실제 드론 움직임을 트래킹해서 만들었다고 합니다.



언리얼엔진5 드론 카메라 움직임 가이드 영상 (한글자막)

https://youtu.be/ZW_Ed9gm4lU


드론 양력 구조 무시하고 만든 파이널 렌더영상​

https://youtu.be/9WFAPzIRmdQ

0 Comments
오늘의 인기글

글이 없습니다.

제목