跳轉到內容

使用 XNA/骨骼和動畫建立簡單的 3D 遊戲

來自華夏公益教科書,開放的世界,開放的書籍

建立骨骼

[編輯 | 編輯原始碼]

為了在 Blender 中建立 3D 動畫,第一步是為您的模型建立骨骼,或多或少是一個骨骼結構。建立骨骼將允許您為骨骼之間的運動設定動畫,然後這些運動將移動連線到它們的頂點。本教程將介紹製作和移動在之前的教程中製作的魚的骨骼集的過程。

首先,將您的游標移動到身體內部的尾鰭尖端(最簡單的方法是選擇末端的頂點,按下空格鍵,然後選擇“變換”/“捕捉”/“游標到選擇”),然後進入物件模式,按下空格鍵,選擇“新增”/“骨骼”,新增一個新的骨骼。這將根據當前相機位置建立一個單根骨骼。

將此骨骼旋轉 90 度,使其沿著魚的身體移動。這些教程之前討論過的模型的大部分操作(旋轉、縮放、拉伸等)在這裡都會有效。選擇骨骼並進入編輯模式。選擇連線到三角形最薄部分的圓圈並按“E”,將現在已旋轉的骨骼拉伸到側鰭。沿著移動,直到它大約到達中間。

使用此技術,建立沿著背鰭和側鰭延伸的骨骼,並建立一根平行於身體其餘部分的骨骼。

要完成骨骼結構,請在最靠近臉部的末端建立兩根骨骼,每根骨骼都與嘴巴平行,大約與嘴巴每端的長度相同。然後只選擇這兩個新骨骼,並按“Alt-P”。這將允許您將骨骼與父級斷開連線,因此現在可以將它們稍微向下移動以匹配嘴巴的位置,如下所示,同時仍然是原始骨骼的一部分。

最後,使用以下過程將骨骼連線到模型。選擇每個模型,然後以與您設定子曲面修改器相同的方式,新增一個骨骼修改器。輸入您的骨骼的名稱(在選擇骨骼後顯示在左下角),並確保取消選中“包絡”選項,並選中“頂點組”。這改變了骨骼影響模型的方式,但對於本教程的其餘部分,我們需要使用“頂點組”。

在物件模式下選擇骨骼,並進入姿勢模式。稍後這將允許您移動骨骼並檢視對模型的影響,但現在只需選擇一根骨骼,然後返回物件模式並選擇要連線到的模型。進入權重繪製模式,您應該會看到您選擇的模型被藍色包圍,並且游標會變成一個小刷子。在此模式下,您可以“繪製”模型上要被該骨骼覆蓋的部分。底部的各種選項可以更改以修改繪製方式,現在我建議您取消選中“柔軟”按鈕以加快過程。對與模型相關的所有骨骼執行此操作。要測試此效果並確保它正常工作,請重新進入姿勢模式,並四處移動模型。

現在它已準備好進行一些動畫。

動畫化您的模型

[編輯 | 編輯原始碼]

我們將建立的動畫的基本原理是在動畫幀的不同時間點(關鍵幀)上為骨骼設定不同的位置,然後讓 Blender(以及後來的 XNA)計算這些時間點之間的位置。想象一下,這與導演電影類似,您會告訴演員要移動的位置,而不必擔心他們採取的每一步。

像之前一樣將螢幕分成兩個視窗,並將左側視窗置於“動作編輯器”模式。

現在,我們將從建立一個簡單的游泳動畫開始。

選擇右側視窗上的瀏覽選項按鈕,選擇新增新,並將其命名為“游泳”。

接下來,在姿勢模式下移動骨骼,使其看起來像魚的身體被扭曲,好像在游泳。我透過在 X 軸上以 10 度的交替方向移動最靠近頭的骨骼和連線到尾巴的骨骼,並在 Z 軸上以 10 度移動鰭來實現這一點。然後選擇所有為動畫修改的骨骼,並按“I”並選擇“旋轉”。這將在專案第 1 幀建立旋轉關鍵幀,您應該可以在左側的動作編輯器上看到它。

透過單擊動作編輯器上的第 5 幀,將動畫向前移動 5 幀,並將剛剛移動的所有骨骼移至相反方向以建立運動的下一階段。按“I”,並以相同的方式儲存這些關鍵幀。

最後,要完成此動畫,請執行與之前相同的過程,這應該將骨骼移回其原始位置(或者,您可以選擇初始關鍵幀並透過按“Shift-D”來複制它們)。然後單擊右側視窗底部的“檢視”,並選擇“從動作長度預覽範圍”,這將把動畫長度設定為第一個和最後一個關鍵幀之間的長度。在同一個選單中選擇“回放動畫”,您應該會看到一條游泳的魚。

接下來,按照類似的過程,並且在仍然選擇“游泳”的情況下,選擇“新增新”,修改連線到嘴巴的兩個骨骼以形成一個一幀的“微笑”和“皺眉”動畫(如果稍微拉伸這個詞),這將在遊戲後期開發中用於 XNA 遊戲,當我們開始新增 NPC 時。

華夏公益教科書