2014-09-02 61 views
1

統一使用什麼方法來使用,如果我們想要一個人類球員抓到他拋出的球。我有捕捉動畫,但動畫需要同步化,以便當動畫在球到達球員手牌前自動播放一段時間,以便當球到達手部時,動畫處於框架中,其中球員準備好接球,並且如何改變手和球員的位置,以便它能夠接住各種類型的球(球可能從微小的軌跡上回來並在不同的高度被接收)來到他身上並且捕捉物看起來不是聯合的自然。聯合使用人形模型捕捉球?

我有不同的動畫捕捉。 我確定編碼。我不需要確切的代碼。我所需要的是製作一個固定不動的動畫模型,以便完美地捕捉每一個朝着他的方向的球。

回答

1

您需要利用inverse kinematics以及您的動畫來做到這一點。

Unity爲此功能提供built-in support,但它是Pro-only功能。資產商店有許多附加組件可以提供Unity Free中的功能,其中一個是免費的。

你也可以實現你自己的IK系統。互聯網上有許多關於如何做的信息來源,包括用於C++的this視頻教程(將概念和數學結轉到任何語言)。

流體運動的關鍵是將您當前的動畫與IK解算器混合使用。你如何做到這一點取決於你如何選擇實現你的IK系統,但邏輯看起來像這樣:

if(ball.angleFromPlayer more than 90 or less than 180) 
     playAnimationA() 
if(ball.angleFromPlayer more than 180 or less than 270) 
     playAnimationB() 
... 

mixingPercentage = ball.distance/ball.startingDistance; 
solveIKForArms(ball.postion,mixingPercentage)