2018년 10월 11일 목요일

[2013. 2. 20] Maya HumanIK / Motion Builder 사이에서 Key frame animating 에 대한 정리...

아래에서 Maya 에서 HIK(Human IK)를 다룬 포스트가 있습니다... 그것으로 게임용 캐릭터들을 좀 작업해 보고, 정리겸 사견을 포스트하려 합니다... Unity 와 함께 연계하는 작업으로서 진행한 것이었는데, Unity쪽은 그저 FilmBox파일로 호환되서 넘어가는 것이고, 다른 UDK등 대다수의 게임엔진은 마찬가지로 FBX파일로서 잘 호환되기에 그쪽에 관계된 것은 다룰 필요가 없을 것 같습니다... 
또한 Motion Builder와 HIK 등이 모션캡쳐 데이터를 많이 다루고, 게임쪽에서 많이 사용되는 이유로 애니메이션에서는 관련이 없는 것으로 여겨지는 경우도 볼 수 있는데, 사실은 Keyframe 애니메이션도 얼마든지 다룰 수 있고, 애니메이션키를 클립으로 다룬다거나 키를 다루는데 있어서 캐릭터의 키를 Mirror시켜 복사해 줄수도 있고, 다른 위치의 애니메이션 클립 사이를 부드럽게 전환 하는 등 여러가지 면으로 Motion Builder는 대단히 유용합니다...
그래서 꼭 다뤄볼 필요가 있다는 생각에 포스트를 작성하게 되었습니다...
 
유용성에 대해서 간단히 정리해 보자면,
인간형 캐릭터(2팔, 2다리, 몸통, 머리)를 애니메이트 하기 위해 필요한 것은 다음과 같겠죠.
1.  Joint구성
2. 컨트롤러 등을 부착하고 세팅하는 캐릭터리깅
3. Skining ,필요하다면 Muscle도 부착할 수 있을 것이구요...
4. 각종 Deformer
5. Animating
 
여기에서 HIK를 이용하면, Joint구성, 캐릭터리깅과 Animating을 대단히 쉽고, 특히 빠르게 작업할 수 있는 점이 장점입니다.
앞서 포스트들에서 Joint구성하고 Control 하는 것을 이미 다루었기에 여기에서 다시 거론하지는 않을 것입니다.
 
그런데 게임용 캐릭터로 이러한 과정으로 애니메이팅까지 작업해 보고나서 알게된 점들을 이 포스트에서 다루어 보려고 하는 것입니다...
 
우선 저의 작업은 Maya에서 HIK를 이용해 캐릭터모델에 맞게 Skeleton을 구성하고서 Control Rig를 부여해서(앞서 포스트에서 처럼 이 두 과정은 몇 번의 클릭과 수치 들을 수정해 주는 정도로 빠르게 작업해 낼 수 있습니다.
 
그러고 나서는 Key값이 필요한 Controller에 Character set을 부여해서 한 번에 키들을 생성하고 선택하는 등의 작업을 편하게 수행할 수 있도록 했구요...
HIK Control Rig 화면을 켜놓고서 쉽게 Character Rig controller를 선택해 가면서 Key를 주어 애니메이트 작업을 했습니다. 
모두 마야 안에서 이루어진 작업입니다...
HIK의 Character Rig는 FullBody , BodyPart, Selection 의 버튼이 있고, FK/IK를 쉽게 전환할 수 있는 기능을 제공하는데, 특히 FullBody를 켜고서 작업하게 되면, 선택한 컨트롤러의 움직임에 따라 몸 전체에 어느정도의 힘이 적용되서 자동으로 캐릭터의 Pose를 잡게 만드는데, 이는 물론 IK로서 어떤 물체를 잡고 있다거나 캐릭터가 매달려 있는 등의 작업에 매우 유용하게 사용될 수 있는 기능입니다...
이러한 기능을 직접 Character Rigging작업으로 만들어내려면 꽤나 시간을 들여야 하고, HIK처럼 직관적인 UI까지 생성하려면, 더 더욱 시간과 노력을 들여야만 할 것입니다.
 
다만 문제는 이것으로 인해서 발생하게 되는데, 우선 Maya2012 버전에서 HIK로서 이러한 작업을 수행할 때, 앞서서 댓글 등에서도 언급했지만, 다시 한 번 언급하자면,
 
HIK는 3가지가 복합되어 구성되어 있는 것을 보실 수가 있는데, 우선 Skeleton이 있구요... 이것은 물론 캐릭터에 Skining되어 직접 캐릭터를 변형합니다...
다음은 FK 컨트롤러로서 Skeleton은 아닌데, HIK안에서 그런식으로 보이도록 만들어져 있습니다... 이것을 움직이고, 회전시켜서 Skeleton을 변형시켜 Pose를 잡는 것이죠...
또 IK가 있는데 이것은 일반적으로 Maya에서 직접 Rig를 구성할 때처럼 Circle과 Locator처럼 생겼습니다...
FullBody에서는 이 두 힘이 서로 작용해서 Skeleton의 Pose를 잡도록 만들어져 있습니다.
물론 FK로 작업하는 부분은 IK컨트롤러가 자동으로 FK의 움직임을 따라오게 되어 있고, 반대로 IK로 작업하는 다리같은 부분은 FK가 IK를 따르도록 되어 있기는 합니다만...
제가 작업하면서 보면, 두 가지가 서로 Skeleton을 변형하는데 힘을 미치는 것으로 보입니다...
이로 인해서 문제가 발생됩니다... 특히 FullBody같이 특정부분의 IK 컨트롤이 그 한계 이상의 움직입일 때 몸 전체를 움직이도록 만드는 경우에는 더더욱이나... (글로는 어렵습니다... 직접 Maya에서 HIK로 Skeleton과 Control Rig만 붙여서 움직여 보시면 쉽게 알 수 있습니다.)
 
우선 Maya2012버전에서 작업을 해보면, IK컨트롤러와 FK컨트롤러의 위치,회전이 서로 일치되어 있고, 이것이 Skeleton위의 해당위치에 정확히 있어야하는게 당연한데 그렇지가 않습니다...
보면, FK컨트롤러는 FK컨트롤러대로 , IK는 IK대로 따로 있고, Skeleton은 그렇게 두가지가 영향을 끼치는 사이에 위치, 회전 되어 있는 것으로 보입니다...
대략적인 pose를 잡고, animate하기에는 문제가 없을 수도 있지만, 정확하게 발을 디딘다거나 물건을 잡는다거나 하는 Animation을 작업하기엔 문제가 큽니다...
그래서 제가 앞서의 post에서 Fullbody로 큰 pose를 잡고, Selection으로 전환에서 디테일 작업을 하는 방법을 말씀드렸지만... 사실 여전히 문제는 많습니다...
저도 이런 수준으로 만들어 놓았다면, 실제 애니메이션 스튜디오나 게임스튜디오에서 어떻게 이걸 쓰는지 이해할 수가 없었습니다... 그래서 이게 많이 알려지지 않은건가 하는 생각도 했던게 사실 이구요...
그 이후로도 Google에서 제가 모르는 부분이 있어서 그런가 검색도 해보고 튜토리얼도 찾아봤는데요...
외국의 Forum등에서는 Refresh 문제라고, 말들을 하는데, FK,IK컨트롤러가 작업하려고 움직였을 때, 실시간으로 view에서 업데이트 되어야 하는데, 그렇지를 못하다는 것이죠...
많은 사람들이 왜 이걸 못고치는지 모르겠단 포스트를 달기도 하고, 이미 오래전에 mobu에선 되는데 Maya에선 안된다고 이해할 수 없단 얘기도 하곤합니다...
그래서 mobu가 도대체 뭔가 의문이 생겼습니다... 얘기로는 이게 HIK의 전신이거나 HIK가 여기서 나온것 같은 분위기더군요...
그래서 이게 오래전에 누군가 개발한 플러그인인데 HIK가 여기서 파생된 건가 하는 생각이 들었습니다만... 곧 알게 돼었습니다 ^^ Mobu가 Motion Builder를 약자로 쓴 것 같더군요... ㅎㅎㅎ
 
그래서 궁금해졌습니다... motion builder라면 전에 FilmBox가 이걸로 이름이 바뀌었고, 지금은 패키지로 Maya, MudBox등과 같이 포함되어 판매되는 CG어플이니까요...
사실 설치는 돼어 있어도 거의 써보질 않았습니다...
 
그러다가 Maya2013에서 같은 캐릭터를 한 번 작업해 봤는데, 여기서는 리프레쉬가 완벽하게 됩니다... Maya2013에서 바뀐건지 Maya2013.5에서 바뀐건지는 몰라도 최신의 Maya에서는 FK,IK컨트롤러와 Skeleton이 완벽하게 같이 붙어다닙니다...
그래서 이제 Motion builder의 기술을 적용해서 Maya안에서도 HIK가 해결되었나보다 생각했습니다... 사실 HIK는 Motion Builder와 같이 연계하기 위한 중요한 도구이니까요...
그래서 얼른 같은 캐릭터를 Maya2013에서 작업해 보았습니다만...
우선 앞서 리프레쉬가 실시간으로 잘 됨으로써 작업에 문제가 없습니다...
FK, IK 를 Fullbody상태에서 컨트롤해서 쉽게 pose를 만들어내고 Key를 주어서 간단한 애니메이션을 만들고 플레이를 해 봤습니다만...
 
여기서 문제가 발생하더군요... 키를 준 프레임에서는 잘 됩니다만... 중간의 보간된 부분에서는 예상 밖의 포즈를 보인다는 것입니다... 특히 허리를 이상한 방향으로 구부리고 있거나 하는 등 말이죠..
제가 아직 잘 모르는 컨트롤 법이 있는 것인지는 모르겠습니다만... 여전히 문제가 있는 건 아닌가 의심해봅니다...
사실 HIK는 Motion builder를 위한 것이니까요...
'Motion builder는 모션캡쳐를 사용할 때, 이용하는 툴' 이라고 생각하기도 하는데, 여기서 Maya에서 하는 Key작업을 다 할 수 있고, Cycle되는 애니메이션을 만들 때, 몸의 root 컨트롤러를 기준으로 오른편과 왼편을 mirror시켜 키를 복사하는 등 흥미로운 기능이 많습니다... 애니메이팅만을 위한 툴이니만큼 당연하겠죠...
이렇게 motion builder를 사용해 HIK를 애니메이트 한다면, 여기서는 제대로 되는 것인가 싶어 해당 캐릭터를 motion builder로 import시켜서 애니메이트 작업을 잠깐 해봤는데, 전혀 문제가 없네요... ^^ 키를 주지 않았던 프레임에서도 잘 보간되어 움직이고 말이죠...
게다가 Gimble lock문제도 해결되어 보이고(요즘은 거의 문제되어 보이진 않지만), 글로벌좌표로 회전, 로컬좌표로 회전에 더해서, Rotate Around 라고 View를 기준으로 회전도 가능하네요...
앞서서 말씀드렸듯이 클립이라거나 클립사이에 위치를 맞춰주기 위한 기능들도 뛰어나고, 키프레임애니메이션을 하기에도 참 좋습니다...
Maya와는 File > Send to Motion Builder(Maya 상에서) File > Send to Maya (Motion Builder상에서) 를 사용하고  둘을 모두 오픈한 상태에서 서로 전환해 가면서 작업할 수 있도록 되어 있어서 유용합니다만...
한가지 Motion builder와 Maya가 서로 완벽하게 한 툴처럼 작동하는 것은 아니고, FBX파일로서 서로 호환되는 것이어서인지, Maya상에서 봤을 때, 작업한 Key중 FK 컨트롤러는 Bake된 것처럼 매 프레임마다 키가 입혀져 있습니다... 이것 때문에 Maya에서는 문제가 되었던 키 사이의 보간문제가 해결되는 것으로 보이긴 합니다만...
 
제 나름의 결론은 HIK는 Motion Builder와 함께 사용해야 할 것으로 생각되는데, Motion builder가 Key frame 애니메이팅을 하기에도 상당히 유용하므로 Maya에서 HIK를 쓰고, Motion builder에서 애니메이팅을 하면, 매우 쉽고, 빠르게 인간형 캐릭터 애니메이션을 제작할 수 있다는 것입니다.
 
물론 인간형 캐릭터가 아닌 경우 4족 캐릭터 까지도 HIK를 이용 할 수도 있긴 한데, 다족 캐릭터나 인간형에서 많이 벗어난 캐릭터라면, 직접 Skeleton과 Rigging을 해야 겠지만요...
 
특히 Motion Builder Maya와 인터페이스, 단축키 및 작업 방식이 크게 다르지 않아서 정말 배울만한 툴이라고 생각됩니다...
간단히 필요한 기능들만 배워서 사용할 수도 있구요...
더 나아가면 Ragdoll 같은 물리효과를 캐릭터에 적용시키는 애니메이팅도 쉽게 할 수가 있습니다.

















 

댓글 없음:

댓글 쓰기