Thursday, June 17, 2010

global 좌표를 특정 오브젝트의 local 좌표로 변환하는 법

float $v[]=`getAttr $attr`;
matrix $mat[4][4]=<<$v[0], $v[1], $v[2], $v[3]; $v[4], $v[5], $v[6], $v[7]; $v[8], $v[9], $v[10], $v[11]; $v[12], $v[13], $v[14], $v[15]>>;
return $mat;
}

// Multiply the vector v by the 4x4 matrix m, this is probably
// already in mel but I cant find it.
proc vector myVecMult(vector $v, matrix $m){
matrix $v1[1][4]=<<$v.x, $v.y, $v.z, 1>>;
matrix $v2[1][4]=$v1*$m;
return <<$v2[0][0], $v2[0][1], $v2[0][2]>>;
}

matrix $mat[4][4] = myGetMatrix("pPlane2.worldInverseMatrix");
print $mat;
$v = <<0, 24, -7>>;
$result = myVecMult($v, $mat);
코드 출처 : Convert a 3d point to 2d Screen Space in Maya
키워드 : MBM://100617global 좌표를 특정 오브젝트의 local 좌표로.html

Wednesday, June 16, 2010

MEL 관련 링크

THE FX - Community of FX enthusiasts
Hey! You have found us!
THEFX is a place where people can discuss FX related subjects, particle fx, fluid simulations, scripting, programming fx plugins and etc. Once you sign up you can reply to posts, create new topics, download scene files, attachments in posts, interact with others.

3-4-5 직각삼각형과 7-24-25 직각삼각형

각 변이 3:4:5 로 돼있는 직각삼각형은 각이 약 36.87 도이므로
이 각도의 cos sin 값은 각각 4/5, 3/5 라는, 딱 떨어지는 값을 갖는다.

36.87 도를 두번 돌린 각은 73.74 도인데
이 각 역시 cos sin 값이 각각 7/25, 24/25 라는, 딱 떨어지는 값을 갖는다.

다음 그림을 보면 쉽게 증명될 수 있다.



이 삼각형의 이러한 특징은 두번 rotate 되었을때 또는
세 오브젝트가 parent-child 관계로 이어져 있을 때
테스트에 유용하게 쓸 수 있다.

요약 :
3-4-5 삼각형이 이루는 각도는 36.87 도
이 각을 두배 하면 73.74도가 됨 (36.87 x 2 = 73.74)
그런데 73.74 도는 7-24-25 삼각형이 이루는 각도

cos 36.87도 = 4/5 = 0.8
sin 36.87도 = 3/5 = 0.6

cos 73.74도 = 7/25 = 0.28
sin 73.74도 = 24/25 = 0.96

inverseMatrix 구하는 법

질문 : 특정 오브젝트의 inverse matrix 를 얻어내려면?
요약 : 다음 attribute 를 이용하면 된다.
getAttr obj.inverseMatrix // 오브젝트의 inverse
getAttr obj.worldInverseMatrix // 오브젝트의 월드에 대한 inverse
getAttr obj.parentInverseMatrix // parent의 inverse

다음은 직접 해본 것. 다음을 보면 각각의 역할을 알 수 있다.





설명 :
출처
You could also use getAttr on the inverseMatrix, worldInverseMatrix or parentInverseMatrix attributes of the transform node (actually they're attributes of the dagNode node, but they're passed on by inheritance to the transform node). If that's too limited, there's a script on www.highend3d.com called Matrix Playground, it has procedures for all sorts of stuff that you can do with matrices, just make sure you get the dependant procedures as well (Determinant and Adjoint are needed to calculate the inverse).

Maya의 Transform Matrix 계산

Maya의 Transform Matrix 는 처음에는 어렵게 느껴지지만
찬찬히 살펴보면 이해하기 어렵진 않다.
레퍼런스를 어떤것부터 보아야 하나가 막막할 수 있는데 그것은
마야 help 의 xform 설명부터 보면 된다.

트랜스폼 관련해서 만능의 스위스칼 같은 mel 함수는 xform 이다.
따라서 xform command 를 Help 에서 찾아보면,
마야 오브젝트의 transform matrix 가 어떻게 되어 있는지 알 수 있다.

xform 설명을 보면 보통 컴퓨터 그래픽스 convention 처럼
가로로 된 벡터 (x, y, z) 뒤에 4x4 matrix 를 곱하는 방식임을 알 수 있다.
오리지날 help 에서는 레이아웃이 깨져서 위쪽에 알수 없는 -1 이 위치해있으므로 다음과 같이 제대로 고쳐보았다.





다음은 rotation 을 하는 경우를 보여준다.


다음은 scale 이 포함된 경우이다.


다음은 translation 이 포함된 경우.


키워드 : matrix, rotation, translation, translate, rotate

각도, degree, radian, sin, cos, 삼각함수 등 기초 복습 및 기초수치 암기

이 포스트의 목적 :
1. degree와 radian
2. sin, cos 등 삼각함수
복습 및 기초수치 암기

필요성
라디안이 무엇인지 안쓰다보면 쉽게 잊어버린다.
그리고 사인 코사인 값도 안쓰다보면 쉽게 잊어버린다.
그러나 3D 에서 회전 관련 다룰 때 간단한 수치 정도는 기억하는 것이 좋다.
그래야 수치를 볼 때 쉽게 감을 잡을 수 있고
테스트 등을 할때 이게 맞는 값인지 금방 알아채는데 유용하다.

Radian의 정의
Radian 이란, radius(반지름)가 1 인 원에 대하여,
arc(원주) 상을 1 만큼 간 각도를 말한다.



Radian의 기초수치
60도는 약 1.05 라디안이다.
60도가 약 1 라디안인 것은 당연하다.
정삼각형의 형태를 생각해보면 모든 변이 다 같기 때문에,
arc와 radius의 길이는 대략 일치하는 것이다.

180도는 약 3.14 라디안이다.
1 라디안인 60도가 세 번 모였으므로,
180도는 약 3 라디안이 된다.
오래 각도 계산을 안하다보면 180도가 3.14인지 360도가 3.14인지 기억이 안날 때가 있는데
이렇게 기억하면 좋다.

60도는 약 1 라디안이므로
6도는 약 0.1 라디안이 된다.
실제로 6도는 약 0.1047 라디안이다.

Radian 변환 함수
Microsoft Excel 에서 radian/degree 변환하는 함수는 다음과 같다.
Apple의 Pages 에서도 함수명은 동일하다.
=RADIANS()
=DEGREES()

3-4-5 직각삼각형
각 변이 3, 4, 5 인 직각삼각형은 값이 딱딱 떨어지므로 테스트 시에 유용하다.
이 삼각형의 가장 작은 각도(즉 길이가 4인 변과 5인 변이 이루는 각도)는 약 36.87도이다.
이 값을 외워두면, 테스트 시에 정말 편하다.



36.87도는 0.6435 라디안이다.
꼭 암기할 필요는 없지만, 이 값도 기억하면 편리하다.

쉽게 감을 잡으려면 다음과 같이 생각하면 된다.
30도는 약 0.5 라디안이고 60도는 약 1 라디안,
그리고 6도가 약 0.1 라디안이므로,
36도는 약 0.6 가량이 되는 것이다.

sin(36.87도) = 약 0.6000 이다.
cos(36.87도) = 약 0.8000 이다.
tan(36.87도) = 약 0.7500 이다.

3-4-5 인 직각삼각형이므로, 이렇게 값이 떨어지는 것은 당연하다.

7-24-25 직각삼각형
이는 다음 링크를 참조하자
3-4-5 직각삼각형과 7-24-25 직각삼각형

36-24 직각삼각형
가로 36mm, 세로 24mm 직각삼각형의 대각선 길이는
43.2666mm 이다.

레퍼런스
MBM://35mm Equivalent focal length(35mm 환산값) 실제 촬영으로 확인하는 방법.png

Sunday, June 6, 2010

After Effects 로 얼굴 모자이크 처리 하는 법

질문 : After Effects 로 얼굴 모자이크 처리 하는 법?

답 :
1. 얼굴 부분에 모자이크를 하고자 하는 레이어 위에 Adjustment Layer 를 만든다.
2. Adjustment Layer 를 선택하고 Mask 를 만든다.
3. Adjustment Layer 에 Effect > Stylize > Mosaic 를 적용하면 이제 그 부분이 모자이크 될것임
4. Mask 가 얼굴을 따라가도록 애니메이션해준다. 이는 mocha 등의 tracking 소프트웨어 이용하면 됨

레퍼런스 :
http://forums.creativecow.net/thread/202/881571

본문 중에서 :

Blurring face in After Effects CS4

There are a few ways to do that:
Option A) Create an adjustment layer above the layer you want to blur, animate an ellipse mask to cover the face, and apply blur to the adjustment layer.
Option B) Duplicate the layer which contains the face, on the top layer add the ellipse mask and animate it over the face, apply blur to the top layer.

* you can also try track mattes
* in case there are several faces to blur, create mask per face and animate each, make sure all masks mode is set to "Add"

Wednesday, May 19, 2010

Maya에서 Pivot 변경할때 insert 키 없는 경우 어떻게 하나

질문 : Maya를 Mac 에서 쓸때 Pivot 변경할때 insert 키 없다면 어떻게 하나
답 : Insert 키 대신 Fn + Left 를 사용하면 됨. (Home 버튼임)
근본적인 해결법은 numeric keypad 가 있는 키보드를 쓰는 것
(Mac Pro 를 쓰면 딸려오는 그것)

Monday, May 17, 2010

Human Vision

카메라에서 focal length 가 이미지의 diagonal 길이와 같으면
diagonal field of view 가 53도 가량이 되는데
이렇게 되면 사람의 field of view 와 비슷해진다.

부연
tan(53/2°) = 0.49858 이 되어 거의 1/2 이 됨.

보통, 인간의 눈이 갖는 field of view 는 딱 떨어지게 구할 수 있는 것이 아니지만
계산 편의상 53도로 보는 것임
http://en.wikipedia.org/wiki/Visual_field

Tuesday, May 11, 2010

Monday, May 10, 2010

Diagonal 구하는 피타고라스 공식 쉽게 구하는 법

필요성 :
예를 들어 사진의 가로가 36 mm 이고 세로가 24 mm 일때 대각선은 얼마냐?
라고 물으면 제곱 계산을 두번이나 해야 하는데다가
square root 계산도 해야 하므로 계산기를 두드려야만 하므로 불편하다.

해결책 (Pythagorean Approximation):
계산기를 두드릴 때 두드리더라도 대충 얼마인지 감은 잡고 싶을 경우,
Pythagorean Approximation 이라는 공식이 있다.

이 공식을 이용하면 sqrt 계산 없이 쉽게 diagonal 길이 값을 적은 오차로 계산할 수 있다.

(diagonal side) = (longer side) * 7/8 + (shorter side) / 2

예를 들어 긴 변이 8, 짧은 변이 6인 사각형의 대각선 길이를 이 공식으로 구하면,
8 에 7/8을 곱하면 7 이고
6 의 절반은 3 이므로
이 둘을 더하면 10 이 된다.
즉 대각선의 길이는 10 으로 계산된다.

이 경우는 운좋게 정확한 값이 얻어졌는데
다른 경우에 대해서도 별 큰 오차 없이 값이 얻어지므로 매우 유용하다.

이것은 0, 45, 90 도에 가까운 각도의 삼각형에 대해서 매우 작은 오차를 보인다고 한다.
실제 계산은 컴퓨터로 하더라도 쉽게 감잡기 위한 공식으로 좋다.

감 잡기 좋은 공식:
7/8 을 곱하는 것은 힘드니까 그냥 긴 변의 길이에서 1/10 을 빼는 방식으로 계산해도 된다.

쉽게 생각한다면,
긴 변에서 10분의 1 정도를 빼준 후 짧은 변 길이의 반을 더하면 대각선 길이가 된다
라고 기억해주면 아주 쉽게 감이 잡힐 것이다.

계산 예:
35mm 필름 사진을 예로 들어보자.
35mm 필름 포맷은 8 perforation 에 38mm 의 길이이며 이는 영화 필름이나 사진 필름이나 똑같다. 사진필름의 경우 8 perforation 에 하나의 사진이 찍히며 각 사진은 2mm 씩의 갭을 두므로 사진의 가로 길이는 38 mm - 2 mm = 36 mm 가 되고, 세로 길이는 perforation 영역을 제하고 약 24 mm 가 된다.

즉 가로 36mm, 세로 24mm 의 3:2 aspect ratio 를 가진 사진이 바로 보통의 필름사진이 되는 것이다.
그럼 이 사진의 대각선 길이를 계산해보자. 우선 36mm 에서 1/8 을 빼줘야 하는데 계산이 어려우므로 그냥 1/10 보다 좀 큰 값 정도를 빼준다고 가정해보자. 그러면 3.6mm 보다 좀 큰 값 즉 4 mm 를 빼면 되므로 32 mm 가 되고, 24 mm 의 절반은 12 mm 가 되므로 이들을 더하면 32 + 12 = 44 즉 44 mm 가 대략의 대각선의 길이가 된다.

실제 피타고라스의 정리를 써서 정확한 값을 계산하면 43.27 mm 정도가 나오고
Pythagorean Approximation 공식을 써서 계산하면 43.5 mm 가 나오므로
44 mm 라는 대략의 값은 꽤 근접한 값이라 볼 수 있다.

레퍼런스 : Pythagorean Approximation

Saturday, May 8, 2010

Vilppu Anatomy 강좌 DVD

http://www.vilppustore.com/anatdvd.htm

Drawing Anatomy Lecture Series Set (15 DVD's included)
  1. Head Anatomy and Construction, Pt 1
  2. Head Anatomy and Construction, Pt 2
  3. Head Anatomy and Construction, Pt 3
  4. Head Drawing Demonstration, Pt 2
  5. Head Drawing Demonstration, Pt 3 and Expressions
  6. Anatomy of the Feet
  7. Anatomy of the Neck
  8. Anatomy of the Upper Torso
  9. Anatomy of the Pelvis
  10. Anatomy of the Upper Leg
  11. Anatomy of the Lower Leg
  12. Anatomy of the Upper Arm
  13. Anatomy of the Lower Arm
  14. Anatomy of the Hand
  15. Proportions

Wednesday, May 5, 2010

Monday, May 3, 2010

Maya Live 사용법

1. 준비작업
Maya Live 띄우기 (Plug in Manager 에서 Maya Live 에 체크)
New Matchmove 시작하기 (Scene > New Matchmove)
Image sequence 로드하기 (밑의 Full Res Image > Browse 해서 image sequence 로딩)

2. Tracking : 이 단계에서는 2D 트래킹 결과를 얻는다.
Ready to Track 이라고 돼있는 green button 누름
Track UI 로 만든 후
Track할 지점을 선택하고 Direction 은 forward 로 해서
Start Track 함.
그러면 키프레임이 생김.
키프레임이 중간까지만 생겼다면 뭔가 중간에 트래킹이 실패했다는 이야기.
그럴때는 대체로 실패한 곳부터 다시 시작하면 잘됨. 또는 Direction을 거꾸로 해서 트래킹하거나.

3. Solve 하기 : 이 단계에서는 카메라 움직임과 3D tracker 를 얻어낸다.
Solve를 위해서는 Filmback과 focal length 를 설정해주어야 한다.

Filmback은 실사 footage 와 aspect ratio 가 같은 것으로 선택하면 되고
focal length 는 실사와 angle of view 가 같도록 해주면 된다.

Maya Film Back 의 focal length 계산법
을 참조해서 Maya 카메라의 Film Back에서 focal length 를 입력해주고
Solve 해줌.

4. Survey

(쓰는중)

5. 결과 테스트

키워드 : (강의정리) 091219 Maya Live/Maya Live Motion Tracking Tutorial

Maya에서 FBIK 적용하는 프로세스

조인트 심고 나서 FBIK 적용하는 프로세스는 다음과 같다.
  1. 캐릭터가 +Z 방향 보게 함
  2. 조인트에 label 보이게 하고 (Skeleton > Joint Labeling > Show All Labels)
  3. 조인트에 label 이름 붙임 (Skeleton > Joint Labeling > Add FBIK Lables 떼어내서 작업)
  4. 조인트에 label 좌우 표시 (Skeleton > Joint Labeling > Add FBIK Lables > Label Left/Right)
  5. Root 선택하고 Skeleton > Full Body IK > Add Full Body IK
  6. 이제 FBIK 가 된다. Pinning 하기도 쉬움. RMB click하면 pinning 관련 옵션이 뜸
키워드 : MBM://(강의정리) Digital Tutors - Full Body IK(FBIK)

Tuesday, April 27, 2010

인체 등 Organic 모델 sculpting 에 필요한 기능 - Soft Selection 등

인체 등 Organic 모델 sculpting 에 필요한 기능

1. Sculpt Geometry Tool
sculpt 할 object 를 선택한 후
Mesh > Sculpt Geometry Tool
하면 됨.

2. Paint Selection Tool
Paint Selection Tool 이라는 것은 버텍스 등을 기존의 select 방식으로 하면
복잡한 organic 모델링이 불가능하기 때문에 도입된 툴이다.
이것만 있으면 모델을 구부리거나 비트는 등의 작업을 쉽게 할 수 있다.
예를 들어 elbow 에서 wrist 까지의 lower arm 부위를 비트는 작업은 이 툴을 이용해서 하면 좋다.
즉 extrude 할 때 curve 를 따라서 하는 등의 기계적인 방식을 쓰지 않아도 된다.

Edit > Paint Selection Tool
하면 Paint Selection Tool 모드가 된다.

이 상태에서
q 누르면 그냥 selection mode 가 되고
g 누르면 다시 Paint Selection Tool 모드가 됨.

일단 Paint Select 한 후, q 눌러 selection mode 로 간 후 b 눌러서 fall off 조절할수 있음.

그냥 칠하면 selection 이 더해지고
Ctrl 누르고 칠하면 지워짐

오른쪽 Attribute Editor 위치에
Option 창이 안보이면 왼쪽의 툴 아이콘을 더블클릭하면 됨

3. Soft Selection
Soft Selection 이라는 것은 특정 툴이 아니라 그냥 selection mode 이다.
selection mode 에서 b 누르면 soft selection 이 토글됨.
selection mode 에서 b 누른 채로 mouse drag 하면 fall off radius 가 커졌다 작아졌다 함.

Sunday, April 25, 2010

Modo Tutorials

Modo Tutorials

Creative COW Library
How modo can make your life easier: Texture Baking
http://library.creativecow.net/articles/mylenium/modo_bake/video-tutorial.php

45 Magnificent Modo Tuts
http://cg.tutsplus.com/articles/web-roundups/tutorial-roundup-45-magnificent-modo-tuts/

Modo tutorials 링크모음
http://terasonic.egloos.com/1812529

키워드 : tutorials