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

언리얼엔진으로 파괴신 놀이하기

뒤집기교주 8 376 8 0

왜 살다보면 그럴 때가 있죠, 화가 끝까지 치밀어서 뭐라도 부수고 싶을 때. 롤 하다가 초반 라인전 다 이겼는데 미드랑 정글이 터져서 희망이 보이지 않을 때. 같이 라인전 잘하던 서포트가 어떻게든 미드랑 정글 살려보겠다고 로밍 가서 피딩 할 때. 꾸역꾸역 버텨가며 겨우 후반까지 게임 이어가고 이제 막 희망이 보이는데 미드가 혼자 엄한데서 죽고 게임 터질 때. 또 가끔씩 체크 해보는 뉴스를 듣다보면 그 때 그 미드랑 정글이 우리나라 장관이고 대통령인 것 같은 그럴 때. 그럴 때에는 순간적으로 뭐라도 부숴야겠다는 충동에 휩싸이기도 합니다. 물론 현실에서 그랬다가는 와이프님이 저를 싸이코로 보실지도 모르기 때문에 그럴 수는 없습니다. 월급쟁이 신분으로 부순 물건 다신 살 능력도 없으니 잠깐 그런 마음만 들었다가 그저 속으로 삭힐 뿐입니다. 진짜 던진다면 작은 베개 정도?


이런 답답한 현실에서 아주 조금이나마 위안 아닌 위안이랄게 언리얼엔진으로는 물건이고 건물이고 마구 부수는 파괴신 놀이가 가능하다는 점입니다. 어떻게 보면 이런 비이성적이고 원초적인 본능을 간접적으로 해소시켜 주는 것이 게임과 영화 같은 미디어의 주요 기능 중에 하나가 아닐까 생각해봅니다. 이번 글에서는 언리얼엔진의 카오스 파괴 기능이랑 나이아가라 기능을 써본 경험담에 대해서 간략하게 이야기 해보겠습니다. 카오스 디스트럭션 시스템은 미리 부숴둔 모델의 조각들을 실시간으로 물리엔진을 통해 시뮬레이션 해줍니다. 또 이 과정을 유저가 직관적으로 이해 할 수 있게 만들어 두어서 복잡한 기술적 지식이 없더라도 충분히 원하는 형태의 폭발 또는 파괴를 만들 수 있게 해줍니다.



이 콘크리트 블럭을 예로 들어보겠습니다. 이 때까지만 해도 이분은 그냥 평범한 콘크리트 블럭이셨습니다. 시멘트. 물과 모래가 아주 적절히 배합되어 굳혀진 아주 묵직하고 단단한 분이셨죠. 앞으로 다가올 운명을 예측하지 못한채 자신이 어느 건물의 천장을 지탱하게 될것인지, 몇층에 배정될 것인지, 기대에 부풀어 계셨습니다. 


 

그랬던 분을 프렉쳐 모드의 이런 화면을 통해 … 자 잠시만 이쪽으로 와보시죠.. 네? 여긴 왜? ….잠시면 됩니다


 

이렇게 라면땅 뽀개듯 잘 뽀개드렸습니다 (다들 라면땅 뭔지 아시죠? 저만 아잰가요?). 분노와 슬픔의 절규가 들리는 것 같습니다만 가볍게 무시합니다. 이 프렉쳐 모드에서 선택한 3D 모델을 어떤 모양으로 부술 것인지, 몇단계로 나누어 부술 것인지 부숴진 내부 표면은 어떤 재질이 될 것인지 등등의 많은 세팅을 할 수 있습니다. 물론 더 자잘하고 복잡하게 부술수록 피스들을 나누는데에도 컴퓨팅이 많이 필요하고 시뮬레이션도 복잡해지기 때문에 컴퓨터 성능에 맞추어 적당히 조절 할 수 밖에 없습니다.  


 

부실공사를 무사히(?) 잘 마치고 온 콘크리트 블럭님을 다른 멀쩡한 콘크리트 블럭들 사이에 감쪽같이 숨겨놓습니다. 애초에 부수기 전에는 옆에 붙여놓은 분들이랑 동일한 모델이었으니 이렇게 봐서는 어느 분이 847조각으로 쪼개진 분인지 알 수가 없습니다.


 

쪼개진 콘크리트 블럭에 여러가지 물리적 기능을 하는 액터*들을 배치합니다. 네모난 노란색 액터들은 앵커라고 하는데 시뮬레이션을 돌릴 때 이부분은 되도록이면 부서지지 않도록 하기 위해 배치합니다. 그리고 빨간색 공같이 생긴 것이 폭탄입니다. ㅎㅎㅎㅎㅎㅎㅎ


*액터라 함은 언리얼엔진 레벨에 배치하거나 스폰시킬 수 있고, 정해진 기능에 따라 자신의 역할을 수행하는 기본 객체라고 할 수 있습니다.


이제 에디터에서 시뮬레이션을 돌려 폭탄을 빵! 터트리면


 

멀쩡했던 천장에 구멍이 생기면서 조각들이 우수수 떨어지는 효과를 만들 수 있습니다. 콘크리트 조각들이 터져나가고 주변 지형 지물과 부딪히면서 세팅된 무게에 맞춰 튕기고 굴러다니는 효과를 자동으로 시뮬레이션 해줍니다.


아주아주 재밌습니다. 이렇게만 해도 폭탄의 위치를 이리저리 옮겨보기도 하고, 폭탄의 세기도 조절 해보고 떨어지는 지점의 지형지물도 바꿔보는 등 한참을 놀수가 있습니다. 또 꼭 폭탄 액터를 쓰지 않아도, 다른 물체를 높은 곳에서 떨어뜨려서 천장을 부순다던가 하는 물리 시뮬레이션을 돌려 볼 수 있습니다.

 

재밌습니다 재밌긴한데… 뭔가 좀 많이 썰렁합니다. 뭔가 진짜로 콘크리트가 터져나가는 상황이면 먼지랑 연기도 많이 생길 것이고, 조각들이 부서질 때나, 다른 곳에 부딪히면서 더 작은 조각이 생기거나 하는 일이 있어야 하는데 그런게 아직 없습니다. 그래서 나이아가라 효과를 연계해서 같이 써보도록 합니다.


나이아가라 비주얼 이펙트 시스템은 언리얼엔진 내에서 자체적으로 여러가지 시각적 효과를 만들 때에 쓰입니다. 예를 들어, 모닥불, 각종 연기, 떨어지는 낙엽 등의 간단한 효과 부터 게임 캐릭터의 마법 능력, 동물 떼, 대규모 인원 시뮬레이션 효과 등의 복잡한 효과까지 쓰임새가 다양합니다. 나이아가라 시스템 또한 별도의 프로그래밍 지식이 없이도 직관적인 인터페이스를 통해 유저가 다양한 효과를 만들어서 적용시켜 볼 수 있게 되어 있습니다.


 

일단 이펙트에 사용할 콘크리트 조각들을 모아 구부러진 쇠파이프도 끼워넣고 별도의 3D 모델로 만들었습니다.

 

 

이 별도의 조각들을 나이아가라 시스템에 넣어서, 떨어지는 방향, 속도, 떨어지는 개수, 바닥에 부딪히고 나서 생기는 관성 등의 여러가지 변수를 조절합니다. 참고로 나이아가라 시스템은 파티클(입자) 를 사용하는 시스템도 가능하지만 이렇게 3D 모델을 넣어서도 사용 가능합니다.


 

그리고 역시 나이아가라 시스템을 통해, 콘크리트 조각들이 땅에 부딪히는 순간, 충격지점에서 부터 작은 돌 조각이 사방으로 비산하게 만들었습니다. 이 역시 튀어나가는 속도, 회전량 등을 조절 할 수 있습니다.


 

이 외에도 폭발에서 피어나는 연기, 구멍에서 떨어지는 작은 돌조각 등 몇가지 나이아가라 시스템을 더 만들었습니다. 이렇게 나이아가라 효과들이 준비 된 다음에는 천장에 구멍이 뚫리는 카오스 효과에 맞추어 그럴 듯한 타이밍에 각 효과가 터지도록 타임라인을 설정합니다. 각종 효과를 이렇게 하나의 시퀀스로 가져와서 돌려보면 처음에는 이것저것 손 볼 것이 많이 보입니다. 연기량이 너무 많다거나, 돌조각이 너무 일정하게 떨어져서 부자연스럽다거나 등등의 문제가 보일 때 마다 관련 변수를 조절 해서 다듬어 나갑니다.


결과물 영상입니다. 제목은 ‘아니 문이 있는데 왜?’ 로 지어보았습니다. 

카오스랑 나이아가라 효과를 연계해서 사용하는데 있어서 이렇게 시퀀스에서 타이밍을 맞추어 영화적인 연출을 하는 방법도 있습니다만 게임 같은 실시간 인터렉티브 미디어에서는 그보다 더 직접적으로 둘을 연결하는 방법이 있습니다. 바로 카오스 데이터를 사용하는 방법입니다. 카오스 디스트럭션 시뮬레이션이 일어나는 과정에서 표면이 부서지는 위치 또는 파편이 날아가면서 생성되는 트레일 데이터등이 만들어지는데, 이 데이터를 이용해서 디스트럭션이 일어나는 정확한 위치에 나이아가라 효과가 따라서 생성될 수 있게 만들 수가 있습니다. 


아래 영상은 콘크리트 벽이 부서지면서 날아가는 파편의 속도에 따라 나이아가라 플루이드 Gas smoke 효과가 랜덤하게 나타나게 만들어 보았습니다.


카오스 x 나이아가라 플루이드 

참고로 나이아가라 플루이드는 비교적 최근에 언리얼엔진에 추가된 실험적 기능입니다. 기존의 단순한 파티클 기반의 구성을 넘어서 3D 픽셀 (볼륨 픽셀, 또는 Voxel) 을 사용하기 때문에 보다 자연스럽고 사실적인 효과를 제작 할 수 있습니다. 이 같은 장점 때문에 주변 사물이나 빛에 반응하는 형태가 기존의 파티클 시스템보다 월등합니다. 하지만 실험적 기능이라는 수식어에서 알 수 있듯이 아직은 제약이 상당히 많은 기능이라고 할 수 있는데, 나이아가라 플루이드로 제작한 효과의 해상도를 높일 수록 좋은 퀄리티의 결과물을 얻을 수 있는 반면, 일정 이상의 해상도를 넘어가면 퍼포먼스가 극악으로 치닫습니다. 잦은 뻑남 현상과 부서진 키보드의 원인이 될 수 있습니다 (여기서도 카오스?). 제 개인적인 의견으로는 일반적인 개인 컴퓨터에서 얻을 수 있는 결과물은 굉장히 제한적이고 그 때문에 실시간으로 사용할 수 있는 범위도 아직은 상당히 좁다고 생각합니다. 


어쨌든 장점 덕분에 캐릭터 움직임에 반응하는 형태가 기존의 파티클 시스템 보다 더 사실적이라고 할 수 있는데 그걸 한번 재미삼아 시험 해봤습니다. 플루이드 Gas Smoke 를 마치 세트장에서 쓸만한 스모크 머신처럼 아래로 깔아주고 그 안에서 한번 신명나게 봉산탈춤을! …하려다가 탈춤 애니매이션이 없어서 브레이크 댄싱으로 대체 했습니다.


스모크머신 x 헤드스핀

 

또 언리얼엔진으로 이야기거리가 생기면 들고 찾아오겠습니다. 긴 글 읽어주셔서 감사합니다 



8 Comments
딸딸이아빠 02.20 21:42  
뭔가 전문가냄새가나고 어려운글이라 선뜻 댓글달기가 쉽지않군여

럭키포인트 24,187 개이득

뒤집기교주 02.20 22:38  
[@딸딸이아빠] 그럼에도 달아주셔서 감사합니다 ~

럭키포인트 25,458 개이득

한치바라기 02.21 18:12  
음... 이해했어

럭키포인트 2,017 개이득

뒤집기교주 02.22 06:23  
[@한치바라기] ㅋㅋㅋ
헤으응 02.22 07:42  
이글보고 다시 롤 한판하러 갔읍니다.....

럭키포인트 13,217 개이득

뒤집기교주 02.22 10:34  
[@헤으응] 저도 저렇게 쓰면서도 한판 하고 싶다는 생각을....
똥거북 02.22 15:18  
짤만볼땐 흠흠.. 하고 넘기다 영상보니까 되게 자연스럽네 ㅋㅋ 재밋겟당

럭키포인트 2,117 개이득

뒤집기교주 02.22 21:02  
[@똥거북] 감사합니다~ 정말 재미가 있기는 합니다 ㅋㅋ
오늘의 인기글
제목