다지랑 놀자♡

set driver set driven 본문

놀이동산/Cinema4D R13

set driver set driven

DAJI 2015. 5. 22. 16:33

Set driver / Set Driven
조절자 / 피조절자

1. torus와 cube를 꺼내보자.
 - torus를 핸들이라 가정하고 torus를 돌렸을때
  cube를 올리고 내릴 수 있도록 만들어보자.
 - 기본적으로 coordinate를 가지고 하는것이 기본
 - 하지만 이렇게 조절자 피조절자의 경우 다른 방법을 사용
 - after effect에서도 키를 주는 방법이 직접 키를 입력하는 방법과
   expression을 사용하는 방법이 있듯이
 - c4d에는 xpresso라는 것이 있다.
  -> RMB -> cinema4d tag -> Xpresso를 이용하게 된다.
 - 지금 해보려는 set driven / set driver는 그 전단계라 보면 됨

2. set driven / set driver 설정
 - torus의 coordinate 중 rotation H -> RMB -> animation
  -> set driver => 조절자
 - 참고로 그 밑에보면 set driven(수동태, 움직임 당함)이 있지민 활성화가 안되어있다.
 - 이것은 조절자가 활성화되어 scene안에서 한번이라도 줘야만 활성화됨.
 - 그렇다면 먼저 torus에 set driver를 설정해준 후

 - cube의 coordinate -> position Y -> RMB -> animation -> 활성화됨
  -> absolute : 절대값 => 조절자와 같은 값으로 움직이게 된다 : 단위가 달라서 적용이 애매함
  -> relative : 상대값 => 조절자가 주어지는 값에 대한 비율로 움직임☆
  -> 여기서는 relative를 사용해보자.

 => torus를 회전시켜보면 cube가 움직이게 된다.

3. layer창을 확인해보자.
 - set driver / set driven을 설정하고 나니 cube에 tag가 추가되어있음.
  -> 이것이 xpresso
  -> double click하여 새로 뜨는 창을 확인해보자.

 - [torus 조절자 / range mapper 조율 / cube 피조절자] 박스들이 보이게 된다.
  -> 연결된 것을 확인해보자.
  -> torus의 rotation H가 range mapper에 들어가서 cube의 position Y
   에 전달해 준 것을 확인할 수 있다.
   ※ range mapper : 값의 범위를 컨트롤함

 - 이러한 구조를 Node구조라고 말한다.
  -> 파란색 : input
  -> 빨간색 : output
     > 클릭하면 다양한 메뉴 있음

 - 현재 adobe의 layer의 구조에 너무도 익숙하지만,
  layer의 원초적인 기반은 이러한 Node 이다.

4. real vs vector
 - 조절자, torus의 회전을 주는것에 비하여 cube의 움직임이 너무 적다고
  생각되서 조절하고 싶은경우
  -> xpresso의 중간 조절값인 range mapper를 click 후 attribute 확인
  -> date type에 보면 real과 vector 가 있다.

 - c4d에 많은 개념이 들어가지는 않지만 기본적으로 개념을 잡아보자

 - real (Float) : 실 수 (0,1,2,-0.1, -1 등 실제 숫자)
 - vector : 함수 (x,y,z 등)

 - 지금 torus에서 값을 주는 것은 각도... 즉 0,1,2,3 등 실제 숫자이다
  -> real로 설정하면 된다.
  -> 하지만 x축 y축 및 scale값 등 혼합하게 될 경우에는 vector로 설정

5. range mapper 속성 계속
 - input range -> degree -> 즉 각도.
  -> torus의 각도를 돌리는 것이기 때문에
 - output range -> zero to hundred : 0~100cm까지

 - Parameter 탭
   지금의 상태로는 torus가 0일때 cube도 0
   torus가 360일때 cube는 100만큼 y축으로 이동

 - cube의 움직이는 범위를 늘려주고 싶으면
   parameter 부분의 output upper의 값을 zero to Thousand 선택하거나 직접 수정하여 올려주면 된다
  -> 500정도 까지 올려보고 확인해보자.

=> 지금은 우리가 set driver / set driven 기능을 통하여
  xpresso를 자동으로 생성시켰지만, 직접 xpresso의 node 구조를
  만들 수 있어야 한다.
  (( particle의 경우에도 xpresso를 사용하게 된다 ))

 


-------------------- @ --------------------

 ★ 톱니바퀴를 만들어보자

1. cylinder로 톱니바퀴를 만들어보자
 - cylinder -> 납짝하게 -> rotation으로 방향을 돌리지 말고
  속성창의 orientation의 변경으로 방향을 맞추어보자
 - rotation segment를 8로 줄여주자
200cm, 100cm, 1, 8, +X

2. 만들어 놓은 cylinder를 복사하여 2배로 키우자
 - scale을 이용하는 것이 아니라 attribute에서 조절해보자
  -> radius : 2배로
  -> segment : 2배로
400cm, 200cm, 1, 16, +X

3. editable 후 톱니바퀴 모양르 만들어보자
 - face 모드로 건너건너 잡아서
 - 작은 톱니바퀴는 총 4개의 면을 extrude로 빼내자
 - 큰 톱니바퀴는 총 8개의 면을 extrude로 빼내자
 - 최초 뽑을 때 겹치지 않도록 빼내자

4. 작은 톱니바퀴를 조절자, 큰 톱니바퀴를 피조절자로 만들자
 - set driver / set driven이 아닌 직접 xpresso를 통하여 만들어보자
 - layer창에서 object 선택 후 RMB -> cinema4d tag -> xpresso
  -> 어떠한 object에 xpresso tag를 달아도 상관없다.
  -> 그렇기에 주로 null을 꺼내서 null에 달아준다.

 - xpresso창에 2개의 object를 drag로 끌어서 놓아주자
  -> 이름과 밑에 빈공간이 있는 박스가 만들어진다.
  -> 빨간 부분은 output 파란부분은 input
  -> 빨간색에서 어떤값을 꺼내서 파란색의 어떤값을 꺼내서 받게되는
    구조가 이루어지게 된다.
  -> 빨간색부분을 click하게되면 메뉴가 뜨는데 우선 어떤값을 빼내고
    어떤값을 빼내서 받게 만들지 perspective에서 확인해보자.

 - 원하는 방향으로 rotation을 돌려보고 H,P,B중 어떤값인지
  확인해보자 > P값

 - 빨간색 부분 click -> 나오는 메뉴들은 모두 attribute에 있는 것
  -> 그중 어떤것을 빼낼지 선택하는 것이다.
  -> coodinate -> rotation -> 확인된 P값 선택
  -> 빨간점과 함께 선택된 메뉴가 빈공간에 나오게 된다.
  -> 이는 output이고 같은 방법으로 파란부분의 input값도 빼내보자.
  -> input과 output을 click & drag로 연결시켜보자
 - perspective에서 확인해보자
  -> 같은 방향으로 돌아가게 된다.
  -> 중간에 뭔가를 껴넣어야만 한다 : 선 끊기 (선을 잡아 뺌)

5. 중간값을 만들어보자
 - set driver / set driven에서 보았던 range mapper를 꺼내보자
 - xpresso의 왼쪽 메뉴 -> x-pool 탭 -> system operator
  -> xpresso -> calculate -> range mapper -> click drag

 - small의 output을 range mapper의 input에
  range mapper의 output을 large의 input에 연결해보자

 - range mapper의 attribute를 확인해보자
  -> set driver / set driven의 경우 자동으로 range mapper의
   속성값들이 설정이 되었지만, 지금처럼 직접 꺼내어 연결하는 경우
   하나하나 수동으로 setting을 해주어야 한다.

 - data type : real
 - input range : degree (회전값이므로)
 - output range : degree (회전값이므로)
 - input lower : 0, input upper : 360
   output lower : 0, output upper : 360
  -> 이상태로라면 이전과 동일하게 같은 방향으로 움직이게 된다.
  -> 반대로 돌아야하는데 크기가 2배니까 값을 어떻게 줘야할까?
  -> 값을 넣어보면서 확인해보록 하자
 - input lower : 0, input upper : 360
   output lower : 180, output upper : 0

 

6. user data and HUD (1)
 - 작업을 할 때 (기업에서) 혼자 모든 것을 하는것이 아니다.
 - 셋팅하는 사람, 모델링하는 사람, 애니메이션 주는 사람, 맴핑,
  랜더러, 합성파트 모두 분화되어 있다.
 - 예를들어 내가 셋팅하는 사람이면 이렇게 작업해서 넘기게 되면
  안된다.
  -> xpresso가 어디있는지 알지도 못하고
  -> 뭘 조절하는지 알 수 없게된다.
  -> 눈에 보이는 무언가를 만들어서 넘겨야 한다.


 ※ Rigger : Rigging 작업
    : perspective 창에서 모든것을 파악할 수 있게 작업해야함


 - character를 하게 되면 지금 이 작업을 rigger라고 한다. (보직)
  -> animator, rigger, modeler, lighter, renderer, compositor
 - 직접 objefct를 잡고 움직이는 경우는 거의 없다.
 - 조절하는 어떠한 것, 즉 controller를 별도로 만들어야한다.

7. user data and HUD (2)
 - 조절할 수 있는 무언가를 만들려면 xpresso의 맨 앞에 뭔가를
  추가시켜줘야 한다.

 ※ User data을 만들어줌 : 탭 생성

 - attribute에 보면 탭으로 basic, coordinate, object, phong 등의
  탭이 있는데, 이 탭을 내가 직접 추가로 만들 수 있다.
  -> 이런때에는 xpresso tag를 넣은 null에 주로 추가한다.
 -  null -> attribute menu -> user data -> add user data
  -> 새로운 창이 뜬다.
  -> name 설정, short name은 별도로 쓸 필요는 없음
  -> data type : float ( = real과 동일한 것, 위에 설명)
  -> interface : float slider
  -> unit : key를 어떤것을 잡느냐에 따라 다르다. 여기서는 degree
  -> Step : 몇(도)씩 움직일지
  -> limit min : 0 , limit max : 360 ~ 720 본인설정
  -> Default Value : 0º ( 0도로 돌아오게함)
  -> 창을 닫고 attribute에 확인해보면 user data 탭이 생성된다.

 ※ 작업창으로 들어가기
    : User data탭 > Rotation > MRB > Edit Entry


8. user data and HUD (3)
 - 만들어놓은 user data를 xpresso에 넣자
  -> user data는 null에 만들었기에 null을 drag로 끌어오자
  -> null의 output 메뉴 중에서 user data를 선택하자
      : 빨간색 MRB>(가장아래)user data>Rotation

 - null의 output과 연결 할 small의 input값을 꺼내야한다
      : 파란색 MRB>Cood.>Rotation>P
  -> small의 input을 output과 동일한 rotation 선택값을 꺼내서 연결

 - 이젠 user data의 slider로 조절이 가능하게 된다.


 - 하지만 이상태로 넘긴다하더라도 user data가 어디에 있으며
  뭘 조절하게 만들었는지 알 수 없게된다.
 - 이를 보여주기 위하여 만들어놓은 user data slider를 perspective
  화면에 꺼내놓아야 한다.
  -> user data의 rotate를 drag로 옮기거나
  -> 또는 rotate -> RMB -> add to HUD
  -> perspective 화면으로 slide control 메뉴 생성

  ->  위치이동 : ctrl + click drag

 - layer창을 선택하면 화면에서 HUD가 사라진다.
  -> HUD -> RMB -> show -> always : 항상 위에 존재, 직접 키 적용 가능
 => setting 완료

 

-------------------- @ --------------------

 ★ Xpresso 연습

1. 세탁기를 간단하게 만들어보자
 - cube를 키워서 세탁기 본체를 만들고
 - cylinder를 키워서 세탁기 안을 만들고
 - 다른 cylinder로 뚜껑을 만들어보자
 - 뚜겅의 축을 한편 뚜껑의 경첩 방향으로 만들어 모델링을 해보자

2. xpresso
 - null을 하나 꺼내서 xpresso를 달자
 - door를 끌어와서 input에 coordinate -> rotation 값을 꺼내자
 - null에 user data 를 만들자
 - data type : float / interface : float slider
 - unit : degree
 - min / max 설정해보자
 - null의  uesr data를  xpresso로 끌어와서 door의 input과 연결하자
 - user data는 add to HUD로 perspective 화면으로 꺼내놓자

3. spline animation을 이용한 camera walking
 - circle을 꺼내서 circle위에 카메라를 설정해보자
 - camera를 target camera로 꺼내서 설정해보자
 - target은 null이 중심에 있으니 재활용하자
 - camera에 align to spline tag를 달아서 circle위에 올리자

4. camera walking 도 user data로 control 해보자
 - null에 있는 user data에 추가하자
 - data type : float / interface : float slider
 - unit / percentage
 - min / max 설정

5. xpresso 연동
 - camera walking도 user data로 만들었으니
  이를 xpresso에 가져와서 연결해보자
 - null의 output에서 user data를 추가하자
 - camera를 xpresso로 가져와서 align to spline을 찾아보자=> 없다
 - align to spline tag를 끌어와야한다.
  -> 값을 주는 것 자체가 align to spline의 값을 조절하는 것이기 때문
 - null의 user data와 align to spline을 연결
 - add to HUD로 perspective에 꺼내자

6. 정리
 - perspective에 지금 뚜껑의 controller와 camera walking의 controller
  2개가 있다.
 - 이를 하나로 묶어보자
 - shift click으로 두개를 한꺼번에 선택 후
  -> RMB -> group 깔끔하게 정리가 가능하게 된다.

728x90
반응형

'놀이동산 > Cinema4D R13' 카테고리의 다른 글

Character Animation  (0) 2015.05.22
Character Rigging  (0) 2015.05.22
spline animation  (0) 2015.05.22
Animation Basic  (0) 2015.05.22
UV layout  (0) 2015.05.22