Character Creator是一个帮助人们轻松创建出漫画角色的web应用程序,只要按照自己的喜好选择人物特征元素(包括性别、发行、眼镜、嘴唇等等),就能创建出一个漫画形象,具体的大家可以进入网站体验,网址:https://charactercreator.org/。9 v% L1 n' T2 ~! u) }
) p+ L, _. j' f3 j" K. f, D 1 M9 g% V8 l$ b% s- o" p* D* l1 ^+ U, V3 d
Frederic是这个网站的开发者,他竟然用了六年的时间来创建和改善这个网站,直到现在收入才达到450美元。可以说是,Frederic是“用爱发电”。让人感到佩服的是,他原先只是一个漫画家,自学各种开发技术,一步一步再创建了Character Creator。 b8 ~# F( S. _! r4 D/ j2 z. C5 p: F
2 ]3 P% N0 X0 `0 t7 y 你的背景是什么?现在在做什么? : J+ p5 I7 J3 [0 [5 u: a8 r- c r; s$ c/ Z7 ^7 A! {& w4 c嗨!我的名字叫Frederic,是一个漫画家和网页开发人员。我从小就在家里的电脑上编程,在画桌上画漫画。0 G& _# c) Z, M% W$ G: T4 v) ~
: t5 D- z) }" {% O
我曾画过一段时间的漫画,最终成为了一名网络开发人员。这两种技能最终结合在一起,这也是我们做出Character Creator这个产品的基础。 2 P' d# J4 y; @% ?9 {, V- \ . o. o' n6 F6 rCharacter Creator是一个web应用程序,它帮助故事讲述者能够按自己想要的效果创建漫画角色。只需点击一系列选项和菜单,根据自己的选择就能建立角色。网站还有一个下载按钮,这样使用者就可以在存储设备上保存一份矢量文件。: U+ l& |1 z3 h# Z% t
3 l! H! n: W" q* H- j) H我创建Character Creator目的是让自己能够改进角色创建过程。作为一名开发人员,我可以看到重用代码的好处,但作为一名艺术家,没有复杂的方法来做到这一点。 % B' E; o1 h% e' _5 _4 _0 E5 O % |% y: D7 P- r* z2 k% q, y8 U漫画家们每次画一个新的面板都是要从零开始的。而通过将矢量艺术转换为一种媒介,并将字符作为代码位来处理,我就能够将组成字符的所有元素进行分类,并在每次需要它们作为新字符的一部分时,用模块化的方式重复利用。这样一来,每个项目只需要绘制一次,所有人都可以使用。' _% U9 O+ L% ?2 l* D6 E8 x
0 ^$ x2 P6 ~/ Z( Z3 Z
组织这些图的另一个好处是,您可以设计一个算法来帮助从大量元素中创建原始的、随机的字符。这些随机的角色往往会给故事带来惊喜和灵感。! `4 U7 _! x, T q Q( J
: t4 C* r& e2 @+ {9 i/ T 是什么激励你开始构建Character Creator? 2 b1 n, `# _ A" V: S Q7 _* ^& k. g8 M5 E# x! T3 T2 a
我当时正在做一个漫画书的项目,这个项目开始失控了。我想要以最有趣的方式着处理这个项目,但整个过程让我感到筋疲力尽,把项目拖得很慢。这个痛苦的过程,迫使我去寻找更好的方式来完成任务。+ T7 S8 X D) D# \' W, `5 M
l4 F& j" L' j! p: n3 J9 s6 m
那时,我已经把软件换成了Linux,并开始使用免费的图形程序,这时我发现了矢量图形程序Inkscape。它让我重新发现了矢量图形。几年前在学校时我就玩过这种格式,但当时并不是很感兴趣。' Z9 t0 L6 P% @- r: w3 d& [: m* J4 J
, l5 l1 S# l1 X
可缩放矢量图形(Scalable Vector Graphics,SVG)的属性让我觉得可以尝试和测试一下自己理论。& H8 m+ R5 k0 F1 e( B! Q" d
) T, X3 o2 E+ O2 m8 T: P6 }为此,我还必须会用JavaScript编写代码,以便能够按照我的设想构建应用程序。起初,我使用了自己能想到的每一个库,并向朋友寻求帮助,以获得一个最小的可行产品并运行起来。 0 K. z# w* o& Y* P- O; f) d. X! S2 k
我使用了Snap.svg和jQuery,甚至D3。但这只是一种让一个版本运行起来快速简单的方式,并让人们可以给我反馈以进行多次迭代。随着时间的推移,我选择删除所有库,并用自定义函数替换项目中的所有用例。我不得不对代码的某些部分进行两三次重构,但每次迭代都是一次改进。直到现在仍有改进的空间。+ p: Q, r$ F' S7 B, K2 n% o