技术美术是近些年游戏研发公司热招的岗位之一,它对于个人的综合能力有着极高的要求。从该岗位所要掌握的技能来看,程序与美术自然会是一批优质的储备力量,但想要成为一名合格的技术美术,或许你还有很长的一段路要走,不妨现在就来听听前辈的看法。
作者:Freddy
腾讯互动娱乐 技术美术
一、美术篇
工程师转技术美术的这类同学,一定要掌握艺术方面的内容,否则本质上还是一个程序员。
1.1 美术DCC软件操作方面
必须精通:Photoshop,3dsmax/Maya
无论是绘图还是3D建模,这几款软件是游戏美术必不可少的。作为标准的游戏美术,TechnicaArtist必须精通里面的所有功能,并熟练掌握完整的各个管线的工作流程和常用功能的使用方法。
而Artist转TA的同学可以根据自己本来的专精,归纳工作流程,并尝试编写自动化工具。
稍微进阶一些需要掌握:AfterEffects/NUKE/Fusion360,Blender,ZB/SubstancePainter/SubstanceDesigner,MotionBuilder 等等。
根据经验的增长,你逐渐掌握了一些图像合成知识,并开始了解流行的开源3D建模软件、引擎外部的贴图绘制软件、材质生成软件, 动作捕捉软件等等。这里面开始涉及到了各个不同的专业,可以选择性地进行学习。
再进阶一些需要掌握:
Houdini,WorldMachine/WorldCreater, SpeedTree 等等更专业或专精的软件。
这时你已经积累了很长时间的软件操作经验,对美术工作流了如指掌,于是便可以往难度更高或更细分的领域深入研究。如果你有了一定的代码经验,并且对于日常的DCC功能开发已经游刃有余,再深入就变成技术知识构成的范围。
1.2 美术基础知识方面
Technical Artist顾名思义是包含大量的Artist的内容,而Artist以最基础的美术知识为根本,万变不离其宗。
TA需要通过掌握的美术知识会使调节出来的画面效果比图形程序员要好看的多,并且具有一定的艺术观赏性。另外一方面,完全不掌握Tech调节方法的Artist会有劲没处使,不知道怎么调节出好看的画面效果。
当美术管线被优化到足够便捷的话(类似美术更喜欢使用UE4,而非其它引擎开发的定制化渲染管线),Artist自己就可以进行画面调节了,并且能比TA调节得更美。TA的工作恰恰是使这个复杂的调节过程简单化。
当渲染管线过于繁琐时,TA应当提供完整的操作文档提供给美术,毕竟他们调节出来的是最好看的。作为一个综合性的辅助职位,没有必要和他们抢饭碗。
作为TA你要掌握基础的美术知识,包括造型,透视,色彩构成,质感刻画等各个方面。
你要可以迅速判断游戏画面的黑白灰关系、层次关系、画面的色彩构成,还要能通过修改shader或Toonmapping等方法进行调节。对于各种质感的表现特征,你需要了如指掌,例如金属的明暗交界线和反射的状态,这里可以基于物理渲染但是并不一定符合物理,以画面好看为主。
尤其是非真实感渲染,对TA的美术方面的要求更高,由于是非物理渲染,所以图形程序能帮上忙的空间非常小。
比如最近流行的二次元风格,如果你大学学了动画专业,那么你会对二次元的画面构成了如指掌。透台是怎么使用的,赛璐璐是怎么使用的,画面怎么由layout到原画、中间画,到上色、后期,为什么某些角色的动态画面是扭曲的,为什么要用色指卡来上色,为什么不同的漫画家的线条都各具有特色等等,你都完全清楚。你可以通过你的美术经验,对所有关键性内容进行拆解,然后通过技术手段实现它。这是其它工种完全无法替代的。
1.3 沟通技法
和美术沟通时,“说人话”非常重要。因为你之前本身就是美术或对美术工作流程非常了解,这是你和程序员相比非常大的优势,那么要以美术能快速听懂的方式对相关美术人员进行解释,把复杂问题简单化概括。实际上当你对一个技术越了解的时候,你描述的过程是越通俗易懂且简约的。尽量不要拽各种专业性技术名词、英文缩写。
例如图形程序口中的toonmaping等术语,或其他复杂算法。对于精通Photoshop的美术来说就是点击两个按钮,比如可选颜色,渐变映射等等。但是大多数程序员连ps基础操作都不会,这就需要你来简化描述。
你在美术方面是不如美术的,程序方面又不如程序。和程序沟通时要把专业水平拿上来,通过技术知识来描述美术的想法和实现方式,描述后不一定是你来做,有可能是程序员去做,但是你也不要把自己仅仅定位为传话筒,要尽量想到既效果好又性能好的trick方案。
TA属于一个完美的辅助型魔剑士,既肉又奶又可以输出,形成一个良好的工作氛围后,美术和程序是都愿意和你配合的。
二、技术篇
美术师转技术美术的这类同学,一定要掌握编程方面的内容。
这方面的内容包含3类,第一种是脚本语言,第二种是编程语言,第三种是shading语言。
2.1 脚本语言
脚本语言简单来说就是:
3DSMAX 的 maxscript 或 MAYA 的 mel 语言 或 Houdini 的 vex 这种DCC软件语言。
这种语言使用的功能相对简单,大多是对软件封装好的功能进行调用。
作为TA,你可以根据你在你之前的美术领域(模型/动画/特效/UI)浸淫多年的DCC软件操作习惯来使用脚本语言。这会对你的大量重复性工作进行自动批处理,买二手手机号码平台从而使你和你支持的艺术家从操作的工作中解脱出来,进行艺术创作。
其中,在某一美术领域浸淫多年这一点非常重要,这也就是”使用者既开发者“原理。所以我并不赞成毕业生没有进行过美术工作直接进入到这一领域,否则开发出来的功能会十分难用。
它的工作流一般是线性的、拟人化的方式。不同软件的写法和API差异很大,由于官方文档写的烂,有很大的学习负担,所以这方面工作一般没有程序员会接手,只有TA来承担。
DCC工具一般来说以批处理和资源检查为主,一定程度上追求运行速度,因为美术要经常快速修改美术资源,所见即所得非常关键。由于这里生产的资源是完全与游戏项目脱离的,所以稳定性不是最主要的,而是以提高美术制作人员的舒适度为主。在引擎工具方面,还会对美术资源进行二次,三次的反复检查。
python介于脚本语言和编程语言之间,各个软件或引擎之间可以同时支持。所以目前来看性价比要高一些。
2.2 编程语言
编程语言就是C,C++, C#, 这种更接近于程序员使用的代码语言。这类语言一般用于游戏引擎中的内容修改或工具制作。
作为TA,这类语言你至少要精通一种,不是比其它美术师稍微懂点引擎操作方法就可以变成TA了。因为许多高级美术师,同样对游戏引擎的使用非常熟练,例如经常使用游戏引擎内置编辑器的游戏特效师、经常编辑动画状态机的游戏动画师。
技术美术应该做的事情是在高级游戏美术师的基础上,使用编程语言,自动控制/检测美术资产的正确性,对重复性工作进行批处理开发,对引擎中的操作繁琐的步骤进行一键操作的简化处理,甚至把很多操作集中在打包流程中。
这方面工作与引擎程序或客户端程序有一定的交集,要掌握工作分配尺度。
TA在引擎层面开发的工具或功能,由于和游戏项目耦合性较高,所以要首要关注可靠性。美术生产资源的合理性要完全在这一步把握住,通过使用资源检查工具、资源后处理工具、资源提交工具,完全阻断出错率的效果。
其次需要关注的是美术工具流方面的易用性(因为工具交互做的很差或不好用,美术用起来就很排斥,这导致没有反馈信息的输入,没有这部分输入就会导致无法更新迭代,这样的话就开发不下去了。如果强行推广使用的话,那么对于美术来说就由帮手变成了敌人)。
最后一点才是运行速度,但这一点又是不可或缺的,如果你使用编程语言开发了工具,必定带来开发速度的提升。这是要遵循二八原理,比如花很少的开发时间,把美术生产输出从几天或几周优化到了分钟级或秒级,就没必要再花百分之八十的时间扣算法,优化那么几毫秒的运行速度。
以上所有引擎内功能的稳定性是由一套”稳定“的引擎底层架构和渲染/客户端逻辑来支撑的,如果引擎和逻辑变来变去,那么工具也无法保证稳定。
2.3 Shading语言
一般是opengl, hlsl, cg这种类似于C语言这种底层语言的写法,对Shading语言的了解目前成了技术美术必不可缺的要素。这几种语言的写法非常接近,基本可以做到同时精通。
你不一定会掌握底层shading的基础算法或架构,这里面很大程度上的工作由图形程序员承担(不要抢他们的饭碗,或者一部分图形程序变成了所谓的TAT)。但是作为TA一定要掌握surface层面的效果向shading开发,并具有很强的优化能力。
作为TA你要通过你的传统美术技法,产生大量的trick能力,这是图形程序员不具备的,尤其是非真实感渲染方面,你的地位十分重要。由于一般传统艺术家画画是直接用画笔在画布上画的,效果不一定真实,但非常好看。你要使用美术的基础知识对其明暗调子,色彩构成,线条的优美,等等方面进行把控。
如果你精通PhotoShop或AfterEffects来进行图像处理的话,那么你对于图像后处理技术也会非常精通的,这部分的门槛就会非常低。
国内最开始有TA行业的时候,对于连接节点方式的shading创作是鄙视的。目前来说放开了一些,但如果你对优化有一定要求的话,依然还是要掌握代码。
三、结语
以上几个方面,从初级,中级,高级必须做到由少到多,由入门逐渐到熟练,精通。这是一个积累的过程,尤其是对于美术来说,学习曲线非常陡,由一种语言到多种语言,加上熟悉API,起码要持续几年。所以不要着急,不能由于行业比较火,一口吃个胖子。
虽然标题是技术美术的技术知识构成,但是程序员不要由于编程优势妄图混进来~赶快去看艺术史,画石膏像,用DCC软件建模吧,这样才能达到“使用者既开发者”的目的。