FBX的使用与Animation设置是一个很有必要的技能,对于美工MM送过来的3D模型你应该懂得如何将其设置到游戏场景之中使用,不然真的羞死人的,这都不会。毕竟游戏里面许许多多的主角的动作都是一系列已经做好的3D动画,包括行走、攻击动作等,很少人在update()中来写一大堆来实现的。下面列举两个例子,说明FBX的使用与Animation设置,说白了,就是3D模型如何在Unity3D中使用。

文中所用到的两个3D模型:

Ezreal:http://download.csdn.net/detail/yongh701/9866792

Alice:http://download.csdn.net/detail/yongh701/9866791

一、材质贴图已打包为DDS、动画需要切割的FBX

1、导入

Ezreal是一个材质贴图已打包为DDS的FBX,其文件结构如下图所示:

那么在Unity3D中直接导入这个FBX文件即可。

导入之后如下图所示,可以看到Unity3D能够自动识别此类3D模型,同时,还能识别到3D模型中带有的动画,并且整个FBX模型所带的动画我们还能做个大致的预览,一般情况下,Take 001就是模型最初的动作。

这个模型被导入到Unity3D就是一个预设Prefab存在,你可以随意拖放,关于什么是预设Prefab,在《【Unity3D】利用预设、实例化Instantiate和协程完成生成器》(点击打开链接)我已经提到过了,这里不再赘述了。我们可以直接将这个Ezreal拖入场景当中,并且在(0,5,-10)拖一个Directional light,给模型提供合理的光照,大家可以看到3D模型已经基本能够使用了。

2、动画切割

但这样还不行,我们刚才明明看到这个FBX模型是带有动画Take 001,而且Take 001里面带有3个动作的,一个是模型在静止时发呆的动作、一个是行走动作、一个是攻击的动作。我们需要将这样动作应用到模型上面来。

首先,我们要在FBX模型的控制面板,设置Rig中的Animation Type为Legacy,Generation按默认就行,然后点击Apply将动画应用到这个模型上。在Unity3D一般使用Legacy动画。

之后,我们需要对动画进行切割。打开Animation面板,添加三个片段,分别是idle发呆、run跑步、attack攻击,然后分别修改好名字。同时设置好其在Take 001的开始帧与结束帧,设置开始、结束帧的时候,可以边播放动画,边调试。一般美工MM也会告诉你,她设置的各段具体的开始结束帧,这里Ezreal的三段分别为0-39、40-65、66-96。同时对于idle与run的循环模式都从Once改成Loop,因为这是一个长期存在的行为。之后点击Apply,则可以看到Take 001被切割成我们要求的三段。

3、动画处理

之后我们则可以对这个模型附着如下的脚本AnimationScript.cs:

using UnityEngine;
using System.Collections;

public class AnimationScript : MonoBehaviour
{
    void Start()
    {
        Animation animation = this.animation;//动画控制器
        animation.Play("idle");//上来直接播放idle动画
    }
    void OnGUI()
    {
        if (GUI.Button(new Rect(0, 0, 100, 30), "行走"))
        {
            animation.Play("run");
        }
        if (GUI.Button(new Rect(100, 0, 100, 30), "停止"))
        {
            animation.Play("idle");
        }
        if (GUI.Button(new Rect(200, 0, 100, 30), "攻击"))
        {
            animation.Play("attack");
            animation.PlayQueued("idle");//播放完attack之后再播放idle
        }
    }
}
可以看到脚本很短,甚至大家看代码都能直接知道意思,运行结果如下:

可以看到基本能够达到一个比较不错的水平了,如果你能有个做fbx模型做得很好的MM,和她配合下,其实基本实现很多东西了……当然现实中哪有这么浪漫?基本上要么自己一手包,要么就到外面的三维公司里面买,或者小成本点的,就自己收集些免费的fbx素材……

上面的动画可以看到行走run这个动画,循环之间的分P还有点小跳跃,这个要么就是没切割好,要么就是动画本身问题,在整个动画,三个动作之间,留得空隙过短,导致不好分割,很遗憾,我这里是后者……毕竟这个素材我也是在网上收集的……

这里说完一大类的FBX,下面说另一大类的FBX

二、材质贴图没打包、动画不需要切割的FBX

1、导入

alice是一个材质贴图没打包好的fbx模型,文件模型如下图所示:

那么我们需要在Unity3D的Assets根目录新建一个Textures文件夹,不可改名,就叫这个名字,不为什么。通过Import New Asset...一个一个将材质贴图导入,Import New Asset..貌似不支持多选的,所以只能一个一个导入。所以为了减少鼠标点击次数,请让你的美工MM,打包材质吧!那些做工精致的模型,估计材质贴图要上万。

之后,我们才在Assets根目录导入这个FBX模型,一定要遵守这个顺序,不然导入的模型会丢失材质的。

同样可以将个模型拖拽出来,沿Y轴旋转180度,也就是Rotation设置Y为180,并且与上面模型一样,在(0,5,-10)拖一个Directional light,给模型提供合理的光照。在Rig的动画同样设置为Legacy并且应用到模型。

2、由于这个模型只有一个无须切割的动画,因此可以直接附着如下脚本AnimationScript2.cs:

using UnityEngine;
using System.Collections;

public class AnimationScript2 : MonoBehaviour
{
    void Start()
    {
        Animation animation = this.animation;
        animation.Stop();//由于只有一条动画,无须切割,Unity3D默认将会直接播放这个动画的
    }
    void OnGUI()
    {
        if (GUI.Button(new Rect(0, 0, 100, 30), "行走"))
        {
            animation.Play();
        }
        if (GUI.Button(new Rect(100, 0, 100, 30), "重新行走"))
        {
            animation.Rewind();
        }
        if (GUI.Button(new Rect(200, 0, 100, 30), "停止"))
        {
            animation["Take 001"].normalizedTime = 0;//定位到此动画的第0帧
            animation.Sample();//跳转
            animation.Stop();//再停止
        }
    }
}
这里基本已经完全展示如何使用Animation类的基本方法来控制动画了,其中这里唯一需要注意的一点,animation.Stop();单单是暂停动画,如果你想将动画调回第一帧再播放,需要如上的来使用Animation类的基本方法。
运行效果如下所示:

3D模型的使用——FBX的使用与Animation设置相关推荐

  1. 如何破解游戏包中的素材与3D模型

    我们做游戏的时候,往往缺素材,动画, 3D模型,如何解决这些问题呢?今天我们给大家介绍一个好用的技巧. 1: 我要做什么样的游戏, 用什么风格? 我们开始做游戏的时候,往往不知道自己要做什么样的游戏, ...

  2. labview学习笔记--3D模型(3)

    labview学习笔记–3D模型(3) 这次的内容是设置模型的运动–平移和旋转 1.首先,我们先找到设置平移和设置旋转的控件:程序框图->编程->图形与声音->三维图片控件-> ...

  3. opengl加载显示3D模型FBX类型文件)

    opengl加载显示3D模型FBX类型文件 前置条件 注意事项 项目展示 项目完整C++源代码 前置条件 opengl三方库freeglut,显示FBX格式的三维模型文件 注意事项 源代码 model ...

  4. three.js加载3D模型,在网页上展示3D模型(.glb.gltf.fbx格式)

    Three.js是一款开源的主流3D绘图JS引擎,简单点,可以将它理解为three+js就可以了,three表示3D,js表示JavaScript的意思. 结构 .glb.gltf文件最好放在服务器上 ...

  5. PBR游戏3D模型合集包 PBR Game 3D-Models Bundle February 2022

    PBR游戏3D模型捆绑包2022年2月 大小解压后:6.99G MAX| OBJ | FBX |TEX  模型获取:PBR游戏3D模型合集包 PBR Game 3D-Models Bundle Feb ...

  6. android显示3d模型_使用Unity AR Foundation在增强现实中查看模型

    本文将分享麻省理工学院的教程-使用Unity AR Foundation在增强现实中查看模型. 在本教程中,我们将介绍如何把3D模型导入Unity,并使用Android设备或iOS设备在AR中查看模型 ...

  7. 3d展示网页开发_超实用:一篇文章带你了解市面上主流通用的3D模型格式

    说到格式,相信大家都不陌生. 随着互联网的普及,我们几乎每天都会和不同的格式打交道,文本的TXT.图片的JPG.视频的MP4,就连压缩包也有不同的格式. 通俗来说,你可以把"格式" ...

  8. android 3d模型ppt,PPT已支持3D PPT怎么插入3D模型?

    很多人都知道新版PowerPoint能够插入3D模型,但3D模型又该去哪儿下载呢? 1.站长素材3D模型网 网址://sc.chinaz.com/3D/ 站长素材是一家很不错的3D建模网站,模型数量多 ...

  9. 3d模型导入MAYA常见错误!

    3d模型导入MAYA常见错误!将模型从max导入到Maya,经常会遇到原来好的四面3d模型转换成三角形曲面的情况.针对将3dsMax四角模型导入Maya可能成为三角形表面的情况,一套鼠标点击方法可以成 ...

最新文章

  1. 组合数学实验——二分图匹配算法
  2. 清华本科、港科大准博士被指论文抄袭,网友:这是有技巧的“洗稿”
  3. 从零开始机器学习比赛经验(bird分享)
  4. boost::parameter::python相关的测试程序
  5. Mysql重置初始密码的方法
  6. 用Mindjet MindManager 15 打开文件后停止响应的解决方法
  7. 查询某字段不重复记录的SQL语句
  8. 想进入互联网公司,怎能不知道互联网的技术架构!
  9. 小米球(Ngrok)实现内网穿透,让外网可以进行访问本地部署的 API
  10. Matlab 线性拟合 polyfit 结果不准/偏差很大
  11. 如何运用eclipse的编写Java程序
  12. Redis持久化(RDB/AOF)【西橙先生】
  13. spark进行数据清洗时,如何读取xlsx表格类型文件
  14. word中图片为嵌入式格式时显示不全_word嵌入图片显示不全-不同类型文档中图片设置的几个小技巧...
  15. 趣味算法:国王和100个囚犯
  16. 简单易用的运动控制卡(十二):运动控制系统的安全设置
  17. 学习ofbiz 订单支付设计
  18. 张国荣《热·情》演唱会再现荧幕:AI修复解锁的经典与视听生活
  19. 安卓学习专栏——安卓报错android.support.v4.widget.SwipeRefreshLayout飘红
  20. 当Kali Rolling作为笔记本唯一一个系统

热门文章

  1. 啊哈算法第四章 万能的搜索
  2. 自己搜集的一些资料(只是一些链接而已)
  3. 长途旅行出行准备清单
  4. 平面设计中的网格系统pdf_最佳平面设计软件推荐,你的作品集有救了
  5. 排查Java的内存问题
  6. Echarts 柱状图 渐变色 自定义配置
  7. 迷茫吗?30岁之前你一定要做这三件事
  8. 过氧化物酶体:铁死亡的的新玩家
  9. 哲学与科技——唯物史观,人与自然、科学与技术、科技与社会、人与科技的关系的简单描述
  10. 各种测试的定义、负载测试和压力测试的区别