이전시간에 3D 모델링을 하고 색상까지 입혔으니 이제 움직이는 것을 구현해볼차례이다.
먼저 애니메이션을 구현하기 위해서는 3D 모델링이 되어있는 매쉬에 뼈를 넣어줘야한다.
Object Mode에서 단축키 Shift + A
를 눌러 Armature
를 선택한다.
그럼 다음과 같이 머리 혹은 몸에 뼈대가 생성이 된다.
매쉬가 뼈대를 가려서 잘 보이지 않는데 뼈대를 항상위 표시해주자.
Object -> Viewport Display -> In Front를 체크를 해주면 무조건 뼈대가 앞에 표시된다.
뼈대를 정해줄때는 어떻게 몸일 움직일지를 고민하고 뼈대를 넣어주어야 하는데 세밀한 움직임을 표현하기 위해서는 많은 뼈대가 들어가게 된다. 나의 캐릭터는 단순하니 머리, 몸통, 팔, 다리의 뼈대정도만 추가하자
이전에 추가한 뼈대는 몸통으로 이동해주고 뼈대의 상단 꼭지점에서 단축키E
를 눌러 뽑아서 머리까지 연결해주자.
팔쪽의 뼈대도 마찬가지로 뽑아낼 수 있지만 단축키 Shift + A
를 눌러 추가하는 방법도 있다.
상단에 3D Cursor를 선택 후 단축키 Shift + D
를 눌러 복제 한 뒤 이동하여 왼쪽과 오른쪽 팔의 뼈대를 만들어주자.
팔을 추가한뒤 좌우 대칭으로 만들기 위해서는 모델의 가운데 3D Curosr를 중심 축으로 하고 X축 방향으로 -1해주면 대칭이 된다.
이런식으로 다리도 뼈대를 추가해주자.
이제 매쉬랑 뼈대를 연결을 해주는 작업을 진행해야 한다.
Object Mode에서 매쉬를 선택 후 Shift를 누른상태로 뼈대를 선택 후 마우스 오른쪽 클릭하여 Parent -> Armature Deform -> With Automatic Weights를 선택해주면 자동으로 매쉬와 뼈대가 연결이 된다.
뼈대가 정상적으로 연결이 되었는지는 Pose Mode로 진입 후 뼈대를 클릭한 후 단축키 R
을 눌러 이동시켜보면 확인할 수 있다.
이때 뼈대와 매쉬가 연결이 되지 않았으면 Object Mode에서 단축키 Alt + P를 눌러 Clear Parent를 해준뒤 재시도해보자
영상에서 보다시피 몸통과 팔이 따로 움직이기 때문에 몸통의 뼈대와 팔의 뼈대를 연결해주어야 하는데 이는 자식과 부모를 연결하는 관계로 연결을 진행해주어야 한다.
자식인 팔의 뼈대를 선택 후 Shift로 부모인 몸통을 선택한 다음 단축키 Control + P
를 눌러 Keep Offset을 해준다.
연결이 정상적으로 되었으면 점선표시로 연결이 되었음을 나타내준다.
이제 애니메이션을 만들어보자.
애니메이션을 만들기 위해서는 Pose Mode에서 진행을 하고 새로운 패널인 Dope Sheet 패널을 추가한다 그러면 타임라인이 생성되는데 왼쪽 상단의 Action Editor을 선택해준다.
가운데 New 버튼을 눌러 새로운 Action을 추가해준다. 이름은 default로 설정하겠다.
Dope Sheet의 24프레임에서 몸통 뼈대를 선택해주고 단축키 R
을 눌러 오른쪽으로 로테이션을 변화시켜준다. 그리고 단축키 A
로 전체 선택을 해주고 단축키 I
를 눌러주면 타임라인에 키프레임이 삽입 된것을 확인 할 수 있다.
마찬가지로 48프레임에서 몸통 뼈대를 선택해주고 왼쪽방향으로 로테이션을 변화시켜주고 단축키 A
로 전체 뼈대를 선택해주고 단축키 I
로 타임라인에 키프레임을 삽입시켜주자.
좌우로 흔드는 모션이 반복되어야 하기 때문에 48프레임에서 작업한 키프레임을 선택해 단축키 Shift + D
를 눌러 0프레임에 키프레임을 복제해주자.
완성된 애니메이션을 단축키 Space Bar
를 눌르면 확인할 수 있다.
이제 Three.js를 사용해 반복문을 돌려주면 좌우 몸을 계속 흔들도록 구현할 수 있게 된다.
New Action을 추가해주고 기존 키프레임을 모두 삭제한다.
뼈대가 처음 위치에 있지 않은데 이때는 모든 뼈대를 선택 후 단축키 Alt + R
를 누르면 원상복구된다.
기존위치의 키프레임을 0프레임에 넣어주자. 좌우로 움직이는 애니메이션과 같이 원하는 프레임에서 뼈대를 조정해 아래와 같이 만들어주자.
Object Mode에서 매쉬를 선택 후 상단 메뉴에서 File -> Export -> glTF 2.0을 선택한다.
이때 오른쪽의 Incldue에서 Selected Objects를 선택해준다음 Export해주어야 한다.
다음시간에는 드디어 다시 Three.js로 돌아가 만들어진 3D 모델을 사용해보자!