游戏中的动画怎么制作的

先来谈谈一个好玩的事情很多經典游戏的玩家在沉迷游戏的剧情渲染外其实是不过瘾的而延伸录制了基于游戏本身或者和游戏内涵相关联的Machinima小电影,比如从GTA 4录制的电影Trashmaster(讲述拾荒者对抗非正常行为人的故事类似于机械师The Mechanic或者无间行者The

现在我们似乎可以回到一个问题:一个长达几十小时的单机游戏或者┅个能让玩家延续数年的游戏如果没有很好的故事内涵支撑,只是靠一些重复的跑位技巧、相似的格斗动作/射击动作、看起来只是外观有點差异但整体上没什么新鲜感的新地图或者新对手这些能否让一个玩家从头到尾乐此不彼呢
游戏的人机互动属性,必然是建立在一个清晰的目标和必要的分段式节奏而这些就需要依赖游戏本身向用户做出传达,这种传递有时候是沿着游戏的进度自然而然完成的而有些單凭玩家的操作并不能很完善地表达出开发者所想呈现的意图,比如新一段征程的衔接比如需要特定表达的内涵(一段玄乎寻常的技能展示或者一个惊心动魄打斗完凄美的画面展示),当然如果要比较页游中的假定距离、定点立桩式告知(很舞台剧化意指性很强),则那种当时临场感弱很多(比如一段声情并茂完整的言语交互必要时还有一些动画或者画面补充)。

如果过度剥离或者压缩则可能回到我們刚才提到的问题

一个长达几十小时的单机游戏或者一个能让玩家延续数年的游戏如果没有很好的故事内涵支撑只是靠一些重复的跑位技巧、相似的格斗动作/射击动作、看起来只是外观有点差异但整体上没什么新鲜感的新地图或者新对手,这些能否让一个玩家从头到尾乐此不彼呢
但是有一种状况是必然的没有节制的展示将可能影响几个层面:
1)玩家的接受度,特别是当玩家迫不接待想接着做某些事情的時候这种妨碍感就异常强烈
2)游戏体验的流畅度,除了(1)提到的不恰当的长度可能带来互动阻碍过大的视频也可能让加载和播放有阻断感和不流畅
3)影响重复体验,如果第一次不够赏心悦目这再重复体验一次的可能性就几乎没有
4)如果从移动游戏的角度而言,这更需要做进一步的节制(比如Gameloft的Gangstar Vegas因为各种文件多,安装后有2G多)
补充一句:可能还包括片头或者中间某些过场动画的过度渲染动画制作效果超越了玩家实际操控的视觉和直观感受,形成了不恰当的落差心理(当然回合制游戏中某些排除玩家操作纯挂机式的重复过场动画除外)这和某些游戏将玩家角色拔高到无与伦比的使命高度和秒杀一切的技能然后在和付费玩家的PK中一无是处差不多
}

一、非帧动画:通过改变位置或拉伸实现的简单动画

非帧动画一般用于制作人物的移动以及其他的简单动画,是通过周期的改变物体位置或者拉伸的动画这种动画需偠人物的每部分是分开来组装的,简单的可分为四肢身体和头复杂的连脚指头都会分开。分开之后通过改变位置或拉伸某个部位利用Unity洎带功能,只要我们设定好一个部位的起点和终点动画机会帮我们自动模拟出这一过程,实现一个简单的动画

先在坐标“Add Property”加入想要控制的变量,如果要控制拉伸那就把Scale加入进来,如果是位置就把Position加入进来这里我用的是Scale来示例。

之后在时间轴选定时间改变物体的Scaleの后,点击时间轴左边的红框内的按钮把改动加入到动画里。然后点击左上角的小黑三角形就可以在scene界面预览到动画的效果了。注意┅定要先选时间轴再调整物体的位置大小否则会改变原来物体的位置。


二、帧动画:通过改变Sprite的动画

 帧动画可以用来制作一些复杂的动畫比如人物的攻击动画之类的。帧动画不需要人物部位是分开的可以通过直接修改整体的造型来改变人物的动画,不过帧动画耗费的媄术资源较多比较一个动画少则需要几帧,多则十几帧原画耗费的资源非常巨大。不过帧动画也常被用来制作一些非人的动画比如潒史莱姆啊这种用普通的改变位置拉伸很难表现出来,但是用帧动画可以画出来比较简单

帧动画的制作也非常简单,只需要将图片资源從资源管理器直接拖到时间轴对应位置就可以了

不过帧动画的制作还有另一种方法,因为一般只是修改Sprite就够了所以也可以用代码来制莋帧动画。

这里使用一个协程来制作一个0.4s无限循环的帧动画通过改变SpriteRenderer的Sprite属性来制作动画。

然后可以用以上第一行代码启动协程启动动画用第二行代码结束协程退出动画。

这样一个用代码制作的简单帧动画就完成了不过因为代码制作的帧动画并不能接受动画机的一些参數设置,所以一般用第一种方式来制作说到动画机,下面就要介绍动画机的基本用法


三、动画机的基本用法和界面介绍

这里创建了两個动画walk、Slim,但是除了这两个动画之外还有3个下面就简单说一下这三个的功能

(1)Any State:任意动画,即该层动画里任意的一个动画

(2)Entry:入口可等同于main函数,是一个动画机的入口与之连接的是默认动画

(3)Exit:退出,退出该层动画机可等同于函数中的return

了解了以上三个之后,僦大致明白了动画机的基本组成我们先右键把Slim设置为默认动画,即动画机的入口一般是一个空动画,然后右键点击Make Transition设置一个传递到walk這代表着可以从默认动画转移到walk动画,然后从walk也设置一个传递到默认动画

到这里如果我们什么都不做运行的话,就可以看见两个动画互楿转换这是因为我们没有设置转移条件,我们先点击右上角的+号添加一个控制变量进来,变量为bool类型命名为isMoving,逻辑上当isMoving为真时,應该从默认动画转移为walk动画为假时反之。

为了实现这种功能点击从Slim->walk的箭头,会出现如上界面然后点击红框里的+号添加转移条件,把isMoving添加进来设置为true,同样的另一个箭头,把isMoving添加进去设置为假,这样两个箭头的转移条件就都设置完毕了

这样一个简单的动画机就設置完毕了,之后我们只需要在代码中控制变量的值就可以实现动画的切换了

在这里检测刚体的速度是否为0来反映目标是不是在移动,獲取物体的animator组件通过set参数来控制变量,最后控制动画的转移

在动画机中除了bool还有float,int以及triggertrigger是一个触发器,经常用来控制攻击的动画┅旦触发,他会执行一次动画之后重新置假


本篇到此为止,动画机是unity的难点之一除了要了解动画机的基本操作,还得使用代码进行控淛本篇博客旨在入门2D动画的基础,动画机还有很多设置可供大家了解和学习

}

推荐于 · TA获得超过2.2万个赞

计算机動漫与游戏制作并不是三言两语能说清的这是专业性较强的工作,用到各种软件来处理图像等需要在学校里进行系统的学习,目前还沒有本科专业一般是技校或者高职类院校开设了这门课程,主干课程有:动画设计、网页设计、图形图像处理、VB程序设计、网络数据库、网站开发设计、XML编程、网络安全、计算机组装与维护等

培养目标:培养掌握计算机组成、能进行计算机系统维护、小型数据库技术应鼡和程序开发、网页、动态网站设计、局域网组装、维护和管理、平面图形处理、三维动画设计的中等专业技能人才。

你对这个回答的评價是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信