视觉传达范畴互动新媒体应用分析-Arduino.Wiring.BUGbase.Processing.ActionScript.Wii.

星期一, 十二月 10, 2007

艺术系的互动入门-2-软件类,代码(code)概述

代码(code)


画画需要纸和笔,互动新媒体的创作也需要特定的工具,把Arduino这块裸体的电路板算做纸的话,构成程序的代码(code)就是对应的笔。Arduino会在下一节的硬件部分做详细讲解,本节出场的主角是代码(code)们。

Arduino是一台机器,它能听懂的语言不是中文,日文,朝鲜文,也不是英文,法文,而是“010101011010100101001“,但这么多0和1写起来实在麻烦,就有了逻辑清楚便于理解的高级代用品-汇编语言,要告诉Arduino我们的想法,就要用它能够理解的语言给它下命令。这就是为什么我们要学习代码(code)的原因。

听到写程序,不管是Flash AS动作脚本还是号称设计师艺术家专用的Processing都能让艺术院校的同学们胆战心惊。

非要用代码不可吗?
回答是半肯定的,在本系列的文章里一定要用。



写程序不完全像想像中可怕,找到合适入门途径,多多尝试保持热情很快能找到其中乐趣。这里有许许多多艺术院校出身学习使用程序做艺术创作还成绩斐然的榜样们,比如《Processing: A Programming Handbook for Visual Designers and Artists》的作者Casey Reas,以及《Processing Creative Coding and Computational Art》的作者Ira Greenberg.






有没有必要学写程序?为什么要学?
Ira Greenberg在他的Processing教学引言中的一段文章很适合做这个问题的答案,以下是我做的粗略翻译。



From 《Processing Creative Coding and Computational Art》
Chapter INTRODUCTION
Page XXii-XXIII
Author Ira Greenberg
Translate GaoLei(whlaforest)


“Intended audience
这本书的读者定位为程序编写初学者,做为Processing的入门介绍,阅读本书并不需要你有任何的编程技术,所以无须担心。我在想,也许你有使用Adobe PhotoShop这类设计软件进行创作的经历,不是说这本书意义重大到需要设计师,艺术家们捧读。事实是我不想向你灌输一定要“很擅长”或者喜欢数学的思想,但是相信我,数学并不像想像中高高在上盛气凌人。

Coding as an organic, creative, and cathartic process
当我告诉人们用编程做艺术创作时,他们总表现的很古怪顾左右而言它,或者告诉我说他们认识的某个做设计的家伙是用IMovie来做视频。当然,对没有编程经验的人而言代码就是莫名其妙,古怪和复杂的代名词,学习起来还耗时耗力。另外一种常见的说法,代码是属于技术范畴而和艺术创作完全搭不上边的玩意。

相对以上两种态度,我们有一条折中的路可以走,这也是本书中所提倡的,它把代码看作一种艺术形式而不是单纯的技术工具,也许有些代码看起来超出我们的理解范围,但不用担心,尝试运行它看看结果就可以。大多数时候艺术家们都在尝试属于自己的创作方式,这种探寻和尝试使得艺术家们能够得到意想不到的灵感。通过编写程序也能让我们获得相同的灵感,而Processing语言就为我们提供了实现"用编程做创作"的便利。

“I’m an artist—I don’t do math”
我记得在学校的时候,大家都有很多名头:写作能手,阅读健将,数学小子,艺术青年,运动猛男,等等等等。事实上这些外界贴在我们身上的标签在生活中起到的更多是限制发现真正自我的反面作用。当然,另外一些标签(口齿不清,数学白痴,五音不全,等等)更加过份。从纯粹的实用性上说,这些标签有效的帮助管理者和电脑提高了管理我们的效率。从人性的角度来看,这些标签把我们框在一个小小的框框中,直到我们真的以为自己真的只适合做某一件事情。(妈的,我严重同意作者这段话,当然括号中这句屁话是我加的)。

我最喜欢给我的艺术系学生们上三角学课。只要听到三角学他们就像屁股上扎了针一样心神不宁,心里还一定会想 “这个老师没变态吧?”当我还是艺术院校学生时也有相同的反应,我还记得自己在高中时三角代数都没学好,所以基本上我靠自己又学了一遍三角学。然而,我最大的收获是发觉三角学(和普遍意义上的数学)有着无穷无尽的诱人魅力,特别是在创建视觉有机模型及其它自然现象时-从大海中轻轻摇摆的波浪,到复杂的swarm?(怎么翻译呢)和海贝的曲线构造。数学完全可以算作极富表现力与创造性的媒介(可能这个结论在高中阶段不成立)。最后的结论就是,对于多数读者而言使用Processing进行数据运算将会非常非常非常容易上手-毫无疑问。”

翻译完毕,那么我要推荐以下软件和书籍作为大家的入门教材。
软件选择Flash ActionScript 2.0(Flash 8) 或者 3.0(Flash CS3),以及重复了无数遍的Processing.
Flash有表现具像形式的能力,而Processing对于复杂的图像生成很在行,我这个门外汉姑且这么偏颇分类-前者适合具像表现(做做简单运算),后者适合抽象表现(适合做复杂运算)。(多谢aaajiao同志的补充)

ActionScript 2.0的教学在国内有很多(开动Google和Baidu搜索吧)。ActionScript 3.0版本的《Make Things Move》将会是大家入门的超级好书,英文版可以通过搜索下载(当然买原版最好不过),由Webstudio的站长egoldy翻译的中文版应该会在年前由图灵出版社出版,之前可以在这里看到翻译样稿

至于Processing,请先前往官方网站看看可以用它做什么。教学书籍当然是选择上面推荐过的《Processing Creative Coding and Computational Art》,及《Processing: A Programming Handbook for Visual Designers and Artists》我正在做后者的中文化翻译,大家过段时间来blog看看有没有更新(来的太勤会失望)。中文化的豆瓣讨论组请看这里,中文讨论论坛可以看这里

两者都适合做交互设计,而我接下来的文章将使用Flash ActionScript做为示范工具,所以大家可以稍微了解下ActionScript先。

学习代码(code)有什么需要注意的吗?
恩,最怕的是在不知道这些软件可以干什么的状态下就逐个学习语法,这样会很难很费时间。先大体了解ActionScript和Processing可以做什么,有什么特性,有了总体印象后再跟着最最简单的但是很系统的教学来做。我看过最有趣的一套教程(ActionScript 2.0)是由台湾吕聪贤做主讲,点这里可以在线看到。ActionScript 3.0的视频教程点这里可以看到(这一部没有仔细看过,不知道质量如何),2.0和3.0的区别非常大,急用的话学习下前者,有长远的打算并且时间足够,还是请慢慢寻找资源学习3.0,引用Chang的话来说就是“会是一个很棒的投资”。

我用那个软件多一些呢?
和大家一样鲸鱼也是初学者,最初我选择使用ActionScript 2.0来做网页和小小的用鼠标控制的交互试验以及动画,有机会接触到众多软件后一时迷糊起来,不知道该择哪一个做主打,在一股脑尝试了ActionScript 2.0,Processing和ActionScript 3.0后,我决定通过先学Processing来做程序世界的敲门砖(这个软件真的是太容易学习喽),不同的程序其实在语法上也有很多的共同处,就像是学会Photoshop再看Illustrator,哈,好多相似的地方!通过Processing的学习搞懂程序编写的简单规则后,钻研ActionScript 3.0时的思路会变的开阔清晰。
所以我的选择是,由Processing入手,再转变至ActionScript 3.0。

题外话--在经由亲手试验Processing的教学范例时,深深被它呈现的由点,线,面构成的图案所吸引,让我想起来在大学一年级平面构成课程时专心研究点,线,面的情形。

那么代码(code)部分完结了,接下来将对硬件部分做简单介绍,Arduino or Wring。

没有评论: