Character Creator是一个帮助人们轻松创建出漫画角色的web应用程序,只要按照自己的喜好选择人物特征元素(包括性别、发行、眼镜、嘴唇等等),就能创建出一个漫画形象,具体的大家可以进入网站体验,网址:https://charactercreator.org/。 }, |7 @6 S5 C$ S( P* _
' @! v5 g9 G/ F
( x8 f, ]% d( [6 B' P1 S5 \! Y% s1 I
Frederic是这个网站的开发者,他竟然用了六年的时间来创建和改善这个网站,直到现在收入才达到450美元。可以说是,Frederic是“用爱发电”。让人感到佩服的是,他原先只是一个漫画家,自学各种开发技术,一步一步再创建了Character Creator。 ; |& D i7 a6 Y3 I, ]! c4 y0 B! E, d& J7 y0 o 你的背景是什么?现在在做什么?/ { r4 }9 _2 O) m" d
# g) [" I; E5 O" |) o6 m
嗨!我的名字叫Frederic,是一个漫画家和网页开发人员。我从小就在家里的电脑上编程,在画桌上画漫画。 ' n* M/ |; n* Z. p( y % q q$ s& A( x我曾画过一段时间的漫画,最终成为了一名网络开发人员。这两种技能最终结合在一起,这也是我们做出Character Creator这个产品的基础。: ~; @( r7 A* d5 }" c. I
6 O! q, j4 p7 q6 @" Y }
Character Creator是一个web应用程序,它帮助故事讲述者能够按自己想要的效果创建漫画角色。只需点击一系列选项和菜单,根据自己的选择就能建立角色。网站还有一个下载按钮,这样使用者就可以在存储设备上保存一份矢量文件。; D" y) k$ y6 t: U- A7 s6 [. [
U6 a' R$ R3 Q' g. @
我创建Character Creator目的是让自己能够改进角色创建过程。作为一名开发人员,我可以看到重用代码的好处,但作为一名艺术家,没有复杂的方法来做到这一点。 8 r3 T/ j; E4 ]' L4 L9 g 8 s1 U$ o9 W: F6 I漫画家们每次画一个新的面板都是要从零开始的。而通过将矢量艺术转换为一种媒介,并将字符作为代码位来处理,我就能够将组成字符的所有元素进行分类,并在每次需要它们作为新字符的一部分时,用模块化的方式重复利用。这样一来,每个项目只需要绘制一次,所有人都可以使用。 ' q ^' o* b' L z# B0 H/ S6 ^' j% ` t* O, N/ m- A2 D9 b
组织这些图的另一个好处是,您可以设计一个算法来帮助从大量元素中创建原始的、随机的字符。这些随机的角色往往会给故事带来惊喜和灵感。6 G: { q- ]# X6 m+ A& d
D: z0 {; D# B- G9 f 是什么激励你开始构建Character Creator? 5 M. t- y: Q3 Y$ B+ u5 b 6 s) |7 g2 d+ f8 [0 }, q我当时正在做一个漫画书的项目,这个项目开始失控了。我想要以最有趣的方式着处理这个项目,但整个过程让我感到筋疲力尽,把项目拖得很慢。这个痛苦的过程,迫使我去寻找更好的方式来完成任务。0 H) R7 C7 ?$ t' n( K4 k! ~
. d6 H3 b7 e9 S' v2 o3 g那时,我已经把软件换成了Linux,并开始使用免费的图形程序,这时我发现了矢量图形程序Inkscape。它让我重新发现了矢量图形。几年前在学校时我就玩过这种格式,但当时并不是很感兴趣。 - J3 W" Q- `4 ^% x" C, j) r. |* |- H: B, I
可缩放矢量图形(Scalable Vector Graphics,SVG)的属性让我觉得可以尝试和测试一下自己理论。 $ x" G' G" i5 X2 \# q# U, a; D. Z1 _- M; e" c! a! X m% H
为此,我还必须会用JavaScript编写代码,以便能够按照我的设想构建应用程序。起初,我使用了自己能想到的每一个库,并向朋友寻求帮助,以获得一个最小的可行产品并运行起来。' V+ P& D) r: p6 L5 H# D
6 p k' Y, V2 y5 q5 B I2 i8 r我使用了Snap.svg和jQuery,甚至D3。但这只是一种让一个版本运行起来快速简单的方式,并让人们可以给我反馈以进行多次迭代。随着时间的推移,我选择删除所有库,并用自定义函数替换项目中的所有用例。我不得不对代码的某些部分进行两三次重构,但每次迭代都是一次改进。直到现在仍有改进的空间。: H3 J' @" Y0 B! u
( I) x# _. a8 R+ r这个网站一开始只有几个访问者,但很快就逐渐减少了。在过去的六年里,只要有可能,我就会不断地更新网站。我不断的修复bug,在路线图中添加所有的特性,并弄清楚自己要按照什么顺序去做。9 }+ a h4 {4 D: z' f8 x0 P