← 文章

沒動捕服,AI 看影片就讓角色跳完整首

· 10 分鐘閱讀 · 15 次閱讀
3D 動捕 VRM MMD AI 影片 運鏡
3D 動捕實測

沒動捕服,

AI 看影片就讓角色跳完整首

兩週內,我做的 3D 角色陽菜跳了兩種來源的舞:社群配布的 MMD 動作,和一支手機拍的真人舞蹈影片。後者沒有動捕服,只靠 AI 看影片估出骨架,整首 60 秒都跳得出來。

起因

起因:一支 MMD Short

實驗日期:2026 年 10 月 4 日到 16 日;360° 影片和互動舞台是 10 月 17 到 19 日補的。我挑素材、聯絡舞者、看片拍板;轉換、量測和排鏡的程式由 AI(Claude Opus 5.5)寫。模型改版很快,結論以這幾天的版本為準。

2026 年 10 月 4 日,我看到一支 hololive〈Go Wild〉的 MMD Short。動作檔是社群作者 Taro² 做好、公開配布的,而我手上剛好有一個現成的 3D 人偶:陽菜。

起點:dekopon 的〈Go Wild〉MMD Short · 在 YouTube 開啟 ↗

跳起來之後,我想到前一篇〈絕妙舞步變絕望舞步,AI 救得回來嗎?〉的結論:要修就修動作資料。那如果動作資料直接從真人影片讀出來呢?

從手機影片到 3D 角色:AI 先看出骨架,存成每一格的動作,再套到角色身上
從手機影片到 3D 角色:AI 先看出骨架,存成每一格的動作,再套到角色身上

我在 YouTube 找了三支〈くじら〉的影片來試,效果穩定之後才寫信問舞者。讓我最意外的是:沒有動捕服,只靠 AI 看一支手機影片,抓出來的舞就夠用。

〈Go Wild〉:MMD 配布動作,12 鏡多機位 · 在 YouTube 開啟 ↗
〈くじら〉並排:上面是美弦的原片,下面是陽菜 · 在 YouTube 開啟 ↗
總覽

兩條路,一張表

兩條路:現成的動作檔,或從影片讀出動作,最後都套到同一個角色
兩條路:現成的動作檔,或從影片讀出動作,最後都套到同一個角色
MMD 配布動作真人影片+AI
動作從哪來社群作者做好的動作檔一支舞蹈影片,AI 逐格估骨架
授權讀 Readme,credit 列三層公開前先問舞者
會壞在哪腿的 IK、播放器蓋掉動作骨架對不上、角色撐不住、腳滑、抽搐
表情和嘴型作者手打的 7 個沒有,要自己做
這次的規模一晚 14 首一支 60 秒,修了五輪

MMD 快,規矩寫在 Readme 裡;影片動捕自由,但要修,也要先問人。

MMD

MMD:一晚 14 首,壞在轉換的前後兩端

同一個陽菜,跳 Taro² 配布的 14 首裡的 6 首
同一個陽菜,跳 Taro² 配布的 14 首裡的 6 首

動作是現成的,要顧的是轉換之前的規約,和轉換之後的播放器。

哪一關會發生什麼怎麼處理
規約轉出來的 VRM 動作檔也算再配布;只列動作作者會漏人動作檔不公開;互動舞台的動作加密分段傳送、不給下載;credit 列原曲、原始舞者、動作作者三層
腿的 IK照 MMD 跑 40 圈,腳踝還差約 3% 腿長算到收斂;誤差超過 0.5% 就不往下做
播放器每格寫表情、把扠腰的手推開、把角色釘回原點播別人做好的舞時三個都關掉
表情只對得上 7 個(眨眼、笑、五個母音)嘴型照作者手打的,不是照歌聲

轉換和播放是兩層,兩層都要量。

鏡頭

鏡頭:形容詞沒有單位,樣片才有

同一段 16.6 秒的舞,運鏡改了五版,從左到右是 v1 到 v5
同一段 16.6 秒的舞,運鏡改了五版,從左到右是 v1 到 v5
版本做法學到什麼
v1固定鏡頭動作沒問題,畫面很平
v2跟拍、字卡背景「強烈」被壓在研究查到的安全上限內
v3鏡頭被動作帶著走我說「換角度」,AI 讀成攝影機被推歪
v4揮手就切機位機位擠在正面
v512 鏡多機位,每鏡都在動機位散到背後和正上方

v5 就是開頭那支〈Go Wild〉。v1 到 v4 是不公開影片:v1、v2、v3、v4;每一版的 3D 機位圖在〈運鏡五版〉筆記裡。

講運鏡要講三個規格:多強、單機運動還是切機位、機位散在哪。講不清楚,就先叫 AI 各出 3 秒樣片來選。

運鏡

運鏡變成資料:詞表加檢查器

〈くじら〉舞台版自動排出的 31 個鏡頭,每格取該鏡中間那一幀
〈くじら〉舞台版自動排出的 31 個鏡頭,每格取該鏡中間那一幀

把運鏡拆成一庫模板,讓程式抽、檢查、不合格就換。檢查規則寫成數字:剪點落在動作中段、相鄰兩鏡角度差夠多、主角不出框。同一套規則排完 14 首 MMD;〈くじら〉舞台版改用從 Melies 運鏡索引整理的詞表,從 64 種標準運鏡排出 31 鏡。

生成器隨便抽都行,渲染前擋得住壞鏡頭的是檢查器。

影片動捕

換一條路:AI 從手機影片讀出動作

做法一句話:SAM 3D Body 一格一格估出影片裡那個人的 3D 骨架,轉成動作檔,再套到陽菜身上。這一段修了五輪,每一輪都有影片。

輪次修什麼量到的變化
直接捕捉還沒修:駝背、腳尖翹起、骨盆扳歪整首骨架估計 806 秒(一張 RTX 3090)
第一、二輪兩副骨架的零點、陽菜的關節極限腳底穿進地板 651 → 0 格;超出關節極限 0 格
第三輪腳步飄移:踩地的腳鎖在落點踩地滑動 0.82 → 0 cm/格;懸空 13 → 0 格
第四輪抽搐:每根骨頭做時間平滑腳的加速度 p99 27.8 → 6.1 cm/格²
第五輪腿形;跳過淡入淡出估不準的格跳過頭 28 格、尾 10 格
直接捕捉:還沒修 · 在 YouTube 開啟 ↗
第一、二輪:骨架零點與關節極限 · 在 YouTube 開啟 ↗
第三輪:腳步鎖地 · 在 YouTube 開啟 ↗
第四輪:去抽搐 · 在 YouTube 開啟 ↗
第五輪:腿形(定案) · 在 YouTube 開啟 ↗

第一次看到「直接捕捉」那支時我很意外:還沒修,已經看得出是同一支舞。

挑片

挑片:最便宜的修正

三支試跑的影片,條件差很多:

影片解析度碼率平均亮度(0~255)估出來的前臂抖動(中位數)
A(美弦)1440×14401.2 Mbps623.4°/格²
B1080×19205.4 Mbps1222.5°/格²
C720×12641.0 Mbps11610.4°/格²

解析度最低的 C,手臂抖動是另外兩支的三到四倍;最暗的 A 反而不抖,暗只影響淡入的那幾格。

條件為什麼
固定機位鏡頭一晃,腳就跟著飄
單人全身入鏡腳出框就估不到踩地
1080p 上下、碼率夠解析度低,手臂就抖
開頭沒有淡入最暗的頭 28 格只能跳過

條件不合的影片,後面怎麼修都補不回來。

骨架

骨架和關節:零點不同,角色撐不住

上排是原片,下排是修正後的陽菜,同一時間點
上排是原片,下排是修正後的陽菜,同一時間點

直接對齊骨頭的方向,會把兩副骨架站姿的差距硬塞給陽菜;改成照抄「離開靜止姿勢轉了多少」,她就站直了。腿是例外,要改回對齊方向。

大腿往前抬 0° 到 100°:抬過頭,腿會戳出裙襬
大腿往前抬 0° 到 100°:抬過頭,腿會戳出裙襬

另一半是角色撐不住:一次只動一個關節,找出網格開始壞的角度,把動作收在那之內。代價是蹲低、抬腿都比舞者收斂。

極限表是角色的規格,不是動作的錯。

成品

從可行到作品

〈くじら〉舞台版:偶像服、公主頭,31 鏡自動運鏡
〈くじら〉舞台版:偶像服、公主頭,31 鏡自動運鏡
要補的做法
整首驗證只渲前 20 秒,動作檔一開始就轉整首,延長只要重渲
對嘴從歌裡分離人聲,閉、半開、開各約三分之一(554/611/629 格)
眨眼照影片時間每 2.5~5.5 秒眨一次;照電腦時間會眨個不停
鏡頭攝影機不低於 1 m、背後只拍全身;第一版有 7 鏡角度太低,寫成檢查擋掉
360°觀眾會轉頭看背後:補上背後的觀眾、桁架、光環和兩側觀眾,渲成 8K(7680×4096)正面、側面兩支
〈くじら〉舞台版:偶像服、公主頭,31 鏡自動運鏡 · 在 YouTube 開啟 ↗

表格最後一列的 360° 渲成了兩支 8K 影片,攝影機一支在她正前方、一支在側面。在電腦上拖曳播放器的畫面就能環顧整個舞台;手機上開 YouTube App 可以直接轉動手機看,VR 頭盔也能看。

〈くじら〉360°:攝影機在正面 · 在 YouTube 開啟 ↗
〈くじら〉360°:攝影機在側面 · 在 YouTube 開啟 ↗

渲染比播放慢的時候,跟時間有關的都要照影片時間;鏡頭的責任要在渲染前擋。

互動舞台

自己轉著看:14 首 MMD 都能換

影片只能照我排好的鏡頭看。〈Go Wild〉那批 14 首 MMD 舞,我另外做成一個可以自己操作的舞台:右下角播 YouTube 上的那支 Short,台上的陽菜跳同一支動作,時間跟著影片走。可以隨時暫停,從左下角的選單換歌;拖曳畫面能繞著她轉,也能拉近拉遠。

動作檔照 Taro² 的規約不能再配布,所以舞台上的動作是加密分段傳送、不提供下載;歌從 YouTube 的播放器播,頁面本身不放任何音訊。

手機上,右下角的 YouTube 播放器會蓋到她的腿;在電腦上看比較完整。

授權

公開之前先問,上架之前先剪

並排版:上面是美弦的原片,下面是陽菜
並排版:上面是美弦的原片,下面是陽菜

這是別人的舞。公開前我先問過三位舞者:一位同意,一位不希望公開,一位沒有回覆,所以只公開同意的那一位。

上架前還有一關:歌被 Content ID 認領的 Short,超過 1 分鐘就全球封鎖。MMD 那批有一首就是這樣,剪成 58 秒才恢復;〈くじら〉60.6 秒剪到 59.8 秒。

岔路

順手試過的

試了什麼為什麼試結果
JIZURA 字卡背景MMD 的背景太單調字卡要貼在她身後、跟鏡頭同一個透視,運鏡才看得出來
AI 自己蓋舞台想要演唱會的感覺燈光、LED 牆、冷焰火都是程式蓋的,就是上面的舞台版
歌轉舞模型 FlowerDance想看 AI 能不能自己編舞跟 trace 的舞並排還差一截;模型沒有授權條款,只留本機
動作誇張化動捕演員建議放大動作太誇張、看了不舒服,擱置

岔路都試過一輪,留在主線的只有兩件事:動作從哪來,鏡頭怎麼排。

現況

做到哪,還差什麼

做到了還沒做到
MMD 一晚 14 首跳躍:臀部高度還跟著最低的那隻腳
影片動捕整首 60 秒手指固定不動
腳步鎖地、對嘴、眨眼沒有あいうえお的口形
構圖規則寫成檢查大腿同時前抬又外張時,裙子會破洞
互動舞台 14 首可換歌手機上 YouTube 播放器會蓋到她的腿

一支條件好的手機舞蹈影片,加上 AI,2026 年 10 月已經能讓 3D 角色跳完整首。

帶走這段

複製給你的 AI Agent

手上有一支想讓角色跳的舞蹈影片時,把下面這段貼給你的 AI。

請先讀這篇文章:https://blog.joneshong.com/zh/blog/hina-dance-video-mocap/ 然後協助我,根據一支舞蹈影片,讓我的 3D 角色跳同一支舞: 1. 先評估這支影片適不適合:固定機位、單人全身入鏡、解析度、碼率、開頭有沒有淡入,逐項回報,量得到的給數字。 2. 從影片估出 3D 骨架、轉成我的角色用的動作檔;轉完量踩地的腳每格滑多少、有沒有超出角色的關節極限。 3. 公開前提醒我先問過舞者。 找得到現成的工具就用,不要自己重寫。
參考資料

延伸閱讀

資源為什麼重要
dekopon〈Go Wild〉MMD Short整件事的起點,看到它我才想讓陽菜跳舞
Taro²(BowlRoll)14 首動作的作者;他的 Readme 是我讀規約、列三層 credit 的範本
JIZURA照歌詞時間產生字卡(MIT 授權);用它才發現平貼的背景看不出運鏡
Melies:Cinematic Techniques運鏡詞表的來源,把「強烈運鏡」換成有名字、有定義的運鏡
SAM 3D Body從單支影片估 3D 骨架,第二條路的起點。Meta 的 SAM License(2025-11-19 版):免費、可修改與再散布,發表用它做出的成果時要註明用了 SAM
FlowerDance歌轉舞模型(ECCV 2026);試過才知道照歌生成的舞離 trace 還有多遠
〈絕妙舞步變絕望舞步,AI 救得回來嗎?〉那篇「要修就修動作資料」的結論,讓我直接去試真人影片
〈分享自製換裝娃娃:從一張設計圖到 3D〉陽菜是怎麼做出來的
三則筆記:運鏡五版、MMD 一晚 14 首、動作捕捉每一版的影片和量測細節都在這裡

音樂、舞蹈與動作的權利

文中的歌曲、舞蹈和動作都屬於原權利人,這裡只為說明實驗結果而引用。權利人若希望移除,請留言告知。

類型作品與權利人用在哪
音樂Yaffle〈くじら (feat. Sahnya)〉〈くじら〉並排版、舞台版、360° 兩支與五支過程影片的音軌,都在 YouTube 上播放
編舞與原片美弦(@mitsuru_SelfChoreograph)影片動捕的動作來源與並排截圖;公開前已徵得同意
音樂與編舞轟はじめ〈Go Wild〉(hololive)〈Go Wild〉運鏡五版的音軌與舞蹈;MMD 動作由 Taro² 從轟はじめ本人的 Short trace
MMD 動作Taro²(BowlRoll 配布)14 首 MMD 舞蹈;互動舞台上的動作加密分段傳送、不提供下載
互動舞台的歌14 首各屬原權利人只透過 YouTube 播放器播我上傳的 Short,舞台頁面本身不放任何音訊
✦ 帶走這段