얼마전 Expression Blend를 설명하면서 마야 Exporter가 있으면 좋겠다는 언급을 했었는데, MS에서 주체한 WPF Convesion Contest에서 종목에도 없는 마야 Exporter를 만든 친구들이 있었다.

XAML Export UI

XAML로 전달되는 요소들은,

  • Polygon meshes
  • Cameras
  • Animations
  • Lights
  • Normals
  • Texture Coordinates

정도이며, 아직은 Maya의 Animation Curve를 완벽하게 재현하지 못한다고 한다. (WPF, MAYA 모두 cubic bezier curves를 쓰는데 표준상의 근본적 차이가 크다고 한다.) Expression Blender에서 Curve Animation구현이 잘 안되길래 XAML 스펙에 기능이 없나 의심했는데, KeySpline이라는 형태로 존재한다.

01

사이트 바로가기

Source Code 다운 받기
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


Autodesk MAYA를 사용하다보면 가끔 MEL Script의 강력함에 매료될 때가 있다. (불안정함으로 작업을 날려먹는 일은 부지기수지만..) 예전에는 Webbrowser Object를 이용해서 Web-Dav처럼 3D Resource를 웹 리포지토리에서 관리하는 MEL Script를 짤때 문득 들었던 생각이 이걸로 게임 만드는 바보도 있지 않을까하는 생각을 했었는데 진짜로 존재한다는 사실을 알게되었다.

스타워즈의 특수효과로 유명한 ILM(Industrial Light and Magic)의 3D 작업자 중 MAYA Guru 였던 Habib Zargarpour는 2002년 MEL과 MAYA Dynamics Engine을 이용하여 로봇을 제작하고 자신의 로봇을 다른 플레이어의 로봇과 겨룰 수 있는 게임을 만들었다. (재미로 만들었다가 ILM개발팀 내부에서 엄청난 반향을 일으켜서 출시하게 됐다는 후문이 있다.)

TV쇼프로인 Robot Wars:Extreme Warriors와 비슷한 개념으로 정해진 스테이지를 벗어나면 패배하도록 되어있다. 파괴룰은 적용이 되었는지 확인해보지 못했다. 명확한 Objective와 Play pattern이 있는게 아니기 때문에 게임이라 부르기보다 장난감에 가깝다고 보는게 맞지 않을까? Toribash, Rag-doll Kung-fu와 더불어 Physically-based Fighting Game의 가능성을 옅보게하는 의미있는 작품이다.


사이트 바로가기
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST


첫미팅에서 했던 브레인스토밍일부.

이번 학기 프로젝트 중 하나였던 "MIMOSA"가 끝이 났다. MIMOSA는 "Maya Integrated Manufacturing Objective Shrub Architecture"의 약자로서 기존 L-system에서 한걸음 나아간 Open L-system을 이용한 크리쳐(주로 식물) 개발 도구이다. (건들이면 움직이는 신경초이기도 하고, 그리스 신화에 나오는 공주이기도 하다. 하지만 발표를 들은 대부분의 사람들은 칵테일을 연상했다;;) Open L-system의 특징은 고유의 룰 외에 E(x)라는 외부연동 함수가 추가되어 각 파트의 Variables에 영향을 미치게 되는 것인데, 쉽게 말하면 벽이나 구멍 등에 나무의 성장이 영향을 받게 되는 것이다. 그저 Collision Detection정도로 해결될 걸 뭐 대단하다고 할 수도 있지만 일단 L-system의 룰은 recursive하고 단지 충돌의 체크를 떠나 햇빛과 중력의 영향을 받아 새로운 성장벡터를 산출해야 하기 때문에 조금은 생각해볼 필요가 있었다. 더우기 마야에서 작업하는 폴리곤 또는 Nurbs Surface들에게 가상의 필드가 존재하여 해당 필드를 넘어가기 시작하면 필드포스의 영향력에 따라 그 방향에 대한 weight가 달라지기 때문에 결국 Open L-system의 E(x)는 Ray Hit Test 알고리즘 + Quaternion Space + A* Algorithm의 조합이 되고 이를 우리는 Q* Algorithm이라고 부른다.

Q*에서 공간면을 만들고 weight을 구하는 개요

3D Space상에서 경로산출을 최적화 하기 위해 Quaternion space를 생성한후 이를 Grid화하여 각 지점의 weight를 환산 이를 토대로 새로운 성장방향을 산출하는 식이다. Grid대신 Octree를 이용하고, pre-computed weight의 개념을 만들면 훨씬 빨라질 수 있지만 시간관계상 이론적으로 된다는 것만 정리하고 끝내버렸다. (학생식의 대충대충)

L-system 룰을 쉽게 제작하기 위한 툴인 L-viz.


01234
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST