10
UNITY COOKBOOK SHOT BY. INS PART 9 애애애애애애 애애 # 1

Unity cookbook 9

Embed Size (px)

Citation preview

Page 1: Unity cookbook 9

UNITY COOKBOOKSHOT BY. INS

PART 9애니메이션의 기초 # 1

Page 2: Unity cookbook 9

애니메이션 (Animation) 이란 ?

일반적으로 우리가 알고 있는 애니메이션은 캐릭터나 사물이 움직이는 것을 지칭합니다 .하지만 애니메이션의 정확한 개념은 움직일 객체의 Vertex 들이 1 프레임 마다 어디로 움직일지에 대한 동선 행렬이죠 .일반 사용자가 수동으로 Vertex 나 Polygon 을 조작하는 행위는 힘드므로 대체적으로 애니메이션을 쉽게 할 수 있는3D MAX, Blender, Maya 같은 3D 툴 인터페이스를 이용해 조작합니다 .

( 1 / 8 )

Page 3: Unity cookbook 9

좀 더 편한 방식

애니메이션을 좀 더 편하게 만드는 방법은 다양하다 . 위 말 대로 3D 툴 인터페이스를 통해 수동으로 조작하는 방법과실제로 사람이나 물체의 움직임을 어떠한 장비로 캡쳐하여 3D 상에서 캡쳐하는 방식도 존재합니다 .대표적으로 적외선 캡쳐 방식인 ‘ IR Sensor’ 와 하위 호환 버전인 ‘ Kinect’ 모션 캡쳐 장비가 있습니다 .그 외에도 여러 캡쳐 방식이 존재합니다 .

( 2 / 8 )

# IR Sensor # Kinetic

Page 4: Unity cookbook 9

Legacy Animation

레거시 애니메이션은 오래전부터 활용해온 전통방식의 애니메이션을 뜻하며 유니티에서의 애니메이션 기법 중 하나입니다 .움직일 대상 모델의 ‘ Animation Component‘ 가 부착되고 애니메이션 파일은 별도의 스크립트로 손수 불러옵니다 .코드 몇 줄로 애니메이션 제어가 가능하단 것이죠 . 특징은 애니메이션 이름에 ‘ @’ 표시로 구분을 해줘야 가능합니다 .또한 애니메이션을 창조하려면 3D 아티스트 역량에 달려 있습니다 .

( 3 / 8 )

Page 5: Unity cookbook 9

애니메이션 활용 #1

스크립트를 새로 만들어 위 코드와 같이 적어봅시다 .캐릭터에 붙어 있는 ‘ Animation‘ 컴포넌트를 사용하기 위해 초기화문에서 ‘ GetComponent’ 로 할당받고키보드 번호를 누르면 ‘ Play’ 라는 함수로 실행되게끔 되어있습니다 .실제로 해보면 번호가 눌리는 대로 애니메이션이 실행되는 모습을 보실 수 있습니다 .

( 4 / 8 )

# 실행결과

Page 6: Unity cookbook 9

애니메이션 활용 #2

방금 만들었던 스크립트를 보강해 추가 코드를 적어봅시다 . ‘Play’ 라는 함수 대신 ‘ CrossFade’ 로 대체해줍니다 .원리는 ‘ A’ 의 애니메이션과 ‘ B’ 의 애니메이션의 Vertex 를 혼합 (Blending) 하고 보간 (Lerp) 하여 두 동작이 섞이면서 전환되는한 마디로 부드럽게 애니메이션이 바뀌는 테크닉입니다 .이는 유니티 자체적으로 제공되며 , ‘Play’ 대신 ‘ CrossFade’ 를 서술하면 가능합니다 .

( 5 / 8 )

# Cross-Fade

# 부드럽게 변화되는 애니메이션

Page 7: Unity cookbook 9

애니메이션 활용 #3

마지막으로 애니메이션을 이용한 캐릭터 움직임을 구현해 보겠습니다 . 이전 스크립트를 위와 같은 코드로 전부 수정해줍니다 .우리가 지금까지 배웠던 객체의 이동 테크닉과 애니메이션을 혼합하여 3 인칭 움직임을 구현합니다 .캐릭터 뒤에 카메라를 자식으로 넣어 움직일 때 마다 따라오게끔 구현하면 훨씬 보기 좋아집니다 .

( 6 / 8 )

# 3 인칭 캐릭터 이동 구현

Page 8: Unity cookbook 9

보너스 #1

마지막으로 복습 차원에서 트리거를 밟으면 저 멀리 노란 박스 위로 순간이동 하는 기능을 만들어보겠습니다 .우선 문을 만들고 문 입구에 Cube 를 하나 더 만든 뒤 ‘ Mesh Renderer’ 체크버튼을 풀어 화면에서 보이지 않게끔 합니다 .그리고 충돌을 위해 캐릭터에 ‘ Rigidbody Component’ 와 캡슐모양 ‘ Collider’ 를 만들어 계층구조로 넣어버립니다 .이후 순간이동을 위해 이동 될 빈 오브젝트도 하나 만듭시다 .

( 7 / 8 )

Teleport

Page 9: Unity cookbook 9

보너스 #2

세팅이 준비되었다면 스크립트를 새로 만들어 위와 같이 작성합니다 .내용은 간단합니다 . 충돌체의 태그가 있을 경우 충돌체의 부모를 이동시키는 개념입니다 .코드 내용을 잘 보시면 ‘ parent’ 를 확인하실 수 있습니다 . 그러면 부모와 자식들이 한꺼번에 이동되는 셈이죠 .이상 복습차원에서 공부한 순간이동과 애니메이션 기초에 대해서 알아보았습니다 .

( 8 / 8 )

Page 10: Unity cookbook 9

Thank You !