创游世界动画系统设计入门
一句话摘要
创游世界动画系统设计的完整指南,涵盖角色动画、UI动画、特效动画、动效组件使用、动画脚本控制等,帮助开发者做出流畅好看的游戏动画。
适合谁阅读
- 想要给角色添加动画的开发者
- 需要设计UI动画效果的创作者
- 想了解动效组件用法的进阶用户
你将学到什么
- 动效组件的基本用法
- 角色动画的实现方式
- UI动画的设计技巧
- 常见动画效果实现
- 动画优化建议
动画系统概述
什么是动画系统
动画系统是指游戏中各种动态效果的总称,包括角色动作、UI过渡、特效展示等。
创游世界的动画类型
| 动画类型 | 说明 | 典型用途 |
|---|---|---|
| 角色动画 | 角色贴图的帧动画 | 行走、攻击、受伤 |
| 动效组件 | 预设动画效果 | 飘字、爆炸、闪烁 |
| UI动画 | UI元素的过渡效果 | 界面弹出、淡入淡出 |
| 粒子特效 | 粒子系统效果 | 火花、烟雾、技能特效 |
| 拖尾效果 | 运动轨迹显示 | 剑光、子弹轨迹 |
一、动效组件
1.1 什么是动效组件
动效组件是创游世界提供的预设动画效果,可以直接添加到物体上。
1.2 常用动效类型
| 动效 | 说明 | 适用场景 |
|---|---|---|
| 闪烁 | 物体颜色快速变化 | 受伤、警告 |
| 抖动 | 物体位置抖动 | 受击、震动 |
| 缩放 | 物体大小变化 | 出现、消失 |
| 旋转 | 物体旋转 | 攻击、收集 |
| 漂浮文字 | 显示飘浮的文字 | 伤害数字、提示 |
| 颜色变化 | 物体颜色渐变 | 状态变化 |
1.3 动效组件使用
// 给受伤的物体添加闪烁动效
当受到伤害时
播放动效 "闪烁" 持续 0.5 秒
结束
// 给收集的物体添加缩放消失动效
当碰撞时
播放动效 "缩放消失" 持续 0.3 秒
销毁自身
end1.4 动效参数配置
| 参数 | 说明 |
|---|---|
| 持续时间 | 动效播放的时长 |
| 循环次数 | 动效重复播放的次数 |
| 速度 | 动效播放的速度 |
| 目标对象 | 动效作用的目标 |
二、角色动画
2.1 帧动画原理
角色动画由多张连续贴图组成,切换显示不同贴图产生动态效果。
// 简单的帧动画实现
当开始时
设置自身属性 "当前帧" 为 0
设置自身属性 "总帧数" 为 4
结束
重复执行(每秒8次)
显示贴图 帧.当前帧
设置自身属性 "当前帧" 为 (当前帧 + 1) % 总帧数
end2.2 动画状态切换
// 根据移动状态切换动画
当移动状态改变时
如果 移动中 且 不是攻击中 那么
播放动画 "行走"
否则
如果 攻击中 那么
播放动画 "攻击"
否则
播放动画 "待机"
结束
结束
end2.3 攻击动画
当执行攻击时
播放动效 "攻击前摇" 持续 0.2 秒
播放动画 "攻击"
造成伤害
播放动效 "攻击后摇" 持续 0.1 秒
等待 攻击间隔
end三、UI动画
3.1 界面弹出动画
当切换UI时
使用动画 "弹出" 过渡
延迟 0.3 秒
end
// 或者使用过渡动画
当点击按钮时
切换 UI "商店界面"(过渡动画:弹出)
end3.2 逐字显示动画
当显示对话框时
设置文字为 "你好,欢迎来到创游世界"
使用逐字显示效果 速度为 每字0.1秒
end3.3 UI元素动画
// 按钮悬浮效果
当UI按钮悬浮时
播放动效 "缩放" 目标为 当前UI元素 数值 1.1 倍
end
当UI按钮离开悬浮时
播放动效 "缩放" 目标为 当前UI元素 数值 1.0 倍
end
// 界面出现动画
当UI显示时
设置UI元素位置为 屏幕外
播放动效 "移动到" 目标为 目标位置 持续 0.3 秒
end3.4 过渡动画类型
| 动画类型 | 说明 |
|---|---|
| 淡入淡出 | 透明度渐变 |
| 弹出 | 从小到大放大 |
| 滑入 | 从侧面滑入 |
| 缩放 | 大小变化 |
| 旋转 | 旋转出现 |
四、特效动画
4.1 粒子特效
// 爆炸粒子效果
当敌人死亡时
在 死亡位置 生成粒子特效 "爆炸" 持续 1 秒
播放音效 "爆炸"
end4.2 拖尾效果
// 剑光拖尾
当执行斩击时
播放动效 "拖尾" 类型为 "剑光" 持续 0.2 秒
播放动画 "斩击"
end
// 子弹轨迹
当发射子弹时
子弹上添加拖尾效果 "烟雾轨迹"
end4.3 飘字效果
// 伤害飘字
当造成伤害时
生成漂浮文字 "-100" 在 目标位置
设置漂浮文字颜色为 红色
设置漂浮文字动画为 "向上飘动"
end
// 金币获得提示
当获得金币时
生成漂浮文字 "+50" 在 UI位置
设置漂浮文字颜色为 金色
end五、动画脚本控制
5.1 动画播放控制
// 播放指定动画
当按下 "攻击键" 时
如果 当前状态 = "待机" 那么
设置自身属性 "当前状态" 为 "攻击"
播放动画 "攻击1"
等待 0.5 秒
造成伤害
等待 0.3 秒
设置自身属性 "当前状态" 为 "待机"
结束
end5.2 动画队列
// 动画队列播放
当执行连招时
播放动画 "攻击1"
等待 动画结束
如果 连击数 >= 2 那么
播放动画 "攻击2"
等待 动画结束
结束
如果 连击数 >= 3 那么
播放动画 "终结技"
等待 动画结束
结束
end5.3 动画事件
// 在动画特定时刻触发事件
当播放动画 "大招" 时
在 动画时间 0.5秒 时
生成特效 "能量聚集"
结束
在 动画时间 1.0秒 时
造成大范围伤害
生成特效 "爆发"
播放音效 "爆炸"
结束
end六、常见动画效果实现
6.1 受伤闪烁
当受到伤害时
播放动效 "颜色闪烁" 颜色为 白色 持续 0.3 秒
播放动效 "抖动" 持续 0.2 秒
end6.2 移动拖影
当移动时
如果 移动速度 > 阈值 那么
播放动效 "拖影" 类型为 "残像" 持续 0.1 秒
结束
end6.3 传送效果
当触发传送时
播放动效 "闪光" 持续 0.3 秒
播放音效 "传送"
隐藏物体
等待 0.5 秒
在 目标位置 显示物体
播放动效 "出现" 持续 0.3 秒
end6.4 召唤效果
当召唤生物时
在 召唤位置 播放动效 "光环"
等待 0.2 秒
生成生物
播放动效 "出现闪光" 持续 0.3 秒
end七、动画优化
7.1 性能注意事项
| 问题 | 解决方案 |
|---|---|
| 动画过多卡顿 | 减少同屏动画数量 |
| 粒子效果卡顿 | 减少粒子数量或简化效果 |
| 动画加载慢 | 预加载常用动画 |
7.2 优化建议
// 在不需要时停止动画
当敌人远离视野时
停止动画播放
end
当敌人进入视野时
继续动画播放
end
// 延迟加载不紧急的动画
当进入战斗时
加载战斗相关动画(紧急)
延迟 2 秒后 加载背景动画(非紧急)
end7.3 动画LOD
当距离 > 500 时
播放低精度动画
end
当距离 <= 500 时
播放高精度动画
end动画效果速查
| 效果 | 实现方式 |
|---|---|
| 受伤闪烁 | 动效组件 "闪烁" |
| 伤害飘字 | 漂浮文字 + 向上动画 |
| 爆炸效果 | 粒子特效 + 动效 |
| 界面弹出 | UI切换动画 "弹出" |
| 逐字显示 | 对话框逐字显示 |
| 拖尾效果 | 拖尾组件 |
| 传送特效 | 闪光 + 隐藏 + 出现 |
相关页面
待验证问题
[待验证]具体动效组件的参数默认值[待验证]不同版本的动效支持差异
后续优化方向
- 补充更多动效组件的详细说明
- 增加实际动画案例截图
- 完善UI动画设计专题
