目标匹配和Blend Trees

通常在游戏中,角色必须以某种方式移动,使得手或脚在特定时间落在特定位置。例如,角色可能需要跳过垫脚石或跳跃并抓住顶梁。
可以使用Animator.MatchTarget函数来处理这种情况。想象一下,例如,您想要安排角色跳转到平台上的情况,并且您已经有一个名为Jump Up的动画片段。首先,你需要在动画片段中找到角色开始离开地面的位置,在这种情况下,在规范化时间内注意到动画片段中的14.1%或0.141: -
您还需要在动画片段中找到角色即将落地的位置,在这种情况下,该位置为78.0%或0.78。

using UnityEngine;
using System;

[RequireComponent(typeof(Animator))] 
public class TargetCtrl : MonoBehaviour {
    protected Animator animator;      
    public Transform jumpTarget = null; 
    void Start () {
        animator = GetComponent<Animator>();
    }    
    void Update () {
        if(animator) {
            if(Input.GetButton("Fire1"))         
                animator.MatchTarget(jumpTarget.position, jumpTarget.rotation, AvatarTarget.LeftFoot,  new MatchTargetWeightMask(Vector3.one, 1f), 0.141f, 0.78f);
        }       
    }
}

Blend Trees:
游戏动画中的一个常见任务是混合两个或更多类似的动作。也许最着名的例子是根据角色的速度混合步行和跑步动画。另一个例子是一个人物在运行过程中向左或向右倾斜。
区分Transitions和Blend Trees很重要。虽然两者都用于创建流畅的动画,但它们用于不同类型的情况。
Transitions用于在给定的时间内从一个动画状态平滑过渡到另一个动画状态。转换被指定为动画状态机的一部分。如果过渡很快,从一个动作到完全不同动作的转换通常是很好的。
Blend Trees被用来允许多个动画通过将它们的部分全部合并到不同程度来平滑地混合。使用混合参数来控制每个运动对最终效果的贡献量,混合参数仅是与动画控制器相关联的数字动画参数之一。为了使混合动作有意义,混合的动作必须具有相似的性质和时间。混合树是动画状态机中的一种特殊类型的状态。
右键单击Animator控制器窗口上的空白区域。
从出现的上下文菜单中选择Create State> From New Blend Tree。
双击Blend Tree以输入Blend Tree Graph
右键单击Animator控制器窗口上的空白区域。
从出现的上下文菜单中选择Create State> From New Blend Tree。
双击Blend Tree以输入Blend Tree Graph
当blendtree设置了动画剪辑和输入参数时,检查器窗口提供了一个图形可视化,显示动画在参数值更改时的组合方式(当您拖动滑块时,树根的箭头更改它们的阴影以显示主导动画片段)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值