这期视频来讲一下武器图片位置大小,旋转和尾三 d 效果的调整与实现。首先我们选择武器的 sprite 二 d 节点,然后打开 transform 选项,然后找到 scale 规模,这个选项 可以通过按住鼠标左键来拖动调整,或者手动输入数值调整大小。 添加好之后我们再打开游戏,这样在游戏中我们就可以拥有一把大宝剑了。 然后讲一下其他选项,这个 rotation 旋转可以顺逆时针这样去调整图片,然后这个 skill 歪斜可以让图片歪斜来达到一个尾三 d 的 效果。最后是 position 位置,可以调整图片的 x y 轴的位置。
粉丝69获赞243

三分钟快速了解特效制作。大家好,前面两期我们把模型的破碎和动画都做好了,那这次呢,我们把做好的这些素材放到游戏引擎里面去,添加一下材质效果,来实现一个简单的空间破碎特效。在场景里创建一个空物体,然后把我们导出的模型动画挂到它下面,接着选中空物体位置归零, 放大五倍,将它的位置呢抬高一点,然后在外轴上给它旋转两百七十度,让它面向。我们随便打开一个 time line, 或者自己重新创建一个。将这个 time line 的 窗口锁定,然后将这个蒙皮模型拖到 time line 上,松开,创建一个 animation check, 接着将这个 fbx 里面的 animation 拖到这个轨道上,松开,我们拖动一下,这个时间滑块动画能够正常播放。将蒙皮模型展开,选中下面的这个 mash, 然后把一个材质球拖放给他,接着我们将这个材质球改成 nb shader, 展开材质球,我们这个模型其实没有多少的参数要调的,先将这个改成模型类型,然后将透明模式设置为不透明,裁剪 cut off。 展开光照功能, 我们将它设置为高级光照 b b r。 做好这些之后呢,我们就会发现它已经产生了一个镜面效果,把整个天空的效果都映射在了上面。下一步呢,就是要做一个溶解,这样可以让这个模型进来的时候稍微自然一点,不会一下子就一个很突兀的模型突然出现。打开材质里面的特别功能,然后往下拉, 我们会找到一个溶解,然后将它勾起来,给它添加一张溶解贴图,它是不对的,这里呢,我们要展开溶解贴图相关功能, 然后将溶解贴图 uv 的 来源啊改成这个特殊 uv 通道,我们使用 uv 二, uv 二是我事先做了一个极坐标,这个在我之前讲数据通道的那期里面有讲过如何去使用数据通道来给模型生成一个极坐标,没有看过的同学呢,可以回去看一下,这里我不再赘述。将溶解强度值前面的最小值改成零, 然后后面这个呢,最大值改成一,我们拖动一下溶解强度模型,有了一个从中心向外逐渐出现的过程。那么接下来呢,我们给它 k 一个动画,把这个 game object 拖到这个 time line 上,再创建一个 animation check, 然后激活这个小红点。我们要记住关键帧在第零帧的时候,我们将溶解强度值拉到一,让它完全看不见,然后我们把这个时间拖到大概零点三的样子,拖动溶解强度值,让它逐渐降低到一个我们觉得满意的这个位置。好差不多吧,零点零五吧, 不要让它完全溶解到零,不然的话它这个边缘也会全部出来,就没那么好看了。这样我们就做了一个模型,先出现再破碎的过程,然后在这个 game object 的 上面,我们右键点击,再创建一个 plan, 旋转一下这个 plan 的 角度,然后缩小一点吧,只要包裹着这个碎片就可以了,大概零点五的样子,给这个 plan 一个新的材质球,然后呢,同样将它设置为 nba 的 展开这个材质, 拉到下面,打开特别功能,我们要起用这个模板视察,勾选它,然后再勾选模板视察蒙版,我们要将它作为一个蒙版,然后我们就要开始做这个破碎之后内部的空间了。在这个 game object 上点击再创建一个 sphere, 创建一个球体,将这个球放大一点, 放大个十倍吧,给这个球一个材质,将材质设为 nb shader, 展开材质,我们给他一个主贴图, 一个星空的主贴图,打开下面的特别功能,然后起用这个模板视察,打开基本全剧功能,然后我们将这个渲染面像改成背面,现在我们就能够看到这个被裁剪掉的球体内部的效果了,也就是一个星空,给他添加一个扭曲效果, 随便加一张造物图,这里做个演示就好,加一个动画 让它动起来。不过呢,我们现在这个蒙版,因为它是一个 plan, 是 个方形的嘛,所以呢,我们要对这个方形做一个遮罩,让它变成一个圆形的空间,再次选择这个 plan。 然后呢,我们给它添加一个溶解,因为我们也希望它一开始跟随这个破碎有一个出现,勾拳起用溶解,然后给它添加一个黑白溶解图,一个圆形的这张图, 大家看添加了之后呢,他就已经把他的洞抠出来了,只是这个洞的大小跟这个碎片还是有一点差距。没关系,我们来调整一下溶解强度值就可以。 好,大概在零点零八的样子,点一下 time line 这个 game object 轨道上面的红点,然后把时间拖到第零帧。然后我们把这个溶解强度值设为一,让它在一开始的时候完全看不见,接着把时间拖到这个碎片已经展开的这个位置,将这个溶解强度值设为零点零八, 然后再往回倒一点点,同样的把数值设为一,这样子在碎片展开之后,这个洞就会出现碎片打开我们就能够看到里面的这个空间了,我们可以旋转一下仕图,从多个角度观察,侧面是没有的, 背面也是没有的,因为我们这个蒙版没有开启双面,如果希望在背面也看得见的话呢,我们只要把这个基本全局功能这里的渲染面像改成 boss, 可以 再简单的加一组粒子,让这个效果看起来更丰富一点。我们把这个碎片单独拎出来一块, 然后呢用同样的材质给到一个粒子,系统播放的时候呢,就感觉粒子的碎片增加了一个简单的空间,破碎就做好了。演示的时候很多细节参数我都没有去调,因为如果调参数的话,这个视频就会做的很长, 大家感兴趣的话自己去调一下。案例呢结束了,照例推广一下我们正在做的特效训练营,有更多有趣的案例在等待着大家,如果觉得有帮助的话,欢迎点赞加关注,我们下期视频再见!

大家好,今天推荐一个让我眼前一亮的 a 二产品, a 二 cold, 我 真的觉得他离我们想象中的未来 a 二形态已经非常近了,不需要下载 app, 一 张照片,一个二维码就能直接在现实世界里看到三 d 内容, 那他到底是怎么做到的?今天我们一起来分析一下他的技术实现,看看在我们自己做项目的时候能学到什么思路。首先是内容生产, 抛弃传统 3 d 建模,单图生成 3 d 模型部分, ai 根据用户拍摄照片,推断物体的深度、几何结构和材质,补全看不到的部分。 这种单照片升模型的模式效率极高,如果有更高要求,他们也有环拍扫描的方式。视频重建 3 d 模型部分则应该是用的高斯剖件技术。 第二步是工程优化,对于单照片生成模型重拓铺优化、布线部分,这一步他们没有详细描述,我猜测他们使用了比较高级的模型构建算法,对生成的模型会剪面、烘焙、贴图、压缩,体积控制在 gmb 以内,确保手机网页也能流畅加载。 最后分发,所有模型都放在云端底层,走的是 y b 二浏览器,直接调用手机原声。 a 二能力扫码即看效果。这么赞,价格肯定不便宜吧?对的,这个产品的订阅费确实不低,但我们学技术不是为了原样照抄他的商业模式, 而是去理解他背后的实现思路。怎么用生成式 ai 版?三低内容生产极度简化,怎么用? y b 二,把分发门槛降到几乎为零, 以及怎么在效果和工程可落地之间做取舍,把这些拆开吃透,哪怕不做同样的产品,也能用在我们自己的 a 二、 ai 或交互项目里。有没有启发到你?评论区聊聊。

朝气正大,边 藏着娇,无人笑,直言不。

嗨,大家好,我是大海, 现在大家看到的是一个这个车和和这个公路,就车在公路上行驶,然后他会沿着这个公路行驶,然后今天给大家分享的就是说 我们怎样去实现让这个车啊,然后呃,以及这个船啊,在太空船啊这些,以及这个过山车就是怎样才能跟随我们的这个路面去进行一个移动。 好了,大家看看最高效果,然后我再来说 好了,其实这一个呢,我们 首先要做的就是说我们要先把我们的这个路径给实现出来,然后大家可以看到我这里面其实用了很多个端度来拼出来的,大家可以先看一下 这个就是事先规划好的这个啊,路线是一段一段的这样拼接的,然后他有曲线,曲线部分主要是贝塞尔曲线来做拼接的, 然后这样一段一段的。好,然后我们就让这个车啊,然后就沿着这一个路进去进行一个移动, 然后呃,我们大家可以先看一下我这个先看一下这个线是怎样去画 每一段的,这个线其实是用这个 landlin 版来画的,然后每一条线它有四个点,四个点组成啊,比如这一条线 啊,他有一条、两条、三个点、四个点,他有这四个点组成的,这大家可以看到,对,有这样四个点然后构成的,这样的话你就可以去任意的去弯曲他。那么现在我们来看一下这个线是怎样去绘制的, 大家新建一个,新建这个脚本,然后我们打开这个脚本,其实它比较简单, 它的话它就是一个 landed 定义,然后它的四个顶点,然后用这个贝塞取线, 这里面 d 的那个被下取线的四个方法啊,四,呃四个点的方法,然后通过这个方法呢,你就可以通过这个 方法,然后来计算,就是说你四个点,然后通过这个贝塞尔的这个函数计算出来的 路径上的点,就是我们这里虽然说四个点,但是你通过这个 batter 曲线的话,你就能够计算出很多个点。 那如果大家不会计算这个 base 二曲线,我前面的话有前面有提到过,我看一下在哪里 啊?大家可以看一下这个空间中曲线的实现方法,可以看这一个 啊视频。这上面的话主要就是说了怎样去实现这个贝塞尔曲线以及呃物体沿路进移动。但是之前这一个版本比较粗糙, 这次这个版本功能比较全面一点,并且脚本的话也给他区分开来 好了。那这一个的话,它主要就是说绘制这个 base 曲线,然后获取到它上面的路径上的所有的电,然后并且把这个线给绘制出来, 然后这样的话这个一条一条的这个路径啊就能够绘制出来,绘制出来以后我们就可以通过,就比如说我拷贝搞出来给大家示意一下, 比如说我有这一个路径,然后他的其实点在这里,然后你想把它拖到别的地方去,你就可以拖他的这个中间来点, 可以拿拿到这里来,你看你这样移动这个路径上一点,你就能够得到得到这个曲线,得到这个不同的曲线, 然后你就可以把这些曲线呢,根据你这个路面这个路的弯曲情况,然后 把它给调和这个路保持一致好,然后这个有,那以后 有拿路径上的这些线,然后我们需要知道路径上的点,所以我定制了这么一个 pass 的这个内, 它里面呢就是要找到所有的这个 number, 找到这个 number 呢,他把所有的 number 里面的这个点,路径上的点给他全部加到这个历史头里面去。好,所以这个里面就是所有路径上的这个跑车型都放在这里面了, 这样的话我们所有路径上的这个点都有了,有了以后我们再去看一下这个车车上面就有一个, 这个就是怎样去让他沿沿这个路径去移动。 呃,然后大家能看到我这里面用了三个这个媒体,一个就是循环一次,第二个就是一直循环,第三个就是来回循环, 这个呢就是从头到尾,第一个意思就是哎从起始点,然后到终点,然后就结束了。然后第二个呢就是说从起始点到终点,然后他到终点以后,然后哎他又再从头开始,然后从头开始这样一直循环。呃,后面这一个呢? 后面这一个呢?他是比如说他从开始点运行到终点,哎,然后他又从终点运行到起始点,这样这样这样这样这样来回的, 然后这些计算方法和 这个视频里面的是一样的,大家可以去自己去看。然后至于不同的就是说我把它给拆分成三个方法,因为我那一个视频他就只有一次的,然后这个的话我用一个媒体加了这两种类型, 然后大便是大概就是说我也在这顺便给说一下这个字段主要是定一个速度, 因为我们知道我们在这里面,我们知道他路径上的所有的点,然后我们通过点我们就能算出他的一个总的路程,就说他的一个距离路程长度, 然后这一个呢就是我们的我们要通过这一个,通过这个内获取到所有点,所以我们要点击这个呃变量,这个呢就 它的运动类型,这个就是它路径上的所有的点,路径上所有的点。 好,然后呢这个就是总的长度,就是路程,然后这这个是当前我们已经走过的路程, 这个能表示当前我们走到的是哪一个点,这个就是他的一个方向以及他的一个呃位置,他的一个运动的方向以及他下一就是说下一针他应该所在的一个位置,那二十的话,二十的话是他的当前的当前应该运行的一个路程, 那么开始的时候我们就进入,我们先让他一次都是从头到尾。好,那我们当就当前的这个路程啊为零,然后总成 总的路程为零,就把这些先置零,然后我们再获取到,你看获取到这个 pos 里面的这个所有的路径上的点,获取到路径上的点以后,我们就要开始计算长度,长度就等于每一个点 就每两个点之间的这个距离,所以我们给它加起来,把所有的两个点之间的这个距离给它加起来,就能得到总的长度。 好,那么现在总能做成有呢?我们就先来看这个。 呃,前面这个是测试,你可以去动态改它的一个速度和动态改它的速度, 你按下一二三四,呃对应不同的速度,大家可以去看一下,然后这个 s s 表示我们当前这一针,这一针它应该运行了一个这个路程,就等于什么?因为我们定义的这个速度啊,它是一个千米每小时,如果你换算成表的话,大家能看到它是一千除上三百六十秒,就等于十除上三十六, 所以的话我他乘上十除上三十六,然后就能得到他的每一秒。但是我们每一针的我们是在 fact update 里面去更新,在这里面的话它的是时间是固定的,所以我们选择在这个 fatic 的 update 里面去更新, 然后这一个呢,就是如果你不设置啊,就是固定的这个,呃,调用这个函数的一个时间,你不调用的话,他默认是零点零二。好,这样的话我 们的速度,然后速度,然后再加上当前这针的速度, 然后就能够得到,就就说他的一个路程,对速度乘时间的路程就说得到他一个当前应该在这一针他应该运行的一个路程, 然后呢我们就判断了,哎,如果我们当前的一个速度啊,呃,小于总长度,说明我们还没有到终点,还没到终点的话,我们就进到这里面去, 进到这里面去呢,当前速度就等于下一针的点,然后再减去上一针,就是下一个点,然后减去上一个点, 然后就能够得到当前的。呃,当前就是计算的一个路程啊,就是说你根据这个点来算的话,但,但是就说如果我们当前,但是下面 加把以后,我们要去判断,因为这个是我们应该要,要,也就说要运动的一个路程,然后这个呢是我们去加两个点之间距离呃得到的一个路程,如果当前的, 按道理就说你当前这个路程啊,你一定不能大于他,因为你这个你是按照时间算,你按照你这个速度算,你在这,在这个时间点你才能运到二十,运行到二十,然后你发现你在这里呢,你,你已经运行超过二十了,对吧? 运行超过 s 说明你运行就是在这,这样,你这个呃速度呃超过去了,超过去以后你得给他减回来,你不减回来你这个越加越大,所以你要先给他减回来,然后呃方向呢,就等于下一针,减去上一针的这个方向限量,然后位置呢,就等于开始 这个点,然后加上他的运行的这个,嗯,哦,减去减去他超过的他超过多少,然后就给他给减回来,必须得给他减回来啊。好,然后减回来以后我们就 就可以就可以给他扶上直了。好,然后他的一个旋转,也是旋转的话,因为你要保持他的一个朝向,是跟随这个线的一个朝向,所以你要判断用这个。呃, 可他你这个 look 在推行,然后方向呢,就等于他运行的方向,就说他的一个俯卧的就等于我们运行的这个方向,然后他的啊 up 方向呢,就等于他自己本身的一个 up 方向。好,然后呃这个呢是他的 当前,就是说我们还没运行到终点,然后我们就抵达终点以后呢,我们要判断了,如果我们是只运行一次,然后我们就不管,然后假设我们是一个路谱循环啊,就说我们路谱循环,那么 我们重样的,我们再重新计算一下这个点,就把这些路程归零,然后这些全部呃重置,然后再去获取到他路径上的一个点,那他又可以去循环,去移动。呃,那如果你是 u u 这种类型呢?然后 他的话就说你,呃,比如说你要运行到,呃悠悠的话,就说你从这个起点,然后运行到终点,然后 你就要倒着倒回来,倒回来的话你这个路径上的点原本你是正着走的,对吧?现在相当于说你要把你这个路径上的点给他翻转,所以的话就是说我们判断如果 当前的这个位置,哎距离距离开始的这个点很远,对,连距离开始的点,就比如说这是开始的点啊,这是结尾的点,然后比如说当前车运行到这里,然后哎他到 零点的距离大于大于到最后一个点的距离了,那么他就要翻转,他就要翻转,因为他要把这个点变为第一个点,然后这里变最后一个点, 所以的话他就是呃给他翻转一下,翻转过来呢,又在继续运行,继续运行呢,因为你现在把它置为零了,然后你总长, 呃总长度也算了,然后字为零,这些 index 为零, s 为零的话话呢,它在这里,它就可以在这里又再继续 去循环,然后这个是车的。呃,我再再扩展一下,给大家看一下那个循环的, 然后为了效果更明显点,我把这个路径变得变得,呃更奇怪一点, 比如说,比如说这样的录,然后 好,这样的话他不是一个水平的,大家能够看到你即使就是说有坡度, 那么我现在再来一个这个立方块,立方块就 比如说它是一个这个车,然后把这光度近, but that 好 pass 放进去,然后他放进去,然后这个立方块,他就用这个速度的话给他一个每小时五公里, 然后我们分别拷贝两个出来,不用,我直接 靠背一个,这一个呢他是一个路虎,然后呢?这一个呢?是悠悠,好,这样的话外方面看,我们给他不写不同的这个 速度,避免让它重叠在一在一起。好 好,这样的话大家其实就能够呃,这个太太强了,很不明显,对吧? 这个速度也太慢了,然后五十、六十、七十,大家能够看到一次的他运行到这里就肯定会停止, 然后呢这一个呢?他肯定又会从起始点,你看这个要来了,哎,你看他从这里就开始了 大,大家能看到这个 u u 的话,你会发现他又从这里走过来,哎,但是这个他为啥会有点问题呢?这个,嗯 啊,好像是因为这同一个路径,然后他每一次预算的话,他会获取到这一个, 呃,好像会出问题。我们这样,我们给他呃,给他这个三条路径 来,我们 好,我们生成这个三条路径,然后 每一个对应的不同的路径。 好,现在我们来看一下三种不同的这个运行情况。第一个的话是运行到终点就停止,第二个的话,呃,运行到终点以后他会开始,然后你看这个都已经折回来了 啊,这样的话就没有问题。刚才不能用同一个,用同一个对象的话, 用同一个对象的话,他计算的时候,计算的时候,因为你去调同一个对象的话,他这个上面这个点他会呃,会出现问题啊,因为你这个, 比如说你同时都去掉到他的一个 pass, 然后呃,他在 pass 里面,他这里还清掉,然后他没办法,就是说不知道你是什么时候去掉这一个点的,然后就会导致呃,会出现这个错乱。 好了,那这样的话应该没啥问题,那么我们今天的这个分享到这里就结束了。

大家好啊,今天讲的是添加角色的动画组件,实现基本的行走动画。 今天需要用到的资源在 unity 资源商店里的二 d 角色免费资源里添加后,在 unity 中打开,在 pack package manager 里面选择 my asset, 然后选择下载并导入。我已经下载好了,直接导入就行了。 选择导入,找到 idol 文件夹里的 hero idol fund, 放到场景里作为玩家。 之后添加我们需要的二 d 杆体,取消重力,锁定这一轴。这个上个视频讲过之后,我们要创建动画,找到 windows 你的 animation 或者快捷键 ctrl 加六, 就会打开做动画的视图,我把它拖过来 animation 视图, 然后我们选中 player, 开始创建一个动画。动画文件的后缀是点 a n i m。 我们新建一个 animation 的文件夹来存储这些动画。 新建第一个动画 idol, 也就是没有任何操作的情况下的动画,玩家处于放置的时候的状态, 时间轴上表示秒,这跟剪辑视频的 k 真动画很相似,需要把图片拖拖进来。目前布局不好,我改成适合自己的布局。 左上角是 sense 视图和 animator 动画状态,即视图。之后会讲 左下角是控制台游戏视图,动画视图,右边是 hierarchy 视图, partics 视图和 inspect 的视图,这是 我常用布局这个看个人之后我们把 idol 前视图导进来作为第一帧,这样就算完成了一个动画。 之后我们去新建玩家向后走的动画, 然后把连续相同的图片导进来,他会形成一个动画剪辑。在 unity 动画视图中,如果你导入多个具有相同名称的图片,他们会自动组合成一个动画剪辑, 这个功能被称为序列振动化。然后我们把拉长至一秒,每一秒一次循环运行看效果,这样我们相 后者动画就算完成了。 再次创建一个动画,玩家向前走 一样把图片都拖过来,会形成一个动画剪辑,拉长是一秒,然后运行看下效果好可以去创建下一个动画。向右走动画, 一键导入图片,拔毯子一秒, 然后把文件夹改一个名,玩家向右走,然后新建玩家向左走动画 创建好之后,发现文件夹里并没有向左走的动画,那我们怎么办呢?右键打开向右走的文件夹路径, show in explore, 打开后找到向右走文件夹,复制一个,改名为向左走。里面图片我们只需要翻转一下就可以了,可以用 ps 或者用像素化工具那个 aspect 来翻转。 之后我们先把点 matter 文件文件给删除掉,这样子更好导入,剩下这些可以导入 except。 把图片选选中, 拖进来,同意之后会变成一个像针动画一样的,选中每一个针,然后进行水平翻转, 然后只要 ctrl 加 s 保存就完成了,非常简单。 打开文件夹,可以看到我们的里面的图片已经变成向左转, 一到 unity, 把左转的图片全部导入到动画视图里面,拉长至一秒, 然后一起看效果。嗯,可以每秒一个循环。 其他的动画图片都是比较清晰的, 我们看到画面是有些模糊的,这需要修改一下图片的设置, 选中所有图片,把 filter mode 改成 point, 这样就应用就比较有明显的颗粒感了。 一起要所有动画看一下。 向右走没问题,向左走没问题, 向前向后。嗯, 好了,动画基本就完成了。之 打开 animator 动画状态机 animator 在 windows 下面的 animation 里面的 animator。 animator 是 uni 中的一个组件,用于创建复杂的动画状态级。他提供了一个可视化的编辑器界面,可以让开发者可以创建和管理动画状态过度条件和动画参数。左边的 primaters, 也就是参数,用于设置过度条件, 例如输入的触发器布尔条件或浮点数条件与触发条状态之间的过渡。 橙色的那条线是表示游戏开始时先进入哪个动画。默认是爱豆动画, 剩下走路动画我们先把它删掉。创建一个疯妞。不能的吹,不能的吹。 混合数是英语中用于控制动画混合的机制,通常用于角色控制,特别在角色的动画行为需要根据不同的输入,比如移动速度,转向方向等进行变化的情况下,通过别的处理, 你可以根据这些输入参数值来控制角色在不同动画状态之间过渡和混合,从而实现更加逼真和可交互的角色动画。 创建两个浮点,竖条件,用于状态之间的过渡。水平移动 horizontal, 垂直移动 multicle。 双击进去, 选择适合的混合类型,比如 e, d, 二 d, 我们选择二 d, 然后插数。我们选择好好一张头和 vertical, 之后我们把动作加上去。对于每个天 加到 brandtray 的自动化,你可以设置权重和过渡规则。 我们可以拉动火力粘土的滑块,看看它的范围是多少。根据它的范围,我们再修改 x 轴的值,向左走是肯定是负一到零,那么向右走的动画我们肯定是零到一, y 轴不变都是零。 之后我们添加向前走和向后走的动画, 乱条件是 y, x 走不变都是零,然后向前走 y 一定是负一,向后走 y 是一。 之后我们回到上一层动画状态机, 给 idol 牵一条线,连接到 moment, 并添加一个浮点数条件 speed 判断速度,如果速度为零,那就是他的待机,如果速度大于零点零一, 那他就是在移动。同样,我们还需要从木门特牵一条线到 idol, 如果速度小于零, 零点零一,小于 less 小于零点零一,这样他就回到了爱豆动画,这样我们动画就差不多搞好了。回到场景, 点击 player, 给它绑定一个脚本, player moment 就用上一个视频的脚本吧, 这个就是上一个视频的脚本,很简单。那我们现在需要的是引用动画组件 声明一个 animator 的变量,然后获取玩家的 animator 组建。 然后我们顺便答一下目 x 和 m y 的值,看是否是负一到一之间。 保存回到微信群运行,看控制台值,果然是一到负一之间,但是玩家还是没有动画回到交班。现在我们需要给动画状态机的浮点数条件都负值 s q l magni q 的是一个限量的平方长度。 在 unity 中, s q r macneq 的是一个用于计算向量长度的优化方法,它避免了求方根的开销,因为计算平方根可能会比较消耗性能。回到 unity 运行游戏 好了,动画有了,然后我们可以打开动画控制器视图可以看到数字的变化水平,移动是一到负一之间,垂直移动也是一到负一之间, 移动的时候速度不为零。 然后我这边有几个问题需要修一下,其中就是过渡箭头要去先勾选 has access 看看,如果动画没播放完的话是不会结束,会影响我们的移动效果,然后这样子就比较自然了。还有个是我的摄像头问题,之前的摄像头放的太大了,所以人肯定很小,修改摄像头的晒子改为一, 然后重置全是缝,然后 z 改成负一,这就比较正常的。好了,觉得视频不错的可以点个关注哦,下期再见。

大家好,今天我们给大家讲解的是极速展 uv, 在学习过程中有不明白的可以给我们留言,我们会一个一个进行回复的哈。这节我们来调整一下模型的导入,然后呢,我们首先将一个这个爱豆啊拖到我们场景中去, 嗯,然后我们在这里点击创建一个 q 部,这个一个默认的一个 q 部单位,我们一般把它当成是一米的一个单位, 嗯,比如说我们在三 d max 里面一米一个单位进来的话,就应该跟这个 boss 是一样的,在 pro 加个点里面选中这个模型,然后点击 model 这一项,把它这个缩放音质修改一下,改成零点零一,我们再来看一下这个比例是否是否正常。 首先我们这个角色,我记得我们创建的时候是一米七还是一米八的样子,那我们把这个 q 部跟他弄到一起来对比一下,看他是不是符合我们的预期。呃,感觉差不多啊, 我们把这个 q 部来跟他比一比,这个 q 部是单位一一米,我们再把它拉高一点, 可以看到一米七,一米七,一米七一米八的样子,好,那就是说这个比例,嗯,他的那个 mother 的 factory 以这个零点零一的方式来就是合理的, 那么同样其他的几个模型数据也要做同样的一个设置,把这个缩放音质改成零点零一。 好,全部修改完毕, 接下来我们来看一下他的动画,找到这个挨到的动画,然后我们点击播放,看到人产生的轻微的一个移动,说明我们的动画数据也很好的进来了。 按选中他的网格物体,我们把材质连接上面,嗯,这是我们给一个 status 一还是黑色,然后 status 二是一个黄色的啊,我们就用这个 黄色吧。嗯,我们调整一下场景的一个光照,这是一个平行光,我们可以把它的颜色啊,强度啊,可以尝试的修改一下,然后把它的旋转调整一下就可以了。 然后选中这个 idol, 我们回到他的第二个面板,是绑定位置里面,然后这里的话他没有 no ever, 当前是我们要给他创建一个 ever 来进行,嗯,来进行对他的一个动画进行交互的一个处理, 然后这它也产生了一个艾力梅特主见。现在,嗯,产生这个主见呢,它需要一个孔丘了,来控制这个来管理它这个动画的切换。好,我们修改,然后点击那个,呃,点 比较快啊,每一个都做这样同样的一个修改, 我们按 ctrls 将场景进行保存一下,嗯,名称就叫 t 八百,放到生死这个文件夹下面来, 嗯,然后场景这个盛世文具甲里面出现了一个 t 八百,把默认这个压力场景给删除。 好到这里用力体的一个最初的准备阶段就基本的完毕了,到下一阶段就会开始有一点点复杂,有一点点难度啊,但是没有关系,只要跟着一步步做就可以了。我们下一节从他的动画模块开始关注,我们看后续内容。

如何把五万面的模型压缩到五十个面,性能提升一千倍?大家好,我是老雷,最近我们的微信精品商业游戏项目正在尝试用 ai 替代人工进行建模。在这个过程中,我们发现了一个 ai 建模普遍存在的问题,就是生成的模型面数过大, 而微信小游戏对于渲染性能的限制又比较苛刻,过多的模型面数下载费时,运行又会占据更多 gpu 显存和渲染时间。 经过多次测试与优化,我们不仅完美解决了模型面数压缩问题,实现了五万面到五十面的跨越, 更跑通了 ai 建模到压缩优化到适配微信小游戏的完整流程。今天就把核心方法和实操步骤分享出来,希望能帮到同样在开发微信小游戏的你。以下,我们从 ai 建模过程、核心挑战、商业解决方案三个维度展开,详细拆解我们实现可用 ai 模型的过程。 首先,我用 ai 帮我模仿黄石战争的美术风格生成的歌布林小屋图片,然后我们利用 ai 大 模型工具帮我们生成了对应的三 d 模型。于是我们就遇到了开头我们所说的问题, 也是市面上大多数 ai 建模工具的通病,就是模型面塑爆炸,而要解决这个问题,就需要降低模型面塑。于是我们进行了这样的尝试。 一开始呢,我们把模型面塑降到两万面,渲染出来的效果尚可,但是考虑到这个小屋只是游戏里的一个装饰物, 而我们开发的又是微信小游戏,没必要用这么高的面数,于是我们尝试将面数减到一千面。抽象的事情发生了,模型拓普开始扭曲,仔细观察你还会发现破面, 于是我们又尝试将模型面数提高一点,看能否解决问题。正如前面所述,对于微信小游戏,模型面数不能太高,于是我们尝试加到两千五百面,效果稍微好的,但是还是有明显 的瑕疵。作为我们幽梦创客的精品小游戏项目,老雷我是不能容忍这样的情况存在的。于是我们另辟蹊径,设计了我们自己的一套工作流程。 废话不多说上效果,这是我们优化后的模型,连场景本身的几个三角形加起来一共才六十五个三角形,换句话说,我们只用了五十几个顶点,就做出来几乎跟五万个面的模型基本差不多的效果,然而显存占用却降低了一千倍,这才是一个场景装饰物应有的样子。 当然,这只是我们微信精品商业游戏的一小步。我们的项目是一个集合了卡牌收集加即时战斗加肉鸽玩法的精品微信商业游戏, 采用商业游戏项目的团队方式进行开发,由我亲自带队,同学们各司其职,同时又互相讨论项目,完全还原了游戏公司的团队开发场景,基于 get 工做流实现团队协助。 通过项目,同学们不仅学习到了开发知识,还深度参与了团队项目开发和管理的过程。并且通过我们的问题研究,到集体讨论,到解决问题,到代码复审,到经验提升的一轮轮迭代,来提升大家的项目实战能力。学习最怕的就是一个人奔跑, 所以我们的项目采用的是集体开发方式,遇到困难了总有人拖你一把。这种学习体验不是随便参加一个什么公开技术交流群能获得的。如果你不是只想照搬一个山寨游戏,而是想真正创作一款精品游戏,在这个过程中掌握商业微信游戏开发、优化、上架运营的全流程。 那就参加我们幽梦创客独立游戏创作扶持计划吧,他会从游戏创意、游戏美术、技术框架、可附用的上线项目案例、游戏上线支持、游戏运营支持等多个方面全方位的帮助你 详情可以私信我了解。下期我将用我们今天分享的 ai 模型解面技术,替换我们现在预览场景中的同类模型,这样我们就拥有了一份版权独立的美 数资源。感兴趣的话大家可以点个关注,这样可以收到我的更多视频更新。我是老雷,一个十四年游戏大厂研发经验的 up 主,关注我,带你学习不一样的商业游戏项目技能。



哈喽,大家好,今天给大家介绍优益体这个软件,优益体的话大家都知道它其实是作为一个游戏开发软件在被使用的,但是其实优益体的话近几年也在逐渐的用于工业上面的数据孪生,那么 接下来我就带大家来看看如何去新建一个数据孪生项目,用于工业上面来去制作数据化的场景。 那么首先呢 unity 的 话,它其实不只是 unity 一个软件,它其实主要的一个引入的一个软件叫 unity hub, 在 unity hub 里面我们要去去下载它对应的这些这个 unity 这个编辑引擎,这个编辑器版本, 那么比如我这里下载的是一个二二版的一个编辑器,那么接下来我就要去根据模板去新建一个空白项目。那么一般来说,我如果说简单做一个呃基于 unity 的 一个数字燃烧工业数字燃烧的一个项目的话,那我就选择一个 universe 三 d, 然后我直接选择创业项目,这个时候我就可以开始启动我整个项目的一个呃呃新建的一个过程了, 那么这个时候他正在新建项目,接下来他会打开他的编辑器,然后这个时候我允许了冒风险去打开这个软件进行编辑,那么这个时候我又调出了 unity 的 一个主要的编辑器的一个软件界面, 他这里会加载他 unity 里面所用到的各种呃开发包,包括语言包啊,场景包啊,包括呃字体包啊,各种场景类的一些资源 等。它加载完毕之后,这个时候就打开了我们的工作项目。 no, 这个 u e t 的 话,目前呢是一个纯英文版本, u e t 的 话,它是支持汉化的,你可以去找对应的汉化汉化包,然后去把它的软件界面汉化成中文。 但是呃,在这里的话,其实我觉得用英文原声的英文其实用的是比较习惯的,其实看英文其实是比较容易上手的。然后稍等一会,他这个加载的时候是比较慢的,尤其是首次加载的时候, 然后这里我们简单快进一下, ok, 那 么接下来我们现在就打开了 unity 的 软件界面,这个是它的编辑器界面,我们简单的来看一下这个界面,这个界面的话 左上角这边是菜单栏,包括文件呀、编辑呀、资产呀,然后这些主键呀、服务啊,窗口帮助之类的一些简单的一些菜单。然后右边的话其实是一个,我们先看左边,左边的话是我们去编辑场景主要的一个目录数,大家可以理解为是一个目录数, 我们比如说,呃,我们这个是新建的一个场景,那么在这个场景底下我们添加了主相机,对吧?添加了光源,然后添加了一个呃,这样一个坐标系,然后同时我们还有这个地面,那么 我们点击这个之后会会发现右边它出现了一个属性栏,那么其实右边这个 impact, 它其实就是我们对应的这些我们创建的所有这些场景中的物体,它对应的属性我们可以在这里去编辑,比如说物体的位置呀,然后光源的大小啊,然后相机的角度啊,这些都可以在这边属性栏里面去编辑。 那么中间这个那大家显而易见,它其实就是我们的一个主要的一个编辑窗口,比如我们可以在这里去拖动我们的相机视角,然后在这个窗口当中我们可以去按住鼠标中间可以去移动这个啊,平移这个试图,然后我们摁动,我们滑动滚轮可以去缩放这个视图大小,然后我们 按住鼠标右键可以去旋转我们的视角,那么大家会仔细看的话,会发现左上角这里有一个 scene 啊 scenes, 还有一个 game game, 其实,那么其实这两个我们待会就可以看到区别在哪。然后我们先看左下角下方的话,我们可以看到它其实是个 project, 这个是什么呢?这个其实就是我们整个这个,呃用一体这个项目所用到的所有资产,这个资产是包括什么意思呢?资产 意思就是我这个 u 一 体这个数字燃烧这个场景项目里面,它包含了这样一个信,这样一个场景,那么它还包括我这个对这个场景做的一些设置,然后还包括我底下我这里面所用到的脚本, 我用到脚本就这个是脚本的意思,包括我用到图标,包括那么这个 size 里面,它其实就是我这个整个这个数字燃烧项目里面所要用到的资产。比如说 我想要在这个这个场景里面去导入一个模型,那么我就会把模型先放到这个本地的这个,呃,在这个资产包里面,我就把模型先导入到这个资产包里面,拖入到我们的目录里面去, 再把这个,呃,然后这个时候模型就会出现在我们的场景当中了,我们就可以去编辑,然后再通过属性去编辑这个物体的位置啥的,然后那么其实还有就比如说,比如说我要在这个场景当中去设置我的 ui, 对吧?像你打游戏的话,我们会有那种,呃游戏的那个准心啊,然后包括这个呃方位角啊,比如包括数值啊、比较速度啊,然后子弹啊、弹量啊啥的。你这些 u i 这些字体,你可能需要用到微软雅黑啊,或者说一些特殊的一些字体,那么字体的话也是通过我把我们从网上下载的那个字体的呃格那个对应格式的文件直接放到这个 set, set, set 这个, 呃这个资产包这个文件夹下面去,然后再把这个字体去导入到我们这个呃这个场景当中去,然后就可以实现一个更新。你不只是我们刚刚讲到,对吧?我们的三 d 模型,然后我们的字体,然后其实还有包括像我们的纹理,然后包括还有像, 呃还有的话就是我们的脚本,因为比如说对于 u 一 体里面,我们比如说我在 u 一 体里面 导入的一个工业机械臂,那么这个机械臂如何在这个场景当中实现一个呃实现一个运动呢?那么我我就要去对它,对这个机械臂做一个呃,通过脚本去对它做一些算法上面的一些呃脚本开发,比如说我们做运动学正解,做运动学逆解,那么 那这个时候我们就需要通过它 u 体里面自带的这个脚本去实现了它在 u 体里面我们可以直接在右键, 你会发现我们在这个目录数字里面,右键会发现它有很多个选项,比如说我们创建一个 empty, 我 们创建一个空白的一个一个物体,对吧?我们创建一个空白的物体,那么你看这个物体就会出现在这个这个场景当中,只不过这个物体它是没有形状的, 因为我们这个物体我们没有指定它是任何形状,对吧?我们只指定的它有这样一个物体,它的坐标,你看会翻看到它有一个坐标以及它的旋转轴。 另外比如说我们在这里去新建其他一些项目,你看他可以新建一些光源,你看这是光源,对吧?然后声音啥的,以后 ui 就是 新建 ui, 比如说我们可以简单的去新建一个文本, 对吧?那这个时候你看这个时候我们就可以,呃,然后他这里是要导入他对应的那个文本的那个那个包,然后这里我们先不导入了,然后我们先看,然后我们先再看看别的, 然后我们看,然后我们在右键,我们看看这里,然后在这里你看还有相机啥的,然后然后这里,然后这里的话,然后这里的话我们看到这里的主键,这里来在主键,在这里,然后在脚本, 因为这是一个空白项目,可能现在还加不了脚本,我在这里在这里有脚本 y 脚本, 然后然后我们先来看这样一个东西,那我这里点运行之后,然后这个时候它就在编辑它这个 u v t 的 这个功能项目, 编辑完了之后,你会发现这个时候主要的这个场景编辑器,它,它直接自己跳到这个 get 的 一个界面,那其实也就是什么呢?就是说我们是在 sim 里面,在这个 sims 里面去编辑我们的场景,编辑完了之后我们点运行,这个时候我们就进入了游戏模式, 他是这样一个意思,然后在这里游戏模式里面我们可以去设置他的这个分辨率啊,然后包括显示器啊,然后包括那个显示哪些东西和不显示哪些东西。 然后这个其实就是对 u 一 体这个界面的一个简单的一个介绍。呃,然后,呃具体更深入的后面可能会再结合具体的工程项目去讲。