1. 程式人生 > >MikuMikuDance中對於Local和Global旋轉方式的特殊處理

MikuMikuDance中對於Local和Global旋轉方式的特殊處理

我們的 萌夢動作編輯器對標的是國外的MikuMikuDance(以下簡稱MMD)。這裡我們在製作骨骼動畫功能的時候,發現MikuMikuDance中對於不同骨骼中Local以及Global旋轉方式的處理方式不盡相同。

具體來說,Global軸旋轉的時候,當滑鼠懸浮在XYZ手柄上時,所有的骨骼上都會顯示一個座標系。這個座標系是X軸向右、Y軸向上、Z軸朝向螢幕的。而當Local軸旋轉的時候,同樣當滑鼠懸浮在XYZ手柄上時,只有【腕】組以及其下屬的【指】組是沿著Local軸來旋轉的,具體地說,拿【桐谷和人】這個模型來說,有“腕”“左肩”“左腕”“左ひじ”“左手首”“右肩”“右腕”“右ひじ”“右手首”“左親指1”“左親指2”“左人指1”“左人指2”“左人指3”“左中指1”“左中指2”“左中指3”“左薬指1”“左薬指2”“左薬指3”“左小指1”“左小指2”“左小指3”“右親指1”“右親指2”“右人指1”“右人指2”“右人指3”“右中指1”“右中指2”“右中指3”“右薬指1”“右薬指2”“右薬指3”“右小指1”“右小指2”“右小指3”這些是採用Local座標系進行旋轉的,其它的骨骼則仍然是採用Global座標系進行旋轉的。


此外,當採用的是Local座標系時,軟體採用座標系的方法是:骨骼孩子朝向的位置作為X軸,然後按照右手定則確定Y軸和Z軸。注意,即使軟體中顯示的紅綠藍代表XYZ座標軸,看起來右手座標系的,MikuMikuDance使用的是DirectX作為渲染器,理所當然使用的是左手座標系。


這雖然是一個很小細節,但對於我們軟體的製作提供了一個很大的提示。