魔力女管家音乐歌词数据库搭建完成,顺便说说Sphinx

就像上一篇文章许诺的,我费了三天时间,把魔力女管家歌词库给搭出来了!

先上地址:http://fireattack.github.io/mahoromaticdb/ 在Github因为侵权把我的网站日掉之前,暂时就挂在这里了。

包括了所有的CD的简要信息,以及所有歌曲信息歌词(大部分含翻译)。所有的CD我都用当年收藏的Booklet精心制作了1000 px的封面(除了少数几个找不到BK的),欢迎使用。哦里面在最后还随意地包含了两张同人CD(C60、C61发售)的信息,其中第一张网上应该是能找到的,意外地非常好听,强烈推荐。

搭建过程中才发现我之前的文档写的有多烂。有好多后来才找到歌词的歌没包括就算了,格式也是一团糟,错字、标点符号不统一的问题比比皆是。看来我当年的强迫症要轻得多啊!我尽量把标点符号统一为:跟日文用全角,跟英文用半角,但是连用符号(例如:!?)用半角,波浪号的副标题前空一格(但是魔力女管家第二季的标题则不空),括号统一用全角。艺术家名义统一用角色(声优)的格式,但是少数早期CD直接单用声优名字。

呃好吧我承认这并不是特别统一…因为我有个更严重的强迫症,叫做“名从主人”…我一般会尽量遵照BK上的写法,因此牺牲一些统一度。

接下来的地方讲讲搭建网站过程中的一些值得记录的东西吧。

这次用的技术是Sphinx——一个用Python写成的Doc建站软件。之所以没有用Github Pages支持的Jekyll,主要是那个是用Ruby写的,不想去接触。不过后来才发现使用过程中99%都只是在和reStructuredText这玩意打交道,和后端的语言一点关系都没有,早知道就用Jekyll了——毕竟那个是用更简单的Markdown的来生成HTML的。

果然还是先说reStructuredText这种标记语言吧,毕竟大部分时间都耗在和他打交道了。一言以蔽之,这玩意的语法非常的反直觉和不灵活。不过用了三天之后,也算是慢慢熟悉了。reStructuredText的设计思想就是非常注重可读性:基本上而言,源代码就已经在ascii的层面上“格式化”了。例如其最反人类的设定——表格,正常来讲你需要手动用各种线把框框画出来(见下)!

+------------------------+------------+----------+----------+
| Header row, column 1   | Header 2   | Header 3 | Header 4 |
| (header rows optional) |            |          |          |
+========================+============+==========+==========+
| body row 1, column 1   | column 2   | column 3 | column 4 |
+------------------------+------------+----------+----------+
| body row 2             | Cells may span columns.          |
+------------------------+------------+---------------------+
| body row 3             | Cells may  | - Table cells       |
+------------------------+ span rows. | - contain           |
| body row 4             |            | - body elements.    |
+------------------------+------------+---------------------+

还好,还有csv table可以用,否则这真的要死人的(不过这里有个table ganerator可以用)。

除了最基本的一些标记(例如,粗体、斜体啥的,不过注意和Markdown不同),reStructuredText核心元素是directive和role这俩东西。前者是一种特定格式/结构的元素,一般“成块”出现;一般格式是:

.. directivename:: argument ...
   :option: value

   Content of the directive.

在第一行调用directive的名字,然后在第二行起带缩进写设置,然后空一行带缩进(缩进必须和前面保持一致)写被格式化的内容(有些时候则没有内容,比如图片啥的)。这个东西可以用来实现插入目录、图片、目标(锚点)、给内容加class等功能。role和directive类似,但是一般是用于行内(inline)mark一些内容,例如上面提到的粗体、斜体啥的,本质上也是一种预定义好的role。你也可以自定义role。

那么就大致按照我写站的时间顺序来讲吧,没啥逻辑关系。

在建立了你的Sphinx网站之后(推荐使用官方带的Sphinx-quickstart),第一件事在index(链接是到rst源代码,下同)页面中把站点的目录放在上面。这个倒是蛮简单,用Sphinx自带的toctree这个directive就行。在目录里你可以输入想包括的页面名称,以及目录深度。我设想的结构是所有CD信息在一个页面(cdlist.rst),而歌曲因为歌词较长,则每首歌分割为一个单独的页面放到里子目录songs/里。

这里就遇到了第一个问题:如果你用songs/kaerimichi的方式添加页面到toctree中,他会和cdlist都是平级——而不是处于一个Songs的一级目录之下。稍微研究了一下发现要这么做:在songs/子目录下先建立一个index.rst,然后在该rst中再建立一个toctree(下称toctree2),包含所有songs/下的页面。因为toctree总是从当前目录开始查询的,所以对于toctree2,你只需要罗列所有歌曲页面的名字就行,无需加songs/前缀。当然因为歌曲太多了,我们利用:glob:这个参数,就可以用通配符*来匹配所有页面了。回到根目录index的toctree,我们也只需要包含songs就可以了,会自动把toctree2里面的项显示为二级项(结果)。

正式写页面,对于CD list,我需要在最上面附一个(本页面内的)目录。这个用带的contents directive就能轻松做到。但是默认会加一个很多余的根目录节点,用:local:参数去掉它。搞定后,这个目录就会列出所有的section了。加一个section很简单,只要在一行文字下面加一堆“-”、“=”之类的就行。如果要多级section则需要分别套用不同的符号,不过我这里只有一层所以无所谓。一般而言,每个section会自动生成锚点,上面加的目录就能跳转。

因为页面上某些文字需要是小字,而且这些文字混在正文中(inline),我们需要一个role。当你给内容指定了role之后,生成html会自动指定对应的class名,因此配合CSS就可以实现想要的样式。要定义一个role,要先在文档某处(一般是最开头,我不确定在别的地方可不可以)写:

.. role:: smallfont

之后(注意:每个用到:smallfont:的rst都必须重新写一遍这个…),你就能用:smallfont:`your content`来标记你的内容了。不过这里有个限制:这一段代码的前后必须是非“word”的东西,也就是说中间一般得有一个空格。如果你不想要你的普通内容和小字内容之间有空格?需要加反斜杠来消掉空格。即:

your normal content\ :smallfont:`your small font content without space inbetween`

OK,那现在在CSS里写:

.smallfont{
 font-size: 80%;
 color: grey;
}

就行了。不过,怎么把自定义的CSS包含在你生成的网站呢?这里有好几个办法

  1. conf.py中加上
    def setup(app):
        app.add_stylesheet('custom.css')  # may also be an URL

    (你的custom.css应该在_static/目录下)

  2. conf.py中加上(注意这里又变成从根目录起了…下同)
    html_context = {
     'css_files': ['_static/custom.css'],
    }
  3. 先把你模板里的layout.html拷贝到目录下的_templates里(当然,保证你没删掉conf.py里的templates_path = ['_templates']),然后找地方加一行
    {% set css_files = ['_static/custom.css'] %}

    (在SO看到的是

    {% set css_files = css_files + ['_static/custom.css'] %}

    但似乎使用上并没有区别。)

  4. 还是上面的说的layout.html,直接强行加
    {%- block extrahead %}
      		<link rel="stylesheet" href="{{ pathto('_static/custom.css', 1) }}" type="text/css" />
    {% endblock %}
    
  5. 最暴力的方法,找到你模板的CSS文件,然后修改之;或者修改之后放在_static/里(原因见下面)。

对于我用的alabaster模板,默认的layout.html已经包含了上面的选择4,所以我只需要把custom.css放在_static/下即可。哦这里顺便说句,你放在_static/下的文件默认全部都会复制到你build出来的html里(不管用不用得到),你可以利用这个来覆盖模板里的东西(如上面的5所述)——不过这里注意是覆盖,不是添加。另外,图片之类的resource就别往里放了,否则会复制两遍(因为所有引用过的图片会自动被Sphinx复制在build目录的_images/目录里),占地方。

搞定了“小字体”这个样式之后,在每个歌曲的页面,我还需要引入两种新的样式:日文和中文,分别用来标记不同语种的歌词,从而实现更好的字体显示效果。

这里因为是成块的内容,我们就不用role了,用一个directive:class。如名字所示,其功能和role类似,也是给一块内容标记class。原始的reStructuredText直接用class就行,但是Sphinx是为Python文档开发的,默认把class给定义成一个role了,所以需要改用rst-class

.. rst-class:: ja

	| まなざし そっと ひとつ
	| 誰にもみつからぬように
	| ふんわり時間だけが
	| 流れては消えてく

这里可以看到,argument(双冒号+空格后面的)自然是想要的class名称。因为没有选项(options),所以内容就从第三行(空一行)开始。至于pipe符号(|)这里的目的是强制换行。另外注意,所有的内容必须有一致缩进(具体多少无所谓,反正不会显示成缩进)——缩进结束就退出了这个rst-class了。而相对地,在普通正文中的缩进就是正常的缩进,而且你加几个空格都会如实反映。当然,你还得去你的CSS文件里定义.ja,这里就不赘述。

在写歌曲页面的时候,我遇到一个非常蛋疼的锚点问题。一般而言,锚点在加section/heading时是自动生成的,但是如果你不想开新的section呢?方法是在文档中加入这么一行:

.. _targetname:

至于引用(指向)目标时,Sphinx推荐的用法是用:ref:这个role:即形如:ref:`targetname`这样来引用。但是注意!一般而言target是配合section来用的,所以会自动成section的名字。但是现在我们是在正文中随便添加的,我们必须显式指定他的名字::ref:`Display Name <targetname>`才行。

但是这里有个问题——在Sphinx里,所有的target和ref都是全局的,跨文件的。所以,我每个文件里的target还不能一样,比如如果我每个文件里都有个.. _ja:,用:ref:`Display Name <targetname>`会不知道飞到哪个文件的_ja锚点里去。

研究了半天,发现只能用reStructuredText自带的引用方式——`targetname`_因为这个只适用于本文件,这样即使我每个文件都有个重名的锚点,也只会正确跳转到本文件内的。不过这个有个缺点,不支持Display name和targetname不一样(就是上面带尖括号的用法),所以我的targetname必须就是我想显示的文字。还好,似乎支持中文字符和符号,我用了“[中文]”当锚点名称也没事儿。最终效果

那么最后需要的功能就是给CD曲目列表里的对应歌曲添加链接了。因为是跨文档引用,所以推荐的方法是给每个文档的标题加上个target,然后用:ref:;但是我嫌麻烦,直接用另外一个role,:doc:做。方法基本一样,直接输入:doc:`filename`就行了——显示的文字自动从对应文档的标题提取。不过这里我也并没有直接这么做,因为Sphinx带了个非常好用的role,叫:any::用它可以智能地自动寻找最接近的reference,可以是:ref:,可以是:doc:。在用:any:之前,我们更可以把它指定为“default role”——在conf.py里添加:

default_role = 'any'

这样,当你使用单个撇括起来时(例如:`songs/kaerimichi`),会自动调用:any:这个role。这里,因为这是文档名,又会进而自动调用:doc:

到这里,基本在reStructuredText里遇到的困难都说完了。在Sphinx这边,我对默认的alabaster模板也没怎么改,但是有一点要注意:如果要用这个模板的完整功能,要修改sidebar为

html_sidebars = {
 '**': [
 'about.html',
 'navigation.html',
 'relations.html',
 'searchbox.html',
 'donate.html',
 ]
}

才行,因为模板自带了一些sidebar并没有包括在默认的设置中。模板带的选择在conf.py里修改html_theme_options,基本很好理解,我就改了logo和字体。

Sphinx有一个自带的“basic”模板,还有一些JS和CSS,基本所有的模板都有inherit。但是那个JS(doctools.js)有个问题(Chrome only,我已经汇报到Sphinx dev team),重现方法如下:

  1. 点一个带锚点的地址
  2. 滚动一些(即,你已经不再在锚点的原始位置)
  3. 点一个(非本页内的)链接,跳转到了其他页面
  4. 点“后退键”

正常来讲,点了后退之后,会后退到之前页面的之前位置。但是bug就是,后退之后会强制再读取一次锚点位置,然后跳转过去,而非你之前的阅读位置。你可以在Python 3的官方文档页面重现此bug,因为他用的就是Sphinx。相反Sphinx自己的文档页面则不会,因为他用的是旧版的doctools.js文件。Firefox下无此bug。

我研究了半天,发现是该JS文件中的以下函数:

/**
* workaround a firefox stupidity
* see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
*/
fixFirefoxAnchorBug : function() {
if (document.location.hash)
window.setTimeout(function() {
document.location.href += '';
}, 10);
},

导致的。讽刺地是,该函数的目的是为了workaround Firefox的一个bug——Firefox对于HTML5新增的<section>锚点tag支持不好——才加的。本来函数有一个判断是只对Firefox有效,但是由于JQuery移除了$.browser,这里被改成了对所有浏览器有效,从而导致了上面所述的副作用。因为那个Firefox的bug对一般应用并没有什么影响(一般应用的锚点都是靠id="xxx"来搞的,并不会用到<section>),所以我们这里直接删掉就好。删除的方式则是复制一份这个JS文件修改,然后放到_static/文件夹内。这样,每次build,会自动覆盖。注意复制的时候,别复制成了原始模板文件夹里那个doctools.js_t了——那个是个JS“模板”,中间有些参数还没生成的。正确的方法是先build一遍,然后从html的目录里复制个原始版的JS。

还有一点要注意,用sphinx-build来build HTML文件的时候,有的时候并不会刷新改刷新的文件(尤其是sidebar之类的),所以隔一段时间最好把_build/目录全删了然后重新build。当然你也可以用-E选项,不过一般还是别强制了,因为要慢许多。

往Github Host的时候,需要加个.nojekyll文件来禁用GitHub Pages自带的翻译引擎,否则会有问题。但是这个文件只有加在根目录才有效,而我是把整个网站放到mahoromaticdb/子目录下的(因为GitHub一个用户好像就支持一个站),所以一开始迷惑了一阵为什么不好使。

从“アニメソングの歌詞ならここにおまかせ?”关闭说起

警告:本文大量个人的无病呻吟。

无意间点开尘封多年的书签,震惊地发现,アニメソングの歌詞ならここにおまかせ?(网址:http://www.jtw.zaq.ne.jp/animesong/)这网站居然关闭了。

一番搜索,可以知道关闭的时间点是今年一月底,原因也没有多说,作者就是一句“感谢长久以来的支持”。

C4Eq6cuUoAA8Ssx.png large.png

(Via:Twitter

不过,从页面报错信息来看,直接原因是作者用来Host网站的服务(J:COM NET加入者向けホームページサービス)停止运营了。当然,如果作者真的想继续,换个服务商并不是不可能,但是果然有些时候事情就是欠个导火索。我喜欢吹日本人或者外国人的“根性”,能不辞辛苦、不计报酬(准确地说是倒贴钱)地维护这类爱好网站,但是果然一切都是有极限的。毕竟到后来大多都是惯性使然,突然弦可能就断掉了。

这件事我居然过了一个多月才发现,可以说是过去的我所不可想象的:没错,这网站应该是我正好10年前那会,不夸张地说上的最多的网站。说起这话题,似乎应该先从网站介绍起。如名字所示,该站是一个收集动画歌词的网站。作者按照作品分类,收集了大量动画歌曲的歌词,并按时(一般一周一两次)更新最新出的歌曲的歌词。另外值得一提的是作者是有JASRAC的牌照的,所以是完全合法运营。当然,这些歌词多数在无数日本其他歌词网站都能找到,但是作为一个只更新动画歌词的网站,有其独有的优越之处,这得从我当年的“工作”说起。

06年那会大概是我刚入宅的时候,相信很多人都知道了,契机就是一部《魔力女管家》。我当时着迷程度非常深,在网络上疯狂搜刮和魔力女管家有关的一切资源,其中自然也不会放过音乐。魔力女管家的BGM是非常优秀的(作曲:増田俊郎),歌曲也不错。主打的自然是麻幌的配音川澄绫子,唱了两部的OP以及一些插曲不说,更在各种相关CD里唱了大量歌曲,甚至单独出了一张专辑。几个配角也都有歌曲,其中男主的三个青梅竹马(?)还组成了一个组合叫“とりおまてぃっく”(很显然名字捏他作品标题「まほろまてぃっく」),包办了所有的ED,也出过张专辑。当年这些歌我翻来覆去也算是听到烂了,更是我Anison的入门。

既然有歌曲,自然少不了歌词。我在搜索魔力女管家的歌词的时候无意发现了一个叫“漫网”的论坛,上面就有一个区叫做动漫歌词区。当时这区还挺活跃的。里面的好多版主我几年后还经常在ASTOST见到。虽然不能记起全部,但是有位叫紫亚的妹子倒是蛮深刻,还玩翻唱来着。

魔力女管家的歌曲歌词慢慢收集齐了,但是在这过程中,我逐渐对动漫歌曲歌词这个东西本身感了兴趣。于是我开始经常在这网站上发帖。不过歌词从哪里来呢?这就不得不提到标题这个网站了。作为一个只更新动漫歌词的网站,自然比去那种什么都更的网站方便,而且最棒的地方在有这网站还有change log,每次更新了哪些一目了然,只要原样照搬就是了。虽然网站有防复制,但是实在是很弱一般开源代码复制就是了。当然还有一些别的网站,比如当年比较有名的月之舞歌词站(一个国产的日音歌词收藏站,早就挂掉了)等等,但是还数“アニメソングの歌詞ならここにおまかせ?”用得最多。

不过,虽然我最早知道的是漫网,也一直有在混,我真正驻扎下去的则是另外一个论坛:动漫花园之音乐花园。动漫花园本身的名气相信不用多说了,即使是到今天大部分人也知道,因为其BT站的缘故。不过最早的动漫花园是从字幕组起家(和PPG算是齐名),然后有论坛和tracker的。动漫花园论坛当年的有意思之处在于,其音乐分区是一个独立的网站,名字叫音乐花园,管理基本也独立。当时上面聚集了一些动漫音乐或者日音牛人,很多现在都还在AO混,比如牛叔(nalanchen,即现在“MGRT音花雪月”的组长,说来MGRT正是Music Garden RIP Team的意思),jedi_vs_sith等,不过我和这些大大都不熟,算是单方面认识。音乐花园当年还算是一个满活跃的网站,还经常搞些音乐精选集什么的:

Cover_Inside.jpg
当年的音乐精选集  vol.3的伪·封面

因为音乐花园人比起漫网(哦顺便说句,当年漫网主站是个卖动漫资源的网站)比较少的缘故,“抢发”歌词也不剧烈,我逐渐在这边的歌词区(名字叫词苑)活跃起来。后来也记不清是自己主动申请还是被邀请,总之稀里糊涂地当了歌词区的版主。

在音乐花园这边打交道比较多的是词苑的几个老版主,冰河的海,草上飞校长,以及最老资格的domonick。一些具体事情就不详细说了,我就记得当初年纪小,为了歌词翻译脸皮超级厚的疯狂追着屁股求助,而草上飞校长总是非常客气地帮我翻译,实在是感激不尽。dominick基本算是歌词区的奠基人了,早期的大量歌词、以及目录的整理都是他涵盖的,还请Ayumu(不知道是谁,可能是上古巨神)制作了两款相关的软件,转码用的Sapphire和注音用的Ruby:

QQ截图20170310005223

QQ截图20170310005218

其他的著名人士还有Shion(很多ID,其他的还有“水色”等),她在漫网和DMHY这边都有活跃,是个非常细心的人;Frank543,他后来制作了一个非常好用的跨站歌词搜索引擎Lyrics Get(自带破解防复制),现在还可以用哦。

至于我自己嘛,只做过一些微小的工作,多数就是搬运歌词,其中自己比较感兴趣的几部作品,比如当时迷的爱马仕系列整理的稍微用了些心。另外很多歌词尤其是很多角色歌,网上是没有的,需要自己从booklet里抄写下来。另外还用自己三脚猫的C#功夫写了一两个自动格式化发帖的辅助小工具之类的。

就这么过了两三年,国内早期的动漫论坛开始慢慢走向一个衰败期。音乐花园后来也被动漫花园吸收了回去,成为了里面的一个版块。接下来就是DMHY的分裂风波了。我不知道还有多少人今天还记得,总而言之就是站长“很闲”和一些会员的运营思路没走到一起。过程很复杂,形成了“站长派”和“元老派”,当年作为一个论坛的积极参与者,自然队站在了“元老”这边,好像还参与过一些撕逼,现在想想简直幼稚得可怕。经过一番周折之后(中间有段时间甚至有俩动漫花园论坛),最后的妥协是站长继续经营资源网(同时在这前后建立了u2)出走,其他论坛元老保留了论坛。后面的结局自然都知道了,资源网活得好好的,论坛死的比原来更快。讽刺地是,在几年之后的今天,论坛(的尸体)又回归了很闲的手下:https://bbs.dmhy.org/ ,我当年复出无数心血的词苑的时间也定格在了2010年。

也大概是因为这个事情,就像标题网站的站长一样,我逐渐地也倦怠了,词苑的工作慢慢就荒废了。哦其实中间还在ASTOST混过一段,当过那边的歌词区的见习版主,不过没坚持多久就是了(然而就几个月还很傻地和那边的小圈子对喷过一次,年轻真好)。

好了,莫名其妙的追忆就到此为止了。作为祭奠,我把最初的起点——我整理的魔力女管家歌词传到GitHub了。没错你没看错,所有的歌词页面的编码都是错的(Firefox的话手动选成GB2312就行。Chrome把编码选择阉割了我也没办法呀哈哈哈),毕竟这是我N年前用Word文档(原始文档/Google Doc版,更全一些,还有所有CD的曲目信息)转的……闲的话再搞个正常点的网页吧。

WA2整个都该毕业了!

前几天看到leo写的blog,提到“是时候从党争毕业了”,深以为然。不过我觉得这不仅仅是党争的问题。WA2从IC推出的2010年,经过全篇汉化之后的一波新的高潮直到今年的动画推出,其热潮已经持续了3、4年。如此长的讨论周期已经远远不是一个galgame所能承担的了。我刚打穿那会,曾在贴吧看了挺多超长的评论文,不乏一些有趣的观点;但是后来的就慢慢地变成不断反复那些已经讨论过无数遍的观点,就像泡了几十遍的茶,索然无味。就拿S1的WA2动画讨论帖而言,绝大部分的所谓“讨论”都变成了计较动画与原作的不同上面,这也是我最恶心原作党的一点。

在WA2的设定中,雪菜和冬马虽然其实都算是“天降”系,但是实际表现中,则明显冬马的性格设定更“脱俗”一点,雪菜倒是有着一种青梅竹马的母性关怀感,也是我一直在acg中喜欢的类型,所以这就决定了我会是一个雪菜党。后续的剧情对党派的选择其实影响不大,而争论在此三角关系中谁对谁错更是对此没有任何帮助(而且明显是春哥的锅!)。

至于WA2的动画改编,我认为总体是成功的。只是那廉价的作画注定了它无法成为一代神作,可能佳作都做不到;但是有IC的剧情打底,后期能吸住观众是毫无疑问的。要说失败的地方,就是学园祭及其之前三人拼命准备的这段剧情中那种校园剧特有的青春感没能很好地做出来。在党争方面,可以说制作组从最开始就根本没想过什么平衡,其实这样挺好,反正IC最后本来怎么都算是冬马结局。只是中间几话为了增加剧情冲突而添的一些雪菜剧情纯粹画蛇添足。

几乎佳作——写在《在盛夏等待》最终话之前

很久没有这样一部片,让我每周第一时间下载、赶在别人剧透之前看完,再津津有味地去论坛上看别人讨论了——抛开多角恋爱这一相当吊人胃口的主要因素不谈,其中最吸引人的相信还是本剧较高的制作水平和对人物心理刻画的细腻程度。从这个角度来说,《在盛夏等待》无疑是部水准以上的片子,说是本季JC的良心也不为过。但要说是神作,却又远远不够;即使想说是佳作,也感觉差了那么一口气——比起当年的三角恋神作TT自是不如,本社的《龙与虎》也比本片强不少。

这所谓的“一口气”,说白了还是败在剧情设置上面。首先声明,本片制作人员本来也就没打算搞出什么脱俗的剧情出来——所以当然问题也不是出在“不够新颖”上面。逐一说来,前五集的目的是确定各个人物之间的复杂关系,完成的非常出色。非要说有什么不满就是前两三频繁出现的“妄想”感觉有点不太适合本片的feel,不过反正后面也没有了。六七两集是经典的“引入外部因素减缓加剧内部矛盾”,也算是恋爱剧用烂的手段,一开始我还蛮失望的,不过实际效果还是相当棒的,无论是对剧情的促进程度还是两个配角本身,都是相当抢眼的。第八集的夏日祭和试胆大会,依然是老梗,依然做出了水平。但是接下来的几集就有点下坡路了——好像制作人员把这些老梗全部用完之后,就有点不知所措了。九十两集的主要目的是“清算”所有的感情线路,为接下来的大结局做铺垫——然而无论是高帅富对柑菜的告白还是柑菜自己对男主角的告白,都给人一种不给力的感觉——前者的问题是无论是时机还是双方(或者说加上偷看的美樱)的表现,都给人一种凑数的感觉,之前各种冲突时那种张力完全没有了;后者的问题在于,虽然没错,柑菜自己其实从没有对海人告白过——但是对于观众而言,此次冲突的感情已经在之前高帅富越俎代庖时释放了大半,现在本体来了反而没有了太多刺激了。注意,这里我要说的重点并不是说这两个场景设置不真实——其实这两件事的发生如果在现实中都是相当有可能的——但是从戏剧性需要的角度来说,完成的就不是很美满。其实说到底,原因在于本片之前过于滥用了“A、B两人发生告白、哭诉、etc.,被C抓包”这一可以说是恋爱剧最高潮的场景,以至于到后来,观众已经波澜不惊。第十一话则是我最不满意的——先不说这剧情展开的速度有多扯,姐姐这一角色的道具感有多强,单就说逃离外星人追赶时那一套“十分动画”的无厘头风格和本片前面一贯的风格完全不搭这一点,就足以让我对本片的评价下一个档次。

值得一提的是,本片虽然是个所谓的“多角恋爱”,什么ABCDE的,但是真正有相互冲突的其实只有学姐和柑菜——只有她俩身上发生了“同时喜欢一个人”这种事情。后面的人无非是一串单相思罢了。同理,真正意义上的两情相悦也只有海人和学姐。所以说只要理清海人与这两位之间的关系,后面的D、E的结果也就不言而喻。

接下来谈谈人物。主角海人,作为一个全片没有犯过错的人,但也很难让人对他说什么好话,毕竟是坐拥两大好妹子的准后宫男嘛。而且所谓“全片没有犯过错”,也从一个侧面说明了他的形象不够丰满;实际上,海人身上的剧情还真不算很多,撑死了算是个线索人物,第一男主还是要论高帅富。学姐方面,首先本人就是坚定的天降系黑,更别提学姐无论是人设还是户松遥的这种声线都不是我的菜,所以…就不评价了。这里要专门提出批判的是学姐和海人确定关系之后那甜到发腻的举动,我等柑菜党表示必须进行人道毁灭。至于蓝毛柑菜嘛,可以说在前四五集里绝对是本片第一人气角色,元气娘+少女面对感情时特有的娇羞,可以说是人见人爱呢。但是到了后来,可以看出在论坛上不断有人对其进行诟病,却又总是点到为止——其实说白了,后面柑菜招某些人厌的原因,都是出于对主角的死缠烂打,或者说一厢情愿罢了。无论是读空气也好,对学姐摆黑脸也好,都是单恋中的少女的正常表现。只是,也许比起ACG作品中常见的各种完美性格,显得小家子气了一点。不过最后柑菜自己成了夹心饼干,也算是“罪有应得”了吧(笑)。另外石原夏织我的新嫁好棒好棒的。咳说到完美性格,那自然就是说的D、E两位了——有如此圣母心的追求者,柑菜你说你如果跟了海人以后看到高帅富后背不会发凉吗?高帅富如果找了柑菜后背不会——还好这两者自我结合了(茶)。说来高帅富身上的重要戏份真的是非常的多啊。美樱嘛,妹子是好妹子,后面也行动力爆表,但是为什么我总有一种她是在捡漏的感觉……(被裸族党pia死)什么你说我故意漏掉柠檬?才没有呢,不过对于开上帝视角、都合主义的最佳帮凶有什么好说的呢?

按照惯例该说说制作了。前面已经提过,本片制作上乘,这方面肯定是没什么好指摘的。人设的田中脸你懂的看习惯就成,作画基本没有崩坏。OPED都很棒,不过相对于nagi那被Ray秒出翔来的长相偏厚重的声音果然还是Ray那种尖细的声音更对我胃口,而且nagi原来听太多了听烦了啦。

总评的话,本片按bangumi标准大概7.5分,作为长久以来追番的纪念,给8分也不为过。刻意在最终话之前发表这篇观后感,其实是依然抱有一丝希望,希望制作方能在最后一话搞出什么惊世骇俗的玩意,打肿我的脸。不过也许只能是妄想罢……

Colorful

好久没有看过动画了,尤其是剧场版。今天由于作息实在是太正常导致下午无比的闲于是没事干看了这部存在硬盘很久的“Colorful”。

剥开灵魂出窍呀投胎呀之类的噱头,本片的内核用一句话就可以概括,就是中二少年救赎记——虽然是中三。一个日子过得相当不如意的中学生,在某天无意目击到喜欢的妹子居然是援交少女以及母亲和别的男人在一起。无法承受这两大打击选择了终结自己的生命。而之后却由于机缘巧合获得了续命的机会,那么他的人生到底会怎样继续呢。

本片的剧情可以说是非常单纯,而导演也基本就是平铺直叙。整体跌宕不大,即使是最后一家人吃火锅时的最终情感释放,也没有多么剧烈冲击。可以说真实性相当不错——因为真实的生活总是平淡的,男主人生轨迹的变化也都是平缓的,即使存在一个爆发点,但也并不会多么的强烈。但是这毕竟是一部电影。如此淡如水的发展让观众有些犯困不提,也实在很难称得上是“好看”。牺牲戏剧性总得为电影服务吧,感觉在这方面的牺牲并没有换来什么别东西,比如说深邃的立意啦之类的。而且这片节奏太拖沓,这点无起伏的事儿居然扯了整整2个小时。

从另一个方面来说,对于过了中二期的我,看着这样的男主角犯中二是无比闹心的,能让我坚持心平气和看下去的动力就是指望最后男主大大吃瘪,然后恍然醒悟这种快感啊!而现在呢?男主疯狂刁难他妈天理不容,而最后摊牌时刻居然是选了这么一个场景:一家人操心为男主解决升学问题,而男主却一副无比委屈不被理解的样子:我想去的是和我基友一个学校呀!然后一家人就一哭泯恩仇了——等等,难道喜闻乐见的不应该是男主给他妈跪下磕三个响头然后痛哭流涕吗,怎么变成暗示“都怪你们对我那么用力过度,我才成了中二!”了?虽说男主成这样和家庭有脱不开的干系但是就这样拍拍屁股甩掉中二的原罪?导演你想传达的东西有点居心叵测啊!一家人为男主做的牺牲男主一点表示都没有也太说不过去了吧,导演你个包庇犯!而且,这么平淡的“转变”,什么都不说清楚的话,下面暗流涌动说不定过个几年男主又要玩自杀哦——嘛我不是说要一定说出来把老妈逼疯啦,就那么个意思。而且讽刺意味的是,这个没什么悔意的男主居然从精神上拯救了援交妹和土妹子,而且前者还是发生在摊牌之前——这太囧了吧!

刚才说剧情我用了一个“真实”,那么关于人物……首先配音就败了。里面几乎所有人说话都古怪得很,这应该叫棒读吧?看cast全是一堆演员或者不认识的,让专业的来呀!塑造方面最好的是男主的父母,母亲的戏份基本是受虐,看得人无比心疼;父亲就是最后通过钓鱼开导了男主一番,不说演的多么出色但是至少很恰当地融入了进去。另外就是那位一碰到男主就紧张得口吃的土妹子很萌!那破鞋倒是让人勾不起欲望…主要还是画风吧。另外男主何德何能会被破鞋看上?我早就不相信这种倒贴的童话了啊啊啊啊啊啊

画风我真的不想吐槽的。虽说有一个规律就是屌片的人设/画风不能太好(否则会喧宾夺主?),但是不代表反过来也成立啊!基友啊土妹子啊就不提了,破鞋的脸也没几帧不崩的!!

最后吐个槽,按理说其实男主这个灵魂就是自杀死去的小林的灵魂这种烂梗地球人看到一半都该能看出来才对——但是我却没有看出来啊啊啊我还在想结局一定是男主变成了小林替他接着活下去了!我果然脑子根本就不会转圈了!

总结来说,此片中规中矩,如果不是对中二特别感兴趣就没必要浪费两个小时了;不过介于制作水平相当上乘,看了也不能算浪费时间,就当小憩一下了。评分的话大概在6-7分左右吧。