更新於 2024/10/27閱讀時間約 3 分鐘

Max 骨骼的旋轉軸

這篇文章會提到幾個名詞,然後引用幾篇文章,有興趣了解的可以去看看

旋轉軸產生的問題

在 3D 環境中一定會遇到骨骼旋轉會亂轉的狀況,有被稱作"亂軸",這名稱不是通用說法,也有人說歐拉角或是萬象軸問題,但亂軸說法比較點單易懂,起因是旋轉的計算方式

想了解坐標軸計算,建議看:欧拉角和四元数

可以看旋轉的路徑是歪的

相關名詞

歐拉 Euler

維基說明:環架鎖定

XYZ 軸旋轉是歐拉角(Euler),會產生萬象鎖(Gimabl Lock)的現象,就是亂軸,最簡單的理解是有旋轉軸重疊,才導致亂軸的狀況產生,max 可以切換旋轉軸到 Gimabl 看是否有旋轉軸重疊

切換到Gimbal,可以看到旋轉軸有重疊


四元數 Quaternion

維基說明:四元數與空間旋轉

可避免亂軸的產生,但計算不是 XYZ 軸,所以調整軌跡曲線不是很直覺,max 將此計算方式用 TCB 去調整,就完全不是用曲線控制

(Blender 則是 WXYZ ,有四個軸向)

Biped 可以設定軸向計算類型

TCB

max 官方手冊:TCB Controllers

根據官方解釋 TCB 是 T(Tension)張力、C(Continuity)連續性、B(Bias)偏移,使用參數去調整曲線,曲線編輯不直覺,沒有控制柄直接改曲線形狀,所以當切換到 TCB ,我是不使用曲線編輯,只會去調整 Bias 參數

TCB操作介面

遇到亂軸的解決方法

動畫前的設定

  • 增加父級骨骼:父級和子級要相同軸向,父級等於中繼點
  • 骨骼做 Freeze 凍結歸零
  • 直接使用 TCB 旋轉


已經有動畫,產生亂軸

  • 使用歐拉過濾器(Euler Filter)
  • 先切換到 TCB 旋轉再切回 Euler 旋轉


特別注意

TCB的特性由於計算方式不同,所以完全不用擔心會遇到亂軸問題,會自動計算出最短路徑,可以利用在需要大幅度任意旋轉,不去思考曲線,但如果想要旋轉一圈或是超過180度,就必須多設關鍵幀或是記得勾選Rotation Windup(Biped 沒 Rotation Windup選項)

Biped 雖然可以設定歐拉 Euler,但不建議使用,因為 Biped 是獨自的系統,在曲線編輯上比 Bone 還複雜難用,一般我不會換到歐拉 Euler

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.