Unity Ragdoll 教學Author: Kelvin Huang Unity Ragdoll(布娃娃系統)是用來模擬角色受到物理作用後自然倒下、碰撞與翻滾的功能。它會在角色骨架的重要部位加入 Rigidbody、Collider 與 Character Joint,使身體各部位能依照關節限制產生真實的物理反應。Ragdoll 常應用於角色倒地、遭受撞擊、爆炸擊飛或失去平衡等效果,可提升遊戲動畫的自然度與臨場感。實際製作時,必須正確設定骨骼、碰撞範圍、質量及關節角度,以避免肢體穿透、過度扭曲或出現不穩定的抖動。
本教學使用 Unity 官方提供的 Robot Kyle URP 角色作為 Ragdoll 製作範例。下載並匯入專案時,系統會顯示套件內包含的所有資源。本次只需要角色模型與貼圖,因此先按下左上方的 None 取消勾選全部項目,再勾選 SpaceRobotKyle 資料夾。 其他資料夾主要包含範例場景與控制功能,並非製作 Ragdoll 的必要內容,因此不需要匯入。確認選取完成後,按下 Import 將模型、材質與貼圖匯入專案。只匯入需要的資源,可減少不必要的檔案與套件衝突。 ![]() 匯入資源後,在 Project 視窗中找到 Robot Kyle 的角色模型,拖曳到 Scene 視窗中的場景。選取角色後可在 Inspector 的 Transform 元件調整位置,確認雙腳正確接觸地面,避免模型懸空或陷入地板。 由於稍後需要測試 Ragdoll 倒下與碰撞效果,角色周圍應保留足夠的活動空間。可調整燈光與攝影機位置,讓角色的骨架動作與碰撞結果能清楚呈現。若模型材質顯示異常,應確認目前專案使用 URP 渲染管線。 ![]() ![]() ![]() ![]() 綠色膠囊題碰撞器 ![]() ![]() 碰撞器在遊戲執行時不顯示 ![]() 選取場景中的 Robot Kyle 後,從 Hierarchy 執行 GameObject > 3D Object > Ragdoll,開啟 Ragdoll Builder 視窗。此工具可依照角色骨架,自動建立 Ragdoll 所需的 Rigidbody、Collider 與關節元件。 若角色已正確設定 Animator,可將角色的 Animator 元件拖曳至 Animator 欄位,再按下 Auto-Fill,由 Unity 自動辨識並填入主要骨骼。也可以展開 Advanced Bone Setup,手動指定各部位骨骼,包括骨盆、左右大腿、膝蓋、腳部、手臂、手肘、脊椎與頭部。 其中 Pelvis 為必要項目,尚未指定時會顯示紅色警告,且無法按下 Create。完成所有必要骨骼設定後,再調整角色的 Total Mass。本範例可先保留預設值 20,最後按下 Create 建立 Ragdoll。 ![]() 為了保留原本角色,可先複製 Robot Kyle,並將副本命名為 RobotKyle-Ragdall,再展開 Hierarchy 中的骨架階層。由於此模型未透過 Animator 自動填入骨骼,因此需將對應的骨骼物件逐一拖曳到 Advanced Bone Setup 欄位。 設定時,Hips 對應 Pelvis;LeftLeg/RightLeg 對應左右髖部;LeftCalf/RightCalf 對應左右膝部;LeftFoot/RightFoot 對應左右腳部。手臂則使用 LeftUpperArm/RightUpperArm,手肘使用 LeftArm/RightArm,Middle Spine 指定 Spine2,Head 指定 Head。確認所有欄位均已正確填入後,視窗下方的 Create 按鈕便會啟用。按下 Create,Unity 將依照這些骨骼建立 Rigidbody、Collider 與關節元件。 ![]() ![]() ![]() 接下來改用早期於 Unity Asset Store 推出的 Strong Knight 角色,進一步講解 Ragdoll 的設定方式。由於此資源目前已下架,只有過去曾取得或已保留 Unity Package 的使用者才能繼續使用。 開啟 Unity Package 後,可看到套件中包含 models、prefabs、scripts、shaders 與測試場景等內容。本教學主要使用角色模型與 Prefab,因此至少需要匯入 models、prefabs 及角色材質所需的 shaders。確認項目後按下右下角的 Import,將資源加入專案。 Strong Knight 是較早期製作的角色資源,若放入 URP 專案後出現粉紅色材質或貼圖顯示異常,需將原有材質轉換為 URP 材質,或重新指定 Universal Render Pipeline/Lit Shader。 ![]() 執行材質轉換時,Unity 會顯示 Confirm Material Conversion 警告視窗,提醒此操作將直接修改原有材質,而且不容易復原。若專案中的 Strong Knight 材質仍需保留給 Built-in Render Pipeline 使用,建議先備份專案,或複製一份原始材質後再進行轉換。 確認已完成備份後,按下 Proceed 進行轉換,Unity 便會將相容的舊版材質轉換為 URP 可用的格式。轉換完成後,應回到場景檢查角色的貼圖、透明區域、金屬感與光澤是否正常,部分較舊或自訂 Shader 的材質仍可能需要手動重新設定。 ![]() Strong Knight 的披風、裙甲或其他布料模型,部分是以單面 Polygon 製作。材質轉換為 URP 後,若仍使用預設的正面顯示設定,從模型背面觀看時可能會出現布料消失或局部破面的情況。 選取布料所使用的材質,在 Inspector 中找到 Surface Options,將 Render Face 由 Front 改為 Both。設定完成後,Unity 會同時渲染模型的正面與背面,使披風、衣襬及其他較薄的布料從各個角度都能正常顯示。 需注意的是,雙面渲染會增加少量的繪製負擔,因此只需套用於披風、布料或薄片等確實需要顯示背面的材質,不建議將角色所有材質都設定為 Both。 ![]() 設定 Strong Knight 的 Ragdoll 骨骼 開啟 Ragdoll Builder 後,展開 Advanced Bone Setup,再依照 Strong Knight 的骨架命名,將各部位骨骼逐一拖曳至對應欄位。此模型的骨盆使用 hips,左右大腿分別為 L_leg、R_leg,膝部為 L_knee、R_knee,腳部則指定 L_anke、R_anke。手臂使用 L_arm、R_arm,手肘指定 L_elbow、R_elbow,身體中央骨骼使用 chest,頭部則指定 head。 設定時應注意,Ragdoll Builder 欄位中的 Left 與 Right,是以角色本身的方向為基準,而不是以操作者觀看畫面的方向判斷。確認所有骨骼均已正確指定後,可先保留 Total Mass 預設值 20,再按下 Create,讓 Unity 自動在相關骨骼上建立 Collider、Rigidbody 與 Character Joint 元件。 ![]() ![]() 完成 Ragdoll 建立並檢查碰撞範圍 在 Ragdoll Builder 中確認骨骼設定無誤後,按下 Create,Unity 便會自動在角色的頭部、軀幹、手臂、腿部與骨盆等骨骼上加入 Rigidbody、Collider 及 Character Joint 元件。 ![]() 選取角色或相關骨骼後,可在 Scene 視窗中看到綠色線框,這些線框代表各部位的碰撞範圍。應檢查碰撞器是否大致包覆角色身體,尤其是頭部、胸部、手臂與腿部,避免範圍過大、偏離模型或彼此重疊過多。 這些綠色線框只會顯示於編輯畫面中,遊戲執行時不會被實際渲染。若發現碰撞範圍不理想,可選取對應骨骼,在 Inspector 中調整 Collider 的 Center、Radius、Height 或 Size,使其更符合角色外形。 ![]() ![]()
Copyright © 2026 CG Digital Corp. All rights reserved.
|