算算时间,好像再过不久就要离开奉贤了,大学生活也度过了一半,在过去的一年多里,我几乎并没有写过些什么值得一看的东西。但不得不说在过去的时间里有了各种新的认知新的想法 ,借此机会我做一个简要的总结。一共有六个部分,各部分没有太大关系,可能副标题也并不恰当,仅仅做划分用。这也可能是我在空间这个平台写的最后的东西,这个地方太过娱乐化太过封闭,所以现在正着手迁移至新的地方,视情况而定,目前的考虑是自己搭一个混合作品集的blog出来。
数据模型与工作流的抽象
在学设计的过去两年,主要掌握了各种软件的操作使用,从这些工具的使用与观察中也能有所思维上的收获。在这些软件中,有着最小的可计算可存储的单元,针对这些单元,或单元的逻辑组合,实现各种复杂的功能,这些功能经过再各种复杂的逻辑组合,去创作复杂的作品。对于photoshop,那就是像素或钢笔锚点,这是最基本图元最底层的抽象(可能像素还能再分割为通道信息),更高的一层抽象是一群像素构成的图层,一堆锚点构成的形状图层或是文字(文字也是矢量,还包含了字符的诸多额外信息),更高的抽象层次包括调整图层,封装嵌套的智能对象智能滤镜,一直到最后整个psd文件的信息。在这样的抽象下,你的所有软件操作就是在操作这样的数据模型,有了这样的抽象,也能很方便的构建出一套能完成自动化任务的脚本系统,而这样的脚本,也是对一套操作的抽象,还提供了让使用者进行抽象的能力。
逻辑是很清楚的,一层层的抽象,一层层的构成,一层层的添加包含,内存里的数据也是这样的,我甚至可以说给我足够的时间我也能写一个ps,即便高能的算法实现不了,也能做出一个好的经久不衰的图像处理框架出来。
过去我觉得那些在各自领域想出各种算法解决实际问题的人很厉害,现在我更认可另一类很厉害的人,他们对要解决的复杂问题的数据模型进行精心分析和抽象,构建一个利于修改扩展的框架,有了这样的框架,前者的算法和模块可以在一个通用的平台进行应用,在这样的一个框架下,通过组合(操作)可以创造出更好的作品或是解决更复杂的问题。
我们对问题的抽象不应仅仅局限于对问题本身,还应考虑解决问题的方式和过程,前文提到,假设我们已经有了这样的一个好的描述性框架,这个框架本质上是围绕软件功能的,但为了更好的解决问题,那就要在抽象中充分考虑该系统所致力于解决问题的本身及过程,以工作流核心来设计抽象,还是从photoshop来看,很简单,摄影的图像处理在现实中是加滤镜头,绘画的过程是一层一层的涂抹覆盖,设计的过程可能是一层一层的硫酸纸上叠加线稿,这些在ps中被抽象成了有序的图层及图层组,这就是众人皆知的层式合成的工作流,ae pr都是这样的。
除了层式软件外,再补充介绍另一大类,就是节点式,代表呢毋庸置疑就是maya,用惯了层式软件,上来接触另一个体系确实不是很适应。从数据抽象来说吧,3d建模软件的最基本单元是点,散在point soup里,通过是nurbs和poly来封装,poly的封装最为自由,就是一堆点线面,非流形都没关系,nurbs必须是quad形式的点集或是点列,然后有degree和span之类的附加,曲面上还有cos线。geometry的部分就是这样,任何变形器和塑形的算法就是在操作这些nurbs和poly单元,本质上就是操作点集。除了geometry,还有shader还有particle sys 等。maya本来就是alias家的,就继承了保存构建历史的光荣传统,所谓节点式,工作就是创造连接节点构成流程,每一个操作就是也是最小元素,组合这些操作来再加入最基本单元构成最后的输出。
关于层式和节点式,这世界上并不是只有这两种的工作流,而是绝大多数情况下我们解决现实问题的方式是这样,关于工作流的设计,应当是对从现实出发的,而不是对其他的模仿,禁锢在已有的成熟的体系内,因为你是在make things easy,因为你是从现实世界而来的人。
数据驱动的设计
假设某个设计问题被你很好的用某套数据模型所抽象出来,那么就可以进行数据驱动的设计,因为所有的设计细节都是要有意图和逻辑的。所以你可以程序化其中的工作,来寻求最优解。参数化就是其中的代表,我所理解的参数化设计,就是在明确设计要求的情况下,通过数据的抽象与计算来得到最后的设计结果,最后的结果和整个模型的输入息息相关,设计可以随时根据条件的变化通过重新计算作出调整。
我们所接触最多的还是在造型领域的参数化,的确可能更多的人认为这还是一个快速生成各种复杂炫目表皮造型的工具,的确我也见过有人在gh里堆了漫天的电池图最后画出个恐龙出来,可能现在的实际领域还是在做效果,但这足以说明一旦我们成功的彻底应用,那么我们的设计完全有希望作出无论是本质上还是表现上的彻底颠覆.
显然易见的,数据驱动的设计的缺点,就是缺少人的元素,人的情感暂时还难以被量化,人的感受还暂时难以被量化,这对于以人为本的出发点是难以接受的。虽然很多时候,一个反应极端理性的解也能带给人好的感受,但理性与美的关系既不能被证实也不能被证伪。除此之外,还有很多很多限制,例如很多问题的复杂程度是不可解的,很多问题没有好的解,很多问题是NP的,这导致我们只能用这种方法做半定量的分析来辅助做决策。
很多设计的对象并不是实体,可能是某个服务,某个流程,某个信息架构,我认为这种数据驱动的模式也能应用在这方面的工作中,而且比起前者更佳适合,因为目标本身是抽象的事物。 举个例子,考虑如何优化一个网站或app的页面结构体系,你可以把每个页面抽象成一个节点,整个结构体系就是一个有向图,搜集大量用户页面切换流,页面节点停留,行为,等信息并扩张数据结构,然后运用图算法甚至深度学习来捕捉用户行为模式,量化用户体验,优化结构体系和页面布局。
有人说人是不能用理论来解释的,很可能再过一二十年就实现了,从设计的角度而言,真是有个美好的未来。
如何更好的搬砖
我一向自嘲我们很多的工作内容其实就是在搬砖,看似学习了新的技能,只不过学会了新的搬砖方式。搬砖式的工作占据了大部分的时间,而真正有价值的部分其实是做决策的时候。重复性的劳动不可能不存在,但可以降低成本,所谓更好的搬砖方式,就是寻找方法尽可能的减少重复性的工作,提高可复用性,出现了不必要的重复说明当前的描述出现了冗余,这是抽象不足的表现,。在做web写css的时候,最差的方式是每个页面单独写,从上写到下,看到什么写什么,得承认一开始大家都是这么干的,页面与页面之间完全不考虑复用性,当站点的页面数量变成几十个的时候,这种就行不通了,你一直在做重复做事情,然后做出来的东西都是不可重复的。后来才想通要复用,从组件的角度来做,比起用砖一块块的砌墙,组合标准化的预制件效率要高的多。在页面出图的过程也是如此,总是越到后面复制用的越多,像sketch这样的新秀,也是在工作流上高度支持做UI组件化而广受支持。 无论是做设计还是做开发,构成项目核心的功能形式表现逻辑,这些都是堆砌组合出来的,组合的粒度小,多样性就好,但丧失效率和统一性,组合的粒度大,多样性就差,但高效,简洁统一,要在这两个方向做平衡。在一个确定的技术框架下,长期受到高速迭代的驱动因素,我们的设计很容易产生同质化的倾向,同时我们也不是理想化的艺术家,可以不顾成本的进行创造。
如果缺乏对痛点的反思,那么就不能取得真的进步。很多我们自以为拥有的能力其实并不配称作是能力。除了现实需要以外,如果一个技能只是其它技能的迁移和重复,那么完全没有必要去学习它。因为这这样掌握的只是一些新的记忆上的内容,并没有启发式的收获。你以为你自己在主动的跨越自己的舒适区来提高自己,其实还提留在原地,只是原地要大了些,并没有新的能力突破。这是在学习上的重复行为,只是改变的搬砖的地方,应当积极避免.
如何更好的搬砖其实本质上是个成本控制的问题,提高抽象程度可以有效降低成本。我们一直在提一个低耦合的概念,就是在流程和功能上做模块化的抽象,无论是web前端里的样式结构逻辑相分离还是MCV MTV之类的设计模式,都是在解决成本的问题,如何把软件工程里的技术应用在设计中,是件值得思考的问题。我们的工作有哪些部分是可以解耦的,哪些地方是可以标准化的,哪些地方是可以用自动化工具进行管理/抽象/简化的,对于设计师来说,唯一能够衡量付出的是时间成本,减少时间成本就是提高效率,就是提高价值。
关于过去将来与未来
时至今日,再次试图去检视自己选择做设计的缘由或者初心,可以概括为对解决问题创造价值的热爱和人文艺术的追求,做设计本质上就是寻找问题的解决方案,工业设计师通过产品来解决生产生活上的问题,建筑设计师通过建筑来解决人居住交往空间的问题,,当然设计一词并不是要局限于设计行业之中,只要是创造性的解决问题,无论是从什么角度切入,都应纳入设计的范畴。我们都是在一个被现实约束的框架内解决问题,都是在戴着镣铐跳舞,无非有些有些人是从工程的角度出发,有些人是从经济的角度出发,可能这主要是个功能性的问题,或可能这主要是个视觉上的问题。我们作为设计科班与其它做设计的区别何在?就是我们解决问题的角度是与 人 息息相关的,人 永远是第一考虑的对象,是我们的出发点,因而我们设计的价值能够得以展现。
很遗憾,这一点我六个月前才有所醒悟,在我刚来到这个学校的时候,当然是什么也不懂,不懂就去看么,站酷behance什么东西天天刷,当时那上面的东西就是我所理解的设计,所以我用了三个月加满了ps,又用了三个月加满了3dmax的poly建模和vray渲染器,为了追求随心所欲的创造震撼人心的视觉效果的无上能力,我又自学了冈萨雷斯的数字图像处理和计算机图形学,傅立叶变换完全没有概念我就回滚数学分析,齐次坐标透视矩阵变换看不懂我就回滚线性代数,为了尝试给ps写插件和实现开发自己的渲染器的梦想,我又毅然决然的入了c++和opengl的坑,去看pbrt,这坑到现在还没填上。当然,并不是说这么一番折腾我损失了什么,至少我的确能运用各种工具来传达我的设计意图,对这些工具的原理也有了了解,我知道怎么的physical based的快速草图,我知道怎么渲染出照片级的效果图,我知道怎么合成与剪辑视频,有了scott和伯里曼的帮助手绘的造型能力还可以,通过c with class和一对cs的书也知道真正做开发到底是怎么回事。
有了技术积累的信心,我才跳出这个盒子来反思整个这一切,同时也要为后来的就业和发展做出考虑,根据前文提到的,那我选择什么样的细分领域更能符合从人出发做设计的核心本质呢?我的专业是产品设计,这个自由度其实是最大的,也是最诱人的,而且可以结合建模渲染的技能树,但学校教的太差,行业还没有发展,就业风险大,学习材料少,也没有人带我。同样能使用上面的技能树的有室内设计,这明显跨行了,剩下的几乎只有做视觉,这也不是好的选择。如果从技能树的角度来考虑,现在有三点比较突出,A建模渲染/B程序开发/C艺术设计。能A+B+C的只有做独立游戏。A+B是游戏TA,如果不能做到顶尖需要专业对口。A+C是专业做效果图和特效的,B+C是应该是做网站方向。这样看,B+C是主要考虑的方向,A还能支持C。然后瞬间就知道方向是什么了,那就是做交互做虚拟产品的设计。
这个方向的确定不仅有对过去积累的考量,从现在看,相对热门,资料相对丰富,机会相对多。从未来看,传统行业的信息化还远远没有结束,互联网/移动互联网还在蓬勃发展,互联网+/VR/可穿戴智能设备/车载界面都需要新的设计,未来是一个高度信息化的时代,虚拟产品设计大有可为。我对此充满信心。
关于所接受的设计教育
回顾一下之前两年的上课,可以说绝大多数的老师都让我失望。
一种是上课几乎不讲什么实际有用的干货,浪费大量时间做一些奇怪的模型,自由度很高,除了做手工和灌输一些在我脑子里疯狂被质疑的伪概念,学不到什么东西。一种是上课按照某本教程,依次演示书上的操作,贯穿整个学期。这说明他自己的水平都没有达到生产力要求,也就不能强求能学到什么好的生产力实践了。还有一种是缺乏相关领域知识,动不动信口开河的。当然也有所有课满满干货,作业也很有道理的好老师,当然也有上课充满激情富有感染力,能让重拾信心与向往的好老师,但仅此两位罢了。从课程内容上看,所谓的基础课以浪费时间的居多,如果是我来排课的话很简单,数学课四年都要有,表现技法上三年,大一 设计史 设计心理学 构成 ,第二年选方向,实体产品的CAD CAM 虚拟产品的 写代码,这才是前两年应该要上基础课,既有大而全的了解,也有能让设计落地的技术积累,然后后面再上行业针对性专业课
差不多上了半年学我就想通了,以后不要念书了,学校不适合我
所以我所接受的设计教育都是在自己教育自己,市面上的设计书籍大致上分两类,一类是讲思想的,一类是讲实践,很多讲思想的书其实是在讲作者的主观理念,这些理念被现代人所认可,被商业所检验,有what 有how 但是往往缺少客观why的部分,也缺少关于自身的反思。没有深入的思考它们,很容易模仿套用,去解决并不存在的问题。关于实践的书,这里并不指那些什么软件操作的,而是围绕案例的,一般来说我认为讲实践的要比讲思想的好,一来你可以通过案例来了解industry的需求要求和解决问题的环境与模式,二来通过作者的自述材料能正确引导你良好的思考习惯与设计思维,三来你往往可以从中总结出比那些单纯讲思想的书更可靠更务实的思想.
我认为设计和实现应该是融为一体的,因为做设计是在解决实际问题,为了更好的找到解决方案,一定要对这个问题对象本身有深入了解。如果你不了解实际的工艺材料加工方法实现逻辑,你怎么可能解决实际问题。你没有实际问题的解决经验,就不要说妄图通过设计来驱动技术进步了。所以在学习设计的过程要兼顾实现的实践,有些实践条件很困难,如果学校不好也没有资源,那就是很大的阻碍,有些则相对容易的多,大家最后都去做平面原因就是实现的门槛太低了。我很羡慕那些很有资源的人,但是却把资源挥霍在享受上,这是很现实的事情,我无话可说也没有认为这样不对。如果你只满足于设计,你无法从开发实现的角度思考问题,无法理解现实世界的复杂和妥协之道,无法适应生产环境。或许很多人觉得不应该做那些脏了手的事情,但本质上那是因为他们的低能懒惰狭隘肤浅而做出的自缚之举。
working with others
关于团队协作,有同行之间的,也有和其它类型团队间的。实话说,即便有些课分组做东西的,我也没有累积出多少想法,要不是我一个人单干,要不是觉得题目太蠢大家一起糊弄老师。在来到这个学校之前,我天真的以为大家和我一样是要满怀信心期待与狂热参与到创造世界的伟大事业之中,我以为我们可以一起做出一些很棒的创意和富有价值的设计,我以为我们可以搞一个studio,投身industry数十载扬名立万。虽然现在多少心灰意冷了吧,但是也没有放弃的意思。呵 感觉自己都要被自己感动了。
团队里做UI UX的一般不高兴别人叫他美工,美工就是做美化的,就是搞表面功夫的,就是做包装的。美工做东西都是靠直觉凭经验的,谁都可以来做,站酷逛个月再学点作图,没有门槛的事情。这个倒是能提醒我们不是做美工的,因为美工没有价值。要做有价值的事情,要最大化的为团队创造价值,如果别人叫你做个logo,你应该帮他把整个VI考虑好,如果别人叫你做界面样式,你应该给出整个UI规范,如果别人让你做前端,你应该从方方面面思考整个产品。大部分人并不能理解设计的价值所在,他们可能觉得这个看着好看就是设计,而真正的人机交互/可用性/架构布局这些最重要最本质的设计目标他们往往是看不到的,要把这些一并解决掉解决好,才能让别人意识到设计到底是做什么和设计真正的价值所在,这样才是真正的在解决问题创造价值。如果你比较不幸,没人意识到价值,或是只是被要求完成任务的,那或许留下来不是个好的选择。
除了这种under promise over deliver大家都知道的事情,还有就是不能轻易说别人不好,这不是什么zz正确的事情,做设计做的完美无缺是不可能的,能够不出什么大问题已经很好了,现实情况很复杂,到处都在做妥协,简直有时候就是妥协的艺术了,指出不好的地方是很容易的,如果你轻易评价别人不好,你又不了解做了什么妥协,就可能被打脸。
在整个业务流程上,因为你是做产品做设计的,无论项目是设计驱动还是功能驱动的,都要求你优先提供进展,其它部门的工作会不能因为你的任务没有完成而停滞下来,解决这个问题除了良好的时间表规划以外,似乎没有其它好的办法,而问题恰恰在于对于做设计而言,时间并没有与解决方案的质量有着密切的联系,给予了确定的思考时间,却不能保证这个设计是全局最优的,却要匆忙投入到下游的处理流程。这同样说明做设计是件很讲究水平并很有价值的东西。 对此我的想法是,如果不能一次提供全局的最优,那就思考各个局部的最优,保持内在的低耦合性和可扩展性,同时整体上提供一个明确统一的方向,在后续的迭代过程中不断适应和优化,有点类似于遗传算法,或者模拟退火。
总之,做真正能实现价值的事情,让别人能认识到你的价值,实现你的价值。要解决问题,而不是创造更多问题。
写在最后
真心觉得做设计一定要know something about everything,你的知识面一定要极宽广,然后同时有几个everthing about something。对几个细分领域有充分了解。这是立足之本。为了更好的解决问题,你要有跳出问题本身思考的意识,并学会归纳问题的解决模式。有很多东西是相似的,有模式可循,比如这个是个分治的思想,比如从建筑设计的角度去类比UI的页面导航设计,等等。
这是个值得你去付出的终身学习的事业,你可能需要投入你大部分甚至所有的业余时间,追求卓越是要付出巨大牺牲的,但我想当你意识到这个世界的一切是如此的妙不可言时,你还是会做出这样的选择。