【知识分享】游戏建模3D制作人员需掌握的Unity知识

工作中经常遇到3D制作不了解引擎要求导致返工或是被客户说没有经验,所以邀请了工作十多年,经验丰富的TA红伟大哥做了一篇相关文章为大家解惑。红伟大哥也有相关独立游戏开发经验

很多3D同学都会面临一个问题,就是对引擎不熟悉,导致对某些资源规范和优化方法知其然不知所以然,特别是3D相关的同学,由于平时工作基本上不需要跟引擎打交道。另外3D美术外包更是如此,更没有机会接触到引擎。

于是,为了给广大3D同学谋福利,此篇就诞生了。

    引擎是什么?    

想想汽车引擎是什么就明白了,要想让汽车跑,必须要有引擎,同样游戏要想运行起来也需要引擎,引擎将我们的美术资源与程序组合起来并利用渲染、物理等模块进行拼装使其可以正常运行。汽车引擎有各种品牌,游戏引擎也是一样,目前市场主流引擎有:Unity和Unreal,本篇我们主要讨论Unity。


    Unity引擎    

Unity的版本相当的多,截止目前为止,最新的正式版为2017.4.1f1。

每个版本的后缀你会发现不一样,分别代表什么意思呢?

·         b    (beta版,也就是测试版,还没有正式发布,b1代表beta第一个版本,b2代表beta第二个版本)。

·         f    (正式版,面向所有开发者的版本,一般比较稳定)。

·         p    (补丁版,一般是针对正式版进行的bug修复版本)。

比如上面的2017.4.1f1就是指版本为2017.4.1的第1个正式版.

选择什么版本一般由项目主程来决定,所以我们不用过多操心,只要保证项目成员版本统一就可以了。


    本篇重点    

接下来,我们步入主题,我们以下几个维度来重点分析下(由于篇幅有限,不能把每个步骤操作都详细说明,还请各位3D同学见谅)

1.   规范

2.   品质

3.   性能


    规范    

美术资源,不管是3D还是2D,也不管是模型还是动作亦或者是特效,在引擎中都要有一定的规范才行,因为这些资源并不是给我们自己用的,而是团队中大家都会共同用到的资源,特别是程序,如果规范没有定清楚,会导致工程很混乱,不管是后期维护的成本还是开发的成本都会增加不少。

那么关于3D模型的规范有以下几点:

·         单位

3D资源导入Unity时,首先面临的问题就是单位,由于Unity中的单位是米,所以我们通过以上设置即可达到max与Unity的单位统一,这对于整体比例把控以及引擎中世界大小的制定相当重要。

·         方向

由于Unity的坐标系是左手坐标系,max是右手坐标系,而且Unity中z轴的正方向被认为是前方(物理系统,方向变换等都是基于此进行的),所以为了使其简单化,3D资源最好是将方向调整为unity的标准。

标准:在max中,更改模型的轴,使其Z轴指向物体的前方,Y轴朝上!


    品质    

不管是角色还是场景最终的美术效果都要以引擎的为准,不以引擎为目的的资源都是耍流氓!那如何要做到这一点呢?其实很简单,单说品质这一点,只有一个概念——Shader

Shader可能大家不是很了解,但是大家一定都对材质相当熟悉,那事情就简单了,你可以理解为材质的底层就是Shader,Shader是引擎中渲染一个物体时所必须要用到的一段程序代码,一般是由TA或者程序来为项目制作的。一个物体的材质质感如何完全取决于Shader,材质只不过是更上一层,可以用来调整 Shader中参数的对象而已。关于Shader,水很深,我们不做过多不相关介绍,本文主要围绕作为3D美术所必须知道的知识来讲解。


既然我们已经知道了3D软件中的效果并不是最终游戏所呈现的效果这件事情,那么作为一个有责任的3D同学,就要想办法去使自己做的3D资源能够在引擎中显示出最佳效果。

最常用的方法就是将自己制作的3D资源导入到Unity中进行观察效果(一定要使用项目定好的Shader,否则也是白调),来回反复调整,以使其在引擎中达到最佳。

那么要做到这一点我们需要掌握什么知识呢?

·         Unity引擎的简单使用(基础教程网上很多,有天赋的同学自己打开软件摸摸也就了解了)

·         重点学习下如何在Unity中给3D模型赋材质,以及调整材质效果。

然后你就可以为所欲为了。。。


    优化    

模型效果上来了,但是程序说太耗了,要优化,这时我们不能让自己于一脸蒙逼的状态,一定要有所觉悟,知道该如何去优化。关于优化,并且跟3D同学相关的,我们有以下几点需要注意:


    顶点数    

很多同学以为模型影响消耗的都是三角面数,只要控制三角面数就好了,其实不然,三角面数固然重要,但是顶点数也不容忽视,这里普及一个知识点:渲染一个模型需要用到Shader,而Shader中又一定分为顶点着色器与片断着色器,而顶点数量的多少直接与Shader中顶点着色器的消耗成正比。也就是就顶点数越多消耗越大!

除了常规美术上的少点少面以外,我们这里额外说两点与引擎相关的,如何去减少顶点数。

首先我们做个简单的测试:

在max建一个Box,然后导入到Unity中,观察他们的顶点数区别。

max:8个顶点,12个三角面

unity:24个顶点,12个三角面

三角面数一致,顶点数竟然相差这么大!


产生顶点数不一致的原因主要有两点:

1.    光滑组不一致,当多个面设置了不同的光滑组时(如果这些都处于一个平面,则不会)就会导致顶点数增加。

2.    当模型上一个顶点在UV中对应多个顶点时(切割UV会产生这种效果)也会导致顶点数增加。

当两个面光滑组不一致时,它们所共用的顶点将需要两个表现法线方向的信息,unity中无法通过一个顶点来获取到这些信息,所以在unity中会被识别为两个顶点,同样,模型上的一个顶点,在UV中出现在多个位置,也会被unity识别为两个顶点。

当然了,并不是说完全不能用光滑组与UV切割,只是如果我们知道了这些原理,那么在制作时就能够尽量去规避这些问题了。


    三角面数    

这个没有什么好说的,在保证效果的前提下,能少则少。

    贴图 

贴图的做法和Shader息息相关,需要在前期与TA一起讨论清楚,其中尺寸可以做的大些,因为可以直接在unity中根据需求缩小,如果做小了,放大就会有损失了。还有要注意,最好是方形,同时是2的次幂。如果贴图需要有额外的信息存储到Alpha通道,则用tga,否则用png格式。

    材质    

材质数量直接影响DrawCall,所以尽量做到一个物体一个材质球,特别是在max中尽量少用多维子材质。因为多维子材质的信息会被导入到unity中,并以多个材质的形式出现,除非你真的需要这么做。

    顶点色    

顶点色如果不需要的话一定要清除,因为顶点色在unity中会影响合批,导致性能下降,同时本身的顶点色数量也会导致模型本身的资源加大。

模型中的顶点色一旦修改,就会使模型附带了顶点色属性,既使你更改回默认颜色和透明度也是一样,这个时候只能通过ChannelInfo来移除了,注意在ID那一列中,标识为:VC的就是顶点色(Vertex Color)。

    UV数量    

模型的UV数量正常情况下只需一套,如果在max设置了多套,既使没有用到也会被导出到unity中,同样也是通过Channel Info来移除。

如果大家能做到以上这些,那么TA和程序会爱死你的!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容