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

얼마전에 Newegg에서 단돈 4.99불에 팔았던 사이드와인더 프리스타일 프로. 싼마이에 덥썩 2개나 사 버렸다. M$가 PS3의 컨트롤러를 향한 푸념중에 이 제품에 대한 기억을 되살리는 부분도 있었기에, 어느정도 성능이었는지 매우 궁금했었다.

첫 느낌은 묵직한 그립감에 나쁘지 않은 느낌이다. 미국판 새턴패드 이후로 미국식 패드 애호가가 된 내가 좋아하는 감촉이다. PS3와 유사한 Angular Sensing 모드는 Sensor라는 버튼을 누르면 작동하게 되어 있는데, 아쉬운 것은 디지털패드와 병행할 수가 없다. 둘중 하나의 값만은 전달한다.


Sensor버튼을 눌러서 모션센싱 모드에서 게임을 해본 결과 이 패드가 왜 망했나를 알 수 있었다.

- Maximum Angle에 대한 정의가 모호하다.
원점에서 기울이기 시작하면 H,V의 Delta 값이 바뀌기 시작하는데, 거의 70도까지 값이 일정하게 올라가다가 70도에서 90도사이는 찔끔찔금 올라간다. Calibration모드에서조차 최대값에 도달하기가 어렵다.
- 플레이어의 손은 기계가 아니다.
패드의 원점은 정확히 평행한 0도선이다. 하지만 플레이해본결과 0도의 위치는 자연스런 기본자세라기보다 약간 무리가 가는 자세라서, 나도 모르게 원점을 벗어나 오작동하는 경우가 많았다. 또한, 최대값의 경우도 인간의 손목으로 나올 수 있는 각도가 아니다;; Constraint을 좀더 작게 잡고 세밀한 움직임을 줬으면 어떘을까 하는 아쉬움이 생긴다.
- H,V 센서의 부정확성
H축에 수직으로 기울인 상태에서 V축 수직으로 이동해보면 값이 일직선을 그리지 못하고 계단의 형태를 띄는 것을 볼 수 있다. 수평/수직 2개의 센서의 정확도가 떨어져 나오는 결과로 보인다.
- 게임에서의 지원미비
Activison에서 제공한 PRO BMX게임의 경우 플레이가 불가능할 정도로 컨트롤이 어렵다. 이 패드는 앞으로만 전진하는 레이싱 게임이나 균형을 맞추는 게임에는 적합해도 앞뒤로 돌아다니며 재주를 부리는 게임에는 전혀 맞질 않는다.

동봉된 게임이 너무 재미없어서 현재 진행중인 게임 프로젝트의 일부에 적용해 보았는데, 반응이 괜찮다. 다만, 입력되는 값을 상대적 좌표로 써야만 느낌이 좋다. 사람마다 쥐는 자세는 다 틀리지만 화면에 피드백하여 움직이는 상대값은 대체로 비슷하였다. PS3의 6-Axis의 경우도 이같은 점을 주의하지 않으면 비슷한 결과가 나오지 싶다.
AND

Understading GRF

Motion Physics 2006. 4. 4. 03:02
Ground reaction forces (GRF)는 인체모션(특히 달리기와 펌프등의 다리가 땅에서 떨어지는 모션들)을 정의하는데 중요한 요소중 하나이다. 달리는 속도가 빨라질수록 더 높이 점프할수록 GRF는 증가한다. 일반적으로 생각하면 mocap data만으로 모션을 분석할 수 있다고 생각하기 마련인데, 이는 잘못된 생각이다. 왜냐면 인체의 Soft Body적 성향으로 인하여 외부로 나타나는 모션과 Ground Contact Force는 상당히 다르기 때문이다. 실례로 서전트 점프를 한다고치면 점프준비동작의 모션을 미분해봐도 V는 매우 작지만 실제 GRF는 상당히 크다. 또한, 달리다가 갑자기 멈출때도 자세는 Run Cycle과 크게 다르지 않지만 GRF Vector의 horizon part는 캐릭터가 달리는 반대편을 향하고 있으며 이에 따라 각 Muscle에 들어가는 힘을 계산해야 한다.

관련 Article 바로가기
AND

Anthony C. Fang와 Nancy S. Pollard의 Siggraph 2003에 publish되었던 Efficient Synthesis of Physically Valid Human Motion은 spacetime constraints framework의 performance에 초점을 둔 흥미로운 paper이다. 이 paper를 C. Karen Liu Zoran Popovi´c의 Synthesis of Complex Dynamic Character Motion from Simple Animations와 함께 보면 상당한 유사점을 찾을 수 있는데, simple parameters를 constraints으로 하여 physically valid motion을 생성하는 것이 그것이다. 하지만 포커싱에서 큰 차이를 보이는데 전자는 constraints를 단순화 시킴으로서 퍼포먼스를 향상시키려 함이고, 후자는 단순한 constraints만으로 높은 퀄리티의 모션을 뽑아내는 것이 목적이다. 퍼포먼스 향상의 비결은 매우 단순한데,

- Constraints의 단순화를 통한 모델의 simplize : Ground Contact Friction과 Bar Contact Friction, 그리고 Flight Model에 단일 aggregate force & momentum을 사용함으로 equation의 수를 획기적으로 줄였다. 또한, mass-spring damper를 사용하지 않고 더더욱이 개별 joint에서 발생하는 momentum역시 생략해버려서 제어없이 발생하는 passive force는 없는 것이다. (결국 controller에서 모두 해결해버린다.)

- Joint Body의 Velocity와 Momentum계산의 복잡성은 이 2개의 속성이 다른 방향을 통해 결정된다는 것이다. (Velocity는 Base에서 끝으로 더해나가야 하고, Momentum은 끝에서부터 계산되서 Base로 와야 하기 때문에.) 하지만 간단한 꼼수를 이용해서 local position을 2개의 translation X로 분리하여 Fi를 local velocity, local momentum와 Fi+1로 이루어진 공식으로 유도할 수 있다. 결국 단방향으로 전체 F를 계산할 수 있기 때문에 O(N)으로 떨어지게 된다.



더우기, Appoximation없이 유도만으로 식이 생성되었기 때문에 Error가 없다. 하지만, 실 생활에서 주어진 조건에 따른 최적의 움직임은 여러개인데 반해서 이 방식은 결국 해를 구하는 Jacobian Matrix를 만들어서 일괄적으로 풀어버리기 때문에 해가 무조건 1개이다. 따라서 해가 1개가 될 수 없는 미묘한 움직임(그냥 서있기)은 제대로 작동하지 않는다. 또한, Joint에 Torque를 주는 만큼 Complexity는 증가하여(O(KN)), 모든 Joint에 Torque를 부여하면 O(N^2)이 되어 버린다.

1,4,6번째 그림이 조건이고, 나머지가 이를 이용한 결과이다. (Keyframe을 생각하면 비슷하다.)


Paper PDF 다운 받기

저자 웹사이트 가기
AND

쏟아지는 paper의 홍수 속에서 흥미로운 주제만 간단히 소개할까 한다. Physical Based Motion의 선구자중 한사람인 Zordan, V. B.와 CMU의 Pollard, N. S.가 2005년에 연구한 이 Paper는 Physical Based Model중에서도 구현이 쉽지 않은 Soft Body끼리의 Interaction (Collision & Sensing & Control/Feedback)을 '악수'라는 예제를 통하여 다루고 있다. 대충 읽어본 바에 의하면 모션의 소스는 "모션 캡쳐"에서 시작되며, 이후 Parameterized되어 "Neutral-Opening_1-Closing-Gripping-Releasing-Opening_2-Relaxing-Neutral"의 사이클을 가지게 된다. 이를 이용하면 물체를 잡거나 놓치거나가 가능하다. (다만 손안에 넣어주는 물체에만 가능하다. 이 프로젝트는 매우 작은 Constraint만을 허용하고 있다.)
상당히 흥미롭고 중요한 주제이지만, 정작 연구는 주제를 벗어났다는 생각이다. 예제를 통해 얻은 것은 꼼수를 통해 그럴싸하게 보이는 것이지만, 위에서 언급했던 중요한 Interaction Factor가 부족하다. (Sending이나 Feedback에 따른 새로운 Motion Interpolation등이 부족하다.) Parameter들에 따라서 실제처럼 움직여 보이지만 Biomechanical 관점에서 촉각에 따라 사과면 사과 바나나면 바나나에 맞는 최적의 손가락 관절 움직임이 되었으면 더 의미 있었겠다는 생각이다.

사이트 바로가기

논문 다운 받기(PDF)
AND

Jesper Mosegaard는 Dynamic Human Motion의 한분야인 Soft Body Dynamics에서도 매우 특이한 분야를 연구하는 PhD 학생으로서, 그는 수술집도 시뮬레이션을 위한 인체해부에 관한 역학모델을 연구하고 있다.

IDividing the deformation into an A, B and C area.

절개가 가능한 피부는 Soft Tissue Model로 부터 시작되는데, 이는 피부를 bio-mechanical 관점에서 tissue의 조합으로 보는 것으로 각 tissue는 elastic property를 가지며 energy function에 의해 늘어나고 줄어든다.

UML diagram of general design.

피부의 표면은 또한 mass spring model로 만들어진 node들이 모여서 chainmail의 형태를 이루게 한다. 가장 재밋는 부분은 바로 절개를 위한 부분인데, 피부 특히 내장기관은 일정한 모양을 이루고 있지 않으며 절개시에도 절개부위는 주변 조직과의 elastic장력에 의해 오그라들거나 쳐지게 되는데 이를 폴리곤의 collision detection에서부터 polygon removing, subdivision을 통하여 시각적으로 분해한후 surface disconnecting으로 물리적인 분리모델을 제시했다.

불분명한 내장 기관의 벽을 segmentation하는 과정

절개의 과정(폴리곤부분)

절개부위의 subdivision과정


최종 절개된 결과. 멋지다!!

최적화 Part에서는 석사논문답지 않은 디테일한 모델비교자료를 제시한다. 차세대 게임의 잔인한참신한 시각화 이펙트가 될성 싶은 작품이다.

저자 사이트 바로가기

논문 다운받기
AND

Zoran Popović

Motion Physics 2006. 1. 15. 06:44
CMU를 나와 지금은 University of Washington의 교수로 재직중인 Zoran Popović는 Motion Capture Data를 바탕으로 Dynamic Human Motion을 만들어내는 기술에 있어서 독보적인 경지에 올라있다.

초기 논문인 "Physically Based Motion Transformation," with Andy Witkin in Computer Graphics (SIGGRAPH)에서 그는 mocap data에서 Spacetime Motion Fitting이라 불리는 mocap data = [solution] x dynamic environment 형식의 equations을 만들어 물리환경이 적용된 "유사한" 모션으로 변환한후 이를 새로운 Contstraints(e.g. 보다 높은 점프, 새로운 Footstep등)에 맞게 편집(Spacetime Edit)하여 새로운 모션을 생성(Motion Reconstruction)하는 시도를 하였다.
Figure. Frames from the crossed footsteps, limp, wide footsteps run; and the diagonal, obstacle, unbalanced, and twist jump.


"Learning Physics-based Motion Style with Inverse Optimization," with C. Karen Liu and Aaron Hertzmann, in ACM Transactions on Graphics (SIGGRAPH 2005)에서 그는 보다 다양한 biomechanical factor들(근육의 spring & damper적 특징, 관절의 탄성, 특정관절의 부자유스러움, 신발의 탄성등)을 Paremeterize하였으며, 이를 통하여 언덕을 오르거나 캐릭터의 Motion Style(Sad, Happy등), 그리고 관절불구 등의 변화를 적용시킬 수 있게 하였다.


매우 리얼해보이는 이 동영상은 정해진 Contraint에 맞게 오랜시간동안 계산된 Simulation이다. Real-time과 Active Motion을 중시하는 게임 인더스트리에서 쓰일려면 "十年早いんだよ!"일 수도 있지만 현재 모든 IT영역을 통틀어 Computing Power의 Driven Key는 역시나 게임산업이기 때문에 머지않았다가 정답일듯 싶다. 다만 "인간다운 모션"과 Dynamic Human Motion의 경계를 허무는 정답이 존재하지 않기 때문에 많은 연구가 필요할듯.

웹 사이트 바로가기
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

Canada Toronto 대학의 DGP(Dynamic Graphics Project)는 1967년에 설립되어 80년대초 당시로는 신학문인 HCI분야를 개척했으며, Ubiquitous와 Interactive Graphic의 선구자인 Bill Buxton가 교수로 있기도 하다. 최근에는 Physical Animation에 활발한 연구를 하고 있다.

그중에 특히 눈에 띈 논문은 바로 "Predictive Feedback for Interactive Control of Physics-based Characters"인데 바로 아래의 Ski Simulation과도 일맥상통하는 내용이다. (캐나다 내부에서 학술활동이 활발해서일지도)
사이트 바로가기
AND

일본의 Toyohashi University of Technology에서는 모션캡쳐 Data를 소스로 하여 동적인(not physical or dynamics, but dynamic) Motion을 Synthesis하는 새로운 Motion Interpolation기법을 Siggraph 2005에서 발표했다. 기존의 Squad나 Cubic의 Spline이 아닌 보다 진보된(paper를 아직 읽어보지 않아서 정확한 기법은 모르겠다) Interpolation 결과를 보여준다. Dynamic Human Motion과는 다른 분야지만, 흥미로운 주제임이 틀림없다.
동영상 다운 받기

사이트 바로가기
AND