朱峰社區(qū)首頁 朱峰社區(qū)

搜索資源 注冊|登陸

等待

返回 展開菜單

UDK 曲線編輯器和物理約束參考

face robot中文教程 觀看預覽

face robot中文教程

包含4節(jié)視頻教程
關注4.3萬

講解face robot運動捕捉表情動畫的綁定教程。face robot是xsi的獨立模塊,專門制作高精度電影級表情動畫。

關閉

朱峰社區(qū)評論:大家好,歡迎在朱峰社區(qū)學習,今天我們介紹一下UDK的曲線編輯器的使用和物理約束的參考。希望大家學過后能很好的應用到制作中。

介紹

UnrealEnginge3(虛幻引擎3)利用其曲線編輯器,實現(xiàn)對適時修改屬性的精確控制。它當前應用于Matinee?和Cascade工具中。

概況

下圖是正在運行的曲線編輯器截圖:

點擊查看朱峰社區(qū)圖片

1 使窗口符合軌跡的可視部分的寬度
2 使窗口符合軌跡的可視部分的高度
3 平移/編輯模式
4 縮放模式
5 自生成曲線模式
6 用戶設置曲線模式
7 曲線切斷模式(拐角)
8 線性模式
9 常數(shù)值模式
10 曲線名稱
11 顯示/隱藏曲線按鈕
12 曲線切線控制柄

控件

曲線編輯器使用的控件與UnrealEnginge3(虛幻引擎3)中其他工具相似:

在平移/編輯模式下:

Click-drag on background(點擊拖動背景) 平移查看
Mouse wheel(鼠標滑輪) 放大和縮小
Click on key(點擊按鍵) 選擇點
Ctrl-click on point(Ctrl-點擊點) 點的選中與否
Ctrl-click on curve(Ctrl-點擊曲線) 在點擊處添加新的關鍵點
Ctrl-drag(Ctrl-拖動) 移動當前選擇
Ctrl-Alt-drag(Ctrl-Alt-拖動) 方框選擇
Ctrl-Alt-Shift-drag(Ctrl-Alt-Shift-拖動) 方框選擇(添加至當前選擇)
Delete(刪除) 刪除已選定的點
Ctrl-Z 取消
Ctrl-Y 重做
Z 進入縮放模式

在縮放模式下:

Left-click, drag vertically(左擊,垂直拖動) 縮放Y軸 (輸出)
Right-click, drag horizontally(右擊,水平拖動) 縮放X軸 (輸入)

注: 并非所有使用曲線編輯器的工具均可支持Undo/Redo(取消/重做)。

插值模式

插值模式按鈕(在示意圖中的編號為5至9)控制著曲線上每一點抵達另一點所使用的方法。如果您選用一種曲線模式(自動、用戶或折斷),那么您將會發(fā)現(xiàn)白色控制柄(在示意圖中的編號為12),您可以點擊拖動,幫助更好地控制點與點之間的曲線。如果您選擇自動曲線模式下的一個按鍵,并利用白色控制柄(編號12)調(diào)節(jié)其切線,它將自動轉(zhuǎn)換為手動曲線模式。

曲線編輯器預置曲線

曲線編輯器現(xiàn)在支持預置曲線——一組簡易的自動生成曲或是保存和重新使用用戶創(chuàng)建的曲線。

注: 值得注意的是預置曲線僅僅提供一個在CurveEditor(曲線編輯器)中可用的曲線模板。它們解決了反復創(chuàng)建相同曲線的問題,有效地節(jié)約了時間。CurveEdPresetCurve(曲線編輯器預置曲線)是一種簡易的儲存器對象,用于存儲與用戶所存的預置曲線相關的數(shù)據(jù)。它們不能“共享”不同對象間的曲線。

使用自動生成曲線

為了使用由引擎提供的自動生成曲線,僅需右擊您希望添加到曲線編輯器左欄中的曲線,并選擇“Preset Curves(預置曲線)”,將顯示下列對話框,含有按照曲線顯示的分配類型而啟動的可選子曲線:

點擊查看朱峰社區(qū)圖片

圖1:預置曲線對話框

在預置下拉組合框中,可選擇下列選項:

選定Cos Wave(余弦波)或Sine Wave(正弦波)預置后,將顯示下列設置參數(shù):

下圖顯示了一個頻率為2.0,比例為0.5,偏移為1.0的Cos Wave(余弦波)。

點擊查看朱峰社區(qū)圖片

圖2: 一個生成的Cos Wave(余弦波)實例

選定Linear Decay預置后,將顯示下列設置參數(shù):

下圖顯示了一個StartDecay為0.2,StartValue為0.9,EndDecay為0.8且EndValue為0.25的Linear Decay(線性衰減):

點擊查看朱峰社區(qū)圖片

圖3: 一個生成的Linear Decay(線性衰減)實例

注意此情況下的曲線需要一些調(diào)整。默認情況下,所有自動生成的曲線采用AutoSet(自動設置)曲線插值方法。在Linear Decay(線性衰減)的情況下,選點并設置插值的方法將“修正”這條曲線。

用戶設置曲線

為了使用用戶設置曲線,您必須首先在一個數(shù)據(jù)包中創(chuàng)建一個CurveEdPresetCurve(曲線編輯器預置曲線)實例。右擊綜合瀏覽器,并選擇“New CurveEdPresetCurve(新建曲線編輯器預置曲線)”,即可完成該操作。您可以根據(jù)自己的喜好來為曲線命名,但在當時不得使用。否則,該對象將不會公開顯示任何參數(shù)。

完成上述操作后,右擊您希望在曲線編輯器左欄中保存的曲線標簽,并選擇“Save Preset Curve(保存預置曲線)”,即可將一條曲線保存到這個對象中。它還會打開PresetCurve(預置曲線)對話框,但此時,僅有下列可用選項:

選定用戶設置后,將顯示下列對話框:

點擊查看朱峰社區(qū)圖片

圖4:用戶設置屬性窗口

在您希望保存曲線的綜合瀏覽器中,選擇相關曲線,點擊屬性窗口上的“Use Current Object(使用當前對象)”按鈕。點擊OK按鈕,您將會把這條曲線保存到已選定曲線對象的目錄中。

現(xiàn)在用戶可以通過選擇用戶設置(User-Set)選項,并從綜合瀏覽器中選擇要使用的曲線來使用這條預置曲線了。

使用說明1:有時,您通過預置組合框中的鼠標點擊來選擇一條選項時,它并未正確更新對話框。出現(xiàn)這種情況時,僅需選擇組合框,使用上行和下行箭頭,選擇一個預置曲線選項。

使用說明2:目前,預置曲線還不適用于VectorUniformCurve(矢量平均曲線)分部。這個問題將會盡快修正。

好了,關于曲線編輯器的使用內(nèi)容就到這了,我們來學習下面的內(nèi)容,物理約束參考。

物理約束的參考我們主要從概況,設置,示例來介紹。

概況

約束實際上是關節(jié)的另一個名稱。它使您能夠?qū)蓚剛性物體連接在一起,并應用限制或者力。虛幻引擎3有非常靈活的數(shù)據(jù)驅(qū)動約束系統(tǒng),允許設計者簡單地更改一些選項就可以制作許多不同類型的關節(jié)。該引擎有一些默認的關節(jié)類型(球窩、hinge(鉸鏈)、Prismatic(棱柱))而它們僅僅在設置上有所不同。您應該可以從任意類型的關節(jié)入手,通過設置自己的配置進行實驗。

共享的及每個實例設置

這些設置被分為2部分——某個關節(jié)的所有實例所共享的設置,以及特別針對各個實例的設置。例如,一個關節(jié)限制對該關節(jié)的所有實例都是相同的,但是在各個實例中各種運動設置不盡相同。共享屬性被存儲在RB_ConstraintSetup對象中,而每個實例的屬性被存儲在RB_ConstraintInstance對象中。在PhAT中您可以通過按下鍵盤上的“I”鍵(或者按下工具欄上的“i”按鈕)選定關節(jié),在這些設置間切換。

硬度及阻尼

您可在約束中的幾處設置一個“硬度”與“阻尼”參數(shù)以控制彈簧行為。您可以在一個由彈簧與油缸活塞制成的汽車懸架環(huán)境中考慮這些設置。彈簧控制力量產(chǎn)生的大小,將物體帶回其默認位置或者平衡位置;而阻尼就像用于阻礙任意運動的油。如果您有硬度而沒有阻尼,那么運動將前后擺動且從不停止。如果您將阻尼設置得很大,會花費很長時間到達平衡狀態(tài)。

RB_ConstraintSetup
總體設置

ConstraintBone1 在一個PhysicsAsset(物理資源)中,關節(jié)應該連接的第一塊骨骼的名稱。
ConstraintBone2 在一個PhysicsAsset(物理資源)中,關節(jié)應該連接的第二塊骨骼的名稱。

線性設置

有3個LinearSetup(線性設置)結(jié)構(gòu)——分別對著X,Y與Z方向。每個都有如下設置

bLimited 是否對此程度的自由度存在限制。如果為假,線性運動沒有絲毫限制。
LimitSize 如果bLimited為真,在此方向上允許的運動量。將此設置為0會完全“鎖定”此自由度 。

注意線性限制實際上是球狀的——所以如果方向沒有被限制為0(“鎖定的”)那么它將使用最大的3 LimitSize值。所以如果X為0,Y為10且Z為20,它將被限制在在YZ平面上一個半徑為20的圓內(nèi)。如果X為0,Y為0且Z為20,它將被限制在沿著Z軸從+20到–20的線段上。

bLinearLimitSoft 默認情況下線性約束是“hard(硬)”。如果您將此設置為真,它們將被作為彈簧性的處理,而您可以“推”進它們內(nèi)部。
LinearLimitStiffness 如果bLinearLimitSoft為真,它控制限制彈簧的硬度。
LinearLimitDamping 如果bLinearLimitSoft為真,它控制限制彈簧的阻尼。
bLinearBreakable 如果為真,通過在關節(jié)上作用一個線性力,該關節(jié)會損壞(主要將關節(jié)拉斷)。
LinearBreakThreshold 如果bLinearBreakable為真,這就是破壞關節(jié)所需要的力。

角度設置

關節(jié)的角度部分在條件“swing(擺動)”與“twist(扭曲)”中指定。您可以認為擺動是沿X軸的圓錐體,而twist(扭曲)是繞該軸的旋轉(zhuǎn)。在UE3中,錐形約束由兩個角度描述,因此可以是一個橢圓錐體。

bSwingLimited 如果為真,兩個體之間的夾角為一個圓錐體。
bTwistLimited 如果為真,兩個體之間的twist(扭曲)被限制。
bSwingLimitSoft 默認情況下擺動錐的限制為“硬”。如果此被設置為真,它變?yōu)閺椈尚郧夷鼙煌迫搿?
bTwistLimitSoft 默認情況下twist(扭曲)限制為“硬”。它變?yōu)閺椈尚郧夷鼙煌迫搿?
Swing1LimitAngle 用角度定義擺動限制錐的一維。
Swing2LimitAngle 用角度定義擺動限制錐的另一維。
TwistLimitAngle 定義在兩個受約束體之間允許的twist(扭曲)的數(shù)量。
SwingLimitStiffness 如果bSwingLimitSoft為真,它控制錐體的硬度 。
SwingLimitDamping 如果bSwingLimitSoft為真,它控制錐體的阻尼。
TwistLimitStiffness 如果bTwistLimitSoft為真,它控制twist(扭曲)限制的硬度。
TwistLimitDamping 如果bTwistLimitSoft為真,它控制twist(扭曲)限制的阻尼。
bAngularBreakable 如果為真,在其上作用扭矩時候,此關節(jié)可以被破壞(主要扭斷關節(jié))。
AngularBreakThreshold 如果bAngularBreakable為真,這就是破壞關節(jié)所需要的扭矩。

滑輪設置

滑輪是一種特殊的關節(jié),如同一個體上的某一點通過繩索連接到另一個體上的一點,而該繩索在空間上也穿過這兩個點。當使用這種關節(jié)時,大部分其它關節(jié)設置將沒有效果。

bIsPulley 如果為真,該關節(jié)將被作為滑輪類型處理。
bMaintainMinDistance 如果為真,在“rope(繩索)”中不允許有“slack(松弛)”,它們反而有點像支桿那樣別處理,所以您可以推上一個物體而另一個將被推下。
PulleyRatio 滑輪上的齒輪傳動比。如果它不為1.0,拉一端將會導致另一端運動較少,但是力量更多。

RB_ConstraintInstance
速度及位置驅(qū)動

虛幻引擎3提供2種方法驅(qū)動一個關節(jié)——位置及速度驅(qū)動。位置驅(qū)動的作用力像彈簧,在此關節(jié)試圖使用您指定的硬度及阻尼屬性到達一個給定位置。速度的作用如同一個馬達,在此您指定您想要的速度以及用于達到此速度的最大的力。

線性設置

bLinearXPositionDrive 在線性X軸上允許位置驅(qū)動。
bLinearXVelocityDrive 在線性X軸上允許速度驅(qū)動。
bLinearYPositionDrive 在線性Y軸上允許位置驅(qū)動。
bLinearYVelocityDrive 在線性Y軸上允許速度驅(qū)動。
bLinearZPositionDrive 在線性Z軸上允許位置驅(qū)動。
bLinearZVelocityDrive 在線性Z軸上允許速度驅(qū)動。
LinearPositionTarget 如果允許線性位置驅(qū)動,這是關節(jié)試圖達到的目標相對位置。
LinearVelocityTarget 如果允許線性速度驅(qū)動,這是關節(jié)試圖達到的目標相對速度。
LinearDriveSpring 如果線性位置驅(qū)動被激活,這是驅(qū)動彈簧的硬度。
LinearDriveDamping 如果線性位置驅(qū)動被激活,這是驅(qū)動彈簧的阻尼。
LinearDriveForceLimit 如果線性速度驅(qū)動被允許,這是用于獲得LinearVelocityTarget的最大的力。

角度設置

bSwingPositionDrive 在擺動軸上允許位置驅(qū)動。
bSwingVelocityDrive 在擺動軸上允許速度驅(qū)動。
bTwistPositionDrive 圍繞twist(扭曲)軸允許位置驅(qū)動。
bTwistVelocityDrive 圍繞twist(扭曲)軸允許速度驅(qū)動。
bAngularSlerpDrive 高級選項。指定將驅(qū)動作用于關節(jié)的方法。
AngularPositionTarget 如果角度位置驅(qū)動被激活,這是關節(jié)試圖達到的目標相關四元數(shù)。
AngularVelocityTarget 如果角度速度驅(qū)動被激活,這是關節(jié)試圖達到的目標相對角速度。
AngularDriveSpring 如果角度位置驅(qū)動被激活,這是驅(qū)動彈簧的硬度。
AngularDriveDamping 如果角度位置驅(qū)動被激活,這是驅(qū)動彈簧的阻尼。
AngularDriveForceLimit 如果角度速度驅(qū)動被激活,這是用于獲得AngularVelocityTarget的最大扭矩。

示例
球窩

球窩結(jié)合是一種簡單的關節(jié),它所有的線性部分被鎖定且所有角度部分都是自由的。

Hinge(鉸鏈)

與球窩結(jié)合一樣,一個hinge(鉸鏈)的所有線性部分是鎖定的,但是其擺動部分也被鎖定,故它能繞著它的twist(扭曲)軸旋轉(zhuǎn)。

Prismatic(棱柱)

Prismatic(棱柱)關節(jié)3個線性自由度中有2個被鎖定,且其所有角度自由度也被鎖定。這允許沿著一個“軌道”滑動但不能旋轉(zhuǎn)。

關節(jié)摩擦

您可以使用驅(qū)動設置模擬關節(jié)摩擦。打開目標速度為零的速度驅(qū)動,并使用LinearDriveForceLimit與AngularDriveForceLimit設置控制該關節(jié)阻礙運動的強度。

“Punchbag(沙袋)”

您應該首先創(chuàng)建一個球窩關節(jié),用一個關節(jié)來模擬像Punchbag(沙袋)的東西(一個球位于垂直桿頂部,該垂直桿可以被敲擊)。然后打開swing(擺動)位置驅(qū)動并調(diào)節(jié)AngularDriveSpring與AngularDriveDamping,直到被推動時順利底繞著垂直位置擺動。您可以設置擺動限制,以確保它不會過度彎曲。

朱峰社區(qū)3dsmax2016模擬學習系統(tǒng) 朱峰社區(qū)3dsmax2016模擬學習系統(tǒng)

朱峰社區(qū)網(wǎng)頁版
朱峰社區(qū)網(wǎng)頁版(手機掃描-分享-添加到屏幕)


朱峰社區(qū)公眾號
朱峰社區(qū)微信公眾號(微信掃一掃-關注)

資源說明圖文教程無法下載,只能觀看圖片和文字。
版權(quán)規(guī)則本站圖文皆來自互聯(lián)網(wǎng)共享資源,如涉及到版權(quán)請查看版權(quán)規(guī)則。本平臺提供圖文僅可用于個人學習,如用于商業(yè)請購買正版。您必須遵守的版權(quán)規(guī)則

未知用戶

未知用戶

2005-2025 朱峰社區(qū) 版權(quán)所有 遼ICP備2021001865號-1
2005-2025 ZhuFeng Community All Rights Reserved

VIP

朱峰社區(qū)微信公眾號

回頂部

1.復制文本發(fā)給您的QQ好友或群、微信等;好友點擊鏈接以后,轉(zhuǎn)發(fā)就成功了。 2.如朋友點擊您的鏈接,您需要需刷新一下才行;同一個好友僅能點擊一次。
購買VIP,觀看所有收費教程!