Character Creator是一个帮助人们轻松创建出漫画角色的web应用程序,只要按照自己的喜好选择人物特征元素(包括性别、发行、眼镜、嘴唇等等),就能创建出一个漫画形象,具体的大家可以进入网站体验,网址:https://charactercreator.org/。3 P: ~, x( S. R J( _
9 H6 `/ U8 Q* M . {7 p, Z ?6 c+ J0 f5 Q2 f; W0 ?! z# |3 | S
Frederic是这个网站的开发者,他竟然用了六年的时间来创建和改善这个网站,直到现在收入才达到450美元。可以说是,Frederic是“用爱发电”。让人感到佩服的是,他原先只是一个漫画家,自学各种开发技术,一步一步再创建了Character Creator。. w- W; a K" M+ S* K4 N
1 a/ l+ W8 k- W* j/ E9 T你的背景是什么?现在在做什么? " `! @* F) [8 k5 f$ d) `* ^& k( H - y" W* p3 p8 I2 |* O嗨!我的名字叫Frederic,是一个漫画家和网页开发人员。我从小就在家里的电脑上编程,在画桌上画漫画。 ( u, k5 c! b# P, R2 v. ]+ ]5 }* g! f& C7 n
我曾画过一段时间的漫画,最终成为了一名网络开发人员。这两种技能最终结合在一起,这也是我们做出Character Creator这个产品的基础。 U. W; r- Q; q* X7 z8 U5 `' m$ a7 T! P$ j x% G0 K+ _+ d+ X
Character Creator是一个web应用程序,它帮助故事讲述者能够按自己想要的效果创建漫画角色。只需点击一系列选项和菜单,根据自己的选择就能建立角色。网站还有一个下载按钮,这样使用者就可以在存储设备上保存一份矢量文件。 / S* l; h8 Z- e, w: U0 z0 W M9 s/ c/ K8 H7 J& a
我创建Character Creator目的是让自己能够改进角色创建过程。作为一名开发人员,我可以看到重用代码的好处,但作为一名艺术家,没有复杂的方法来做到这一点。$ \* T* R( J. i# y7 Y% Q
# K3 Z1 f7 B* r! C2 P3 \9 y: j
漫画家们每次画一个新的面板都是要从零开始的。而通过将矢量艺术转换为一种媒介,并将字符作为代码位来处理,我就能够将组成字符的所有元素进行分类,并在每次需要它们作为新字符的一部分时,用模块化的方式重复利用。这样一来,每个项目只需要绘制一次,所有人都可以使用。' t3 Q- d6 u( R* Q( d" n; `
( x# E9 u1 _ ?0 {组织这些图的另一个好处是,您可以设计一个算法来帮助从大量元素中创建原始的、随机的字符。这些随机的角色往往会给故事带来惊喜和灵感。 3 H1 b' }) X! B% W0 |& k! {) q! e0 X3 Z 是什么激励你开始构建Character Creator?" ~- T: m) l l) x! D5 `
! ~! Y( b* a- ]$ w9 C0 o, x* l我当时正在做一个漫画书的项目,这个项目开始失控了。我想要以最有趣的方式着处理这个项目,但整个过程让我感到筋疲力尽,把项目拖得很慢。这个痛苦的过程,迫使我去寻找更好的方式来完成任务。" G1 E u, w1 E! Y: r4 u; d
5 _6 y0 A- Q, d; b! U8 |7 F7 k
那时,我已经把软件换成了Linux,并开始使用免费的图形程序,这时我发现了矢量图形程序Inkscape。它让我重新发现了矢量图形。几年前在学校时我就玩过这种格式,但当时并不是很感兴趣。! b% `: e7 c6 X* P& v
! o" z6 [+ d" l8 Y0 N
可缩放矢量图形(Scalable Vector Graphics,SVG)的属性让我觉得可以尝试和测试一下自己理论。1 z, L* p `3 G2 n
4 X8 Z+ v: p: r
为此,我还必须会用JavaScript编写代码,以便能够按照我的设想构建应用程序。起初,我使用了自己能想到的每一个库,并向朋友寻求帮助,以获得一个最小的可行产品并运行起来。 3 e7 B. ~8 }2 a, C* |# ] 6 Z% G) J4 l6 s* B我使用了Snap.svg和jQuery,甚至D3。但这只是一种让一个版本运行起来快速简单的方式,并让人们可以给我反馈以进行多次迭代。随着时间的推移,我选择删除所有库,并用自定义函数替换项目中的所有用例。我不得不对代码的某些部分进行两三次重构,但每次迭代都是一次改进。直到现在仍有改进的空间。( J& ~8 o, A; \, P
3 r- i! L4 m$ M
这个网站一开始只有几个访问者,但很快就逐渐减少了。在过去的六年里,只要有可能,我就会不断地更新网站。我不断的修复bug,在路线图中添加所有的特性,并弄清楚自己要按照什么顺序去做。' @; m# k1 Y9 N2 D8 A7 v' _