Day 18 | Tutting 舞蹈律動數位化 — 提升舞蹈的靈魂
文章開始先來欣賞一部作品吧!!!
NEW STYLE OF TUTTING: BOOMERANG
看完之後,大家會發現 Tutting 除了線條與角度,其實還有一種讓舞蹈活起來的 律動感。
這種律動,正是 Tutting 的「呼吸」與「心跳」。今天我們就來探討:如何把這份律動搬進數位世界?
接續 Day 17,今天我們來探討:Tutting 的律動如何被數位化?
Tutting 模擬器將新增「律動模式」。
當使用者設計完成一段 Tutting 排舞後,可以選擇合適的「律動形式」,並調整參數(強度、頻率、隨機性),讓舞蹈更有生命力。
Bounce(彈跳)
Rock(搖擺)
Switch(切換/轉換)
Slide(滑動)
class Groove {
constructor(type, intensity, frequency) {
this.type = type; // Bounce, Rock, Switch, Slide
this.intensity = intensity; // 律動幅度
this.frequency = frequency; // 律動頻率
}
toDataFrame(time) {
switch(this.type) {
case "Bounce": return Math.sin(time * this.frequency) * this.intensity;
case "Rock": return Math.cos(time * this.frequency) * this.intensity;
case "Switch": return (time % (1/this.frequency) < 0.05) ? this.intensity : 0;
case "Slide": return time * this.intensity;
}
}
}
// 模擬一個有 Bounce 與 Slide 的律動
let grooveList = [
new Groove("Bounce", 0.8, 2),
new Groove("Slide", 0.5, 0.5)
];
for (let t = 0; t <= 5; t += 0.5) {
console.log("Time:", t, grooveList.map(g => g.toDataFrame(t)));
}
這段程式展示了如何把「律動」轉換成數值模型,讓每一個時間點都能輸出對應的律動數據,進而驅動動畫。
數位化的Tutting不只是靜態的幾何,
當我們用數學公式去模擬 Bounce、Rock、Switch、Slide 時,也許會擔心舞蹈會變得僵硬、少了人味。
但正因為可以調整「強度、頻率、隨機性」,模擬器就能夠兼具規律性與自由度,讓舞蹈保有靈魂。