iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0

讓我們繼續Day19 的議題吧~~

為了模擬真實舞者所擁有的「舞蹈的記憶」、「風格選擇能力」、「經驗累積」,

Tutting 模擬器需要能夠隨著時間累積記憶、學習偏好,要實現這一點必須替模擬器打造一個資料庫系統,作為「舞蹈記憶」的容器。


資料庫的規劃

為了儲存複雜的舞蹈數據,並因應不同操作需求,本研究採用 SQL 與 NoSQL 混合架構:

動作片段庫

  • 用途:存放 Tutting 的基本動作,提供模擬器組合使用。
  • 資料內容:
    • 動作名稱(Line / Box / Pose…)
    • 動作分類(如 Geometry Type)
    • 預設角度與骨架資訊
    • 建議組合
  • 儲存方式:
    • MongoDB:因為動作片段可能包含 JSON 結構(骨架角度、控制點、動作屬性),非常適合 NoSQL。
{
  "_id": "action_001",
  "name": "Box Pose",
  "category": "Box",
  "default_skeleton": {
    "joint_angles": [45, 90, 30, ...],
    "control_points": [...]
  },
  "recommended_combinations": ["Line Pose", "Slide Pose"],
  "metadata": {
    "difficulty": 3,
    "style_tags": ["geometric", "sharp"]
  }
}

律動參數庫

  • 用途:動作附加的律動屬性,如 Bounce、Rock、Slide。
  • 資料內容:
    • 對應動作 ID
    • 律動類型
    • 強度 / 頻率 / 時長參數
  • 儲存方式:
    • MongoDB:因為同一動作可能有多個律動組合,JSON 彈性很好。
{
  "_id": "rhythm_001",
  "action_id": "action_001",
  "type": "Bounce",
  "intensity": 0.8,
  "frequency": 1.2,
  "duration": 2.5
}

舞者風格庫

  • 用途:紀錄舞者的個人偏好與特色。
  • 資料內容:
    • 基本資料:姓名、角色屬性
    • 技術值:精準度、創意度、耐力
    • 偏好:喜歡的動作類型 / 律動類型
    • 成長曲線:隨時間累積提升能力
  • 儲存方式:
    • MySQL:結構化數據,如精準度、創意度、耐力、偏好標籤,適合做統計、排序、查詢。
CREATE TABLE Dancer (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    role VARCHAR(20),
    precision FLOAT,
    creativity FLOAT,
    stamina FLOAT,
    preferred_actions JSON,
    preferred_rhythms JSON,
    growth_curve JSON
);

歷史紀錄

  • 用途:紀錄舞者學過的套路、生成過的舞蹈,以及喜好分析。
  • 資料內容:
    • 舞蹈 ID / 動作序列
    • 生成時間
    • 評價(成功率 / 觀眾喜好 / 模擬器內部評分)
  • 儲存方式:
    • MongoDB:歷史動作序列、生成舞蹈 JSON,可彈性存放多樣數據。
{
  "_id": "history_001",
  "dancer_id": 1,
  "dance_sequence": [
    {"action_id": "action_001", "rhythm_id": "rhythm_002"},
    {"action_id": "action_003", "rhythm_id": "rhythm_005"}
  ],
  "generated_time": "2025-08-21T10:00:00Z",
  "evaluation": {
    "success_rate": 0.92,
    "audience_score": 4.7,
    "internal_score": 0.85
  }
}

結論

在 Tutting 模擬器的資料庫設計上,其實單靠 SQL 或 NoSQL 都不夠。
最佳做法是 混合式架構:

  • SQL:存放「舞者基本資料」「比賽紀錄」「成長曲線」等結構化資訊。
  • NoSQL:存放「舞蹈記憶(JSON 動作序列)」「風格偏好」「動作關聯圖譜」。

這樣能同時兼顧 資料一致性 與 彈性擴充,更符合「模擬真實舞者」的需求。
最終,我們希望這個資料庫不只是一個「資料倉庫」,而是能讓 AI 舞者藉由查詢與更新,真正地「成長」與「展現風格」。


上一篇
Day 19 | 升級 Tutting 模擬器的腦 — 資料庫
下一篇
Day 21 | Tutting AI 學習舞蹈 — 從資料到智慧
系列文
用 GenAI 創造虛擬 Tutting 舞者的 30 天冒險29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言