3ds Max教程:用約束和控制器設置太空戰斗機的動畫

在本課程中,將對執行任務的太空戰斗機飛行編隊使用多種約束和控制器。
設置課程:
-
打開 flyingspacefighter03.max。
該課程文件在 tutorials\intro_to_animation 文件夾中。
場景已經包含下列內容:
-
由三架太空戰斗機 FlightLeader、Wingman01 和 Wingman02 組成的飛行編隊。
-
虛擬對象 SpaceshipControl。
-
兩條運動路徑:flightpath(可見)和 wingmanpath(隱藏)。
-
攝影機(隱藏)SpaceCam。
-
使用虛擬對象控制飛行編隊
當設置動畫時,虛擬對象是很有用的。通過設置虛擬對象的動畫,可以專注于用非常簡單的對象設置運動,而不會降低系統的速度。一旦完成了虛擬對象的動畫,就可以將對象鏈接到虛擬對象上。現在將虛擬對象移到哪,對象就移到哪。
將太空戰斗機鏈接到虛擬對象:
-
激活“頂”視口(如果其尚未激活),并從主工具欄中單擊“選擇并鏈接”按鈕。
-
選擇 FlightLeader,并將光標拖動到虛擬對象 SpaceshipControl 上。松開鼠標按鈕。
FlightLeader 現在已鏈接到 SpaceshipControl。無論您將 SpaceshipControl 移動到何處,FlightLeader 都會隨之移動。
-
將 Wingman01 和 Wingman02 都鏈接到 SpaceshipControl。
為虛擬對象添加路徑約束:
-
在“頂”視口中,使用“最大化顯示”查看場景。
-
選擇 SpaceshipControl。
-
從“動畫”菜單中,選擇“約束”>“路徑約束”。拖動光標并單擊 flightpath。
SpaceshipControl 會跳到路徑的起點。太空戰斗機會隨之移動,因為它們已經鏈接到虛擬對象。
-
在“路徑參數”卷展欄中,進行下列設置。
-
啟用“跟隨”、“傾斜”和“恒定速度”。
-
在“軸”組中,啟用“Y”和“翻轉”。
-
將“傾斜量”設置為 7.0,將“平滑度”設置為 1.0。
-
-
激活“SpaceCam”視口并播放動畫。
所有三架太空戰斗機都將沿 flightpath 移動。
-
將場景另存為 MyFlight01.max。
使攝影機跟隨運動
在本練習中,將使用“鏈接約束”使攝影機在飛行編隊掠過時跟隨它們。從上一課繼續,或加載 flyingspacefighter04.max
為攝影機添加鏈接約束:
-
打開“顯示”面板,并禁用“按類別隱藏”卷展欄中的“攝影機”。
攝影機 SpaceCam 將出現。
-
在“頂”視口中,使用“最大化顯示”查看場景。選擇攝影機目標。
同時確保將時間滑塊設置為第 0 幀(零)。
-
從主菜單中,選擇“動畫”>“約束”>“鏈接約束”。單擊 flightpath 以在第 0 幀(零)設置第一個鏈接參數。
-
將時間滑塊移動到第 80 幀,并單擊“鏈接參數”卷展欄中的“添加鏈接”按鈕。單擊 SpaceshipControl。
-
單擊“添加鏈接”將其禁用。
-
激活“SpaceCam”視口并播放動畫。
攝影機目標從第 0 幀到第 79 幀鏈接到 flightpath。在第 80 幀,攝影機目標開始專門追蹤 SpaceshipControl 對象。
-
將場景另存為 MyFlight02.max。
飛行編隊隊長過于自信
您的飛行編隊隊長性格非常大膽。當飛行編隊從 SpaceCam 的最佳視點掠過時,他或她覺得應該做一個 V 型滾轉。在本練習中,將使用“方向約束”控制飛行編隊隊長的太空戰斗機在表演桶滾的旋轉。從上一課繼續,或加載 flyingspacefighter05.max。
-
在“頂”視口中,使用“縮放區域”查看三架太空戰斗機。
-
在“創建”面板上單擊“輔助對象”,然后單擊“虛擬對象”。在 FlightLeader 旁邊創建一個新的虛擬對象,并將其命名為 barrelroll。
-
單擊“選擇并鏈接”,將 barrelroll 鏈接到 SpaceshipControl。
-
從“工具”菜單中選擇“對齊”,然后單擊 SpaceshipControl。
“對齊當前選擇(SpaceshipControl)”對話框會出現。
-
在“對齊方向(局部)”組中,啟用“X 軸”、“Y 軸”和“Z 軸”控件,并單擊“確定”。
barrelroll 虛擬對象會與 SpaceshipControl 對齊。
-
在“運動”面板上,打開“指定控制器”卷展欄(如果其未打開),并選擇“旋轉:Euler XYZ”控制器。
-
單擊“指定控制器”按鈕,并從“指定旋轉控制器”對話框中選擇“TCB 旋轉”。
注意:這在稍后會變得非常重要,所以不要漏掉這一步。
設置 V 型滾轉的動畫:
-
在“頂”視口中選擇 FlightLeader。
-
打開“動畫”菜單,并選擇“約束”>“方向約束”。將光標移動到 barrelroll 虛擬對象上并選擇它。
您會看到 barrelroll 被添加到“運動”面板上的“方向約束目標”列表中。
-
選擇 barrelroll,并確保時間滑塊位于第 0 幀(零)。
-
啟用“設置關鍵點”切換,并單擊“設置關鍵點”按鈕。
-
將時間滑塊移動到第 110 幀,并再次單擊“設置關鍵點”。
您已經添加了兩個關鍵點,它們會使 FlightLeader 正常地從第 0 幀飛行到第 110 幀。
-
激活 SpaceCam 視口,并將時間滑塊移動到第 130 幀。
-
單擊“選擇并旋轉”,并將“參考坐標系”更改為“局部”。
-
單擊 barrelroll 虛擬對象并將其繞 Y 軸旋轉大約 180 度,然后單擊“設置關鍵點”按鈕。
注意:如果希望精確一些,則可以在狀態欄上的 Y 軸輸入字段中輸入旋轉度數。
-
將時間滑塊移動到第 150 幀,并將 barrelroll 虛擬對象繞 Y 軸旋轉另一個 180 度,然后單擊“設置關鍵點”按鈕。完成后,禁用“設置關鍵點”切換。
-
將場景另存為 MyFlight03.max,并播放動畫。
遇到麻煩的僚機
當 FlightLeader 表演特技時,Wingman01 好像遇到了一些麻煩。他看起來不像其他人飛行得那樣平穩。在本練習中,將使用“噪波”控制器為 Wingman01 的飛行動態添加一些湍流。從上一課繼續,或加載 flyingspacefighter06.max。
注意:如果從上一課繼續,請確保時間滑塊已返回到第 0 幀(零)。
添加湍流:
-
在“頂”視口中,使用“縮放區域”查看三架太空戰斗機(如果尚未執行該操作)。
您可能必須先使用“最大化顯示”,再使用“縮放區域”來查看三架戰斗機。
-
選擇 Wingman01。
-
在“動畫”菜單上,選擇“位置控制器”>“噪波”。
執行該操作會為 Wingman01 自動添加“列表”控制器。“位置列表”包含原始的“線性位置”和新的“噪波位置”控制器,它們的默認“權重”設置為 1.0。
-
播放動畫,并注意 Wingman01 的無規律飛行。
-
停止播放,并將“噪波位置”控制器的“權重”更改為 25。
現在 Wingman01 太空戰斗機的飛行路徑會受到輕微戰斗損傷的影響。
-
將場景另存為 MyFlight04.max。
調離僚機
現在看起來 Wingman02 好像收到一條信息,并正準備奉命離開編隊飛往別處。您將重新訪問“鏈接約束”,以便讓 Wingman02 跟隨 FlightLeader 飛行一小會兒,然后飛往另一條路徑。從上一課繼續,或加載 flyingspacefighter07.max。
為 Wingman02 更改路線:
-
將時間滑塊重置為第 0 幀(零),并在“頂”視口中縮放到三架太空戰斗機。
-
在 Wingman02 旁邊創建一個新的虛擬對象,并將其命名為 WingmanControl。
-
右鍵單擊任意視口,并從四元菜單中選擇“按名稱取消隱藏”。選擇 wingmanpath 并單擊“取消隱藏”。
在 Wingman02 前面會出現一條黃色的路徑。
-
確保新的虛擬對象 WingmanControl 仍處于選定狀態,然后從“動畫”菜單中選擇“約束”>“路徑約束”。將光標拖動到 wingmanpath 上并拾取它。
WingmanControl 會跳到 wingmanpath 的起點。
-
在“路徑參數”卷展欄中復制先前的設置。
-
啟用“跟隨”、“傾斜”和“恒定速度”。
-
在“軸”組中,啟用“Y”和“翻轉”。
-
將“傾斜量”設置為 7.0,將“平滑度”設置為 1.0。
如果播放動畫,會看到 WingmanControl 在它自己的路徑上。
-
使 Wingman02 更改路徑:
-
在“頂”視口中,選擇 Wingman02,并單擊“斷開當前選擇鏈接”按鈕。
Wingman02 將不再鏈接到 SpaceshipControl 虛擬對象上。
-
從“動畫”菜單中選擇“約束”>“鏈接約束”,并選擇 SpaceshipControl。
Wingman02 會像以前一樣飛行,但鏈接約束為您提供了靈活性,可以讓它跟隨不同的路徑。
-
將時間滑塊移動到第 45 幀,并單擊“運動”面板上的“鏈接參數”卷展欄中的“添加鏈接”按鈕。
-
單擊 WingmanControl 虛擬對象。
您將看到 WingmanControl 已添加到“目標”列表中,并且當 Wingman02 到達第 45 幀時,太空戰斗機開始跟隨 WingmanControl 虛擬對象到另一條路徑上。
-
將場景另存為 MyFlight05.max,并播放動畫。
使 Wingman02 滾轉出編隊:
若要使 Wingman02 滾轉出編隊,您將再次使用“方向約束”。
-
如果時間滑塊不在第 0 幀,將其移動回第 0 幀(零)。
-
在“頂”視口中的 Wingman02 旁邊創建另一個虛擬對象,并將其命名為 wingmanroll。
-
使用“選擇并移動”將 wingmanroll 放置在 Wingman02 旁邊。
觀察“前”和“右”視口以幫助您放置它。這將有助于您在場景中有組織地放置對象。
-
單擊“選擇并鏈接”,將 wingmanroll 鏈接到 WingmanControl。
-
從“工具”菜單中選擇“對齊”,然后單擊 WingmanControl。
“對齊當前選擇(WingmanControl)”對話框會出現。
-
在“對齊方向(局部)”組中,啟用“X 軸”、“Y 軸”和“Z 軸”控件,并單擊“確定”。
wingmanroll 虛擬對象會與 WingmanControl 對齊。
注意:這是很重要的,因為要確保稍后賦予 wingmanroll 的旋轉值將基于 WingmanControl 的初始方向。否則,賦予 wingmanroll 的任何旋轉值會導致太空船的翻轉失去控制。
-
在“運動”面板上,打開“指定控制器”卷展欄(如果其未打開),并選擇“旋轉:Euler XYZ”控制器。
-
單擊“指定控制器”按鈕,并從“指定旋轉控制器”對話框中選擇“TCB 旋轉”。
注意:如果未指定“TCB 旋轉”控制器,將無法使 wingmanroll 繞局部軸旋轉。
-
在“頂”視口中選擇 Wingman02。
-
打開“動畫”菜單,并選擇“約束”>“方向約束”。將光標移動到 wingmanroll 上并選擇它。
您會看到 wingmanroll 被添加到“運動”面板上的“方向約束”卷展欄中的“方向約束”目標列表中。
-
在“頂”視口中選擇 wingmanroll。
-
啟用“設置關鍵點”切換,并單擊“設置關鍵點”按鈕。
-
將時間滑塊移動到第 60 幀,并再次單擊“設置關鍵點”。
您已經添加了兩個關鍵點,它們會使 Wingman02 正常地從第 0 幀飛行到第 60 幀。
-
激活 SpaceCam 視口,并將時間滑塊移動到第 85 幀。
-
單擊“選擇并旋轉”,并將“參考坐標系”更改為“局部”。
-
在這一步中要創建兩個旋轉:
-
在 X 軸坐標顯示輸入字段中輸入 -15,并單擊“設置關鍵點”按鈕。
-
在 Y 軸坐標顯示輸入字段中輸入 90,并單擊“設置關鍵點”按鈕。
-
-
將時間滑塊移動到第 100 幀,以執行下面兩個旋轉:
-
繞 Z 軸旋轉 5 度,并單擊“設置關鍵點”按鈕。
-
繞 Y 軸旋轉 90 度,并再次單擊“設置關鍵點”按鈕。
-
-
將時間滑塊移動到第 115 幀,以執行下面兩個旋轉:
-
繞 Z 軸旋轉 10 度,并單擊“設置關鍵點”按鈕。
-
繞 Y 軸旋轉 90 度,并再次單擊“設置關鍵點”按鈕。
-
-
完成后,禁用“設置關鍵點”切換。將場景另存為 MyFlight06.max,并播放動畫。
(責任編輯:admin)