unity5.x游戏开发指南——4、5、6章
第四章 3D基础知识
4.1 Camera摄像机
参数:clear flag : skybox, solid color, depth only,don’t clear
background 背景色
culling mask 摄像机将看到勾选的层,忽略未被勾选的层
projection 投射方式 透视 正交
filed of view:透视模式的视野范围
size:正交模式摄像机视口大小
clipping planes:剪裁平面,Near Far
viewport Rect:视口矩阵
depth:用于控制多个摄像机的渲染优先级,数值越大,摄像机的优先级越高,优先级高的摄像机会覆盖在优先级低的摄像机上面
Rendering path:渲染路径
Use Player Settings
Forward 快速渲染,对所有游戏对象将按每种材质一个通道的方式来渲染
Deferred 延迟渲染,先对所有游戏对象进行一次无光照渲染,再进行光照渲染
Legacy Vertex Lit:顶点光照
Legacy Deffered:旧的延迟光照
Target Texture:目标纹理,将摄像机画面输出到一张贴图而不是屏幕
Occlusion Culling:是否剔除物体背向摄像机的部分
HDR 高动态光照渲染,该项将启用摄像机的高动态范围渲染功能
4.2 3D模型
4.2.1mesh网络模型
4.2.2贴图
4.2.3material 材质
4.2.4对应组件
4.2.5骨骼动画
第五章 创建场景
5.1场景场景
设置场景,雾设置,环境设置,其他设置
5.2地形编辑器
- 升降地形工具
- 绘制高度工具
- 平滑地形工具
- 绘制地形工具
- 放置树木工具
- 绘制细节工具
- 地形参数设置
5.3风域
第6章 创建人物
如果说场景是游戏画面表现力的基础,那么人物的外观及动作操作流畅度则决定了游戏画面是否有足够的动感。本章将对unity的mecanim动画系统进行系统的讲解,包括模型导入、状态机、动画混合、反向动力学以及人体动画等功能。
6.1 Mecanim系统
Mecanim系统是unity在4.0版本开始引入的新动画系统,它提供了以下几个功能:
1. 为人形角色提供了简单的设置和制作流程,包括Avatar的创建和对Muscle definitions肌肉定义的调节
2. 动画的复用性,主要通过动画重定向实现,可以非常方便地把动画从一个角色模型应用到具有相同骨骼结构的其他角色模型上。
3. 通过可视化的工具可以方便地创建、预览动画或者管理不同状态的切换。
4. 身体逻辑,如下身在执行跑步动作的同时,上半身在执行开枪动作。
一般来说,整个人物的创建分为以下3个阶段:
1. 资源准备和导入阶段,资源如网络模型和贴图等通常是由美术人员通过3d max,maya等建模软件和Photoshop绘图软件提供的,我们需要导入他们并设置正确的格式;
2. 状态机阶段,在此阶段我们设定该人物有哪些状态及对应的动作,如跑、跳等。
3. 脚本阶段,根据输入操作人物和控制摄像机。
6.2 导入模型
6.2.1模型导入设置
选中导入的fbx模型,在inspector视图中看到模型的导入设置,有模型设置、骨骼设置、动画设置这3个部分,下面我们就逐一讲解
1. 模型设置
模型的基本设置,主要的是以下6个:
(1)Scale Factor:缩放比例。因为在建模工具中一般一个单位代表1厘米,而在unity中一个单位代表1米,所以0.01是默认的缩放比例。
Mesh compression:模型压缩,off 不压缩,Low 低,Medium中,High搞,压缩比越高,在游戏包中占用的空间越小,但对顶点信息的损失就越高,看默认是off
(2) Read/Write Enable:是否可以改变网格信息
(3)Optimize mesh:是否优化网格
(4)Generate Collider:是否生成mesh collider,也可以手动添加
(5) Import Materials:是否导入材质
骨骼设置
模型中的骨骼设置包括3个:
(1)Animation Type:None, Legacy, Generic,Humanoid
None 不导入骨骼信息,自然也不会导入骨骼动画
Legacy 导入为传统的动画文件
Generic 导入为一般的动画文件
Humanoid 导入为人体动画 在网格模型中的实际的骨骼节点和Mecanim所识别的人体骨骼结构间有一种对应关系叫Avatar
(2)Avatar Definition:人物的Avatar是全新生成,还是从其他地方指定
(3)Optimize GameObject:是否优化游戏对象动画设置
Animation在2中设置为了humanoid,Avatar Definition设置为了从本模型生成,mecanim会尝试将网格模型中的骨骼与Mecanim所使用的人体骨骼结构Avatar进行匹配,匹配成功,则在“configure”左边出现一个勾,表面Avatar配对成功。
生成的Avater名字为原pfx名字+“Avatar”且不能更改。
6.2.2Avatar的设置
Mapping
Muscles
6.3状态机
用于状态管理和状态切换
6.3.1 Animator
Layer
State entry是初始状态,创建state,设置名称,添加对应的动作文件
6.3.2 添加碰撞体
Add Component,添加character controller与人物模型对齐
6.3.3 添加摄像机
using UnityEngine;
using System.Collections;public class ThirdPersonCam : MonoBehaviour
{//摄像机所跟随的对象public Transform follow;//摄像机在水平方向与对象的距离public float distanceAway; //摄像机在垂直方向与对象的距离public float distanceUp;//过渡速度public float smooth; //摄像机的目标速度private Vector3 targetPosition; //在LateUpdate中执行摄像机操作,确保在对象的操作完成之后void LateUpdate (){//计算目标位置targetPosition = follow.position + Vector3.up * distanceUp - follow.forward * distanceAway;//对当前位置进行插值计算transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * smooth);//使摄像机观察对象transform.LookAt(follow);}
}
6.3.4动作混合与控制
- 动作混合
Animator窗口,左侧点击Parameters签页,创建名为Direction的float参数,之后在设置BlendTree混合树的时候会用到。再创建float类型的speed参数,该参数在之后的idle和run状态切换时会用到。最后创建bool参数Jump,该参数在之后从Run到Jump的状态间切换时会用到。
下面创建BlendTree(不同动画的混合),选中Run状态,点击鼠标右键,create new BlendTree in state。看到在inspector视图中motion一栏不再是Run动画,而是blendTree。双击Run状态进入blendTree,点击+->Add Motion Field按钮添加动作,并将RunLeft动画文件指定到motion,然后继续添加RUn和RUnRIght。Parameter参数一栏通过右侧的三角形下拉菜单选择之前创建的Direction参数,该参数决定着动作如何混合,在这里可理解为角色是向左跑还是向右跑。-1为向左,0为向前,1为向右。当为之间的值时,是向前跑和向右跑的混合。 - 动作控制
主要通过Input.GetAxis()和Animator.SetFloat()这两个接口
Input.getAxis()返回的值域是-1到1,float x = Input.GetAxis(“Horizontal”);
Animator.setFloat()设置Animator的float参数, SetFloat(string name, float value, float dampTime, float deltaTime),那么为参数的名称,value为参数的值,dampTime为参数达到该值所需要的时间,deltaTime为上一帧消耗的时间。
public class PlayerManager_1 : MonoBehaviour {private Animator animator;void Awake(){animator = GetComponent<Animator>();}void Update () {//得到Joystick水平轴向输入的值float h = Input.GetAxis("Horizontal"); //将该值传递至animator的Direction参数animator.SetFloat("Direction", h, 0.25f, Time.deltaTime); }
}
unity5.x游戏开发指南——4、5、6章相关推荐
- 最全面的Unity游戏开发指南视频教程 第2卷
最全面的Unity游戏开发指南视频教程 第2卷 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小 ...
- 《Python和Pygame游戏开发指南》——2.16 pygame.display.update()函数
本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第2章,第2.16节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...
- 《Python和Pygame游戏开发指南》——1.12 图书中的文本折行
本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第1章,第1.12节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...
- 《Cocos2d 跨平台游戏开发指南(第2版)》一1.9 添加动作到精灵
本节书摘来异步社区<Cocos2d 跨平台游戏开发指南(第2版)>一书中的第1章,第1.9节,作者: [印度]Siddharth Shekar(谢卡)译者: 武传海 责编: 胡俊英,更多章 ...
- Unity 5.x 游戏开发指南 HD版 final.pdf
下载地址:网盘下载 <Unity 5.x游戏开发指南>详细介绍了Unity3D 5.0的各个主要系统,包括地形系统.脚本系统.动画系统.界面系统.音频系统.网络通讯系统和2D系统,并通过大 ...
- python和pygame游戏开发指南_学习记录
<python和pygame游戏开发指南> Making Games With Python and Palme [美]Ai Sweigart 著,李强 译,2015.12第一版 文章目录 ...
- Unity4.x 2D游戏开发基础教程第1章Unity及其组成的介绍
Unity4.x 2D游戏开发基础教程第1章Unity及其组成的介绍 本书主要讲解的是,如何使用Unity开发2D游戏.但在开始讲解之前,最好先熟悉一下Unity这个工具.本章会首先介绍Unity的下 ...
- Unity 4.x游戏开发技巧集锦第2章摄像机的应用
Unity 4.x游戏开发技巧集锦第2章摄像机的应用 作为游戏开发者,千万不要忽略了摄像机(Camera)的重要性.毕竟玩家是通过摄像机,才看到了游戏的视图.本章将介绍一些摄像机的常见应用.本文选自& ...
- Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏
Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏 即使是现在,很多初学游戏开发的同学,在谈到Unity的时候,依然会认为Unity只能用于制作3D游戏的.实际上,Unity在2013年发布 ...
最新文章
- 几种Windows进程通信
- NSHomeDirectory
- 软件构造学习笔记-实验1
- 【CodeForces - 1066A~E】水题,模拟(有技巧),思维,题意难懂的模拟,二进制问题(有技巧)
- Java容器 | 基于源码分析Map集合体系
- SpringBoot 2.1.5(12)--- Spring Boot 特性上
- 转-由12306.cn谈谈网站性能技术
- 三菱fx3u通讯手册_使用USR-N510实现局域网内连接FX3U
- Java虚拟机和Dalvik虚拟机的区别
- mysql 存储过程游标 循环输出select 查询结果
- bzoj 4883 [Lydsy1705月赛]棋盘上的守卫——并查集(思路!)
- kibana集成内部账号_揭开 Elasticsearch 中身份验证和授权的神秘面纱
- Xilinx Vivado 2017.2安装教程
- visio用例图箭头怎么画_Visio画图(一):UML用例图
- CVPR 2022|上海交大腾讯优图提出IFRNet:视频插帧新范式新SOTA
- matlab中制作软件,在matlab app designer中制作多个3d图形动画
- 学习FileReader和FileWriter类
- “百度杯”CTF比赛 九月场Upload 之菜刀的使用
- 玩 High API 系列好文(一):智能客服、钉钉Ding功能、智能云相册、快速实现身份验证
- Linux中查看二进制文件