粉丝155获赞436
今天来实现相机的一个跟随效果,利用鼠标的上下左右移动,可以控制相机的一个视角的转换。首先我们要创建一个 play, 点击立方体胶囊, 秘密为 play 重置, 调整他的位置, 然后再 pray 里面再创建一个立方体, 他的作用主要是当做这个玩家的一个面相方向, 我们可以缩小一点。 然后我们再创建一个外空对象, 在歪空对象下面创建 x 空对象, 在 x 空对象下面再创建一个空对象,命名为 z, z 下面创建一个空对象,命名为 zoom。 在我们将摄像机拖入字幕中, y 负责 y 轴旋转, x 负责 x 轴旋转, z 负责 c 轴旋转, soon 负责远近。我们还要将歪对象进行重置, 然后再调整相机的位置。 我们开始创建脚本, 这里我已经写好了脚本, 大家可以和我同样命名为 camera, 点击打开脚本进行代码的编写,这里我对代码进行注视, 保存代码, 将脚本挂在到摄像机当中。 然后我们将外对象拖入, 将 x 对象拖入,将 z 对象拖入, 将 zoom 对象拖入,这里将玩家 play 拖入, 然后勾选这两个,这个是是否跟随玩家,这个是是否控制玩家旋转, 然后我们运行项目。 现在我们鼠标左右移动,玩家也会跟着上下左右旋转, 然后我们将是否控制玩家旋转,取消勾选, 我们就会看到玩家的面朝方向不会跟随鼠标的旋转而旋转。 对这个是否跟随玩家取消勾选, 我们就会发现移动 play 的时候,这一个摄像机是不会进行跟随的, 当我们点击勾选的时候,移动 play 摄像机会进行一个跟随, 然后今天就讲到这里了,咱们下期见。
在这个视频当中,我们来实现人物的基本的移动,而且在移动的过程当中,我们也要进行人物的翻转,我们来一起动手写一下这些代码, 那么在我们写代码之前,我们还是来强调一下这个知识点,一旦一个物体上被挂载了 rigibad 缸体组建之后,那么它的坐标就由这个缸体来进行驱动了。 我们打开 regbidi tod 下边的 info 这个位置,可以看见它可以有 position, rotation 和 velocity, 就代表它的 position 和 rotation 可以覆盖原有的 transform 这部分的内容。 还有在之前的视频当中,我们有演示过,我们可以通过修改坐标的方式来让这个人物产生移动,而且我们也可以通过添加速度的方式来让这个人物产生真实的移动效果。那我们通常 常会使用更改速度的方式,我们一起动手来写一下,你就更了解如何使用速度来驱动一个物体了。那我们可以双击打开这个代码,我们接着之前的代码内容来写。 上个视频当中,我们已经成功的获得了我们的键盘的输入以及手柄的输入,他输入了一个坐标值,我们传递到了我们的 input 第二个审当中, 那么我们就可以把这个左右的正负值给到我们的速度上,我们也在对应的方向施加一个速度就行了。那么既然我们要添加速度,那我们就势必要有一个速度的值,我们可以创建一个这个变量, 我们起名就叫做 speed, 它是一个 float 的变量值,也就是一个浮点运算值,可以有小数的创建之后保存你的代码,返回到 using 当中,我们就可以在 inspect 窗口当中看到这个变量,我们 可以在这速度给他输入一个值,比如说二百,为什么输入这么大?接下来我们会在公式中留意到,为什么需要这么大的一个数值返回到运营当中,我们接下来要实现人物的移动,我们要把移动的数据也持续不断的更新上去。 那么在使用缸体 rigid body 这个组件产生移动的时候,我们通常会在 fix update 当中去执行。 fix update 是一个固定更新的值,他确保在不同的设备上,无论你的运算速度是否有多快,他都以一个固定的时钟的频率来进行执行, 所以通常跟物理有关的我们会放在这执行。当然在之前的视频当中我也给大家展示过,我们是其实可以修改我们的物理判断的更新模式有 fix update 和 update, 暂时我们就按照传统的方式用 fix update 里边来写,那么接下来我 我们会写一个函数方法,用来我们人物的基本的移动,起名字就叫做 move, 那 word 代表这个函数是没有任何返回值的,这就是一个基本的函数,那在这里边我们写的内容,我们要在 fix update 当中进行执行,我就可以在这里边执行一下我们刚刚写好的函数 move, 所以在这里边我们要做的就是修改我们缸体的速度,那我们还没有获得缸体的组件,就没有办法更改它,那我们怎么做好呢?我们可以在上面来创建我们的缸体组件,然后来获取一下它,我们再来看第一种获取的方法,我们在上面创建这个缸体的类型, rigid body to d, 起名叫做 r b, 保存你的代码返回到微信当中,这个时候我们就可以看到现在我的代码里边有一个变量叫做 r b, 这里边现在是空的,没有获得任 和的 rigibati tod 的这个组件,那我想获得一个简单的方法,就是我可以将自身身上的 rigibiti todi 点击拖拽放到这个位置,那么我就获得了这个组件的使用权。那有了这个引用之后呢,我就可以调取 rigibid 当中的这些所有的变量参数, 这些每一个你能看到的都可以通过变量的方式去来获得修改他,那么这是一种方法。这种拖拽的方法好处就是他获取的速度非常快,他不需要等你的编辑器执行或者你的游戏执行,他就直接能够获取这个组件的使用权。 如果你的一些组件当中的变量是需要在游戏一开始的最早最早的地方就要执行的时候,那么我们通常用这种拖拽的方式进行复制或者另外一种方法。如果不是那种一定要在所有的代码执行之前要执行的话,我们会在我们的额外课 方法当中去获得这个变量的负值方法就是比如说我们可以把它改成 private, private 和 public 的意思是一个是公开的,一个是私有的, 那么被标记为 private 这个关键词的话,那么就代表当前类型的这个变量只能在我这个类型,也就是 player controller 里边进行访问和使用,我没有办法在另外一个代码当中进行调用, 而被标记为 public 类型的这样的变量的话,那除了可以在 inspect 窗口当中看到以外,也可以通过其他代码进行访问和编辑, 给大家留意这一点。那如果我标记为 private, 我保存代码之后返回到 unit, 我就没有办法在这个 inspect 的窗口当中看到这个变量了。那我怎么来获得这个负值呢?我们可以在下边来获得我们的这个变量,就 可以等于 get component。 我们在 inspect 窗口当中添加 component 的时候,那个按钮叫做 add component, 那每一个组件都叫做 component, 我就可以来获得 component。 那在我自身上获得什么类型呢?用中括号把它括起来,我要获得一个 regbad to d 类型的这个组件,那通过这个命令,我们就成功拿到自身的 regbad 了。 然后我有了这个锐志八 d 之后,我就可以修改他的速度。刚才我们说了修改速度,那么 r b 打上点之后,我们就可以访问所有它里边包括的函数方法和变量参数。那我们要获得就是速度,我们可以在这里边看到速度。我们可以直接输入我老司机, 这个 vlog t 等于什么呢?我们可以把鼠标移过来,这是在我们的每一秒钟以固定的单位线性的执行更改它的速度, 所以我们来修改一下这个 velocity。 刚才我们在我们的 inspect 窗口当中还有这里面提示都提到了它是一个 vector two 二维的响亮,就是它 y 轴也有速度, x 轴也有速度,两个速度你都可以进行更改,所以我们要用一个新的速度来替换现在的速度。我们可以打上 new vector two x 轴的方向,我们现在主要的移动就是 x 轴的方向,我们既然有了输入的方向值,我们就用这个输入的方向值来乘以我们刚才编辑的这个速度,然后我们要再乘上一个我们时间的修订值。 可以看到我们打上括号之后呢,这个 vector two 里边的两个数值都是两个 flow 的值,一个是 x, 一个是 y, 所以 x 值的方向就是我们输入的方向,乘以速度,乘以这个时间的修正。为什么乘以这个时间的修正呢?这个时间的 修正可以帮助我们在不同的配置的电脑上面都获得相同的实验的效果,那这是一个常见的写法,大家记住它就可以了。具体这个 time 点掉在 time 里边表示什么?我们可以在什么情况下使用?大家可以查看一下代码手册,而且在稍后的内容当中,我们还会继续用到它, 到时候大家越来越了解这个内容了。好,接下来逗号 y 值,所以这个 y 轴数值是什么呢?可能有很多小伙伴觉得,哎,那既然我们是横向移动,那 y 轴我们给一个零是不是就可以了呢? 话是这么说,但是给零的话会有一些问题,一会我们会来看,那前面这个位置,我们 input direction, 它是一个 vector two 的值,我们要修改的是它的 x 值,我们打成点 x。 好,这样做就完成了,我们保存一下代码,先返一套 unity, 我们先试试来左右移动,保存一下你的项目,点击运行。 首先我们看到的第一个问题,人物降落的比以前慢了啊,非常非常的缓慢,对吗?这就是为什么 rgbd 后边的那个速度的 y 值不应该是零。好,他现在成功落地了。接下来我输入键盘上的 a 和 d, 可以看一下 inspect 窗口当中的这个变量的值。 哎,现在我就可以通过左右的移动来修改这个人物的移动的方向了。如果你觉得他的速度很慢,你可以在这里修改,比如说二百六十。 哎,我觉得这个二百六十不错,但是大家请留意,我之前也有提到过,你在运行模式下修改的变量数值,并不会实际更改它的变量,一旦我的项目停止之后,可以看到这个数值就还原了,所以我希望这个速度稍微跑得快一点, 我给他一个二百九十。 ok, 现在我们就成功实现了人物的左右移动。不过我们刚才看到了他降落的速度太慢了,我们要来修改一下,所以最后这个数值不应该是零,但应该是什么呢? 我们之前有留意过,在 unit 当中,二 d 的物理引擎歪轴的速度是负九点八一,也就是模拟的真实的重力,所以在这里边我们要让他维持他原有的那个重力。 所以在这里边我们可以输入什么呢?就是让它保持原来的 vlos t 点 y, 这样的话就可以保持它的重量不变了。好,保存代码。返回到应用题,我们再来测试一下。这次运行游戏之后呢,我用我的手柄来试试它的移动。 哎,现在降落的速度就可以了,然后我用手柄来移动一下也是完全没问题的。不过我缓慢移动我的手柄的左侧的操纵杆的话,我们留意一下可以看, 那他的速度非常慢,对吗?因为这个 x 的数值并不是直接变成负一,他是变成一个小数,如果拉到头的话,他就会接近于负一和正一之间了。 所以可以留意到,在新的输入系统当中,我们手柄的输入和键盘的输入是有一些差别的,那这一点大家请留意,我们也可以根据这个特性来调整。我们的项目的设计 好了,那左右的移动我们实现了。那接下来如何翻转我们的人物呢?看起来现在向左走的话,简直就是迈克尔杰克逊的月光步,他,他没有翻转他的人物。在 uni 当中翻转有几种做法。首先最简单的一个方法,我们可以通过修改 transform 当中的这个 skill 的数值, 这个 school 的是三维项量,都是围绕的对应的轴来进行比例的缩放。比如说我调整 x 的数值,把它缩小,可以看到人物就扁了,因为它的矮, x 轴的比例小了,宽了,他就变成胖了,因为数值变大了。那怎么样才能翻转呢?当他小到小于零了,他就会向另外一个方向调整了,所以我们只要把它从一改成负一,那么这个人物就翻转了, 这是一个比较普遍的做法,但是如果是零的话,哎,我们可以看到这个任务就没了,因为他的 x 轴的比例没有了。那另外一种做法,我们可以来看一下 spread render 的这个组件,在 spread render 这个组件当中直接提供给我们一个非常方便的变量,就是 flip 福利,就是翻转的意思,我们可以沿着 x 轴和 y 轴来进行翻转,只要勾选这个选项,人物就翻转了。在 y 轴翻转的时候,我们留意到它是以脚底的中心点翻转的,原因就是因为在我们的人物切割图片的时候, 他的 pivot 锚点位置设置的是脚底中心,所以我们沿着歪轴旋转的时候,他就是按脚下来进行翻转的。那两种方法都可以。那在我们这个项目当中呢,我们使用比较传统的修改 transform 的 skill 的这个 x 的数值,让整个人物物体都进行翻转, 那我们怎么来修改呢?我们就可以获得 transform 的这个组件。那 transform 呢?作为每一个 game object 默认的组件,例如我在我的 support scenes 当中创建一个空的物体,他默认就会有 transform 的这个组件,所以他是一定会有的。我们不需要 get component, 我们可以直接拿来用。那怎么操作呢?我们一起来写一下, 我们去到我们的目符的这个函数,我们除了人物的左右移动之外,我们也想不断的更新,按照我们移动的方向来进行翻转。那接下来我们来写一下,我在 这里写上一个注解,打上双斜杠的话,我们可以添加一些注视,如果你是刚刚开始学习游戏题的话,鼓励你多多写一些注视,每一行代码都可以标记一些注视,方便你以后再回来看这行命令到底是什么意思。 接下来这个部分是跟人物翻转有关,那我要修改它的 skill, 那我们要用到的是 transform 的组件,我们输入 transform 之后,我们可以留意到有一个小写的,有一个大写的, 大写的是类型,小写的是变量,前面有个扳手,而且这里提到了他就是当前的 component 上面的那个 transform, 这就是我们要的。下边也写明了这个是已经挂载到 game update 上面的 transform, 所以我们就用小写的这个。 然后我们要修改的是他的 skill, 所以我们在这里边直接输入 skill, 可以看到我们可以修改的就是他的 local skill, 就是当前的 skill。 那它等于什么呢? local skill 是什么?数值?鼠标移过来,它是一个 vector three 的三维变量,所以有 x, y 和 z, 所以我们重新给它复制 new victor 三。那他应该是什么呢?向左的时候他应该是负一,向右的时候他应该是正一。那我怎么知道他向左还是向右呢?我们可以通过我们的 input direction。 不过我们有一个问题,刚才我提到了你键盘输入的时候,他确实是负一和正一,但是如果一旦你用手柄操作的话,那么这个 x 的数值很可能是个小数,但是至少他会有小于零和大于零的两种情况。 所以接下来我们可以用另外一种方法来确定我们下我们的人物的翻转方向。我们可以在这里创建一个临时变量,用来记录我真实的方向啊,起名就叫做 face direction, 我缩写了就是人物的面朝的方向。他等于什么呢?默认的情况下,他应该等于我们呢? transform the local skill the x, 然后我们可以发现,诶,现在有一个问题,我创建的是一个整数的一个数值,可是它下面出现了红色浪线,它提示我了,你不能把一个 flow 的值变成一个整数值,因为 transform 的 local skill 的 x 是可以由小数出现的。 那为什么我在这里用 int 就是方便我们以后用的时候会出错,我先把它强制变成一个整数了。那在这里顺便给大家讲一下,我们如何在这两种数字之间进行转换。数据类型之间进行转换,我们可以强制把 float 后边的小数全省略掉,方法就是把它强制改为 int 的类型, 这种写法叫做 cast, 也就是强制转换。我们把一个 flow 的类型强制转换成 int 类型好了,那他有了一个初始值,他初始值 就是一,所以我们可以在这里写上,等你变成负一的时候,我就在这里写负一。那管你是什么,我至少有了这个变量, y 和 z 都是一,这个我们能确定 好了,那他什么时候变化呢?也就是说,当我的上面的这个输入的数值的 x 值小于零,那他就改成负一大于零,那他就是正一,对吗?所以我们来简单写一下,我们来写一个判断语句, if, 判断一下,如果 input direction 的 x 值一旦它大于零,那么 face direction 就等于一。反之,如果 input direction 点 x 小于零,那么 face 的方向就等于负一。 在这里我的 if 的条件语句下边没有用大刻块括起来,原因就是因为如果 if 的判断语句下边只有一行命令的话, 我们就可以省略这个大括号。好了,这样我们就写好了,我们既判断了输入的方向乘以速度给到我们的人物以外,我们也判断了通过输入的方向来更改我的 transform 的 local skill, 让这个 local skill 时刻等于我们对应的移动方向来实现人物的翻转。 好的,保存代码返回到应用题,我们来测试一下,点击运行好,现在我们的人物就可以成功的进行翻转了。在这里再次提醒大家, 我们在什么情况下可以使用 local skill 的修改方法呢?首先第一点就是要确定我们的人物的图片,我再次给大家看一下这个图片, 他的锚点的位置决定他的翻转,还记得吗?我刚才 flip y 的时候,他也以脚底位置进行翻转了,所以这个位置也决定了我们人物的中心轴的翻转方向。 如果一旦这个值的位置是在这,那么他就以这个纵坐标的这个位置来进行人物的翻转了,那么你用 local scale 的话,就没有办法实现原地翻转,而是要以这个轴歪轴为方向来进行翻转了,所以这样的情况下我们不能用 local scale。 还有一个情况,我先返回,如果你的人物放在场景当中,你的本身的 local scale 不是一,比如说我希望人物大一点,我把它改成二,如果你一旦你修改了图片的比例的话,那要记得你也要在代码当中相应来进行修改,所以这个位置就不是一了,就应该是二,这两个位置也都是二了。 所以大家在用这个 local skill 的时候一定要明白我们为什么用 local skill, 还有它更改的是什么数值,好,这里面我改回去是一好的,这样我们就成功实现了我们通过修改人物的 local skill 来进行翻转,也是 实现了输入键盘和我们的手柄来实现人物的移动了。那么怎么样使用我们的 sprite 的这个组件呢?我们就可以通过 sprite render 点 flip x, 让它等于处就代表勾选了 y 轴,等于处就是 y 轴的翻转了。好,感兴趣的小伙伴可以自己动手来试一试你怎样获得 spider 软件组件,就像获得瑞士八的一样,然后获得点儿福利普 x 就可以实现这个效果了。 ok, 这就是这个视频的所有的内容了,自己动手做一下,也调整一下这里边的速度,找到一个你喜欢的数值,然后实现一下人物的基本的翻转。别忘记你喜欢的函数一定要放在 fix update 当中去执行,不然的话他没有办法执行,没有人调用他, 所以 update fix update 包括 on disable, on enable 这些都叫做代码周期性函数,所以周期性的开始和关闭,周期性的每 真执行和周期性的固定执行,所以只有在这里边执行的内容才会持续不断,在你游戏的过程当中都会执行的函数方法。好了,那这就是这个视频的所有的内容了,赶紧做好这些,下个视频我们来实现其他的人物功能,我们下个视频再见吧,拜拜。
这次课程我们来学习如何使用 unity 动画系统中的二地 blend tree, 并使用 root motion 控制游戏对象的运动。利用 unity 新输入系统实现简易的第三人称控制器。最后使用 cinematic in 来制作镜头的跟随效果, 现在这里看到的就是本次课程所实现的效果。废话不多说,我们开始本次课程吧。首先我们新建一个三 d 项目,并把三个资源包导入 asset 文件夹,其中包含了人物模型、基础移动动画以及持枪动画。 赢的屉中一次只能导入一个资源包,这里要耐心点。 如果人物模型显示为粉色,那是因为材质球和当前默认管线不兼容导致的。我们可以先在模型的 inspector 面板下找到材质栏,并把贴图导出备份。这里我们可以导出到 texture 文件夹下。 然后我们把材质球的 shader 替换成当前默认管线下的标准光照 shader。 比如我这里创建的项目适用的内置管线,那就选择 standard。 注意,在创建项目时,如果我们选择的是三 d, 那就使用的内置管线。如果是选择的下面的高清渲染管线 hdrp 或者通用渲染管线 urp, 就要替换成相应的 shader。 比如在 urp 管线下,我们可以选择 urp 中的 lit 标准光照有关渲染管线以及 shade 相关内容。如果有机会,我后面会讲到。 回到编辑器中,我们可以显示模型和动画有没有出错,可以看到现在模型可以正常显示了。动画文件右边的设置选项是我预先调整好的,可以直接使用。 然后我们导入枪的资源包,这个没有特别要求,这里我使用的 unit 资源商城中的一个免费模型资源的网页链接,同学们可以在附带的文档中找到,你们也可以自选别的模型。成功导入模型后,我们检查一下模型有没有问题, 如果材质球不正常,那就是和之前人物模型的问题一样,同样更换 shade 建即可。我们在场景中新建一个空物体,取名 player, 然后将人物模型拖到 player 下面,成为他的子物体。 把人物本身的 animator 组建 remover 掉,这里我忘了, 然后在 player 上添加 animator 主见 新建 animator controller 文件,将其放入 player 的 animator 组建里。我们可以直接拖到 player 对象上, 然后双击打开 animator controller。 在这一层我们又见新建一个 blame tree, 改个名字就叫 basement。 双击进入 blunt tree。 混合类型,我们这次选择了二地 freeform cartizan, 因为我们的动画包含了同方向不同速度的 walk 和 run, 而且还有有角速度控制的转向动画。 在官方手册中我们可以看到这三种类型的适用情况,这里不过多讲解链接我会放在文档里,感兴趣的可以去看看。回到编辑器可以看到混合数有 x 和外轴,默认由 brand 控制。我们新建两个符典型变量, horizontal speed 和 turn speed, 一个控制外轴行走速度,一个控制 x 轴转向角度, 然后添加动画状态。依次放入资源包中的十一个动画文件。 然后我们先粗略计算一下位置,外轴使用动画的 c 轴速度作为参照, x 轴使用动画的转向作为参照,注意这里是弧度,然, 然后可以得到一个粗略的位置关系,我们手动修改一下。 首先爱豆动画是原地站立,那么这里肯定是零零,然后转向动画没有前进速度,那么外轴肯定是零。 然后我想让 x 轴控制在负一道一之间,向右为证,所以这里我们把左转九十度设置为负零点五,左转一百八十度设置为负一,相应的右转设置为零点五和一。 然后走的动画设置成零一点五,跑的动画设置成零四,左前方走为负零点五,一点五,左前方跑为负零点五四。剩下 下的类推 全部设置完后,我们可以在 inspector 窗口上方拖动红色的点来查看不同情况下人物的运动。 回到场景,我们把场景中人物模型的 avatar 放入 animator 组建中。下面的 root motion 选项决定了游戏对象的运动是否受根骨骼的运动影响, 也就是说动画本身的移动是否要带动游戏对象的移动。我们可以做个小实验,复制一个 player 对象,一个勾选如特么神,另一个不勾选如特么神。然后将跑的动画作为默认状态, 然后我们点击运行,可以看到启用 root motion 的游戏对象不断向前移动,而没有启用 root motion 的游戏对象依然在原地奔跑。 我们删除多余的游戏对象,并把动画默认状态重新设置为 lantry。 然后我们将使用脚本来控制 horizontal speed 和 turn speed 这两个变量劲儿控制游戏对象的运动。常规情况下,我们可以使用 unit 系统本身自带的输入系统来控制, 在项目设置里选择 input manager, 我们可以看到相关的一些设置,其中有基础的移动,跳跃等以及相应的案件设置。而我们这次不使用这个输入系统,而使用 unity 新推出的输入系统。 我们打开 package manager, 在 unit registry 中搜索 input system 下载并导入系统会要我们重启编辑器。 重启编辑期后,我们在 player 对象上添加 player input 组建。 添加组建后会看到提示需要一个输入系统文件,我们点击下面的 create actions 创建一个输入系统文件。这里 我懒得改了,就叫这个名字。我们可以看到这个文件窗口,可以勾选上自动保存。在 move 中可以看见熟悉的输入设置,右边的 action type 选项决定了按键输入的值类型。留意这个地方,这个后面需要用到。 回到游戏对象,我们还需要将 behavior 改为 invoke unity events。 然后我们可以在 player 下拉菜单中找到文件中那几个输入类型的相关回调设置。熟悉 unitui 事件的同学应该已经知道该怎么做了。 我们新建脚本 player movement, 双击打开脚本, 新建 transform 变量,用于储存对象的 transform 组建,后面将大量引用该组建,提前储存成变量,可以减少系统开销。然后是对象 animator 组建。 然后我们定义了 felt 变量 walk speed 和 run speed, 分别用来控制行走速度和奔跑速度, 以及一个 boss 变量 is running, 决定对象是否处于奔跑状态。 接下来我们定义了一个二维项链 moving put, 用于储存移动输入信息,在 start 方法中获取相关组件, 然后定义方法 get move input 来得到输入信息。 因为本次使用了新输入系统,我们先要引入命名空间 unity engine input system, 然后在方法中添加行餐 input action callback context。 在 player input 组建中的相关位置添加该回条函数就可以传入值。那怎么确定值的类型呢?在我们 创建的输入设置文件中可以查看,如这里的 move 就是二维向量的值类型。 接下来就好办了。回到脚本,使用 read value vector two 方法将支付给 movie input, 我们可以打印一下 move input 的值。 回到编辑器, 将脚本拖到相应位置,选择 get move input 方法, 我们运行一下,可以看到当 我们按下 wasd 时, move input 的直会出现变化。 相同的,我们定义 get round input 方法, 如果输入的直大于零就为 true, 否则就为 false。 在输出设置文件中添加奔跑的输入设置, 使用键盘响应输入,点击 listen 系统可以读取到你接下来的案件。这里我使用的左 shift 作为奔跑时的按键输入, 然后将 action type 改为之类型。 在游戏对象的 player 组建中,相应的回调设置处添加 get round input 方法 运行游戏,我们可以看到当我们按下 shift 时, is running 变成 true, 松开则变成 false。
在应对题中,实现月亮围绕地球旋转,给月亮对象添加脚本,在 update 方法里输入 transform 点,使用 roti 的 run 方法, 先来定一个围绕旋转的目标对象,在这里,也就是我们的地球将他给他的位置作为第一个参数。第二个参数是围绕旋转的轴,我们让他绕外轴旋转。 第三个参数是旋转角度,我们让他每秒旋转五十度。运行查看效果,月亮正在以每秒五十度的速度绕地球旋转。
各位未来的游戏动画设计大师们大家好,欢迎来到白熊游戏。上次做了一个坤哥跳舞二 d 转三 d 动画的一个视频,有小伙伴想要教程,这次咱们就把教程给补上。整体效果咱们先简单再预览一下。这是二 d 的一个跳舞的效果, 然后可以转换成三 d 的动画,挂到任意的人形的骨骼模型上面,只要是同一个人形的标准的 f 塔都行,你可以随意的切换模型,非常方便。 在这里面我们使用到的就是 deep motion 这个网站, 到时候会把链接放在咱们的简介里面。相信做过动画的小伙伴们都非常了解,制作复杂的动画是一个非常非常繁琐的过程,特别像我这种,我本身是主城,这一套东西都是后来自学的,也只是刚刚入门的一个阶段。 除非是一个经验丰富的三 d 动画师,才能够精准的把握动作的这种节奏感,否则的话,你即使做一个简单的跑步,也会让人 觉得非常不对劲,和真人总是觉得很假。当然,解决这种难题的最好方案就是使用动画捕捉。比如我们看大片阿凡达,他的动捕 是业界顶端的,你看光一个面部的动画捕捉,就可以有这么多一个动捕的点,身体反而要比这个面部要更 点数要少一些。但这对我们个人或者是小的那个游戏工作室来说是不可能的。我们想要做出来一些既逼真又好的这种动画,投入的成本尽可能的小。现在就有一个最好的方案, 使用 ai。 像这种二 d 转三 d, 你随便用手机录一段视频,就可以导入这种 deep motion ai 引擎里面, 它可以快速的给你生成相应的谷歌动画。在使用之前,我们先看一下它的费用。它分为这几个档次。 free 免费的是给六十个点,每个月单视频最长二十秒。支持导出的是这些格式 是否有这个商业的授权。他这个不支持。他相当于试用。支持 foot locking, 支持跟踪 身体、脸和手物理的一个过滤器。 foot junt at origin slow motion handling。 免费的版本不支持这种慢动作处理,也不支持这种 动作之间的一个平滑转换。 motion smoothing。 然后还有一些限制。等待时间应该是最长的啊,就前面排队,你肯定是优先级最低 啊。我刚才看错了。他这个是每年一次,付一年的,每个月可以便宜到八十三。如果一个月一个月买的话是三百。注册部分我就不再展示了,大家自己看啊。我们直接进去 登录后,我们 go to porto, 这是咱们的工作区域。一般来说我们现在用到只有这个 animates。 随地点击这上面显示的面板,你有多少个点数, rerance 有多少个,就是能出多少次这种服务。然后有三个不同的角色,这可以上传三个自定义角色。我现在一个没有,我就用它默认都行。我出来以后再导。 然后我上次做过一个,所以说这里面有一个以前存储的动画。 这就是上次我倒的。我们等会把这个再做一遍。整个操作过程很简单,我们就点击 create, 然后把二 d 的影片上传下来,或者直接拖过来都行。 然后这个是我们要用的三 d 模型,你也可以进行一个更改。最上面是三 d 的 animation 和三 d 的这种姿势 式的一个切换完了,一般肯定是要三 d 的动画。下面是为了能得到更好的效果的一些建议。应该静止并与拍摄对象平行。整个身体或上半身从头到腰应可见, 距离摄像机二到六米。建议使用主体与背景之间有高对比度的中性照明遮挡。这一块。衣服面部追踪,手部追踪就是我们上传的这个视频, 最好要满足这样的要求,得出来的效果会更好一些。上传并转换完成后,当然我们还可以对他进行一定的编辑。这上面是一些操控介绍。鼠标左键旋转摄像机,右键是用来平移 中间的,鼠标滚轮是用来缩放, f 键是用来聚焦。 i 是把整个这个界面给它屏蔽,也就是进入 一个沉浸模式,类似于全屏。把 ui 全屏蔽掉进来以后,还可以对它进行进一步的一个操作。比如说我们先把它全屏,可以看到把摄像机聚焦到身体上,这个是聚焦到头。这是是否开启摄像机跟踪 啊,你要锁住了,摄像机就不会动声音。这个是后面我们原始的二 d 图像是否还显示,那这些就不用说了吧。切换帧数和时间 要说明的就是右上角这一块对视频的一个调整。点开 他可以对视频抓出来的这个骨骼进行进一步的调整。你可以根据二 d 的来调整, 也可以根据三 d 的来调整。 每一针的骨骼,每一针的关节都可以动,你如果要觉得他本身这块设置的不好的话,抓出来的这些关节位置并不准确的话,你可以自行调整。你比如说这个手哎,我就可以往下调,调到这个位置。 你如果觉得二 d 看的效果不好,你还可以转成三 d 的,一般二 d 的就可以了。 我们再看一下右侧的这几个按钮。首先是这个 dream map, 实际上就是关节节点和咱们这个人骨骼上面这些节点的一一映射。有时候他的动作摆的比较奇葩的时候,或者说 比较诡异的时候,你容易认不出来他的那个节点的位置。你就在这里面一选,这里面就高亮显示了,并且可以对他进行移动。 然后这一刻是 begin interpolation set up for upper neck position。 也就是开始插直设置脖子上面这个位置。从当前针开始,你如果点击以后,他就开始了取消,可以取消左边这个。这个大家都知道, undo 和 redo。 ctrl z ctrl y 这个是 copy frame 拷贝当前针,那这个肯定是 post 粘贴。这当前这个是一针一针开始跳的。 reset camera 重置摄像头。整个所有调整好以后,可以 save an animate, 他就会把这个结果保存住,重新再出一。 整个过程还是比较漫长的,稍微等一会,毕竟咱用的是免费账号,优先度排的是最低的。所有的都已经绑定好了以后,我们就可以下载这个动画了。你可以选择相应的模型格式,咱一般用的是 mbx 多一些当落的好。下载完成后,它是一个压缩包, 把它解压出来。 它有两个 f, b, x, 一个是包含了一个 t pose 的,一个是不包含的,这两个其实都行。咱们打开一个随机的项目,只要是三 d 的项目就行, 不管是三 d 的普通项目还是三 durp。 我这还是用咱们以前那个 vr 的一个测试项目,他是一个基于三 durp 的项目,新建了一个场景 newsin。 这个名字我也不改了, 我现在直接就把这个模型加上动画,给它导进来。 好,进来以后我们最好还是给他分分文件夹,创建几个分类的,他东西比较多。 models, models 里面。然后我们再给它建子文件夹。我现在是以 models 作为一个不文件夹,把其他几个给它加进去。 there are you textures。 然后是 animation 里面放 animation clip, 或者是放那个 animation controller 这些和动画相关的资源。既然复数我们都用复数好,那我们就把刚才的模型给它扔到这里面啊。模型放在这个 models 子根部路底下,其他那些子资源都放 放在它的内部。好,这里面我们打开进行配置。这个我们都操作过很多次了。这个的话给它弄成 humanoid, 然后 create from this model apply。 然后在 materials 里面把 texture 和 material 给它解压出来,放到对应的文件夹里面,否则的话它是白膜。 texture 和 material 都解压好了,必须点击 apply。 哎。让它挂上 animation 的话,我们暂时不需要调整什么 过多的东西,我们可以把 admission 单独拿出来,然后再进行调调整。选中模型里面的 admission, 然后 ctrl d, 它就出来了。把它专门放在 admissions 这个里面, 然后再对它进行配置。你比如说我们要循环的话,把 low time 给挂上。这样操作完了,再把这个模型拖拽到场景中啊。我们还需要有一个地面,创建一个 plan, 给它重命名为 ground, 改成一个深色调的, 给它重置,然后把 plan 可以稍微放大一些。五吧 好。这一块做完以后,还需要给我们的上面加上 animation controller。 新建 animation controller queen dance 吧。 双击打开跳舞的动作,拉进去就可以了。然后把我们的 i mean ctrl r 挂接到我们的 and meter 里面。在场景里面把摄像机调整一下。好,这样就没问题了。 好,接下来咱们再来玩一个动画,替换到别的角色上面。我们可以到网上来下载素材。你比如说最著名的 sky five, 我们找两个,一个拜登,一个特朗普。 你直接在上面搜索 joe biden, 然后设置为 downloadable, 就是可以下载的。我下的是这个,你把它点开 download。 three d model, 我们一般选择是 f b x, 这样就可以了。我觉得这个设计的挺挺有灵性的。其他的很多是半身的,你要跳舞了,半身肯定不行,头像也不行,必须全 深的,这个必须看清楚。好,这是下载还是 f b x 挡烙的 好。下下来以后我们可以给他都解压了,然后拖到我们项目里面。这个是 trump 提取 拜登的,这个还得再提取一次 啊。在这 就 bad。 然后再把窗 prompt 给他拉过来。好。我们先来看拜登, 同样也是 read humanoid animation, 它里面没有包含就不用管了。关键还是这个 texture 和 material 需要给它解压出来。 不同的模型,他的设置可能不一样,你要选择不同的处理方式,你像他这里面设置比较细致,他有 normal map, 有反向的贴图。反向贴图默认的解出来以后, unit 会自动的去识别它,需要给它转换成 normal map 的格式。那你必须点 faceno, 不要点一个 no, 要不然的话没有反向贴图的效果了。 接下来解压这个 material 夹完以后,你看所有的自动都绑定上了,底下这个预览也能清晰的看到它的模样了。 opply 这样就行了哎,拜登就可以用,把它往旁边拉一下。哎, 没选 ctrl 了,它自动就可以用。大家可以来看一下。效果好,白灯也跟跳起来了啊。这没有加音乐效果稍微差一些。他脚有时候会伸到地下,那你再往上给他稍微拖一下就行了。这零点零五 或者是零点零八零点一也行。零点一看可以这样。 那最后我们再来处理一下特朗普的也是类似的操作,只不过他这一块有一点需要注意的,他这里面没有 tax, 自己解压不出来怎么办呢?我们先还是把这个瑞给他改了这一块比较快,然后来处理他。 它是一个低模的,它的 texture, 我们刚才在下载的时候啊,发现它的文件夹里面有它,只是一张这种未图。 把它拖在这个 texture 里面。我们把 material 给它解压出来, 然后到 materials 里面找到这个特朗普的,然后把这个 basemap 这一块给他拖过来。我这是之前操作的时候,他记住了他这有。如果你是第一次操作的话,肯定是没有的。你需要在这选中, 把这个特朗普的这个 texture 拖在它的 base map 上面,就是 material 的 base map 上面。这样才行。回到这 model, 你再来看 他就不是白膜了。他就已经有完整的贴图了。这样就可以用了。把它拖到场景中,让他的 脚也稍微离一点地。零点零八吧。好,七五八两个大佬给他跳这个昆舞,还是很有趣的。 好手尖了。哈哈哈。 好。大家可以试着用这种二 d 生成三 d 动画的方式,来为自己的那个游戏增加一些素材,这样非常方便。好,谢谢大家。
我们接下来实现角色的移动。定义 playermof 方法, 然后定义 target speed。 目标速度 使用三元运算符,当 is running 为 true 时, target speed 等于 run speed, 否则等于 walk speed。 然后将目标速度呈上 move input 的长度,将结果付给 horizonto speed。 这里增加了缓冲时间,可以减少人物僵硬。 在 update 中调用该方法 回到编辑器,将 walkspeed 和 round speed 设置为之前在 blame tree 中设置的行走速度以及奔跑速度。 运行游戏。我们可以看到当我们按下 wasd 以及 shift 时,游戏对象按照相应速度移动,但此时游戏对象并不会转向运动。 接下来我们处理角色的旋转。我们定义 player rotate 方法。我们还需要一个 rotate 三维变量。 我们让 rotate 的 x 只等于 move input 的 x 值, rotate 的 z 值等于 move input 的 y 值,而 rotate 的 y 等 玉林 原因是在 unit 中外轴向上,我们角色转动时总是水平转动,即由 x z 轴控制而外轴不动。 然后我们创建了纸箱目标的四元数。 使用 rotate towards 方法可以将游戏对象从原本方向转动到目标方向。 这里还需要一个转动速度。我们定义一个 rotate speed 控制旋转速度, 然后我们需要得到旋转弧度值。我们先定义 direction don't you wrote it。 然后将其转换到游戏对象的本地空间下。 inverse transform vector 可以将 vector 从世界空间转换到本地空间。然后使用数学函数得到该弧度值,并将其付给 turn speed。 记得在 update 中调用该函数。回到编辑器,我们将 rotate speed 复职 运行游戏,我们可以发现游戏对象能够正常转向行走了,但是一松开按键,角色就会转回去。结合下方的警告,发现当输入为零时,我们也对 rotate 进行了复职。 很简单,这里当输入值为零时,我们直接 return, 这样就解决了问题。 现在角色能正常走动了, 我们也可以观察行走时 lantry 中位置的变换。 我觉得这里行走和奔跑的速度有点慢,因为这里是使用动画驱动决策移动,因此只要改动动画播放速率,就能改变够角色移动速度。我想让行走速度为二点五,那么用一除以一点五,再乘上二点五就是相应的播放速率了。再把外值改为二点五, 记得把剩下有关的动画速率也改变。 同样我想把奔跑速度改为八,那边播放速率就应该为二。 最后把游戏对象上的 walk speed 和 run speed 改为相应的值,我们可以试一下游戏对象的速度明显变快了。 接下来我们添加角色的持枪动画, 新建一个动画层,命名为 rifle, 新建空状态作为默认状态,然后添加持枪状态, 在默认状态和持枪状态间建立切换。 新建 boo 变亮 rifle, 当 rifle 为 fault 时,从持枪状态到默认状态。当 rifle 为 true 时,从默认状态到持枪状态。 这两个转化过程都不需要退出时间, 因为持枪动画涉及到手部 i k, 我们勾选上 i k pass, 默认为 override 的时候,下面的层会覆盖上面层最上方的滑条决定了权重。 将 rifle 设置为 true 运行游戏可以看到,当我们改变 rifle 层的权重值时,角色状态发生相应变化, 而下方的 mask 代表这一层只影响人物的哪些?不, 我们可以新建一个 avatar mask 文件, 在 inspector 窗口下找到 humanoid。 我们可以看到当前 mask 的状态,绿色代表受影响,红色则代表不受影响。右键点击空白区域全部切换状态。我们只希望影响首部以及首部 ache, 然后使用此 mask, 然后可以看到角色只有手臂改变动作, 调整权重为合适的值。我设置的零点八。 接下来回到脚本,定义波偶变量 israel 储存角色持枪状态 定义 get rifle input 方法,接受玩家输入 还是老方法,然后将该支付给 animator 中的 rifle 变量。 接下来再输入设置文件中新建 rifle 输入设置, 这里我使用的鼠标右键作为瞄准输入, 在对应位置添加该方法 运行游戏,此时游戏对象可以成功响应瞄准动作。 我觉得头部有些别扭,把头部受其影响打开,这样看就好一些了。
ok, 观众老爷们大家好,这里是卡斯六十六。我很少做专题啊,但是这个新的一年给大家带来一个新的专题,建筑模拟器。二零二最早是被他的丰富内容预告片所吸引,管道、地及房顶啊,甚至外部装潢都可以建造,看起来是有模有样的。而且因为没有玩过前奏嘛,更是激起了我极大的好奇心。 看一看这款游戏在 unit 引擎里边能有多大的能耐哦。下载好的游戏,选择 logo, 输入人物公司名称。接下来就是人物的创建环节。可以定义地方还挺多的,而且可以选地图,欧洲和美国这里。我后面玩的是美国地图进游戏 t 的反应是 gta。 好家伙,游戏间使用的是第三人称操纵器,并且做出了整个小镇游戏的剧情模式虽然是线性的,但是地图是开放的,沙河和多人模式应该玩起来更加自由。故事影子的梗 是,主角想要离开这座衰败的小镇,但手上没有足够的存款。你的朋友哈普愿意伸出援手,带你进入他的专业化领域,土木工程搞到你的第一桶金。说罢,他便让我们开上车,执行第一个任务。游戏本地画做的不错,有国语配音,小镇里的建筑标牌也是中文的。 开着车子行驶在小镇上,看着穿梭的车流和行人,一不小心跟前方的车发生了剐蹭。别说,还真有那味。下一步就是找一个行人撞上去。 好吧,行人都不用躲闪,直接这幽灵化了。后面的流程我们需要遵纪守法,闯红灯和冲撞路边停放的车辆都会受到罚款。嗯, 一下子又没有那味了。第二个任务也挺简单的,操纵起重机将某倒闭旅馆的文字招牌拆给汽车旅馆使用。好家伙,吼跳变成了某跳,真是大聪明。我想这任务八成是训练玩家熟悉使用起重机和机械 b 的设计啊。我是在主机平台上用手柄操作的,左右摇杆分别对应了建筑车辆机械臂、主旋臂的左右和上下摆动,以及次机械臂的伸缩和仰斧。随着故事推进,游戏的复杂程度也在提升。操纵挖掘机挖土直接上来就给我整不会了。左手控制左腰杆 负责左右和前后,右手控制右摇杆负责控制翻走的挖掘和上下,然后是右脑控制左手,左脑控制右手。因为手柄摇杆很难单独在 x 轴和外轴进行精确的移动,所以会 经常连带出现其他的方向操作,一时间眼睛不知道应该是去看他的翻斗还是机械臂,结果就是挖掘机在原地疯狂的抽搐。不过还好我模拟飞行玩的算是够多吧,过段时间也就适应了。后面我想一下,如果调成第一人称的 视角,并且用键盘的独立按键应该会直观很多,你可以在情景菜单里选择摄像机的模式来切换。在完成几个常规工作后,哈普鬼鬼祟祟的交给我一个在日出之前要完成的任务,制造一个飞碟坠毁的现场, 这样媒体就会主动报道这个体温,为小镇迎来更多的客流。不知道真的在美国干这种事情被抓住会不会需要承担什么责任。这个老奸计划的家伙在完成代号谣言工厂的工作后,果断提出将公司亏本出售给我运营,连同之前用过作案工具,而自己则拿着我年轻人所透支的未来信贷享受退休的人生, 毕竟这个游戏时间线上每升的汽油只要五十美分,身为奋斗逼的我当然欣然接受了,接盘如此优质的资产,简直赚翻了赢麻了,再加上我的天资和勤奋,更能逆天改命,我有朝一日定可以赚到他拿到了这么多退休金,风光的离开 这个小镇。第一份合同,土地开发,更多的机械建筑出现了,可以选择在建筑供应商那里购买或者租借花样繁多的新玩具。平整区域后挖开一条沟渠铺设管道回填土方,非常的顺利,好像是渐入佳境了。 牛刀小时候的第二个合同是建造一处商业地展,我们需要先将钢筋往玉质墙和天花板送往施工地点, 在施工现场搭起塔吊,将材料放置在预先规划好位置这里,我一不小心把这个预制墙的包裹掉到塔吊底端, 却怎么也捡不上来了。尝试了一酸,想用塔吊的碰撞体把它扶正为国,无奈只好拆掉塔吊开来自己的起重机,打开包裹,将预制好的墙板一一放到规划的区域。本以为走个机令完成了目标,可系统提示我装载的框架也要放在规定的区域, 这玩意太重了,也没有可以吊起判定的锚点,自动存档又覆盖现成节点,无奈放弃合约,重新开始。第二次尝试中,预制墙的包裹被放到了指定位置,但是没有完全贴合组划出的矩形塔吊又不可以旋转货物怎么办?那只能再吃一次呗。 第三次,直接将卡车平行停在区域旁边,这下应该不会出什么问题了。盖上天花板,填成水泥折磨我们的订单可算是大功告成了。三番五次的重新购买材料,尝试直接让公司资金见底, 主机上也没有修改器,还好公司的经营模块上提供了贷款的选项,百分之二的利息比租车还是划算多了,毕竟已经在股里了,再怎么走都是向上,只要我盖的够快,应该就不会亏啊。顺便提一下,游戏里的建筑机械很多时候都是要配合使用的,比如说你要用混凝土搅拌车去采市场 装载混凝土,并且啊,在施工现场给混凝土泵车持续提供装料,沥青的铺设也是同理,沥青自卸车需要给沥青固摊机提供颜料,他们需要同时出现在施工场地,之后呢,再用沥青压实机完整路面。那我就想多人游戏的话, 老玩家的多线程操作压力会小很多,毕竟小二活干的好还快,还需要机油的达成一定条件,比如说持有的资产数量,这里包括车辆和金钱,还有些别的可以提升公司等级,以帮你接收数量更多、质量更高的合约人物,完成更多的任务呢。也会升级得到集成点以及解锁性的技能,帮助你更快的施工和获得更多的报酬。 完成了成立公司的两个订单,一通操作下来,也算是对建筑施工的流程一定了解了。当然,作为一款游戏,毕竟是做了很多简化,并不能成为现实世界施工经验的参考,因为篇幅有限呢,所以在很多预告 天上的乔丹都没有玩到,如果有深入了解的意愿,大家还可以自行探索。玩到这里系统也就比较明了了,可以总结为人物的养生、公司经营和建筑模拟三个板块。模拟也占据了邮称大部分时间,毕竟游戏的名字已经清楚了定位其模拟的品类 虽然是缓慢节奏的游戏,较强的交互设计却使他并不能像金鹰游戏一样可以摸你玩。我个人还是给一个好评的,算是同质化游戏市场上不可多见的一股清流。如果在随身设备 switch 或者 steam 在上玩,配合需要消磨时间的应用场景应该会比较有意思。
大家好,我是 michael。 这个视频我们就要来为我们的图片创建它的骨骼来进行一些绑定了。那么在使用这个功能之前,你 你已经准备好你的素材了吗?如果还没有,我在这个视频链接里为大家提供了我的人物的素材,但是你在使用这个人物素材之前,我有一些想要强调的。如果你使用了火火老师为我创建的这个人物的图片素材,那么请注意,这个图片素材不应该使用在任何的商业项目当中, 小伙伴们都能够尊重所有游戏图片素材的原作者。谢谢大家的配合,那么下载好了这个素材之后,我们就可以将它导入到我们的项目了。 另外在我们这个 to d animation 的学习当中,我们不光可以使用 p s b 的文件,也可以使用 p n g 的文件。那么 p s b 的文件之前我已经说过了,它是分图层,已经为我们创建好了。那么另外一种就是 p n g 的 单张图片。那么在使用单张图片的时候,请小伙伴们留意,你要使用像我现在画面当中这样的所有的身体的各个部分独立分开的 png 图片,那么也是可以使用这个 to the animation 的。 另外还有一点就是在你查看 package manage 当中,然后你选择 to the animation, 这里边它是有一个样例的。 照片中请留意这里有一个 samples, 所以你可以将这个 sample project 导入进来。这里边也有大概四个图片的素材可以使用,也包括一个图片的 sprite 切换,也就是我们的换装系统。 感兴趣的小伙伴们可以将它导入来使用也可以。另外你也可以在这里边查看你的 documentation, 这里边有详细的 to the invision 如何来使用和操作的指南。好了,准备好这一切之后,下载好你的图片,将你的图片人物素材拖拽放到我们的项目当中。拖拽进来之后,我们可以 可以看到他是将我们的这个图层独立分开的。接下来我们在使用之前将我们的图片做一些简单的设置。首先当你的图片导入进来的时候,要确保他的 sprite mode 一定是 multiple, 如果他不是 multiple, 要一定选择是多个图片的组成。 然后在下面也有一些选项,这里面的选项包括是不是使用人物已经绑定的骨骼,是不是使用 layer grouping。 这个 layer grouping 的意思就是如 如果你在 photoshop 将一些图层合并成组的话,那么在这里边也会对应显示为成组。还有下一个就是它的锚点,你选择是底点或者是中间都可以,可以根据你自己的项目来调整。那么接下来我们选择 spread editor 进入我们的 spread 编辑。 如果你已经安装好了 to the animation, 接下来我们在左上角的下拉菜单中就可以选择 skinning editor, 也就是说我们 的皮肤和骨骼的绑定。选择以后,我们的图片会自动帮我们重组成你从 photoshop 里边导出来的人物的模型的样子。这就是 psb 文件的好处。如果你使用其他类型的文件的话,那么它不会产生这样的效果。但是同时你也可以在我们的窗口上边查看它以 spreadsheet 的形式, 心灵图集的方式显示的样子也方便我们来区分各个部分受骨骼所影响的情况,那么稍后我们也会来演示这个怎么来用。还有在这里想强调一点是小伙伴们可能看到这里面有很多的英文 人像,但是不好意思的告诉大家,就算你把 unit 切换到中文模式,那么在这个菜单中他仍然是英文显示的,所以请现在就开始努力尝试使用英文的界面吧。小伙伴们。然后在我们的窗口的右侧有一个 visibility, 也就是说我们的可视化的项目,所以在这里面我们可以可视化 我们的骨骼以及我们的 spread。 如果我不希望显示我的头发,我可以在这里边直接将我的头发关闭,这样的话我的头发就没有了,以及或者我们不选择我们的武器都可以,所以这方面我们在后边可以进行详细的仔细的骨骼的调整。还有在这里面有个选项叫做 caligram, 是一个分类,所以我可以在这里面创建属于我的分类,也可以把同类的物品来合并成一个分类,这是跟我们的图片换装有关的,但是我不建议大家在这里面使用,为什么呢?稍后的视频会为大家来解释。 先了解这里面的情况,一个是骨骼,一个是 sprite, 接下来我们就要来创建我们的骨骼了,在左侧第一个部分就是我们的骨骼,第二个就是 geometry, 也就是我们的多边形蒙皮,然后我们会在上面设置顶点来构建他的每个部分的影响的范围。最下面这个部分就是刷他的权重,什么叫权 权重呢?就是这个部分受哪些骨骼的影响,影响有多大?这一个一个我们会来操作一下。那么为了能够详细的调整我的骨骼,我首先先将我的武器隐藏起来,接下来我选择创建骨骼, create boom。 然后接下来我的鼠标会变成一个红点。 如果你使用的是一个 png 的分散图片的话,你想创建骨骼要先双击选中你想要编辑的那个范围,然后才可以绘画骨骼。 在这里我就不演示 png 的形式了,所以接下来我们来一起来画一下。首先点击你的鼠标,通常我们的人物会有一个主体的躯干,也就是你的第一个骨骼会影响整个人物的翻转角度,所以通常是以他的中心点为止,所以我来画他的中心点, 然后我的身体每次点击会创建一个新的骨骼。好,然后接下来我不需要在这个顶点继续来创建其他的骨骼。 之后你可以按下键盘的 exc 键,接下来你的骨骼就自由了。然后接下来我要创建的是他的手臂以及他的下肢。在创建他在下肢的时候,小伙伴们请留意,我要将我的下肢的影响跟我的主体的第一个红色的这个骨骼连接起来,那么我就要先选择这个红色的骨骼。 接下来你会看见他被一个虚线所连接上了,这就代表接下来你绘画的骨骼将与这个骨骼连接在一起,相互影响。所以我们来接下来画这个腿部的骨骼。 同样的方法,如果我们会画这个身体的话,我们可以点击身体我们的躯干的骨骼,然后来画他的肩膀以及手臂。在这里由于左臂的话我们会持过武器,所以我选择用三段骨骼来调整他的手臂的位置,而右侧我不需要,我就只会画两个骨骼。 好,我们整体的身体的部分已经结束了,那接下来我要考虑的就是我的头发了,所以我希望我的头发在移动的过程中也会有一些动态的效果,这样的话会看起来特别的活泼以及逼真。所以头发所影响的部分是应该跟这个绿色的骨骼作为他的躯干骨骼。那我点击这个绿色之后,接下来我来绘画我的头发, 以每一个发梢发尖作为一个骨骼的顶点来绘画。 好,现在我就创建好了我这个骨骼了,可是现在我一直还是有这个点。小伙伴们可以选择 preview pose 来查看,然后关闭我们的骨骼编辑。 现在我们已经画好我的骨骼了,所以如果我挪动的话,你会看到整个上半身的骨骼会跟着动,可是我的人物并没有跟着动,原因就是因为我们还没有对骨骼进行只要么吹,也就是将它进行网格化,只有网格化之后 他才会受到这些骨骼的影响。所以接下来我们来用 j m 垂直部分的工具,那么在 j m 垂直里面,小伙伴们请留意,你可以单独的去创建他的顶点以及他的边缘。但是如果我们一个一个画的话会非常浪费时间,但是这样的方法有的时候在非常精细的动画里面 做的非常的生动。在这里我们只是使用 auto geometry 将它自动为我们绘画来生成这些顶点以及边缘点。点击之后,你的右右下角的这个菜单当中会出现一些选项,在这里有一个 outline details, 就是你的外围点的详细的细节,这个细节越多,他的顶点就越多,小伙伴们可以根据自己的需要来进行调整这里的数值,所以默认的情况下可能是十或者二十。下面还有个选项就叫做 wait, 也就是刚才我们所说的权重,他会为我们自动分配每一个网格,每一个图片所受到 影响的骨骼的权重,我们就将它勾选,然后选择 generate for all visible, 也是将我们所有可视化的部分都将它自动生成。我们选择这个按键, 接下来我们可以看到我们现在的人物就被刷上了颜色了,而且现在如果我移动的话,他就可以跟着来移动了。但是有些部分我们需要来调整,比如说当我的胳膊扭动的时候,你会发现他也影响了我们的身躯, 这个不是我们想要的。所以接下来我们来会用一些左侧的工具来调整一下这里面的一些选项。那么在这里我来介绍给大家我的一个常用的用法。 因为我们的游戏图片是一个卡通的图片,是好像一个纸片人一样,所以我希望每一个部分直接受单个的骨骼影响,而不需要其他的骨骼有这种连带的影响。当然如果你的图片是仿真型的话,你可能会需要这样的方法,所以在这里 我举个例子,我们先选中我们的身体,看到我的身体现在受一二三四五个骨骼的影响,六七,甚至有更多的部分的影响,那我希望我的骨骼只受到红色的和黄色的两个骨骼的影响,将其他的骨骼影响山去。 我们可以使用权重的方法将它刷掉,但是我们要调整的是它受到的骨骼的影响的个数,所以我们可以选择左侧的 boom influence 就是它的骨骼影响。选中它之后,我们可以看到第一个骨骼就是我们的红色, 第二个骨骼就是黄色的,那么其他的这些影响他的骨骼我都不需要,我可以将他们都选中,然后点击减号将他们移除,这样的话我的身体就只受这两个骨骼的影响了。 我们用同样的方法可以将其他的骨骼影响都删掉,所以在这里我们就可以用之前我们的 spreadsheet 精灵图集的方式来调整了。我们可以在这里边双击每一个图集,然后看看 它受影响的范围。比如说在这个头部,我不希望这个头部受到头发的这个影响来调整我们的脸部了,所以我可以直接将其他的部分全删除,所以第三个骨骼是我想要的,其他的骨骼我都不要了。那小伙伴可以用这样的方法来快速的调整你的所有的骨骼,在这里请留意这个左侧的这个手臂这个位置, 我是希望这个手臂会受他们两个的连带影响,因为我希望手腕有细微的变化,那么我就可以保留他们两个的骨骼。但是我不希望有第三个骨骼的影响,那我只需要将第三个骨骼删掉就可以了。这小伙伴们可以自己动手,现在就来规划一下你的骨骼,我也会快速来完成这个部分的内容。 好的,那么接下来我们要做的一个重要的事情就是调整我们的这个头发的这个骨骼了。这个头发的骨骼比较特殊一些, 在这里我们可以看到当我的发根移动的时候,我的头发会有一个部分被影响到了,其实我希望整个头发是受这条绿色的跟头干一样的骨骼的影响,所以这个左侧的部分我们需要用我们的权重刷来将它刷到受这个绿色的骨骼的影响。 这里我们可以选择左侧的 weight brush 来调整它。点下了这个选项之后,我的鼠标变成了一个大圆圈,所以可能屏幕上看不太清,在左侧可以调整它的尺寸,然后以及它的硬度,所以我们保留下边的两个部分不选,然后我们可以通过 size 来调整一下它的范围,比如说二十, 然后接下来你要选中,你要现在刷上权重的这个骨骼,所以我选择绿色的这个骨骼。接下来我来点击这些点,这些蓝色的点就是刚才我们用 auto geometry 来创建的这些顶点,所以我点击这些顶点可以将我的绿色的 权重全都刷到上面,所以发现我点按了滑动了半天,他影响的范围非常小,因为我们的颜色刷上去的强度比较低,所以接下来我可以调整我的哈德尼斯,就是我的强度,比如说我把它改成十,然后我们再来刷一下, 可以看到他有很明显的变化,受到我这绿色骨骼的影响,他回归到了之前他应该在的这个位置,所以我们可以用这个方法将不应该受影响的这些顶点全都刷成我应该有的颜色,也就是我的绿色。 好,刷好了以后,我们可以再来调整一下黄色头发,看到我现在左侧就不受到影响了,对吗?好了,小伙伴们可以不断来调整这里面的参数,然后将我们的权重的颜色刷上去,以确保他的动画是没有问题的。接下来我会逐一调整这些头发上的骨骼所影响的范围,小伙伴们也可以自行来调整一下。那么在 调整之前还有个要留意的就是我这个图片绘画的时候,有些部分在 photoshop 中没有进行擦除,所以它会自动为我创建出这些顶点,那么我们就可以用编辑顶点的方式来进行调整,所以我们选择 added geometry, 然后可以选择这个点, 然后按一下删除键,将这些没有用的顶点删除,同时你也可以拖拽调整这些顶点的范围,调整他的位置。好,接下来我来调整一下这个骨骼的权重的影响,所以我选择 witprous。 接下来我们来调整每一个影响,小伙伴们也可以动手来做一下。 好的小伙伴们,我简单调整一下,当你调整好了以后,你可以选择左上角的 reset pose 来还原它之 前的造型,然后你继续来调整一下每个骨骼,然后看看他影响的范围。有没有一些很奇怪的这项目。在这里留意到在这两个顶点之间中间没有任何的顶点了,所以有的时候这样的话我们不容易来详细构造我们里边的这些每一个部分的影响, 所以我们在一开始创建的 auto geometry 的时候,我们可以将它的顶点数量进行适当的增加,或者你可以在这里边去创建顶点,选择 create or text, 然后在这里面来创建新的顶点,这样的话我就可以详细的规划里面的每一个部分所影响的范围了。这小伙伴们根据各种各样的方法都可以好,这样的话我们基本上就做好了我们这个骨骼了, 现在我们来调整一下试一试。我们选择 preview post, 然后我们挪动一下每一个骨骼,看看他们之间的影响啊,是不是我们想要的效果?可以看到左臂这个位置稍微调整的时候有点夸张,所以我们可以来调 调整一下这部分的权重。 好的小伙伴们,这就是如何来创建我们的骨骼,现在我们的骨骼就已经做好了,怎么样,你学会了吗?那在这里边我们还有一个事情是忘做了,就是我们的武器,所以我选择我们的 weapon 把它启动起来, 这时候我们双击我们的 vip 呢,会选择这个图片,我们为他来创建一个骨骼,点击创建骨骼,接下来我希望我的这个武器是受我的这个手臂的影响的,所以我要选中这个 手臂的这个骨骼,然后在他的顶点的位置进行点按,接下来他就可以从顶点的位置进行创建了,所以我们来创建一个从顶点开始的这个骨骼。 好,创建好了骨骼是干什么呢?我们要为它创建 geometry, 也就是它的顶点,我们选择 auto geometry, 点击创建,这时候可以看到他受到了多个骨骼的影响,然后怎么办呢?我们去到精灵图集选中他,然后选择 boom influence, 然后将他所有其他没有用的骨骼都删掉,不受他们的影响。 好,我们来调整一下试试看一看,好,现在他不受他们的影响了,对吧?好了,都做好了所有的这些骨骼之后,千万别忘记点击右上角的 oplay 进行保存, 保存好了以后,我们这个图片的骨骼就已经做好了,我们就可以将它关闭了,然后我们可以将它拖拽放到我们的 harake 的窗口里,这个时候他就已经出现了,他现在是以底点为他的中心锚点,所以他的位置比较靠上,我们可以调整将他挪到下面来。 接下来你双击这个人物的时候,打开他的下面的项目,你可以看到这里边有一个分类叫做 boom, 这里面就是他的所有的骨骼。如果你的画面中看不 到骨骼的话,请留意要在新的窗口里打开 dismo, 这样的话你就可以看见这个人物的骨骼了。接下来你可以再挪这个新的窗口里,挪动这些骨骼,也可以调整他的位置了。好了,小伙伴们,这就是如何绘制人物的骨骼,你已经学会了吗?赶紧做起来吧, 别忘记为我点赞和转发这个视频哦,谢谢大家的支持,那我们下个视频再见吧,拜拜。
后面这几个视频呢,我们讲一下二 d 游戏的开发,嗯,那么我们核心呢还是让大家理解一下,在在制作二 d 的这个动画的时候,通过控制鼠标和键盘和二 d 的这些 啊,他里头的这些小的图片是怎么构成游戏的这些元素的啊,以及怎么通过键盘来 和动画相结合,让里头的人物驱动起来。那么这里头呃这后面这几个视频,我们就来给大家介绍一下这里面的一些呃基本工具的使用方法。那么首先我们在建立这个尤尼特二地游戏的时候呢啊,在 因为哈北头呢,我们选择二 d 游戏,然后呢项目名称呢,我们嗯起一个啊,嗯 二连,哎没神。那么可以看到在二 d 游戏建立以后,他和我们三 d 的一个区别的就是 啊,在三 d 以后呢,我们这个会有一个三维的空间,是一个平面,是一个呃水平放置的一个平面,然后我们可以在三维当中 拖拽一些物体上去,那么在二弟的游戏里头呢,他会直接给我们一个呃一个正对着我们的一个平面啊,我们把这地方这二弟呢 呃取消以后显示的这个二 d, 如果我们点选的时候就是二 d 的这个显示方式,那么也就是说我们这个二 d 游戏呢,就全部是在我们这样的一个平面啊,类似于我们电视机上面的一个平面上面来展示我们的游戏和要显示内容。 当我取消二 d 以后呢,就进入到三 d 的这个场景当中啊,那么我们拖拽和旋转呢都可以是原来的三 d 情况啊,那么点击二 d 以后,再点击二 d 的情况下,我们再来旋转这个场景呢啊, 那么他是就没有办法旋转了啊,那么那我们看一下,在二 d 生成的这个场景当中,他默认已经生成出来了一个开幕了啊,在这个开幕了里头,我们来看一下他有哪些内容啊?我们看在这里头开幕的这个,首先 镜里头呢啊,有一个啊,叫奥哦 sorry faker, 也就是我们在三维显示的时候用的是 partte, 那么在二维的时候呢,我们用的是振焦投影啊,这个我们在同音学里同音学这课程当中学习过,那么这地方还有一个变量呢,是赛字啊,这地方设置的是五 啊,这个五的含义什么呢?我们来看一下我们新建一个空的游戏体啊,在空的游戏体里头呢,我们看他实际上新建的时候是在这个呃,坐标的这个圆点啊,中心啊,我们把它可以啊,坐标的圆点中心。 那么当我点击拖拽这个空游戏体的时候,当我往上移的时候呢,我们可以看 呃,他在上面歪的这个轴上面呢,最远可以拖拽到五这个单位啊,往下 最远是头拽到腹啊,那么朝右边的这个呢,实际上就是和我你设定的这个窗口的这个 比例是有关系的啊,那么因此这个开幕了这地方的这个五呢,实际上就是我们这个啊,二 d 游戏所呈现的这个大小的像最短的这个边的单位啊,向上上下的这个五个单位啊, 好,接下来我们呃在在这个场景当中呢,我们需要使用一些小的图片作为我们的游戏精灵, 那么在使用这个游戏精灵的时候,我们去到 fco 当上面呢,我们来下载一些,嗯,素材来的 stole 以后呢,我们啊搜索 啊一个素材叫做台铃 rpg, 不好意思 啊,那么第一个这个呢,就是我们啊啊需要的这个素材,那么点击这个素材 这个素材之后呢,我们可以看到他呢是免费的,呃,实际上在赛特斯套里头呢,关于二弟的这个游戏的这个 一些游戏人物啊,一些道具啊,有很多的这个资源啊,比三弟的要多很多啊,那么大家在这节课呢,我们学习使用这个素材来做, 那么后期你自己按照你自己的需要呢,可以搜索很多呃,和你自己项目和游戏你设定的游戏情节相关的一些素材, 然后把它导入到项目当中去。那么这地方呢,你就点击这个啊,音炮层啊,把这个素材呢就可以全部啊导入到下载,并导入到我们的工程当中来, 那么这里头的这素材啊,包括很多内容,我们后面再一一来讲,那么点击这个音炮就可以导导入进来。 好,接下来我们,呃为了让我们浏览方便啊,我们这地方,嗯需要,呃就是按照你自己的习惯,你可以把这个当前的这个啊,因为我们这节课很多内容是需要从素材 里头进行图片的一些设置啊,所以放到这个下面来进行处理的话,不是很方便。那么这地方呢,你可以把它这个葡萄摘开呢,把它可以进行拖拽啊,拖拽放到我们这个还有锐体这个 窗口的下边,然后这地方点击啊右下角,然后选择玩 call, 我们的要让他只在这一个啊,列表,只在一列当中把所有的资源就可以陈列出来,这样的话我们在后面进行处理的时候,可能会使用起来可能会更得心应手。 好,我们来看阿图沃尔克的这个里头呢,有很多的这个呃游戏的资源,那么首先 yy 们的这个里头呢,有有一些就是我们来看看,在这地方有一些这背景,还有一些路径上的一些素材,那么 还有一些啊,这是一些小的这个布史啊, rap 啊, 吹啊这些内容啊,到时候可以可以再按照你的游戏剧情来添加。那么我们这节课呢,我们主要是对于这个 spa prat 啊,也就是游戏的这些人物的一个使用,那么这地方我们点击黑润的就是游戏的主角,那么在游戏主角里头呢,在这个素材里头呢,提供了提供给我们的有这个游戏人物的这个泰亚泰亚克啊,攻击,下面呢,有啊,在 前向的攻击啊,我们来看右边的这个右下角这个地方啊,当我点击这几张图片的时候呢,实际上你就可以看到一个小 小的一个动画啊,那么他这是背朝我们的一个攻击,攻击情况啊,然后这地方还有个爱豆啊,就是我们这个游戏人物他 静止啊,休息的时候啊,那么他会一个默认的,也就是游戏人物默认的一个运动形式一张照片啊,那么其他的呢,还有这个游戏人物的移动啊,在朝左朝右啊的一些移动的情况啊,我们来看一下啊, 好,我们选一张图片,我们把它在我们的呃文件夹当中打开。啊,那么在文件夹当中打开我们来看,嗯,实际上这地方他默认添加了一些其他的 和 uni 相关的一些啊,因为你只要导入到这个 unit 里头呢,他就会添加一些新的这个 啊,和这个游戏属性相关的这个 mate, 这个文件我们来看第一个,第二个,第三个,可以看到这是一连续的一些动画 啊,这是背朝我们的,那么从前方的呢?他有面朝我们的,对吧?啊,所以这个游戏呢,主要是一个从上到下的这种角色扮演类的游戏。好, 然后我们这节课呢,就是把这他的这些离散的这些图片呢?我们怎么让 u 通过英文的这个 id miss id mix 呢?把它。