유니티:애니메이션
편집하기
Sam
(
토론
|
기여
)
님의 2021년 8월 12일 (목) 20:33 판
(
→기초개념
)
(
차이
)
← 이전 판
|
최신판
(
차이
) |
다음 판 →
(
차이
)
둘러보기로 이동
검색으로 이동
경고: 이 문서의 오래된 판을 편집하고 있습니다.
이것을 게시하면, 이 판 이후로 바뀐 모든 편집이 사라집니다.
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
{{유니티}} ==개요== 캐릭터가 움직일 때, 점프할 때, 가만히 있을 때의 몸동작이 달라져야 한다. 이를 구현하기 위한 지식. 이 애니메이션들도 역시 스크립트로 제어한다. ===방법=== #애니메이션 추가. #:- 프로젝트 창에서 Create>Animator Controller로 애니메이터 컨트롤러 선택.(Controller는 애니메이션 상태도를 저장하는 에셋이다.) #:- (???)애니메이션들을 하이어라키 창의 대상에 드래그해 넣는다.(애니메이터에서 추가된 애니메이션들을 볼 수 있다.) #애니메이터 열기. #:- 애니메이션을 다루는 창을 연다.(window > animation > animator) #파라미터 추가. #:- 어떤 상태를 판단하는 변수를 추가하는 과정이다. 이 변수는 스크립트에서 다룬다. #:- 애니메이터의 파라미터 창에서 +를 눌러 판단요소를 추가한다.(요소의 스크립트에서 사용할 이름과 똑같이 맞춰야 한다.) #:- 애니메이터의 파라미터에서 추가하면 변수타입을 추가할 수 있다. 특정 상태에서 다른 상태로 변화를 주고자 할 때 변수가 특정 값을 가질 때 state가 변하게 할 수 있다. #:- 변수를 bool형식이 아니라, int형식으로 바꾸면 다양한 상태로의 분기를 만들기 쉽다. #:-- 스크립트에서 파라미터 조작하기. #:클래스에서 전역변수를 정의한다. Animator 변수명; //파라미터를 가져온다. 함수 내에서 변수명 = GetComponent<Animator>(); 변수명.SetBool("애니메이터 안의 매개변수명", 지정할 값); //이 형태로 특정 상태가 발생했을 때 애니메이터 매개변수값을 바꿀 수 있다.<br /> 상태바꾸기를 통해 피격이나 공격이나 다양하게 변화가 가능할 것이다. #트렌지션을 만든다.(박스 우클릭 후 make transition 클릭, 연결할 애니메이션을 클릭한다.) #:- 트렌지션(화살표)를 선택하면 Conditions에 매개변수를 넣을 수 있다. 매개변수의 값에 따라 트렌지션이 발생한다. Has Exit Time : 애니메이션이 끝날 때까지 다음 state로 넘기지 않는다는 옵션. 동작을 즉각 바꿔주어야 할 땐 체크를 해제한다. #condition 지정. #:- 트렌지션의 조건을 지정해준다.(트렌지션 속성 중 condition으로 지정.) 조건은 파라미터 창에 정의된 변수들을 통해 판단한다. #적용. #오브젝트에 애니메이터 컴포넌트 추가. 여기에 애니메이션컨트롤러를 집어넣는다. ==애니메이터로 애니메이션 적용== window>animation>animator 에서 상황에 따라 어떤 애니메이션이 나오게 할지 정할 수 있다. ===기초개념=== {| class="wikitable" |+ !개념 !설명 |- |state |박스 하나하나는 state라고 부른다. |- |Entre |Entre는 맨 처음의 상태. 가장 처음엔 Entry가 보이는데, 이는 가장 처음에 적용할 애니메이션을 적용하라는 의미이다.(일반적으로 Idle 상태와 연결한다.) 마우스우클릭>Set as Layer Default State로 연결할 수 있다. |- |Exit |특정 상태에서 Exit로 연결되면 애니메이션이 완전히 종료된다. |- |Transition |한 상태에서 다음 상태로 넘어가는 조건이다. Make Transition을 통해 다음 상태로의 연결을 할 수 있다. |- |AnyState |어떤 상황에서든 특정 조건이 발생했을 때 바로 애니메이션이 작동하게 하려면.. 피격, 죽음 등에 쓰인다. 이것과 state, exit를 사용하면 된다. |} ===애니메이션 창=== Ctrl + 6 으로 애니메이션 창을 볼 수 있다. 프레임 단위로 애니메이션을 조절할 수 있다. 혹은 애니메이터의 각 state를 선택해 스피드를 조절할 수 있다. Loop Time 이걸 풀어주면 1회만 실행된다. =각종 동작 구현= ==이동 구현== Idle 상태의 애니메이션과 walk 상태의 애니메이션, run 상태의 애니메이션이 있다 가정한다. ===걷기 구현=== #Animator 창의 Parameter 선택. #+를 누르고 Float 선택 후 해당 파라미터의 이름을 Speed라 짓는다.(이 값은 이동 스크립트 내에서 animator.SetFloat("Speed", playerInput.sqrMagnitude); 등의 방법으로 입력해준다.) #Idle로부터 Walk의 트렌지션을 만든다.(Walk에서 Idle로 반대로도 트렌지션을 만든다.) #각 트렌지션의 'Has Exit Time' 해제. #Idle>Walk 방향 트렌지션의 condition을 추가한다. Speed와 Greater을 선택하고 0.01 값을 준다.(아주 미세하게 움직여서 속도값을 갖게 되는 경우가 있기 때문.) #Walk>Idle 방향 트렌지션의 condition을 추가한다. Speed와 Less를 선택하고 0.01 값을 준다.(아주 미세하게 움직여서 속도값을 갖게 되는 경우가 있기 때문.) ==점프 구현== 아래에선 Walk와 Run 모두 트렌지션을 만들었지만, Walk가 없이 만들어진 게임이 많다. #Animator 창의 Parameter 선택. #+를 누르고 Trigger 선택 후 해당 파라미터의 이름을 Jump라 짓는다.(이 값은 이동 스크립트 내에서 animator.SetTrigger("Jump"); 등의 방법으로 입력해준다.) #+를 누르고 Bool 선택 후 해당 파라미터의 이름을 Grounded라 짓는다.(점프가 끝난 후 바닥판정을 하기 위함.) #Idle로부터 Jump의 트렌지션을 만든다.(Jump에서 Idle로 반대로도 트렌지션을 만든다.) #각 트렌지션의 'Has Exit Time' 해제. #Idle>Jump 방향 트렌지션의 condition을 추가한다. Jump를 선택한다. #Jump>Idle 방향 트렌지션의 condition을 추가한다. Grounded를 선택하고, Speed값이 0.01 이하일 조건을 추가한다. #Jump와 Run 애니메이션의 트렌지션들도 위와 같은 방법으로 추가한다.
요약:
학교의 모든 지식. SMwiki에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
학교의 모든 지식. SMwiki:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에서 사용한 틀:
틀:유니티
(
편집
)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
원본 편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보