3d 在unity中使用人形模型接球?

3d 在unity中使用人形模型接球?,3d,unity3d,game-physics,3d,Unity3d,Game Physics,在unity中,如果我们想让一名人类球员接住向他扔来的球,该使用什么方法。我有用于接球的动画,但动画需要同步,以便当动画在球到达球员手之前自动播放一段时间,以便当球到达手时,动画处于球员准备接球的帧中,以及如何更改球的位置手和球员,这样它就可以接住各种类型的球(球可能从轻微的轨迹上落下,并在不同的高度被接住)向他落下,接球看起来并不自然 我有不同的捕捉动画。 我对编码没问题。我不需要确切的代码。我需要的是,制作一个具有固定抓球次数动画的模型的逻辑应该是什么,以便完美地抓住每个朝他方向投出的球。您

在unity中,如果我们想让一名人类球员接住向他扔来的球,该使用什么方法。我有用于接球的动画,但动画需要同步,以便当动画在球到达球员手之前自动播放一段时间,以便当球到达手时,动画处于球员准备接球的帧中,以及如何更改球的位置手和球员,这样它就可以接住各种类型的球(球可能从轻微的轨迹上落下,并在不同的高度被接住)向他落下,接球看起来并不自然

我有不同的捕捉动画。 我对编码没问题。我不需要确切的代码。我需要的是,制作一个具有固定抓球次数动画的模型的逻辑应该是什么,以便完美地抓住每个朝他方向投出的球。

您需要利用动画来完成这一点

Unity提供了此功能,但它是仅限Pro的功能。资产商店有许多附加组件,以提供Unity Free中的功能,其中一个是免费的

也可以实现自己的IK系统。互联网上有很多关于如何做到这一点的信息,包括C++的视频教程(概念和数学移植到任何语言)。 流体运动的关键是将当前动画与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)