Skip to content

写代码算不算艺术技能?算。

和 Minnie 的一段对话抛出了一个问题:写代码算不算艺术技能?我会说算。下面讲讲我为什么这么想。

代码早就是我艺术实践的一部分

我常年在大概 30 种媒介里干活(还算规律)。其中一大半更像写代码,而不是画画。

真正涉及代码的两种,是 3D(用 Blender)和我在 DAW 里做的部分音乐工作,两者都要写 Python 脚本。

ZBrush 有自己的语言。Unity 用 C#,我做的很多 2D 动态图形工作也离不开 JavaScript 脚本。

我还大量使用角色构建工具(VRoid Studio、CC4、Daz、Poser,诸如此类),干的全是平衡「变形目标」(morph targets)的活。

说人话就是:我在一堆编号滑杆之间腾挪,找出刚好那一组形变,让它们彼此配合,最终搓出我想做的那件艺术品……办法是上下拖滑杆。

这个门类里剩下的全是关键帧、曲线动画和各种动捕——这些显然也不算艺术,啧……开玩笑的。

这一套一直被公认是正当的艺术技能,而且它本身就是完整的艺术门类。

这些活我断断续续做到今天,差不多从 2007 年 MetaCreations 发布 Poser 4 那会儿开始。从来没人说这不是艺术——哪怕人们一度执着地告诉我,Daz 不知怎么就成了角色艺术的终结(顺带一提,并没有)。

当时的说法是它「太容易了」。

而不是它不是艺术。

工具、展览与雕塑

这里有两件事,你想查就能查:一个是我自己想出来的技术方案,用来在 Blender 里自动化生成 ARKit blendshapes;另一个是我为 Unity 写的材质转移工具……写它的,就是代码。

我最早当数字艺术家的经历之一,要回到 QBasic 的年代:指挥小海龟走来走去,再让它下一场雨;还试过用递归 goto 循环做分形树。

顺带说一句,这种练习所需要的控制力,比「传统」数字绘画多得多。

我办过整场的展览,展品全是程序生成的 GIF,而且同样全部用代码做出来。

而这一切,还没算我做过的一些 3D 打印雕塑——你懂的,那玩意显然既靠代码又靠 3D。

为什么 AI 和写代码感觉不一样

好,长篇铺垫到此为止。对我来说,AI 其实不像写代码。原因如下:

代码多少有点死板。它有规则,有预定义的结构:对象、约束、函数、类,诸如此类。数学非常直接,而且当你拿它做艺术的时候,你手里的控制权多半比一个艺术家真正想要的多得多。

对了,此刻我要是不提,就会有人跳出来说:你当然可以用 Python 写自己的 Automatic 或 comfy 模块,用代码来做这件事——完全可以,而且这两样我都做过。

没错,微调也可以技术性拉满。

但我认为大多数人不是这么用 AI 的。

我觉得社区几乎是对半分的:一半人直接喂生提示词,另一半人拿自己的画(或成组的画)去垫着提示。

而这两派人里,各自约有半数在主动试着折弯机器,用新鲜有趣的方式颠覆用途。这拨人有个名号:Neural Benders。

我就是其中一员。

有重叠,不等于同一种艺术门类

先不岔开去聊我对神经折弯有多来劲——我认为,拿提示跟写代码比,就像拿写代码跟会计比。

对,有重叠。

不,它们不是同一种艺术门类。

会计和精算会把我的脑子干碎。单说能拿数字干的事,这是我能想到的最无聊的一件。它有跟法律挂钩的规则,有跟因数分解和百分比挂钩的规则,还有速度这种东西。有时候甚至要做预测,还要做一大堆分析。

相比之下,写代码有创造性得多。你可以想怎么解题就怎么解题,自己拼出一套解法走到底,规则随你定,再疯、再不成体统都行。只要你从 A 点到了 B 点、没报执行错误,朋友,你作为一个程序员就已经成功了,不管你水平高还是低。

折弯媒介

视觉 AI 顶着老古董语言模型开工——就是你在 Siri 或 Google Home 里见过的那种——去生成新的艺术构图,底料是文本、图像和各类深度映射,依据的是某个神经网络里关于艺术的非常宽泛的模式与「看法」。

AI 和写代码的一个关键区别(至少在 Automatic 工作流里)是:你没法用输入的提示词把系统整崩。

写代码,语法错误一犯,它就停下不跑了。AI 正相反:把一切都拆成简单的算术,再把一个数从另一个数里减掉,然后一直算下去,哪怕算出的是负结果。

这正是它作为艺术工具最来劲的地方。

等你练出一定手艺,就会发现自己能以人类自己都难以想象出来的方式折弯 AI。像是在跟一个外星人合作——它光看明信片和梗图,就懂了我们的整个宇宙。

艺术发生在你意识到的一刻:你对这个全然陌生的东西所做、所说的一切,都在以让它彻底犯晕的方式影响这台机器。

而你做这件事的时候,你就是艺术家——因为你正凭自己的意志、凭你各式各样的画和图像映射,做点什么去改变这个宇宙。

你们管它叫什么,我无所谓。