我想让我的角色在我的场景中打不同的目标。我正在使用Mixamo的一个出拳动画。如何让角色在播放动画时击中目标?任何建议都是感激的!
我有点不确定你在问什么,但我认为这是:
你有多个动画,当你按下打孔按钮时,你希望打孔动画不受其他动画的影响而播放。
如果这确实是你所要求的,请纠正我,如果我错了,你必须使用动画混合树混合动画。
编辑
所以在阅读了额外的评论之后,我可以向你解释如何做到这一点。答案确实保持不变-动画混合树。让我解释一下。
每只手臂/手都有两个动画。一种是直接向前打,另一种是直接向侧面打。
混合树本质上是两个动画在不同程度上的混合。在这个例子中,物理度是90度。假设敌人在玩家左边的对角线上(45度),那么你需要计算角度并将其传递给混合树,这将混合两个动画,从而在中间得到一些东西。
所以你需要做的是:
-
获得两个动画,其中一个是冲压
-
为两个动画设置一个混合树
-
当你出拳时,计算你所面对的和敌人所在位置之间的角度。这样的:
public float max = 90; float GetBlendTreeInput() { Vector3 forward = new Vector3(transform.forward.x, 0, transform.forward.z); Vector3 enemyDirection = enemyTransform.position - transform.position; enemyDirection = new Vector3(enemyDirection.x, 0, enemyDirection.y); float angle = Vector3.Angle(forward, enemyDirection); float clampedAngle = Mathf.Clamp(angle, 0, max); return clampedAngle / max; }
-
将其传递给混合树观察的动画变量。