반응형

역관절로 접히는 본셋팅을 만들면서 세가지 컨트롤러 장단점 정리.


구현 영상 

 


1.리액션 매니저(Reaction Manager) 방식

-결론부터 말하자면 별로 추천하지 않는 방식입니다.
셋팅을 하긴 하지만, 깔끔하지 않고 버그가 많으며 예외 상황 발생시 오류 수정이 힘듭니다.

**구현방식

구현 방식은 Master가 되주는 어미본과 Master의 움직임에 의해 반응하게 될 자식본들을 Slave로 설정합니다.

그리고 State1과 State2에서 Master가 몇도 돌아갈때 SLave들이 반응해서 몇도 돌아갈지 수동으로 설정해줍니다.

그런후 Slider에 연결해 주면 위 영상과 결과가 출력됩니다.


 

 

 

2. 와이어 파라미터(Wire Parameter) 방식

- 나쁘지 않은 방식이긴 하지만, 셋팅해야 하는 절차가 많고, 와이어를 잘못 연결했을때 수정이 쉽지 않다는 단점이 있습니다.

**구현방식

상관관계를 이룰 두 본을 와이어 파라미터(Wire Parameter)를 사용하여 서로 연결해 줍니다.

여기서는 마스터가 될 Z회전축과 슬래이브의 Z회전축을 서로 연결해 준 후 마스터 축 곱하기 마이너스 회전이 하도록 셋팅하여 역관절이

발생하도록 셋팅했습니다.

그 다음본도 똑같은 방식으로 와이어로 이어 셋팅해 주면 됩니다.



 

 

 

3. Expression(Script) 방식

가장 셋팅이 간단하고, 수정도 편해서 추천하는 방식입니다.

**구현방식

마스터본은 따로 손 볼 필요없이 슬레이브 본만 셋팅해 주면됩니다.

마스터본의 Z축을 'R'이라는 변수로 선언한뒤 그 변수에 마이너스로 적절한 값을 곱해주면 역관절이 일어납니다.

위에서 플레이 되는 영상이 Expression 방식으로 구현한 화면입니다.

 

 

반응형
반응형

어깨 트위스팅을 해결하기 위해 추가한 2가지 본

 

 

 

셋팅 방식 가이드

 


1.  먼저 세 종류의 보조 더미를 설치하여 방향을 보정하는데 도움을 받아야 합니다.

(1) 어깨 보조 더미를 설치하여 상박 중심 더미를 바라보게 하면서(LooKat Contraint) UpNode 는 어깨의 원본 뼈를 따라가도록 합니다.

(2) 상박 보조 더미를 설치하여 하박을 바라보게 하면서(LooKat Contraint)  UpNode는 어깨 보조 더미를 따라가도록 합니다.

(3) 상박 중심 더미는 상박의 중심에 위치하도록 하고 상박에 링크를 걸어 줍니다.

 

2. 더미설치가 끝나면 어깨 트위스트본과 상박 트위스트본을 만들어 주니다.

(1) 상박 트위스트본을 만들어 오리엔테이션 스크립트를 걸어주고 Biped 상박과 상박 포인트 더미에 각각 3 : 7로 영향을 받도록 셋팅해 줍니다.

- 좌우 측으로 회전 시킬때 회전각에 제한을 주기 위한 셋팅입니다.

(2) 어깨 트위스트본을 만들어 오리엔테이션 스크립트를 걸어주고 상박 트위스트본과 어깨 보조더미에 각각 4 : 6으로 영향을 받도록 셋팅합니다.

- 상하좌우 모든 축에 회전각에 제한을 주기 위한 셋팅입니다.

 

셋팅 완료후 링크 구조정리 - 링크 구조도 정상적으로 맞춰주지 않으면 셋팅이 엉키게 됩니다.




셋업 후 스샷



반응형
반응형

스크립트컨트롤러가 필요한 이유

게임계에 일하는 애니메이터라면 매일 봐야 하는 바이패드..
본으로 셋팅해야 하는 불편을 없애줘
인간형 애니를 잡을때는 정말 훌륭한 툴이지만 인간의 형태를 벗어날수록
한계점이 많은 녀석입니다..


 

 

예를 들면 켄타로우스 처럼 발은 사족이고 상체는 인간형 같은..

 

 

그런 한계점을 없애기 위해서는 바이패드를 여러개 사용하여 다양한 셋팅을 할수 있습니다.
하지만, 바이패드끼리 링크를 걸면 여러가지 버그가 많이 생깁니다.
링크걸린 바이패드가 위치값을 잘못계산하여 다른 위치로 튀는 현상이 매우 빈번히 발생합니다.
또한 링크된 두번째 바이패드에는 IK(Inverse Kinematic)애니를 줄수 없어 모션 작업이 어렵습니다.
(애니메이션 작업을 해보면 알수 있는..)

그 외에도 엄청나게 많은 문제들이 생깁니다.
바이패드 특성상 맥스와 좀 따로 노는 느낌이라 그런지 맥스에서 사용하는 기능들과 상충할때가 많습니다.

이러한 문제를 스크립트 컨트롤러를 활용하여 멀티 바이패드의 여러 문제를 해결할 수 있습니다.

 

스크립트 컨트롤러 셋팅한 바이패드



영상 

 

 

- 바이패드를 세개 이용하여 제작된 셋팅입니다. 뒷다리쪽이 bip01 , 몸통이 bip02, 추가팔이 bip03입니다.

서로 다른 바이패드끼리 한개의 바이패드처럼 작동이 됩니다.

 

위 그림에 셋팅된 스크립트 컨트롤러 정리

if bip01 != undefined and bip02 != undefined then
(
 if bip01.controller.figureMode then
 (
  bip02.controller.figureMode = true
  bip03.controller.figureMode = true
  
  biped.setTransform bip02 #pos dm.transform.pos false
  biped.setTransform bip02 #rotation dm.transform.rotation false
  biped.setTransform bip02 #scale dm.transform.scale false
  
  biped.setTransform bip03 #pos (biped.getTransform bip02 #pos) false
  biped.setTransform bip03 #rotation (biped.getTransform bip02 #rotation) false
  biped.setTransform bip03 #scale (biped.getTransform bip02 #scale) false
  
  biped.setTransform bip03Spine00 #pos (biped.getTransform bip02Spine00 #pos) false
  biped.setTransform bip03Spine00 #rotation (biped.getTransform bip02Spine00 #rotation) false
  biped.setTransform bip03Spine00 #scale (biped.getTransform bip02Spine00 #scale) false
  biped.setTransform bip03Spine01 #rotation (biped.getTransform bip02Spine01 #rotation) false
  biped.setTransform bip03Spine01 #scale (biped.getTransform bip02Spine01 #scale) false
  biped.setTransform bip03Spine02 #rotation (biped.getTransform bip02Spine02 #rotation) false
  biped.setTransform bip03Spine02 #scale (biped.getTransform bip02Spine02 #scale) false
  
 
 )
 else
 (
  bip02.controller.figureMode = false
  bip03.controller.figureMode = false
 )

 bip02.transform = dm.transform
 bip03.transform = bip02.transform
 bip03Spine00.transform = bip02Spine00.transform
 bip03Spine01.transform = bip02Spine01.transform
 bip03Spine02.transform = bip02Spine02.transform 
)

 

 

스크립트 콘트롤러 제어를 통해 배운점

1. 손으로만 가능할거라 생각했던 바이패드 셋팅을 스크립트를 활용한 특수 셋팅을 알게됐습니다.

2. 중간더미를 적절히 사용하지 않으면 여전히 오류가 발생할수 있습니다. 이것은 손으로 셋팅할때도 마찬가지였습니다.

 

반응형

+ Recent posts