原文标题:The Code/Art Divide: How Technical Artists Bridge The Gap

这是一篇最初发表在《游戏开发者》上的技术文章,作者Jason Hayes探讨了游戏公司(Volition)如何将技术美术师(Technical Artist,下简称TA)整合到开发流程中。

随着游戏开发变得更加复杂,预算快速膨胀和团队规模比上一代开发增加一倍,弥合美术与程序设计之间鸿沟的需求变得非常迫切。

依靠程序员来了解需求,并开发美术管道的时代已经过去了。当今的游戏开发需要更加高效,通过硬件游戏时代的团队规模,要能生产出高质量的3A大作。

TA是一个新概念、新角色,慢慢地开始在游戏行业生根发芽。 每个公司对于TA的角色和职责都有不同的想法。但是,要真正使开发效率最大化,公司必须充分发挥TA的能力。

接下来是我们如何将TA整合到Volition的游戏开发过程中的蓝图,希望它将为您提供一些思路和借鉴。

案例

在为Xbox 360开发Saints Row的过程中,我负责设计和开发许多工具和管道,这些工具和管道用于将美术资产带入游戏。 但是在Volition公司拥有任何TA之前,是由程序员来设计开发这些系统以供美术师使用的。

像任何不雇用TA的工作室一样,程序员是负责开发和支持艺术流程的人。 通常,美术师会提交请求,并且在将来的某个时候,他们会得到相应的工具。 从美术师的角度来看,大多数时候这些工具都不好用,工作流程也不清晰。而且,问题诊断工具可能会带来麻烦。

将TA整合到工作室中可以使程序员从完全负责游戏工具和管道开发和维护的工作中解放出来。 尽管程序员仍然可以在这些工具和管道的设计(有时是实现)中发挥作用,但TA是它们背后的驱动力,并正在寻求双方的最大利益。

这使程序员可以将更多的精力放在开发游戏代码上,而艺术家则可以将精力放在使用易于使用的工具和工作流程来制作出最佳外观的内容。

沟通艺术

在Saints Row开发即将结束时发生的以下情况说明了使用TA的重要性。

我们的游戏存在一些严重的帧频问题,尤其是在夜间玩游戏时。 发生这种情况的原因有很多,但主要是因为我们在没有任何硬件可用之前就已经开发了游戏,这款游戏对于我们工作室来说是一种新类型。

导致帧频问题的众多原因之一是我们使用了每像素动态照明(per-pixel dynamic lighting)。 由于我们的时间不多,因此编程团队的许多人都认为,最好在晚上关闭动态照明并伪装一个效果。 在艺术团队,则更希望保留它,因为照明使夜景具有更好的可信度和丰富感。 在所有情况都相同的情况下,编程团队的想法本来要占上风了,因为发布具有稳定帧频的游戏总比不能发行更好。

由于我对引擎及其功能和局限性的了解,我建议为该问题开发一种混合解决方案。 动态灯光将保持在玩家周围一定距离处,而在更远的地方则伪造效果,这样给人的印象是一座灯光更加明亮的城市,而无需耗费与动态灯光相关的GPU和CPU成本。

这个建议与其他优化方案一起,极大地提高了夜间游戏时的帧速率,这令程序员感到满意。 而在视觉上,我们也保留了艺术家想要的可信度和丰富性。

像我描述的情况经常发生,有时每天发生。 在两个学科之间拥有丰富经验的TA,不仅能够在研发和艺术部门之间进行沟通,讨论出双方都能够满意的方案,更重要的是,能够从整个产品的角度去思考和解决问题。


管道与系统架构师

一般而言,TA应该能够设计和开发游戏所需的所有美术流程。 从这个意义上讲,TA的部分角色是成为管道和系统架构师。

在Volition,这在几个不同的级别上起作用。首先,我们与程序设计和艺术部门合作,确定对双方都最有效的方法,并努力达成共识。 在这个级别上,您可以说我们是面向技术和内容之间的谈判者。

但是,设计关键游戏系统需要对游戏引擎和硬件(例如Xbox 360或PlayStation 3)都有深入的了解。如果TA没有足够的经验或没有将好足够的需求调查,开发出来的游戏管道可能会出现问题,而且问题通常在游戏开发的中后期出现。

TA不仅负责设计和配置管道,他们往往在遇到问题或者公司要发生变革时首当其冲。因为他们设计了系统,所以修复bug或者询问原理,首先会找到他们。

需要注意的是,在Volition,我们的TA不会为程序员设计代码结构。 这种级别的事情既不是我们的工作,也不是我们的专业领域。 相比之下,我们在更高层次上与他们合作,开发出最佳方法来获取从Point A(内容创建)到Point B(游戏本身)以及介于两者之间的所有功能。

内容预算和准则

TA是为艺术作品制定预算和设定技术准则的主要推动力。 对于TA而言,重要的是要记住,尽管这些要求有助于提高游戏性能,但也必须平衡它们,以实现较高的视觉质量。对于TA而言,重要的是要记住,尽管这些要求有助于提高游戏性能,但也必须平衡它们,以实现较高的视觉质量。

创作艺术的方式不应妨碍游戏的性能。 相反,创建它应该充分发挥游戏引擎和硬件的优势。 为了实现这些目标,TA与渲染程序员要紧密合作。

工具程序员

TA应具有足够的灵活性,以便他可以在没有任何帮助的情况下为美术创作渠道开发工具。 通常,程序员不希望编写这些工具,而TA要承担这个工作。

至于开发工具要达到什么样的级别,就因公司而不同了。 按照当今的标准,大多数TA都来自艺术背景,并且喜欢使用动态脚本语言,例如MaxScript或Mel。

随着他们的兴趣和经验水平的提高,一些TA也越来越多地使用低级语言,例如C#和C ++。 这使他们具有更大的能力来编写已编译的插件(例如导出器)以及内容创建包之外的工具。

专业学科技能

如果有困难的职位需要找人,那就是TA了。 TA曾经是内容艺术家,他们会根据需要自学编写脚本,并且对艺术的技术属性有着天然的兴趣。 而在Volition,我们将这些角色分解到游戏开发的核心领域中。 有关我们的技术美术团队的典型结构示例,请参见图1。

图1:显示了Volition典型的艺术团队结构

技术美术总监(Technical art director)。 在我们典型的团队结构中,技术美术总监与美术总监处于同一级别。 此人负责协调技术美术团队,确定功能的优先级,确定和评估项目风险以及安排和设计关键工具。

此外,技术美术总监还设计和实现游戏系统和管道,为美术内容创作创建指导和预算,并确保游戏的渲染性能达到最佳状态,同时与美术总监合作以保持高品质的视觉效果。

通才(Generalists)。 我们所说的通才通常是可以驱动游戏中任何系统的高级TA。 他们具有丰富的经验,通常是关键人物。

角色技术总监(Character technical director)。 角色技术总监负责设置角色骨架,装配,识别和评估运动捕捉和动画需求,安排和协调动画师,以及开发或设计工具和管道以支持游戏的角色系统。

资深TA(Senior technical artist)。 资深TA主要负责更大和更关键的游戏系统和管道的设计和实现。 还负责确保以最佳方式创建内容,这不仅包括渲染性能,还包括高品质的视觉效果。

专注的TA(Focused technical artist)。 专注的TA通常是入门到中级TA。 他们主要关注游戏的特定领域,例如环境艺术或角色艺术。 这些专注的TA担任其特定艺术部门的要职,并向通长或技术美术总监汇报。 他们提供直接支持,并开发各自部门所需的任何所需工具和管道。


技术支持

TA的另一个主要职责是为艺术团队提供技术支持,比如问题诊断。

满足艺术家的支持需求可能是一个耗时的过程。 为了提高效率,我们要求所有请求均以电子邮件的形式发送,以对错误或问题的描述性说明的形式,同时要附上截图。

我们这样做有几个原因。 在Volition,TA支持大量艺术家,包括任何外包的艺术家。 至关重要的是,响应的重点应放在减少请求上所花费的时间上,并使艺术家恢复正常运行,以便他们可以继续工作,并尽可能减少中断。

工作日程安排

技术美术团队的许多工作(取决于团队在开发过程中的工作量)都会影响他们自己和项目的进度。 作为个人,技术美术人员经常面对突发情况,比如在开发工具和灭火之间切换。 作为多学科团队成员,他们必须参加许多其他部门会议,其中某些会议是突发的。

如果管理层能够认同这种工作日常的突发性,并保持开放的态度,那么技术美术的工作日程是可以被管理的。

我们发现以下几种方法可以很好地创建TA的日程表。

图2:Volition关于功能请求和变更管理计划的流程图

及早发现需求。 在Volition,我们允许工作室中的任何人通过电子邮件别名将功能或新工具的想法提交给项目。 这些项目由所有项目负责人进行审查,并在此阶段确定依赖性。

在评估请求时,我们使用五点评分量表,其中1表示“必须具备”。 我们将满足所有第1级和第2级请求作为优先级,而优先级为3至5的项目将在以后进行审核,以填补时间表中的空白点。

尽职调查。 每个工具或功能要求都经过三个阶段:调查,实施和文档编制。

调查用于识别请求的风险。 通常,进度表中没有考虑风险; 通过识别它们,您会意识到构建可靠工具的重要性。

文档要经常被完善。 好的文档确保使用该工具的任何人,无论其技术能力如何,都将正确使用它。

合理安排支持时间。 这是为了适应支持需求的过山车现象。 根据我们的经验,我们发现支持时间通常会随着您接近里程碑或截止日期而迅速增加。

安排缓冲时间。 即使有预定的支持时间,也不可避免地出现无法预料的事情。

变更管理计划。 为工具和功能要求实施可靠的变更管理计划对于保持进度至关重要。 通常,单个新功能对于现有的工具似乎不能实现,但是将所有功能加在一起会带来问题。 参见图2的流程图,该流程图说明了我们如何实现功能请求和变更管理计划。

团队建设的实现

一个公司应该有多少TA呢? 在过去的几年中,我们发现对于80到90人的项目团队,需要三到四个TA。

我们设计团队的方式是:由技术美术总监担任领导,然后由至少一名资深TA和一名角色技术总监担任。 其他人则是更专注的TA,他们被指派专门负责游戏的某些领域。

翻译:Sand

原文链接:The Code/Art Divide: How Technical Artists Bridge The Gap

如何通过svg代码还原图片_【UWA学堂】如何通过技术美术师来弥合代码与艺术之间的鸿沟?...相关推荐

  1. 如何通过svg代码还原图片_如何通过nginx反向代理来调试代码?

    现在公司项目都是前后端分离的方式开发,有些时候由于某些新需求开发或者 bug 修改,想要让前端直接连到我本地开发环境进行调试,而前端代码我并没有,只能通过前端部署的测试环境进行测试,最简单的办法就是直 ...

  2. html svg导出图片,将SVG保存为图片_唐霜的博客

    原文:http://techslides.com/save-svg-as-an-image SVG超赞,但是有的时候你想把它转换为其他的图片格式,比如jpg或png.如果你用d3.js创建了一些图表, ...

  3. 佛祖保佑代码无bug图片_程序员都有哪些奇趣的代码注释,细思极恐

    在很多不熟悉程序员的群体中,可能都认为程序员是沉闷一次的代表,但其实不然,很多程序员都是非常幽默有趣且都有一颗非常闷骚的心.这尤其体现在他们呢好玩的代码注释上面,我找了一写奇趣的代码注释类型,小伙伴们 ...

  4. 代码改变世界_改变世界,一次只写一行代码

    代码改变世界 People like to look at changing the world as a big task. I believe changing the world can be ...

  5. python图形代码怎么写_【Python3-API】定制化图像接口示例代码

    Python3-urllib3-API定制化图像接口示例代码 AccessToken获取可以参考:http://ai.baidu.com/forum/topic/show/497663(Python3 ...

  6. python编辑代码的页面_使用CodeMirror实现Python3在线编辑器的示例代码

    一.编写页面 主要是引入相关的css文件和js文件,这里采用简单插入link和script标签的形式. Document click 二.配置CodeMirror 在index.js中配置CodeMi ...

  7. python交互式方式、代码文件方式_涨见识了,在终端执行 Python 代码的 6 种方式

    原作:BRETT CANNON 译者:豌豆花下猫@Python猫 英文:https://snarky.ca/the-many-ways-to-pass-code-to-python-from-the- ...

  8. git统计每个人的代码行数_程序员实用工具,推荐一款代码统计神器GitStats

    阅读全文需7分钟,工具很实用. 1. 前言 对于Git项目开发,有一些可视化的工具,如gitk,giggle等,来查看项目的开发历史.但对于大型的项目,这些简单的可视化工具远远不足以了解项目完整的开发 ...

  9. sap原因代码配置路径_使用Visual Studio Code编写和激活ABAP代码 (上)

    猪年春节后的第一篇,Jerry祝各位猪年大吉! 2019年的六分之一马上就快过完了,不知道大家在新的一年是否给自己定了新的小目标呢?这里Jerry先预祝大家到2019年年底的时候,大家年初的小目标都能 ...

最新文章

  1. Python-csvkit:强大的CSV文件命令行工具
  2. python离散余弦变换_在python3下使用OpenCV做离散余弦变换DCT及其反变换IDCT
  3. FPGA+CPU助力数据中心实现图像处理应用体验与服务成本新平衡
  4. 实验图文详解——apache的编译安装及httpd服务开机自启
  5. fir.im Weekly - 给 Mac 应用开发者的教程
  6. 不用Oracle?基于MySQL数据库下亿级数据的分库分表
  7. 顶岗实习周记java方向_会计学院顺利召开2021届毕业生顶岗实习动员大会
  8. 从汇编代码的角度观察switch与if...else,乘除与移位的差别
  9. 【转载】Java方向如何准备BAT技术面试答案(汇总版)
  10. 【Antlr】Antlr 孤岛语法:处理相同文件中的不同格式
  11. python微控制器编程从零开始 pdf_Python极客项目编程_(美)Mahesh Venkitachalam.pdf
  12. 【结巴分词】浅谈结巴分词算法原理
  13. 傅里叶光学随机散斑原理 matlab仿真实现随机散斑
  14. 一文掌握SQLite3基本用法
  15. ubuntu linux指南 管理篇,Ubuntu Linux指南:管理篇 译者序
  16. Android 实现左右声道播放不同音乐
  17. access通过身份证号提取性别_Access计算根据身份证号码字段计算年龄和性别的表达式,最好是还能确定户籍地址,该在什么地方输入?...
  18. 初始化之前使寄存器恢复缺省值的重要性
  19. Java基于JSP的网络音乐KTV点歌电台网站
  20. 基于微信小程序的乐团团购系统设计与实现-计算机毕业设计源码+LW文档

热门文章

  1. oracle symonym_oracle vs. SQL 同义词synonym 别名 alias | 学步园
  2. 用Golang写一个搜索引擎(0x05)--- 文本相关性排序
  3. 进行Android应用开发的编程环境的建立
  4. 收集的一些主流网站的GA代码
  5. 病情高度活动的RA病人的感染风险增加
  6. windows定时关机
  7. 根本停不下来,原来学计算机可以这么有趣
  8. 亿级商城促销系统架构设计与实践
  9. 图解|什么是高并发利器NoSQL
  10. 容器管理大战:Kubernetes vs.Docker Swarm与Amazon ECS