前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >游戏中的角色是如何“动”起来的?

游戏中的角色是如何“动”起来的?

作者头像
音视频开发进阶
发布于 2020-03-10 07:18:09
发布于 2020-03-10 07:18:09
1.1K0
举报

从红白机时代的超级玛丽,到PC时代CS里面的反恐精英,再到如今主机上栩栩如生的“荒野大镖客”。随着技术的进步,游戏中的这些角色,在移动的表现上愈加真实。

我们会想,为什么有些游戏中的人物,移动起来非常不自然?而有些制作精良的游戏里,每个角色动起来都栩栩如生。这些角色是如何在我们游戏世界中移动的呢?今天这篇文章就会简单的给大家分享一下,游戏角色在游戏世界中的移动原理。

游戏世界

- 真实世界的复制版-

谈到移动,首先不得不谈一下我们游戏中的世界。游戏世界分为2D世界和3D世界,不妨先从3D游戏的世界说起。3D游戏世界是一个三维立体世界,和我们和现实中的世界相似,我们游戏中的所有角色,都会在这个三维的世界里面出生、移动、交互直至死亡。除了角色以外,游戏中的其他对象也是如此产生的,比如说建筑、武器、道具等等。他们身上都保存着自己的坐标位置,当我们在移动我们的角色的时,其实就是在不断的修改当前角色的坐标值。

对于2D游戏,原理要简单很多,所有物体都存在于一个平面世界,他们的移动也只是改变其X,Y两个坐标轴而已。

移动效果 ≠ 动画效果

- 有动作不代表有位移-

现在,让我们再把焦点放在角色的移动上。这里先抛出一个问题,当我们看见一个角色在奔跑时,他真的是在移动么?

很多人可能会说这不是理所当然的么?难道还能原地跑么?没错,游戏中的角色还真就可能是原地奔跑。事实上一个角色的移动和你看见他做什么动作是没有直接关系的。因为在游戏里面,移动表现“不等于”动画表现。不妨看一下下面这张图

图中的这个角色一直在播放移动的动画,但是并没有产生一丁点的位移,因为没有任何逻辑去修改这个角色的位置。

动画

- 像拍电影一样把动作连起来 -

说到这里,我们引出了一个新的游戏概念——动画,那么如何理解游戏中的动画?为什么播放动画不会修改玩家坐标呢?

所谓动画,其实就是角色行为的一种表现方式,和电影或者动漫一样,将一个对象在一段时间内的动作记录并播放,就是一个完整的动画。游戏中针对每个角色都需要美术去单独的为其制作很多段动画,导入到游戏引擎中进行混合与切换,最后实现游戏中的效果。比如说,角色在跑步时有跑步的动画,跳起来会有跳跃的动画,战斗会播放战斗的动画,这些都是不同的动画片段,需要美术们去提前制作。

动画其实也是分为2D动画与3D动画的,以前的游戏都是2D游戏,本质上和我们小时候看的小人书一样,给一个角色创建多张图片,每张上的图片都有着不同的动作,将这些图片连在一起播放就是一个2D动画。

不过与2D动画将每一帧的画面记录下来不同,3D动画记录的角色的3D坐标数据。目前的3D动画实现方式都是由骨骼+蒙皮来做的,也就是说其实我们的每一个角色身上会有一些骨骼,当我们执行某个动画时对应的这些骨骼位置就会发生变化,然后再驱动这个骨骼的“蒙皮”(可以认为我们玩家的皮肤)变化。比如说,一个玩家把手举起来的时候,我们手臂对应的骨骼就会动起来然后包裹着他外面的皮肤也会随之移动,这样你就能看到一个真正的动画了。那么为什么他执行动画的时候不会移动呢?因为所有的动画默认都是相对他自身变化的,相对游戏世界他就是原地静止的。(其实也可以做到相对世界发生变化,这个概念叫RootMotion,在后面的文章里面会进一步讲解)

我们的角色在播放移动动画的时候,其实就是一个循环的动画,你可以看到这个角色的两个腿在不停的走动,手臂也在不停的摆动,但是它只是在不断的播放一个动画。只要处理好动画的开头与结尾就能很好的表现出角色的移动。

移动

- 有“人”暗中操作 -

了解了动画与移动的关系,我们现在就知道驱动角色移动的其实另有其人。不过这个“人”是谁呢?其实这个“人”是谁并不重要,任何一个能做这个工作的对象都可以成为这个“人”,你把它交给地上的一块石头去处理也是可以的。在代码里面,我们可以随意抽象出来一个“移动控制者”,他的工作就是控制角色如何在游戏世界里面移动。

现在假如我们给他一点点移动速度(比如每秒0.1m),如果这时候他的动画时迈开步子疯狂地跑的话,就会发现动画与速度是不匹配的。同理,如果把动画调成走路的样子,而速度改为10m/秒,就会发现他一步还没迈出去就已经滑到对面墙上了,这就是我们平时所说的滑步现象(不过没这么夸张),也是很多游戏里面看起表现很差的原因。只有将速度与动画完全匹配,才能让游戏角色移动看起来非常自然。

当然,真实的情况可能要比这个还要复杂很多。我们的角色在一开始可能还正在缓慢的行走,不一会儿之后就突然开始加速跑了起来。为了模拟真实世界中的移动的样子,我们需要对他的这个移动的过程要做各种精确的模拟,比如说行走、奔跑、甚至是游泳、飞行,不同的状态需要以不同的方式去模拟。对于更加真实的游戏,我们还应该把物理也考虑进去,重力、摩擦力、阻力等等都会影响角色的移动,不过任你怎么复杂核心就是两点——速度与加速度。一般来说,包含了上面这些逻辑的模块我们可以称之为移动系统。同时,由于我们的速度发生变化,还需要动态的修改对应的动画,这个匹配的处理以及播放的逻辑所在的模块我们称为动画系统。如果说,角色的移动是通过你的键盘按键触发,那还会涉及到一个输入系统,输入系统会根据你的按键时长转换成对应的移动速度或者是加速度,具体的转换方式要看游戏的设计逻辑。

到目前为止,如果你认识到了移动表现=动画系统+移动系统,你已经基本理解了游戏角色的移动原理了。现在,不妨再稍微拓展一些。一般美术在制作动画时只会制作走路的动画以及奔跑的动画,他不会制作一个0.5/m的走路动画然后又制作一个0.6m/s的走路动画,如果每个速度都要做一个动画的话美术肯定要累死。那游戏中的玩家,在走路和奔跑切换时该怎么处理呢?答案就是把奔跑动画与行走动画进行融合,根据速度的不同,去混合这两种动画,我们可以称之为blend space,参考下面的图片。

对于游戏质量比较高的3A大作,他们的动画远远不只这么简单,除了有基本的走的动画,还有各种方向的转身动画,包括左转和右转,斜着转,总之各个方向都有一个动画,然后通过很多动画的融合,才能达到一个非常流畅的一个表现效果。而且,移动系统的逻辑也需要模拟的非常精确,来和这些动画达到完美的匹配。

移动同步

- 告诉他你在哪 -

最后,我们再来简单谈谈移动的同步。当我们在玩网络游戏时,你会在你的显示器上面看到多个其他的玩家并且可以看到他们在移动,那这个过程中他是怎么样做的呢?这在游戏设计中有一个专有名词,叫做网络同步,网络同步是游戏领域里一块非常重要也很复杂的一个功能。简单来说,当其他玩家在移动的时候,他需要把他的坐标实时的通过网络发送到你的客户端,你就可以看到他在你的客户端上移动。在游戏开发中,发送的频率,发送的内容以及发送方式的不同的都会影响到游戏的具体表现,我在下一篇文章里会详细的分析虚幻引擎里面的移动组件是如何处理的。

—END—

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 音视频开发进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
腾讯混元 3D 生成模型 2.5 版本发布,开启超高清 3D 内容创作新时代
在 AI 技术飞速发展的今天,3D 内容生成领域也不断迎来新的突破。一个月前,2.0 版本的 5 大模型开源,为行业发展注入了新活力。而今天,腾讯混元 3D 生成模型正式发布 2.5 版本,更是将 3D 生成技术推向了一个新的高度,建模精细度大幅提升,实现了超高清的几何细节建模,为创作者们带来了更强大的工具和更广阔的可能性。
疯狂的KK
2025/04/25
7610
腾讯混元 3D 生成模型 2.5 版本发布,开启超高清 3D 内容创作新时代
【超酷视频】神经网络生成游戏角色动作,自然逼真不重复
【新智元导读】爱丁堡大学的研究者提出利用神经网络处理角色的动作动画的全新方法,相比传统方法角色的动作更加逼真、自然。也许我们终于可以告别游戏中无休止的同样动作了。 论文地址:http://theorangeduck.com/media/uploads/other_stuff/phasefunction.pdf 当我们谈论游戏里的人工智能时,我们脑海里的图像通常是更聪明或更接近现实的敌人,而不是那些没头没脑的自动装置。一项新的研究表明,使用神经网络的 AI 可以实时地在复杂的游戏环境中非常逼真地改变代表玩家的
新智元
2018/03/28
1.7K0
【超酷视频】神经网络生成游戏角色动作,自然逼真不重复
游戏基础课程-游戏开发流程
1、前期预案 项目发起,提出项目初步开发意向 2、初步市场规划 指定计划,组织相关人员,并进行策划管理,财务预算,市场调研 3、项目前期创意 剧本创作,创意改编,脚本策划,关卡设计,原画设计等 4、二次市场策划 5、项目调整,完成前期准备 项目基本特性,对软件,程序语言,平台软硬件设备调试到位
孙寅
2020/06/02
1.8K0
AI技术让手办「整活」:3D建模居然可以这样简单
机器之心报道 机器之心编辑部 拍短视频、发朋友圈,整活必备? 科技领域,既有用元宇宙开发布会的公司,也有 All in 元宇宙的公司,很多虚拟世界已经建立起来,人们面临的问题正在变成:真实世界中,人类创造了亿万种物品丰富着我们的生活,那么如何才能快速复制这些物品到全新的元宇宙世界中呢?  3D 内容对于元宇宙至关重要,很多科技公司正在推出用于构建虚拟世界的工具,随着计算机图形技术、元宇宙和 AI 之间的交集越来越多,这些技术也在不断升级。 最近,华为 HMS Core 3D 建模服务发布了人形角色自动建模和
机器之心
2022/09/01
1.5K0
AI技术让手办「整活」:3D建模居然可以这样简单
GPUSkinning的工作原理
比较有代表性的是帧动画:们将一段较长的动作分解成几个关键帧,然后基于此进行动画的制作。即使现在们使用的工具更新换代,制作动画的思路还是大致如此,拆分与过渡。所有的工具都是帮们自动完善其中的细节。
keyle
2024/11/01
1030
GPUSkinning的工作原理
制作一个游戏
一个完整的游戏开发过程 产品准备阶段: 召集团队 游戏概念化 设计文档、原画、制作Demo,开发工具 产品开发阶段 原型关卡阶段:制作原型关卡,贴图,音效,测试,完成开发流程 批量开发阶段:按照原型开发流程开发剩余关卡 Alpha 阶段:优化游戏内容、美术资源、debug Beta 阶段:debug 母盘:上线(debug) 产品准备阶段 组成开发团队,主要由三类人员:程序、美术和策划。程序解决游戏内的技术问题,美术支持游戏的视觉表现,策划决定游戏如何被玩家玩。 概念化,决定游戏的整体目标前景:
王兵
2018/06/14
8420
《幻兽帕鲁》爆火,大厂坐不住了:这游戏是AI设计的?
《幻兽帕鲁》(Palworld)是当下最热门的话题之一,它在 1 月 19 日于 Steam 上线抢先体验版本,24 小时之内销量就超过了 200 万份,几天之内就突破了 600 万。
机器之心
2024/01/29
3400
《幻兽帕鲁》爆火,大厂坐不住了:这游戏是AI设计的?
从模拟到创新:人工智能从游戏中学到了什么?
7月13日《Science》杂志刊发名为《游戏持续驱动着人工智能发展进步》文章,详细论述了游戏与人工智能的发展关系,认为“游戏为通用智能工作提供了前景广阔的应用领域,将游戏作为研究人工智能的平台,给价值2000亿美元全球电子游戏产业带来了直接的助益。”[1]
小腾资讯君
2023/08/22
2930
VRMMO的技术挑战
又是新的一年, 2016总体不错, 前两年的坚持和积累开始产生效果, 2017不忘初心, 继续前行. 从做PC网游开始, 到2014年做主机游戏, 2015年做单机VR游戏, 2016年做多人VR游戏, 我们一直在走一条非主流的路. 不过现在回头看看, 冒似绕了一条路走在了前面, 做为一名技术人员来说, 还是挺有成就感的. 看看目前绝大数的VR游戏, 其实就是美术做个场景, 程序实现一下交互, 然后就可以拿去上线了, 难怪2016下半年VR热度开始冷却, 因为忽悠太多了. 我们也是从一开始做
逍遥剑客
2018/05/09
1.7K0
【笔记】《游戏编程算法与技巧》1-6
本篇是看完《游戏编程算法与技巧》后做的笔记的上半部分. 这本书可以看作是《游戏引擎架构》的入门版, 主要介绍了游戏相关的常见算法和一些基础知识, 很多知识点都在面试中会遇到, 值得一读.
ZifengHuang
2022/08/30
4.3K0
游戏开发设计模式之状态模式
状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,从而使对象看起来像改变了其类。这种模式的主要目的是将对象的某些功能封装到不同的状态对象中,使得对象的行为依赖于它的状态。
用户11315985
2024/10/16
2380
游戏开发设计模式之状态模式
角色塑造
利用跨媒体世界 口袋妖怪是最成功的游戏之一,其诞生以来产生的相关产品总收入超过15亿美元,仅次于马里奥。口袋妖怪在游戏发行之后,迅速发行了漫画和动画连续剧,同时保持相同的主线,甚至战斗策略。此外还有宠物小精灵玩偶周边、电影、卡牌游戏等跨媒体手段。其强大不仅仅是游戏的设计理念,还包括小心翼翼,持之以恒的用各种媒体门户不断强化同一个丰富的世界。一个成功的跨媒体包含了以下特征: 根生于某种媒体。比如「口袋妖怪」起源于掌机,「福尔摩斯」起源于小说,「星球大战」起源于电影。根生的媒体并不一定是起源的媒体,但却是最开始
王兵
2018/06/14
9740
《 NEXT 技术快报》:图形篇(上)
本文介绍了如何利用机器学习方法在渲染中自动生成布料模拟,并针对该方法在真实感、计算效率、易用性、模拟质量等方面进行了评估。作者提出了一种基于神经网络的方法,可以自动从输入的渲染图像中提取布料模拟信息,并利用该方法对多个渲染结果进行评价。该方法在多个公共数据集上进行了实验验证,结果表明,该方法具有较高的准确性和鲁棒性,可以有效地支持布料模拟的自动生成和优化。"
serena
2017/10/11
1.9K0
《 NEXT 技术快报》:图形篇(上)
如何开发一款游戏:游戏开发流程及所需工具
企鹅号小编
2018/01/08
3.5K0
如何开发一款游戏:游戏开发流程及所需工具
腾讯混元3D生成再升级:建模精度提升10倍
在3D生成中,几何模型就像物体的「骨骼」——它决定了形状轮廓、结构复杂程度。这次升级,混元3D在模型底座上实现了新进化:
小腾资讯君
2025/04/24
2540
2.5D游戏是如何做出来的呢,2.5D游戏快速制作教程
2.5D游戏 是一种介于二维和三维之间的游戏形式。它通常在二维平面上展示游戏内容,但利用三维技术来实现更加逼真的图像效果。
呆呆敲代码的小Y
2023/08/10
3K0
2.5D游戏是如何做出来的呢,2.5D游戏快速制作教程
AI 赋能游戏工业化,网易互娱AI Lab动捕去噪新方法入选 SIGGRAPH 2021
当游戏行业仍在聚焦探讨如何让 AI 真正落地、协助游戏的工业化制作时,网易互娱 AI Lab 已基于游戏研发制作中的痛点交出了一份令人惊艳的答卷。
AI科技评论
2021/08/25
8480
AI 赋能游戏工业化,网易互娱AI Lab动捕去噪新方法入选 SIGGRAPH 2021
Godot3游戏引擎入门之四:给主角添加动画(上)
2018-09-25 by Liuqingwen | Tags: Godot | Hits
IT自学不成才
2019/01/08
1K0
「克隆」新华社女记者,全球首个3D AI合成主播是如何炼成的?
「逼真」大概是我们对于表现力极高的一种赞扬,比如在《霸王别姬》中,「袁四爷」看到程蝶衣出神入化的演技后,发出「虞姬再生」的感叹。搜狗 3D AI 主播又何以做到逼真?
机器之心
2020/05/27
7460
DeepSeek开启游戏AI开发新纪元:实战攻略与创新应用(7/18)
摘要:本文介绍了如何使用DeepSeek强化学习框架进行游戏AI开发,重点包括非对称多智能体对战训练、蒙特卡洛树搜索(MCTS)优化以及Unity/Unreal引擎集成方案。文章首先概述了非对称多智能体对战训练的流程,包括数据采集、模型训练和策略优化,并通过实际案例展示了其在游戏开发中的应用。接着,详细介绍了MCTS的具体实现步骤及其在游戏AI中的应用,优化了智能体的决策能力。最后,探讨了DeepSeek与Unity/Unreal引擎的集成方法,包括模型导入、环境搭建和参数调整,并通过实际案例展示了其高效性和实用性。文章总结了DeepSeek在游戏AI开发中的优势和未来展望,为游戏开发者提供了有价值的参考。
正在走向自律
2025/02/17
2500
DeepSeek开启游戏AI开发新纪元:实战攻略与创新应用(7/18)
推荐阅读
相关推荐
腾讯混元 3D 生成模型 2.5 版本发布,开启超高清 3D 内容创作新时代
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档