电子游戏设计与制作 第四章 精灵动画


考试内容
一、填空题(每空1分,共16分)
二、名词解释(每题3分,共18分)
三、简答题(每题4分,共16分)
四.设计题(10分)

1 精灵动画原理

Sprite:描述一种将平面图像无缝集成到复杂的三维场景中的技术

实现手段

基于精灵的人物表现
精灵:前景是图像,背景是透明的
精灵动画:将上一帧中精灵出现的地方用背景填充,并在新的指定地点绘制精灵
在这里插入图片描述
一幅背景图
一组模板图(mask)
人物的连续显示方式:

  • 双缓冲机制
  • 不要在窗口中直接贴图,避免闪烁:建立一个内存DC,然后把所有的贴图动作都在这个DC上进行,最后把结果显示到操作窗口

对动画序列中的每一帧

  • Load 背景图
  • 确定sprite绘画的位置
  • 将某一掩码图与背景图作AND运算
  • 将对应的人物图与背景图作OR运算
  • 更新sprite绘画的位置

精灵动画的主要不足:图像来源于固定资源,无法动态体现场景景深和光照细节
精灵贴图大多应用于要求显示速度而对真实感要求不高的交互中

渲染优先级

在同一Sorting Layer内,Order数值越大越在前。
在这里插入图片描述

在不同sorting Layer里,Layer越靠下越在前。
在这里插入图片描述

此外,还可以通过z值调整可视化顺序
在这里插入图片描述

多角色动画贴图问题:角色局部遮挡

冒泡排序
优点:编程复杂度低,速度中等

精灵贴图编辑器

好处:

  • 加载一幅图像到显卡,通过节省存储空间和计算时间的方式提高性能。
  • 便于资源管理

精灵动画创建方法

  1. 自动精灵动画创建:将精灵序列拖拽到场景-------在弹出对话框中进行保存------新对象自动生成Animator组件
  2. 手动精灵动画创建:选择具有精灵动画的对象,打开动画窗口------创建新动画片段------拖拽精灵序列到动画窗口时间线timeline
  3. 创建空游戏对象
    切割精灵贴图/表单
    切好的多张图片序列拖到空游戏对象上,创建动画文件和控制器
    如果多个角色控制逻辑相同,仅动画不同,可使用Animator Overrider Controller.

动画窗口特征:精调动画,及两个或多个动画合并

在游戏对象上显示动画必须包含
1)Animator Controllers
使用状态机管理动画状态及动画状态过渡。
2) Animator Components
使用动画控制器定义采用哪些动画片段及何时需要使用。

2 动画系统结构

动画数据

包括

  • 值:通常由动画曲线来呈现,即随时间变化的浮点值
  • 绑定:连接值与游戏对象或组件的参数。

值和绑定是一对一的关系

动画片段可以从外部软件导入模型时加载,但是导入的动画片段是只读的,不可以编辑
可以通过复制导入的资源的方式,对复制的动画片段进行编辑

动画编辑器中的关键帧设置
除了第一个和最后一个关键帧之外,每个关键帧都有左切线和右切线来调节差值曲线。
在关键帧上点击右键,可以选择关键帧预设设置

动画混合

同一时间播放多个动画片段

每个动画片段需要分配一个权重值weight来决定影响最终动画的比例。

通常采用权重平均值的方法来计算动画混合:将各个动画片段里的参数值乘以权重,最后以求和的方式来确定混合后的参数值

调整动画混合权重 ------** 动画控制器**
在这里插入图片描述
在这里插入图片描述

动画参数

在这里插入图片描述

Animator component

在这里插入图片描述

动画状态

在这里插入图片描述

状态控制设置

在这里插入图片描述

Blending Trees混合树

混合树类型
在这里插入图片描述
在这里插入图片描述

Blend Graph 混合图

1D Blend Graph
2D Blend Graph,蓝点是每一个motion,蓝色分布代表权重。

Any State

在这里插入图片描述

通过脚本控制动画过渡参数

在这里插入图片描述

3 游戏中的物理运动

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
区域监测
采用某种规则形状逼近物体
物体之间的碰撞检测转化为规则形状之间的检测
判断标准:两张待检测长度是否已相交。

碰撞点检测
本质是区域检测的一种
一般在两个运动物体中的一个物体上设置碰撞点,在另一个物体上设置检测区域,运行时逐个判断碰撞点是否在检测区域中

颜色检测

为树林做一张掩码图,将树林用黑色填充。要产生汽车驶入树林后面的效果,先在背景上贴上汽车的图像,然后在上面用镂空图技术画上树林。然后,判断汽车图像在树林图像上的相对位置,将汽车图像上的点和掩码图上相应位置的点做按位AND操作,检查结果中是否有黑色点(RGB值为0)存在。如果存在黑色点,表明有碰撞

2D物理组件如果与3D物理组件共存,不会产生交互效果

2D物理材质:摩擦力、弹力(0表示不反弹,1没有能量损失的反弹)


传送门

上一章:电子游戏设计与制作 第三章 二维图像游戏基础
下一章:电子游戏设计与制作 第五章 三维游戏中的场景管理技术

猜你喜欢

转载自blog.csdn.net/RTyinying/article/details/112138414
今日推荐