一個基於大型語言模型的開源項目,通過自然語言描述生成MMD角色的姿勢和動畫。
使用名為MPL(MMD姿勢語言)的語義姿勢描述語言,使人工智慧能夠理解和生成解剖學上一致的姿勢。
只需輸入簡單的自然語言命令,例如「微笑著揮舞右手,邀請我共進晚餐」,系統就會實時生成相應的MMD姿勢代碼,並渲染流暢的骨架動畫。
1.項目概況
- 名稱:PoPo -「使用LLM對MMD模型進行姿勢和動畫」
- 功能定位:將語義態度語言轉換為由自然語言生成的LLM轉換為MMD可用的骨架動畫或姿勢控制
- 用例示例:如果你說「笑著揮舞右手,邀請我共進晚餐」,系統可以生成相應的骨骼運動,讓模型做出這個姿勢/動作
- 實時渲染:支持即時姿勢創建+平滑骨骼動畫
- 模型適配方向:對於MMD模型/動畫風格角色,考慮骨骼約束、物理、運動合理性等([GitHub][1])
2.關鍵技術與設計
以下是該項目的一些關鍵技術點和建築元素:
| 技術/模塊 | 描述 |
|---|---|
| MPL(MMD姿勢語言) | 它是PoPo定製的一種語義手勢描述語言,用作LLM的輸出目標,而不是允許LLM直接輸出原始四元數和變換矩陣等低級數據。這有幾個好處:更結構化、更具可讀性,使模型能夠更好地學習「動作語法」,具有更穩定的輸出,並且更容易調試。 |
| LLM微調 | 大型語言模型(在項目中被稱為微調GPT-4 o-mini)經過從自然語言到MPL語言的映射訓練。 |
| 前端/可視化部分 | 使用Next.js + TypScript構建界面,並使用Babylon.js + babylon-mmd進行3D渲染和骨架動畫。 |
| 訓練數據 | 該項目應該有 數據集 包含自然語言描述的目錄+相應的MPL輸出控制數據。 |
| 骨/物理/約束處理 | 由於目標是MMD模型(通常是具有特定骨骼結構和運動約束的動畫風格),因此在渲染/動畫生成中需要考慮骨骼約束、防止不合理失真、運動一致性等。REAUTE項目提到「解剖學上正確-內置限制防止不可能的運動」 |
3.工作流程(從輸入到輸出)
PoPo過程可以大致概括為以下步驟:
- 用戶輸入:用自然語言描述動作或姿勢(例如,「舉起左臂,向左看,微笑」等)。
- LLM推斷/生成:將自然語言輸入到微調的語言模型中,模型輸出相應的 MPL代碼/描述.& nbsp;
- 解析/轉換MPL:將MPL表示轉換為骨架動畫命令、關節旋轉、位置變換等。
- 渲染/回放:使用Babylon.js +一些MMD引擎(例如babylon-mmd)將該骨架動作應用於角色模型,以進行實時可視化和播放。
- 可能的調整/編輯:用戶可以對MPL代碼(或相應的骨骼命令)進行微調/手動編輯,以糾正或細化動作。
4.優勢挑戰/限制
優點:
- 自然語言控制:用戶不需要手動控制單個關節參數,只需「說出」動作即可得到結果,提高創意效率。
- 結構化姿勢表達(MPL): 用語義語言表達動作比數字參數更易讀,更容易調試,因為數字參數使模型輸出難以解釋。
- 針對MMD進行優化:該項目專為MMD模型設計,重點關注骨骼約束和合理性。
- 實時/可視化:前端渲染可以即時看到結果,對交互體驗友好。
挑戰/限制
- 準確性/細節控制:自然語言描述很模糊,「揮手」可能有很多變化,LLM可能會輸出與用戶期望不同的動作。
- 極端/複雜動作:可能很難支持複雜的舞蹈和連貫的動畫序列(多幀連續運動)。
- 通用性:骨骼系統目前專為MMD模型設計,可能不與其他類型的3D模型兼容。
- 物理/碰撞/織物/動態模擬:MMD模型還可能涉及頭髮、衣服和身體碰撞,這些超出了姿勢控制級別,需要額外的機械支持。
- 訓練數據依賴性:有效性受到所使用NLP ParticipMPL訓練數據的質量和多樣性的限制。
- 推理成本/延遲:LLM模型(尤其是如果它們更大)可能會出現推理延遲,並且實時性能可能會受到限制。
5.與類似/相似項目的應用前景比較
PoPo屬於那種 語言驅動的3D/動畫/虛擬人的交叉應用 ,行業/學術界也有許多類似方向的討論,例如將自然語言轉換為動作軌跡、控制角色表現以及自動化角色表現。
與常規動畫製作過程相比,它有可能節省在概念階段、快速原型設計和虛擬主播/化身演示等場景中手動調整動作的大量成本。
如果該項目繼續發展,未來可能會擴展到支持連貫的運動序列(運動片段)、多模式輸入(自然語言+手勢/草圖/音頻節奏)等。
Github:https://github.com/AmyangXYZ/PoPo
管材: