프로그래밍/Unity

(07.23)mecanim, animator

redjam0123 2017. 3. 20. 01:07

 

메카님.

완벽한 애니메이션 동작이 있을때 사용하는걸 추천. 아니면 사용하지 않는게 낫다.

 

 

무료로 받을수 있는 BaseMale.

 

파일중에 meta 빼고 나머지를 드래그해서 넣어놓고,

 

 

스크립트 작성.

애니메이션이 아닌 애니메이터를 쓴다.

 

 

 

스크립트를 basemale에게 넣어주고

select - rig - 애니메이션 타입: Humanoid 변경.

animations-Import Animation 비활성화

(애니메이터를 사용할거니까)

 

다하고나면 Rig - configure.

configure를 누르면 관절모양의 그림이 뜬다.

오른쪽 관절표시가 되어있는 그림을 보면 원 테두리가 점선인것도 있고, 아닌것도 있는데

이중에 원 테두리가 점선인것은 반드시 필요한 관절은 아니여서 사용여부를 선택할수 있는 부분이다.

그 외에 점선이 아닌 부분은 꼭 필요한 관절부분.

 

옆에 muscle버튼을 누르면 근육이 움직이는 모양새를 미리볼수있다.

다했으면 Done.

 

 

다시 animator.

apply rott motion 활성화.

그다음 애니메이션 컨트롤러를 추가한다.

Create-Animation Controller. 이름바꾸고 더블클릭.

 

애니메이션 컨트롤러의 맨 처음화면.

여기로 base male의 움직이는 동작들을 드래그해서 가져온다.

일단 idle 먼저.

 

 

끌어오면 기존의 entry와 자동으로 화살표 연결이 된다.

다른 동작을 가져오고 싶으면 다른동작을 드래그로 끌어온후

Mouse R - Make Transition을 선택하면 한쪽방향 화살표가 뜬다.

Idle 중에 Run, Run 중에 Idle로 변경되어야 해서 양쪽 모두 연결해주었다.

 

연결 다했으면 화살표를 눌러서 Has Exit time 비활성화.

Has Exit Time 을 활성화 할 경우, 한 동작의 시간이 모두 끝나야 다음 동작으로 넘어간다.

idle 도중 run하고, run 중간에 idle할거니까 양쪽 화살표에서

다 체크를 풀어준다.

 

 

이제 움직여야 하니까 조건을 주어야한다.

일단 필수인 speed.

parameters에서 눈모양 밑에 +표시를 누르면 float, int,~ 중에서 선택하면된다.

speed추가가 끝나면 아까 화살표를 다시 누른후 conditions추가.

 

speed를 누르면 2가지가 뜨는데 예를 들어보면,

speed>=0.1 이면 idle->run

speed<0.1이 되면 run->idle로 바뀌는 것이다.

다음 동작으로 넘어가기 위한 조건을 주는 것! 까먹지말고 꼭 넣자.

다해놓고 안달려서 보니까 이거안넣었더라 ㅠㅠ

 

컨트롤러를 base male에 넣어주고 조건설정 후, 스크립트넣어주면 끝.