如何讓任何 3D 物件彈跳、旋轉、晃動或擠壓拉伸
給金幣、寶箱、招牌等道具加上彈跳、旋轉、晃動、搖擺、漂浮或擠壓拉伸動畫,下載 GLB 用於 Unity、Unreal、Godot 或 three.js。瀏覽器或程式碼均可。
2026年10月25日
道具是最容易製作、卻最難做動畫的模型。金幣、寶箱或藥水瓶沒有骨架,所以大多數人只能在引擎裡移動和旋轉整個物件來做動畫。這樣能得到一枚旋轉的金幣,卻永遠做不出落地時被壓扁的寶箱、Q 彈晃動的果凍或被風吹彎的招牌,因為這些都需要網格本身發生形變。
afk.ai 的物件綁骨解決了這個問題。它會在任何模型內部放進一套小骨架,並把網格蒙皮到骨架上,讓物件可以彎曲、擠壓和拉伸,還附帶九個現成就能播放的動畫。
物件骨架

物件骨架有 21 個關節:模型中間一條脊椎,加上橫跨脊椎的三排骨骼,全部依你的模型調整到位。由於網格蒙皮到了這些骨骼上,物件在運動時會彎曲、變形,這是單純的移動加旋轉動畫做不到的。
九個動畫
| 動畫 | 效果 | 時長 | 適用於 |
|---|---|---|---|
| Bounce | 上下彈跳 | 0.8 秒 | 拾取物、收集品、靜置的物品 |
| Squash_Stretch | 擠壓和拉伸 | 1 秒 | 卡通道具、按鈕、任何有彈性的東西 |
| Spin | 旋轉一整圈 | 1 秒 | 金幣、寶石、獎勵 |
| Float | 緩慢地上下浮動 | 3 秒 | 懸浮物品、能量道具、浮空島 |
| Wobble | 果凍般的晃動 | 1.3 秒 | 剛落地或被擊中的東西 |
| Shake | 快速抖動 | 1 秒 | 鎖住的門、答錯、受到傷害 |
| Sway | 輕柔地搖擺 | 2 秒 | 樹、招牌、燈、植物 |
| Flag_Wave | 一道波浪貫穿整個物件 | 1 秒 | 旗幟、橫幅、布料 |
| Pop_In | 彈出出現 | 0.7 秒 | 生成、解鎖、UI 彈出 |
在瀏覽器中給物件做動畫
- 開啟 afk.ai/rig,把你的模型拖進去(GLB、glTF 或 FBX;OBJ、STL 和壓縮檔裡的模型會自動轉換)。
- 問你模型是什麼時,選擇 Object or prop(物件或道具)。如果只想讓模型的一部分動起來,先選擇 Select a part(選取部位,詳見下文)。
- 在你的模型上預覽動畫。
- 下載包含所需動畫的已綁骨 GLB。
只讓模型的一部分動起來
很多時候,道具只有一部分需要動:旗幟動而旗桿不動,招牌動而掛招牌的柱子不動,植物動而花盆不動,還有檯燈的燈罩、基座頂上的水晶。在 afk.ai/rig 上,你可以只給這一部分綁骨,模型的其餘部分原封不動。
- 把模型拖進去,問你模型是什麼時,選擇 Select a part(選取部位),而不是 Whole model(整個模型)。
- 圈出你想做動畫的部分,或者點一下某個零件,把它整個選取。用 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 連同動畫匯入為骨架網格(Skeletal Mesh)。
小技巧
- 把兩種運動結合起來。讓引擎負責物件沿路徑移動,讓骨架負責形變:一枚邊旋轉邊飛向計分板的金幣,或者一個用 Pop_In 掉進場景、再用 Wobble 穩住的寶箱。
- 憑感覺挑選。Bounce 和 Float 給人的感覺是「快來撿我」。Shake 表示「不行」。Sway 則是「活著,但很平靜」。
- 一套設定,所有道具通用。每個物件骨架都有同樣的九個動畫名稱,所以一套動畫設定就能用於你所有的拾取物。
常見問題
可以只讓模型的一部分動起來嗎?
可以。在 afk.ai/rig 上選擇 Select a part(選取部位),圈出要做動畫的部分,再選擇它是什麼。只有這一部分會被綁骨和新增動畫,模型的其餘部分保持靜止,並一起包含在下載檔案中。
哪些物件適用?
各種道具:金幣、寶石、寶箱、木箱、瓶子、招牌、旗幟、燈、植物、家具、食物和玩具。只要不是角色或動物,就當成物件來綁骨。
動畫可以用在商業遊戲中嗎?
可以。骨架和動畫採用 CC0(公眾領域)授權,你的模型仍歸你所有。
也能給角色和動物做動畫嗎?
能。afk.ai 還能給人、四足和有蹄動物、鳥、龍、恐龍、蜘蛛、蛇、魚、袋鼠、青蛙和幽靈綁骨,每種都有自己的動畫。
幫你的模型綁骨
在瀏覽器中 AI 自動綁骨,下載帶動畫的 GLB。