电商网站构建,o2o的网站有哪些,龙轩导航,廊坊微信网站建设前言#xff1a;最近重拾Unity#xff0c;准备做个3D的FPS小游戏#xff0c;这里以官方FPS案例素材作为切入。 导入素材和素材理解 安装Unity新建项目新建文件夹和Scene如何去理解三维模型素材找到模型素材素材预制体结构骨骼和网格材质#xff08;Material#xff09;、…前言最近重拾Unity准备做个3D的FPS小游戏这里以官方FPS案例素材作为切入。 导入素材和素材理解 安装Unity新建项目新建文件夹和Scene如何去理解三维模型素材找到模型素材素材预制体结构骨骼和网格材质Material、纹理贴图TextureAnimatorAvatar替身系统 总结 安装Unity
这个想必不用多说网上的教程很多。
最新版的话官网下一个Unity Hub然后在Hub里面下载个Unity感觉新版Unity比以前高级多了。
Unity Hub中设置-外观Appearance-设置语言Language简体中文会方便很多。
会有需要“管理许可证Licenses”这个的话下载一个Unity Connect的app然后微信注册个账号。app扫码登入到Unity Hub选择个人许可证就好了学生的话可以申请学生版都是免费的。
新建项目
Unity Hub-新项目-选择FPS Microgame模板。 这是Unity官方提供一个FPS学习模板里面有个可以直接运行的demo我们可以运行一下看看官方的FPS游戏Demo效果算是对我们未来目标有个大概的想象。
选择这个的原因是因为里面包含了素材以及可以参考的思路代码。
新建文件夹和Scene
刚打开肯定是官方写好的文件夹我们需要新建一个文件夹来存放我们后面自己写的内容。在文件夹部分右键Create-Floder新建一个MyGame文件夹。 然后在MyGame文件夹下面新建一个我们自己Scene命名为MainGame拖拽到界面中。 把官方的SceneMainSceneRemoval掉。
如何去理解三维模型素材
很多新手刚看到这种三维模型素材肯定都是比较懵逼的不知道如何去理解尤其是角色的预制体里面有大量的层级容易让人望而却步。
这里以敌人模型结构为例子带大家理解一下。
找到模型素材
敌人模型的路径如下图所示有两种HoverBot悬浮机器人和Turret炮台。
素材预制体结构
可以把HoverBot拖出来看看可以发现预制体HoverBot组成非常复杂没有接触的可能不太懂但是其实组成部分主要分为两个分别是模型和骨骼。“Bottom”、“EyeBall”和“Top”对应了机器人的三个组成的模型里面包含了模型网格结构相关的渲染工作“Robot_Root_C_Jnt”部分有很多内容其实都是模型的骨骼关节名称。关于骨骼后面会介绍。 仔细点开“Bottom”会发现模型包含了两个个部分Skinned Mesh Renderer蒙皮网格渲染器以及Material材质球。蒙皮Skin是会把Mesh网格的顶点绑定在骨骼上每个顶点可以被骨骼所控制使得动画播放的时候顶点会随着骨骼而移动从而Mesh会跟随骨骼的移动。而Material材质会附着在Mesh身上也会跟着移动。Skinned Mesh Renderer把Mesh、Root Bone骨骼根节点以及Materials联合起来了。
骨骼和网格
上面介绍“素材预制体结构”涉及到了骨骼和网格Mesh的概念为了更好理解它作用我们先来了解一下骨骼动画。
游戏中的三维模型经常会设计到骨骼这是为了骨骼动画做准备。
三维模型通常是由三角面网格组成也就是Mesh。想要让Mesh动起来最简单的方法就是修改Mesh各个顶点。但是这个方案并不现实复杂的模型往往伴随着大量的顶点操作非常复杂而且动画也不自然。
于是边诞生了骨骼Spine在Mesh中放置骨骼骼的运动带动 Mesh 的运动。这样动画的时候只需要修改骨骼即可如下图所示修改骨骼的时候Mesh网格顶点也跟着改变了。 该动图来自文章Mesh | 动态合批 | 骨骼动画 | 蒙皮这篇讲网格讲的非常全面。
打开HoverRobot的一个Animation动画可以看到骨骼动画中记录了每个时间点骨骼的变化和素材预制体结构中骨骼关节的名字一一对应。 Unity中的骨骼模型通常包括三个步骤
建模Modeling创建模型包含网格和纹理等。骨骼绑定Rigging创建骨架骨骼和关节之间的层级结构。蒙皮Skinning负责把骨骼和Mesh关联起来。
当然除了三维模型中会用到骨骼其实二维也用的素材预制体结构和方法都差不多只不过二维的Mesh是平面的。
材质Material、纹理贴图Texture
材质Material是描述物体外观和光学特性的属性集合。
外观包物体的颜色、反射属性如漫反射、高光反射、透明度、折射率等。材质定义了物体如何与光线进行交互决定了物体在渲染时的外观效果。
纹理和贴图Texture决定模型表面的颜色、纹理和细节效果。
颜色贴图就是给模型上一个颜色皮肤例如木头纹理。 凹凸贴图模型表面的凹凸情况通常颜色越浅表明该位置的表面越像外凸起。 光照贴图用来存储预渲染的光照信息解决实时动态光源效果不好且消耗性能的问题。
除了上面三种常用贴图还有别的。
Animator
点击HoverRobot的属性可以看见上面挂在了一个Animator组件。 Animator上面属性有五个属性如下。
Animator controller用来控制动画切换具体可以看我以前写的一篇unity学习7动画状态切换。虽然那篇讲的2D的但是3D的逻辑也差不多。
AvatarUnity的替身系统后面部分详细介绍。
Apply Root Motion有些动画会带有位移勾选了带动画位移。
Update Mode动画更新模式Normal表示使用Update进行更新也就是fps同步、Animate Physics表示和fixed unpdate同步物理检测、Unscaled Time和Normal一样但是不考虑Time scale游戏运行速度比例。
Culling ModeCull剔除也就是在摄像机视野外面的时候会做什么操作Always Animate进行动画播放的更新、Cull Update Transform停止动画播放但是位置会继续更新、Cull Completely停止动画的所有更新。
Avatar替身系统
很多时候我们会想要复用别人的动画通常来说人形模型是复用最多的。但是不同的设计师可能骨骼节点的名字命名不同Animation没法识别复用。但是我们又不可能去一一修改每个骨骼节点名字来适配这非常容易出错。
Unity提出了一个动画复用的解决方案替身系统Avatar。两个模型A和BB想用A的动画。可以让A和B模型的骨骼和Unity的标准肌肉对应这样就可以把转为了Unity标准肌肉的A动画复用到B了。
Unity中的骨架有两种
人形 (Humanoid) Unity提出一个通用的人形Avatar最少 15 块骨骼骨架需至少具备所需的骨骼。通用Generic任何东西不具备Humanoid的动画重定向功能这里的敌人HoverRobot使用的就是通过Avatar。
注意通用 Avatar 与人形 Avatar 不同但它会显示在项目视图中也会保存根节点映射。但是单击项目视图中的 Avatar 图标在 Inspector 中显示其属性则仅会显示其名称不显示 Configure Avatar 按钮。
我原本想深究一下通用Aavatar的功能但是通用Avator没法在视图中查看搜了很多都没有找到特别的说法上面这个只是是官方手册的解释。问了做游戏的朋友在实际应用常见中人形Avatar比较有用通用Avatar基本没用过所以大家理解人形Avatar就可以了。
总结
通过本篇过后想必已经对三维模型素材有了初步的理解。
三维模型的预制体无非就两部分模型骨骼不需要动画的可能还没有骨骼只有模型。预制体的节点会挂载Animator做动画控制模型部分通常包括了网格Mesh、材质和贴图骨骼部分就包括骨骼层级各个骨骼节点骨骼节点的名字和Animation中的一一关联。模型中Skinned Mesh Renderer组件可以把网格Mesh、材质和贴图和对应的骨骼根节点关联。
Avatar不一定是必须的通常用在人形骨骼动画的复用上。