枯燥编程加奇炫美术 —— 看育碧 Ubisoft 如何开发游戏大作



最近暴风影音 App Store 更新文案“修复了闪退 Bug,还杀了一个程序员祭天”,产品对于程序员的调侃火爆朋友圈,将程序员这个呆板、宅男、缺乏艺术细胞的职业再次推到了公众面前。


对此,诸多程序员对其形象比喻表示不服!


幽默是我的本性!


热爱健身、热爱旅游,我就是我,不一样的烟火!


一入代码深似海,从此艺术成路人!


……


事实上,真的有一些被代码耽误的艺术家们。他们具有独特的艺术细胞、厉害的编程技能、有效的沟通方法,现在因为一种全新职业的存在,他们有了大展身手的舞台。那么究竟是怎样的职业?接下来,我们就带着对非一般程序员的种种疑问采访了育碧(Ubisoft)上海两位技术总监蔡震泓和 Gabriel Joliat-Belanger(技术总监 TD、技术美术 TA 在行业中可替换使用),请他们分享游戏产业中特殊的程序员、游戏开发的“全能高手”——技术美术的故事。



蔡震泓(右)有着 14 年的游戏行业从业经验,对游戏制作行业有着深入的了解。在育碧上海担任技术总监期间他参与了《孤岛惊魂》系列游戏的制作。


Gabriel Joliat-Belanger (左)来自加拿大,一直从事于游戏艺术创作方面的工作。来到育碧上海前,他在育碧蒙特利尔担任助理技术总监(Assistant Technical Director)。


1 枯燥编码和炫彩美术,两种才华可集一身?


理智和情感能共存么?


当然!


那么技术美术这个汇聚程序和美术技能的职业存在也并不奇怪。在游戏开发这一行,技术和美术的联系其实更为紧密。例如,许多人物风景的 2D、3D 图像需要通过程序来展现,同时 2D、3D 图像的制作、光影效果、后期处理等都需要通过特定的制作工具来实现。



而技术美术往往能把程序和美术这两项技能发挥到极致。 他们运用程序员严密的逻辑思维,解决工作中遇到的程序问题,把控着游戏制作过程中的场景风格、美感。他们就是游戏创作的“全职高手”。


“简单的说,技术美术是一个在艺术品味和逻辑思维之间取得良好平衡专业性人才,技术美术能运用逻辑来解决游戏制作过程中一些没有明确答案的问题,同时保证整个游戏艺术创作的顺利进行。”Gabriel 总结道。


2 程序和美术是使用左脑和右脑的不同物种?


“引擎里的颜色编码为什么是 0-1,而不是 0-255?”“动画的那种炫酷的效果不是引擎自带的吗?”“程序,你能不能给我做个脚本?我的 Photoshop 文件导不进引擎里?”“为什么这个着色又出现了偏差,美术是不是用错颜色了?”


上面的这些对话很可能出现在合作还欠缺的新团队之中。团队中美术和程序在沟通时可能根本不在同一个位面上。出现这种现象的原因有二:一方面,两者心理上将对方放在自身的对立面上,掉入逻辑和感性“二元对立”的陷阱之中;另一方面则是源于两者的知识层面不统一,“左脑发达”的程序员可能不太能理解美术对颜色色差的执念,而“右脑敏锐”的美术也可能不太理解为什么一些特效不能通过引擎实现。



技术美术的职责之一就是协调团队工作,帮助参与开发的团队间有效沟通。拥有程序和美术两方面的视野,技术美术在项目管理上具有极大的优势。


3 技术美术的工作职责是什么?


除了上面所说到的协调不同团队工作之外,技术美术还有许多的指导性的工作。当美术或者程序团队在游戏开发过程中使用工具出现问题、开发环节不太熟悉时,一般都是由经验丰富的技术美术提供解决方案或者指导。当然,美术出身的技术美术还可能会参与产出,尤其在团队中美术无法胜任相应工作的时候。


当问及技术美术具体工作职责时,蔡震泓解释说:“技术美术、技术总监知识储备和管理的事情非常多,而在项目的前期、中期、后期,他们负责的事情也不一样。从日常来说,前期、中期都会看到的事情,像支持、培训、原型制作,而后期更多的则是风险防控,以及解决技术问题。贯穿整个项目,他们还要管理本身的技术团队。”



技术美术的工作职责涉及的内容较广,但是这正是这个职业的乐趣所在——不断的学习新的东西,并将它们运用到实践之中。


蔡震泓回忆起在育碧工作时的趣事:“我们曾经有一位 TA(技术美术),他制作的时候遇到了一个 bug,觉得这个 bug 表现行为比较有趣的,因此拉着团队一起讨论,是否可以把这个比较有趣的问题变成游戏中的 feature,我们游戏最后出现了这个 feature,而 feature 就是在一个 bug 上诞生的。完全的无心插柳柳成荫!”


4 程序、美术,二者孰轻孰重?


两种技能需要根据具体的部门及晋升之路来考量,一般而言,要么程序强于美术,要么美术重于程序。例如,TA 在育碧的职位通常为技术总监(TD),而 TD 原本有的是做程序出身,有的是做美术。Gabriel 表示:“我本来是做美术的,担任 TD 之前是团队的艺术总监(Art Director),现在是育碧上海 NODE 团队(团队主要做动画、服装、道具、艺术概念图等偏向美术的工作)的 TD,当然也会涉及到一些脚本、工具的问题。”另外,TD 可能偏向于工具的开发,比如说游戏引擎本身、或者游戏引擎中使用的某一套工具,同时 TD 也要了解美术那边的需求。都是 TD,管理的团队不一样,职业要求也不一样。


5 初学者从事技术美术有哪些误区?


事实上,初学者不大适合从事技术美术这一职业。不管是从技术还是从美术升上来的,都需要一个较长的技能积累和成长的过程。企业一般不会让一位刚开始工作不久的人担任 TA,同时也不建议单纯的为了 TA 这个职位的福利或者待遇而做这个行业。TA 要求从业者先对自己的那一行有专精,然后从自己的兴趣出发,对另外一方面进行了解。如果仅仅因为待遇的话,工作起来会感到很枯燥的。


6 如何成为一名优秀的技术美术?


在整个游戏制作行业中,技术美术算比较“高阶”的职业。成为技术美术的首要要求就是在游戏创作中对所使用的程序和美术工具需要有一定的了解,并且对整个游戏或者游戏场景制作流程十分熟悉。


成为一名合格的 TA,最基本的技能是要站在一名 artist 的角度看待问题。提及工具,首先要熟悉常规的 2D(Photoshop)、3D(3DSMAX,MAY)软件,最好能各精通一款。脚本语言不是大问题,只要有 C++ 的功底在,转任何脚本都没有特别大的障碍。


除了以上基本技能,TA 还需要有一定的经验积累,并且熟悉游戏制作的技术流程。例如,从美术转职成为技术美术,需要美术去了解程序开发使用的工具,并掌握一定的编程知识。对于程序员出身的技术美术也是如此。但如果想从没有编程基础的纯美术转型为 TA,可能要困难一些。因为转型前期的铺垫工作、知识积累会很长,但没有什么产出,很容易无法坚持到最后。


此外,良好的内驱力和对技术及美术的兴趣是成为一名合格技术美术的关键。“你需要对两方面都要有兴趣,”蔡震泓说道:“仅仅因为技术美术有更高的收入和头衔而进入这个领域并不能保证自己能胜任这个岗位,也不能保证自己能在这个岗位上坚持下去。”



“当然,对于美术出身的技术美术而言,懂一些程序编写十分有必要。 知道如何做脚本,能编写基本的程序可以帮助深入了解游戏开发工具和游戏引擎,从而找到在游戏开发过程中遇到的问题的解决方案。 当美术需要新的工具来完成任务时,为其编写工具很有必要的。”Gabriel 补充说。


7 技术美术的发展前景?


目前至少对于国内环境来说,是比较缺乏这样的人才。因为国内的游戏类型比较偏向于手游这一方面,所以这些企业的 TA 或者 TD 在这方面比较有经验;在其他的一些,诸如最近比较火的 VR ,TA 或 TD可能会比较多一点。但在一些传统的游戏中,这样的人才相对较少。


8 未来还面临哪些挑战?


国内的游戏发展时间较短,没有行业的积累。相较于国外几十年的技术和行业积累,中国整个互联网的历史比较短,更不用谈游戏产业了。游戏产业也是近七八之间,爆发式发展起来的。从本质上来看,方方面面的人才都会比较缺乏。


而 TA 本身又是这些职位中特别少的一个工种,由此就会出现一些更缺的情况。在很多情况下,国内的小公司都会直接找一个 leader artist 或者 TD 来兼顾这份工作,但他们经历上可能也不一定能达得到这种标准,专业倾向性也有所不同。让一个主管在管项目管理同时,又去管艺术风格、技术等等,这些在初期可以这么做,但是随着你的项目的扩大,慢慢的你就会发现,跟不上了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码来求出题目中所给出的数列的和: ``` let sum = 1; for (let i = 2; i <= 100; i++) { let num = (i % 2 === 0) ? -1/i : 1/i; sum += num; } console.log(sum); ``` 输出结果为:0.688172179310195。 ### 回答2: 要求解1-1/2 1/3-1/4 1/5....1/100的和(加奇减偶),可以通过编写JavaScript的代码来实现。我们可以使用循环来遍历每个数字,根据其奇偶性对其进行加减操作,并将操作结果累加起来得到最终的和。 下面是一种实现方式: ```javascript let sum = 0; for (let i = 1; i <= 100; i++) { if (i % 2 === 1) { // 奇数 sum += 1 / i; } else { // 偶数 sum -= 1 / i; } } console.log(sum); ``` 这段代码首先初始化了一个变量`sum`用于保存和的值,然后通过`for`循环遍历1到100的每个数字。在每次循环中,使用条件判断语句`if`来判断当前数字的奇偶性。如果是奇数,就将其倒数加到`sum`中;如果是偶数,就将其倒数减去`sum`。最后,循环结束后,通过`console.log`打印出和的结果。 执行这段代码输出的结果就是1-1/2 1/3-1/4 1/5....1/100的和(加奇减偶)的计算结果。 ### 回答3: 这道题目可以使用 JavaScript 编程语言来求得所给数列的和。 首先,我们需要使用两个变量 `sum` 和 `sign` 来分别记录数列的和和交替的加减符号。我们可以将 `sum` 设置为 1,表示数列的第一项。 然后,我们需要使用一个循环来遍历从 2 到 100 的所有整数。在循环中,我们可以使用取余运算符 `%` 来判断当前数字是奇数还是偶数,并通过更改 `sign` 的值来实现加减符号的交替。 在每次循环中,我们可以通过计算 `1/当前数字` 并根据 `sign` 的值来将结果加到 `sum` 中。如果当前数字是偶数,则将结算结果减去。 最后,我们可以将 `sum` 打印输出即可得到所求的数列和。 下面是使用 JavaScript 编程语言实现该问题的代码: ```JavaScript let sum = 1; let sign = -1; for (let i = 2; i <= 100; i++) { if (i % 2 == 0) { sign *= -1; } sum += (sign / i); } console.log(`数列的和为:${sum}`); ``` 执行该代码,即可得到数列1-1/2+1/3-1/4+1/5...1/100的和。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值