3D模型的使用——FBX的使用与Animation设置
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设置相关推荐
- 如何破解游戏包中的素材与3D模型
我们做游戏的时候,往往缺素材,动画, 3D模型,如何解决这些问题呢?今天我们给大家介绍一个好用的技巧. 1: 我要做什么样的游戏, 用什么风格? 我们开始做游戏的时候,往往不知道自己要做什么样的游戏, ...
- labview学习笔记--3D模型(3)
labview学习笔记–3D模型(3) 这次的内容是设置模型的运动–平移和旋转 1.首先,我们先找到设置平移和设置旋转的控件:程序框图->编程->图形与声音->三维图片控件-> ...
- opengl加载显示3D模型FBX类型文件)
opengl加载显示3D模型FBX类型文件 前置条件 注意事项 项目展示 项目完整C++源代码 前置条件 opengl三方库freeglut,显示FBX格式的三维模型文件 注意事项 源代码 model ...
- three.js加载3D模型,在网页上展示3D模型(.glb.gltf.fbx格式)
Three.js是一款开源的主流3D绘图JS引擎,简单点,可以将它理解为three+js就可以了,three表示3D,js表示JavaScript的意思. 结构 .glb.gltf文件最好放在服务器上 ...
- 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 ...
- android显示3d模型_使用Unity AR Foundation在增强现实中查看模型
本文将分享麻省理工学院的教程-使用Unity AR Foundation在增强现实中查看模型. 在本教程中,我们将介绍如何把3D模型导入Unity,并使用Android设备或iOS设备在AR中查看模型 ...
- 3d展示网页开发_超实用:一篇文章带你了解市面上主流通用的3D模型格式
说到格式,相信大家都不陌生. 随着互联网的普及,我们几乎每天都会和不同的格式打交道,文本的TXT.图片的JPG.视频的MP4,就连压缩包也有不同的格式. 通俗来说,你可以把"格式" ...
- android 3d模型ppt,PPT已支持3D PPT怎么插入3D模型?
很多人都知道新版PowerPoint能够插入3D模型,但3D模型又该去哪儿下载呢? 1.站长素材3D模型网 网址://sc.chinaz.com/3D/ 站长素材是一家很不错的3D建模网站,模型数量多 ...
- 3d模型导入MAYA常见错误!
3d模型导入MAYA常见错误!将模型从max导入到Maya,经常会遇到原来好的四面3d模型转换成三角形曲面的情况.针对将3dsMax四角模型导入Maya可能成为三角形表面的情况,一套鼠标点击方法可以成 ...
最新文章
- 组合数学实验——二分图匹配算法
- 清华本科、港科大准博士被指论文抄袭,网友:这是有技巧的“洗稿”
- 从零开始机器学习比赛经验(bird分享)
- boost::parameter::python相关的测试程序
- Mysql重置初始密码的方法
- 用Mindjet MindManager 15 打开文件后停止响应的解决方法
- 查询某字段不重复记录的SQL语句
- 想进入互联网公司,怎能不知道互联网的技术架构!
- 小米球(Ngrok)实现内网穿透,让外网可以进行访问本地部署的 API
- Matlab 线性拟合 polyfit 结果不准/偏差很大
- 如何运用eclipse的编写Java程序
- Redis持久化(RDB/AOF)【西橙先生】
- spark进行数据清洗时,如何读取xlsx表格类型文件
- word中图片为嵌入式格式时显示不全_word嵌入图片显示不全-不同类型文档中图片设置的几个小技巧...
- 趣味算法:国王和100个囚犯
- 简单易用的运动控制卡(十二):运动控制系统的安全设置
- 学习ofbiz 订单支付设计
- 张国荣《热·情》演唱会再现荧幕:AI修复解锁的经典与视听生活
- 安卓学习专栏——安卓报错android.support.v4.widget.SwipeRefreshLayout飘红
- 当Kali Rolling作为笔记本唯一一个系统