2010-05-28 128 views
2

我正在與physx(嘗試添加ik到布娃娃)此刻。出於某種原因,所有布娃娃關節都是無摩擦的,結果,布娃娃往往會「擺動」,特別是當它懸掛在空中並與多個移動的運動員相連時。PhysX:關節摩擦/「僵硬」關節

我想增加關節的摩擦力,使它們「僵硬」。設想一個需要多次打開的門(具有非常生鏽的鉸鏈) - 即它圍繞鉸鏈旋轉但不是很快,快速停止,並且需要較大的力來使其旋轉。 或想想藝術人體模型(請參閱谷歌圖片中的圖片) - 他們的四肢四處移動,但他們不會自由擺動。

不幸的是,我在physx中找不到與關節摩擦有關的任何東西。我檢查過文檔,谷歌和頭文件,並且找不到任何有用的東西。

那麼,我該如何使用physx實現剛性關節/關節摩擦呢? (我認爲)我已經看到沒有這個問題的Physx遊戲,所以顯然應該有一些方法來做到這一點。

P.S.我不是在說這裏的聯合/求解器不穩定。布娃娃是穩定的(或多或少),關節的榮譽自由度(關節限制),但關節沒有摩擦,我想增加他們的摩擦力。

回答

1

我問一個問題,關於NVIDIA的論壇最近這可能與此有關:link

不幸的是我沒有得到一個真正的答案我的問題,但設法做我想做的事,使用如果只增加一個沒有彈簧常數的阻尼常數,關節中的彈簧可以幫助您。這適用於我的情況,但我無法解釋爲什麼所以儘管我很樂意使用它,但我並不完全確定是否推薦它。

我不知道你是否也可以將角度阻尼添加到布娃娃的所有單個部分,這將使他們在開始移動後更快地減速,但看起來可能不正確。可能是你必須嘗試的那些東西之一。

+0

嗯,阻尼工作。在極限和接頭處設置高的阻尼彈簧強度很好地適用於公轉/ d6接頭,在球形接頭上不太好。所以我終於得到了一個僵硬的布娃娃。傳統意義上它不是摩擦,但它提供了相同的效果。它看起來像一個「無證的功能」,但我嚴重懷疑它將永遠被打破 - 具有高阻尼和零強度的彈簧應該表現爲這種方式。 – SigTerm 2010-05-28 17:01:27

+0

@SigTerm:令人欣慰的是,我的擔憂是它可能會在未來的更新中被打破。很高興它有一些幫助,如果不是你想要的。 – identitycrisisuk 2010-06-01 07:57:45

0

我發現this forum thread關於Physx中的擺動關節,不知道你是否看過它,但我希望它有幫助。

+0

不,這不是事實 - 布娃娃是穩定的,但我需要使它更加「僵硬」。我更新了問題。 – SigTerm 2010-05-28 12:31:23

0

你爲什麼不嘗試:

d6Desc.swingDrive.driveType.raiseFlagMask(NX_D6JOINT_DRIVE_VELOCITY); d6Desc.swingDrive.forceLimit = 0.1f; d6Desc.twistDrive.driveType.raiseFlagMask(NX_D6JOINT_DRIVE_VELOCITY); d6Desc.twistDrive.forceLimit = 0.1f; d6Desc.driveAngularVelocity.x = 0; d6Desc.driveAngularVelocity.y = 0; d6Desc.driveAngularVelocity.z = 0;

你用小的力量將速度驅動到0,這樣移動就會減少,你將停止在地板上移動。這不完全像摩擦但接近。