游戏制作之路(38)加载旧的动画

栏目: 后端 · 发布时间: 5年前

内容简介:游戏之所以迷人,是因为它让人看到很多真实的动作,以及各种各样精彩的动画。在一个游戏里没有动画效果,是不可想象的,就像手机没有信号一样,但是很多动画并不是在unity3d里制作的,而是在3DS max、Maya和Blender等专业的3D动画软件制作出来的。因此游戏开发人员要懂得怎么样加载和使用导出来的动画,就成为必备的技能。这里就来学习怎么样加载unity3d旧的动画,它是通过加载fbx文件来实现的,为什么要学习旧的动画呢?因为旧的动画在设置和编程方面比较简单,这样对于初学者来说,是一个最佳的方式,虽然新的

游戏之所以迷人,是因为它让人看到很多真实的动作,以及各种各样精彩的动画。在一个游戏里没有动画效果,是不可想象的,就像手机没有信号一样,但是很多动画并不是在unity3d里制作的,而是在3DS max、Maya和Blender等专业的3D动画软件制作出来的。因此游戏开发人员要懂得怎么样加载和使用导出来的动画,就成为必备的技能。这里就来学习怎么样加载unity3d旧的动画,它是通过加载fbx文件来实现的,为什么要学习旧的动画呢?因为旧的动画在设置和编程方面比较简单,这样对于初学者来说,是一个最佳的方式,虽然新的工程里unity公司已经不建议使用这种动画了。

为了实现学习这个例子,先要找到一个fbx的文件,如下图所示:

游戏制作之路(38)加载旧的动画

这个文件从网站https://free3d.com/3d-model/wolf-rigged-and-game-ready-42808.html里下载的,解压之后就可以看到上面的文件,我们主要使用Wolf_with_Animations.fbx文件,这个是带有动画的fbx文件。

接着下来,就需要创建一个unity3d的工程,如下图:

游戏制作之路(38)加载旧的动画

上图就是创建一个空的unity3d的缺省3D工程,里面有一个摄像机和一个方向光。

接着下来,如下图这样导入fbx文件:

游戏制作之路(38)加载旧的动画

在A处的Assets点击鼠标右键,就可以弹出上面的菜单,然后选择Import New Asset...,就会弹出下面的窗口:

游戏制作之路(38)加载旧的动画

先在A处选择文件,在B处确认是否自己需要导入的文件,最后在C处点击导入,就可以把这个fbx动画导入到工程里了,如下图:

游戏制作之路(38)加载旧的动画

这时,就可以看到加载的动画了,可以在右边点击播放按钮进行测试一下动画是否正常。由于为了简单,我们需要把动画改变旧的动画,如下图设置:

游戏制作之路(38)加载旧的动画

在Animation Type里点击选择框,弹出下拉列表,然后可以看到当前打勾的是Generic类型动画,我们要把它改为Legacy类型动画,如下图所示:

游戏制作之路(38)加载旧的动画

这里可以看到已经是旧动画了,并且在B处点击应用Apply。这样修改动画的类型已经完成,接着下来,就是把这个动画拖放到场境里,并把它命名为TestAni,如下图:

游戏制作之路(38)加载旧的动画

这时可以点击右边的Animation组件,在这个组件里点击展开之后,可以看到不同状态的动画,如下图:

游戏制作之路(38)加载旧的动画

从这里可以看到动画有5个状态,可以根据需要选择播放不同的动作。但是这个游戏模型太小了,在场境里看不到,先把它放大一下,如下图设置:

游戏制作之路(38)加载旧的动画

上面设置了400倍的放大,同时设置在Y轴转到45度。这样就可以给这个对象添加脚本进行控制了,下面就来创建一个脚本绑定到这个物体:

游戏制作之路(38)加载旧的动画

接着编辑脚本TestAni.cs,添加下面的内容:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestAni : MonoBehaviour {

    private Animation anim;

    // Use this for initialization
    void Start ()
    {
        //获取到动画组件
        anim = this.GetComponent<Animation>();
        anim.Play("04_Idle");
    }
	
	// Update is called once per frame
	void Update ()
    {
        if (Input.GetKey("w"))
        {
            anim.Play("01_Run");
            transform.Translate(transform.forward * Time.deltaTime * 10, Space.World);
        }
        else if (Input.GetKey("s"))
        {
            anim.Play("02_walk");
            transform.Translate(transform.forward * Time.deltaTime * (-10), Space.World);
        }
        else
        {
            anim.Play("05_site");
        }
    }
}

这时再来播放这个游戏了,如下图所示:

游戏制作之路(38)加载旧的动画

在这里主要使用 Animation 动画组件,通过 GetComponent< Animation >() 函数来获取绑定的对象,然后调用动画的Play()函数来播放, anim.Play( "01_Run" ) 里的字符串就是表示播放的动作名称。到这里就学会了制作旧动画的游戏了。

https://blog.csdn.net/caimouse/article/details/51749579


以上所述就是小编给大家介绍的《游戏制作之路(38)加载旧的动画》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

解决网页设计一定会遇到的210个问题

解决网页设计一定会遇到的210个问题

2006-4 / 42.00元

如何选择适合、简单、方便、快速的方法来解决您的网页设计问题?不会HTML、JavaScript、CSS也可轻易完成许多网页功能与特效。本书包含上百种HTML、JavaScript、CSS使用应用技巧与盲点解说,包含10个常用表单资料判断函数与特殊技巧,不必修改就可用于任何网页。本书现有的多数网页设计书籍相辅相成,让您事半功倍地完成工作。   许多计算机书籍都是从某个语言或者某个软件的......一起来看看 《解决网页设计一定会遇到的210个问题》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具