반응형
Notice
Recent Posts
Recent Comments
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

Do Something IT

[Ragdoll 기법] 디아블로3 타격감 '쩌는' 이유? 본문

Unity3D/3D기법 공부

[Ragdoll 기법] 디아블로3 타격감 '쩌는' 이유?

아낙시만더 2013. 3. 11. 15:56
반응형

출처 : 바로가기


알콜코더 박민근의 '게임 유저를 위한 디아블로 3 물리 엔진의 비밀!'




*일부 영상에 잔혹한 장면이 포함되어 있으니, 이에 거부감을 느끼신다면 시청을 자제하시기 바랍니다.


디아블로3 타격감? 물리엔진과 Ragdoll에서 나온다!

이미 많은 분들이 '디아블로 3'를 즐겨 보았으리라 생각한다. 이 게임은 최근 대규모 패치를 감행, 최고 레벨을 달성했던 유저들도 다시 성역으로 돌아가게 만드는 데 성공했다.

사실 디아블로 3는 전작 디아블로 2에 비해서 기술적, 그래픽적으로 많은 부분이 변경됐다. 그중에서도 기존의 2D 게임에서 쿼터뷰 3D 게임으로 변경된 것이 가장 큰 변화점이라 할 수 있다. 그래픽 스타일은 디아블로 2와 비슷하지만, 이 2D에서 3D로의 변화 갭이 기술적으로 상당히 큰 차이라는것은 유저 여러분들도 이미 많이 알고 있으리라 생각한다. 

디아블로 3가 3D의 길을 선택하고 가장 발전된 것 중 하나, 바로 타격감이다. 처음에는 타격감이 좋아서 수도사를 선택한다는 유저도 있을 정도였으니까. 그리고 이 타격감의 배경에는 디아블로 3에 적용된 물리엔진이 있다. 사실 디아블로 2도 2D 게임치고는 타격감이 꽤 좋은 편이었다. 하지만 당시는 PC 사양이 그리 높지 않은 시대였기에 물리엔진의 도입은 사실상 어려웠다. 비로소 디아블로 3에 들어와서야 시리즈 최초의 3D 물리엔진이 포함된 것이다. 

[ ▲ 물리엔진 적용으로 또렷한 타격감을 선보이는 디아블로 3 ]


디아블로 3에 포함된 물리엔진은 그저 맵상의 오브젝트들에만 적용된 것에 그치지 않고 캐릭터에까지 'Ragdoll'이란 물리엔진 기술을 입혔다. 이 기술 덕에 몬스터가 타격을 받은 방향으로 멀리 튕겨나간다던지, 찢겨지는 표현을 할 수 있었다. 또한, 몬스터 시체까지도 자연환경에 따라 유동적인 움직임 변화를 보일 수 있게 됐다. 물리엔진의 도입으로 디아블로 3의 타격감은 기존 시리즈에 비교할 수 없을 정도로 효과적이면서 동시에 화려해진 것이다. 

재미있는 사실 중 하나는 이 디아블로 3에 적용된 물리엔진을 담당한 개발자 'Erin Catto'가 최근 스마트폰 게임 등에서 가장 많이 사용되는 물리엔진 'Box 2D' 엔진을 개발한 사람이라는 것이다. 이 Box 2D 엔진은 현재도 다양한 게임에서 사용 중인데, 가장 유명한 것은 단연 '앵그리버드'다. 즉, 앵그리버드의 물리엔진을 만든 개발자가 디아블로 3의 물리엔진을 담당했다는 소리다.

[ ▲ 디아블로 3에 적용된 물리엔진 소개 영상 (출처 - Maluo 5) ]



그런데 'Ragdoll'이 뭔가요?

사전을 검색하면 'Ragdoll'이란 헝겊인형이라는 뜻이다. 이 의미는 물리엔진에서도 크게 다르지 않는데, 캐릭터를 마치 인형처럼 물리적으로 반응하게 만드는 기술이란 뜻이다. 

[ ▲ 흔히 생각하는 이런 인형 (왜 메이드복인지는 묻지 않는 것이 약속 ]


보통 물리엔진을 적용하지 않은 캐릭터는 애니메이터가 사전에 정해 놓은 애니메이션밖에 실행하지 못한다. 즉, 타격 애니메이션을 하나 만들었다면, 어느 부위에서 맞던 미리 지정된 애니메이션만 보여줄 뿐이다. 사실 이런 기술은 이미 2D 때부터 적용되었던 고전 기술 그대로이다. (스트리트 파이터 2를 생각해 보면 된다.)

하지만 게임의 흐름이 3D로 넘어가면서, 다양한 타격 위치가 생겼고, 거기에 딱 맞아 떨어지는 효과까지 기대하는 등의 요구치도 점점 높아진다. 또한, 죽고나서 적들의 시체에 대해 처리하는 문제도 생겼다. 시체가 계단에서 떨어지거나 건물 모서리에서 추락하는 경우 등의 상황에 반응하는 애니메이션 기술이 필요하게 된 것이다.

여기서 생겨난 것이 바로 'Ragdoll'이란 물리 기술이다. 간단하게 풀어보자면, 평소에는 정해진 애니메이션을 하다가 타격을 입거나 죽은경우에는 캐릭터 애니메이션 제어를 물리엔진에게 맡겨버리는 것이다. 이 기술은 조종하는 사람이 없는 인형처럼 손을 들면 따라서 들리고, 밀면 밀리고, 던지면 벽에 부딪히고 구르기도 하는 효과를 만들수 있다. 물론 내부적으로는 더 복잡한 요소들이 있지만, 이 칼럼은 어디까지나 개발자가 아닌, 유저를 위한 칼럼이기 때문에 기술적인 부분들은 과감하게 생략한다.

현실적으로는 몬스터가 살아있을 때 정해진 애니메이션을 연출을 하고, 시체같은 경우에는 완전히 'Ragdoll'만 적용하는 경우가 일반적이다. 물론 정해진 애니메이션과 'Ragdoll'을 같이 적용하는 경우도 있다.

사실 평범한 유저들이라면 'Ragdoll' 기술을 상당히 많이 봐 왔을 것이다. 바로 '서든 어택'이나 '카운터 스트라이크' 같은 수많은 FPS에서 일반적으로 사용하고 있는 기술이니까. 게임에서 죽은 캐릭터의 관절이 이상하게 휘어지거나, 시체들이 계단에서 굴러 떨어지면서 이상하게 걸쳐지는 이유가 바로 'Ragdoll' 기술이 적용되었기 때문이다. 총을 맞기 전에는 캐릭터가 사람처럼 뛰어다니다가, 죽고 난 후에는 마치 헝겊인형처럼 마구 굴러다니지 않던가?

디아블로 3에도 'Ragdoll' 기술이 적용됐다. 이 'Ragdoll' 기술 덕분에, 애니메이터가 일일이 손으로 작업하지 않아도 물리엔진을 이용, 관절을 제어하기 때문에 어느정도 사실적인 애니메이션이 가능하다. 아울러 게임 플레이 도중 만나게 되는 다양한 환경적 변수에도 유기적으로 대응할 수 있다. 

하지만 제어 부분을 제대로 작업하지 않으면 앞서 이야기한 것처럼 관절이 이상하게 꺽이거나, 계단에 끼이는 현상이 발생하기도 한다. 사실 대부분의 MMORPG에서는 'Ragdoll' 기술을 사용하지 않는다. 'Ragdoll'도 어디까지나 물리적인 연산 하에서 연출하는 것이기 때문에, 많은 캐릭터를 처리하다가 과부하가 걸리기 때문이다.

[ ▲ 디아블로 3에 적용된'RagDoll' ]


반응형
Comments