박하의 나날

(07.23)mecanim, animator

프로그래밍/Unity

 

메카님.

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

 

 

무료로 받을수 있는 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에 넣어주고 조건설정 후, 스크립트넣어주면 끝.