spContent=本课程借助成熟Unity游戏引擎,以经典的游戏算法为基础,由Unity价值专家,Unity全球认证讲师张帆主讲:《打地鼠》、《俄罗斯方块》、《翻牌子》、《华容道》、《连连看》、《拼图》、《三消》、《扫雷》、《贪吃蛇》、《推箱子》、《跳棋》和《五子棋》等游戏程序思路。通过学习,将为你实现游戏创作之梦打开一扇门!
应同学们的要求,针对美术类或技术美术类方向,本期加入了美术类的附加课程(包括地形、灯光、模型材质贴图、动画系统、粒子系统、碰撞盒和触发器、物理引擎等等)。
本课程借助成熟Unity游戏引擎,以经典的游戏算法为基础,由Unity价值专家,Unity全球认证讲师张帆主讲:《打地鼠》、《俄罗斯方块》、《翻牌子》、《华容道》、《连连看》、《拼图》、《三消》、《扫雷》、《贪吃蛇》、《推箱子》、《跳棋》和《五子棋》等游戏程序思路。通过学习,将为你实现游戏创作之梦打开一扇门!
应同学们的要求,针对美术类或技术美术类方向,本期加入了美术类的附加课程(包括地形、灯光、模型材质贴图、动画系统、粒子系统、碰撞盒和触发器、物理引擎等等)。
—— 课程团队
课程概述
你小时候是否曾在游艺厅酣畅淋漓飞舞锤子暴打从洞口冒出来的地鼠,或是否在诺基亚手机上玩过《贪吃蛇》,或两个好友在一局《俄罗斯方块》中因为小小地失误而懊恼,或是否曾绞尽脑汁地把《推箱子》通关,或是否玩过因为踩到“地雷”而叹息的《扫雷》,是否跟你的父母玩过《跳棋》或者跟你的同座在作业本上画出棋盘在课上偷偷玩《五子棋》?在享受这些游戏带来的愉悦之余,你是否曾有冲动思考过这些游戏是如何制作的?如果有,《游戏开发基础》这门课程,将带你深入理解和开发多款经典的游戏。
本课程借助成熟的Unity游戏引擎,以经典的游戏算法为基础,由Unity价值专家,Unity全球认证讲师张帆主讲:《打地鼠》、《俄罗斯方块》、《翻牌子》、《华容道》、《连连看》、《拼图》、《三消》、《扫雷》、《贪吃蛇》、《推箱子》、《跳棋》和《五子棋》(2020年新增《战疫3D》和《战疫2D》游戏。)等游戏的程序实现思路。通过对这些游戏的讲解,将为你实现游戏创作之梦打开一扇门!
通过对这些实例的讲解与实践,同学们能够了解、掌握基本的游戏算法,同时加深数据结构等基础知识在游戏开发中的应用认识。
同学们在学习完本课程后,能够熟练使用游戏引擎,同时能够灵活运用相关数据结构和相关数学思路自主创作游戏。
***2020年是不平凡的一年,在年初全球爆发了新冠疫情,在此,本门课程专门制作了两款关于疫情的游戏《战疫3D》和《战疫2D》,借此向奋战在抗疫一线的英雄们致敬。
******应同学们的需求,针对美术类或技术美术类,本期加入了美术类的附加课程(包括地形、灯光、模型材质贴图、动画系统、粒子系统、碰撞盒和触发器、物理引擎等等)。
授课目标
《游戏开发基础》是数字媒体技术等相关游戏设计专业的一门专业基础课。通过该课程的学习,学生应该熟悉掌握经典游戏的算法以及实现方式。
本课程的基本要求是《打地鼠》、《俄罗斯方块》、《翻牌子》、《华容道》、《连连看》、《拼图》、《三消》、《扫雷》、《贪吃蛇》、《推箱子》和《五子棋》等游戏的经典算法实现。
同学们在学习完本课程后,能够熟练使用游戏引擎,同时能够灵活运用相关的数据结构和相关数学自主创作游戏。
如何使用该慕课课程:
1、首先完整看完一章视频,此阶段不需要跟随视频写代码;
2、一章学习完后,先回顾、总结本章的知识要点;
3、根据实验步骤PDF和视频,开始编写游戏;
4、在编写完本章的游戏后,再次回顾、总结(如有可能,可以向身边的同学用自己的语言说出本章的知识)。
5、对本章的案例进行修改,添加自己的创意想法,从而做到举一反三。
课程大纲
游戏开发与社会责任、工程开发方法
课时目标:游戏开发者,既是软件工程师,更是文化艺术创作者。通过课程学习,学生能够明确作为游戏开发者的定位和社会责任,能够在游戏创作时,把政治认同、社会效益放在首位,能够用好游戏这一“技术+文化”融合的有力传播工具,树立文化自信、传播中国文化、弘扬社会正能量、讲好中国故事。此外,学生能把所掌握的解决工程问题的方法扩展到日常生活的方方面面,培养有效的自学能力和积极向上的人生态度,树立敢于挑战,勇于创新的精神。
0.1 游戏开发与社会责任
0.2 游戏开发--工程开发方法
0.3 游戏开发--技术选型方法
第01章 游戏引擎和Unity--工欲善其事必先利其器
课时目标:通过本章学习,学习者能够:1、了解什么是游戏引擎,游戏引擎的作用;2、了解Unity游戏引擎;3、安装和配置游戏引擎和集成开发环境VSCode;4、熟练操作和使用Unity游戏引擎和常用快捷键;5、理解Component软件架构;6、掌握学习一门新的编程语言的基本方法;7、理解C#的语法;8、了解什么是回调函数,以及回调函数的框架;9、使用Unity游戏引擎和Asset Store搭建简单游戏场景。
1.1 课程简介;
1.2 游戏引擎与Unity介绍(为什么要使用游戏引擎?);
1.3 Unity和VSCode的下载安装配置(工欲善其事必先利其器);
1.4 Unity的软件界面和常用快捷键操作(熟练操作工具可以提升效率);
1.5 Unity的Component架构(抓住工具的核心,可以事半功倍);
1.6 Unity中的C#语言(设计开发游戏,需要程序语言的加持);
1.7 Unity的关键回调函数(回调函数,是流行和好用的软件设计架构);
1.8 使用Unity和Asset Store搭建迷宫(新手体验)。
第02章《打地鼠》游戏制作 -- 可以提升反应能力的好游戏
课时目标:通过本章学习,学习者能够:1、了解《打地鼠》游戏的历史和游戏策划规则;2、使用Unity创建新的游戏工程;3、把图片图集资源素材导入到Unity引擎中,并进行配置;4、绘制程序逻辑流程图;5、选择恰当的数据结构表征场景元素,并使用程序实现;6、转换二维数组和一维数组的表征和遍历;7、在恰当时机控制实时生成GameObject;8、使用恰当回调函数(OnMouseDown)实现鼠标和对象之间的交互;9、计时器的编写;10、计分系统的编写;11、修改鼠标的图标图案;12、控制音效的播放;13、实现游戏的导出、运行和退出。
2.1 《打地鼠》游戏介绍;
2.2 《打地鼠》素材导入与SortingLayer;
2.3 《打地鼠》生成洞口--二维数组和笛卡尔坐标的映射;
2.4 《打地鼠》地鼠的生成--InvokeRepeating函数的妙用,防止循环卡死;
2.5 《打地鼠》打击地鼠-- 碰撞检测,游戏逻辑的核心;
2.6 《打地鼠》计时功能--设计一个计时器;
2.7 《打地鼠》计分功能 -- 提升成就感,给玩家加分;
2.8 《打地鼠》游戏结束;
2.9《打地鼠》修改地鼠出现评率---提升游戏难度,使玩家进入心流
2.10 《打地鼠》修改图标图案 -- 沉浸感需要好的反馈;
2.11《打地鼠》重新开始游戏 -- 玩家可以再来一遍;
2.12 《打地鼠》添加音效 --让游戏更生动,不仅仅只有画面;
2.13 《打地鼠》导出游戏 -- 把自己设计的游戏发布给玩家。
2.14 本章小结。
第03章《记忆翻牌》游戏制作 --看看你的记忆力如何
课时目标:通过本章学习,学习者能够:1、了解《记忆翻牌》游戏的历史和游戏策划规则;2、使用二维数组表达牌面位置;3、使用ID表达不同牌面;4、使用随机数实现洗牌功能;5、实现卡牌的配对判断;6、实现计分和计步功能。
3.1 《记忆翻牌》课程介绍;
3.2 《记忆翻牌》创建工程以及资源导入--游戏开发,不仅仅只有程序;
3.3 《记忆翻牌》卡牌的位置排列 -- 二维数组,是游戏地图最好的伙伴;
3.4 《记忆翻牌》洗牌功能的实现 -- 随机,才能更好玩;
3.5 《记忆翻牌》卡牌背面与牌面的显示-- 必不可少的游戏反馈机制;
3.6 《记忆翻牌》卡牌状态设置 -- 把现实状态转化为程序代码;
3.7 《记忆翻牌》卡牌的配对 -- ID相同,才能通过;
3.8 《记忆翻牌》分数与步数计算 --分数是衡量一个玩家能力的重要手段;
3.9 本章总结。
第04章《拼图》游戏制作 -- 训练部分与整体观察能力的游戏作品
课时目标:通过本章学习,学习者能够:1、实现图片的批量读取;2、在限定范围内随机生成图片;3、把鼠标的位置从屏幕坐标系转换到世界坐标系;4、判断点位置是否在某一个矩形范围内;5、实现图片跟随鼠标移动;6、实现图片与目标位置的吸附匹配功能。
4.1 《拼图》游戏课程介绍;
4.2 《拼图》工程的创建与资源导入;
4.3《拼图》碎片素材的批量读取--重复劳动尽量交给计算机;
4.4 《拼图》碎片对象的生成-- 对象是对类的实例化(具体化);
4.5 《拼图》碎片的随机位置放置 -- 随机让游戏看起来更真实;
4.6《拼图》计算每一个碎片的目标位置 -- 帮助每个碎片找到家;
4.7《拼图》鼠标拖拽(1)-鼠标左键事件状态-- 简单的一个鼠标点击,实际可以分成几个步骤;
4.8《拼图》鼠标拖拽(2)-碎片的选取 -- 简单的碰撞检测计算;
4.9《拼图》鼠标拖拽(3)-移动碎片 -- 鼠标和碎片联动,实质是坐标系的转换和坐标的赋值;
4.10《拼图》鼠标拖拽(4)-碎片位置与目标位置的匹对 -- 除了欧式距离,计算距离也有多种方式;
4.11《拼图》游戏胜利判断;
4.12《拼图》游戏课程总结。
第05章《推箱子》游戏制作
课时目标:通过本章学习,学习者能够:1、使用二维数组和对象ID标记,生成基于Tile的地图;2、使用Animation Statement 实现简单的动作控制,理解动画状态、转移条件和转移逻辑控制;3、初步认识函数的重构;4、认识多重if...else...多重嵌套的弊端,使用更为优雅的程序框架进行角色移动的控制;5、掌握顶层逻辑框架的设计思路;6、实现基于地图快照信息打印的逻辑测试方法。
5.1 《推箱子》游戏课程介绍;
5.2 《推箱子》资源导入-资源切割与角色动画制作;
5.3 《推箱子》地图生成思路分析 -- 二维数组再次出现;
5.4 《推箱子》地图生成的程序实现与代码重构 --有了顶层设计,编程便不会慌;
5.5 《推箱子》角色移动方向位置上的Tile类型检测与实现;
5.6 《推箱子》角色可移动的情况分析 --看似简单,其实很复杂;
5.7 《推箱子》角色可移动情况的代码框架实现--先写大纲,可以把复杂问题简单化;
5.8 《推箱子》角色在场景中的移动功能;
5.9 《推箱子》打印出地图快照信息 --好的测试工具,是提升效率的手段之一;
5.10 《推箱子》角色移动与地图快照信息的实时更新;
5.11 《推箱子》推动箱子的功能实现;
5.12 《推箱子》移动代码的重构优化--代码是给人看的,顺便让计算机运行;
5.13 《推箱子》游戏胜利条件判断;
5.14 《推箱子》游戏课程总结
第06章《俄罗斯方块》游戏制作
课时目标:通过本章学习,学习者能够:1、强化二维数组的地图表征思路;2、从不同形态方块中寻找共同内在规律和表征方法;3、实现边界判断方法;4、通过二维数组逐行遍历方法和递归方法实现判断满行和方块下落,以及游戏结束条件的判断;5、了解类屏幕数据清除和更新重绘制实现游戏动画。
6.1 《俄罗斯方块》游戏课程介绍;
6.2 《俄罗斯方块》资源的导入;
6.3 《俄罗斯方块》地图的初始化与显示 -- 二维数组无处不在;
6.4 《俄罗斯方块》地图快照信息显示 --提升开发效率,减少bug,要有合适的测试工具;
6.5 《俄罗斯方块》方块的初始化 -- 跳出思维定势,表达不太规则的对象,需要点Trick;
6.6 《俄罗斯方块》方块的随机生成 --下下一个方格不知道是什么,是本游戏的可玩点;
6.7 《俄罗斯方块》移动和旋转方块 -- 用数据结构能表达的方式表达状态;
6.8 《俄罗斯方块》方块移动旋转与刷新地图 -- 游戏其实是一个不断擦掉画面重新绘制的过程;
6.9 《俄罗斯方块》 边界判断 -- 有一些技巧可以实现边界检测;
6.10 《俄罗斯方块》满行消除 -- 一行一行扫,谁是满行谁便被删除;
6.11 《俄罗斯方块》游戏结束判断;
6.12 《俄罗斯方块》附加功能-显示下一个方块样式;
6.13 《俄罗斯方块》课程总结。
第07章《华容道》游戏制作--诸葛亮也未必能通关的经典中国游戏
课时目标:通过本章学习,学习者能够:1、跳出二维数组表征思路,使用更简洁的变量标记方法表征不同形状类型的棋子;2、实现使用阈值方式判断鼠标上下左右滑动方向的判断;3、使用碰撞检测方法实现不同类型棋子的选择;4、实现1x1、1x2、2x1以及2x2棋子的移动和边界判断方法。
7.1 《华容道》游戏介绍;
7.2 《华容道》资源的导入;
7.3 《华容道》Chess类的编写-- 不统一的棋子形状如何用程序统一表达出来;
7.4 《华容道》棋盘布局的生成-棋盘布局-- 把不统一的棋子形状放在二维数组中;
7.5 《华容道》移动棋子-选择棋子 -- 判断不统一棋子的位置的计算思路;
7.6 《华容道》移动棋子-移动1x1棋子 -- 模糊移动向准确移动转化;
7.7 《华容道》移动棋子-移动1x2棋子 -- 模糊移动向准确移动转化;
7.8 《华容道》移动棋子-移动2x1棋子 -- 模糊移动向准确移动转化;
7.9 《华容道》移动棋子-移动2x2棋子 -- 模糊移动向准确移动转化;
7.10 《华容道》 游戏胜利判断-- 很难测试;
7.11 《华容道》总结。
第08章 《连连看》游戏制作-- 来试试你的眼速和手速
课时目标:通过本章学习,学习者能够:1、从游戏策划中提炼出游戏逻辑算法;2、使用递归思维实现直连、二连、三连的判断。
8.1 《连连看》游戏课程介绍;
8.2 《连连看》资源导入;
8.3 《连连看》Tile类的编写 -- 多个属性和方法的对象,建议集合成一个类;
8.4 《连连看》初始化地图 -- 二维数组再次登场;
8.5 《连连看》选择Tile -- 要选两个相同的Tile才能消除;
8.6 《连连看》连接判断-直连、二连、三连-- 俄罗斯套娃的套路;
8.7 连接线绘制 -- 来点游戏反馈;
8.8 《连连看》课程总结。
第09章 《三消》游戏制作--满足人类配对的强迫症
课时目标:通过本章学习,学习者能够:1、运用多链表结构表示游戏场景;2、实现纵向和横向遍历三个或三个以上相同对象的匹配检测;3、建立匹配中心思维,以某个位置作为坐标原点(匹配中心)向各个方向进行遍历。
9.1 《三消》本章内容简介;
9.2 《三消》资源导入与场景设置;
9.3 《三消》Gemstone类的编写;
9.4 《三消》初始化地图数据结构和场景--换个思路,用链表实现二维数组;
9.5 《三消》选择宝石 -- 选择并交换位置;
9.6 《三消》消除宝石 -- 激动人心地满足配对欲望;
9.7 《三消》重新洗牌操作 --卡壳,那就重新洗牌;
9.8 《三消》课程总结。
第10章 《扫雷》游戏制作--需要一些空间想象能力才能玩
课时目标:通过本章学习,学习者能够:1、习得自顶向下的程序逻辑框架设计方法;2、了解绘制较为复杂程序逻辑的程序流程图以及流程图的作用;3、根据程序流程图编写程序;4、了解在主动轮询与被动赋值之间的优缺点,并能够根据优缺点选择合适的方式实现周边地雷计数的功能;5、根据广度优先或深度优先和递归或回溯算法的优缺点,实现地雷遍历翻开的功能;
10.1 《扫雷》游戏课程简介;
10.2 《扫雷》资源的导入和场景配置;
10.3 《扫雷》游戏逻辑框架 -- 写程序,建议先写框架;
10.4 《扫雷》初始化场景 -- 仍然是二维数组;
10.5 《扫雷》左右键操作和牌面翻开 -- 发挥递归算法的潜力;
10.6 《扫雷》游戏结束判断;
;10.7 《扫雷》UI控制 -- 让游戏画面更生动;
;10.8 《扫雷》课程总结。
第11章 《贪吃蛇》游戏制作--关键靠手速
课时目标:通过本章学习,学习者能够:1、灵活从数组、链表等结构特点出发,挑选合适的数据结构用于表征可变长的蛇体;2、体会完全遍历算法和尾部移位算法的时间复杂度,并计算出其时间复杂度。3、根据性能要求选择合适的算法实现蛇体的移动和吃食物的效果。
11.1 《贪吃蛇》游戏课程简介;
11.2 《贪吃蛇》资源导入与场景设置;
11.3 《贪吃蛇》编写Node类;
11.4 《贪吃蛇》初始化场景;
11.5 《贪吃蛇》蛇的数据结构以及移动蛇的算法 -- 换一种实现思路,享受性能飞一般的感觉;
11.6 《贪吃蛇》游戏结束判断;
11.7 《贪吃蛇》课程小结。
第12章 《五子棋》游戏制作--全国智力运动会竞技项目之一
课时目标:通过本章学习,学习者能够:1、能够从棋盘样式挑选合适的数据结构进行棋盘表征;2、巩固自顶向下的程序逻辑框架编写思维;3、利用阈值判断实现准确落子;4、实现上下左右和斜对角方向上的连子判断功能。
12.1 《五子棋》课程简介;
12.2 《五子棋》资源导入;
12.3 《五子棋》初始化地图快照;
12.4 《五子棋》落子框架的编写;
12.5 《五子棋》落子功能 -- 人没有那么精确,但可以借助计算机;
12.6 《五子棋》链子判断--链子判断需要分不同情况;
12.7 《五子棋》课程总结。
第13章《跳棋》游戏制作--最著名的亲子游戏之一
课时目标:通过本章学习,学习者能够:1、从不规则棋盘中建立恰当的自定义坐标系;2、掌握构建自定义坐标系的思维;3、掌握从自定义坐标系中的位置数据转换到直角笛卡尔坐标系的算法思维;4、选择深度优先或广度优先,以及递归方式实现临近可走棋格的功能;5、根据游戏规则,实现跳子功能逻辑;6、使用取余计算实现回合制功能。
13.1 《跳棋》-课程简介;
13.2 《跳棋》-资源导入场景配置;
13.3 《跳棋》-初始化场景-1--当一条路走不通,试试换一条(自定义坐标系的构建和向笛卡尔坐标坐标的转换);
13.4 《跳棋》-初始化场景-2;
13.5 《跳棋》-移动棋子-1 选择棋子;
13.6 《跳棋》-移动棋子-2 判断临近可走棋格--递归算法的另一个妙用;
13.7 《跳棋》-移动棋子-3 移动棋子;
13.8 《跳棋》-移动棋子-4 跳子实现思路;
13.9 《跳棋》-回合功能--回合制,使游戏具备了亲子同玩功能;
13.10 《跳棋》-游戏胜利判断;
13.11 《跳棋》-课程总结。
第14章《战疫3D》游戏制作(向奋战在抗疫前线的英雄致敬)
课时目标:通过本章学习,学习者能够:1、使用游戏引擎的刚体和碰撞盒实现白细胞的物理功能;2、能够从不同的键盘监听API中选择恰当的功能实现控制功能;3、使用向量计算和牛顿定律实现白细胞的移动;4、使用“点+向量”和“向量*标量”的几何意义实现摄像机的跟随和推拉交互效果;5、初步建立有意识地使用线性代数相关数学知识;6、能够寻找恰当的数学公式生成不同形状位置的病毒NPC;7、使用碰撞盒触发器实现白细胞吞噬新冠病毒的功能;8、了解游戏UI的设计和逻辑控制;9、使用粒子特效丰富游戏场景。10、游戏作品的导出。
14.0《战役3D》序;
14.1 《战疫3D》游戏介绍;
14.2 《战疫3D》资源导入;
14.3 《战疫3D》白细胞添加刚体和碰撞盒;
14.4 《战疫3D》键盘监听功能讲解;
14.5 《战疫3D》白细胞滚动功能实现;
14.6 《战疫3D》摄像机跟随;
14.7 《战疫3D》摄像机推拉;
14.8 《战疫3D》病毒对象创建和旋转;
14.9 《战疫3D》白细胞吞并病毒的功能;
14.10 《战疫3D》UI制作;
14.11 《战疫3D》丰富场景;
14.12 《战疫3D》游戏导出。
第15章 《战疫2D》游戏制作(向奋战在抗疫前线的英雄致敬)
课时目标:通过本章学习,学习者能够:1、在《战疫3D》的基础上,区别3D游戏和2D游戏开发的异同点;2、使用线性插值、光滑阻尼插值等方法实现摄像机的ZoomIn/Out;3、进一步认识2D动画状态机的设计。
15.0 《战疫2D》序;
15.1 《战疫2D》课程介绍;
15.2 《战疫2D》资源导入;
15.3 《战疫2D》白细胞对象制作;
15.4 《战疫2D》2D和3D的区别;
15.5 《战疫2D》白细胞的移动(一);
15.6 《战疫2D》白细胞的移动(二);
15.7 《战疫2D》摄像机的跟随功能;
15.8 《战疫2D》摄像机的ZoomInOut功能;
15.9 《战疫2D》病毒对象的制作放置和旋转;
15.10 《战疫2D》白细胞吞噬和GUI创建;
15.11 《战疫2D》游戏美化;
15.12 《战疫2D》白细胞表情动画;
15.13 《战疫2D》界面制作和导出。
**(美术类)附加教程01:地形Terrain
课时目标:使用地形编辑器Terrain + Gaia + WorldMachine等工具,制作数字地形。
0000-《地形制作》课程简介
0100-《地形制作》高度图生成地形的基本原理
0201-《地形制作》Unity的地形工具介绍
0202-《地形制作》使用Unity地形编辑器制作一个山脉
0301-《地形制作》相关工具和制作流程简介
0302-《地形制作》珠穆朗玛峰地形特征分析
0303-《地形制作》珠穆朗玛峰高度图
0303-《地形制作》珠穆朗玛峰高度图-处理
0304-《地形制作》WorldMachine导入高度图
0305-《地形制作》制作风侵蚀效果
0306-《地形制作》制作水侵蚀效果
0307-《地形制作》制作温度侵蚀作用
0308-《地形制作》导出高度图和相关蒙版
0401-《地形制作》Unity+Gaia
0402-《地形制作》材质分布生成
0500-《地形制作》总结
**(美术类)附加教程02:模型导入、材质和贴图
课时目标:介绍如何把第三方三维建模软件导入到游戏引擎中,其中包括模型、材质和贴图等。
0000-《模型导入,材质和贴图》课程简介
0100-《模型导入,材质和贴图》Unity支持的模型文件格式
0201-《模型导入,材质和贴图》模型尺寸
0202-《模型导入,材质和贴图》不同软件的坐标系朝向
0202-《模型导入,材质和贴图》在Max和Maya中修改坐标轴
0301-《模型导入,材质和贴图》LOD技术
0401-《模型导入,材质和贴图》模型贴图的导入
0501-《模型导入,材质和贴图》-材质和PBR技术
0502-《模型导入,材质和贴图》-PBR特有属性介绍
0503-《模型导入,材质和贴图》-常用的贴图类型法线AO和自发光等
0601-《模型导入,材质和贴图》Standard材质和URP材质
0602-《模型导入,材质和贴图》使用SP导出贴图
0700-《模型导入、材质和贴图》常用贴图类型作用,uv坐标Mipmap
**(美术类)附加教程03:光源
课时目标:讲解在游戏引擎中如何使用光源工具,为场景布置真实的光影效果。
0000-《光源》内容介绍
0100-《光源》基本概念-光线特性、色温、照度、来源分类
0101-《光源》光位、光型、光效、影调和影调反差分类
0200-《光源》Unity中的光照类型-直接光照
0201-《光源》Unity中的光照类型-间接光照
0202-《光源》Unity中的光照类型-间接光照演示
0301-《光源》室外场景晴天日出布光案例
0302-《光源》室外场景晴天夜晚布光案例
0304-《光源》室内场景夜晚常规布光案例
0305-《光源》室内场景夜晚气氛营造布光案例
0400-《光源》总结
**(美术类)附加教程04:碰撞盒和触发器
课时目标:碰撞盒和触发器是游戏创作的基本逻辑之一。本章将讲解如何灵活运用碰撞盒和触发器,实现交互逻辑。
0000-《碰撞盒与触发器》课程介绍
0101-《碰撞盒与触发器》碰撞盒和触发器的概念
0102-《碰撞盒与触发器》碰撞盒的阻挡作用
0201-《碰撞盒与触发器》使用碰撞盒事件触发开门开灯
0202-《碰撞盒与触发器》使用触发器事件触发开门开灯
0203-《碰撞盒与触发器》使用射线检测事件触发开门开灯
0301-《碰撞盒与触发器》总结
**(美术类)附加教程05:物理引擎
课时目标:使游戏的交互效果有质的提升,需要有物理引擎的加持,本章介绍游戏引擎中常用的物理模拟功能。
0000-《物理引擎》课程简介
0100-《物理引擎》物理引擎作用和刚体(Rigidbody)
0200-《物理引擎》物理材质)
0300-《物理引擎》-物理关节
0301-《物理引擎》-使用铰链制作吊桥
0401-《物理引擎》-2D物理引擎
**(美术类)附加教程06:动画系统
课时目标:本章介绍目前常用的动画系统,包括状态机、BlendTree、反向动力学等等
0000-《动画系统》课程简介
0100-《动画系统》动画文件格式以及Animation工具制作动画
0101-《动画系统》从第三方软件导出模型动画
0200-《动画系统》动画状态机Mechanim
0300-《动画系统》BlendTree
0400-《动画系统》AnimationLayer
0500-《动画系统》Avator
0600-《动画系统》反向动力学IK
0700-《动画系统》动画事件
**(美术类)附加教程07:粒子系统
课时目标:游戏的视觉反馈机制,其中最重要的因素便是粒子特效,本章将介绍如何使用游戏引擎中的粒子系统工具。
00-《粒子系统》课程简介
0100-《粒子系统》作用-初始化-喷射器
0101-《粒子系统》作用-粒子参数
0102-《粒子系统》粒子参数的控制方式
0200-《粒子系统》案例-火焰
0300-《粒子系统》VisualEffectGraph介绍
0300-《粒子系统》VisualEffectGraph介绍2
0400-《粒子系统》VisualEffectGraph的导入
0401-《粒子系统》烟花种子发射发射
0402-《粒子系统》爆炸效果的实现
0403-《粒子系统》拖尾效果实现
展开全部
预备知识
参考资料
《游戏开发基础——基于Unity游戏引擎》电子工业出版社
ISBN:9787121477348
常见问题
Q : 如何使用本慕课视频?
A :
1、首先完整观看完一章视频,此阶段不需要跟随视频写代码,这样有利于思路的构建;
2、一章学习完后,先回顾、总结本章的知识要点;
3、根据实验步骤PDF和视频,开始编写游戏;
4、在编写完本章的游戏后,再次回顾、总结(如有可能,可以向身边的同学用自己的语言说出本章的知识)。
5、对本章的案例进行修改,添加自己的创意想法,从而做到举一反三。
6、如何获得源代码和ppt
如果您是老师,可以用电子邮箱跟我联系获得源代码和ppt,我的邮箱是ZF223669@126.com
请在邮件里附上您的工作证或者能证明您是老师的文件,标注您所在学校、专业和姓名。
谢谢!
7、课程内容
本期课程在原有程序内容的基础上,丰富了美术类的相关内容,包括地形、灯光、模型材质贴图、动画系统、粒子系统、碰撞盒和触发器、物理引擎等)。美术部分完全开放,如有需要,可以随时观看。