最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

Unity-可配置關節(jié)

2021-10-27 10:12 作者:unity_某某師_高錦錦  | 我要投稿


可配置關節(jié) (Configurable Joint)?包含其他關節(jié)類型的所有功能,并提供更強大的角色移動控制。當您想要自定義布娃娃的運動并對角色強制實施某些姿勢時,這種關節(jié)特別有用。使用可配置關節(jié)還可以將關節(jié)修改為您自行設計的高度專業(yè)化關節(jié)。

屬性

詳細信息

與其他關節(jié)一樣,使用可配置關節(jié)可以限制對象的移動,而且通過可配置關節(jié)還可以使用作用力將對象驅動到目標速度或位置。由于有許多配置選項,可能需要嘗試不同的選項,才能使關節(jié)完全按照所需的方式運行。


約束運動

可使用?X, Y, Z Motion?和?X, Y, Z Rotation?屬性獨立約束每個關節(jié)軸上的平移運動和旋轉。啟用?Configured In World Space?可以將運動約束到世界軸而不是對象的局部軸。所有這些屬性都可以設置為?Locked、Limited?或 _Free_:

  • Locked?軸會限制所有運動,因此關節(jié)根本無法移動。例如,世界 y 軸中鎖定的對象無法上下移動。

  • Limited?軸允許在預定義的限制范圍內自由移動,如下所述。例如,通過將炮塔的 Y 旋轉限制到特定角度范圍,可以給炮塔設置受限制的火弧。

  • Free?軸允許任意移動。

可使用?Linear Limit?屬性限制平移運動,該屬性定義了關節(jié)可從其原點移動的最大距離(分別沿每個軸進行測量)。例如,為了能夠約束空氣曲棍球臺的曲棍球,可讓關節(jié)在 y 軸為鎖定狀態(tài)(在世界空間中),在 z 軸為自由狀態(tài),并在 x 軸為受限狀態(tài)以便適應球臺的寬度限制;這樣,曲棍球會被限制在游戲區(qū)域內。

還可以使用?Angular Limit?屬性來限制旋轉。與線性限制不同,此屬性可用于為每個軸指定不同的限制值。還可以為 x 軸的旋轉角度定義單獨的上限和下限;其他兩個軸在原始旋轉的兩側使用相同的角度。例如,可使用平面構造一個“搖擺平臺”,將關節(jié)約束為允許在 X 和 Z 方向輕微搖擺,同時鎖定 Y 旋轉。

彈性和彈簧

默認情況下,關節(jié)在達到限制時會停止移動。然而,像這樣的非彈性碰撞在現(xiàn)實世界中是罕見的,因此向受約束的關節(jié)添加一些彈跳感會很有用。為了使受約束的對象在達到限制后反彈,可使用線性和角度限制的?Bounciness?屬性。大部分的碰撞在有了少量彈性之后會顯得更自然,但也可以將該屬性設置為更高的值,從而模擬彈性異常大的邊界,比如臺球桌墊。

有彈性的關節(jié)不會超越限制

為了進一步軟化關節(jié)限制,可使用彈簧屬性:用于平移的?Linear Limit Spring?和用于旋轉的?Angular X/YZ Limit Spring。如果將?Spring?屬性設置為大于零的值,關節(jié)達到限制時不會突然停止移動,而是會通過彈簧力被拉回到限制位置。這個力的強度由?Spring?值確定。默認情況下,彈簧具有完美的彈性,并會按照與碰撞相反的方向彈回關節(jié)。

可使用?Damper?屬性來減少彈性并以更溫和的方式將關節(jié)恢復到限制位置。例如,可使用彈簧關節(jié)創(chuàng)建一個可向左或向右拉動的杠桿,然后彈回到直立位置。如果彈簧具有完美彈性,則杠桿在釋放后將圍繞中心點來回擺動。但是,如果添加足夠的阻尼,彈簧將迅速穩(wěn)定到中立位置。

彈簧關節(jié)越過限制位置但被拉回到限制位置


驅動力

關節(jié)不僅可以對附加到的對象做出反應,而且還可以主動施加_驅動力_使對象運動。一些關節(jié)需要保持對象以恒定速度移動,例如轉動風扇葉片的旋轉電機。使用?Target Velocity?和?Target Angular Velocity?屬性可為此類關節(jié)設置所需的速度。

可能需要使用關節(jié)來將關節(jié)的對象移向空間中的特定位置或移向特定方向。使用?Target Position?和?Target Rotation?屬性可以設置此功能。例如,要實現(xiàn)叉車,可將叉車的叉子安裝在可配置關節(jié)上,然后使用腳本設置目標高度以升高叉子。

設置了目標后,_X, Y, Z Drive_ 和?Angular X/YZ Drive_(或者是?Slerp Drive_)屬性可以指定用于將關節(jié)推向目標的作用力。驅動的?Mode?屬性選擇關節(jié)是否應該尋找目標位置和/或速度。在尋找目標位置時,_Position Spring_ 和?Position Damper?的工作方式與關節(jié)限制相同。在速度模式下,彈簧力取決于當前速度和目標速度之間的“差距”;阻尼器有助于速度穩(wěn)定在所選值,而不是在該值周圍無限振蕩。例如,_XDrive_ 力的公式為:

因此,力會根據當前值與目標值之間的差值成比例增大,并根據當前速度和目標速度之間的差值成比例減小阻尼。Unity 會將力施加到位置驅動和旋轉驅動。

Maximum Force?屬性用于最終微調,無論關節(jié)距其目標有多遠,均可防止彈簧施加的力超過限制值。這樣可以防止遠離目標的關節(jié)快速以不受控制的方式將對象拉回。

在使用任何驅動力(下面描述的?Slerp Drive?除外),關節(jié)都會在每個軸上單獨將力施加到對象。舉例來說,可實現(xiàn)一個航天器,使之具有較高的向前飛行速度,但在側向轉向運動中具有相對較低的速度。


Slerp Drive

不同于其他驅動模式在不同的軸上施加力,_Slerp Drive_ 使用四元數(shù)的球面插值或“Slerp”功能來重新定向關節(jié)。Slerp 過程不會隔離單個軸,而是尋找將對象從當前方向帶到目標的最小總旋轉,并根據需要將該旋轉應用于所有軸。Slerp Drive 的配置比較簡單,但不允許為 X 和 Y/Z 軸指定不同的驅動力。

要啟用 Slerp Drive,請將?Rotation Drive Mode?屬性從?X and YZ?更改為?Slerp。關節(jié)可以使用?Angular X/YZ Drive?值或?Slerp Drive?值,但不能同時使用兩者。


Unity-可配置關節(jié)的評論 (共 條)

分享到微博請遵守國家法律
麻栗坡县| 马公市| 榆社县| 当阳市| 宁乡县| 本溪| 安图县| 宜宾县| 中宁县| 盐源县| 平南县| 随州市| 昆明市| 定陶县| 肇州县| 垦利县| 邓州市| 五指山市| 阿拉善右旗| 鹤庆县| 彰武县| 株洲市| 昌宁县| 涞源县| 金沙县| 沾化县| 乌拉特后旗| 溧水县| 台南市| 安新县| 乐昌市| 枞阳县| 自贡市| 绥江县| 炉霍县| 马关县| 平罗县| 北流市| 彰武县| 思南县| 定南县|