여기는 저의 2004~2007년까지의 기록입니다. 이 블로그는 이제 Tistory로 옮겼습니다.
2008년부터의 기록은 http://blog.studioego.info 로 가시기 바랍니다.

StudioEgo's Thoughts, seasonⅡ


마비노기 CM으로 보는 컴공과의 생각
코토노하 모에단 대한민국 이글루스 지점 단장님이신 네리아리 님의 글 :

을 보고 전 이런 생각이 들었습니다.

저거 만든다고 수치해석에 나오는 수식들을 가지고 얼마나 삽질을 했겠나? (수치해석 말고도 다른 학문에 나오는 공식들도 응용 되었을 것입니다. 공업수학, etc)



마비노기 일본 CM을 보면 나부장으로 통하는 나오가 나옵니다 -_-;;

여기서 나오는 나오는 애니메이션인 2D로 나온 것이 아니라 3D로 나옵니다.
저걸 프로그래밍해서 만든다면 엄청난 수식들이 동원될 것입니다. 저런 수식들은 거의 대부분 수치해석에 나옵니다.
그래픽스쪽 공부를 조금이라고 한 학생이라면 수치해석에서 배우는 것들이 모두 쓸모있다는 사실을 알 수 있죠.

나오가 문고리를 잡을때 수학공식으로 3D를 제대로 구현하지 않으면 나오가 문고리잡지 못하고 자기 손을 잡아 주먹을 잡을 수도 있습니다. 나오가 문고리를 못잡는 사태를 방지하기 위해서는 비선형방정식이 필요합니다.

나오가 문고리를 잡을때에는 수많은 점들이 추가 되고 등등의 어지럽게 됩니다. 이 때에는 행렬을 이용한 선형 방정식의 해법으론 절대 못풉니다. 그래서 비선형 방정식을 이용해서 손잡이를 잡고 등등의 연산을 해야 합니다.

비선형 방정식을 풀때에는 중간치 정리를 이용해서 f(x) = 0를 찾아야 합니다. 아 f(x) = 0으로 찾다간 수많은 해가 나와서 저런 것들을 풀기가 힘들 것 같군요. 1차 미분을 해서 f'(x) = 0인 해를 찾아야 합니다.
그러면서 Roll의 정리를 이용해서 미분한 값에서 근이 존재함을 알아야 합니다. 그러므로 Bisection Method를 이용해서 해를 찾습니다. 그러나 이 방법은 무지 느립니다.
게임의 생명은 속도감인데 프로그래밍한 것이 느리면 게임을 못할수도 있겠죠? 잘못하면 렉이 걸릴수도 있습니다.
그렇기 때문에 Newton's Method를 이용해서 해를 구해야 합니다.
Newton's Method를 이용하면 속도는 엄청 빠릅니다만... 근을 못찾을수도 있습니다. 이 방법은 디지털카메라에서 이용을 한다는 소리를 들었습니다
그리고 Secant Method, Recular Falsi란 방법들이 있으니 게임이나 CM에서 이런 수치해석의 내용들이 들어갔수가 있을 것입니다.

(제가 아직 전공을 배운지 1년밖에 안된 학부 2년 마친 컴퓨터공학과 학생으로서 이쪽 그래픽스를 공부를 별로 하지 않아서 오류가 있을 수도 있습니다. 오류 발견하시면 덧글 올려주시기 바랍니다^^)

여러모로 마비노기 일본판 CM을 보면 삽질 오나전 했다는 사실을 알고 있습니다. 저런 것 표현할려면 객체지향언어로 표현했을 터인데, 어떤 메소드를 만들었는지가 궁금합니다.
나비가 움직이는 객체들과 해바라기 객체, 귀가 펄렁거리는 양들 객체 등등
나오가 걸어나오는 것도 그렇고 등등 객체들의 움직임들을 살아있는 것처럼 움직일려면 많은 삽질이 필요하다는 것을 알 수 있습니다 덜덜덜


정말 넥슨, 일본에서 사업한다고 열심히 일한 것 같네요. 넥슨 임직원들이 열심히 삽질한 덕분으로 일본의 엔화가 우리나라로 유입이 될것 같습니다. 넷슨은 우리나라의 국익에 많은 도움을 주고 있습니다!!!

저런 CM만든다고 어떤 수식들이 들어갔을까? 의문이 들어간 한 컴공과 학생의 생각이었습니다.
CM을 볼때 마다 2학년때 동기들이 어렵다고 외면한 수치해석 수업을 들은 것을 잘한 선택이라고 믿고 있군요^^ 거기에 무슨 수식이 적용되었나 등등의 생각을 하는 것을 보면 말이죠.



마비노기 CM의 나오가 빙그르르 도는 장면은 삽질 많이 한 장면 같습니다. (수학 공식들이 몇개나 쓰였을까? 란 생각이 듭니다.)
마지막에서 나오가 빙그르르 도는 모습을 보면 애니메이션 괴수 집단인 Kyoto Animation에서 만든 AIR Opening에서 미스즈가 빙그르르 도는 모습이 생각나네요^^



마비노기 일본판 광고를 보니까 넷슨에서 일하시는 분들의 노가다가 느껴집니다.
역시나 컴퓨터 그래픽스는 수학이 필수입니다 ~

(※ 2007년 1월 31일 수요일 오후 10시 35분 수정 - 이유 : 학교에서 나갈 시간이라 급히 쓰고 나왔음-_-;;)

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by Ego君 | 2007/01/31 19:35 | 컴퓨터 | 트랙백 | 덧글(4)
트랙백 주소 : http://sungdh86.egloos.com/tb/2970489
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by lamane at 2007/01/31 19:47
가슴 흔들리는 것도 계산으로....
Commented by 클랴 at 2007/01/31 20:02
내부적으로는 그런 수식이 돌아가겠지만.. 그건 MAX3D나 MAYA에서 하는 거구
모델러나 애니메이터는 결과물 봐가면서 조금씩 애니메이션을 조정하는 식으로 구현.
Commented by 레이 at 2007/01/31 21:38
프로그램으로 만드는거니까요.
뭐 프로그램을 쓰려면 기본지식은 있어야 겠지만요.

저 미스즈 돌아가는 장면은 2D입니다.
Commented by object at 2007/02/01 04:56
나오가 문고리를 잡을때 ==> collision detect 문제입니다. CG에서 가장 어려운 문제 중 하나입니다. 임의의 공간 상의 임의의 개수의 3차원 객체들의 충돌 알고리즘을 빠른 시간내에 계산하기는 상당히 힘들죠.

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >