前端与美术的配合

 

      老闪客们应该都知道,FLASH这款软件在历史很长一段时间内都是用来做动画的,闪客和美术在这段时间内本就是同根生。后来随着第二版AS1和AS2逐渐完善,以及AS3的强势出炉,闪客们才逐渐分化成纯程序和纯美术两个阵营了。但不管怎么分,FLASH程序和美术之间的关系依旧非常亲密,一个优秀的AS程序员必然要比其它语言的程序员懂得更多美术方面的知识,至少也要能熟练操作FLASH IDE,并进行简单的图形处理。FLASH程序员与美术的合作大部分时间是由AS程序员主导的,主要表现在以下几个方面:

  1,FLA文件管理:把有联系的美术素材放进一个FLA文件中统一管理,既能有效减少美术素材的数量,也方便程序员写程序。本来像这种美术素材管理应该是由美术负责的,但由于这些美术素材大部分时间可能也需要程序员写程序,美术和程序需要共享这些素材,虽然我们可以用SVN进行共享和版本控制,但程序员和美术还是要靠约定才能非常默契的知道什么时间该到什么地方找什么文件。而这个约定就什么我们程序员应该制定的,因为据我观察,程序员在条理性和制定规则方面一般比美术更靠谱。以我们公司为例,文件管理基本上都是由我负责的,我把需要多个美术和程序员共同维护的部分以项目名命名成一个文件夹,项目下如果需要还可以进行子分类,分类规则也是我制定。而大部分的子模块可能只需要一个美术加一个程序员就搞定了,这时候美术就把素材放到以自己英文名命名的文件夹下,至于他们的文件夹内如何分类,我会给出意见,但并不强制管理。模块程序员也会都有以自己英文名命名的文件夹,他们会把美术的纯FLA素材拷贝到自己的文件夹下,并根据模块进行子分类,然后写代码并发布SWF,至于SWF文件如何管理,我会在下一节中讨论。其实我的管理目标非常简单,我只需要所有的美术和程序员能在任何时候瞬间找到我们需要的素材和源代码所在地,并且把需要的版本调出来。只要这个目标还在可控范围内,我就会给所有员工最大的自由性,把自己从管理里解脱出来,把更多的时间投入开发,毕竟对于创业型公司而言,快速开发,让老板和市场看到产品才是主旋律,管理只需要在必要的时候强势出手就可以了。事实上,我们公司的文件管理,我每隔半年才会强势管理一次,用大概一周的时间重新规范规则,其它时间基本处于放任自流状态,但从没出过什么大问题。最后给大家一个数字,我们公司经过将近三年的积累,已经有几十个G,上万个美术素材了。

  2,SWF文件管理:SWF文件一般是由前端程序员发布并管理的,不过也有一些SWF可能不需要些代码,比如家具、个人面板背景等等,这些可以直接由美术管理,管理方案和FLA文件管理差不多。最大的不同就是,SWF文件最终的发布路径是内网模拟测试环境,而不是本机。像我们这样的更新驱动游戏,不可能为每一个模块都单独搭建拟真测试环境,如果这样的话,可能我们测试环境还没搭好,就该上线并准备下一周的更新了,所以所有的模块最终的整合测试都是直接上内网测试环境进行。

  3,FLA内元件的管理:这个问题相信很多AS程序员都碰到过,也都为此头痛过。美术给到程序员手里的FLA文件可能是混乱不堪,库里没有任何分类,元件名也都是清一色的“元件1、元件2,元件3……”,元件内部遮罩,组合,层次也都没啥规律。要是美术直接给我一个AI或者PS的源文件让我们自己导入FLASH,那我们就更抽了,颜色模式的改变,路径工具的失灵,大量的图层导致裁切困难,而且还不能进行打散合并,只能一层一层的切。这个时候,正如我前面提到的,一个合格的AS程序员应该对美术和图形软件有更多的了解,你应当及时纠正美术不恰当的做法,甚至给出合理的解决方案,比如你应该知道FLASH只支持RGB颜色模式,AI不但整个文档可以指定颜色模式,每个图层也可以单独指定,当美术给到你的AI导入FLASH有色彩差异的时候,能帮助美术找到哪里的颜色模式不对,并建议他们以后只使用RGB模式。很多纯AS程序员可能有图形恐惧症,他们会想尽一切办法把这部分工作推向美术,但最终他们都会很郁闷,因为他们会发现,除了能指定库文件夹的命名规则外,其它的规则很难跟美术说明白,而且由于模块的千变万化,很难总结出一个完全通用的规则,想从美术哪里拿到一个完全不用修改,自己可以直接写代码的FLA文件,几乎天方夜谭。所以,与其让FLA文件在美术和程序的你来我往中浪费时间,与其让自己在对美术的鄙视中愤懑抱怨,不如提升一下自己的美术常识和图形处理基本功。毕竟,元件在舞台上怎么命名,关联什么类,层次怎么样,怎么被程序利用,这些只有我们程序员最清楚,这部分工作由我们程序员完成完全是合理的,也是效率最高的,美术只要把我们需要的素材交给我们,并放到方便查找的地方就可以了。放下程序员的架子,主动走入美术的世界,对我们程序员绝对有好处。

  4,FP的性能问题对美术的影响:谈到这个问题,我就想起了一个让我抽搐已久的情况。我们老板总是喜欢语重心长的对我说:“火山,你给咱们前端人员和美术出一个方案吧,告诉他们怎么做可以让FLASH性能最高!”额,现在请问哪位朋友可以帮火山回答这个问题。火山真的惭愧,搞FLASH搞了7年了,始终还是没完全弄明白FLASH的诸多性能问题。不管以前的MM还是现在ADOBE,都将其图形处理和屏幕渲染部分视为其镇山之宝,不肯公开其技术内幕,我也就始终无法从理论的高度给出一个本质的回答。我现在的大多数性能解决方案,都是根据项目的实际情况,根据7年来的经验总结出的经验科学。而且我始终不相信,谁可以一个给出一个适合所有项目的、通用的性能解决方案,可以同时让内存、CPU、带宽占用都最少,而且画面又很炫,功能很强大,SWF文件非常小,可玩性非常高,而开发周期和成本却很少。内存、CPU、SWF体积、带宽、效果、成本,这几个要素往往是相互矛盾的,你对其中任何一点的过分优化,都有可能导致其它点走向反面。我深信,在目前这个时期,一个性能方面的高手,绝对不是看他能不能给出一个全面优化的方案,而是看他在面对不同的项目,不同的情况时,如何做出选择和取舍。是的,“选择和取舍”永远都是人生最艰难的话题:手心手背都是肉,削掉哪边呢?老婆孩子都掉海里了,救谁呢?在这样的情况下,我觉得一个负责的前端人员,反而不应该仅仅简单的扔给美术一份死的文档,告诉他们应该怎么做,让他们一直这么做就可以了。前端人员应该在每次面对一个实际情况时,都不厌其烦的跟美术讲清缘由,我们应该尽量授人以“渔”,而不授人以“鱼”,让他们明白选择的道理,而不是简单的告诉他们选择什么。相信只要是虚心学习的美术,经过一年半载的讲解他们就能替你做出判断了,这时候你再让他们去跟后来的美术讲,你就解脱了。很可惜,大部分不懂技术的老板可能觉得你是在故弄玄虚,非要你给出一份文档。无所谓了,你跟不懂技术的人争论不是自讨没趣么?老板更多时候是从管理的角度出发的,我们应该配合。我们也不是没什么可写,比如尽量减少元件数量啊,减小SWF体积啊,减少持续性动画啊,多做触发性动画啊,少用遮罩和滤镜啊,不要嵌入中文字体啊,提高元件重用性啊等等等等!这些建议听上去完全正确,忽悠不懂技术的人正合适。但其实在高端的开发中,这些理论都是废话,帮不上多大忙,因为地球人都知道了,我们碰到的问题肯定是超越这些技术点的高端问题!

  综上可以看出,其实前端和美术的配合过程大部分时间是由前端主导的,这也是我前面一再强调前端要多懂一些美术知识的重要原因。当你可以和美术一起谈论美术理论,在美术的电脑上直接操作给他们看,当你从美术的角度给他们提出解决方案的时候,你往往会更容易被美术所接受,担负起主导前端与美术合作的责任。

你可能感兴趣的:(前端与美术的配合)