|
로프 Stretch Rigging
밧줄과 끈과 같은 prop들의 stretch rigging을 하기 위한 튜토리얼이다.
* 첨부된 예제 파일은 maya 6.5
1. CV Curve로 적당한 위치에 생성한다. (default)
2. CV Curve에 위치 할 수 있도록 joint를 생성한다. (default)
3. IK Spline Handle 옵션에서 Auto Crete Curve를 체크 해제 하고, Outliner에서 shift + 클릭하면 모든 하위 노드가 보이는데 ctrl키로 joint1과 마지막 joint 클릭 마지막으로 spline 클릭하여 joint에 ik spline handle을 적용한다.
4. Curve에 각 vertex에 cluster를 생성한다. (default)
5. 컨트롤 curve를 위치해 준다. (노랑색 : 전체 컨트롤, 파랑색 : stretch 컨트롤, 빨강색 : curve 컨트롤)
이때 stretch 컨트롤들을 한 group으로, curve 컨트롤은 각각 group으로 만들고 이것들을 전체 group으로 만든다.
덤으로 네이밍도 해둔다.
6. 각 stretch 컨트롤들을 순서대로 parent 해준다.
7. 각 위치한 curve 컨트롤과 cluster를 constraint > parent 해준다. (default)
8. 각 위치한 stretch 컨트롤과 curve 컨트롤의 group과 constraint > parent 해준다. (default)
9. IK Spline Curve를 선택하고 Command line에 arclen -ch 1;를 입력하여 curveInfo node를 생성한다.
arclen은 curve의 길이 정보를 알 수 있도록 해준다. (-ch flag의 1은 on과 같은 의미이다.)
10. Window > General Editors > Connection Editor의 Left에 넣어준다.
11. Command line에 createNode multiplyDivide;를 입력하여 multiplyDivide node를 생성하고, Connection Editor의 right에 넣어준다.
12. curveInfor1의 ArcLength와 multiplyDivide1의 Input1 > Input1X와 연결해 준다.
13. multiplyDivide1의 Attribute Editor에서 Operation을 Divide, Input2의 X를 Input1의 X의 수치와 같은 값을 넣는다.
14. 이제 multiplyDivide1의 outputX와 각 joint들의 scaleX과 연결을 한다.
Script Edotor 창을 열고 아래 mel을 입력하여 실행한다.
int $i;
for ($i = 1; $i <= joint의 갯수 -1; $i++) {
connectAttr -force ("multiplyDivide1.outputX") ("joint" + $i + ".scaleX");
}
* joint의 갯수 -1를 확인한다.
15. 전체 컨트롤에 모든 node를 넣어주고 움직여 보면 joint의 이동이 2배로 이동되는 문제가 있는데
IK Spline curve와 cluster의 이동값이 동시에 들어가게 되면서 2배로 이동이 되어진다. 문제는 curve이므로
IK Spline curve의 Attribute Editor에서 Transform Attribute의 Inherits Transform의 체크를 해제하면 된다.
16. joint에 skin(bind)이 들어가면 14번과 같은 문제가 발생하는데 이것도 modeling의 문제가 되므로 해당 modeling의 Ingerits Transform을 체크 해재하면 된다.
- stretch_test_01.mb (203.5KB) (0)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
마야 뷰포트 네비게이션 팁 | 푸딩뱃살 | 42800 | 2020.04.06 17:22 | |
Maya 버전 별 Python 버전 | 푸딩뱃살 | 64114 | 2014.01.08 17:59 | |
124 | [FX] Lesson 1: Creating nCloth collisions Step 2 | artsOne | 2165 | 2008.04.13 17:28 |
123 | [FX] Lesson 1: Creating nCloth collisions Step 1 | artsOne | 2404 | 2008.04.13 16:23 |
122 | [참고] Expression Manual | artsOne | 2243 | 2008.04.13 02:44 |
121 | [Script] MEL 기초 #01 - 기초 (자료형) | artsOne | 3959 | 2008.04.10 00:28 |
120 | [Base] 선택 우선순위 | artsone | 2170 | 2008.04.09 02:47 |
119 | [Script] Python for Maya - 10. polygon vertex random move | artsOne | 4619 | 2008.04.06 23:44 |
118 | [Rigging] Deform > Edit Membership Tool | artsone | 2636 | 2008.04.05 02:28 |
117 | [Rigging] Deform > Wire 활용 | artsone | 2243 | 2008.04.05 02:01 |
116 | [Animation] Bake Simulation | artsone | 1880 | 2008.04.01 23:04 |
>> | [Rigging] 로프 Stretch Rigging | artsone | 2381 | 2008.03.31 21:40 |
114 | [Rigging] Bouncing Ball Rigging | artsone | 2368 | 2008.03.20 23:29 |
113 | [Rigging] bind 후 object가 2배로 움직이는 현상 막기 | artsone | 2126 | 2008.03.08 03:28 |
112 | [Rigging] Lattice와 Rigid bind를 이용한 skinning | artsone | 2641 | 2008.03.08 03:18 |
111 | [Script] Python for Maya - 9. polysmooth 자동 설정 (format 변환) | artsOne | 4421 | 2008.03.05 01:18 |
110 | [Script] Python for Maya - 8. random 응용 (if문) | artsOne | 4733 | 2008.02.27 02:22 |
109 | [Script] Python for Maya - 7. random (for문) | artsone | 4755 | 2008.02.26 01:37 |
108 | [Script] Python for Maya - 6. 리스트 자료 다루기 2 | artsOne | 3836 | 2008.02.23 17:17 |
107 | [Script] Python for Maya - 5. 리스트 자료 다루기 1 | artsOne | 3926 | 2008.02.22 20:27 |
106 | [Script] Python for Maya - 4. set (집합) | artsOne | 4831 | 2008.02.22 17:49 |
105 | [Script] Python for Maya - 3. pickle (지속 모듈-파일 관리) | artsOne | 4807 | 2008.02.21 01:57 |