哈喽,各位小伙伴大家好,那么提到交货这件事呢,我们就得来看一下啊,我们人物啊,在场景当中这些阻挡 啊,然后还有这些爬楼梯啊,这一系列这些事情其实都算是交互,但是我们之前呢一直讲的都是我们人物这个骨骼网格体啊, 但是我们没有讲这个地图当中这些什么楼梯啊,这些盒子啊,包括下面这个地形,对吧?这这些呢叫做静态网格体,然后这期呢我们就主要来看一下这个静态网格体是呃,有有哪些,这个对对于交互方面的这个要求。 好,那么我们先回到这个玛雅当中, 然后我们计划在玛雅当中 做了一个模型啊,然后通过这个模型呢给大家进行演示。那么做静态网格体的时候呢,首先你要把你这个骨骼网格体那个骨骼导进来 啊,这里呢我用的是这个啊,用用它来做参考啊,这个原因是什么?就是说啊,我们有了参考之后,你就知道你做的这个东西大小了,对吧?啊?你就不用去去纠结尺寸这个问题了。 好,我们在玛雅那边呢是做了一个椅子啊,然后我们把它倒进来,倒进来的时候呢,我们可以选择这个不不创建材质啊啊,然后其他的就没什么可可选的啊,这个这个 咱们把它都都展开啊,然后跟这个谷歌网课题比呢,他这个要简单许多啊, 唯一需要关心的就是创不创建碰撞这个啊,然后呢我们这个 现现在啊,我们这个是没有碰撞的啊啊,所以说呢,我们就让他自己创建一个,那这样我们就点导入, 导入进来之后呢,我们就有了这么一个椅子,对吧?然后我们把这个椅子双击打开啊,然后我们在这里点显示啊,显示这里呢有一个简单碰撞啊,我们把它点开,它是这样式的啊, 这个是这个就是呃,我们这个 ue 呢给我们自动创建的一个简单碰撞, 然后这里边呢他有一些这个碰撞类型啊,他默认给我们创建的呢,就是这种啊,什么 dop 的啊,而且他这个 碰撞呢是可以叠加的,你比方说我现在是有碰撞了,我可以在这个碰撞上面再再增加一个啊,就是可以叠加啊,这样这样,但是叠这个叠加呢其实是没有什么作用的啊,咱们可以把这些碰撞统一全部删除, 删除完之后呢,咱们再来点下这个啊,你就你就会发现啊,这种呢就是他给我们默认创建的这个 啊,它它有它有很多种类型,它是分方向的啊,这个 这个你创创建感觉不对劲,你就可以把它删掉,这样 这样它有它,它有它有个什什么的,这个这个区别呢,就是说它这个,呃三三三角面的数量 啊,他有的呢就会变得这个这个三角面的数量比较多啊,有的稍稍微稍微他就少一点。 那我们就现在,现在就用这个最简单的这个啊, 就用这个其实暂时就可以了,但是呢他这里边有个特殊的,最下面有个自动图包碰撞 这个这个东西呢他是比较特殊的,我们点一下啊,点一下之后呢选择自动出包碰撞, 然后呢他这边让你填东西啊,问你图包数量,还有什么壳的点数,什么图包精度啊?这些东西呢,你是可以去调整的啊,你比你比方说现在我把它调到调到十啊,随便调个数,下边这个呢,我也是啊,可以 随便调,这都都可以调,调完之后你点应用啊,然后他就会根据我们这个模型的外形啊,来给我们创建一个 就是更好的一个包裹的这么一个状态的这么一个模型。但是他同时呢他他有个问题,就是他的三角面比较多啊, 就是根据我们设置的这些值,然后可以创建一个更好的一个碰撞,然后这些碰撞的最大不同是什么呢?咱们来演示一下啊,先来看一下这个图包,这个啊,咱们把它保存一下,保存一下之后呢,我们把它拖到这个场景当中啊, 然后把它升起来按 e、 n、 d 啊, 这个碰撞呢,我们就可以,我们这个就跟 咱们这个人物啊, 就是他现在这个碰撞类型呢,就跟我们这个椅子啊是比较这个贴合的,所以说我们这个人物呢就可以站上了, 然后相比之下呢,他这个简单碰撞啊,咱们就站不上来。你比方说我们现在把这个碰撞类型给他移除掉,然后来一个简单碰撞,对吧? 然后我们再再保存一下 啊,然后可以用我们这个 上一期这个命令啊, 然后来看一下他这个碰碰撞体这个盒子啊,我我们就会发现呢,他这块是个斜面,所以说我们这个人物呢,他就上不去了 啊,就是这么一个这样式的话呢,就显着我们这个椅子就比较假啊,明明是个椅子,但是我们人物区上不去啊,所以说呢,这种他就不太合理,他虽然说是这个碰撞体积啊,做的比较简化,嗯,他就,但是他他不太合理。 呃,然后同时呢,呃,这个就这个就已经很不合理了,然后你再想象一下这个球形是不是? 然后咱们再想象一下这些什么球形啊,什么这些胶囊啊,他就更不合理了,我们人物就更更更上不去了。但是呢,我们把这些都去掉之后呢, 如果我们用这个图包呢,我们人物是能上去了,但是他他这个面数呢就增加了啊, 所以说呢,这个这个也,这个也不太好。那么有没有什么办法可以让我们这这这个这个呃就是做的更好一些呢?其实是有的啊,那这里面呢就是涉及到了一个知识, 就是这个优异官方提供给我们的一个知识啊,就是让我们在这个外面去创建这个 碰撞啊,创建完之后呢,然后我们就可以连着这个模型再碰撞一起倒进来啊,那么他这里面呢,他一共介绍了四种啊,有合体、胶囊、球体这些呢,我们在这个优异里面创建就可以了,因为这些呢没有什么呃太大的可说的。主要是这个啊,这个 这个就是我们自己创建一个图包对象,那么他他呢是可以创建任何完全封闭的凸型形状啊,就是必须是必须是没有凹陷的啊,也没有挖空的。看到了吧?凹陷不行,挖空也不行,必须是凸型的啊, 然后呢他支持一个命名,看到了吧?他后面他支持一个命名。我们可以下边是可以阅读的啊,通过下边这个阅读呢,我们了解到我们可以创建一个这个,这个这个后面可以命名啊, 啊,零一零二零零零零几的,通过这种,通过这这种方式咱们就可以在外面去创建这个啊,那么在这里他用这个棒棒糖给我们做了一个这个,做了一个演示,然后同时呢啊他推荐我们如果,哎,就是 他推荐我们你这个图包跟图包之间,如果要是多个图包的话啊,就是如果多多个碰撞模型的话,中间最好是空点空隙啊,比较碰撞表面之间的小缝隙。 他这个这个意思呢,就是怎么说呢?你不可能,你不能让这两个进行穿插,最最起码的你保证这两个不穿插啊,中间可以留一点小缝隙啊,甚至说中间可以结合,但是不能穿插。 好,那我们来看一下他这个东西是怎么搞的,其实就是就是建建立一个模型,然后把我们做的这个椅子包上啊,然后按照他提供给我们这个命名重新命名就完事了啊,非常的简单。 那么我们现在这个椅子是这样的啊,然后我们现在就可以让我们这个哎,我我这怎么多多了条线, 咱们这椅子这块多多头线,嗯,好,这样就没有了 啊,然后呢我们就我们这个椅子这个名字,就就就就这个是吧?然后我们可以给,可以给给给他改个名字啊,就就是后面不带数字啊,把这数字给他去掉。然后呢我们再新建一个模型 啊,就是新建一个简单的这个立方体啊,啊这个立方体呢要求呢就是把我们这个模型给它包上啊。 啊,可以可以,稍微再大一点,把我 把我们的模型包上啊,然后他说呢不能有凹陷啊,不,不能有凹陷呢?那我们就不能挤出,那不能挤出咋办呢?我们就再建一个啊, 我们用用用两个立方体的,用两个立方体的模型来模拟这个当当前这个椅子这个形状啊,这样啊,这个这个后后后背呢?咱们可以稍微 这后背啊,咱们可以稍微让他厚一点,这都没有问题。 然后他还他还他还有一个什么就是不让我们这个模型啊有穿插,对吧?所以说我们要把这个穿插这个事也给他稍微处理一下,中间 有一点点小缝隙啊,是没有问题的,对吧?啊?他推荐我们是让我们中间有点小缝隙啊,这样 然后呢我们就可以将这两个模型重新来命名了啊,你看他这个提示的啊,让我们又命名为 ucx 杠,什么什么什么啊? 那我们就可以用这种方式来命名,他下面有一个在在在在在这里复制比较好啊, 在在这里复制,然后我们把第一个命名为 这个,这个是我们本本来的模型,然后呢我们把中间这一段啊给他替换掉,替换成我们这个模型, 对吧?啊?这就是第一个了,然后我们把第二个再给他拿过来,哎,替换成第二个啊,这样啊,这样依次类推就可以了, 然后我们再再来看一下啊,他这个差不多。然后呢把把我们这些模型呢清除个历史冻结一下变换啊 清清除历史冻结变换就是把我们用来包裹的这个模型清除历史冻结变换 好,然后我们就可以选择他们三个啊,同时进行一个导出 啊,这个叫 椅子椅子二吧 啊,因为这个模型非常简单啊,导出的非常快,然后我们再回到这个 ue 这边 啊,在这个物件导入椅子二啊,这一次呢我们就把这个自动碰撞这个给他去掉啊,就我们不让他创建自动碰撞了,我们自己有碰撞啊,然后我们导入,然后呢我们再来看, 那么现在呢,我们就有了一个非常简洁的一个简单的碰撞了啊,这是我们从外面自己创建的一个碰撞,咱们就有了一个非常简洁的一个这种碰撞啊,这这个,这这个 技能一定要掌握啊,那因为我们将来会创建大量的场景物场,场景物品,而且这些场景物品呢,我们需要,我们需要大量的这种方式来操作啊, 如果你这个不会的话,你后面你咱们这个做出来的游戏有可能就会优,就所谓的优化不好啊,就是人家那个就流畅到你这就咔咔就一顿卡啊,这这有有很多人他就不注意这种小细节啊,他做完的东西他优化不好, 所以说我们再次的启动这个启启动游戏,然后把我们输入进来, 然后我们来进行对比啊,你看同样能实现这件事啊,我我们可以站到这个椅子上,对吧?啊?同样能实现这件事,但是我们这边的这个模型,他的碰撞体积就非常非常简单,非常非常的省面, 但是这个呢他就比我们那个花费更多的面啊,这个通过对比你就可以想象啊,这一个椅子能省下来这么多,十个椅子,不是百个椅子,是不是啊?你这里边说道特特特别大啊?好,那么这期内容就这么多,感谢大家收看。
粉丝555获赞1724



我想要陪在你的周围,跟你 评论区扣一领取钱教证哦!

今天呢,我们要讲的是一个精彩网格编辑器,我们昨天其实已经接触到了,昨天呢是学的体积,对吧?画刷,把这个编成英文的, 学的画刷,那再画刷,比如说我们随便生成几个 这样一个比较复杂的东西 在这,然后呢我们要把 他们三个生成一个惊叹某个物体,如果我想选择这个中间的这个为中心的话,那我最后这个鼠标按住 ctrl 选它的时候,就把它放到最后一个,然后在这个里面 setting 下面 有一个 create static mash, 看到了吗?选择这个,然后呢我们要在这创建一个 new for 叫做 static mash 啊,然后这个叫做 e o m e t r y, 这叫个几何体啊, 那就有了,那他现在就变成了一个画刷,那么看一下,当我人走的时候是不是直接穿进去了,对吧?昨天有同学做完了楼梯,老师说,老师跟我说怎么怎么怎么模型能穿进去, 那是因为什么呢?我们来看一下,是因为他是没有碰撞器的。我,我之前跟你们说过一个东西,包括这个人如果能在这个场景里边移动,或者说灯能被阻挡,是因为什么?是因为他外边有一个这个碰撞器胶囊体,他呢叫做 clear 啊, that's clear, 记完了吗? 当我们把鼠标嗯看放到它上面的时候,你可以看到它有一个黄色的那个字,看到了吗? clear primes, 这个如果是黄色的,并且显示零,就说明当前这个模型是没有碰撞器的。我们可以看一下,官方给我们提供 starcondant 里面,它里面有一些 形状,比如说这个门,看到了吗?它是什么?是不是也是零?你看我现在是不是也能穿它,对吧?那我们找一个不是零的,看这个 clear prime 等于三看到这个门框了吗?我们给它拖出来,你看是不是给我挡住了?那这个就是, 所以说问题的关键是什么?昨天问题的关键就是我们这个做的他没有碰撞器啊,所以呢,我们要给他加碰撞器,那如果要给他加碰撞器呢?我们首先就要来研究一下这个惊叹网格编辑器, 这是菜单栏,然后还是这个是工具栏,是狮口,这边是细节面板,这个 preview, 这个不用管了啊,这是预览场景,就说你能看到后边这个东西吧,后边这个是预览场景的一个设置,比如说给他清除,那他表面就没有任何的一个反射细节, 加上之后他就有一个光,就这个图片,其他的你先就这个地方你先不用管了,就是预览这个场景的一个呃,设置,那我先来看一下这个里面呢? few sale 保存,保存作为,然后选 则资源保存,这些你自己看一下就行,然后这 id 回复前进,然后编辑设置,项目设置,插件设置 site, finding, content, browser, 这什么意思啊? 这什么意思?在内容浏览器中查找,对吧?就是把我们这个定位的在内容浏览器中定位,然后是 view, 这个是干嘛呢?是看我们这个呃,模型啊,被哪些哪些东西用到了啊?能明白吗?比如说我这穿这个蓝图, 现在这个蓝图里边有它了,我编一下保存,然后我再打开这个 reference to you, 你可以看到,是不是要告诉你啊,你被这个蓝图用了,它会有一个你的提示,这样有什么好处呢?在你不确定这个东西是否有 用到的时候,你想清理一些没有用的资源,你就可以把它删了。如果要说你把它资源列表打开,你发现没有引用,像什么样 啊?现在有这块也有全这样单独一个,就说明他这个资源没有被你用,你就随便删,肆不忌惮的删。 然后这是 size mat, 这个是它的一个分辨率,分辨率,这个我们也不管贴图的一个东西, 然后 mash clean, clean 这个地方就是我们一会要讲的碰撞器,碰撞器,然后 window 呢?就是窗口正常的什么下面上面有的,比如说 details 啊,工具栏都有 pro 的时候,然后还有个插槽管理器,这个叫做插槽管理器,在哪呢? socket manager 在这个地方, socket manager, 然后还有一个 preview, preview setting 是这个地方,然后一一对应,如果要是说找不到了,咱自己知道在哪找,嗯,关了, 然后这是工具栏,工具栏第一个是保存,第二个还是在内容浏览器中查找,然后这个是实时渲染 real time, 然后这是插槽显示它的一个插槽点,我们现在也不要去管它。然后这个是显示模式,是线框模式还是什么模式?然后是顶点灰色,顶点灰色呢?就是这个,这个我们就是一般不会用到它,为什么呢? 这个东西第一个必须你这个模型顶点足够多,第二个顶点足够多的同时,然后你还要拿它去在他点画一些自己想要的颜色, 这个呢?颜色是不可逆的,什么叫不可逆的?你画完了之后,你这个模型的贴图上都会被颜色,就是贴图上都会被改变颜色,就比如说这个贴图 先是蓝色的,你拿这个给他画画,画画完了之后,然后你一关,那这个颜色直接保存下来,这张贴图就废了,能明白我意思吗?一般用不到这个,一般用不到这个, ctrl 这个工具,它是一个顶点绘制的工具。 嗯,这个然后这个是网格,鼠标显示网格, 这是一个体积,体积,然后这个呢就是显示碰撞器,碰撞器有两种一会再说,然后这个是显示他的一些轴向, pivot x, y, z, 然后这是法线,这是弹进他的那个角度,这个是 这个什么玩意?反正就是这三个显示的就是法线,然后这个是以前的那个顶点的一个歪轴,这轴我打开你们看一下就知道 这是每个顶点的一个方向,能看到吗?就说这个模型里边所有的顶点都会有一个这个东西, 蓝蓝色的线啊, 绿色线, 这个这个单词我不认识,但是这个是弹琴的角度,弹琴的话就是当前的一个, 怎么说?就那个顶点的一个值,反正又没什么用这个地方。然后就是给你看一下,然后这是所有的顶点,这是模型中所有的顶点啊,而且你可以看到其实就是在这三个这些,比如说 某某这个顶点的发现这个弹琴的那个角度,然后这个不知道,查一下吧,因为这个我也没用到过。 b, i, n, o, r, a, r, m, a, l, s 复发线,然后这个 normal 是发线 t, a, n, g, e, n, t 相切,正切,就是那个切线,就是这三条线, 然后这个呢是 uv, uv 一般呢有两个 uv, 第一个是我们的颜色 uv, 第二个是光照 uv, 然后这里面呢这个 uv 是乱的,是因为什么呢?是因为我用画刷去做了这么一个东西。如果啊,你听好了,如果以后在做项目的时候尽量不要用,或者说干脆就不要用画刷,因为你啊他呢是怎么是快速? 快速就是说制作出来一个试验性的一个模型,而不是说最后真正你要去用的一个模型,因为你知道在你做的时候,是不是这些所有的模型他面数都很低,包括像这个球,对吧?如果把它调成最大的话, 他也是有很多那个曲面的,也是可以看出来的,那这样肯定是不行的。游戏里边,所以说这个只是我们快速迭代或者说去呃简化的一个工具来实现我们那个做我们那个场景, 来做我们的场景。所以说你看现在这个 uv 红色这个线全是乱的,正常 uv 应该长什么样呢?像这样在一张贴图上把所有的面都给平铺上来,能明白吗?这块他是把所有的面都给平铺上来,然后把相关的一些,比如说这个这个地方我给你举个例子, 比如说这个三角对应的就是这个三角,但是这个三角这个显什么颜色的话,那这个三角是什么颜色?就一对应啊?把一个三围的所有的面展开,平铺到一张纸上,这个叫做 uv, 没问题吧?这个地方,然后他有两个,第一个是呃正常颜色通道,第二个还有一个就是光照通道,什么区别呢?光照的那个 uv 就是我们打到他上面这个阴影, 打到它上面的阴影,然后的一个分辨率,正常构造 u v 的分辨率要远小于它原本的这个 u v 的分辨率,这个你了解一下就行。然后这个是 set camera, 哦,这个是 addition data, 这个我们也不用管它,呃。然后是 they call the materials, 这个也不用管。 然后下面我们来讲一下如何给他添加碰撞器好看这个颗粒,点击 他,我们可以看到爱 the sear, 爱的 capsu, 爱的 box, 这里边所有的爱的全都是添加碰撞器,只是是不一样的碰撞器。第一个爱的 spear, 这个呢?添加的是一个,呃,圆形,圆形的碰撞器,现在看到绿色的了吗? 这个绿色的东西就是他的碰撞器,如果我们现在保存一下,然后我们再试一下,我们就进不去了。看到了吗?是因为他有碰撞器了,然后你再把鼠标放他上面,你可以看到这个地方有 bug。 这个地方以前遇到过。好了, section with clean 啊,不是 clean prime prime 一看到了吗?那现在他就已经有这个破装器了, 那我们需要根据我们需要,呃,就是需要根据我们的要求来给他。呃。怎么说?调整他碰撞器的大小,包括位置,比如现在我们想想要去看或者调整他碰撞器,你把这个关掉之后,你再回来,你发现是不是没有了那个绿色的框, 对吧?那要在哪就显示呢?在这个 clear 这个地方把 cpoclear 打上,这个绿色就出来了,然后和外边这个失口是一样的,我们可以调整这个碰撞器的方向,大小以及位置,这都是可以调整的。 然后我再说一下这个饰口,这个这个地方有一个 l o d, l o d 呢?夜晚会讲 o d 是一个模型界面,然后还有一个是 current section size, 就是说当前你这个模型占到了这个屏幕的尺寸的大小比例,零点六, 你看我把这个镜头往前拉,说他在变大,对吧?那离远他就变小,而这是 changos, 就是说我这个模型总共一共有多少个?呃,三角面有多少个三角面? 然后下边这个是 uv 通道, uv 通道现在用的是第二个啊,第二个 uv 通道,第二个,然后还有一个是 这个尺寸,然后还有一个是 number clean of prime。 什么?什么玩意?就是说他这个模型一共有多少个碰撞器?我们还可以添加,看到我就变成二了,我再添加就变成三了,这都可以再去添加了。然后我说一下,第一个是球形的,第二个是什么型的?第二个是胶囊体碰撞器 啊,就跟我们这个人是一样的,人是一样的,他呢?就是胶囊体碰撞器,然后下边这个叫合体碰撞器,长方形的和。看到了吗? 然后下边这三个什么十 dop, 十 dopy, 十 dopz, 然后十八 dop, 这些全都是。呃,怎么说?就是按照顶点就是什么偏移,这太复杂了,不跟你说了,就是你自己加一下看一下吧。啊? 现在是朝着 x 方向去添加的,然后这个是朝着 y, 朝着 y, 然后这个是朝着 z 啊,你可以看到它有一个区别,你可以按照自己的一个,你去试一下,就是说 这个地方要解释,解释不清楚,很复杂,就是有一个顶点,丢屁,你可以看一下,一二三四五六七八。我这个是 哦,好像是什么点偏移什么的,这个地方比较复杂。呃,一般我们不用这个,不用这个,然后一般我们用的是 啊组合这三个,或者说用这个啊 auto, 呃, conver, con max clear 自动添加碰撞器,我们点击一个这个,点击这个,然后你会发现在这个地方出现了一个 这个这个 convex, 什么什么 the composition, 这个就是让我们去。呃, 修改,我们要添加自定义碰撞器的一个参数,一共有三个参数,第一个是外壳的一个数量啊,外壳的一个数量,第二个是最大的顶点数,第四第三个,第二个是最大外壳顶点数,第三个是它的外壳精确度 啊,你是什么意思啊?这个越大越好,然后这个顶点数越大越好,然后这个也是越大越好,但是实际上我们用不到这么多。我跟你说你要全调到最大的话,你要生成,你生成 老长时间了,你这个模型如果复杂的话,所以一般呢?我们就是适当适当,比如现在是这样的。呃,极端一点吧,看一下最糙的能看到吗? 绿色的说他生成了破装器,是不是没有把他这个外壳完全包住?而且我给拖出来你看一眼就行了, 而且是不是感觉很很乱,对吧?就是完全不能代表这个模型的一个碰撞的一个要求,就是你要去做的话,把这个东西扔里面还是会有一些什么这个 模型的重叠这个现象,所以我们可可以调一下这个参数,这个位代表最大点数可以调大一点,而这个精度也可以调大一下,你再 up 一下, 你现在看能看到吗? 这是那个正方体的,他已经给做成这样了,已经基本上非常贴合这个模型了。然后这个是那个, 这个是上面那个棱锥的,看已经生成比较复杂了,然后这个是下边这个圆台的 啊,所以说这个地方你可以按照自己的需求来去设计,第一个是最大的外壳数,第二个是他的一个 最大的顶点数,然后这个是外壳的一个精确度,没问题吧?然后如何去除我们这个碰撞器呢?是这个铃木颗粒的,比如说如果你再进来 不确定他是否有这个碰撞器,比如进来不确定是否有碰撞器啊?你可以直接看是这个屏幕是不是亮的,如果是亮的话,那就说明这个是没有碰撞器的,不是,是有碰撞器的,就你可以给他移除掉, 然后你点击一下铃木,然后他就没有碰撞器了。这个地方 number clean prime primative 就变成零了, 这块没问题吧?啊?好,然后你们可以自己用画刷,昨天是不是有些同学见龙提现个这个,然后都没有碰撞的吧?你们可以在昨天作业那个场景里边把你那个没添加上碰撞的画刷给添加。碰撞 模型是由点组成的,那点和点相相连变成线,对吧?那三条线啊,不,三个点就组成了一个面,那这个模型里边他现在有多少个面呢?有一百零二个三角面 啊,那这一百零二三角面是不是肯定由线组成的?那组成这个一百零二个三角面的线就是这个 complex, 看到了吗?现在高亮的这个淡蓝色的就是它的一个复杂,复杂碰撞 complex, 你可以看一下它跟那个 他那个网格是完全一样的,看到了吗?我现在变成切换成网格模式了,如果把这个去掉是不是一样的,对吧?那你就知道他是怎么来的了。那这个地方呢?不是我们添加的,我们添加的只是一个简单 single 的一个,可不可以?可以。

哈喽,各位小伙伴大家好,那么我们上一期呢是讲了一下给我们自己创建的模型啊,增加这个简单碰撞, 那么除了这个东西以外呢,我们也是可以创建这个系统预设的一些碰撞啊,可以完成一些啊触发事件,或者是一些比如说空气墙的功能, 那么在这个放置这这里面啊,他就会有一些啊触发框啊,触发球体,还有这个胶囊啊,一共是有三个啊,三个这里没有,你可以在这里在这面找啊,这呢触发胶囊体, 那么这些东西呢就是呃系统提供给我们放在这 就是可以可以把它摆在这个场景当中啊,进行一个触发事件啊,或者是怎么怎么样,就是提供给我们一些呃现成的一些具有碰撞属性的东西。 好,那么这种东西呢咱们就介绍这里啊,这还有个触发体积啊,你看 然后我们自己的这个模型呢,通常啊不会这么直接就拿来放在场景中这么使用啊,这样式的话呢,这个模型啊他的拓展性不是很好, 所以说呢我们通常呢会把它加工一下,然后再放到场景中来使用啊,如何加工呢?右键然后蓝图类创建一个, 第一个蓝图啊,就是这个,呃,这个演员蓝图啊,创建完之后进来我们会发现啊,这个蓝图里边什么也没有,那我们可以在这边添加啊,然后添加静态网格体组件, 通过这个网格力组件我们可以选择我们自己的这个隐私模型啊,这样通过这种方式啊,咱们把这个我们自己做的模型啊加进来进行一个使用, 那么同时呢这里边你也可以去增加一些其他的这个碰撞题组件啊,这这 一共有球方块和胶囊,一共有一共有这么三种,那么我们这个人物呢,他有个胶囊题组件,这个呢就是用的胶囊,就是用的我们这个里面的 的一个胶囊啊,用的就是它。然而且这个东西呢,我们创建一个,我们会发现啊,他会自带事件,他会带带这么多事件,但是这这这节呢,我们主要讲这三个事件, 而且我们自己创建完的这个,呃,静态网格体这个组件呢,他也带这个事件啊,同时呢他们也都具有这个碰撞属性啊,也就是这个 啊,都有具有这个碰撞属性。好,我们把这个交响体先删掉,然后我们这个人物这边呢,其实是一样的啊,有这个事件 和这个碰撞的这个属性,就是这个胶囊体,然后我们再来到这里,把我们原来这个 这直接拖进去,这个就可以删掉了啊,把我们新创建的这个再拖到场景当中啊,这样呢,我们会看到我们新建的这个呢,他下边就多了一个小圆球, 哎,然后他这个在传统当中呢,后面就多了一个编辑,我们一点呢就可以进行对他进行编辑,我们主要的目的呢就是使用这个 事件图表,然后让他用这个事件图表来触发这三个事件。好,我们先把这三个事件加进来,一个是命中 啊,一个是重叠啊,一个是重叠结束。那么我们 优先来看一下这个命中,那个命中,怎么理解呢啊? 我们跟这个这就叫命中啊,就是我们这个人物跟底子创一下啊,这这这就叫命中, 那么这个这个这个可以关掉啊, 然后我们这个组件呢,他是有一个碰撞预设的啊,这个碰撞预设呢,一打开都是英文,我也讲不好,那么我是提供 那资料啊,我就是在这翻的资料,但是我我翻完之后呢,我发现我可能是讲不好啊,我讲不好呢,这里边我就不讲了,然后这个我会把这个我我我会把这个资料啊, 哎,这么展示一下,然后大家呢高这个 qq 识别,对吧? 啊?告这个 qq 识别,把这个网址提出来啊,然后自己敲一下就可以了,通过这种方式啊,所以说这个呢,我就不讲了。 然后我们来看一下这个预设里边有一个自定义预设,自定义预设里边点开之后下边就可以选了,那么这里边呢?我们自己的这个模型 啊,他是一个静态网格体,就是世界静态网格体,然后跟我们这个模型相撞的。这个啊就是我们的人物的这个模型, 我们人物这个胶囊体呢,他就算是一个呃,棋子,他他就算是一个棋子,所以说我们只需要修改棋子这里的事件就可以了,那么默认呢,如果两两面都是阻挡 啊,这这个是椅子啊,这边是阻挡,如果然后人物这边呢也是阻挡,那么双方都是阻挡的情况下,那么就会产生命中啊,也就是碰撞,那么当有一方 变成了重叠,那么双方就是重叠,当有一方变成了忽略,那么双方就什么也不发生啊,就是这么个意思,那具体是怎么回事呢?咱们来看一下,先来看一下这个主打,我们弄一个打印啊, 然后我们去跟他去碰撞,这样碰撞呢,他就会不 型的输出这个 hello, 哎,这就证明我们这个碰撞生效了,对吧?那这个碰撞, 呃,除了阻挡这个人物过不去以外,还有一个什么什么功能呢?就是我们说的这个通信啊,这个功能是主要,其实就是这个功能啊,就是通信这个功能,那么这里边呢,他可以得到组件,还有这个我们这个这个这个 对对,对方的这个名声啊,还有对方的这个,这是缘机缘组建啊,那么 我们再用这个名称来试一下, 我们再去跟他相撞 啊,这样一撞呢,我们就知道对方的名称了啊?谁跟他相撞了,对不对?那么通过这种情况, 我们就可以把这个对象引用,直接呃获取到进,然后进行一个通信,对吧?那么我们就可以使用我们之前讲过的这个知识啊,这样提升为变量,对吧?哎,然后把它连上, 那么通过这种方式呢,我们就在这里创建了一个,我们创我们获取的这个就是跟他相撞的这个,我们现在是他,他在跟他相撞,对吧?那我们通过相撞的碰撞,只要我跟他碰撞一次,那么我就获得了 对方的身份,那我就把对方的整个这个我,我就把对方整个这个结构啊,这个引用就保存下来了,然后我就可以对他进行操作了,对吧?你比方说,呃,这个掉血啊、销毁啊一系列的,对吧? 那么咱们就可以对他进行操作了啊,所以说这是非常非常非常直观的一件事啊,然后反过来我们这边也是可以跟他啊,就是椅子可以获得我们人的,但是人我们人物也可以获得椅子的,反过来我们一样也可以获取, 对吧?我们一样也可以获取椅子的啊,我们不单可以获取椅子的,甚至还可以获得地板的一系列的啊啊,你看我们还可以去获得一下这个 椅子或者地板,只要发生碰撞了,那么我们就可以获取,哎,你看双方都在获取,然后我跳起来,我还能获得地板呢啊,然后还可以获得梯子 啊,包括这个盒子啊,就是通过碰撞这种方式,我们就可以拿到对方的实力,然后对对方进行操作啊,这么这是一个非常直观的一个通通信手段啊, 然后我们来继续往下看,这就是关于碰撞,那么咱们前面也说了啊 啊,有一方啊,有双方都是阻挡的时候才能发生, 那么有一方是重叠的时候,这个碰撞就失效了,那么我们现在呢,这个碰撞就不会再产生了,我们就会产生这个重叠, 哎,打印,那么我当我重叠结束的时候,他也可以进行一个啊,这个就咱们就输出 hello 二啊,输出二也行, 然后我们现在去重叠啊,你看哈喽哈二啊,哈喽二,那么通过这种方式我们也可以获得这个对方的实力,那么这种方式呢,就好比是狙击枪啊,我这一枪过去穿好几个脑袋,但是我的子弹不停,那前面这个呢? 我打中一个子弹就停了,那么这个呢?我就是狙击枪了啊,我这刷刷一顿穿,但是子弹不停,然后我会把我穿到的所有的这个跟我就跟我重叠过的所有对象全部都进行一个返回, 然后可以得到对方的实力,那么那么那么我就可以依次的往往外写。比如说第一个啊,这个第一个爆头啊,掉一百血,第二个七十五,然后五十怎么怎么样啊?就是这么一个情况,然后呢对比这些返回值呢,我们会发现这里多了一个这个 这个返回值呢,它是一个比较特殊的,它是个结构体,然后我们把它就是 凡是你遇到这个 hit 的这个东西,他都是可以展开的啊,你把它拖出来,他他就会有一个中断命中结果啊,只要你遇到这个东西了,你就可以把它展开,然后就可以获得更详细的 对方的这个这个这个数据,那谁跟我相撞了,我获得对方数据了,我就可以把它展开成更详细的啊, 然后这个东西呢也是他就在这里最终概数这里边有一个命中结果啊,然后每一项代表什么意思,他后边都都写了,你可以翻一翻, 然后链接在这里啊, 然后我们可以继续再往下看,咱们在第一节讲过一个自定义碰撞 啊,自定义碰撞通道,我们来看一下啊,这这时候呢我们就可以来创建自定义通道了,碰撞啊,在在这里, 在这里呢,我们可以把这个先删除一下,然后我们可以看到这这个自定义这里面呢他一共有三个选项啊,前两个是展开的,第三个呢他没有展开,咱们展开下看看啊,他是这样的, 那这个东西是跟谁一一对应的呢?就是跟我们这个东西是一一对应的 碰撞预设这里边啊,跟这里面是一一对应的, 然后我们可以对他进行编辑删除和新建啊,但是我通,但是通常咱们不推荐修改这里的东西,除非是你特别特别的熟练,特别特别懂啊,然后再来修改这里面的东西。 好,那这个呢?把它关掉啊,尽可能尽可能的不要去动它。然后我们来看下这面,我们是 他说了可以创建拥有十八个自定义的啊,也就是说我们可以创建十八个自定义的一个轨道,然后我们就可以新建轨道。那么这三个东西呢?选哪个都可以,他们分别对应着,分别对应着 阻挡、重叠和忽略啊,所以说这三个东西呢,你选哪个都可以,因为到那边我们还可以重新选,然后我们起个名字,比方说起名就叫 a a 啊,接受,然后我们到这边来看,他还没好使,编译一次啊,然后保存,那么他就出来了,这个就是我们自己定义的一个碰撞的这么一个通道啊。那么这这这个呢? 暂时也没有办法展开往下讲啊,只知道这个东西是这么用的就可以了。 好,那么这期的内容就这么多吧,感谢大家收看啊。

hello, 大家好,我是张亮零零二,今天来给大家讲一下虚幻性能优化之碰撞篇啊。呃,首先,呃,给大家看一个这个我做的一个测试,这个是优化前 哎,右上角是一个真率,然后我会一直刷这个怪物,然后啊就我就这样来回的这样走动,可以看到随着怪物数量的增加,这个真率就会持续的这个降低啊,直到这个真率低于三十的时候我会暂停,可以看到这是优化前 啊,怪物数量到六百五十八个的时候,帧率已经低于三十帧了,那么再看一下我优化后的一个效果, 接下来来看一下优化之后的一个效果,我们可以 看一下现在依然是这个怪物持续的增加啊,随着怪物的增加,这个增率依然会持续的降低啊啊,刚才其实到了四百多个怪物的时候,这个已经飘红了,那么进到这个怪物堆里面啊,跟着怪物堆走, 你看到现在已经是八百多个怪物了,但是呢依然增率依然会非常的坚挺啊 啊,已经到一千个怪物了,那么进去进到怪堆里面好可以看到啊,现在是呃,一千一百九十一个怪物的时候,增率就低于啊三十增了,那这个我是怎么做到呢?那么接下来我就给大家讲解一下, 其实我一共就做了两件事情啊,第一件事情呢,就是把这个静态网格体的这个碰撞啊,把它的生成重叠式 键去掉,然后把它的碰撞预设改为 no creation。 然后呢,呃,第二件事情就是啊给他做了一个合体检测,这个合体检测当中 啊,他只会跟这个玩家和子弹产生一个重叠事件,并且阻挡怪物类型的一个呃移动啊,他自己的对对象类型是怪物,那这些东西到底是怎么做呢?一会会给大家一一介绍啊。 然后,呃,主要是这件事情啊,这个优化现在好像看似不明显,但是呢量变产生质变啊,比如说啊,像这样一个模型,他有很多很多这些静态网格体,对吧?他默认情况下 都是这个啊, back out, 并且碰撞是一起用查询和物理的,当这些一个模型啊,就是一个蓝图里面这些非常非常多的时候, 然后呢你又全部都在动,全部都在动的时候,那这个时候就会产生一个量变啊,导致的一个质变啊。我们可以看啊,比如说我任何一个模型添加进来的时候,在有只是静态网格体啊,任何一个静态网格体,当他添加进来的时候,他的默认碰撞可以看到他是 back, 奥啊, blo block 奥啊,就是这个呃阻止一切啊,可以这么理解。然后呢它又包含这个重叠事件 啊,最主要是这个重叠事件啊,因为一旦开勾了这个重叠事件之后,如果很多东西一起动,他就会一直发这个事件,会导致这个有很多的这个没有意义的一个东西出来啊,当然这是静态网格题,是为了呃 方便啊,就方便这个这个做做这个游戏的时候啊,就是可以很快的快速的实现一些功能。 呃,骨骼网格体不会呃,在所有的骨骼网格体,他如果你直接添加进来的话,他这个默认是一个这个没有重叠事件,并且他默认就是这个 noclish, 所以说这个只是针对于这个静待网格体的这一个优化。 那这个,呃就要讲到一个自定义的一个阻挡了,我们可以看到啊,在我的这个蓝图里面啊,呃,应该是这个,在我这个蓝图里面可以看到他多了几个东西,对吧?有玩家子弹,有怪物,有核心 啊,这个是怎么来的呢?还有就是我,呃,这个还有一个地方,就是下面这个地方,这个地方啊他有子弹、怪物、掉落物啊,有多这些东西,这个怎么来的?其实这个 就是一个自定义的一个阻挡,我们在设置项目设置当当中进来,进来之后呢,我们左边找到这个引擎,这边有一个碰撞 啊,呃,这个地方有一个碰撞,我们打开这个碰撞之后呢,默认这个地方是空白的。我这这三个是我自己加的,包括下面的,呃,这我把,我把我自己藏起来,有点挡挡视野,就下面这几个也是我,呃加的。 呃,加这个有什么用呢?上面这个相当于对象类型,比如说我现在游戏里面有子弹类型啊,有怪物类型,有掉落物类型,那么我就可以新建一个。呃,这个碰撞类型,比如说啊,这个是一个, 呃,呃敌人,对吧?然后他的默认是怎么想象是怎么样的?默认是阻挡、重叠还是忽略呢?一般是选这个忽略, 那他就有这样的一个类型了。然后这个类型用在哪里?就是说我们把这个关掉一下,我们重新再打开一下。 呃,石头啊,随便打开一个,我们打开一下,这个时候我们重新打开之后就会发现,呃,选中这个 模型,在这个地方我们选择自定义一下,在选择这个自定义的对象类型,这个里面就会多一个,哎,是吧?刚刚见到一个敌人,呃,所有的阻挡都是通过这个对象类型啊,只要对象连接匹配的时候才会触发这个 响应,这是一方面,然后呃第二方面就是下面的这个这个地方就是这个预设预设值, 这个就是说我可以,哎,为了很快速的让一些这个碰撞直接设置会做些预设,比如说我创建了一个怪物,创建一个怪物,我这边已经设置好他跟哪些重叠,跟哪些不重叠,这个时候啊, 我只需要啊,对吧?我一个一个修改可能会比较麻烦,所以这个时候呢,我要用到这个预设,我们已经做好了,比如说核心类的是,呃这样的玩家子弹,玩家子弹他只能碰到怪物,对吧?玩家的,呃,玩怪物他只能碰到玩家和子弹, 然后核心的话他是可以阻挡一切,因为他是玩家控制的一个角色,对吧?还有是这个模型啊,那这个模型就完全的是一个阻挡,大家可以想想要我的这个可视性,因为我要通过这个可视性的一个色线检测来给他做这个描边啊,就做这个描边的这样一个 一个效果啊,这个就要用到这个预设,我们这个地方可以新建一个预设,把它展开,展开之后新建一个预设,这个时候呢你给他起个名字啊,比如说这个是这,这是一个预设,对吧?然后呢 他默认的话有有几个是没有碰撞啊?只只那个只查询或者只物理或者启用碰撞啊,那么说到这个的话,我要讲一下这个原理是什么样的?这个原理就是我们可以看到 我们选择这个怪物,我们把鼠标放到这个这个地方,选择选择这个自定义,我们放过来可以看到有一个一串小 t, 不是,对不对? 无碰撞可以看到他写的不在引擎中创建任何代表啊,能达到最佳的一个性能,尤其移动物体,物体,那所以说啊,任何移动的物品只要勾了这个无碰撞,他的性能一定是最佳的, 那查询的话可以看到他会呃受到这个扫描,重叠光线的扫射等这些的逻辑的一些呃扫描啊,就是查询就 可以有这个查询,通过这个查询呢就能触发一些事件,这个就是查询他会可以看到让数据停留在呃这个 反正他会增加一定一定性能,这么一个意思吧。然后物理,纯物理呢,可以看到它是用于什么钢体约束啊等这些物理的一个响应,然后呢? 呃这个跟这个他俩都会占用一部分的,就是纯查询也好,纯物理也好,他俩都会占用一定的这个呃性能。然后但是呢虚幻的所有的精彩网格里都是同时启用了查询和物理,所以他的性能是最低的, 但是这样,呃呃,这样如果是像性能东西比较少的东西,无所谓的,就比如地面啊,墙壁啊,这个东西本来就应该开的啊,但是如如果是动的东西,尤其像这种的一个机器人,他每一个地方比如一直在动,他要 行走啊,这个时候啊他的性能就会比较呃比较有一定开销了,然后量变、产能质变,对吧?你创建一百个单敌人,一千个敌人,每一个敌人每一帧每一帧每一帧都在动,都在持持,源源不断的动,然后一旦重叠就会呃响应这个事件,所以他就会非常非常的呃 有一些没用的资源出来,对吧?这个就会影响性能。那这个时候我们,呃,据讲这个这个叫, 就讲这个,呃自定义啊,自定义,自定自定义,这个预设这个预设当中,那这个这几个东西我们大概理解了啊?我可以,比如说我一般就是纯查询类的, 对吧?然后他怪物类型,你刚才不是自自己建了一个吗?或者用这些预测的静态,呃场景动动态啊,什么胖类啊,什么这些啊?比如说我选择他, 然后这个地方你写告诉啊,啊?这个啊,这个预设做这个预设做什么用啊?你可以,你可以写一下,然后呢?你可以自自由的这样勾选一下啊,就随随便便的这样随便定义好之后点一个接受, 接受完之后呢?我们回来之后我们再把它打关一下,再重新打开一下,那么他不刷新,这个时候我们再看啊, 在这个上面这个碰撞预设这个地方,哎就可以多了。刚才我们新建的这个自定预设,他会啊帮你把你这个预设全部都给你,呃,根据你的预设啊进行一个设置,这样会非常的方便,这样非常方便,尤其是尤其可以多选,比如说这个模型啊,我这样 啪全选了,对吧?全选之后我这个地方直接搜索一个碰撞,对不对啊?这个时候我只只需要一键修改成他的是自定义,自定, 哎,他所有的这些呃静态网格体,他的碰撞全部都改掉了啊,通过这样的方式啊,就能呃从这个碰撞层面啊做一个性能优化吧。 好,那么以上就是呃本本期视频的全部内容啊,感谢大家的关注,那么咱们下期再见。