這篇文章是“角色拔槍”功能的末篇文章,我將向大家展示如何利用 Unity 強大的逆向運動學——IK技術,開發一個角色拔槍並緊握武器的功能案例。本文將詳細介紹從動畫配置到 IK 應用的全過程,以及如何通過IK技術,讓角色的雙手緊緊握住武器。如果大家還不清楚拔槍功能和分割上下身的功能可以參考我前兩篇文章:
(1)首篇文章:如何實現動態創建武器和角色拔槍的動畫,大家可以參考《【Unity3D實例-功能-拔槍】角色拔槍(一)動態創建武器》。
(2)次篇文章:如何分離角色的“上身動畫”和“下身動畫”,使得上半身進行特定動作(諸如:拔槍、射擊、換彈)時,下半身仍能持續執行移動動畫的技巧,大家可以參考《【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身》。
目錄:
1.安裝Animation Rigging
2.為角色安裝骨絡
3.準備實現IK前的工作
4.編寫IK的關鍵代碼
5.完整的拔槍代碼
6.測試和運行
一.安裝Animation Rigging
點擊 Unity 的“Package Manger”下拉框,選擇“Unity Registry”,然後在搜索框中輸入“Animation Rigging”,再點擊“Install”按鈕進行安裝即可。
二.為角色安裝骨絡
選中角色,點擊菜單欄中的“Animation Rigging”,然後點擊“Rig Setup”和“Bone Renderer Setup”,為角色添加骨絡。
三.準備實現IK前的工作
1.點擊角色左手和右手的骨絡,在右側欄中可以看到骨絡的定位,然後我們在角色的左手和右手的骨絡下,分別創建一個空物體(我這裏分別命名為“LeftHandPosition”和“RightHandPosition”)。
2.接着把角色左手和右手下的空物體,在場景中分別拖拉到角色對應的左手和右手下。
3.點擊動畫控制器,選中“Layers”頁籤,選擇上身的動畫圖層(如果不清楚該動畫怎麼來的小夥伴,可以去查看我上一篇文章《【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身》),點擊圖層右上角的“小齒輪”,在彈出的窗口中,勾選上“IK Pass”。
四.編寫IK的關鍵代碼
1.IK的關鍵代碼
代碼、模型和動畫都已經上傳到我的個人博客了,大家可以自行下載。
原創來源於-谷宇博客:https://www.biguyu.top/home
2.編寫完IK代碼後,把角色左右手下的空物體和武器的預製體賦予給變量(記得把腳本掛載到角色上)。
3.接着大家可以在運行狀態下,拖拉角色左右手下的空物體,調整角色的手部來緊緊握住武器。
五.完整的拔槍代碼
1.在 "Assets" 文件夾中新建一個名為 "Scripts" 的文件夾(可以根據自己的喜好來命名),然後在該文件夾裏創建一個 C# 腳本文件。並將它拖拉到角色上。
2.完整的拔槍代碼
代碼、模型和動畫都已經上傳到我的個人博客了,大家可以自行下載。
原創來源於-谷宇博客:https://www.biguyu.top/home
六.測試與運行
親測過程:進入“Play Mode”。按下拔槍鍵,觸發拔槍動畫後。這時觀察角色的手部位置可以緊緊貼着武器,角色移動時,手部也可以跟隨武器和身形進行擺動。