2015-02-05 08:34:06 book_longssl 阅读数 5213
  • 老孙的游戏课 第6篇 生存射手

    本课程是《老孙的游戏课》系列课程的第6篇,主要讲解Unity官网上的一个游戏Demo——《Survival Shooter》,即《生存射手》,该实例思路清晰、素材完整,是一个非常好的游戏开发入门课程,虽然该课程在官网上有英文版讲解,但为了方便国内学员学习,我们通过理解和消化对该课程进行了全中文讲解,并在Unity2017版完成实例演示。 该课程分如下12讲: 第1讲 项目介绍     主要讲解了该游戏项目的来源,运行效果,资源下载位置,以及Unity的基本操作等等。第2讲 场景搭建     主要讲解游戏场景文件的创建,游戏模型、灯光的添加,地板碰撞器的构建,背景音乐的设置,以及游戏主角的导入。第3讲 玩主设置     主要讲解游戏主角的动画控制器的创建,动画状态机的设计,并为主角添加刚体、碰撞器、音效等。第4讲 玩主控制     该讲主要解决对游戏角色的控制问题。包括键盘控制角色行走,鼠标控制角色旋转等。第5讲 相机跟随     该讲主要解决摄像机如何跟随角色行走的问题。由于上一讲我们利用鼠标操作实现了对游戏角色的旋转功能,所以这一讲的摄像机跟随,就不能是将摄像机添加到角色身上那么简单,需要编程来实现。 第6讲 添加敌人     该讲介绍了游戏中的敌人——“僵尸兔”的属性设置,包括敌人被射击时喷溅物特效的添加,但最重要的是,该讲介绍了UInty的一个AI功能,即利用人工智能算法构建的自动寻路设计,从而实现了敌人自动跟随主角行走的功能。 第7讲 生命值UI     该讲介绍了为角色添加血条的方法,利用Unity自带的UI控件,可以很容易地制作游戏中的血条。第8讲 生命值计算     该讲介绍了玩主受到伤害时其生命值的计算方法,通过代码可以实时计算玩主的生命值。第9讲 攻击敌人     该讲介绍了玩主攻击敌人的方法,以及敌人受到攻击时所应具有的功能。第10讲 计分系统     该讲主要讲解了玩主消灭敌人所获积分的方法,包括积分的计算方法,积分的UI显示等。第11讲 生成敌人     该讲介绍了游戏中的敌人动态生成的方法,包括制作敌人种子,敌人的出生点设置,复用动画控制器的设置等。第12讲 游戏结束     该讲介绍了“Game Over”游戏UI的动态显示方法,主要讲解了Unity的动画系统的使用。

    39 人正在学习 去看看 孙博文

导入动画文件后,在工程(Porject)面板中选中,通过Inspector面板修改参数设置。

在项目视图中选中模型文件。如果想用旧版3.x的动画系统导入和编辑动画,请选择legacy选项。如果你有一个人性角色,比如,一个脑袋两条胳膊的两足动物,请选择Humanoid和‘Create from this model’,这样,一个完美匹配你角色骨骼关系的替身就可以被创建,或者你也可以选择其他预设好的替身。

如果你的角色不是人形物体,比如一个四足动物或者任何其它的你想编辑动画的物体-并且你希望新的动画系统Mecanim,请选择Generic选项,然后你必须在下拉菜单中为你的动画模型定义一个骨骼作为根节点。

Model选项卡

属性

Scale Factor 缩放系数。

Mesh Compression网格压缩.降低网格文件大小,但有可能导致变形。

Mesh Optimization 网格优化.优化三角形的排列顺序。

Generate Colliders产生碰撞体。生成网格碰撞体。

Swap UVs交换UV(通过改变纹理坐标,实现动态效果的纹理动画)当有光照贴图的物体的UV通道不正确时启用此选项。这将交换你的主UV通道与次UV通道。

Generate Lightmap产生光照贴图。

Normals 法线

Import 导入. 从文件导入法线。

Calculate 计算。根据平滑角度(Smoothing angle)计算法线。

None 不使用。如果网格既没有法线贴图,也不受实时光照影响,则可使用此选项。

Tangents 切线

Import 导入

Calculate计算切线和副法线。只有当法线为导入或计算时,此选项可用。

None禁用切线和副法线。如网格没有切线则不能使用法线贴图着色器。

Smoothing Angle 平滑角。设置边会被作为硬边处理的锋利程度。它还被用来切分法线贴图切线。

Split Tangents 分离切线。如果您的网格上的接缝破坏了法线贴图光照,启用此选项。这通常只适用于角色。

Import Materials 导入材质

Material Naming 材质命名。 此选项决定了Unity材质的命名方式.

Material Search 材质搜索。决定Unity如何根据材质命名选项中定义的名字查找已有的材质。

Rig选项卡

属性

Animation Type 动画类型

None 无

没有预制动画

Legacy 旧版

旧版系统动画

Generic 通用

通用Mecanim动画

Humanoid 人形

人形Mecanim动画系统

Avatar Definition 替身定义

在这里定义动画控制融合等。

Create from this model    从这个模型创建

替身物体将依据选择的模型创建

Copy from other Avatar    从其它替身拷贝

依据其它模型替身定义创建

Configure... 配置...

动画剪辑存储着所有可使用于角色动画或简单动画的动画数据。

2017-09-13 23:22:11 yongh701 阅读数 3908
  • 老孙的游戏课 第6篇 生存射手

    本课程是《老孙的游戏课》系列课程的第6篇,主要讲解Unity官网上的一个游戏Demo——《Survival Shooter》,即《生存射手》,该实例思路清晰、素材完整,是一个非常好的游戏开发入门课程,虽然该课程在官网上有英文版讲解,但为了方便国内学员学习,我们通过理解和消化对该课程进行了全中文讲解,并在Unity2017版完成实例演示。 该课程分如下12讲: 第1讲 项目介绍     主要讲解了该游戏项目的来源,运行效果,资源下载位置,以及Unity的基本操作等等。第2讲 场景搭建     主要讲解游戏场景文件的创建,游戏模型、灯光的添加,地板碰撞器的构建,背景音乐的设置,以及游戏主角的导入。第3讲 玩主设置     主要讲解游戏主角的动画控制器的创建,动画状态机的设计,并为主角添加刚体、碰撞器、音效等。第4讲 玩主控制     该讲主要解决对游戏角色的控制问题。包括键盘控制角色行走,鼠标控制角色旋转等。第5讲 相机跟随     该讲主要解决摄像机如何跟随角色行走的问题。由于上一讲我们利用鼠标操作实现了对游戏角色的旋转功能,所以这一讲的摄像机跟随,就不能是将摄像机添加到角色身上那么简单,需要编程来实现。 第6讲 添加敌人     该讲介绍了游戏中的敌人——“僵尸兔”的属性设置,包括敌人被射击时喷溅物特效的添加,但最重要的是,该讲介绍了UInty的一个AI功能,即利用人工智能算法构建的自动寻路设计,从而实现了敌人自动跟随主角行走的功能。 第7讲 生命值UI     该讲介绍了为角色添加血条的方法,利用Unity自带的UI控件,可以很容易地制作游戏中的血条。第8讲 生命值计算     该讲介绍了玩主受到伤害时其生命值的计算方法,通过代码可以实时计算玩主的生命值。第9讲 攻击敌人     该讲介绍了玩主攻击敌人的方法,以及敌人受到攻击时所应具有的功能。第10讲 计分系统     该讲主要讲解了玩主消灭敌人所获积分的方法,包括积分的计算方法,积分的UI显示等。第11讲 生成敌人     该讲介绍了游戏中的敌人动态生成的方法,包括制作敌人种子,敌人的出生点设置,复用动画控制器的设置等。第12讲 游戏结束     该讲介绍了“Game Over”游戏UI的动态显示方法,主要讲解了Unity的动画系统的使用。

    39 人正在学习 去看看 孙博文

3dsmax做的含FBX动画模型导入进Unity3D之后总需要对其缩放Scale调整一番,毕竟模型是在3dsmax中做出来的,不可能和Unity3D中的场景完全匹配。

我们自然而言地会对模型的Scale属性进行调节,以放大或者缩小从而适应当前场景的大小。于是,问题就来了,在播放动画的时候,部分模型,会让我们惊讶地发现,明明我的Scale调好了,但在动画播放的时候,又回到原来大小了。如下图所示,就是这种坑爹的现象:


在运行的过程中,你会发现,自己调好的Scale莫名其妙地变回(1,1,1)。


于是,你就开始怀疑是不是这个模型本身的动画有控制大小的东西,但经历一番调查之后,你发现,有时候,部分模型就是没有控制大小,但它就是这么坑爹。如下图所示,这个在3dsmax中生成的简单动画模型,各个关键帧完全只是对其Rotation进行修改,关于Scale并没有作任何动画。


那么关于问题,其实就是,在Unity3D你并不应该用Scale来调节这些FBX模型的大小,至少如果你发现你的FBX模型出现这种坑爹情况,你应该在这个模型的预设中,Model属性Meshes下的Scale Factor调整大小,默认的基数是0.01,如果你要放大10倍,设置成0.1就好了。


这样在播放动画的时候,就与你看得时候是一致的,不会出现上述的坑爹问题了。带上transform.Translate()等Unity3D本身就有的移动行为,配合animation.Play()也没事!


2020-02-14 13:31:12 CSDN_ONION 阅读数 52
  • 老孙的游戏课 第6篇 生存射手

    本课程是《老孙的游戏课》系列课程的第6篇,主要讲解Unity官网上的一个游戏Demo——《Survival Shooter》,即《生存射手》,该实例思路清晰、素材完整,是一个非常好的游戏开发入门课程,虽然该课程在官网上有英文版讲解,但为了方便国内学员学习,我们通过理解和消化对该课程进行了全中文讲解,并在Unity2017版完成实例演示。 该课程分如下12讲: 第1讲 项目介绍     主要讲解了该游戏项目的来源,运行效果,资源下载位置,以及Unity的基本操作等等。第2讲 场景搭建     主要讲解游戏场景文件的创建,游戏模型、灯光的添加,地板碰撞器的构建,背景音乐的设置,以及游戏主角的导入。第3讲 玩主设置     主要讲解游戏主角的动画控制器的创建,动画状态机的设计,并为主角添加刚体、碰撞器、音效等。第4讲 玩主控制     该讲主要解决对游戏角色的控制问题。包括键盘控制角色行走,鼠标控制角色旋转等。第5讲 相机跟随     该讲主要解决摄像机如何跟随角色行走的问题。由于上一讲我们利用鼠标操作实现了对游戏角色的旋转功能,所以这一讲的摄像机跟随,就不能是将摄像机添加到角色身上那么简单,需要编程来实现。 第6讲 添加敌人     该讲介绍了游戏中的敌人——“僵尸兔”的属性设置,包括敌人被射击时喷溅物特效的添加,但最重要的是,该讲介绍了UInty的一个AI功能,即利用人工智能算法构建的自动寻路设计,从而实现了敌人自动跟随主角行走的功能。 第7讲 生命值UI     该讲介绍了为角色添加血条的方法,利用Unity自带的UI控件,可以很容易地制作游戏中的血条。第8讲 生命值计算     该讲介绍了玩主受到伤害时其生命值的计算方法,通过代码可以实时计算玩主的生命值。第9讲 攻击敌人     该讲介绍了玩主攻击敌人的方法,以及敌人受到攻击时所应具有的功能。第10讲 计分系统     该讲主要讲解了玩主消灭敌人所获积分的方法,包括积分的计算方法,积分的UI显示等。第11讲 生成敌人     该讲介绍了游戏中的敌人动态生成的方法,包括制作敌人种子,敌人的出生点设置,复用动画控制器的设置等。第12讲 游戏结束     该讲介绍了“Game Over”游戏UI的动态显示方法,主要讲解了Unity的动画系统的使用。

    39 人正在学习 去看看 孙博文

本文转自Unity Connect博主 北京琳云信息科技有限责任公司
学习模型合理导入 Unity3D 引擎

    相信在游戏中,模型相当于游戏必要的元素,例如游戏的一个人物角色,我们可以称它为一个模型,今天和小编一起学习一下,导入 Unity 3d 模型,我们应该注意哪些细节!当然我们知道常用的模型都可以通过 Maya/3D Max 等三维动画软件制作的。

官方学习文档:https://docs.unity3d.com/Manual/FBXImporter-Model.html

1、模型自身规范:

    1.0 所有的模型在原点创建,没有具体的特定要求下,需要以物体对象中心为轴心;

    1.1 模型面数:移动端( 300-1500 个多边形达到比较好的效果) PC端( 1500-4000 比较适宜)正常的单个物体最好控制在 1000 面以下,所有的物体面数不超过20000 个三角面;

    1.2 模型大小:模型文件做到最大的优化,对于看不到的面,我们可以采用直接删除,合并断开的点,移除孤立的点;

    1.3 模型命名:命名最好做到规范化,模型在给绑定之前必须做一次重置变换;

    1.4 模型复制:如果物体可以复制的话,就尽量复制;例如一个 500 面的物体,烘培好之后复制出去 50 个,那么他所消耗资源基本和一个物体消耗的资源基本是一样;

    1.5 模型单位:在建模型之前设定好单位,在 Unity3d 中用到的单位设置必须要一样,模型和模型之间的比例要正确,和程序导入的单位要一致,如果到程序中单位需要缩放也尽可能统一调整缩放比例,统一单位为米;

2、模型导入中的规范:

    2.0 模型使用的材质,首先在 3d Max 和 Maya 中,不是所有的材质在 Unity3d 中都可以支持使用,只有 Standard(标准材质)和 Multi/Sub-Object(多维/子物体材质)被 Unity3d 软件所支持。

    2.1 模型贴图格式和尺寸:常用的图片格式是 .tga 和  .png (带透明通道) 、不带通道为 .jpg ,贴图的尺寸最好为 2 的 N 次方,最大的贴图尺寸不能超过 1024X1024 ,当然特定的要求,尺寸可以根据具体的需求而定。

    2.2 模型贴图其他注意点:

          2.2.0 贴图命名不要有中文字命名,并且不能有重名;

          2.2.1 材质命名和物体名称最好保持一致,易于整理,材质球的父子层级的命名尽可能一致;

          2.2.2 同种贴图可以使用同一个材质球;

          2.2.3 带Alpha 通道贴图图片格式最好为 tga 和 png 格式,在命名可以加 _al 加以区分;

          2.2.4 模型需要通过通道处理时,在制作通道纹理,最好将透明部分改成模型的主色,这样渲染可以使有效边缘部分大颜色正确,通道纹理在程序渲染占用的资源同尺寸大普通纹理要多,通道命名也最好以 _al 结尾;

    2.3 Unity资源导入:

    对于游戏中资源导入可以导入图片,网格等,Project 面板右键( Import New Asset )。

          2.3.0 图片设置:

          TextureType:贴图类型。

          AlphafromGrayscal :使用灰度创建 Alpha,当需要unity为贴图创建一条 alpha 通道,使用它转换得到的灰度值来渲染透明度,可以开启它。

          WrapMode:所谓的包裹模式,决定贴图会无限次平铺还是只绘制一次。Repeat 就是重复平铺。Clamp 会让贴图的边缘拉升并在改变大小时候填满任何缝隙。

          FilterMode:所谓的图像过滤模式,在拉伸时候对贴图过滤,比如 [Point] 点过滤,在很近看贴图时候,可能感觉不均。Bilinear 它会时近看贴图显得模糊。Trilinear 它会在不同 mipmap 层次之间模糊。

          AnisoLevel:设置各项异性过滤器的级别,同属的可以理解为当你从一个比较陡的角度来看,贴图现实的可以有多细腻,渲染的等级越高,越占内存。想要确定贴图页面会占用多大内存,可以长X宽,再乘以他的位深度 [bpp,每像素位数] ,如果贴图包含 mipmap ,还需要扩大 1.33 倍。

          2.3.1 网格设置:

          网格就是那些 Maya ,C4D,3DSMAX,C3D,LW 等软件导出的文件。比如导入一个 .fbx 文件。选中后,在Inspector面板中,我们能看到下面的属性:

          ScaleFactor:缩放系数,使用这个属性在导入资源后设置其大小,调整资源在场景现实过大,或者过小的问题。

          MeshCompression:网格压缩的比例( Off,Low,Medium,High )不可否认,压缩时可以节约内存的。

          OptimizeMesh:为提高 GPU 性能记录网格顶点和索引。

           GenerateColliders:是否在场景中让网格对象具有碰状体表现,通俗的说就是实心的,不可以穿体而过。

          SwapUVs:交换 UV ,当你导入一个网格对象时候,着色器可能会使用错误的 UV 通道,如果发现资源异常(比如带光照图时候),可以选中这个复选框。

          Generate Lightmap UVs:为UV2生成光照贴图。

          Normals&Tangents:该项设置计算法线切线

          Normals:计算法线,import 表示使用导入的网格法线,Calculate 表示从新计算网格法线。

          Tangents:计算切线,import 表示使用导入的网格切线,Calculate 表示从新计算切线。

          Smoothing angle:法线平滑角度,告诉引擎在角度值为多少时候把一个边缘视为硬边缘。

          Split Tangents:是否分离切线,如果模型在场景渲染后现实 UV 缝隙,要开启它。

          Materials:

          Import Materials:是否导入材质,默认选中。

          Material Naming:材质名字生成模式。

          Material Search:材质搜索方案。

3、模型在制作软件中具体设置:

    3.0 贴图烘培设置:在进行Completemap 烘培方式,贴图通道和物体 UV 坐标通道必须为1 通道。

    3.1 lightingMap 烘培设置时,和 completemap 设置有些不同,贴图通道和物体 UV 坐标必须为 3 通道,烘培时灯光的阴影方式为 adv.raytraced 高级光线跟踪阴影,背景色要改白色,可以避免黑边的情况,主要物件的贴图 UV 必须手动展开;

    3.2 模型绑定及动画

          3.2.0 骨骼必须为 IK 、CAT、BIP 三类,Unity 不认虚拟动画,单个物体骨骼数量不超过 60 个;

          3.2.1 动画帧率、帧数的控制,一般情况下每秒 10 帧,一个动画尽量控制 1 秒内完成;

    3.3 模型导出

          3.3.0 将烘培材质改为标准材质球,通道为 1 ,自发光 100% ;

          3.3.1 合并顶点,删除多余的材质球(不重要贴图缩小);

          3.3.2 物体名称、材质球名、贴图名保持一致;

          3.3.3 按要求导出的 .fbx (检查是否要按组导出,导出 fbx 后,再重新导入 3D Max/Maya 中动画是否正确) 

             .....

    上面虽然没有图片的展示,但是属于实践中的文字总结,希望能帮助到小伙伴们。

原文链接:https://connect.unity.com/p/unity3d-shi-yong-ji-qiao-kuai-su-xue-hui-mo-xing-he-li-dao-ru-unity3d-yin-qing?app=true

欢迎大家戳上方原文链接,下载Unity官方技术社区app,在线技术答疑,发现更多干货~

3dmax模型导入unity

阅读数 3116

没有更多推荐了,返回首页