다지랑 놀자♡
set driver set driven 본문
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 깔끔하게 정리가 가능하게 된다.
'놀이동산 > 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 |