회원 로그인
|
리깅에 사용되는 Utility Node - Condition Node
리깅에 사용되는 Utility Node
1. multiplyDivide Node
2. plusMinusAverage Node
3. Condition Node
3. Condition Node
사용자가 지정한 조건에 따라 참과 거짓 값을 구할 수 있는 Node이다.
주로 Color, Texture와 같은 Shading에 많이 사용되어 Color항목을 사용하지만, Rigging에서는 조건이 참일 때 선택하는 값이라 생각하면 된다.
예를 들어
Condition (A operation B)
True
ColorIfTrue -> Outcolor
False
ColorIfFalse -> Outcolor 일때,
A의 값과 B의 값을 연산해서('Equal" =, "Not Equal" , "Greater Than" >, "Greater or Equal" >=, "Less Than" <, "Less or Equal" <=) 참인지 거짓인지 확인한다.
A와 B를 연산한 결과가 참이라면 Outcolor로 ColorIfTrue가 선택되고, 만약 거짓이라면 Outcolor로 ColorIfFalse가 선택된다.
* 구성 : condition Node는 6개의 부분으로 이루어져있다.
- 조건의 첫번째와 두번째 항목(First Term, Second Term)
- 조건의 첫번째와 두번째 항목을 연산하는 연산자 (Operation)
- 조건에 참일 때 값과 거짓일 때 값을 정하는 항목 (ColorIfTrue, ColorIfFalse)
- 조건의 최종 값을 출력하는 항목 (Output)
* First Term : 조건의 첫번째 항목을 말한다.
* Second Term : 조건의 두번째 항목을 말한다.
* Operation : 연산자 ('Equal" =, "Not Equal" , "Greater Than" >, "Greater or Equal" >=, "Less Than" <, "Less or Equal" <=)
* Color If True : 조건이 진실일 때 선택되는 칼라 혹은 텍스쳐를 말한다.
* Color If False : 조건이 거짓일 때 선택되는 칼라 혹은 텍스쳐를 말한다.
* Out Color : 결과로써 얻어지는 Output Attribute를 말한다.
* condition Node 예제
부모 joint가 +Y축이 0보다 큰 값으로 회전할 때에는 자식 Joint가 그 값을 그대로 받아 회전하지만, -Y축 회전할 때는 부모 joint 회전량의 반만큼 자식 joint가 회전하는 운동을 condition Node를 이용해 구현해 보겠다.
즉, 부모 joint가 +Y축으로 회전할 때는 자식 joint가 같은 값으로 이동, -Y축으로 이동할 때는 자식 joint가 부모 joint의 반만큼 회전
1. Side View에서 3개의 Joint로 이루어진 Joint Chain을 직선으로 만든다.
2. Mel 커맨드 라인에 createNode multiplyDivide 입력하고 Enter키를 누룬다.
3. Connection Editor를 열고, Right에 multiplyDivide Node를 Reload, Left에 joint1를 Reload 한다.
4. joint1의 RotateY와 multiplyDivide의 input1Y에 연결한다.
5. joint1을 선택하고 Ctrl_A키를 누르고, multiplyDivide탭을 클릭 후 input2Y에 0.5를 입력한다.
* 반만 움직이게 하기 위해 0.5로 설정한다.
6. Mel 커맨드 라인에 createNode condition 입력하고 Enter키를 누룬다.
7. Attribute Editor를 열고 condition Node의 Operation을 Greater Than으로 변경한다.
8. Connection Editor를 열고 condition을 Right에 Reload, joint1를 Left에 Reload하고, joint1의 RotateY를 클릭, condition의 First Term과 Color If TrueG를 클릭하여 연결한다.
9. multiplyDivide1을 선택하여 Left에 Reload하고, Right에 condition1을 Reload한 후 multiplyDivide1 Node의 OutputY와 condition Node에 Color If False의 Color If FalseG에 연결한다.
* Node 선택은 joint1를 선택하고 Attribute Editor를 열어 Node탭을 클릭하여 아래 Select 버튼을 클릭하거나 Mel 커맨드 라인에 select -r Node명을 입력하고 Enter키를 누르면 선택된다.
10. condition Node를 선택하여 Left에 Relaod하고, joint2를 Right에 Reload한 후 Out Color의 Out ColorG와 joint2의 RotateY에 연결한다.
11. joint1을 Rotate tool를 선택하여 +Y축 방향으로 회전해 본다.
* Node 구성
─────────────────────────────────────────────────────
ref. Book - Cartoon Character Modeling & Rigging Maya8 Reality 저자 이성근 (Digital Books) page.213
1. multiplyDivide Node
2. plusMinusAverage Node
3. Condition Node
3. Condition Node
사용자가 지정한 조건에 따라 참과 거짓 값을 구할 수 있는 Node이다.
주로 Color, Texture와 같은 Shading에 많이 사용되어 Color항목을 사용하지만, Rigging에서는 조건이 참일 때 선택하는 값이라 생각하면 된다.
예를 들어
Condition (A operation B)
True
ColorIfTrue -> Outcolor
False
ColorIfFalse -> Outcolor 일때,
A의 값과 B의 값을 연산해서('Equal" =, "Not Equal" , "Greater Than" >, "Greater or Equal" >=, "Less Than" <, "Less or Equal" <=) 참인지 거짓인지 확인한다.
A와 B를 연산한 결과가 참이라면 Outcolor로 ColorIfTrue가 선택되고, 만약 거짓이라면 Outcolor로 ColorIfFalse가 선택된다.
* 구성 : condition Node는 6개의 부분으로 이루어져있다.
- 조건의 첫번째와 두번째 항목(First Term, Second Term)
- 조건의 첫번째와 두번째 항목을 연산하는 연산자 (Operation)
- 조건에 참일 때 값과 거짓일 때 값을 정하는 항목 (ColorIfTrue, ColorIfFalse)
- 조건의 최종 값을 출력하는 항목 (Output)
* First Term : 조건의 첫번째 항목을 말한다.
* Second Term : 조건의 두번째 항목을 말한다.
* Operation : 연산자 ('Equal" =, "Not Equal" , "Greater Than" >, "Greater or Equal" >=, "Less Than" <, "Less or Equal" <=)
* Color If True : 조건이 진실일 때 선택되는 칼라 혹은 텍스쳐를 말한다.
* Color If False : 조건이 거짓일 때 선택되는 칼라 혹은 텍스쳐를 말한다.
* Out Color : 결과로써 얻어지는 Output Attribute를 말한다.
* condition Node 예제
부모 joint가 +Y축이 0보다 큰 값으로 회전할 때에는 자식 Joint가 그 값을 그대로 받아 회전하지만, -Y축 회전할 때는 부모 joint 회전량의 반만큼 자식 joint가 회전하는 운동을 condition Node를 이용해 구현해 보겠다.
즉, 부모 joint가 +Y축으로 회전할 때는 자식 joint가 같은 값으로 이동, -Y축으로 이동할 때는 자식 joint가 부모 joint의 반만큼 회전
1. Side View에서 3개의 Joint로 이루어진 Joint Chain을 직선으로 만든다.
2. Mel 커맨드 라인에 createNode multiplyDivide 입력하고 Enter키를 누룬다.
3. Connection Editor를 열고, Right에 multiplyDivide Node를 Reload, Left에 joint1를 Reload 한다.
4. joint1의 RotateY와 multiplyDivide의 input1Y에 연결한다.
5. joint1을 선택하고 Ctrl_A키를 누르고, multiplyDivide탭을 클릭 후 input2Y에 0.5를 입력한다.
* 반만 움직이게 하기 위해 0.5로 설정한다.
6. Mel 커맨드 라인에 createNode condition 입력하고 Enter키를 누룬다.
7. Attribute Editor를 열고 condition Node의 Operation을 Greater Than으로 변경한다.
8. Connection Editor를 열고 condition을 Right에 Reload, joint1를 Left에 Reload하고, joint1의 RotateY를 클릭, condition의 First Term과 Color If TrueG를 클릭하여 연결한다.
9. multiplyDivide1을 선택하여 Left에 Reload하고, Right에 condition1을 Reload한 후 multiplyDivide1 Node의 OutputY와 condition Node에 Color If False의 Color If FalseG에 연결한다.
* Node 선택은 joint1를 선택하고 Attribute Editor를 열어 Node탭을 클릭하여 아래 Select 버튼을 클릭하거나 Mel 커맨드 라인에 select -r Node명을 입력하고 Enter키를 누르면 선택된다.
10. condition Node를 선택하여 Left에 Relaod하고, joint2를 Right에 Reload한 후 Out Color의 Out ColorG와 joint2의 RotateY에 연결한다.
11. joint1을 Rotate tool를 선택하여 +Y축 방향으로 회전해 본다.
* Node 구성
─────────────────────────────────────────────────────
ref. Book - Cartoon Character Modeling & Rigging Maya8 Reality 저자 이성근 (Digital Books) page.213
- condition.maya8.5.r1.mb (53.4KB) (0)
댓글 0개
| 엮인글 0개
466개(1/24페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
마야 뷰포트 네비게이션 팁 | 푸딩뱃살 | 43451 | 2020.04.06 17:22 | |
Maya 버전 별 Python 버전 | 푸딩뱃살 | 64701 | 2014.01.08 17:59 | |
464 | [Dev] Autodesk Maya Devkit 다운로드 | 푸딩뱃살 | 699 | 2023.01.28 14:28 |
463 | [Base] (해결 중) modules 환경설정 중 | 푸딩뱃살 | 641 | 2022.11.09 11:47 |
462 | [Script] pymel 딕셔너리형 사용 시 KeyError | 푸딩뱃살 | 855 | 2022.11.07 12:08 |
461 | [오류] Building Numpy for Maya Python 2.7.x | 푸딩뱃살 | 595 | 2022.10.23 14:38 |
460 | [Base] 뷰포트에서 조절자가 안 보일때 | 푸딩뱃살 | 777 | 2022.10.13 15:47 |
459 | [Rigging] mirror joints 사용 시 유의 사항 | 푸딩뱃살 | 793 | 2022.10.04 10:46 |
458 | [Script] 2022에서 enum34 모듈 설치 금지 | 푸딩뱃살 | 602 | 2022.08.17 18:08 |
457 | [Script] pymel 예제 | 푸딩뱃살 | 619 | 2022.07.05 19:20 |
456 | [Script] 인코드 / 디코드 - 2.7 한글 사용 | 푸딩뱃살 | 898 | 2022.03.08 17:52 |
455 | [Dev] ui 없이 mayapy로 자동화 | 푸딩뱃살 | 699 | 2022.02.17 13:56 |
454 | [Dev] mayapy로 ui파일 py로 | 푸딩뱃살 | 526 | 2022.02.15 18:20 |
453 | [오류] Error : MayaBonusTools | 푸딩뱃살 | 910 | 2022.01.21 17:52 |
452 | [오류] Error: ModuleNotFoundError | 푸딩뱃살 | 770 | 2022.01.21 16:24 |
451 | [Dev] mayapy | 푸딩뱃살 | 644 | 2022.01.19 20:08 |
450 | [Base] function selCom at 0x7f29c5c04aa0 | 푸딩뱃살 | 609 | 2022.01.19 17:24 |
449 | [Base] wireframe on shaded 단축키 만들기 | 푸딩뱃살 | 911 | 2022.01.04 10:55 |
448 | [오류] OpenCL Error | 푸딩뱃살 | 520 | 2021.12.28 01:40 |
447 | [Script] Easily Translate MEL Commands to Python | 푸딩뱃살 | 824 | 2021.12.02 11:22 |
446 | [Base] output window 띄우지 않기 | 푸딩뱃살 | 820 | 2021.11.24 21:44 |
445 | [Rigging] shapeEditorManager 삭제 안됨 | 푸딩뱃살 | 890 | 2021.11.12 23:30 |