Unity入门操作

xiaoxiao2021-02-28  62

Mecanim动画系统相对于之前的旧版动画系统的优势 1.为人形角色提供的简易的工作流和动画创建能力 2.运动重定向功能,把动画从一个角色模型应用到另一个角色模型上 3.针对动画片段的简易工作流,即针对动画片段以及它们之间的过渡和交互过程的预览能力。这样可以使动画师更加独立的进行工作,而不用过分的依赖程序员,从而在编写游戏逻辑代码之前即可预览动画效果 4.一个用于管理动画间复杂交互的可视化编程工具 5.通过不同逻辑来控制不同身体部位运动的能力

**执行流程 1.资源的准备和导入 2.角色的建立 3.角色的运动**

首先选择资源导入,进入下图 选择Select面板,进入下图, AnimationType: None : 不使用动画 Legacy:旧版动画 Generic:Mecanim动画系统,适用于四肢行走的3D模型或者未使用动作复制功能的公话制作 Humanoid:Mecanim动画系统,适用于像人一样的直立行走模型 Avater Definition表示骨骼 Configure要变成对勾状(点击进行保存场景)进入下图 进入骨骼界面可以对动画进行极限检测, 检测完毕后,点击游戏对象进入下图并添加*-REF这样就可以实现动画了。 此时有个问题,游戏对象会一直前进,此时我们需要将Apply Root Motion勾选取消掉, 双击*-REF进入下图 绿色的Entry表示动画的入口,黄色的代表默认动画,下图表示链接 产生关系就可以进行关联(控制), 点击链接线进入,如下图,图片右侧可以进行设置,和脚本联系到一起, 链接最好是双向的否则,动画会进入死循环,当然如果是结束动画就无所谓了。 下图中有个非常重要的细节Has Exit Time的意思是执行完动画之后再执行之后的动画, 此时就可以加入脚本了,

动画分层 Avatar Mask实现冻结某些关键 注意(分层的时候,需要调权重值,动画模式需要选为override覆盖模式) 操作步骤一共有三步 1:建立两个层(每层选择一个执行动画) 2:选择一样的Weghit 3:其中的一个添加Mask并进行下图的遮盖操作, IK IK使用模板 using UnityEngine; using System.Collections; public class Test : MonoBehaviour {

Animator ani; public GameObject sphere; // Use this for initialization void Start () { ani = this.GetComponent<Animator>(); } // Update is called once per frame void Update () { } void OnAnimatorIK(int layer) { if(sphere != null) { ani.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1f); ani.SetIKPosition(AvatarIKGoal.LeftHand, sphere.transform.position); } }

} 对象面板 脚本 using UnityEngine; using System.Collections; public class lkst : MonoBehaviour {

Animator ani; public GameObject sphere; // Use this for initialization void Start() { ani = this.GetComponent<Animator>(); } // Update is called once per frame void Update () { } void OnAnimatorIK(int layer) { if (sphere != null) { ani.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1f); ani.SetIKPosition(AvatarIKGoal.LeftHand, sphere.transform.position); } }

} 实现分层显示在下图中需要将IK Pass勾选 最终的效果是LeftHand会一直指向目标对象。

转载请注明原文地址: https://www.6miu.com/read-59651.html

最新回复(0)