在团结中,如果我们想让一个人类球员接到投球的话,会采用什么方法。我有捕捉动画,但是动画需要以这样的方式进行同步:当动画在球到达玩家手之前稍微自动播放时,当球到达手时,动画在玩家的框架中随时准备接球,以及如何改变手和球员的位置,以便它可以抓住各种类型的球(球可能来自轻微的轨迹,并在不同的高度回来)来到他身边并且抓住看起来不会自然。
我有不同的动画捕捉。 我对编码很满意。我不需要确切的代码。我需要的是制作一个固定没有捕获动画的模型的逻辑,以便能够完美地抓住每个球向他的方向前进。
答案 0 :(得分:1)
您需要利用inverse kinematics和动画来完成此操作。
Unity为此功能提供built-in support,但它是专业版功能。资产商店有许多附加组件,以提供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)