谈到艺术时,大家自然而然会想到“美”“色彩”“素描”等这类视觉维度的词语,但很少有人会将其与“计算机编程”联系起来。“编程技术”介于艺术设计与软件编程之间的交叉领域,自21世纪开始,早已开始走上历史舞台,但其在国内各个行业的应用还没有深入研究。随着科技的快速发展,计算机媒介的出现是对人类文化的一次巨大的冲击和颠覆,它的发展必然会影响到艺术的创作形式和内容,给艺术从业者提供一个更为广阔的空间和平台。如今,编程技术早已不再是工科从业者的专属,越来越多的艺术家开始在文化产业领域研究这一新的创作范式,他们将计算机屏幕当画面,计算机语言当画笔,去量化各种各样的视觉元素,以此来进行有趣的艺术创作。
1.编程技术概述
所谓编程,就是让计算机用某种编程语言来解决某一问题,最后得出结果的过程。计算机要想了解人的意图,就必须把需要解决的问题以计算机能理解的形式告诉它,使它能按人的指示一步步地进行工作,完成某种特定的任务,这是人对计算机的要求。人类与电脑沟通的过程就是编程。
1.1早期的编程艺术家们
在《计算机编程的艺术》中,美国计算机科学家、斯坦福大学计算机系荣誉教授高德纳曾提到:计算机编程也是一门艺术,程序员们则是创造它的艺术家。在过去几十年中,编程技术的新奇性吸引了国外大量勇于创新、敢于冒险的文化生产者,同时也引起了观众与艺术作品间的体验与思维方式的转变。在20世纪八九十年代,艺术家让·皮埃尔·赫伯特和罗曼·罗斯科通过算法和编程推进了数字艺术的创新,早期编程艺术的探索,深受荷兰风格派的影响。在20世纪80年代初,著名数字艺术家罗曼·凡罗斯科用自己的个人电脑实现了编程艺术。他还在1994年发表了《算法和艺术家》的论文。凡罗斯科提出了“艺术=算法+计算机+画布”的思想,并对计算机人工智能绘画进行了深入的探索,在他看来,要创造一种新的视觉语言,计算机是最佳的工具。此外,科恩也是一位积极探索编程技术的工程师,他设计了一系列计算机抽象艺术图案,20世纪80年代后期,他通过C语言写出一个喷绘的绘画作品。人工智能专家雷·库兹韦尔指出:在未来30年,随着计算机显示器和自主绘画软件的进步,计算机将成为展示绘画的绝佳载体,未来的大部分艺术形式都会有虚拟艺术家的参与,艺术将是人类艺术家与智能艺术化软件共同合作的成果。
1.2编程技术在新时代的发展
近几年,在西方数字艺术界,计算机编程技术作为一种创作工具被广泛关注着,基于此,编程技术不断地创新并发展着。编程技术最令数字艺术家痴迷的是其随机性和无法预测性——同样的算法在不同时间运行,得到的结果也不尽相同,因此如同花开花落,春华秋实,通过指定一个参数,艺术家可以创造出一个大千世界,也可以创造出无尽的美丽绘画,这种随机性可以通过指定的程序的不同参数来产生更符合美感的动态插画。我们要充分发掘编程艺术领域这座金矿,这是顺应时代潮流的大趋势。
2.编程技术在动态插画艺术中的应用
2.1动态插画艺术概述
新媒体平台给插画界带来巨大的机遇,平添了不少亮色。适合新时代发展的插画艺术——动态插画艺术集声音、图形、图像、视频画面和文字于一体,在许多视觉领域应用广泛。动态插画的出现已成为一种时尚趋势,具有更好的视觉感受和更丰富的艺术表现手段,更加符合年轻人的审美。如今,大多数数字艺术家都会使用AfterEffects软件,它采用基于层的工作方式,大家可以很方便地对软件中图层中的图形图像进行数字化控制(包括关键帧、路径、表达式、滤镜、插件等)。设计师结合自己所制作的静态插画,可以游刃有余地做出生动灵活的动态插画。该软件拥有很强大的插件功能,广泛应用于电影、建筑游戏、动画、电视包装、插画设计和UI动效等领域,已成为数字艺术家必不可缺的工具。对于想把动态插画艺术学好的人,学习AE编程的艺术技巧是必不可少的一环。
2.2AfterEffects中的编程技术
AfterEffects(简称AE)是一种基于PC和MAC平台的特效合成软件。AE操作便捷,功能十分强大,属于非线性编辑软件,它在新时代的影视后期合成制作中起着至关重要的作用,其特技及动效系统能够充分满足设计师的创意需求,将画面的美感发挥到最佳状态。由此可见,AE在动态插画艺术设计中发挥着举足轻重的作用。AE表达式是内置于AE的程序语言,是基于JavaScript(一个用于Web开发行业标准的高级通用编程语言)脚本程序语言的一种拓展运用,通常我们先在操作面板中手动创建一个动态链接,任何数值感觉不合适可即时修改,在这个过程中,可以充分地发挥艺术家们的想象力。表达式的优先级高于关键帧动画,比传统的打关键帧操作更加方便快捷,从而让插画艺术显现得更加灵活、丰富、生动,与此同时它还可以保留原始的关键帧设置。而Java是用英语写数学的表达式,JavaScript没有Java那么难,他们的构架一样,很多细节又不同。许多艺术从业者并不懂JavaScript,也不了解AE表达式的具体含义,但他们也可以学好它。
2.3编程技术在动态插画艺术中的应用
我们在绘制动态插画之前,需通过Photoshop或Illustrator软件绘制静态插画基本场景,统一其分辨率和尺寸。再创建AE工程文件,将插画源文件(PSD或AI格式)导入至AE工程中。先新建一个合成组,采用高清HD预设,帧速率25fps,时间长度10秒。这些基础设置做好以后,下面笔者将介绍几种常见的AE表达式,用户可以根据自己的需求,选用合适的程序语言来实现精巧的动态插画艺术。2.3.1循环表达式loopOut作为一个常见的周期循环表达式,经常用于AE的动态插画创作中。循环表达式可以控制循环的间隔,当我们需要设计有规律的动态插画时,其形态符合某种数学变化的规律,可以应用这个数学周期函数去生成有规律的弹跳或摇摆。但是,loopOut表达式的本质是基于关键帧动画的周期循环,因此我们在使用时,一定要确保一个前提条件——提前在图像中加入关键帧动画。2.3.2随机表达式和抖动表达式当我们需要设计极不规律的动态插画时,可以运用随机函数random和随机抖动wiggle表达式。这两种表达式也十分典型,可以巧妙地生成画面变化的随机性。random(x,y)的意思是在x和y之间进行随机的抽取,随机抽取的最小值是x,最大值是y;同理,wiggle(x,y)表达式中,x代表的是抖动速度,y代表抖动幅度。例如,wiggle(3,5)指每秒抖动3次,位置改变的值是0到5范围的随机数。该表达式可以高效的仿真动态插画中的随机变化,经常用于模拟摄像机的震动、图层的忽明忽暗、光源的随机闪烁、人物或景物的随机运动等。2.3.3时间表达式时间表达式time*n是一个自变量函数,它是随时间单调递增的线性函数,指随时间变化的频率。自变量n越大,time变化越快。例如,time*10,指的是时间向后走1秒,属性值就改变为10个值,同理2秒则改变为20个值。利用此表达式设计动态插画,可以使插画艺术具有随时间变化的动态演化效果。另外,常见的还有time*[x,y]表达式,[]这个括号的作用是存储数值,每秒变化x次,每次变化y个像素。将艺术、科技和设计融为一体的编程技术是一种全新的视觉交流语言。上述几种表达式均为较简单的程序语言,用户通过几次练习,很容易掌握其中的原理。
3.结束语
编程技术包含许多逻辑关系和数学知识,改变并扩大了艺术的表现形式,它开拓了新领域,用户可以通过编写程序获得极佳的体验和探索。因此,如何编写漂亮的程序,从而提高动态插画艺术的制作效率,这不仅是设计领域的一个新课题,也对创作者的素养能力有着更高的要求。基于此,我们要不断分析时代潮流与脉搏,理解新技术的意义,思考新技术的影响,超越自身,进而完成突破。
《编程技术在动态插画艺术制作中的应用》来源:《影视制作》,作者:范姁晗