2D車輪關節(Wheel Joint 2D)

2D車輪關節(Wheel Joint 2D):是一種物理關節,可以用它來模擬轉動的車輪,

  • 可以為它施加馬達動力(motor power),
  • 它使用了懸吊彈簧(suspension spring)來保持與車輛主體(main body of the vehicle)的距離。

這種關節可用來模擬車輪(wheels)和懸掛系統(suspension)。其目的是保持兩個點在一條延伸到無限遠的直線上,同時使它們重疊(overlap)。這兩個點可以是兩個Rigidbody2D組件,也可以是一個Rigidbody2D組件和世界中的一個固定位置(通過將Connected Rigidbody設置為None來連接到世界中的固定位置)。

  • 簡單的說:2D車輪關節(Wheel Joint 2D),讓兩個點保持在同一條直線上,而這條直線是可以延伸到無限遠的。同時,當沒有外力作用時,這兩個點會保持在一起(即重疊)。

Wheel Joint 2D類似於Slider Joint 2D(無馬達動力或限制約束)和Hinge Joint 2D(無限制約束)的組合。
這種關節對兩個連接的剛體(rigid body)物件施加線性力(linear force),使它們保持在線上,並施加角度馬達(angular motor)以使物件在線上旋轉(rotate),同時用彈簧(spring)來模擬車輪懸掛(wheel suspension)。

設置
Maximum Motor Speed(最大馬達速度)與Maximum Motor Force(最大馬達動力)控制角馬達速度,讓兩個剛體物體旋轉。
Maximum Motor Force(最大馬達動力):設置角馬達的最大扭矩。

  • 即馬達所能施加的最大旋轉力。這個最大扭矩的設置對於控制車輪的轉動速度和力量非常重要。例如:
    • 如果 Maximum Motor Force 設置得太小,馬達可能無法提供足夠的扭矩來驅動車輪,特別是在遇到障礙或需要加速的情況下。
    • 如果 Maximum Motor Force 設置得太大,馬達可能會施加過大的扭矩,導致車輪快速旋轉,可能會影響車輛的穩定性
      模擬懸掛
      可以設置車輪懸掛的硬度和運動,以模擬不同程度的懸掛效果。例如,模擬硬且幾乎不動的懸掛:
  • 設置高頻率(Frequency)(1,000,000是最高值)== 硬懸掛。
  • 設置高阻尼比(Damping Ratio)(1是最高值)== 幾乎不動的懸掛。

若要模擬有彈性且自由運動的懸掛,可以使用以下設置:

  • 設置低頻率 == 鬆弛的懸掛。
  • 設置低阻尼比 == 可動的懸掛。

保持零相對線性距離(zero relative linear distance):在兩個剛體物體的錨點之間指定的線上保持零相對線性距離。
保持角速度(angular speed):在兩個剛體物體的錨點之間保持角速度(通過Maximum Motor Speed選項設置速度,通過Maximum Motor Force設置最大扭矩)。

應用場景

  • 這種關節適用於構建需要像是通過旋轉樞軸連接,但不能脫離指定線的物理對象。例如:模擬具有馬達驅動的車輪。
屬性 功能
Enable Collision 啟用這個屬性後,可以偵測碰撞。
Connected Rigid Body 指定此關節連接到的其他遊戲物件(GameObject)。如果將此設置為「None」,則關節的另一端固定在由「Connected Anchor」設置定義的空間點。
Auto Configure Connected Anchor 啟用此屬性以自動設置此關節連接到的遊戲物件的錨點(Anchor)位置。如果啟用此屬性,則不需要為「Connected Anchor」屬性輸入座標。
Anchor 定義此遊戲物件的2D剛體(Rigidbody2D)上的關節(joint)端點連接的位置(以x、y座標表示)。
Connected Anchor 定義這個關節(joint)端點要連接到另一個遊戲物件的2D剛體(Rigidbody2D)上的位置(以x、y座標表示)。
Suspension 選擇此選項以展開此屬性的設置。
Damping Ratio(阻尼比) 控制彈簧(spring)振盪(oscillation)的關節設置。較高的阻尼比意味著彈簧會更快停止振盪
Frequency 設定遊戲物件接近所需分離距離時彈簧振盪的頻率(以每秒週期數為單位)。範圍為0到1,000,000,值越高,彈簧越硬,也就是說越不容易來回振動。注意:將頻率設置為零會創建最硬的彈簧類型關節(即不振動)
Angle 設定懸掛系統(suspension)的世界(World)運動角度
Use Motor 啟用此選項以對關節應用馬達動力。
Motor 選擇此選項以展開此屬性的設置。
Motor Speed 設定馬達要達到的目標速度(每秒度數)。
Maximum Motor Force 設定馬達在嘗試達到目標速度時可以施加的最大扭矩(torque)(或旋轉力(rotation))。
Break Action 設置當超過力(force)臨界值或達到扭矩臨界值(torque threshold)時採取的動作。
Break Force 設置力的臨界值,當超過時這個關節就會執行選擇的Break Action。預設值為Infinity,表示不執行Break Action
Break Torque 設置扭矩的臨界值,當超過時這個關節就會執行選擇的Break Action。預設值為Infinity,表示不執行Break Action

Damping Ratio(阻尼比):描述系統在受到擾動後振盪及衰減的情形。阻尼比越大,物件受力振盪後越快恢復原狀。

  • 無阻尼:= 0 , 對應沒有阻尼的簡諧運動。
  • 欠阻尼:< 1 , 指數遞減且振盪
  • 過阻尼:> 1 , 沒有振盪的指數遞減
  • 臨界阻尼:= 1 , 介於過阻尼及欠阻尼之間,是許多工程應用想要的結果
  • https://zh.wikipedia.org/zh-tw/%E9%98%BB%E5%B0%BC%E6%AF%94

Reference:https://docs.unity3d.com/Manual/class-WheelJoint2D.html

評論