Unity-动画系统

在Unity引擎中,大致上可以分为两大类动画控制系统,分别是Animation和Mecanim动画系统.。
Aniamtion是低版本中的动画控制系统。而Aniamtor是Unity新的动画系统Mecanim动画系统的核心组件.通过它能够实现对动画的重定向,在后面的课程中,将会详细讲解,本课的内容为Aniamtion动画的控制。

模型导入的常见问题

1.模型材质或纹理丢失

当模型中出现紫红色区域或模型没有纹理,很有可能是材质或纹理丢失。


材质丢失


纹理丢失

当遇到材质丢失这种问题,找到相应材质,赋给模型便可以解决。
当遇到纹理丢失,将纹理赋值给材质球,便可以解决。

2.模型太小或太大

当将模型拖动到场景中时,会太小或太大,此时,可能会想到将模型通过缩放工具调整到合适大小 ,但这种方法并不正确,正确的方式是通过模型导入设置中的Scale Factor项进行调整。

动画的切割方法

将参考资料中的 Animation动画素材导入到Unity项目中,选中Charactor.fbx文件,在Inspector面板中进行相应设置。

Rig标签设置如下:

Animation标签设置如下:

选中Import Animation项后,点击Apply按钮,将会出现如下界面。

在Charactor.fbx同目标中,打开animations文件,此文件中记录着此模型各动画开始帧和结束帧,(通常该文件会由动画制作人员提供),接下来,我们需要根据此文件内容进行动画切割。

选中Clips中的Take 001项,会出现以下界面。

将Take001修改为 idle,并将Start设定为 0, End设定为 30,然后点击底部的Apply按钮,并可以通过底部的预览窗口进行动画查看。(如果没有此窗口,请点击最底部的横条)

如果希望此动画能够循环播放,可以将Warp Mode 设定为Loop.

然后点击Clips下的 “+” 继续添加新动画,指定开始与结束帧,点击Apply.

通过上面的操作按Animations.txt文件内容切割动画。

动画的控制

动画切割完成后,我们可以通Animation组件提供的方法对动画进行控制。

将切割好动画的模型拖动到场景中,会发现模型上挂载的Aniamtion组件,并且组件中的animations数组中存放的是刚刚切割好的动画片段。

案例1 动画切换

创建一个C#脚本MyAni,挂载到模型上,并编写以下脚本。

using UnityEngine;
using System.Collections;

public class MyAni : MonoBehaviour {

	private Animation ani;
	// Use this for initialization
	void Start () {
		ani = this.gameObject.GetComponent<Animation> ();

	}

	// Update is called once per frame
	void Update () {
		if (Input.GetMouseButtonDown (0)) {
			//设定动画为循环方式
			ani.wrapMode = WrapMode.Loop;
			//将动画切换到walk
			ani.CrossFade ("walk");
		}
		if(Input.GetMouseButtonDown(1)){
			//设定动画为循环方式
			ani.wrapMode = WrapMode.Loop;
			//将动画切换到idle
			ani.CrossFade ("idle");
		}
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值