天涯明月刀ol吧 关注:3,275,471贴子:93,989,855

【科普】关于在游戏中时装的建模和物理效果

只看楼主收藏回复


最近刀刀又开展了一次外观设计大赛,看到有很多刀刀玩家都在踊跃投稿。
作为略微有接触游戏模型、骨骼、物理相关的人,楼主想来想去,决定借此机会写下这篇帖子。
该篇帖子会介绍游戏的模型、骨骼、物理效果相关的内容,如果你是想参加外观设计大赛的,不妨点进来看一下。也许这篇帖子能帮你的设计更符合官方的要求,从而更容易成功被入选。
如果你是想更深入了解游戏三维相关技术的,也许这篇帖子也可以带你稍微了解一些皮毛。
想参加外观设计大赛的少侠嫌弃太长可以直接跳到帖子最后~
不过这里要提前说明一下:
由于楼主本人并不是专业从事该方面的人,所以如果帖子中有讲的不对的地方,欢迎各位提出指正!


IP属地:北京1楼2020-05-15 21:04回复
    前排


    IP属地:河南来自iPhone客户端3楼2020-05-15 21:05
    回复
      一、模型
      (一)模型的构成
      我们在天刀世界中所看到的一切物品都是模型,相信大部分玩家都懂得这一点的。
      那么模型是由什么构成的呢?
      很多人应该知道“点构成线、线构成面、面构成体”这一句话。
      构成模型的也正是顶点,顶点组成线,线再组成面,面再构成体。
      例如我这里有一个刀刀沧海烟霞的模型,当我们开启三维软件中的显示边面,这些线的交点处,就是所谓的顶点。


      模型也正是这样组成的。


      IP属地:北京4楼2020-05-15 21:05
      回复
        (二)模型的精细度
        那么我们偶尔会听到所谓“建模精细”和“建模粗糙”,这又是什么意思呢?
        这里我们直接举一个例子,就可以非常直观的看出来了。
        图片中,是两个圆柱,但是不难看出右侧的圆柱比左侧的圆柱更加“圆”。

        这是为什么呢?我们再次打开软件中的显示边面:

        不难发现,右侧圆柱上的网格要比左侧圆柱上的网格多了很多。
        而让模型更加“圆”的,就是因为它。
        在建模软件中,两个顶点之间相连而成的是直线,没有办法画出弧线。
        当然,软件中或者游戏中也有平滑效果,能使得直线间的棱角没那么明显:


        因而,如果想让圆柱更“圆”,就只能增加圆上的点数,让这个多边形看起来更加像圆。
        在游戏中备受大家吐槽的成男的爪子粗糙,就是因为成男爪子的建模所用的点数不够多的原因。


        IP属地:北京5楼2020-05-15 21:07
        收起回复
          技术贴,顶之


          IP属地:上海来自手机贴吧6楼2020-05-15 21:09
          回复
            除了圆以外,我们这里还有个例子。
            图片中是两个平面,看起来是一样的。

            但是我们打开显示边面,可以看到二者的顶点密度还是差了很多的。

            那么圆柱上顶点数有差距能让圆变得更圆,这平面上顶点数有差距能干啥呢?
            接下来楼主给这个平面加上一点点细节,比如说我想让这个平面看起来有山川和河流:

            这样就可以看出,同样是想表达山川和河流,左侧的就显然没有右侧的更为精细。
            这里我们还可以用刀刀里面的模型做栗子,比如角色的jio,所用的顶点数就很少,五个脚趾都并在一起了,细节大打折扣。



            IP属地:北京7楼2020-05-15 21:09
            回复
              至此,我们就可以得出结论了,模型的精细程度和顶点数量有关系。
              同样外形的模型,顶点数量越多,模型看起来就会越精致,建模者就可以在模型上实现更多细节。
              或者也可以说,同样外形的模型,面数越多,模型就越精致。(我个人更习惯用面数来形容)
              行业里对于两种模型也有比较专业的叫法,模型精度低的叫低模,模型精度高的叫高模。
              有的少侠到这里可能会问:哎那既然模型面数越多,模型就越精致,那是不是无脑拉高面数就好了?
              马上,我们就来解答这个问题。


              IP属地:北京8楼2020-05-15 21:10
              回复
                (三)模型的资源消耗
                书接上文,刚刚我们提到了模型面数的问题,那是不是无脑提升模型面数就好了呢?
                答案是否定的。
                那为什么呢?因为电脑硬件有限制。
                我们在模型中每一个顶点,都是要存储它们的位置的。
                而由顶点构成的每一个面,在游戏中都需要实时去计算每个面的贴图、光效等。
                如果增加模型面数,那么同时就会增加对电脑硬件资源的消耗。
                设想一下,如果你开个刀刀刚在创建角色的界面,就把你的电脑内存显卡都吃满了,你还敢点进入游戏吗?
                所以为了游戏能够在玩家的电脑上流畅地跑起来,就必须要降低模型的面数到不影响展示模型效果但也不会消耗过多的程度。
                那么高模就没用了吗?当然不会啦。
                高模常用的地方就是渲染图和CG,比如说我们在官网上看到的这种图片,就是由高模渲染而来的。

                又比如韩服的那个CG,也是利用到了高模的。
                除此之外,高模还有一个比较神奇的作用,我们接下来马上就说。


                IP属地:北京9楼2020-05-15 21:11
                回复
                  技术贴!!!


                  10楼2020-05-15 21:12
                  回复
                    (四)神奇的法线贴图
                    刚才我们说到,游戏内为了控制占用硬件资源,不得已需要降低模型精度。
                    可如果我们降低了模型精度,那是不是就没办法在游戏中展现模型的细节了呢?
                    聪明的前辈们早就想到了解决方案,那就是法线贴图。
                    法线贴图如果详细讲明白,那可能花费的时间比较长,这里我们只需要简单了解一下它的作用就好了。
                    一张图其实就能让大家看懂:

                    左上角是高模,左下角是低模,二者面数的差异有十五倍。
                    但是通过给低模增加法线贴图,在游戏中显示的效果就是右下的样子。
                    相对于低模有了非常多的细节,还是很接近高模的效果的。
                    没错,法线贴图的效果就是,可以在游戏中让平面显示出立体的细节效果,但同时它消耗的硬件资源远低于用建模来实现同样的细节效果。
                    我们在游戏中看到的许多立体效果,尤其是小物件上的,都会有法线贴图来增加模型的立体效果。
                    而法线贴图的制作方式之一,就是通过高模来烘焙。
                    对此感兴趣的少侠们可以自行搜索法线贴图相关的内容。


                    IP属地:北京12楼2020-05-15 21:14
                    收起回复
                      (五)细节物品的显示
                      在时装上,我们经常能看到一些非常精细的小物件,例如金属饰件、首饰等。
                      这些东西,在建模上同样有个节约资源的方式显示,那么就是通过贴图绘制好。
                      这里我们以独孤的腕饰举例:

                      在游戏中,腕饰是状略微复杂的金属饰品,但是在模型上,实际上是几个面,加上贴图。

                      然后再透明掉贴图的一部分,在游戏中的效果就是一个手环啦。
                      同样处理方式的还有头发的末梢,也是通过类似的方式实现的,而不是真的建了一根一根的头发。


                      IP属地:北京13楼2020-05-15 21:16
                      回复
                        二、骨骼
                        前面,我们讲完了模型相关的内容。
                        然而光有模型是不行的,单独的模型放进游戏里,只是个不会动的物体。
                        而如果我们想让模型能够动起来,就需要骨骼了。
                        骨骼,顾名思义,其实和动物的骨骼是类似的。
                        模型本身的顶点是不会移动的,而如果我们想实现模型的运动,就需要给模型添加骨骼,让骨骼带动模型的顶点而运动,从而实现模型的动画。


                        骨骼和模型面数有点类似,越精细的动画表现,就需要越多的骨骼数量来实现。
                        例如我们想表示一根绳子的弯曲,用两根骨骼来表示效果是这样的:

                        而用五根骨骼来表示效果则是这样的:


                        IP属地:北京14楼2020-05-15 21:17
                        回复
                          由于本篇帖子主要是给想参与外观设计大赛的少侠们一个参考,所以就不过多地讨论游戏角色是如何动起来的,主要来讲一下衣服的骨骼。
                          有的少侠可能会疑惑:这不是衣服吗?衣服也有骨骼的?
                          答案是当然的,并且还不止一种骨骼。
                          前面我们说到了,模型想要会动的效果,就必须添加骨骼。
                          游戏中的时装也不是紧贴在玩家身上不动的,需要单独添加骨骼。
                          如果不单独添加骨骼,就只能把衣服绑在人物的骨骼上了,那效果自然是一迈腿衣服粘在腿上,嘶……
                          游戏中分为两种骨骼,楼主也不是很清楚两种骨骼专业的叫法是什么,这里就按照我自己的方式称为静态骨骼和物理骨骼。
                          静态骨骼就是指通过读取动作文件,按照动作文件进行运动的骨骼。
                          比如我们游戏角色人物的身体,就是用的静态骨骼。
                          而衣服上所用的,大多数是物理骨骼。
                          物理骨骼就是游戏中实时运算,来控制其运动的骨骼。
                          例如我们看到的头发会摆动、衣服下摆、衣服袖子等,都是通过物理骨骼来控制所实现的效果。


                          IP属地:北京15楼2020-05-15 21:18
                          回复
                            我们前面提到了,越精细的物理效果,就需要越多的骨骼来实现效果。
                            但是物理骨骼,同样也是吃资源大户,需要实时计算物理骨骼应该朝哪个方向、有多大摆动等。
                            这也就是为什么天刀看其他人的时候,衣服的物理效果是没有自身那么精致的。
                            就是为了减少游戏硬件资源消耗。
                            同时,这也就牵扯到,为什么游戏内多层的衣服,会有厚重感。
                            按照目前节约游戏硬件资源消耗的思路来说,即便是多层衣服,也只会用一根骨骼来控制动效。
                            这样效果就是,感觉衣服厚厚的几层都粘在一起。
                            另外就算是给每层衣服单独添加一层骨骼去控制动效,多层骨骼互相碰撞在一起,也是非常容易出现互相碰撞然后鬼畜之类的情况。
                            很难能达到真实衣服那种不同层次的飘逸感。
                            另外那种闭合的长裙,也是一样的在游戏中难以控制。
                            长裙在游戏中,最好的效果就是那种像是带有裙撑效果的。
                            除此之外,要么接受橡皮裙效果,比如这样:

                            要么接受裙摆粘在腿上的效果。


                            IP属地:北京16楼2020-05-15 21:19
                            收起回复
                              三、总结一下游戏时装设计的一些需要注意的点
                              1.尽量避免需要有多层布料叠加的设计
                              2.尽量避免有占用较多物理骨骼的设计(例如很大的袖子、少女红鸾殿那两条尾巴)
                              3.尽量避免闭合的长裙、如果要有较长的下摆则需要分为几片
                              (好像也没几点诶


                              IP属地:北京17楼2020-05-15 21:21
                              收起回复