얼마전 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 다운 받기
AND

Youtube에 올라온 이 영상은 IBM에서 발표한 iRT를 이용하여 3대의 PS3를 이용하여 실시간 Ray-tracing랜더링을 보여주고 있다. 이 영상을 보기 전에 알아야할 부분은 영상의 퀄리티나 해상도가 그리 좋지 않은데 왜 이것이 대단하냐고 반문하실 수 있는데, Ray-tracing은 자연에서 발생하는 빛의 움직임을 재현하는 랜더링 기법으로 마야나 MAX같은 3D 이미지 랜더링에서나 쓰이며(물론 요즘은 GI를 쓰겠지만), 실시간으로 구현되는 것은 거의 불가능하다. 그란투리스모나 기타 자동차 게임의 차체에 비치는 매끈한 광원효과는 환경맵핑이라는 기법을 이용한 것이며, 자세히 살펴보면 반사되는 이미지는 미리 만들어진 것이거나 디테일이 떨어지고, 자신이 반사되는 경우도 없다.

동영상 내용

  • Ray-tracing은 720p이며 4x super sampling이 적용되어 있음.
  • 3대의 PS3를 리눅스 환경에서 기가빗이더넷으로 연결하였다.
  • 각 PS3는 7개의 SPE중 6개를 iRT에 할당하고 있다. (나머지 1개는 OS용이거나 I/O 용도인듯)
  • 3대중 한대는 최종 이미지를 만드는 역할을 수행하며 1개의 SPE를 최종 이미지 압축용으로 사용한다.
  • 각각은 1개의 SPE를 이미지 전송 압축용으로 사용한다.
  • 따라서, 이미지 전송용 1대는 4개의 SPE를 나머지 2대는 5개의 SPE를 랜더링에 활용한다.
  • 랜더링 영상은 100% Ray-casting이며 유리와 차 표면에 Reflection과 Refraction이 구현되어 있다.
  • 실시간이기에 다양한 Light source를 부여할 수 있다.
  • 뒷부분에 보이는 네모들은 각각 어떤 하드에서 랜더링되고 있는지를 보여주며, 맨 아래쪽은 4개의 블럭이 있는데 이유는 클라이언트라서 4개의 SPE만을 사용하기 때문이다. 나머지는 5개의 블럭이 보인다.

영상을 보면서 느끼는건, 대단하긴한데 이거 PS3용 게임을 만들 수도 없고, 그렇다고 Real-time Global Illumination처럼 Wow Factor가 있는것도 아닌 게 일반 유저들이 봐서는 그닥 관심이 대상이 되긴 어렵겠다는 생각이었다. 하지만, 대단한건 인정!!

AND

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의 가능성을 옅보게하는 의미있는 작품이다.


사이트 바로가기
AND

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

이번 학기 프로젝트 중 하나였던 "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
AND

특이하게도 영국의 Oxford에서 시작한 벤쳐기업인 NaturalMotion LTD에서 개발한 endorphin은 dynamic motion을 이용한 animation을 만드는 도구로서 Dynamic Human Motion 기반의 몇 안되는 상용툴이다.(최초라고 주장하는데 맞는거 같다.) endorphin을 이용하여 개발자는 물리현상이 적용된 현실같은 Motion과 Feedback을 만들어 낼 수 있다.






영상에서 나오는 기능을 요약하여 살펴보면,(Full Feature PDF File)

Artificial Intelligence
Forward Dynamics Muscle Controllers
Wide Selection of Adaptive AI Behaviours
Expandable AI Behaviour Library
Character Simulation
High Fidelity Biomechanical Simulation of the Human Body
True Physical Interaction Between Character and Environment
Fully Customisable Character
Multiple Characters
Parameterised Behaviours
Active PosingTM
Motion Transfer Events
Active AnimationTM
Prop Support
Driven Collision Surfaces
Severed Body Parts
Authoring
Intuitive Event-Based Scene Authoring
Multi-Track Time Line
Multi-layer behaviours
Force Tool
Environment Builder
Interactive Strobe Preview
Inverse Dynamics Character Posing
GUI
Intuitive Graphical User Interface
Camera Tracking
Variable Replay Rate
Hotkey Editor
Pipeline Integration
Import of Existing Animation Data
Export of Generated Animation Data
Dynamic Blending
Supported File Formats
Video Output (Tabletop Preview)
Camera Import
Video Back Plate
Asset Management Support

포지셔닝은 Alias의 MotionBuilder와 흡사한 것을 알 수 있다. Real-time Dynamic Human Motion을 만든다기 보단 Realistic Dynamic Human Motion을 만드는데 중점을 두고 있다. (독자적으로 쓰이기 보다 FK/IK와 Blending되어 자연스런 결과를 만들어 낸다.) 상용화툴이기 때문에 현재 가장 앞선 디테일의 기능들을 보여준다.

Tutorial 1

Tutorial 2



사이트 바로가기
AND