어떤 3D 오브젝트든 바운스, 회전, 흔들림, 스쿼시 앤 스트레치 애니메이션을 넣는 방법
동전, 상자, 표지판 등 소품에 바운스, 회전, 흔들림, 스쿼시 앤 스트레치 애니메이션을 넣고 Unity, Unreal, Godot, three.js용 GLB로 받으세요.
2026년 10월 25일
소품은 만들기는 가장 쉽고 애니메이션을 넣기는 가장 까다로운 모델입니다. 동전, 보물 상자, 물약 병에는 스켈레톤이 없어서 대부분은 엔진에서 물체 전체를 이동하고 회전시켜 애니메이션을 만듭니다. 그러면 회전하는 동전은 만들 수 있습니다. 하지만 착지할 때 찌그러지는 상자, 출렁이는 젤리, 바람에 휘는 표지판은 결코 만들 수 없습니다. 이런 동작은 메시 자체의 모양이 바뀌어야 하기 때문입니다.
afk.ai의 오브젝트 리그가 이 문제를 해결합니다. 어떤 모델이든 그 안에 작은 스켈레톤을 맞춰 넣고 메시를 스키닝하므로 오브젝트가 휘고, 찌그러지고, 늘어날 수 있으며, 바로 재생할 수 있는 애니메이션 9개도 함께 제공됩니다.
오브젝트 스켈레톤

오브젝트 스켈레톤은 조인트 21개로 이루어져 있습니다. 모델 가운데를 따라 올라가는 척추와 이를 가로지르는 세 줄의 본이 모델에 맞게 배치됩니다. 메시가 이 본들에 스키닝되어 있으므로 오브젝트가 움직이면서 휘고 모양이 바뀝니다. 단순히 이동하고 회전하는 애니메이션으로는 할 수 없는 일입니다.
애니메이션 9종
| 애니메이션 | 동작 | 길이 | 추천 용도 |
|---|---|---|---|
| Bounce | 위아래로 통통 튑니다 | 0.8 s | 픽업 아이템, 수집품, 놓여 있는 아이템 |
| Squash_Stretch | 찌그러졌다가 늘어납니다 | 1 s | 카툰풍 소품, 버튼, 탄력 있는 모든 것 |
| Spin | 한 바퀴 회전합니다 | 1 s | 동전, 보석, 보상 |
| Float | 천천히 위아래로 떠다닙니다 | 3 s | 공중에 뜬 아이템, 파워업, 떠 있는 섬 |
| Wobble | 젤리처럼 출렁입니다 | 1.3 s | 방금 착지했거나 맞은 물체 |
| Shake | 빠르게 떨립니다 | 1 s | 잠긴 문, 오답, 피해 |
| Sway | 부드럽게 흔들립니다 | 2 s | 나무, 표지판, 램프, 식물 |
| Flag_Wave | 물결이 오브젝트를 타고 지나갑니다 | 1 s | 깃발, 배너, 천 |
| Pop_In | 톡 하고 나타납니다 | 0.7 s | 스폰, 잠금 해제, UI 등장 |
브라우저에서 오브젝트에 애니메이션 넣기
- afk.ai/rig를 열고 모델을 끌어다 놓습니다(GLB, glTF 또는 FBX. OBJ, STL, zip으로 압축한 모델은 자동으로 변환됩니다).
- 모델이 무엇인지 물으면 Object or prop을 고릅니다. 모델의 일부에만 애니메이션을 넣으려면 먼저 Select a part(부분 선택)를 고르세요(아래에서 자세히 설명합니다).
- 내 모델로 애니메이션을 미리 봅니다.
- 원하는 애니메이션을 골라 리깅된 GLB를 다운로드합니다.
모델의 한 부분에만 애니메이션 넣기
소품은 일부만 움직여야 하는 경우가 많습니다. 깃대는 두고 깃발만, 기둥은 두고 거기 매달린 표지판만, 화분은 두고 식물만 움직이거나, 램프의 갓이나 받침대 위의 크리스털만 움직이는 경우입니다. afk.ai/rig에서는 그 부분만 리깅하고 모델의 나머지는 원래 자리에 그대로 둘 수 있습니다.
- 모델을 끌어다 놓고, 모델이 무엇인지 물으면 Whole model(모델 전체) 대신 Select a part(부분 선택)를 고릅니다.
- 애니메이션을 넣을 부분을 둘러 그리거나, 조각을 클릭해 통째로 선택합니다. Add와 Remove로 선택 영역을 다듬고, Turn view로 모델을 돌려 볼 수 있으며, Select through to the back을 켜면 보이지 않는 면까지 선택됩니다.
- Continue를 누르고 그 부분이 무엇인지 고릅니다. 깃발, 표지판, 식물이라면 Object or prop입니다.
- AI가 선택한 부분만 리깅합니다. 애니메이션을 미리 본 다음 다운로드합니다.
선택하지 않은 부분은 움직이지 않고 같은 GLB에 함께 담깁니다. 그래서 펄럭이는 깃발은 깃대에 달린 채로, 흔들리는 표지판은 기둥에 매달린 채로 받아 바로 씬에 넣을 수 있습니다. 오브젝트뿐 아니라 모든 체형에 쓸 수 있습니다. 받침대 위의 조각상이나 스탠드 위의 캐릭터를 선택하면 인물만 움직입니다.
부분 선택은 웹사이트에서만 할 수 있습니다. API는 모델 전체를 리깅합니다.
코드로 오브젝트에 애니메이션 넣기
afk.ai API도 같은 방식으로 오브젝트를 리깅합니다. 소품 폴더 전체를 한 번에 처리하거나, 플레이어가 업로드한 오브젝트를 리깅할 수 있습니다.
npx afk-rig coin.glb --type object --animations Spin,Bounce -o coin.rigged.glb
AI 에이전트에서는 afk-rig MCP 서버가 도구 호출 한 번으로 같은 일을 합니다.
엔진에서 재생하기
three.js
import * as THREE from 'three'
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'
const gltf = await new GLTFLoader().loadAsync('coin.rigged.glb')
scene.add(gltf.scene)
const mixer = new THREE.AnimationMixer(gltf.scene)
mixer.clipAction(THREE.AnimationClip.findByName(gltf.animations, 'Bounce')).play()
const clock = new THREE.Clock()
renderer.setAnimationLoop(() => {
mixer.update(clock.getDelta())
renderer.render(scene, camera)
})
Godot
GLB를 프로젝트에 넣습니다. 임포트된 씬에는 모든 애니메이션이 이름별로 담긴 AnimationPlayer가 있으므로 $AnimationPlayer.play("Spin")으로 재생할 수 있습니다. 반복 재생하려면 임포트 설정에서 애니메이션의 루프 모드를 지정하세요.
Unity
glTFast 패키지를 설치하고 GLB를 프로젝트에 넣습니다. Generic 리그(Humanoid 아님)로 임포트하고 클립을 Animator Controller에 추가합니다.
Unreal Engine
Unreal 5.1 이상은 GLB를 애니메이션이 포함된 스켈레탈 메시로 바로 임포트합니다.
팁
- 두 가지 움직임을 함께 쓰세요. 경로를 따라 오브젝트를 옮기는 건 엔진에, 모양 변화는 리그에 맡기세요. 점수판으로 날아가면서 회전하는 동전, Pop_In으로 떨어져 들어와 Wobble로 자리 잡는 상자가 그런 예입니다.
- 느낌으로 고르세요. Bounce와 Float는 "집어 가세요"로 읽힙니다. Shake는 "안 돼요"로, Sway는 "살아 있지만 차분함"으로 읽힙니다.
- 모델은 달라도 설정은 하나. 모든 오브젝트 리그는 같은 9개의 애니메이션 이름을 쓰므로, 애니메이션 설정 하나로 모든 픽업 아이템을 처리할 수 있습니다.
자주 묻는 질문
모델의 일부에만 애니메이션을 넣을 수 있나요?
네. afk.ai/rig에서 Select a part를 고르고, 애니메이션을 넣을 부분을 둘러 그린 뒤 그것이 무엇인지 고르세요. 그 부분만 리깅되어 움직이고, 모델의 나머지는 움직이지 않은 채 다운로드에 함께 포함됩니다.
어떤 오브젝트를 쓸 수 있나요?
동전, 보석, 보물 상자, 나무 상자, 병, 표지판, 깃발, 램프, 식물, 가구, 음식, 장난감 등 모든 종류의 소품을 쓸 수 있습니다. 캐릭터나 동물이 아니라면 오브젝트로 리깅하세요.
애니메이션을 상업용 게임에 써도 되나요?
네. 스켈레톤과 애니메이션은 CC0(퍼블릭 도메인)이며, 모델은 계속 사용자 소유입니다.
캐릭터와 동물에도 애니메이션을 넣을 수 있나요?
네. afk.ai는 사람, 네발 동물과 발굽 동물, 새, 드래곤, 공룡, 거미, 뱀, 물고기, 캥거루, 개구리, 유령도 각각 전용 애니메이션과 함께 리깅합니다.
내 모델 리깅하기
브라우저에서 AI 자동 리깅. 애니메이션이 포함된 GLB를 다운로드하세요.