EDIT: 我不在乎这会受到多少仇恨。这个空间是给所有制作游戏的人的,我永远不会把空间让给那些可怜的恨者,永远。
本帖子 NOT 是关于 AI 生成艺术(无聊!)🥱
是的,我知道 程序化艺术 是什么。编程艺术可以是程序化的,但不一定是,当它是时,还有更多内容
本帖子,像我所有的帖子一样, NOT 是由 AI 编写的,我也不在此推广任何产品。我为自己构建的工具(文中提到的)是为我的游戏自行建造的,我目前并不共享它们,或它们的输出。
我正在观察他人在我们游戏中制作艺术所做的事情以及我所做的,我认为这种趋势是由 AI 大幅简化自定义工作流程而推动的。
程序化艺术是像程序员一样制作艺术,但不是那种糟糕的方式(低质像素艺术甚至更差的 3D 模型),而是利用程序员最擅长的一切的方式。
下面是我看到他人分享的几个例子(目前没有原始链接)
- 一个像素角色渲染器,能够在不同的艺术风格中生成相同角色并以不同姿势渲染
- 用于构建程序化网格的域特定语言(DSL)用于网格操作
我构建的例子:
- 实时合成器,用于复古音效
- 可扩展的数据驱动视觉效果格式
- 类似的数据驱动 NPC 行为和动作集
- 矢量图标工作流
- 我也在开发程序化网格和骨骼绑定
程序化艺术的基本特征:
- 通常是小且基于文本的源文件
- 在构建时间、加载时间或实时生成实际艺术的机械工作流
(“机械”一词我用于经典的“if/else”代码,不涉及大语言模型)
那么 AI 在这里起什么作用?
- 它可以快速大量生产源文件,且成本低(token 开销)
- 它让这些自定义工作流变得可行,因为你可以在手动制作程序化艺术所需时间大幅缩短的情况下进行即兴编码。
一些显而易见的使用程序化艺术相较于手工制作和纯 AI 生成艺术的好处:
- 你可以把艺术品保存在 Git 里
- 你可以以低成本改变艺术风格并快速尝试不同风格
- 你可以重构你的艺术品,例如分离风格、颜色和形状
最后一点正是我称之为“程序化艺术”的原因。你可以毫无顾忌地将编程概念应用于艺术创作过程。程序员通过做他们最擅长的事来创作艺术,而不是做所谓的“伪艺术家”。
让我详细说明最不有趣但最具代表性的例子:矢量图标。这很可能并不新颖,已经被做过很多次,但… 我的工作流如下:
- 从 SVG 文件开始
- 在构建时间,将其烘焙进 MSDF 塔(纹理加元数据)
- 在加载时间,可选地将其烘焙进位图纹理,或者相反,实时渲染 MSDF 图标,如果你需要可缩放的图标。
SVG 文件由 AI 生成。它们仅是文本(XML)。制作数十个图标并多次修改它们很便宜。而且我把 SVG 文件保存在 Git 里。
我可以更进一步:如果 SVG 能够包含其他文件或设置并展开变量(它可以吗?这只需几秒钟就能查清楚,但我现在不做),那么我可以把我的源图标重构为
- 颜色调色板
- 风格参数
- 循环背景(例如增益/减益图标)
- 可重用的形状/符号
- 将上述元素组合在一起的复合图标
如果 SVG 不能实现,那么对 SVG 进行篡改或包装,或自行创建格式和工具,只需不到一天的工作,得益于 AI。
程序化艺术好看吗?好看也不好看。有时好,有时不好。但产出好看的艺术并不是取决于第一次尝试时的好看程度。如果我不满意结果,我会调整参数和工作流重新尝试。传统做法是浪费几天或几周的辛勤劳动。至于占位艺术(即使它可能已经可以演示),它每天都足够用。
它经济高效吗?是的,远比 AI 艺术更具成本效益和时间效益。工具的 Token 成本一次性支付,每次迭代制作和改进艺术品的成本极低。
它有趣吗?你觉得呢?我是程序员,做我最热爱的事:构建工具、自动化、分解和解决问题。你肯定能相信我在享受这份乐趣。我不是在学习那些我没时间使用的技能(比如像素艺术和建模),但现在我拥有资源逐步学习艺术指导的所有关键技能。我也不是在盯着代码编辑器写修复 C++ 代码,为组件或工具编写,而代码本身并不是有趣的部分。
它仍然看起来像程序员艺术吗?绝对。但我用了数小时而不是数月(包括工作流),并且我可以在一天之内多次以更好的风格重做它。
它看起来像 AI 的 sl.op 吗?我不知道。但能够在多个层面、机械且精确地控制参数,避免 AI 产生默认的 AI 风格。
它有灵魂吗?我不知道。灵魂是什么?但如果艺术有灵魂,我想你不会在一边像素化角色 195 的第 56 个姿势的阴影的像素网格中找到它,一边花了 160 天在为你的游戏制作艺术像素化。
评论 (0)