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

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

内容简介:游戏之所以迷人,是因为它让人看到很多真实的动作,以及各种各样精彩的动画。在一个游戏里没有动画效果,是不可想象的,就像手机没有信号一样,但是很多动画并不是在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)加载旧的动画》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

The Filter Bubble

The Filter Bubble

Eli Pariser / Penguin Press / 2011-5-12 / GBP 16.45

In December 2009, Google began customizing its search results for each user. Instead of giving you the most broadly popular result, Google now tries to predict what you are most likely to click on. Ac......一起来看看 《The Filter Bubble》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具