1 자습서 마야Maya 강좌 로봇 관절에 관한 애니메이션 팁 Thu May 05, 2011 8:43 am
Admin
Admin
[You must be registered and logged in to see this image.]
[You must be registered and logged in to see this image.]
[You must be registered and logged in to see this image.]
로봇이나 갑옷을 입은 전사와 같은 캐릭터를 만드는 일이 자주 있을 것이다. 하지만 그런 캐릭터에 팔꿈치나 무릎,
발목등에 갑옷을 겹겹이 씌울 때 갑옷을 그냥 뼈대에 parent 시키면 모두 같은 각도로 접혀 자연스러운 관절모양이 안 나오고
그렇다고 딱딱한 갑옷을 Lattice 나 바인드를 쓸수도 없는 노릇이다.
이러한 문제를 간단히 해결할 수 있는 팁을 소개한다.
예를 들어 발목부위에 갑옷을 입힌다고 생각하자.
종아리를 덮고있는 갑옷은 종아리의 뼈대와 똑 같은 각도로 접히고 발을 덮고있는 갑옷은 발의 뼈대와 똑 같은 각도로 접히지만 그 가운데 발목 부위는 종아리와 발이 접히는 각도 중간부위에 위치해야 한다.
이것을 Expression Editor 에 사용할수 있는 스크립 언어식으로 다시 똑같이 설명하면 다음과 같다.
종아리덮고있는갑옷.RotateX = 종아리뼈대.RotateX;
발을덮고있는갑옷.RotateX = 발의뼈대.RotateX;
발목을덮고있는갑옷.RotateX = (종아리뼈대.RotateX + 발의뼈대.RotateX) / 2;
위를 설명하면 다음과 같다.
종아리 뼈대의 Rotate X 값이 종아리를 덮고있는 값옷의 Rotate X 값에 입력되고 발 뼈대의 Rotate X 값이 발을 덮고 있는 갑옷의 Rotate X 값에 입력된다.
그리고 종아리 뼈대와 발의 뼈대의 Rotate 평균값을 구한 후 그것을 발목을 덮고있는 Rotate X 값에 대입하면 발목을 덮고있는 갑옷이 정확히 중간정도가 꺾기게 된다.
그렇다면 발목에 한 개의 갑옷만 아니라 만약 여러 개의 작은 판들이 모여 갑옷을 만들고 있다면 어떻게 할 것인가?
그렇다면 평균값대신에 Rotate 의 % 값을 구하면 된다.
예를 들어 갑옷1 은 90% 꺽기고 값옷2는 80%.. 이런식으로 나간다면
갑옷1.RotateX = 뼈대1.RotateX * 0.9;
갑옷2.RotateX = 뼈대1.RotateX * 0.8;
갑옷3.RotateX = 뼈대1.RotateX * 0.7;
갑옷4.RotateX = 뼈대1.RotateX * 0.6;
이런 식으로 나가면 아무리 여러 개의 갑옷이 겹겹이 있다 하더라도 순서대로 차례차례 접히게 된다.
대략 설명은 이정도로 하고 본격적인 튜토리얼을 하도록 하겠다.
1.위의 튜토리얼용 파일을 받아 연다 (4.5버전).
2.Armo1 을 선택후 W 를 누른뒤 Insert 를 누른다 그리고 난뒤 V 키를 누르고 있는 상태에서 Armo1의 축을 팔꿈치 조인트에 스넵스킨후 다시 insert 를 누른다.
3. Armo2, Armo3, Armo4 도 위와 마찬가지로 축을 팔꿈치 조인트로 스넵시킨다.
4. Window > Animation Editor > Expression Editor 을 연다.
5. Expression Name 에 ElbowSetup_Ex 라고 입력한다. 그리고 밑의 Expresstion 란에 아래의 스크립을 입력한다.
Armo1.rotateZ = joint2.rotateZ * 0.1;
Armo2.rotateZ = joint2.rotateZ * 0.4;
Armo3.rotateZ = joint2.rotateZ * 0.7;
Armo4.rotateZ = joint2.rotateZ * 1;
(맨 마지막의 * 1 은 사실상 어떤숫자에 1을 곱하는 것이므로 * 1은 안써도 무관하다. 하지만 이해를 돕기위해 이곳에선 * 1 을 썼다.)
6. Create 을 누른다.
자.. 이제 joint2 를 Z축으로 회전시켜 보자.
각 갑옷들이 일정한 간격으로 접히는걸 볼수있다.
하지만 Joint1 을 이동시키면 갑옷이 따라가질 않을것이다.
마지막으로 갑옷을 조인트에 연결하자.
모든 Armo 를 선택후에 그릅(Ctrl+G)시킨다.
Armo 그릅을 joint1에 Parent 시킨다.]
[You must be registered and logged in to see this image.]
[You must be registered and logged in to see this image.]
로봇이나 갑옷을 입은 전사와 같은 캐릭터를 만드는 일이 자주 있을 것이다. 하지만 그런 캐릭터에 팔꿈치나 무릎,
발목등에 갑옷을 겹겹이 씌울 때 갑옷을 그냥 뼈대에 parent 시키면 모두 같은 각도로 접혀 자연스러운 관절모양이 안 나오고
그렇다고 딱딱한 갑옷을 Lattice 나 바인드를 쓸수도 없는 노릇이다.
이러한 문제를 간단히 해결할 수 있는 팁을 소개한다.
예를 들어 발목부위에 갑옷을 입힌다고 생각하자.
종아리를 덮고있는 갑옷은 종아리의 뼈대와 똑 같은 각도로 접히고 발을 덮고있는 갑옷은 발의 뼈대와 똑 같은 각도로 접히지만 그 가운데 발목 부위는 종아리와 발이 접히는 각도 중간부위에 위치해야 한다.
이것을 Expression Editor 에 사용할수 있는 스크립 언어식으로 다시 똑같이 설명하면 다음과 같다.
종아리덮고있는갑옷.RotateX = 종아리뼈대.RotateX;
발을덮고있는갑옷.RotateX = 발의뼈대.RotateX;
발목을덮고있는갑옷.RotateX = (종아리뼈대.RotateX + 발의뼈대.RotateX) / 2;
위를 설명하면 다음과 같다.
종아리 뼈대의 Rotate X 값이 종아리를 덮고있는 값옷의 Rotate X 값에 입력되고 발 뼈대의 Rotate X 값이 발을 덮고 있는 갑옷의 Rotate X 값에 입력된다.
그리고 종아리 뼈대와 발의 뼈대의 Rotate 평균값을 구한 후 그것을 발목을 덮고있는 Rotate X 값에 대입하면 발목을 덮고있는 갑옷이 정확히 중간정도가 꺾기게 된다.
그렇다면 발목에 한 개의 갑옷만 아니라 만약 여러 개의 작은 판들이 모여 갑옷을 만들고 있다면 어떻게 할 것인가?
그렇다면 평균값대신에 Rotate 의 % 값을 구하면 된다.
예를 들어 갑옷1 은 90% 꺽기고 값옷2는 80%.. 이런식으로 나간다면
갑옷1.RotateX = 뼈대1.RotateX * 0.9;
갑옷2.RotateX = 뼈대1.RotateX * 0.8;
갑옷3.RotateX = 뼈대1.RotateX * 0.7;
갑옷4.RotateX = 뼈대1.RotateX * 0.6;
이런 식으로 나가면 아무리 여러 개의 갑옷이 겹겹이 있다 하더라도 순서대로 차례차례 접히게 된다.
대략 설명은 이정도로 하고 본격적인 튜토리얼을 하도록 하겠다.
1.위의 튜토리얼용 파일을 받아 연다 (4.5버전).
2.Armo1 을 선택후 W 를 누른뒤 Insert 를 누른다 그리고 난뒤 V 키를 누르고 있는 상태에서 Armo1의 축을 팔꿈치 조인트에 스넵스킨후 다시 insert 를 누른다.
3. Armo2, Armo3, Armo4 도 위와 마찬가지로 축을 팔꿈치 조인트로 스넵시킨다.
4. Window > Animation Editor > Expression Editor 을 연다.
5. Expression Name 에 ElbowSetup_Ex 라고 입력한다. 그리고 밑의 Expresstion 란에 아래의 스크립을 입력한다.
Armo1.rotateZ = joint2.rotateZ * 0.1;
Armo2.rotateZ = joint2.rotateZ * 0.4;
Armo3.rotateZ = joint2.rotateZ * 0.7;
Armo4.rotateZ = joint2.rotateZ * 1;
(맨 마지막의 * 1 은 사실상 어떤숫자에 1을 곱하는 것이므로 * 1은 안써도 무관하다. 하지만 이해를 돕기위해 이곳에선 * 1 을 썼다.)
6. Create 을 누른다.
자.. 이제 joint2 를 Z축으로 회전시켜 보자.
각 갑옷들이 일정한 간격으로 접히는걸 볼수있다.
하지만 Joint1 을 이동시키면 갑옷이 따라가질 않을것이다.
마지막으로 갑옷을 조인트에 연결하자.
모든 Armo 를 선택후에 그릅(Ctrl+G)시킨다.
Armo 그릅을 joint1에 Parent 시킨다.]