본문 바로가기

DirectX/3D

모션 네트워크(Motion Network) 개발 노트


모션 네트워크(Motion Network) 개발 노트

게임을 만들 때, 캐릭터가 상태의 변화에 따라 애니메이션이 변화가 된다.
그 변화가 어떻게 되는지 흐름을 정리해 놓고 시작하지 않으면, 추후에 수 많은 동작이 붙었을 때 엄청 고생을 많이 하게 되더라..

이번에 새롭게 게임을 제작하면서, 이전에 애니메이터와 기획 파트와 프로그램팀 간에 이러한 규정이 없이 작업했다가 클베나 오베 때에 유저들의 눈에 너무나 많은 문제점들이 돌출되는 것을 보고, 좀 깔끔하게 해결하는 방법이 없을까 애니메이터와 고민하다가 상태의 흐름도를 만들어 보자는 제안을 해서, 애니메이터와 만들기 시작하였다.

그런데, 자료는 찾다가 보니까.. 이런 것들이 먼저 정의 되었어야 하는 것들이 맞는 것이었다.
이동을 하다가, 공격을 했을 때, 다른 동작을 했을 때의 흐름도가 정의 되어 있어야 했던 것이다.

참... 게임은 만들면 만들 수록 할 것이 많아지는구나.. ㅎㅎ

조금 더 깊이 고민을 하면서 만들 다가 보니깐.. 동작과 동작 사이의 처리 방식을 규정해주어야 할 필요가 생기더라. 즉, 밑에서 보는 것과 같이, 어떨 때에는 모션 블랜딩을 처리 해야 하고, 어떨 때에는 하지 말아야 하며, 모션 블랜딩을 상황에 맞게 얼마 정도 넣어주어야 하는 지, 정지 동작을 추가해주어야 하는지 등등..

[이번에 만들어 본 모션 네트워크의 일부]

그러다 Gamebryo 엔진에서 본 AnimationTool이 문뜩 떠 올라서 열어 봤더니, 이게 왠일... 이런 것을 정의해주는 것이 있더라 이거지..

[Gamebryo-AnimationTool의 Transition View]

애니메이션 뷰어에 Transition을 설정하고, 애니메이션 마다가 아닌 Sequence 별로 애니메이션 들을 조합할 수 있도록 설정이 가능하였다.

나는 애니메이션 단위로 모든 것을 설정하게 생각했었는데, 이렇게 했더니, 표현의 한계가 발생되는 느낌이었는데, 음...

이걸 보면서, 역시 게임을 잘 만드는 것이 결국 엔진을 잘 만드는 것이구나라는 것을 또 한번 뼈져리게 느꼈다. 그 동안, 엔진 작업만 한다고 게임 쪽을 거의 작업해보지 않았었기에, 저런 것이 당연히 있었어야 되는 것인데도 불구하고, 필요성을 거의 느끼지 못했었는데.. Gamebryo를 보면서도, 이런 건 왜 있는 것일까? 라는 생각만 했었는데...

우리 팀에는 아직 게임을 많이 만들어 본 경험이 부족해서, 어떻게 하면 잘 만들 수 있을까에 대해서, 고민하고 고민하니까, 이런 것들이 이제야 보이기 시작한다. 열심히 고민하고, 연구하고 잘하려고 노력하니까, 하나 하나 부족한 것들이 보이고, 채워 나갈 수 있는가 보다.

만들자.. 게임을.. 그리고 더 나은 엔진을....

'DirectX > 3D' 카테고리의 다른 글

Deferred shading from Wikipedia  (0) 2014.04.02
엔진 정보  (0) 2011.01.10
DX 함수 참고사항  (0) 2010.10.25
파생 탄젠트 공간의 매트릭스  (0) 2010.10.01
노말맵이란  (0) 2010.10.01