大家好,让我先自我介绍一下。我叫苏太亮,来自西山居。我现在主要负责剑网3:指尖江湖的优化。今天给大家分享的是指尖江湖项目的优化案例,《剑网3:指尖江湖》的优化。我们先来看看什么是动态骨架?我们可以在这里看两个视频。这是我记录的指尖江湖的角色创建的视频,这是藏剑山联合你们老板,你可以留意他的衣服,头发和振荡效应和袖子,我把从角色在这个阶段,你可以看到整个过程中运动的头发,服装更加真实、自然,动态骨骼的效果就是用在这些地方的,而且基本上是实时模拟动态骨骼的效果而不是艺术K动画。当然动骨架和动作的结合也很好,比如把叶莺的衣服吹起来的动作,效果也不错。接下来,让我们再看一段视频,比较一下叶颖的服装和发型。在这个视频中,我将所有的运动骨架效果都禁用了,相信大家可以看到区别,在整个旋转过程中,他的头发和衣服都很硬,没有运动骨架的乐观模拟,效果很差,很僵硬。
什么是DynamicBone?DynamicBone实际上是一个名为DynamicBone的插件,通常用来模拟丝带、袖子、裙子、头发等的摆动效果。效果非常逼真,可以大大节省k帧动作的工作量。它广泛应用于手指湖,如玩家,NBC,坐骑,各种有趣的物体和吊坠。这是一个应用非常广泛的函数。右边的图片是指尖的一个字——“吉北清”。我已经标记了所有的地方,动态骨架是用数字,1,2,3和4。有的长,有的短,都有动态效果。让我们来感受一下动态骨架的使用,假设我们想要给予最长的爱此时,我们首先找到ribbon根的位置,在对象树中找到它的根,然后将它拖到动态骨架组件的节点上,并配置参数。这很简单。参数有很多,如阻尼系数、弹性系数、干燥系数、惯性系数等。阻尼可以被认为是一种阻力或摩擦,它降低了速度,弹性可以被认为是把你拉到一个目标位置,有各种参数,如果你感兴趣,你可以自己研究它。
好了,现在我们知道如何使用动态骨架,让我们看看简化版的模拟,整个过程中动态骨架的简化模拟。让我们以ribbon为例,假设它有5个节点。在最后一帧中,它处于垂直状态,然后在当前帧中,它向右移动了一点。当然,它也有一点偏移和旋转,这一般是由于模型的位移或动作引起的。除了根节点,其他节点将从最后一帧的位置模拟。然后,根据各节点的参数,如惯性系数、弹性系数及上述各参数,对各节点进行相应的仿真计算,得到最优位置。最后,这个位置会更新到每个骨节点,并根据父-子节点关系、位置和最新位置来校正旋转,使整体看起来非常自然。让我们看看每一块骨头在这个过程中都有什么作用。核心代码集中于Update和LateUpdate组件。在Update中,它需要为每个骨头重置它的位置,在LateUpdate中,它做了大量的模拟,并最终设置为骨头,正如前面提到的。这里列出了一个完整的模拟。除了上面提到的阻尼和弹性,以及风力和重力的各种模拟操作外,印刷体积比较大。
假设场景中有30个角色模型,每个模型有10个骨链每个骨架链10根骨头,总共3000根骨头,20个玩家在指尖竞技场加上坐骑,NBC等等,3000根骨头,这是一个正常的数字。这么多骨头,每个骨头都要做很多事情,表现如何?我们可以从优化前的数据开始。这是mi Max2在动态骨架组成中的CPU消耗,占了大约10%的CPU消耗,这是一个非常大的开销。这个模块占CPU总消耗的十分之一,这是相当大的开销。为什么动态骨骼如此耗费资源?这是一个很大的数目,可能总共有3000块骨头。这很复杂,需要很多模拟。值得一提的是,在整个仿真操作过程中,每个骨架都需要获取和设置世界坐标、世界旋转、世界矩阵等世界变化。
当涉及到与世界变化相关的操作时,要特别注意Unity,因为这可能是一个耗时的操作。举个例子来说吧,在Unity中获取和设置世界的变化并不会在顶层使用世界坐标,而只会使用局部坐标。因此,每次获取或设置都是基于父节点逐层进行的,因此整个过程非常耗时。《指尖》中的许多骨头都有很深的层,就像这个一样。我已经检查过最深的层大约是20层,这确实有动态骨架的效果,所以它的层次非常深,计算世界坐标和旋转的成本非常高。层次越深,消费就越多。最后一点是,模拟是在Update和LateUpdate中完成的,需要在每帧的基础上完成,这意味着有固定的正常性能开销。现在我们知道了为什么它是如此的资源密集型,让我们看看我们为第一个版本的动态骨架所做的优化。让我们从以下三件事开始,这是我们在做优化时经常讨论的三个原则。首先是优先级,是的21、不做吃力不讨好的事,浪费的工作是最不应该的,尤其是在业绩方面。如果你不用做就能做,那肯定是最好的优化,因为如果你不做,那根本就没有优化,根本没有开销。如果你还是要做,考虑少做一些。最后,当你要做的时候,你要考虑你是否能做得更好,这可能有点抽象,但让我们详细地做一下。
让我们来看看《指尖江湖》中纪氏的爱情图。我在1 2 3 4上面用红色标出了骨架的长度。在这个尺寸下,我想我们可以更清楚地看到这四条骨架链。好,让我们看看这张图,这是一张很小的图。4如果这个丝带很长,更清楚地看到,但是1和2已经看不清楚,尤其是骨头我与线,划线,其实这次是非常短的,在这种情况下,甚至有点僵硬,我估计我不能看到,尤其是在手机更小。因此,我们有了第一版的优化思路,根据骨链屏幕的投影程度,过短的骨链会直接关闭动态骨架的效果。
投射长度可以使用骨链的静态长度,加上游戏的视场,这通常不会动态变化。所以计算它的屏幕投影长度几乎不用花钱。
手机的平均宽度是70mm,所以小于2mm你就看不清楚了。长度也可以根据型号、机器情况和性能不同的画面质量来定制,当然也可以实时跟踪不同的压力,实时调整。我们能做得更少吗?我们仍然可以使用投影长度,我们可以取中等的骨头,比如1或3个骨头,在一些情况下保持最基本的刚性操作,保持最基本的效果。最后,考虑一下你是否能做得更好。在这个阶段,只能是死爆算法,在算法级进行优化,尽可能减少消耗。这里我们使用局部坐标来减少世界坐标的操作,正如前面提到的世界坐标的操作是一个非常耗时的操作,使用有些标语是为了减少重复。最后,我们需要减少组件的数量。一个字符,一个组件可以支持多个骨架链,因为在组件的数量上有一些正常的开销。这是我们在第一个版本中的优化。
最新发现
相关资讯
热血江湖手游勤劳勇毅活动怎么玩,劳勇毅活动玩法攻略
热血江湖手游勤劳勇毅玩法是很多的玩家们所不了解的,这个活动的玩法是很多玩家们所不了解的,下面小编就为玩家们介绍一下热血江湖手游勤劳勇毅玩法攻略!热血江湖手游勤劳勇毅玩法攻略分享1.开启劳动节活动【勤劳勇毅】,4月28日-5月5日期间,泫勃派
2022-04-28 15:25:55
青春武侠MMORPG手游《热血江湖手游》5周年庆典现已开启!
《热血江湖手游》诞生于2017年,改编自风靡全球的同名漫画《热血江湖》,游戏上线以来,一直以可爱的Q版人物、清新明快的画风、青春热血的江湖故事而备受广大玩家喜爱。 为庆贺五周年,游戏内也增添了许多惊喜活动,少侠们快跟着我一同来看看吧! 周年庆活动副本【雷蛟妖船】 4月14日-5月12日期间,每周一、周二、周四...
2022-04-14 16:24:27
热血江湖势力战_热血江湖手游武道会势力PK玩法快来学
热血江湖清新明快的游戏场景,活泼可爱的人物造型,幽默幽默的游戏故事,营造出轻松快乐的江湖世界,昨天有很多粉丝私信问小编热血江湖手游武道会势力PK怎么玩,没想到这个问题会给大家带来这么大的困扰,那么接下来仪陇游戏网小编就给大家讲讲热血江湖手游武道会势力PK玩法,希望这篇文章可以帮到你们 《热血江湖手游》亚洲武道会王...
2022-04-09 18:18:13
热血江湖势力战_热血江湖手游势力战打法和场景地图详解
热血江湖清新明快的游戏场景,活泼可爱的人物造型,幽默幽默的游戏故事,营造出轻松快乐的江湖世界,各位仪陇游戏网的粉丝们大家好,今天小编给大家带来的是热血江湖手游势力战打法和场景地图详解,如果你感兴趣的话记得保存收藏哦,相信喜欢游戏的你会爱上这里 热血江湖手游势力战怎么打?这历来就是玩家关注的焦点。势力战是玩家建功立...
2022-04-09 18:14:16
《新笑傲江湖手游》东海地宫地图顺序(东海地宫怎么打)
新笑傲江湖手游已经将版本更新,这次更新推出了新玩法东海龙宫,很多玩家都在问东海地宫玩法攻略,那么新笑傲江湖手游东海地宫应该怎么玩呢?很多玩家不知道,下面就是小编给大家带来的新笑傲江湖手游东海地宫玩法攻略,感兴趣的玩家快来看看吧。新笑傲江湖手游东海地宫玩法攻略【新增内容】一、东海地宫闯荡江湖,获取重要资源的新阵地——“东...
2022-03-21 15:12:05
今日热榜
原神刻晴ちゃんがを腿法娴熟,刻晴撅臀剑法
2022-10-25 10:41:38王者荣耀伽罗太华流白色液体图,新皮肤特效
2022-10-11 16:34:10原神温迪手冲s图,温迪lsp高清图片分享
2022-09-19 11:26:26Apex英雄S14猎兽收集活动攻略,活动
2022-09-16 09:04:36暗区突围先锋杯赛事时间介绍,先锋杯赛事报
2022-08-16 17:04:08原神达达利亚什么时候复刻,2022公子复
2022-08-16 16:59:36王者荣耀s29赛季野区改动了什么,s29
2022-08-16 14:52:10永劫无间殷紫萍怎么玩,殷紫萍奶妈玩法技巧
2022-08-16 11:42:55王者荣耀张飞专精装有必要出吗,专精装出装
2022-08-16 11:18:09部落冲突9本最强布阵2022高清图,9本
2022-08-16 10:48:33热门游戏