자. 케릭터의 바이패드 셋팅이 끝났습니다.

혹시 모르게 저질렀을 실수로 다시 작업을 반복하지 않기 위해서, 다시한번 확인하는 꼼꼼함을 가지는게

좋습니다.




어딘가의 바이패드가 어긋나있지는 않은지,

바이패드에 연결시킨 본이 제대로 연결되어 있는지, 바이패드를 움직여보는게 좋습니다.



모두 확인이 끝났다면, 조금 더 본격적인 작업에 들어가봅니다.










바이패드의 셋팅이란  자신이 원하는대로 움직일 케릭터에  '뼈대'를 '위치' 시킨 것이며,

이 다음의 작업이란 이 뼈대와 케릭터를 직접 연결시켜 주는 작업이라고 생각하시면 됩니다.

바로 '리깅'작업입니다.








간단하게 리깅작업의 가능성과 한계에 대해 언급하자면,

애초에 인체란 "" 의 움직임 + "근육"의 움직임

이 두가지의 '복합'적인 움직임이 구현됩니다.


그러나 게임캐릭터, 혹은 애니메이션 캐릭터라 할 지라도 하나의 캐릭터에 뼈와 근육의 움직임을 

'모두' 구현하는 것은, 현재의 컴퓨터 시스템 상 낭비에 가깝습니다. 

당신이 만약 '인체의 움직임을 사실적으로 시뮬레이션 하겠다' 라는 이상적이거나 학문적인 목표를

가지고 있는 것이 아니라면, 뼈와 근육의 움직임 두가지를 모두 사실적으로 구현하는 것은 지나치게 이상적이라고 봐야겠지요.


때문에 현재의 3d 캐릭터의 셋팅이란,

1) 기본적으로 뼈의 움직임을 구현한다

2) 뼈의 움직임 이외에, 부가적으로 표현해야 할 것들을 '몇가지'만  구현한다

  ( 복식이라던가, '조금 더' 사실적인 표현을 위해 몇개의 근육의 움직임을 표현한다던가 ) 


라고 봐도 좋습니다. 

인체의 뼈도 100개가 넘고 근육들의 숫자는... 말할 필요가 없네요.



고로, 리깅은 정해진 목표를 가지고, 한정적인 자원을 사용해서 한정적인 시스템 상에서 구현되어야 합니다.

시뮬레이션 프로그램에서 돌아가는 극 사실적인 캐릭터가 아닌 한, 


리깅의 목적 자체는 '완벽하고 사실적인 움직임을 표현하는 셋팅' 이 아닌,

'필요한 움직임을 표현할 수 있는 적절한 셋팅' 이 됩니다. 














이제부터 할 작업에는 크게 두 종류가 존재합니다.(물론 맥스상에서 지원하는 기능 안에서의 이야기입니다.)

바로 Physique Skin.  이 둘 모두 MAX 에서 지원하는 '기능' 이며, 차이점이 존재합니다.

( 사실 근본적인 차이는 없다고 봐도 좋습니다.)





대략적으로 이야기해보자면,




초창기부터 지원했던 기능이 Physique 이며, 최근 사용되는 기능은 단연코 'skin' 입니다.

물론 skin을 쓴다 하더라도 똑같은 작업자가 똑같은 데이터를 가지고 셋팅했을 시에 skin작업물이 훨 나은 결과물을 낸다는 것은

당연코 아니며, 이 둘은 세부적이고 디테일한 차이를 보일 뿐, 두 기능은 얼추 비슷하다고 봐도 됩니다.



현재 MAX는 Physique을 더이상 업데이트 하지 않고, Skin을 계속해서 업데이트 해나간다고 발표한 듯 합니다.

 - 이제는 스킨을 쓰는것이 대세이며 효율적이라는 뜻이며, 피직은 점차 쓰이지 않게 될 것이라는 뜻이지요 -

- 그러나, 2007 KGC 강연때 들은 이야기, 스킨으로 셋팅한 케릭터의 애니메이션 데이터가 피직보다 큰 모양입니다 'ㅅ';

- 그러나, 애니메이터는 피직, 스킨 모두 사용할 줄 알아야 합니다. 자신이 속할 곳에서, 어떤 것을 사용할지

알 수 없기 때문입니다 - 

- skin의 경우 최근의 캐릭터 데이터 ( 옷을 막 갈아입는다던가 ) 의 추세에 좀 더 '편리한' 기능을 가지고 있습니다.






그러나 저는 피직을 사용했습니다. ( 졸작시에. 현재는 skin만 씁니다. skin의 경우 후반에 다시 다룹니다. ) 







또한 스킨을 사용하고자 한다 해도 자신의 결과물이 보여질 '엔진' 에서 skin 적용한 케릭터를 띄우지 못한다면 ... 


피직을 사용할 수 밖에  없습니다.  스킨과 피직의 선택은 자신의 취향이나 효율성이 아니라,

아직은 그 다음작업에 얽매인다 고 봐도 좋을 듯 합니다.

다음작업에 ( 엔진에 ) 두가지 모두 사용가능할 경우, 그저 선택일 뿐이지만,

또한 캐릭터가 옷도 갈아입고 파츠도 바뀌고 할 경우.. skin을 사용하는 것이 보다 합리적인 선택이 될 듯 합니다.














그럼 피직으로 진행한다는 조건 하에, 리깅작업에  대해서 이야기해봅니다.




[피직의 시작]

준비해놓은 바이패드 셋팅 완료된 케릭터를 불러옵니다.

modify 창에서 physique를 선택합니다.

'attach to node' 를  누르고, 바이패드의 pelvis를 클릭하면 세팅창이 뜹니다.

그 전에,  잠시 피직을 사용할 때 알아야 하는 용어들에 대해서 언급해봅니다.





<용어>

vertex - '점' 입니다. 3d 모델링데이터는 삼각형(사각형) 으로 이루어져 있고, 그 삼각형(사각형)은 '점'으로

             이루어져 있습니다.  우리는 어디까지가 팔이고 어디까지가 손목인지 전!! 혀!! 구분하지 못하는

             컴퓨터를 위해,  모델링 데이터를 구성하는 최소단위인 '점' 의 수준까지 내려가서, 

             일일히  컴퓨터에게 알려주어야  할 필요가 있습니다.

            '이 점은 footBone 이 움직일때 함께 움직이도록 하세요'

            '이 점은 headBone이 움직일때 함께 움직이도록 하세요 ...
'

            라고 지정해주는 일이 바로 Physique 이라고 보시면 됩니다.




Rigid 와 Deform, Root ,Locked Vertex - 피직기능을 사용할 때는, 여러가지 종류의 점을 만나게 됩니다.





Root - 파란색 점입니다. 이 점은 모든 본의 정보를 가지고 있으며, 아직 '넌 저 bone
         에  따라 움직여' 라는  명령을 받지 않은, 초기화 된 점 입니다.  
         -> 즉, 이런 점이 남아있게 하면 안됩니다.

        우리는 모델링 데이터의 모든 점을, 어떤 특정한 뼈에 연결시켜  컨트롤 하는
       것을 원하는 것이기 때문이죠.  이런 파란 점들을 하나도 빠짐없이 찾아서,
       연결시켜 주어야 합니다.

사용자 삽입 이미지

신발 아래쪽에 파란 버텍스가 있습니다.

나머지 점들은 모두 녹색으로 , 어딘가에 연결되어 있습니다.

발을 움직이게 된다면,



사용자 삽입 이미지

따라오지 않아 그 자리를 유지하게 됩니다. 이럼 안됩니다 'ㅅ';






Deform - 빨간색 점입니다. 이 점은 특정 본에 연결된 점입니다. 그러나 이 점은 뼈의 움직임에 따라,

             계산되어 움직입니다. 연결된 본과의 거리에 따라서, 각도에 따라서 계산되어 움직입니다.
             거리와 각도에 따라 계산되어 조금씩 다르게 영향받아 움직이므로, 특정 부위의 점들을

              하나의 본에 Deform 점으로 연결시키면, 좀 더 자연스러운 점의 움직임이 나타날 수 있습니다.
             그러나!!   , 결과물이 나타날 대상을 '게임'으로 한정한다면 Deform 점은 잘 쓰이지 않습니다.
             계산량이 많아지기 때문이죠. 고로, 게임케릭터를 셋팅하신다고 하신다면, 잘 모르셔도 좋습니다.
              (물론 엔진에서 Deform을 지원한다면 이야기는 달라지죠. 하지만 그런 경우는 거~의 없음)




Rigid -  녹색 점입니다.리지드는 '딱딱한' 의 뜻으로 , solid의 반대말...    게임케릭터의 셋업은
             이 'Rigid' 점을 가장 많이 사용하게 될 것입니다. 아마도 가장 많이 보게 될 점의 종류이며,
            아마도 ? 당신이 피직작업을 끝낸 케릭터의 점은  모두!  녹색 점일 가능성이 큽니다.
             Deform 점과는 달리 움직일 때 계산 없이 '단순하게' 움직입니다.

             아래에서 설명할 'Link' 를 적용한다면, 리지드 점은 두가지로 나뉩니다.

            1.연한 녹색의 Ligid Vertex - 하나의 뼈에만 연결된 리지드 점입니다.
            2.진한 녹색의 Ligid Vertex - 2개 이상의 뼈에 연결된 리지드 점입니다.

                                               


Locked Vertex - '잠금기능을 통해 잠겨진 점'입니다.

              점의 설정에 따라 색은 바뀌며, X표시가 아닌 네모 표시가 됩니다.영어 뜻 그대로이죠?
              잠겨진 점은 혹 다시 다른 뼈에 연결시킨다고 하더라도 영향을 받지  않습니다. 말 그대로
             '잠겨있기' 때문입니다.아래에서 설명할 웨이트값 설정은, 잠겨진 점 일 때만 가능하게 되어있습니다.




사용자 삽입 이미지

모든 점이 녹색 Rigid 점으로 셋팅된 케릭터의 모습.




 

Link                         

여기서 말하는 링크는, 점들의 링크입니다. 피직 작업을 초기화(initialize) 할 때, 기본 셋팅을 선택해주게 됩니다.

바로 no blending,, 2 Link , 3 Link, N Link 중 하나를 선택해야 하지요.

저 종류들의 뜻은,   점들을 몇개의 뼈에 연결가능하도록 하게 할 것이냐  - 라는 뜻입니다.

                                 

하나의 점이 만약 하나의 뼈에만 영향을 받는다면, 이렇게 셋팅된 케릭터는 부자연스럽게 움직일 수

밖에 없습니다.


 

 잘 생각해보신다면, 사람의 인체는 매우 자연스럽게 만들어져 있으며, 뼈와 근육의 움직임에 따라

복합적으로 움직입니다. 어깨의 특정 '살'만을 봐도,  쇄골이 움직여도 움직이며, 팔을 앞으로 들어올리거나

옆으로 들어올려도 움직입니다.   유심히 살펴본다면 하나의 뼈에만 영향받게 되는 '살'은, 인체에 없다고

봐도 좋을 것 같습니다.


링크는 많이 쓸 수록 좋습니다. 많이 쓸 수록 사람의 인체에 가깝게 만들 수 있습니다.


 no Blending은  1 Link란 뜻이며, N Link는 말 그대로, 5링크던 9링크던 사용 가능하게 하겠다는 뜻입니다.


                                

그러나 - 링크를 많이 쓸 수록 작업자가 관리하고 작업하기에는 시간이 많이 들 것이며,

 링크 역시 엔진에서 지원해줘야 가능합니다.

                               

 또한 피직 초기화 셋팅창에서 선택하게 되는 링크의 수는 말 그대로 '초기화'시에만 적용되는

링크의 숫자이며  이때 설정한 링크의 숫자가 '고정' 되는 것은 아닙니다.






사용자 삽입 이미지

Physique Initialization 창의 모습.






저는 초기화 셋팅으로 'no blend'로 설정해놓고 초기화 시켰으며,  버텍스단위의 피직작업 도중

                                 3링크 정도까지만 사용했습니다.




Weight -                  

'무게'란 뜻의 단어이군요. 피직작업시 웨이트란, 일종의 '수치' 입니다.

예를 들어 어깨 위의 특정 점을, 3링크로 연결시켰습니다.

바로 팔의 상박 - Upper Arm , 쇄골 - Clavicle ,  상반신 - spine 에 연결했습니다.

                             

고로!  이 점은 단순하게 움직이지 않고 복합적으로 움직입니다.

즉 다른 부분은 가만히 있고  팔만 움직여도 움직이며, 쇄골만 움직여도 움직이며, 상반신만 움직여도 움직입니다

                                

그렇다면, 그 영향력의 설정은 어떻게 해줄까요?  

               

바로 이 웨이트값을 조절하여 설정해줍니다.

웨이트값 설정 창에 들어가시게 되면, (추후 자세하게 다룹니다. 여기서는 간단히)

 UpperArm   - 1.0

 Clavicle     - 1.0

 Spine         - 1.0


이라는 수치를 보실 수 있을 것이며, 현재의 각 값의 비율은 1:1:1 이므로,

그 영향력도 1:1:1이 됩니다.


만약 이 점의 바로 옆에 붙어있는 점은 UpperArm 에 No Blending으로 (1 Link) 연결되어 있다고 하지요.

 그리고 UpperArm을 움직여보도록 합니다.

1 Link로 연결된 점은 UpperArm의 움직임에 100% 영향받아 움직이나

3 Link로 연결된 점은 33% 정도만 영향받아 움직이게 된다는 뜻입니다.


        

주로, 무릎이나 팔꿈치같은, 2개의 뼈가 연결된 사이의 점들은 2링크 점들로 설정하게 되며,

어깨부근이나 골반부근같이 3개 이상의 뼈가 맞물려 있는 복잡한 부근의 점들은 3링크 정도로 설정하게 됩니다.



사용자 삽입 이미지

웨이트값 설정하기






2링크만 쓰더라도 겉보기에 충분히 그럴듯한 사람 몸의 움직임을 표현할 수 있습니다.

보다 많은 링크의 사용은, 제약도 받지만 관리하기도 힘든 양날의 검이기도 합니다.



본의 사용과 마찬가지로 보다 큰 숫자의 링크를 사용하는 것은, 무작정 본을 많이 설치하는 것과 비슷합니다.

그보다는 보다 적은 bone을 사용하고, 보다 적은 링크를 사용하면서 사람과 유사한 케릭터 셋팅을 해내는 것이,

게임용 셋팅에서는 보다 더 의미있는 일 이라고 생각합니다.










 

자. 피직기능을 사용할 때 쓰이는 용어는 대부분 설명한 듯 합니다.

피직기능은 5개의 하위메뉴를 가지고 있습니다. envelope, Vertex,  그리고 그 밖의 3가지.

그 밖의 3가지는 잘 쓰이지 않으며, 고급기능에 속합니다. 이 세가지를 사용하고 싶으시다면
 
다른 책을 참고하시는게 좋을 것 같습니다.

(저는 사용하지 않았기 떄문에 설명해드릴 수 없습니다. )

사용자 삽입 이미지

피직메뉴의 다섯가지.



간략하게 이야기하면, 그 밖의 3가지란, 1. bulge 기능 - 근육과 같은 표현을 설정, 팔을 구부리면 근육이
                                                         튀어나오는 듯 한 셋팅을 해준다

                                                      2. 링크 기능  - 링크선의 세세한 셋팅을 할 수 있다.

                                                     3. tendom 기능 - '힘줄' 표현셋팅이라는데, 잘 모르겠... ('ㅅ' ... )












 

가장 기본적이며 실작업이라고 할 수 있는 메뉴는, envelope, vertex 의 두가지 기능입니다.

envelope-  각 뼈가 가지는 '범위'를 설정해서 '연결' 합니다.

사용자 삽입 이미지


머리본의 Envelope의 모습. 이 크기를 조절해서 뼈와 점을 연결해준다.                 




vertex     -  점 단위로 선택해준 후, 원하는 링크(뼈)를 선택해서 연결해줍니다.
                  가장 세세하게 작업을 할 수 있습니다.

                  게임케릭터의 리깅작업에서는 주로 이 버텍스 단위의 리깅작업이 주가 됩니다.( 아직까지는... )







 

두 기능에는 각자 장단점이 존재하며 어느것을 사용하거나 둘 다 사용하거나, 작업자의 선택입니다.

엔빌롭으로 작업하거나 버텍스로 작업하거나, 결과물은 같은 것으로 알고 있습니다.

(즉, 엔진의 특성을 타지 않는 듯 합니다)





엔빌롭 작업은 선택의 주체가 버텍스가 아니라, 뼈의 영향범위 입니다. 때문에 작업이 큼직큼직합니다.

버텍스 작업은 선택의 주체가 '' 입니다.  모델링 단위의 최소인 '점'을 선택해서 연결하는 ,

노가다스러운 작업입니다.





엔빌롭 작업으로 큼직큼직하게 연결해준 후, 엔빌롭 작업으로 하기 힘든 부분을 버텍스 작업으로 마무리 하거나,

걍 버텍스 작업으로 시작부터 끝까지 진행하거나,  선택은 작업자에게 달려있습니다.





제가 작업했던 케릭터의 대부분은 폴리곤 수 2500~ 5000 정도의 , 약간 어정쩡한 숫자의 케릭터였습니다.

로폴이라고 하기에는 많고, 미드폴.... 의 범주에 들어갈만한, ( 그러나, 게임의 발전상 이정도 숫자가

곧 로폴 케릭터가 되겠지요)




때문에 엔빌롭작업과 버텍스 작업을 병행하려는 계획을 세우고 있었는데, 근처의 지인에게

' 걍 버텍스로만 하세요' 라는 말을 듣고

(......)  시작부터 끝까지 버텍스로만 작업했습니다.  버텍스로만 작업하는 것이 제 성미에도 맞았구요.









피직에 대한 이야기는 대애~충 모두 한 것 같습니다. 감이 잡히시는지 모르겠습니다.

다시한번 정리를 하도록 하지요.



케릭터 셋팅 작업이란 크게 두가지로 나뉩니다.

1. 케릭터의 뼈 셋팅 - 바이패드 셋팅 + 부가적인 본의 추가 

2. 케릭터와 뼈 연결하기 - 피직(or 스킨)기능 사용.   - 엔빌롭으로 작업하기

                                                                        - 버텍스로 작업하기

                                                                         - 원한다면 벌지/텐돔 등의 기능으로 추가 ( 전 사용안했음)


이렇게, 케릭터 셋팅 작업이 끝나고 , 비로소 애니메이션을 하게 됩니다.



다음장에서는 여경케릭터 피직을 실제로 진행해보도록 하지요.




 


Posted by 夢現 和
: