1. 程式人生 > >Unity3D筆記第十三天——關節、布料

Unity3D筆記第十三天——關節、布料

關節(Joint)是Unity中的一種物理元件,用來模擬遊戲物件之間相互連線的效果。
通過關節,我們在遊戲中可以用於模擬剛體之間的連線、門的開關、角色布娃娃系統等效果。


鉸鏈關節
由兩個剛體組成,剛體之間的運動約束類似於鉸鏈連線,可用於模擬門的開關,鐘擺的擺動等物理效果
固定關節
將兩個剛體粘連在一起,當一個剛體運動時會帶動另外一個剛體運動,效果類似於父子關係
彈簧關節
將兩個剛體用彈簧連線,拉伸或擠壓它們會產生拉力或彈力
角色關節
可用於模擬角色的骨骼關節,可用於布娃娃系統
可配置關節
可通過配置引數來模擬以上四種關節,功能強大而靈活,使用也相對複雜


HingeJoint 鉸鏈關節
鉸鏈關節 (Hinge Joint) 將兩個剛體 (Rigidbody) 組合在一起,從而將其約束為如同通過鉸鏈連線一樣進行移動。它十分適合門,也可用


於對鏈條、鐘擺等進行建模。


HingeJoint 鉸鏈關節屬性
連線體 (Connected Body):對關節 (Joint) 所依賴的剛體 (Rigidbody) 的可選引用。如果未設定,則關節 (Joint) 連線到世界座標。
錨點 (Anchor):主體圍繞其搖擺的軸的位置。該位置在區域性座標空間中定義。
軸 (Axis):主體圍繞其搖擺的軸的方向。該方向在區域性座標空間中定義。
使用彈簧 (Use Spring):彈簧 (Spring) 使剛體 (Rigidbody) 相對於其連線體達到特定角度。
彈簧 (Spring):啟用使用彈簧 (Use Spring) 時使用的彈簧 (Spring) 的屬性。
彈簧 (Spring):物件為移動到位所施加的力。
阻尼 (Damper):此值越高,物件減慢的幅度越大。
目標位置 (Target Position):彈簧 (Spring) 的目標角度。彈簧 (Spring) 會拉向此角度(以度數為單位測量)。
使用電機 (Use Motor):電機使物件旋轉。
電機 (Motor):啟用使用電機 (Use Motor) 時使用的電機 (Motor) 的屬性。
目標速率 (Target Velocity):物件嘗試達到的速度。
力 (Force):為達到該速度而應用的力。
自由旋轉 (Free Spin):如果啟用,則電機從不用於對旋轉制動,僅進行加速。
使用限制 (Use Limits):如果啟用,則鉸鏈角度會限制在最小 (Min) 和最大 (Max) 值內。
限制 (Limits):啟用使用限制 (Use Limits)s 時使用的限制 (Limits) 的屬性。
最小 (Min):旋轉可以達到的最小角度。
最大 (Max):旋轉可以達到的最大角度。
最小反彈 (Min Bounce):物件在命中最小停止時反彈的量。
最大反彈 (Max Bounce):物件在命中最大停止時反彈的量。
折斷力 (Break Force):為使此關節 (Joint) 折斷而需要應用的力。
折斷扭矩 (Break Torque):為使此關節 (Joint) 折斷而需要應用的扭矩。


彈簧關節( Spring Joint )


彈簧關節( Spring Joint )用於模擬兩個剛體之間用彈簧連線的效果。當2個剛體之間的距離發生變化時,彈簧關節會產生彈力或者拉力來


恢復剛體的初始距離。
連線體 (Connected Body):對關節 (Joint) 所依賴的剛體 (Rigidbody) 的可選引用。
錨點 (Anchor):物件區域性座標空間中定義關節 (Joint) 中心的位置(靜止時)。這不是將物件拉向的位置。
X、Y、Z:關節 (Joint) 區域性座標中心沿 X / Y / Z 軸的位置。
彈簧 (Spring):彈簧的強度。
阻尼 (Damper):彈簧在處於活動狀態時縮減的量
最小距離 (Min Distance):大於此值的距離不會使彈簧啟用。
最大距離 (Max Distance):小於此值的距離不會使彈簧啟用。
折斷力 (Break Force):使此關節 (Joint) 折斷所需的力。
折斷扭矩 (Break Torque):使此關節 (Joint) 折斷所需的扭矩。


角色關節CharacterJoint
連線體 (Connected Body):對關節 (Joint) 所依賴的剛體 (Rigidbody) 的可選引用。如果未設定,則關節 (Joint) 連線到世界座標。
錨點 (Anchor):遊戲物件 (GameObject) 區域性座標空間中關節 (Joint) 圍繞旋轉的點。
軸 (Axis):扭曲軸。通過橙色小圖示錐形進行展示。
搖擺軸 (Swing Axis):搖擺軸。通過綠色小圖示錐形進行展示。
扭曲下限 (Low Twist Limit):關節 (Joint) 的下限。
扭曲上限 (High Twist Limit):關節 (Joint) 的上限。
搖擺 1 限制 (Swing 1 Limit):有關定義的搖擺軸 (Swing Axis) 的下限
搖擺 2 限制 (Swing 2 Limit):有關定義的搖擺軸 (Swing Axis) 的上限
折斷力 (Break Force):Th為使此關節 (Joint) 折斷而需要應用的力。
折斷扭矩 (Break Torque):為使此關節 (Joint) 折斷而需要應用的扭矩。


折斷關節 (Joint)
可以使用折斷力 (Break Force) 和折斷扭矩 (Break Torque) 屬性為關節 (Joint) 強度設定限制。如果這些限制小於無窮大,並且將大於


這些限制的力/扭矩應用於物件,則其固定關節 (Fixed Joint) 會毀壞,不再受其限制約束。 


無需將連線體 (Connected Body) 分配給關節 (Joint) 即可使其工作。 
角色關節 (Character Joint) 需要向物件附加剛體 (Rigidbody)


可配置關節Configurable Joint
可配置關節
(Configurable Joint)是一種可以完全自定義各種引數的關節型別,它將PhysX物理引擎中所有關節相關屬性都開放出來,因此開發者可以


創造出與其他關節型別行為相似的關節。
可配置關節主要有2類功能:移動/旋轉限制 以及移動/旋轉加速


布料
布料(Cloth)是Unity中的一類物理元件,用來類似於布料的物理模擬效果。主要有互動布 (Interactive Cloth)和蒙皮布 (Skinned 


Cloth)兩種。


互動布 (Interactive Cloth)
互動布 (Interactive Cloth)是在網格上模擬“類似於布”的行為的元件。如果要在場景中使用布,可以使用此元件。
建立互動布:在場景中新增互動布 (Interactive Cloth),
只需依次選擇遊戲物件 (Game Object) -> 建立其他 (3D Object) -> 布 (Cloth)。


彎曲剛度 (Bending Stiffness):布的彎曲剛度。
伸展剛度 (Stretching Stiffness):布的伸展剛度。
阻尼 (Damping):對布運動進行阻尼處理。
厚度 (Thickness):布表面的厚度。
使用重力 (Use Gravity):重力是否應影響布模擬。
自碰撞 (Self Collision):布是否會與自己碰撞。
外部加速度 (External Acceleration):應用於布的恆定外部加速度
隨機加速度 (Random Acceleration):應用於布的隨機外部加速度
網格 (Mesh):由互動布 (Interactive Cloth) 用於模擬的網格
摩擦力 (Friction):布的摩擦力。
密度 (Density):布的密度。
壓力 (Pressure):布內部的壓力。
碰撞響應 (Collision Response):將應用於碰撞剛體 (Rigidbody) 的力的大小。
附件撕裂係數 (Attachment Tear Factor):附加剛體 (Rigidbody) 在撕下之前需要伸展的距離。
附件響應 (Attachment Response):將應用於附加剛體 (Rigidbody) 的力的大小。
撕裂係數 (Tear Factor):布頂點在布撕裂之前需要伸展的距離。
附加碰撞體 (Attached Colliders):包含附加到此布的碰撞體 (Collider) 的陣列


布渲染器 (Cloth Renderer)
投射陰影 (Cast Shadows):如果選中,則佈會投射陰影
接收陰影 (Receive Shadows:如果啟用,則布可以接收陰影
材質 (Materials):布將使用的材質。
使用光探頭 (Use Light Probes):如果選中,則將啟用光探頭。
光探頭錨點 (Light Probe Anchor):光探頭光照在渲染器邊界中心或錨點(如果分配)位置處進行內插。
不可見時暫停 (Pause When Not Visible):如果選中,則在相機未渲染布時不計算模擬。


蒙皮布(SkinnedCloth)
蒙皮布 (SkinnedCloth) 元件與蒙皮網格渲染器 (SkinnedMeshRenderer) 結合作用以對角色模擬衣物。
如果具有使用蒙皮網格渲染器 (SkinnedMeshRenderer) 的動畫角色,則可以將蒙皮布 (SkinnedCloth) 元件 新增到具有蒙皮網格渲染器 


(SkinnedMeshRenderer) 的遊戲物件,使其表現得更加栩栩如生。
當匯入的網格是蒙皮時,蒙皮網格渲染器將會自動新增到匯入的網格。


投射陰影 (Cast Shadows)(僅限專業版):如果勾選該選項,當陰影建立光照射在網格上時,該 網格 (Mesh) 將會建立陰影。
接收陰影 (Receive Shadows)(僅限專業版):如果啟用該功能,該網格 (Mesh) 將顯示投射到其上的所有陰影
材質 (Materials):渲染模型的材質 (Materials) 列表。
質量 (Quality):影響每個頂點的最大骨骼數量。
離屏更新 (Update When Offscreen):如果啟用該功能,蒙皮網格 (Skinned Mesh) 將在離屏後更新。如果禁用該功能,這也將禁止動畫更新



範圍 (Bounds):這些範圍確定蒙皮網格何時處於離屏狀態。邊界框也顯示在場景檢視 (SceneView) 中。範圍是根據模型檔案中的網格 


(Mesh) 和動畫在匯入時預先計算出的。
網格 (Mesh):該渲染器使用的網格。