Asachiri's Blog

The World of AsaChiri

This post is not available in English yet — showing the original Chinese version.

远野汉娜回到那间木棚时,已经是傍晚。

她在门前站了很久——如果那脱了铰链,只是靠在墙边的木板可以称作“门”的话。

以前她觉得这间屋子很大。大得足以装下饥饿、哭声、潮湿的被褥、坏掉的锅、弟弟妹妹们挤在一起的身体,还有母亲永远低着头的背影。那时候,只要夜里有人翻身,整间屋子都会跟着咯吱作响。

可现在它小的可怜。墙板歪歪斜斜,窗框上积着旧灰。风从缝隙里钻进去,又从另一条缝隙里钻出来。屋顶的一角,胡乱盖着一块蓝色的防水布。

汉娜把手放在门上。

她本来以为自己会哭。可是她没有。

屋里有一股久无人居的霉味,混着药草、冷灰和潮湿木头的气味。汉娜刚走进屋子便立刻知道,有人回来过——这并不是记忆里的样子。

炉灶旁边堆着几根劈得很粗糙的柴。桌上有一只缺口杯子,杯底沉着干掉的药渣。角落里铺着一张被褥,被褥已经塌了,像一个人从里面起身之后,再也没有回来。

汉娜站在门口,并没有往里继续走。她忽然生出一种荒谬的念头:母亲也许还在这里。

也许那个女人会从灶台后面抬起头,露出一张比记忆中苍老得多的脸,用很平常的语气说,你回来了啊。

那样的话,汉娜应该怎么回答?

她可以笑。她可以挺直背脊,用那种轻飘飘的、故作高雅的声音说:“哎呀,竟然把女儿一个人丢下这么多年,母亲大人还真是从容呢。”

她甚至已经在心里把语调准备好了。

可是屋子里没有人。

汉娜的目光落在了木桌的角落,那里有一样不该出现在桌子上的东西——一块手掌大小的石头,石头下面,一叠信纸重叠在一起,最上面夹着一片已经枯成褐色的叶子,像是一枚书签。

汉娜轻轻地移开石头,拈去枯叶,便看见了那几个颤抖的线条构成的字迹:

”致汉娜“

看到的一瞬间,汉娜便认出了那是谁的字迹。像蚯蚓爬过的,笨拙的线条。

“骗人的吧……”

第一张信纸很薄,边角沾了药汁。汉娜拿起信纸的时候,手指都在发抖,她自己也不知道是因为吹过的寒风,还是因为愤怒,又或者,是因为震惊。

汉娜缓缓展开信纸。信纸上留着好多次反复折叠的痕迹。

信的开头写着,

“汉娜,你应该已经不会再读这些了。就在前不久,你的死讯出现在了邮筒里。所以这不是一封能送到你手里的信,但我总有些话想和你说。”

死亡通知——大约是有关部门在她被抓走后做的吧,汉娜心想。她继续读了下去,可接下来的文字并不是“对不起”或者”我爱你“。只有一句话。

“我离开后的第一个晚上,睡得很好。”

汉娜的手猛地收紧,纸页被她捏出一道深痕。

她几乎笑出了声——原来是这样。

“我知道我应该写我哭了一整夜,写我想你们想到无法呼吸。可那不是事实。

事实是,那天晚上我第一次没有听见孩子哭。没有人咳嗽。没有人喊饿。没有人把手伸进我的衣角,问明天有没有饭吃。我躺在一张陌生的床上,脚边也没有蜷缩着睡觉的孩子。

睁开眼睛,那是一个无比轻松的早晨。没有要抱起来的孩子。没有要牵着手的孩子。没有缠在脚边的孩子。

那一个星期,我一滴眼泪都没流过。你们的脸,我也几乎没有想起过。”

汉娜把信摔在桌上。

木桌发出一声闷响。信纸在空中轻巧地转了一圈,没有碰到墙,半途就像力气用尽了似的,落在了地上。

她胸口剧烈起伏,眼睛干得发痛。她想骂人。想把杯子砸碎,想把这些信全扔进炉灶里,想对着空屋大喊——

那你为什么回来?既然那么轻松,为什么还要回来污染这里?

可是她没有喊出来。

她只是站着。

因为在那一瞬间,她忽然想起很久以前的一个夜晚。

母亲离去的那个早晨,脚步声渐渐远去,然后弟妹们的哭声响起,那可能是汉娜一生中是可怕的早晨之一。可是那天晚上,当所有哭声终于疲惫地停下来的时候,汉娜曾经在黑暗里睁着眼睛,听见自己的心里冒出一个极细小、却又极坏的念头。

少了一个人。少了一个会沉默坐在灶边、让屋子比冬天更冷的人。少了一张要吃饭的嘴。

那念头只出现了一瞬间,立刻被恐惧和羞耻压下去。她再也没有允许自己想起。

直到现在。

汉娜扶住桌沿,慢慢坐下。

她忽然很想吐。

第二封信写得更长一些,字与字之间的间隔并不均匀,大概是写的时候停下了很多次。

“汉娜,我并不是在离开家的那一天,一下子变成了一个糟糕的母亲。”

纸上的字有些地方被水迹晕开,也许是药水,也许是眼泪。汉娜无法分辨,也不想分辨。

“很久很久以前,我就已经不在那个家里了。尽管我还在做饭,还在洗衣服,还在骂你们不要吵。

一开始,我还记者谁昨天发烧了,谁早上饿了,谁的鞋底快要脱胶了。

有一天——具体是哪一天,我已经记不清了——就算有人哭,我也不再分辨是哪个孩子的声音了。

全部都变成了同一种声音,一切都成为了同一个词——‘麻烦’。而之后的每一天,我都在想着如何给自己减少些麻烦。

我那天的离开,只是最后的一步。”

汉娜一行一行读下去,只感觉越来越冷。

她讨厌这封信,因为这封信有些像那样她不愿承认的东西。

妹妹发烧的那一天,不是汉娜第一次偷偷跑出去练习飞行了。

她已经这样做很多次了。

第一次是她在废弃仓库里发现自己能让身体浮起来的时候。她惊喜得几乎忘了呼吸。那一瞬间,她不是木棚里的姐姐,不是要洗衣做饭、哄孩子睡觉的人。她是会飞的少女。是漫画书里那种被命运选中的人。

后来,她开始偷偷练习。

一开始只是几分钟。

她对自己说,很快就回去。妹妹睡着了,不会有事。练好了魔法以后,她就能飞得更高,能做更多事,能带弟弟妹妹们离开这里。

多么漂亮的理由。

漂亮得像糖纸,里面包着的却不是糖。

汉娜不是在妹妹发烧的那一天,才抛下她变成一个坏姐姐的。

这个念头突然像针一样刺进她心里。

汉娜猛地站起来,本就不稳的椅子向后撞倒。

“不对。”她对着屋子说。

汉娜的声音很轻,轻得不像在反驳,更像请求。

“不对……我和你不一样。”

没有人回答。

炉灶里的冷灰沉默着。墙角的被褥沉默着。那叠信也沉默着。

汉娜弯下腰,把椅子扶起来。她的动作很慢,像怕惊醒什么。

第三封信很短,不过字迹稳当了一些,大概是调整好呼吸之后才写的。

“那天的话,我还记得。”

汉娜几乎不用往下看,就知道母亲写的是哪一句。

『你是姐姐。你要负起责任,好好照顾弟妹。』

汉娜的视线在纸上停住了。

“我必须承认,这只是我用来逃走的借口。我知道你年龄还小。我知道你不可能做到。

可是如果一声不吭就走出那扇门,我就必须承认自己只是一个扔下孩子逃走的、坏透了的母亲。

我把一个母亲该做的事,放进你的手里。然后告诉自己,我不是抛弃孩子,我只是把家交给了可靠的汉娜。

我那天不是相信你,我利用了你。”

汉娜捂着脸,手指缝隙间,漏出一滴细小的水珠。

眼泪在这一刻落了下来。没有预兆。也没有声音。

她以为自己会愤怒。可真正袭来的不是愤怒,而是一种迟到太久的寒冷。

那句话在她身体里住了很多年。

它比饥饿更早醒来,比睡意更晚离开。她洗锅时听见它,偷吃一小口冷饭时听见它,妹妹哭着喊她时听见它。即使后来到了岛上,到了那座充满死亡的监牢里,它也没有消失。

它换了模样。

有人死了,是她的错。

有人离开,是她抛弃了。

有人痛苦,是她没有做好。

因为她是姐姐。

因为她应该负责。

汉娜捂住嘴,弯下腰。

她没有哭出声,因为哭出声太像孩子了。而汉娜,早就不能做一个孩子了。

第四封信,字迹密密麻麻的。

“我离开之后,一次都没有回到你们身边去过。

即使我还明白记得原本的地址。也可以给政府办事处打个电话。

有一段时间,我手里还有一点点钱。我只要写一封信,贴上邮票,丢进邮筒里就行了。

就是这么一件事,我却做不到。

因为我每天一点一点地试图把你们忘记。

在我新住下的镇子里,当我第一次被问起:『您有孩子吗』。

『没有』,我摇了摇头。

第二次被问起的时候,我还补充了一句:『我也没结过婚』。

第三次,我回答得更顺畅了。

第四次、第五次,懒得数了,也记不清了。

我一点一点地,变成了一个『一直独居的女人』。

我把你们所有人,都藏到了那几个字的背面,然后一个人活在了另一个世界里。“

汉娜的胸口深处,蔓延开一种奇异的平静。她忽然想起监牢里的餐厅,那空气沉闷,饭菜难吃的餐厅,那里有一些来自其他时间的记忆。

她坐在那里,听别人谈起家,谈起学校,谈起过去。有时候话题会落到她身上。

远野汉娜小姐当然不能说自己来自一间漏风的木棚。

不能说自己有一群饥饿的弟弟妹妹。

不能说最小的妹妹在家里发着高烧,而她那时正在外面练习怎样飞得更高。

所以她会笑,她会说『我是有钱人家的大小姐。』

第一次,她很紧张。

第二次,就能流畅地说出来。

第三次,连舞会的细节都能添上去。

到了第四次、第五次,远野汉娜小姐的嘴已经自顾自地把那些措辞排列好了。

她没有说谎到“我没有妹妹”,可她也没有说“我有一个妹妹”。

她把死去的妹妹一次又一次留在沉默里,那些话轻飘飘的,就像把华丽的缎带盖在腐烂的木板上。

原来沉默也可以是坟墓。

汉娜慢慢把信放下。她忽然意识到,自己一直恨母亲把他们从人生里抹掉。

而她也曾经把妹妹从自己的故事里隐藏起来,只是因为一旦说出口,她就再也无法继续假装自己一个优雅的、虽然有点倒霉但总有一天会回到光亮处的少女。

她必须承认自己来自那里。

必须承认那间木棚还在她身体里。

必须承认有个孩子死了,而她活着。

汉娜的胸口深处,有什么东西发出了一声咯吱的响。风吹动屋顶破洞处垂下的草绳,发出细碎的摩擦声。

窗外的天色更暗了。

“剩下的时间不多了,所以我要把最重要的那件事写完。”

汉娜展开第五张信纸,信纸左上方留着一处淡淡的污渍。那是写信之人留下的,还是读信之人留下的,已无从得知。

“我不想要你的原谅。”

汉娜看到这句话的时候,发出了一声细小而又干涩的笑——她本就不想着原谅她的母亲。

“如果你还活着,如果你真的能读到这些,我也不该这样写,因为死人不会原谅。

如果这听起来,像在命令你『不许原谅』一样的话,对不起。

你可以恨我。你可以忘记我。你可以把这些信烧掉。你也可以什么都不做。

我写这些不是为了让你想:『妈妈已经这样道过歉了,那就原谅她吧』。

我只是想在死以前,说一次真话。然后把这份罪孽,亲手带进坟墓里去。”

汉娜忽然明白了母亲为什么把信放在这里。

不是因为相信奇迹。

不是因为期待死去的女儿回来。

这些信不是写给她的。

或者说,不只是写给她的。

母亲是在对着空空的木棚说话。对着炉子里的冷灰说话。对着年轻时从这里走出去的自己说话。她不需要听众。她只是终于不允许自己继续沉默。

这让汉娜感到一阵尖锐的不快。

因为她不能用“她只是想被原谅”来轻易鄙视这些信了。

但她也不能原谅。

因为理解不是原谅。

最后一封信——或者说只是一片纸,上面只有一句话。

“那天我放到你身上的东西,请你放下吧。那从来都不是你该背负的。”

剩下的大片空白,什么也没有写。是写不下去了,还是决定不写,那已经没有人知道了。

汉娜看着那句话,忽然笑了一下。

“太晚了。”

她说。

声音落在桌面上,没有回音。

“太晚了啊。”

她把那张纸按在胸口,终于哭出了声。

不是那种优雅的、可以用手帕轻轻按住眼角的大小姐哭法。

而是像决堤一样,奔涌而出——就像回到了小时候。

母亲的离开。

妹妹的高烧。

那些夜晚里偷偷练习魔法的自己。

这些影像在汉娜的大脑里循环着。

她曾经真的以为,只要努力练习自己的魔法,就可以让自己,带上弟弟妹妹,甚至带上所有人一起远离泥沼,飞向远方。

可是这一切,都没有发生。

过了很久,汉娜才抬起头。

屋里不知道什么时候已经全黑了。

汉娜用最后的几根柴火点燃了炉灶,火光亮起来,照着桌上的纸,也照着她脸上干涸的泪痕。

她把前几封信重新叠好,放回原处。

母亲没有资格替她洗清什么。死去的人不能把活人的痛苦整理干净。母亲写下真话,然后死了,留下来的混乱仍然要汉娜自己一点一点走过去。

至于最后一封,她单独拿起来,折了两折,放进了口袋。

这不是纪念。

也不是原谅。

更不是和解。

只是为了让汉娜自己知道,有些东西,确实不必再继续在背负着。

汉娜走到角落,蹲下来,把那张塌陷的被褥整理好。她的动作很笨拙,也没有什么意义。死人并不会因此睡得舒服一点。

然后她站起身,望着这间小得可怜的木棚。

风从墙缝里吹进来,炉火轻轻晃了一下。

汉娜推开门,走到屋外。

夜色已经落下,远处没有灯。曾经她就是从这样的黑暗里偷偷跑出去,抬头望着天空,练习让身体离开地面。那时她以为飞翔意味着摆脱一切重量。

现在她知道不是。

有些重量不会消失。

妹妹死了。母亲离开了。自己也曾经逃走过。理解不会让这些重量变得轻松,时间也不会让那些事情变得正确。

但并不是所有重量都属于她。

汉娜把手伸进口袋,摸到那封最后的信。

纸页边缘粗糙,甚至有点咯手。

她仰起头,夜空低垂,没有星星。

过了一会儿,她轻轻呼出一口气,向前走了一步。

这次,远野汉娜没有飞起来。

This post is not available in English yet — showing the original Chinese version.

最近在鼓捣《魔法少女的魔女审判》的 mod,除了写剧本和 mod 化以外,主要的工作就是配音。配音主要是用 GPT-SoVITS 基于原版语音训练之后做推理,但 GPT-SoVITS 自带的 WebUI 只能一句一句推理,仓库里自带的批量推理脚本也是个半成品。我一开始随手写了个脚本跑 for-loop,结果发现批量推理真正的难点根本不在循环——而在怎么给每句话选参考音频,否则配出来的效果实在太抽象了。

于是我 fork 了一份上游 GPT-SoVITS,加了一整套批量推理 + 自动初筛 + 人工复核的工作流。最初的第一版我用的是”按文本情感初筛”的思路,后来发现这其实优化错了目标——下面第一节就讲这个。因此在第二个版本中,我改成了”按演绎方式匹配”的版本。

首先,参考音频到底在参考什么

GPT-SoVITS 推理时要给每句话一条参考音频。在第一个版本中,我想到的方式非常直接:开心的台词配开心的参考、难过的配难过的就行,于是拿情感分类模型给参考库和台词都打个”情感标签”,再按相似度初筛。在很多情况下是可以用的,但是效果总差点意思

后来劳烦 Claude 研究了一个问题参考音频到底在参考什么?发现 GPT-SoVITS 真正从参考音频里”抄”走的,是它的演绎方式——语调、节奏、轻重、停顿、情绪能量,甚至录音环境——这些是 AR 模型把参考音频的语义 token 当成前缀”续写”出来的(类似 VALL-E 的 in-context learning)。

也就是说,“情感标签”和”实际怎么念的”根本不是一回事。同一句「私、大丈夫です」,可以是冷冷的、哭着的、强颜欢笑的,文本情感模型完全分不出来,但这恰恰是输出里最关键的东西。

新思路:按”演绎”匹配

整个匹配现在分成两侧:

  • 参考库:对每条参考音频做声学分析——用一个维度情感模型(SER)给出 valence / arousal / dominance,再用 librosa 提取一组韵律特征(基频走向、能量、语速、停顿数),变成 7 个维度温暖度、激动度、强势度、语速、音量、音高起伏、停顿,范围大概 −3…+3,而 0 是这个角色的正常状态。这些维度分数在每个角色自己的参考库内做归一化(所以”快、响、夸张”都是相对这个角色平常的嗓音而言的)。和第一个版本一样,我们自然要缓存结果——这是在是太消耗时间了。
  • 台词:对每一句,让一个 LLM 读它的上下文对白(以及可选的”演绎备注”),输出 7 个维度的数值,描述这句”该怎么念”。

然后在同一套维度上算加权距离,挑选最接近的。权重直接用数值本身的绝对值——某个维度给得越极端,它在匹配里就越重要;给 0 就表示”这维度无所谓”,不参与挑选。

准备工作

要跑起来你需要两样东西:一份角色配置,一份剧本

角色配置 inputs/speaker_config.yaml 告诉工具你有哪些角色、每个角色的 GPT/SoVITS 权重在哪、参考音频库(一个标准的 .list,直接用训练集就行)在哪:

1
2
3
4
5
6
7
8
9
10
11
speakers:
ema:
gpt_path: GPT_weights_v2ProPlus/ema-e15.ckpt
sovits_path: SoVITS_weights_v2ProPlus/ema_e8_s2232.pth
ref_list: inputs/ema.list
ref_audio_dir: inputs/
meruru:
gpt_path: GPT_weights_v2ProPlus/meruru-e15.ckpt
sovits_path: SoVITS_weights_v2ProPlus/meruru_e8_s480.pth
ref_list: inputs/meruru.list
ref_audio_dir: inputs/

剧本 inputs/scenes/*.scene 是新的输入格式,用来更好的组织多样化的输入。纯文本,一行一句,文件名就是场景名(也是输出子文件夹):

1
2
3
4
5
6
7
8
9
10
# scene01                  (场景名 + 输出子文件夹)
lang: ja (场景默认语言)

ema: 心配要らないよ。今回はボクも一緒だから。
note: 表面は優しく安心させる口調、でも奥に冷たい支配感

meruru: 私も大好きですよ、エマさん。
note: 素直で温かい、信頼しきった声

narrator: ふたりは指を絡め合った。 (旁白,不在配置里 → 只当上下文,不配音)
  • 角色名: 台词,其中角色名要对得上 yaml 里的 key 才会被配音。
  • 缩进的 note: 用来给”演绎指示”(中日英都行,LLM 看得懂),ref: 可以固定某条参考音频,行内 lang: 可以覆盖场景语言。
  • 不在配置里的说话人(比如 narrator:)只会被当作上下文喂给 LLM,不会被配音——旁白、不需要配的杂鱼角色都丢这里就行,它们能帮 LLM 了解场景,从而辅助打分。

打开 WebUI

双击仓库根目录的 go-batch-webui.bat,或者手动运行:

1
runtime\python.exe -I webui_batch_inference.py zh_CN

浏览器会自动开 http://localhost:9870。UI 还是三个 Tab——配置审阅与调整帮助,对应”分析 → 复核 → 生成”两大步。

第一步:分析并挑选参考

配置 标签页填几个框:Scene files to read(剧本的路径,旁边能预览匹配到哪些文件)、Speaker config(自动扫描 inputs/*.yaml)、Output folder、每句保留几个候选,以及一个 AI delivery analysis 折叠栏——里面选用哪个 LLM(anthropic / openai / 本地的 openai_compatible / 或者 none 完全不用 AI)、上下文行数、还有个”多样性(temperature)”。

填完点击 Step 1 · Analyze & pick references。这一步不合成音频,而是:

  1. 把各角色参考库都进行一遍声学分析;
  2. 让 LLM 逐句读上下文和写的 note 算出 7 维演绎数值;
  3. 在每个角色自己的库里按加权距离挑出 Top-K 候选;
  4. 把这些结果连同候选写进每个场景旁边的 <scene>.profiles.json

日志会实时输出到 Live log 框里。

第二步:审阅与调整

切到 Review & adjust,选一个刚分析过的场景。每页 3 句,每句都展示:

  • 台词;
  • 你给的 演绎备注
  • 7 个滑块(温暖度/激动度/强势度/语速/音量/音高起伏/停顿,0 = 无所谓);
  • 几个内嵌音频播放器(就是挑出来的候选),外加一个单选让你决定用哪条。
  • 也有一个选项锁定对这一条的修改。

改完点 Save changes 写回去。如果你改了 note 想让 AI 重新打分,点 Re-analyze this scene就可以。这一步最花时间,但也是质量的关键——绝大多数情况下候选里会有一条能用,实在没有,那多半是参考库里压根没有。

第三步:生成音频

复核完点 Generate audio for this scene。正式生成时会优先用你选定的那条参考。然后就可以把电脑丢给显卡过夜,第二天早上就可以看输出目录里的配音文件了。

关于 LLM 和那句 note

“分析”这步要调 LLM,在仓库根目录放个 .env 填上 key 就行:

1
2
OPENAI_API_KEY=sk-...        (AI service 选 openai)
ANTHROPIC_API_KEY=sk-... (选 anthropic,默认)

也可以把 Server URL 指到本地的 Ollama / LM Studio / vLLM,或者干脆选 none 完全不用 AI、纯手动拉滑块。

note 是可选的,但很有用:没写 note 的句子,AI 就纯靠上下文判断;写了 note,note 说了算,这就像你是配音导演一样。

最后,仓库地址:https://github.com/AsaChiri/GPT-SoVITS,欢迎试用反馈,有问题直接来 Github 提 issue。

This post is not available in English yet — showing the original Chinese version.

一 照片前

暮色中的公寓里,电视的声音在流淌。天气预报的播音员播报着明天的晴天。十来平米的房间被那个声音填满,可那声音早已不知是说给谁听的了。

厨房里,一位老人正在炖咖喱。他用木勺缓缓搅动着用了多年的小汤锅,往里投入一小块巧克力调味,这是这个家的秘诀。

餐桌上摆着两人份的碗碟。

老人停下手,抬头看向贴在墙上的照片。那是夏日祭回家路上拍的。少女提着捞金鱼的袋子,正板着一张脸——然而下一瞬间忽然绽开了笑容,恰恰是那一刹那被镜头定格了下来。那天,孙女一边说着“恶心”,一边目不转睛地盯着金鱼看。嘴上刻薄,但看小东西时的眼神却总是柔软的。

“可可,今天又是咖喱。你说过要甜口的来着,爷爷弄成中辣了。吃吧。有意见就回来再说。”

老人对着照片说。

没有回答。从来都没有回答。

但以前——就在几周前——每当对着照片说话时,胸口一带就会亮起一种不可思议的温暖。仿佛被谁注视着。说不清道不明,但他有一种毫无来由的确信,觉得那孩子正在某处听着自己说的话。不是道理,只是一种感觉。每次与照片对视,胸腔深处那片冰冷的地方,就会微弱地、却切实地回暖。

几天前开始,那种感觉消失了。

照片只是一张纸了。是印刷的油墨和相纸。温暖消失得无影无踪,无论怎么说话,无论怎么凝视,那种奇异的感觉再也不曾回来。好像电话那头的线路被切断了一般——又或者,像是在那头倾听着的人,已经不在了。

老人在椅子上坐下来,换了个电视频道。新闻正在播放,是关于降低魔女因子检测对象年龄的法案报道。和他无关的事。不——也许其实有关,但他无从知晓。

那一天,孙女突然不见了。早晨醒来,卧室的床空无一人,窗户关着,门也锁着。仿佛那里从一开始就没有住过任何人。他去了警察局,说明了情况。窗口的警察态度异常冷淡。

“您孙女的事不在我们的管辖范围内。”

什么管辖——他追问。没有得到回答。他要求找上级。上级也说了同样的话。被踢了几次皮球之后,最终得到的只是一张纸片。上面印着一个他从未听说过的组织的名字——“魔女因子对策管理局”——以及一个怎么也打不通的电话号码。

从那以后已经过了好几周了。他每天都在做咖喱。甜口和中辣轮流做。甜口的那天,是想着孙女一回来就能马上吃。中辣的那天,是给自己吃的。餐桌上的两只碗碟,其中一只空着迎来早晨,洗干净之后,第二天又被摆上桌。

“……隔壁的猫生了小猫。三只。棕色那只最活泼。你看了大概又要说恶心吧,爷爷觉得挺可爱的。”

老人又一次对着照片说话。

沉默。

“……快回来吧。”

嗓音微微发了颤。老人假装没有察觉自己声音的颤抖,站起身走回锅边。锅盖在咕嘟咕嘟地响着。电视的声音在流淌。餐桌上的碗碟依然是两份。

老人不知道。

孙女已经死了。在遥远的孤岛的森林深处,蜷缩在漆黑的树洞里,少女用颤抖的拳头抵住某人的胸口,留下了最后的话语——“拜托了,请陪在他身边。他一直都很孤独。”在她心里比全世界都重要的那个人,正是此刻在这间屋里炖着咖喱的老人。而被托付了那份请求的少女的灵魂,早已消散殆尽。知道那个约定的人,在这个世界上已经一个也不剩了。

照片中,少女在笑。被夏日祭灯笼的光映照着的,既害羞又有些得意的笑容。千里眼的魔法消失之后,再也没有人从照片的另一侧回望了。

无人注视的笑容,在昏暗的房间里静静浮现。

二 法律之外的墙壁

东京。从新宿坐两站地铁的一栋老旧写字楼三层,挂着一块写有“佐佐木律师事务所”的小招牌。招牌上的字已经褪了色,楼梯间积满灰尘,电梯半年前就坏了。

五十多岁的男人坐在老旧的办公桌前。桌上文件堆积如山,几封未拆的信件排成一列。窗外只看得见隔壁大楼的墙壁。一根快要坏掉的荧光灯管正忽明忽暗地闪烁。

男人拆开了一封信。寄件人是“魔女因子对策管理局”。是对信息公开请求的答复书。正文只有两行。

“基于安全保障考量,判定不宜公开。”

第三次驳回。

男人摘下眼镜,用指尖按住眉心。太阳穴深处隐隐作痛。桌上的信件内容如出一辙。“关于魔女因子阳性者人身拘束的申诉书”“关于收容设施所在地信息的公开请求书”“关于未成年人人权侵害的联合国通报书”——全部吃了闭门羹。就连基于行政诉讼法提起的复议请求,也被一句“不属于可诉的行政行为”轻描淡写地挡了回来。

三十年的法律从业经验,在那道墙壁面前全然失效。

这半年来,男人一直在代理那些同样被夺走了孩子的家庭。好几个家庭。全是少女。全是十五岁。某天早晨突然消失,房间里没有任何挣扎的痕迹,去警察局就被告知“不在管辖范围内”,联系政府机构就得到“出于个人信息保护无法回复”的答复。每个家庭都走着同一条路,在同一堵墙前驻足不前。

其中的一人,他认识。

他拉开抽屉。里面有一张学生证。照片里的少女还没有把头发染成金色,留着朴素的黑发。眉毛微微下垂,视线避开了镜头。想笑却没能笑出来的表情。那是还没开始自称“大叔”的、尚未披上任何伪装的、伤痕累累的孩子。

他回想起了那一天。

有人敲响了事务所的门。打开一看,一个穿着校服的少女站在那里。眼睛红肿,脸上纵横着好几道泪痕。嘴唇颤抖着,一点一点地把经过说了出来。被信任的朋友们背叛。照片被散播。再也无法去学校。想过去死。

男人提出了一个建议——交换身体吧。这副用了五十年的旧身躯,至少没有藏着任何不想被人窥探的记忆。在少女重新能够呼吸之前,把这个身体借给她。作为交换,男人用少女的身体以法律手段推进删除照片和追究加害者。

半年间,少女在他的身体里生活。一开始整天都在哭。每次照镜子都害怕得发抖——可看到镜中映出的不是自己的脸,反而松了口气,又因为那份安心而心生愧疚,然后又哭了起来。

“大叔的身体……好安全啊。”

从说出这句话的那天起,什么东西开始一点一点地改变了。她学会了早晨散步。学会了磨豆子、冲咖啡。开始一部接一部地看事务所书架上的老电影 DVD,笑出声来了。有一天,她一边洗碗一边说了句——

“想变得像老师一样。”

男人已经不太记得自己当时是怎么回的了。大概是觉得不好意思,随口说了句不怎么高明的话吧。

交换回身体后不久,“魔女因子,阳性。”少女在睡梦中被带走了。前一天夜里只接到了一通电话。

“老师,大叔我……好害怕。”

那颤抖的声音至今仍栖息在耳朵深处。每当荧光灯闪烁,那声音就会复苏。

男人把学生证放回抽屉,面对起第四份请求书。法律对付不了这个体制,他早就明白了。即便如此,也只能继续递交文件。握着笔的手指在颤抖。是疲惫。是愤怒。还是——另一种什么东西。

“……等着我,米莉亚。老师一定会去接你的。”

那声音不曾被任何人听见,湮没在荧光灯忽明忽暗的嗡鸣里。

男人不知道。

米莉亚在岛上自称“大叔”,用笨拙的温柔赢得了所有人的喜爱。默默地处理杂务,一边害怕一边照顾着同伴。而在最后的夜晚,她站到了充满杀意的少女面前,说了一句——“我就是【樱羽艾玛】啊”——以自己的性命为代价撒了一个谎,替朋友承受了刀刃。

老师教给她的“守护他人”这件事,米莉亚在最后的最后,用自己的身体去实践了。不是借来的大叔的身体,而是伤痕累累的、属于自己的身体。

知道这件事的人,已经只存在于那座岛上了。

而岛上,已经没有任何人了。

三 人偶之家

午后的阳光斜斜地照在郊外的住宅区。

左右的房子都在院子里开着花、晾着衣服、停着孩子的自行车。在这些房子中间,只有一栋紧闭着所有窗帘。庭院的杂草长到了膝盖高,信箱被广告传单塞得溢了出来。门牌上写着“夏目”。生锈的铁字在午后的光线里泛着暗沉的光。

玄关的门打开了。一位社会福利工作者用钥匙开门走了进来。每周三次的上门服务,已经持续了两年多。

“打扰了。”

没有回应。这座房子里没有会回应的人。

沿走廊前行。积着灰尘。墙上大概曾经挂过全家福,留着长方形的褪色痕迹。照片本身已经不知去向。走进客厅,沙发上坐着两个人影。

夏目家的父亲和母亲。

眼睛是睁开的。规律地呼吸着。但什么也看不见。无论呼唤、挥手、还是在眼前拍掌,瞳孔都纹丝不动。身体是健康的——内脏功能正常,肌肉也没有萎缩。只是没有意志。

已经这样很多年了。去过好多次医院,脑部扫描和血液检查都找不到异常。病历上写着“病因不明的意志丧失症”。医生只是摇头。知道原因的人不在这栋房子里的任何角落——只有他们的女儿知道。

社工以熟练的动作准备好饭菜。用微波炉加热了一份速食白粥,用小勺舀起送到父亲嘴边。只剩下吞咽反射。食物触碰嘴唇后被机械地咽下。对母亲也一样。表情没有变化。无声地,食物只是进入了身体。

喂完饭,擦净嘴角。桌上放着一本速写本。

封面上用大字写着——

『夏目安安 著 伟大的冒险故事 第一卷(未完)』

笔迹张扬。对于少女的字来说过于有力,一笔一画都透着逞强。是一个志在成为作家的孩子,深信自己是天才时写下的文字。

社工第一次上门时,曾打算把它处理掉。一本又旧又脏的、像是小孩涂鸦般的东西。可是她注意到了——母亲的手,本应没有意志的母亲的手,总是放在速写本上面。轻轻移开它,下次来访时又回到了同一个位置。不是有人挪动了它。这栋房子里没有别的人。是母亲的手,自己回去的。

是反射吗。还是在破碎的心灵深处沉淀着的什么——失去了意志,失去了语言,但仍然燃烧着的什么——不愿放开女儿的痕迹。

社工不知道。只是决定不再碰那本速写本。

她曾翻到过最后一页。故事在中途断了。

『勇者拿起剑,朝着魔王的城堡进发。

然而勇者心里清楚。

即使赢得这场战斗,已经被毁掉的东西』

文字就在那里断了。笔迹停在纸上,墨水微微洇开。仿佛执笔的手被什么人猛然按住了一般。又或者——是后续的话语,始终没有找到。

一个从未写完过故事的少女,又多了一篇未完的故事。如同这座房子本身——开始了,却不知如何结束。

社工收拾好餐具,将客厅的窗户打开了一条缝。午后的风吹了进来。窗帘摇曳。院子里杂草被风吹拂的细响隐约可闻。

两个人影纹丝不动。睁着的眼睛什么也映不出,紧闭的嘴唇什么也说不出。

这座房子里,没有一点声音。

四 等待的人们

郊外的一栋房子。小小的庭院里有一片花坛。牵牛花的藤蔓被仔细地缠绕在支架上。阳光充足的、打理得很好的家。

餐桌旁摆着三把椅子。其中一把是空的。养父默默地整了整那把椅子上的坐垫。有些塌了,他把它拍蓬松,调整好形状,然后回到自己的位子上坐下。

“……今天也做了雪莉喜欢的汉堡肉。”

养母一边摆盘一边说。养父点了点头。两人都没有看那把空椅子。

从福利设施领回那个浑身伤痕的少女,已经三年了。最初无论说什么都不笑,无论吃什么都说尝不出味道,半夜尖叫着惊醒的事不知发生了多少回。即便如此,他们每天都一起坐在餐桌旁,每天都说“早上好”。一年过去的时候,少女终于喊了他们“义父”、“义母”。“没有什么不满意的”——她用生硬的敬语、低垂着目光说出了这句话,附带着一个笨拙到了极点的笑容。对他们而言,那是世界上最美的东西。

盘子里的汉堡肉,渐渐变凉了。

病房。

消瘦的女人望着窗外。白色墙壁围起的六人病房,靠窗的床位。窗帘缝隙间洒入的光,在女人的面颊上落下条纹状的影子。没有表情。已经好多年了,一直这样。

这个女人曾经有一个女儿。用华丽的嗓音一次又一次来到这间病房的女儿。带着花、带着书、有时还带着亲手制作的卡片。“看这个”“这是我做的”——一遍又一遍。少女在无声地呐喊。“请看看我。”只求母亲看自己一眼。

母亲一次也没有看过她。

唯有电视里播放的戏剧吸引过她一次目光。画面中演员们演绎着某个故事的瞬间,那双失焦已久的眼睛忽然凝聚了一刹那的视线。女儿没有错过那一幕。为了那仅仅一瞬,少女决定成为舞台上的偶像。只为了将母亲的目光引向自己。

现在,病房里的电视开着。天气预报正在播放。明天是晴天。画面中没有女儿的身影。母亲的眼睛,依然什么也没有映出。

警察局。咨询窗口前。

母亲隔着柜台提高了嗓门。

“请告诉我女儿在哪里!已经好几周没有联系了——”

“魔女因子检测对象的信息无法公开。请向负责机构咨询。”

“负责机构在哪里!”

父亲轻轻将手放在母亲肩上。母亲咬了咬嘴唇,将后面的话咽了回去。柜台那边的警察已经在叫下一个号了。

回家的路上。两人默默走过商店街的拱廊。母亲从包里取出一张照片。运动会那天的照片。赛跑中摔倒后正在哭泣的少女。有人向她伸出手,把她扶了起来。膝盖上贴了创可贴后,半哭半笑的脸。

“……那孩子,交到朋友了吗。”

父亲什么也没说。只是握住了母亲的手。两人的影子在夕阳中被拉得很长。

他们不知道。女儿在岛上遇见了十二个少女。叫着她们的名字、握着她们的手、成为了朋友,然后一个接一个地失去了她们。最后失去了自己。“交到一百个朋友”曾是那个少女的梦想,而这个梦想竟以这样的方式破碎了。

厨房的桌上放着一封信。寄件人是“魔女因子对策管理局”。邮戳已是一周前的了。

母亲始终没能拆开那封信。

女儿在被带往监牢之前就已离家出走。最后一次说的话她还记得——在玄关穿鞋的时候,头也不回地丢下的话。

怎么可能忘记。那孩子弄得乱七八糟的房间至今原封不动。散落一地的漫画、扔在床上的耳机、用图钉钉在墙上的偶像海报。什么都没有动过。

握着信封的手在颤抖。

五 悬崖上的翅膀

悬崖上,一个少女站在那里。

背上长着巨大的翅膀。白色的羽翼承受着海风,微微颤动。头发随风飘荡。双眼中什么也没有映出。瞳孔深处只有一个幽暗的、深不见底的空洞。

这个少女曾经在笑。

曾经用欢快的声音逐一喊着遇见的少女们的名字。

诺亚。蕾雅。米莉亚。安安。亚里沙。奈叶香。可可。玛格。汉娜。雪莉。梅露露。

希罗。

如今,那些名字没有一个留在她的心中。声音、面容、交换过的话语,胸腔深处曾有的温度。全都褪了色,剥落了,如同细沙从指缝间簌簌滑落。留下来的只有杀意。

脚下大海延展开去。围绕着岛屿的高墙之外,大陆的轮廓隐约可见。那个地方,有人在等待着她们归来。

小小的公寓里,祖父正在做咖喱。

律师事务所里,律师正在写文件。

紧闭的房屋里,两具人偶静静坐着。

空着的椅子旁,夫妻在整理坐垫。

病房里,母亲望着窗外。

警察局门前,父亲和母亲手牵着手。

他们也携带着魔女因子。正如世界上许许多多的人一样。

风中传来了声音。从遥远的过去,又或者从少女的脑海深处。温柔的、平静的,却又透骨冰冷的声音。

“——我在这个世界上,花了很长很长的时间,把诅咒散播出去。”

“——所以,很多人都拥有【魔女因子】。”

“——真的很多、很多。”

“——来,尽情屠杀吧,艾玛。”

少女点了点头。用空洞的笑容。

那个笑容,与曾经面向朋友们绽放的笑容是同一个形状。面颊的肌肉以相同的角度抬起,嘴唇描画出相同的弧线,眼角以同样的方式眯起。但深处曾经存在的一切——温暖、笨拙、喜欢对方的那份纯粹的心意——都已消逝。只剩下徒有形状的笑容,依附在一具失却了灵魂的空壳上。

翅膀迎风展开。

无边的寂静,吞没了整个世界。

This post is not available in English yet — showing the original Chinese version.

不得不说,已经很久很久没有一款游戏能够像《魔法少女的魔女审判》一样能让我有巨大的情绪波动,以至于要写一篇玩后感来排解一下内心的情绪。当然,也有可能是因为吐槽群里还有群友没有玩,为了避免剧透,也不方便尽情吐槽,只好在这里写一个带剧透警告的玩后感来输出了。

游戏其实我已经买了快 6 个月,因为早就知道了(虽然没有早到众筹那一会),但是一直都没有玩。心里总是觉得,这样的游戏需要一段连续的时间来体验,直到二月份这样的时间才出现。不过玩得晚也有好处,云存档、自动存档这些原本没有的全加上了(据说论破语音都是后加的,那真的是等等党的胜利了)。在成功地避免自己被剧透之后,2 月 6 日第一次启动了这款游戏,开始了疯狂的 6 天玩 33 个小时通关的经历。事实上如果不是要上班,估计会三天连续打完——上次这么夸张的读小说类的,应该还是三天读完三部《平凡的世界》

结果上来就没绷住,希罗光速去世,吓得我赶紧确认了一下作画精细度以确认这不是个路人——那自然就可以猜到有二周目(只是当时没想到二周目会换希罗的视角)。序章作为奠定初步人设的一章,完成了它应有的任务,毕竟作为群像剧,最重要的是让观众能先分清角色,先创造出足够大的差异。鲜明的色彩和每个人极具特点的服饰风格(梅露露大人天天看服装杂志的含金量),加上几句话就能展现出的明显性格特质,尽管上来就有多达 12 个人,但完全没有任何区分不同人物的压力。(在这里不得不揶揄一下泛八爷的经典语录:白毛、白毛、又来一个白毛、怎么你也是白毛)塑造完最表面的人物形象之后,很显然剩下的部分就会是塑造每个人的另一面,不然就会掉进群像剧的脸谱化问题。事后来看,这正是魔女审判做的最成功的地方,每个人有一个表面,一个里面,整个游戏都在利用魔女化这里要素引导玩家发现每个人物的里面,明确、简单、好用。

扯远了,接下来就是第一案了。玩完了才知道简易长矛太有名了,不过我在玩的时候觉得第一案作为新手教程其实设计得相当不错。首先是受害 CG,白底红蝴蝶加彩色的诺亚,高对比度高饱和度,实在是太符合我心意了(色弱患者就喜欢高饱和度战士)。然后是搜查,搜到断扫帚就猜到大概率是简易长矛了(只是没想到是四截的,我原以为只会有两截或者三截)魔法的应用也没有特别夸张,只是用来制造不在场证明。第一案最大的问题可能是推理太宝宝巴适了,导致我的思考进度永远比推理快,所以有一些难受。在推出蕾雅之后,第一个问题就是:什么动机啊?随着处刑的进行,动机揭开,搭配相应的处刑,实在是,太美味了。虽然之后几乎每一个案子,推出凶手之后都得要问一句:不是为啥啊?

除此之外,不得不提一下神秘小 BE。结束之后看 B 站很多吐槽神人小 BE 的,也许是因为我开了 BE 提示,所以选 BE 更多的是一种收集要素,特别是后期很多 BE 选项更多想的是——这还能 BE?在我这唯一能称得上神人 BE 的大概是 1-3 挖出炸弹了,这个实在是太抽象了。之所以要提到神人小 BE,是因为第一章的两个 BE 在第一案结束后迅速占据了我的大脑:分别是艾玛紫砂的 BE,提到了血色的蝴蝶;以及汉娜魔女化的 BE,让人很快地可以了解到世界观上的设定。

第二案不得不说令我觉得最为无厘头。在前面的日常过程中,我隐隐约约觉得大概率和模仿声音有关,结果最后确实是模仿声音,但是不是玛格而是用手机。第二案最让我难绷的一点在于魔法直接用来犯案拿了钥匙破了密室结果把钥匙丢里头了,而且动机也很难站到住——都怪魔女因子。但是处刑美术成功挽救了这一案,我认为纯论美术,这应该是最好看的处刑(之所以说纯论美术,因为后面有 CP 加成),而且第二案的点在于自私,而第一案是嫉妒,很难不让人想起七宗罪。我也以为游戏要这么展开了,以为成功拿捏编剧了,没想到后面成功打了我的脸。

第三案当我看到设计图的时候,我就注意到设计图少两个房子——结合已知雪莉、汉娜的魔法(主要是大叔已经寄了),盲猜房子要么要飞,要么要被换——再加上两人的日常,特别是两人私奔的 BE,我就知道这一案大概率和这两个人脱不了干系了。特别是当两人感情明显升温的时候,我甚至猜起了一人紫砂另一人背锅的剧情(事实证明这种事情还是发生在第四章了)。但即使有这样的准备,最后揭晓的时候还是成功冲击到我了——相比一人紫砂一人背锅这样的单相思的感觉,果然还是编剧搞出的这种委托谋杀更能体现两人的双向友情——也是从这里我基本逆转了对编剧的看法,他终于领先了。

第四案是我第二天从第二案开始玩玩的最后一案,是我觉得一周目里推理最好的。当然在说推理之前,不得不说,亚里沙好孩子捏,艾玛亚里沙浴室 CG 好磕~第四案的推理,也许是因为有一个明确的目标(证明亚里沙是紫砂),所以推理的步骤上逻辑性很强。最重要的是,在玩家千辛万苦推理证明是紫砂,结果最后被逼到绝路要处刑艾玛来背锅,这一段加上本身足够恶趣味的处刑按钮,成功地为最后的高潮做好了准备。

第五案作为一周目的高潮,成功让我贡献了第一次推理超时——超级拼装实在是太恐怖了,而且,一周目的时候谁能想到是梅露露大人的黑手呢。通关后看到很多人吐槽第三案的魔法很逆天,毕竟徒手搬房子受力点不够物理。不过我反而觉得那样兴许是想多了,毕竟正常人想到力气大都会想到能搬东西,很难让人想到治疗魔法能治疗无机物,这实在是太扩大解释了。不过至少动机合理——最重要的是一周目结局了,马上要开二周目了,很急。当时我在猜想二周目在其他人都没了的情况下怎么展开,我本以为会是一种时间轮回 + 记忆消除魔法,过了一段时间希罗又回来了,梅露露被记忆消除了但是艾玛没有。结果我想象的这部分出现在了艾玛 + 梅露露的百合 BE 里,只能说被编剧狠狠拿捏了。一周目最终的结局,虽然很感人,但是一想到之后有二周目,感动的感情甚至感觉不如第三案的动机揭露时,但是 CG 还是颇有美感。

在一周目结束的时候,我专门看了一下 CG 收集,发现中间还有空的,于是去各个案子里收集了一下超时 BE,收集了可可和亚里沙的错误处刑 CG——成功地把自己剧透了,毕竟很难不猜到每个人会受害一次被处刑一次。而且从声优角度考虑,大概率一周目活得久的二周目就要速通。这就导致二周目的推理,完美带入希罗——推理部分直接速通,因为根本就能猜到谁是凶手。

进入到二周目,发现居然是希罗死亡回溯,直接换到希罗视角,给我弄傻了。当然此时随着一周目结局的揭露,我其实多少也猜到希罗要干嘛了——如果游戏是个 HE 的话,一定是想办法给小雪弄出来。此外,也很难不注意到那本梅露露根本不看的书上的剑就是保险箱里的礼仪剑,仪式就是一群魔女围成一个圈,就像审判庭一样(很难不质疑梅露露的智商,几百年只看时尚杂志的含金量),大概率是想办法保活所有人齐聚审判庭(果然猜对了)。所以之后就是希罗速通环节,进入了我愿称之为最难绷的案件——2-1。2-1 集齐了难以理解的动机(虽然后来看也许有删减,毕竟玛格说的话多少有点 R18 了,没少提 escort 之类的话题,虽然简中只是简单的翻译成陪伴了,但是但凡懂一些英文的话,就能知道是说一些不符合本游戏年龄分级的东西),非常抽象的手法(希罗睡得可香了,一百斤踩上去啥事没有),对于魔法的超规格应用(什么主动降噪魔法,空间音效魔法,直接给我看愣住了)。我只能说,我很理解一周目玛格和梅露露的声优干到了最后,急着下班,至于案件,本人拒绝给出评分。

2-2 是全游戏我玩完以后评价最高的一章,完全合理的动机,利用地图但不想 1-3 那么明显,手法上完全没有使用魔法,只是简单地使用魔法伪装了不在场证明。最重要的是,保护这一点,直击我的好球区——而且事后来看,“保护”这一点确实是编剧特别想强调的情感:奈叶香和姐姐,艾玛和希罗,汉娜和雪莉,甚至说小雪和梅露露,从基于亲情的保护,到基于友谊的保护,到最后——基于陪伴的保护。而且成功回收了之前大量的伏笔,包括 1-2 被安安洗脑,一周目放过奈叶香,以及 1-5 奈叶香的名字出现在之前的魔女列表里等等等等。这种世界线收束的伏笔回收的感觉,成功地让神秘打野女这位在一周目多少有点没有存在感的人,瞬间鲜活了起来。

正如之前提到的自我剧透,当我玩 2-3 和 2-4 的时候我已经预测到,安安、蕾雅、雪莉要受害然后诺亚、汉娜和米莉亚要处刑。所以 2-3 玩的时候,看到喷泉没水,直接速通了凶手——虽然我也不知道:诺亚为什么要这么做呢?诺亚最后的消失,带给我的感觉也是纯粹的空洞感和抽离感,就像整个人呆住了一样。而 2-4,当我看到电梯只能载两个人的时候——凶手是汉娜没跑了。结果正当我在想蕾雅和雪莉要怎么去世的时候,编剧整了个大的——魔女审判里最美味的一段——不得不说,那个时候根本没有想哭的感觉,更多的是震惊——不是,艾玛你怎么似了(泛式:想到自己丧友丧女丧妻的一生,结果自己才十五岁)。也许就像 2-3 一样,被保护的人的死亡在我这里更多的是空落感,而反过来却更容易对我造成冲击。在这样的情况下,尽管魔法使用还是很抽象(头发也是身体的一部分吗,我请问了),但是推理还是速通了,虽然到最后我都想不通汉娜为什么换上演出服之后还要戳一剑(大概率还真是当小兵给补了)。

但当我还在思考雪莉要怎么受害的时候,殉情直接把我击沉了——在玩这个游戏的第五天,终于是体会到了崩溃的感觉——雪莉之所以不会哭,是因为眼泪全在其他人的眼睛里了。更重要的是相比 1-3 最后的揭露,2-4 是情感的直接抒发,雪莉看起来很伪人,却有着最为真实而直接的感情——真实不可多得,而直接则极具张力。如果说我现在倒回去,看其他主播的 1-3 切片,我可以笑着就像二周目希罗看艾玛的感觉一样看的话,即使看多少遍 2-4 的剧情,也很难脱离出来,这便是最为直接和真实的情感爆发。也因为这个原因,第 5 天直接停在了 2-4 结束,所以这样来想,恐怕即使有时间,三天玩完估计精神上做不到吧。

在来到 2-5 大结局之前,不得不提一下 2-4 的神秘 BE,也就是希罗和蕾雅的 BE。很奇怪,我想当喜欢这个 BE,虽然很抽象甚至希罗都有点 OOC 了,但是这是 BE 里少有的全员去世无人生还结局。就像 2-5 的 BE 一样,我想当喜欢这两个无人生还 BE,那种寂静无声的感觉是最纯粹的 BE 的感觉,相比一周目结局的孤身一人的孤寂,感觉更加悲伤(月代雪:艾玛只是希望其他人死,这里还有一个希望所有人死的,该让你当魔女杀手)。虽然理论上 2-5 的 BE 因为艾玛开了魔女杀手导致应该所有人都死了,但是希罗蕾雅的 BE 更有一种归于平寂的感觉,也许是插入的 BGM 的感觉。不过事后去听那个 BGM,确实相当好听。

在 2-5 大战铁桶僵尸之后,我本以为能有一个全员存活的 HE,结果编剧最后突施冷箭——梅露露最后做的事情其实和之前所有的让我感动点一脉相承——即使非亲非故,哪怕曾经互相怀疑,但是陪伴所带来的感情的纽带,让人愿意去保护——我只是完全没想到,在这个明显是 HE 的状况下,最后会变成这样——多想所有人都能留下来,三人组再去屋顶看一次烟花啊。于是再度崩溃,复刻 2-4 结束后的感觉,歇了 30 分钟才把最后的结尾结束掉。说实话,已经很久没有游戏能给我带来这么大情感波动了——或者说,很多悲剧结局的故事更多给我带来一种空落的感觉,却很少有直白的情感冲击。倒不是说哪种孰优孰劣——只是感觉如果是命运注定的悲剧,更多的是失落;而由于情感上的选择而造成的悲剧,更多的是冲击,而魔女审判在后者上的呈现可以说是及其完美。

不知不觉写了接近五千字,虽然都是些细碎的感想,或者是游玩时的记录,整体就像流水账一般,但是确实难得能让我想要写出如此多文字的游戏。魔女审判在视觉小说数据库里的评分差不多是 8.44,在所有的视觉小说里排到 25-30 位,我是觉得推理的部分确实拖了一些后腿,如果纯论人物的塑造、情感关系的拿捏,我觉得能够得到 9+ 的分数。

最后:嘻嘻。

This post is not available in English yet — showing the original Chinese version.

空中几处闻清响,宛转歌声一索珠。

玉树长飘云外曲,宫商不断鸟相呼。

前日因年终盛典文案之需,为兰音 Reine所作,四句皆与歌声音乐相关,书其动人美妙,“玉树”一句更合人设,自以为甚好。诗中四句分别集自:

王郎中妓席五咏·歌

【唐】顾况

柳拂青楼花满衣,能歌宛转世应稀。
空中几处闻清响,欲绕行云不遣飞。

夜宴醉后留献裴侍中

【唐】白居易

九烛台前十二姝,主人留醉任欢娱。
翩翻舞袖双飞蝶,宛转歌声一索珠
坐久欲醒还酩酊,夜深初散又踟蹰。
南山宾客东山妓,此会人间曾有无。

华清宫

【唐】张继

天宝承平奈乐何,华清宫殿郁嵯峨。
朝元阁峻临秦岭,羯鼓楼高俯渭河。
玉树长飘云外曲,霓裳闲舞月中歌。
只今惟有温泉水,呜咽声中感慨多。

湖斋坐雨

【清】陈曾寿

隐几青山时有无,卷帘终日对跳珠。
瀑声穿竹到深枕,雨气逼花香半湖。
剥啄惟应书远至,宫商不断鸟相呼
欲传归客沉冥意,写寄南堂水墨图。

另外说来,所谓集句,即是辑前人诗句以成篇什,若能翻出新意,更是最佳。对于古人,想要写好的集句诗,常常需要极深的积累;但是对于现代人,历朝历代诗词都已电子化以供查阅,相比古人写起来自然是轻松不少,若是略通平仄,稍有沉淀,倒是可以用集句诗这种有趣的文字游戏,作为学习、积累,进而开拓的一条路径。

This post is not available in English yet — showing the original Chinese version.

前言

今天一位友人遇到了问题,简而言之就是——他有一张背景和一张半透明的图像,同样是作为两个图层,在 OBS 和 Photoshop 中混合后,竟然得到了完全不一样的颜色。如图所示:

左边是 OBS,右边是 Photoshop。可以看到有明显的色差

这个问题非常的 Amazing 啊~然后我就在 OBS 的官方 wiki 找到了这样一篇文章:https://github.com/obsproject/obs-studio/wiki/Linear-Color-Blending 对此做出了解答并给出了解决方案。本人在此选择重点节译其解决方案,有兴趣的观众可以到源地址做数学题(真的是做数学题)。

需求

OBS Studio >= 27.0.1(低于此版本你会看不见下面所说的一个选项)

解决方案本质上做了什么?

原文可能不太便于理解,但本质上来说就是 OBS 和 Photoshop 等默认采用的透明颜色混合算法并不一致。通过修改设置(启用线性颜色混合)使得双方算法一致,这样你就可以在 Photoshop 中为 OBS 制作素材,并保证素材在 Photoshop 中和在 OBS 中看起来一致。

需要做什么?

OBS Studio

修改图像源属性,勾选“在线性空间中应用 alpha 通道”。

需要 OBS Studio >= 27.0.1

Photoshop

打开“颜色设置”(你可以使用默认快捷键 Ctrl-Shift-K),勾选“用灰度系数混合 RGB 颜色”并设置为 1.00.

然后你就会发现,OBS 和 Photoshop 的结果现在看起来非常一致了。

虽然变得有些奇怪,但至少一样了,这样你就可以放心地在 Photoshop 中做调整,结果和 OBS 将会是一致的。

对于其他 Adobe 全家桶里的软件也提供类似设置。

Premiere Pro

在序列 - 序列设置中勾选“以线性颜色合成”。

After Effects

在项目设置 - 颜色中勾选“使用 1.0 灰度系数混合颜色”。

如果你使用其他软件,他们也许也会有类似的设置,尝试找一找类似于“线性光”、“gamma 1.0”、“线性颜色”这样的选项。如果你觉得这篇专栏对你有帮助,还请点赞转发哦~非常感谢!

This post is not available in English yet — showing the original Chinese version.

谁能想到,从我去年开这个博客到今天,一年过去了,我居然一篇博客都没有写。某种意义上,可以说是远超季羡林,接近胡适之的水平了(大嘘)。
过去的一年虽然摸了很多鱼,但是也没有完全在摸鱼。谨此做一个简单的总结,当然博客上是不会有正事的总结的。

B 站活动

过去的一年,可以说是我真正变成了活动区 UP 主的一年,按照时间顺序大致有:

  • 2021 年 4 月的 V 面的 Apex 比赛,某种意义上可以被称之为星空杯 S0(然后非常搞笑的,时间滤镜重出江湖,竟有人认为星空杯还不如这次比赛。但我的评价依然是,EA 的程序员之水平,对得起全美最烂游戏公司之名号。
  • 2021 年 6 月的高考加油视频,本来感觉整挺好,隔壁交大更是重量级。结果最后被某校的空调整了一手,属于是意想不到了)
  • 日报的夏日歌回,因为过于拉跨,我竟记不清几号了(反正我也只是被拉去救火的)。不过,这里面的技术问题倒是值得再写一篇博文研究一下,包括 RTMP 的拉流转推哪家强,PrprLive 的联动模式的稳定性等。
  • CHN 马里奥的第二季谁是多人闸总王,也是让我出乎意料。本来只是打算去打个酱油,结果没有想到人手紧缺,至于到我似乎成了主办中最为清闲的一个————于是又开始四处帮忙,从规则改进到选、做关卡。后来想来,倒有一种“初生牛犊不怕虎”的意思————毕竟谁会想到在去年暑假之前我还只是一个“资深”云玩家?
  • V 面的虚拟新春会。我不得不承认,V 吧的围观群众对于情况的掌握还是非常之清楚的,他们对此活动的评价是底边自嗨————其实我们一开始也是这么想的,但最后为什么会变成那个样子呢?因为有人的思想觉悟还不如 V 吧众呢。

诗词创作

去年并没有写太多,总共 3 篇。

梦行云·梦中生

楚天正云雨。巫山女。朝暮暮。
登高弄玉,月成芝兰树。
寝兴维占熊罴兆,麒麟应地处。

卜寻傅野,文章吞鸟,江郎锦,思别赋。
西州扶病,白鸡定行驻。
浅斟霞酿华胥路,枕寒蝴蝶去。

(整了个有趣的花样,也是给自己出了一个难题——全篇都用与“梦”有关的典故,但是正文中不出现“梦”字。当然这个主题就来自于希希的梦魇设定咯。整首词虽然都是与梦有关的典故,内容却是人的一生——交往、生养、成人、老去与死亡。古人与梦相关的典故,贯穿了人的一生,想必其中,定然有梦魇的一番功劳吧。作于 2021 年 4 月 28 日)

永雏塔菲小姐出道日谨赠诗二首

永燕子规啼不断,
雏莺唤起夕阳低。
塔前白发无人见,
菲是悲歌落日西。

永朝礼乐三千载,
雏凤翱翔万古台。
塔下祥云瞻瑞霭,
菲随鸾辂出瑶阶。

(其实这二首,其中各共有 5 个半句是 AI 代打,你能猜出来每首中是那些吗?作于 2021 年 6 月 8 日)

满庭芳

冰雪初消,东风传信,日初升,半含山。
孤枝缀玉,香阵卷温言。
几处晓云微雨,不忍看,绿尽红残。
迷离眼,征鸿正起,清露染朱颜。

叹飘零逝水,杯中苦酒,春意阑珊。
启轩窗,庭前锦绣嫣然。
乱蝶游蜂迷径,小桃杏,吐艳争妍。
鹏程在,重门花下,行大道阳关。

(有些事情虽然大家不愿意看到,却总会发生;我们会感谢那些在蛮荒中开拓,怀揣梦想,克服困难,为观众带来欢乐的人,他们让虚拟区成为了百花齐放的绚烂世界;花期有早晚,人生有起落,却不必为此感怀,每个人总会在需要他的地方,如鲜花一般绽放,共同成就这片锦绣繁茂的世界;当我们热忱地面对生活时,未来总是鹏程万里、繁花似锦、阳关大道,每个人都是“向阳而生”的。不过,似乎复活有望,不要问我,我什么都不知道。作于 2021 年 10 月 5 日)

开发

技术开发方面更是大摸特摸,主要就是在研究奇怪的各种天天变的 B 站 API 和弹幕,后续可能会有介绍的博文。

最后,正经人都不写日记,你懂的,嘻嘻。

This post is not available in English yet — showing the original Chinese version.

梦行云·梦中生

楚天正云雨。巫山女。朝暮暮。
登高弄玉,月成芝兰树。
寝兴维占熊罴兆,麒麟应地处。

卜寻傅野,文章吞鸟,江郎锦,思别赋。
西州扶病,白鸡定行驻。
浅斟霞酿华胥路,枕寒蝴蝶去。

:鸽,就嗯鸽了少说两个半月(从正式出道),多说四个月(从上次发词作)。有一个原因是,感觉很难写出花样来。这次的词确实整了个有趣的花样,也是给自己出了一个难题——全篇都用与“梦”有关的典故,但是正文中不出现“梦”字。当然这个主题就来自于希希的梦魇设定咯。整首词虽然都是与梦有关的典故,内容却是人的一生——交往、生养、成人、老去与死亡。古人与梦相关的典故,贯穿了人的一生,想必其中,定然有梦魇的一番功劳吧。

注释(绝大多数白话翻译没有经过准确审校,仅供参考,建议有能力参考原文)

“楚天云雨”、“巫山女”、“朝朝暮暮”:楚襄王梦巫山神女的故事,详见《神女赋》《高唐赋》,这是讲男女之情。

“登高弄玉”:秦穆公时,萧史弄玉的故事。春秋时秦穆公的爱女弄玉,她酷爱音乐,尤喜吹箫。一晚,她梦见一位英俊青年,极善吹箫,愿同她结为夫妻。穆公按女儿梦中所见,派人寻至华山明星崖下,果遇一人,羽冠鹤氅,玉貌丹唇,正在吹箫。此人名萧史。使者引至宫中,与弄玉成了亲。一夜两人在月下吹箫,引来了紫凤和赤龙,萧史告诉弄玉,他为上界仙人,与弄玉有殊缘,故以箫声作合。今龙凤来迎,可以去矣。于是萧史乘龙、弄玉跨凤,双双腾空而去(详见《列仙传》)。正是求得佳偶神仙眷侣的事情。

“月成芝兰树”:“佩兰应梦”的典故,说是郑文公有一个妾名叫燕姞,梦见天使给她一支兰花,说:“我是伯鯈,是你的祖先,把兰花送给你当儿子吧。兰花有国香,佩带着它,别人爱你就像爱兰花一样。”不久,文公见到燕姞,竟也送给她一支兰花而让她侍寝。燕姞大概想到那个古怪的梦,以为一定有幸福的婚姻生活了吧,便情切切地把那个梦告诉了文公,还说:“我地位低贱,如果侥幸怀了孩子,别人不相信的话,我能用兰花当作为信物吗?”文公说:“好。”燕姞生了穆公,取名叫兰。后因称生男孩的预兆为“兰兆”。(详见《左传》)韩愈也有诗句“佩兰初应梦,奔月竟沦辉。”(《梁国惠康公主挽歌词二首之二》)

“寝兴维占熊罴兆”:古代把梦到熊作为生男孩的预兆,“乃寝乃兴,乃占我梦。吉梦维何,维熊维罴,维虺维蛇。大人占之,维熊维罴,男子之祥,维虺维蛇,女子之祥。”(《诗经·小雅·斯干》)。

“麒麟应地”:徐陵的典故,他是南朝著名诗人和文学家,说是她母亲生他时,梦到五色云化成凤,然后就生养了他。有高人说他这是“天上石麒麟”。(详见《陈书》卷二十六〈徐陵列传〉)

“卜寻傅野”:傅说的典故,传说他本来是在傅险筑墙的奴隶。武丁梦得圣人,名字叫说,求于野。乃于傅险得之,举以为相,国大治。(详见《史记》卷三〈殷本纪〉)这是说得到赏识重用的意思。(当然,很有名的那句“傅说举于版筑之间”(《生于忧患,死于安乐》)就是说的他)

“文章吞鸟”:罗含的典故,他是晋时的思想家、哲学家、文学家、地理学家,中国山水散文的创作先驱。这是说一天,他在书房里看书,看觉看觉就伏桌而睡进入梦中,一只小鸟在窗外鸣叫,声音悦耳。开门一看,只见一只金光闪闪的小鹏鸟在树枝上鸣叫。罗含感到很好奇,怎么没见过这样漂亮的鸟。于是小心冀冀地慢慢往树上爬,张着口目光盯着小鸟生怕飞走。鸟儿好象知道他的心思,忽然飞入他口中。罗含一惊,从树上掉下来。惊醒后满身是汗,原来是一个梦。于是对叔母朱氏说所梦之事,叔母说,梦见有异鸟,你以后必定有出息。可能是叔母对他的激励,此后,罗含才思敏锐,下笔成文,学业进步很快。他经常捧书夜读,尤其爱看地理、历史之类的书。写了不少张扬个性的诗词文章,被视为奇才。(详见《晋书》卷九十二《文苑传·罗含传》)这是说文采出众。

“江郎锦,思别赋”:江淹的典故,也就是所谓的“江郎才尽”。江淹年少时以文辞扬名,到晚年才气稍减,据他自己说是作宣城太守罢官回家时,曾停泊在禅灵寺附近的河洲边,夜里梦见一个人自称是张景阳(张协),对他说:“从前把一匹锦寄放在你这儿,现在请还给我。”江淹就从怀里掏出几尺还给他,张景阳大怒说:“怎么能裁剩下这么一点儿!”回头看见丘迟说:“剩下这几尺既然没有什么用了,送给你吧。”又曾在冶亭投宿,梦见一男子自称郭璞,对江淹说:“我有一枝笔在你这儿放了多年,请还给我。”江淹从怀里摸出一枝五彩笔递给了他,此后再写诗完全写不出好句子了。从那以后江淹的文章就大不如前了。(详见《南史》卷五十九〈江淹列传〉)这是说人的衰老。

“西州扶病”“白鸡”:是谢安的典故,指死亡。这个典故说是那时,孝武帝之弟会稽王司马道子专权,而奸诈谄佞小人乘机煽风点火捏造罪名陷害忠良,谢安被迫出京镇守广陵之步丘,建筑新城避祸。孝武帝在西池为谢安设筵饯行,并敬酒赋诗。谢安虽受朝廷嘱托,但隐居东山的志趣始终未消失,每每露于形色。及至出镇新城,携带全家前往,制造泛海的船只和装备,打算等到天下大体安定后,从水道回东山。高雅的志愿还未实现,就遭重病缠身。上书朝廷请求估量时局停止进军,并召子征虏将军谢琰解甲息兵,命龙骧将军朱序进据洛阳,前锋都督谢玄与彭城、沛县之敌对峙,委任谢玄为督察。如果二城守敌凭借地形顽抗,待来年涨水,东西夹攻。孝武帝诏令侍中赴新城慰劳谢安,于是谢安返回京城。听说车驾已进入西州门,自以为壮志不成,功业未就,因而感慨万分,对所亲近的人怅然道:“从前桓温执政时,我常常担心不能保全自身。忽然有一天梦见自己乘坐桓温的车驾走了十六里地,看见一只白鸡后停了下来。乘坐桓温的车驾,预兆将代替他执掌朝政。十六里,从我执政到今天刚好十六年了。白鸡属酉,如今太岁星在酉,是凶兆,我这一病大概再也起不来了!”于是上书辞职,孝武帝派侍中、尚书晓喻朝廷旨意。此前,谢安从石头出发,金鼓忽然破碎,又加上谢安说话从不出差错,这一天忽然出现谬误,众人觉得十分奇怪。不久谢安逝世,终年六十六。孝武帝在朝殿里哭吊三天,赐棺木、朝服一具,衣一套,钱百万,布千匹,蜡五百斤,追赠太傅,谥号曰文靖。因无陵苑,诏令在府中备办丧事仪式。到安葬时,举行隆重的礼仪,一切依照先前大司马桓温的标准。又因为打败前秦苻坚的功勋,加封庐陵郡公。(详见《晋书》卷七十九〈谢安列传〉)

”华胥“:也就是梦境,仙境。据说黄帝即位三十多年,因思天下大治之事,三个月无心治理政事,忽一日梦游到华胥氏之国,见其国上无国君,下无贵贱愚贤之分,人民无所嗜好,既不恋生也不畏死;既无亲疏背向之隔,也无爱憎利害之心,是一个没有人间利害得失的奇妙极乐世界。黄帝醒来,如获养身治国之道,又过了二十八年,国家大治,差不多同华胥氏之国一样,而黄帝却去世了,百姓因此恸哭不绝。(详见《列子集释》卷二〈黄帝篇〉)

”蝴蝶“:庄周梦蝶的典故。过去庄周梦见自己变成蝴蝶,很生动逼真的一只蝴蝶,感到多么愉快和惬意啊!不知道自己原本是庄周。突然间醒过来,惊惶不定之间方知原来我是庄周。不知是庄周梦中变成蝴蝶呢,还是蝴蝶梦中变成庄周呢?庄周与蝴蝶那必定是有区别的。这就可叫作物、我的交合与变化。(详见《庄子集释》卷一下〈内篇·齐物论〉)这是一种精神层面的升华了。

(下一个应该是□雏□□吧)

This post is not available in English yet — showing the original Chinese version.

蹭个热度,最近掀起了空前的测词汇量热潮,然后其实很多题目都挺有趣的,想想闲着也是闲着,不如写个解析增涨姿势。

前面一部分题目的话来自 HSK,做不出来确实国民性存疑~

1、“哭”的反义词是:D

A、坐 B、站 C、骂 D、笑

2、下列哪个选项不是数字:A

A、目 B、四 C、六 D、五

3、这个城市已经有 900 多年的历史了,非常_______。A

A、有名 B、变化 C、季节 D、只

4、_______是一年里最冷的季节。D

A、秋天 B、夏天 C、春天 D、冬天

5、前几天我病了。现在_______好了。A

A、已经 B、经常 C、还没有 D、常常

6、A:你最喜欢什么运动? B:我最喜欢_______。D

A、踢乒乓球 B、踢篮球 C、踢网球 D、踢足球

7、Q:你_______去哪儿了? A:我和翠花去逛商店了。D

A、马上 B、现在 C、一会儿 D、刚才

8、我昨天买了一 _____ 钢笔。C

A、条 B、块 C、支 D、件

9、事情发生得太 _____ 了,我们谁都没想到会出现这样的情况。A

A、突然 B、居然 C、猛然 D、忽然

10、你说得 _____,我没听懂你的意思。C

A、快一点 B、一点快 C、有点快 D、快有点

然后水温稍微升高了一点~

11、味同嚼蜡的含义是:D

A、形容食物像腊味一样。B、形容食物没有什么味道,像吃蜡烛一样。

C、形容食物的质量很差。D、形容语言或文章枯燥无味。

解析:味同嚼蜡,表面意思是像吃蜡一样,没有一点儿味。形容语言或文章枯燥无味。出自《楞严经》卷八:“当横陈时,味同嚼蜡。”

12、他身上不熨帖,打算站一会。这里“熨帖”的含义是:C

A、干净 B、头疼 C、舒服 D、开心

解析:熨帖(yù tiē),首先要念对,然后意思其实很多,包括:1、平坦;平静。2、紧帖。3、按压;按揉。4、舒服;舒适。5、慰藉;体贴。6、贴切;妥帖。7、方言。整理妥当;办妥。8、亦作“熨贴”。热敷。在这里需要根据上下文理解即可。

13、咋舌的含义是:C

A、形容迷惑,不解的样子。B、形容难受,说不出话来。

C、形容吃惊、害怕,说不出话。D、形容因吃惊而咬了舌头。

解析:咋舌(zé shé),咬舌,形容吃惊、害怕,说不出话或不敢说话。

14、矫揉造作的含义是:D

A、比喻做动作的时候比较自然。 B、做东西的时候反复揉捏的样子。

C、比喻用手揉着脸的样子。  D、比喻故意做作,不自然。

解析:矫揉造作(jiǎo róu zào zuò),比喻故意做作,不自然。出自《周易·说卦》:“坎,为矫揉,为引轮“。

15、下面加括号的成语使用恰当的一项是:B

A、几乎所有造假者都是这样,随便找几间房子,拉上几个人就开始生产,于是大量的垃圾食品厂就(雨后春笋)般地冒出来了。

B、面对(光怪陆离)的现代观念,他们能从现实生活的感受出发,汲取西方艺术的精华,积极探索新的艺术语言。

C、整改不光是说在口头上,更要落实到行动上,相信到下一次群众评议的时候,大家对机关作风的变化一定都会(有口皆碑)。

D、加入世贸组织(WTO)后汽车价格变化备受关注,但作为市场主力的几家汽车大厂,三四个月以来却一直(偃旗息鼓),没有太大动作。

解析:本题来自 1997 年全国卷。

A、雨后春笋,意思是指春天下大雨后发出来的竹笋,而且一下子就长出来很多。比喻新生事物迅速大量地涌现出来。含有褒义,在此处误用褒贬。

B、光怪陆离(guāng guài lù lí), 意思是形容奇形怪状,五颜六色。

C、有口皆碑,意思是所有人的嘴都是活的记功碑。比喻对突出的好人好事一致颂扬。此处意思不符,宜用“有目共睹”(人人都能看见,形容极其明显)。

D、偃旗息鼓(yǎn qí xī gǔ),意思是放倒军旗,停止击鼓,指秘密行军,不暴露目标,后比喻休战或无声无息地停止活动;或停止做某事。此处意思不符,宜用“按兵不动”(使军队暂不行动,等待时机。现也借指接受任务后不肯行动)。

16、我们不能 _____ 自己的诺言。B

A、违反 B、违背 C、违抗 D、违拗

解析:固定搭配,其中 D 选项违拗(wéi ào),意思是违背反抗,不顺从。

17、他做的事情太过分了,我打算 _____ 他一下。D

A、回复 B、回报 C、抱负 D、报复

18、欢 _____ 春节!

A、渡 B、度 C、迎 D、镀

解析:度过春节,因此用”度“。

19、下列各句中,加括号的成语使用恰当的一项是:D

A、这个剧院的大型话剧、歌剧等演出票价不菲,让许多有艺术爱好而又收入不高的普通人(叹为观止) ,无法亲临现场享受艺术大餐。

B、最美的是小镇的春天,草长莺飞,(风声鹤唳),走进小镇就如同置身于世外桃源,来此旅游的人一定会被这里的美丽景色深深吸引。

C、这把吉他是我最要好的朋友出国前存在我这里的,本来说存一年,结果朋友一直没回来,这吉他到现在已经由我(敝帚自珍)了十年。

D、在评价某些历史人物时,我们不能只是简单地对他们(盖棺论定),还应该特别注意研究他们的人生经历和思想变化轨迹。

解析:本题来自 2014 年全国卷。

A、叹为观止,意思是形容所见到的事物好到了极点。不符合语境。

B、风声鹤唳(fēng shēng hè lì),意思是惊慌疑惧。不符合语境。

C、敝帚自珍(bì zhǒu zì zhēn),比喻东西虽然不好,自己却很珍惜。只能用来形容自己的东西,而原句里是朋友的东西,对象错误。

D、盖棺论定,意思是盖上棺材盖,才能下结论;人死后对其一生是非功过作出评价。

20、恋爱了这么久,才知道他是个 _____ 汉。B

A、腹心 B、负心 C、腹背 D、撒谎

21、恃才傲物的含义是:C

A、觉得自己有才,很骄傲。B、认为自己有才,有物。C、依仗自己的才能而骄傲自大,轻视旁人。D、依靠自己的才学不把其他事物放在眼里。

解析:恃才傲物(shì cái ào wù),意思是指仗着自己的才能而骄傲自大,轻视众人,也指自高自大。出自《南史·萧子显传》:“恃才傲物,宜谥曰骄。”

22、惴惴不安的含义是:A

A、形容因害怕或担心而不安。B、形容心里觉得不安全。

C、形容心里觉得对不起他人。D、形容坐立不安的样子。

解析:惴惴不安(zhuì zhuì bù ān),意思是形容因害怕或担心而不安。

23、下列句中加括号的成语使用不恰当的一项是:B

A、每一个舞姿都使人颤栗在浓烈的艺术享受中,使人(叹为观止)。

B、有些人凭空想了许多念头,(络绎不绝)地说了许多空话,可是从来没有认真做过一件事。

C、在(突如其来)的重大灾害面前,我们只有依靠科学,依法办事,才能夺取抗击灾害的全面胜利。

D、夏日的南湖,风光旖旎,游人如织,泛舟湖上,水光潋滟、岸柳荫翳,(秀色可餐)。

解析:没找到原题。

A、叹为观止,意思是形容所见到的事物好到了极点。这句话来自课文《安塞腰鼓》。

B、络绎不绝(luò yì bù jué),形容行人车马来来往往,接连不断。不能用来形容说话。

C、突如其来,意思是出乎意料地突然发生。

D、秀色可餐,意思是清秀的颜色能使人忘掉饥饿。形容女子姿容非常美丽或景物非常优美。注意两个意思都可以。

24、下列各句中加括号的成语使用不恰当的一项是:C

A、附庸风雅的人主观意图是为了装点门面,但他们不去学野蛮,却来学风雅,也总算见贤思齐,有心向善,(未可厚非)。

B、据报道,目前上汽已经派遣相关人员进驻烟台车身厂进行接收准备工作,国产蓝龙轿车很快就会全面推向市场,山东大宇项目即将“(咸鱼翻身)”。

C、翠翠的心情坏到了极点。虽然爷爷给她准备了漂亮衣服和最爱吃的饭菜,可她(恶衣恶食),一点兴致也没有。

D、在《哈利·波特》系列电影中,导演借助(匪夷所思)的特技,为银幕前的我们打开了一扇扇魔法的大门。

解析:本题来自一份很常见的单元测试题。此题有一定问题,题目应该为”熟语“,而非”成语“,毕竟”咸鱼翻身“不是成语。

A、未可厚非,意思是没有什么不是,不应过分责难。

C、恶衣恶食(è yī è shí),意思是指粗劣的衣服和食物。出自《论语·里仁》:“士志于道而耻恶衣恶食者,未足与议也。”

D、匪夷所思,形容人的思想、言谈、技艺、事情等离奇,超出寻常,指言谈行动离奇古怪,超出常情,不是一般人根据常理所能想象的。此处用前者意。

25、我要拾掇一下,拾掇的含义是 A

A、整理 B、洗漱 C、化妆 D、惩罚

解析:拾掇(shí duo),指整理、收拾一下。

26、枭首示众的含义是:A

A、把头砍下来高挂起来给别人看。B、把猫头鹰的头砍下来高挂起来。

C、用猫头鹰的头来让大家都看到。D、把猫头鹰的头砍下给别人看。

解析:枭首示众(xiāo shǒu shì zhòng),意思是斩首悬示于众。选项里这么多猫头鹰是因为,“枭”是猫头鹰的意思。

27、谥号的含义是:D

A、古代帝王、诸侯、文臣武将获得的褒扬之词,活着死去均可。

B、古代帝王、诸侯、文臣武将获得的批判之词,活着死去均可。

C、古时帝王、诸侯、文臣武将死后,朝廷据其工作内容给予的称号。

D、古时帝王、诸侯、文臣武将死后,朝廷据其生前事迹给予的称号。

解析:谥号(shì hào),谥号是指人死之后,后人按其生平事迹进行评定后给予或褒或贬评价的文字,始于西周。首先是死了才有。古代历史上的皇帝、皇后以及诸侯大臣等社会地位相对较高人物,在其去世之后朝廷会依据其生前所作所为,从而给出一个具有评价意义的称号,这就是通常意义的谥号。因此是整体的生前事迹。

28、下列各句中,加括号成语使用有误的一项是:D

A、听说 2022 年卡塔尔世界杯要(破天荒)地在冬天举办,到时就会出现吃着火锅看球赛的画面了,想想都觉得过瘾。

B、全市上下齐心协力,掀起“创卫”高潮,经过外墙粉刷、护栏改装、路面平整等系列改造,城区面貌(焕然一新)。

C、春节期间,当越来越多的人忙于抢红包并(乐此不疲)时,世界上最遥远的距离就变成了“我看着你,你却在抢红包。”

D、《我是歌手》总决赛现场,面对孙楠的突然退场,主持人汪涵(看风使舵),冷静救场,其沉着机智着实令人赞叹。

解析:这是一道中考题。同样地,此题有一定问题,题目应该为”熟语“,而非”成语“,毕竟”破天荒“也不是成语。

A、破天荒,意思是指以前从来没有出现过的事,或第一次出现的事。

B、焕然一新,指改变陈旧的面貌,呈现出崭新的样子。

C、乐此不疲,意思是因酷爱干某事而不感觉厌烦。形容对某事特别爱好而沉浸其中。

D、看风使舵,即见风使舵,比喻看势头或看别人的眼色行事。具有一定贬义,在此处不和语境及褒贬。

29、貔貅的含义是:B

A、古书上说的一类妖怪。B、古书上说的一种猛兽。C、古书上说的一类神仙。D、古书上说的一位皇帝。

解析:貔貅(pí xiū),是中国古书记载和民间神话传说的一种凶猛的瑞兽。我个人认为本题不太恰当,如果将 B 改为瑞兽则更为合适。

30、兄弟阋墙的含义是:B

A、兄弟之间争夺墙壁。B、指兄弟之间的纠纷。C、指兄弟一起爬墙。D、指兄弟一起刷墙。

解析:兄弟阋墙(xiōng dì xì qiáng),意思是指兄弟之间的纠纷,也比喻内部争斗。出自《诗经·小雅·棠棣》:“兄弟阋于墙,外御其侮。”这题目的选项就离谱。

然后水温开始突然升高~

31、荦荦大端的含义是:D

A、指具有非常优秀的品质。B、指具有丰富内涵的东西。C、指所有涉及到的方面。D、指主要的项目,明显的要点。

解析:荦荦大端(luò luò dà duān),比喻主要的项目,明显的要点。出自《史记·天官书》:“此其荦荦大者,若至委曲小变,不可胜道。”

32、囿于成见的含义是:B

A、固定的有一些看法。B、局限于原有的看法。C、喜欢在规则里思考。D、局限于成为事实的看法。

解析:囿于成见(yòu yú chéng jiàn),意思是局限于原有的看法。

33、草菅人命的含义是:C

A、指像墙头草一样的人。B、指用草来计算杀害的人命。C、指任意残杀人民。D、指乱世人像草一样低贱。

解析:草菅人命(cǎo jiān rén mìng),意为把人命看作野草。指任意残害人命。出自《汉书·贾谊传》:“其视杀人,若艾草菅然。”

草 管 人 命

34、与漕运的漕读音相同的选项是:A

A、尔曹的曹 B、体操的操 C、糟糕的糟 D、洗澡的澡

解析:漕(cáo)运;尔曹(cáo)。

35、与撂挑子的撂读音相同的字是:D

A、烙印的烙 B、撩拨的撩 C、摞起来的摞 D、预料的料

解析:撂(liào)挑子;烙(lào)印;撩(liáo)拨;摞(luò)起来;预料(liào)。

36、与豢养的豢字读音相同的字是:C

A、啄木鸟的啄 B、貛子的貛 C、鰀鱼的鰀 D、人彘的彘

解析:豢(huàn)养,意思是喂养(牲畜);驯养;养育,供养。啄(zhuó)木鸟。貛(huān)子,一种动物。鰀(huàn)鱼,即草鱼。人彘(zhì),就是把四肢剁掉,挖出眼睛,用铜注入耳朵,使其失聪(熏聋),用喑药灌进喉咙,割去舌头,破坏声带,使其不能言语,然后扔到厕所里,有的还要割去鼻子,剃光头发,剃尽眉发(不只是把眉毛和头发剃光,还包括眼睫毛),然后抹一种药,破坏毛囊,使毛囊脱落后不再生长,永不再长毛发,然后一根根拔掉。(停一停,停一停)

37、与炭疽杆菌中疽的读音相同的字是:D

A、咀嚼的咀 B、而且的且 C、趔趄的趄 D、狙击的狙

解析:炭疽(jū)杆菌。咀(jǔ)嚼。而且(qiě)。趔趄(liè qie),意思是由于某种原因,身体歪斜,脚步不稳。狙(jū)击。

38、与陶埙的埙读音相同的字是:C

A、殒命的殒 B、陨落的陨 C、勋爵的勋 D、损伤的损

解析:陶埙(xūn),是中国最古老的闭口吹奏乐器。殒(yǔn)命。陨(yǔn)落。勋(xūn)爵。这题就不好在 AB 读音一样,直接就可以排除了。

39、与觊觎中的觊读音相同的字是:B

A、凯旋的凯 B、蓟县的蓟 C、剀讽的剀 D、皑皑的皑

解析:觊觎(jì yú),意思是渴望得到不属于自己的东西;.非分的希望或企图;.希望得到(不应该得到的东西)。凯(kǎi)旋。蓟(jì)县。剀(kǎi)讽,指讽喻。皑皑(ái)。

40、与冰激凌的激读音相同的字是:D

A、书籍的籍 B、檄文的檄 C、祁连的祁 D、唧唧的唧

解析:冰激(jī)凌,不要音译哦。书籍(jí)。檄(xí)文,指古代用于晓谕、征召、声讨等的文书,特指声讨敌人或叛逆的文书,也指战斗性强的批判,声讨文章。祁(qí)连。唧唧(jī)。

41、选出下列句子中加括号的成语使用有误的是:D

A、小地主一看家里来了人,马上(趾高气扬),一声一声地叫唤起来。

B、乔西安在胡思乱想,把自己比作一片(弱不禁风)的藤叶。

C、灰喜鹊们纷纷(声色俱厉)地指责起来。

D、医生称这位客人为“肺炎”,这瘟神简直(横冲直撞),害起人来一动手就是十几个。

解析:这也其实是道中考题。

A、趾高气扬,意思是走路时脚抬得很高,神气十足。这句话来自课文《小地主》。

B、弱不禁风,意思是形容人身体娇弱,连风吹都经受不起。这句话来自课文《最后一片叶子》。

C、声色俱厉,思是说话时声音和脸色都很严厉。这句话来自课文《小地主》。

D、横冲直撞,意思是任意冲闯,毫无顾忌。应该用“横行无忌”。正确使用的这句话来自课文《最后一片叶子》。

42、空穴来风的含义是:B

A、比喻流言突然传播开来。B、比喻消息和谣言的传播不是完全没有原因的。C、空空的洞穴突然吹来一阵风。D、比喻流言会随便流传开来。

解析:此题有争议。空穴来风,意思是有孔洞便会进风,后用来比喻自身存在弱点,流言蜚语等得以乘隙而入,也比喻传言有根据。但由于广泛的误用,现在多用来指消息和传说毫无根据。

新华成语词典第二版 (商务印刷馆) 第 402 页

43、与狷介的狷读音相同的字是:D

A、仓颉的颉 B、涓涓的涓 C、募捐的捐 D、隽永的隽

解析:狷(juàn)介,意思是性情正直,不肯同流合污。仓颉(jié)。涓涓(juān)。募捐(juān)。隽(juàn)永。这题就不好在 BC 读音一样,直接就可以排除了。

44、与罅隙的罅同音的字是:A

A、唬杀的唬 B、考虑的虑 C、巨擘的擘 D、悱恻的恻

解析:罅(xià)隙,缝隙;裂缝;嫌隙;瑕疵;缺陷。唬(xià)杀,吓坏;吓死。考虑(lǜ)。巨擘(bò),比喻杰出、优秀的意思。悱恻(cè),意思是内心悲苦凄切;忧思抑郁,心绪悲苦而不能排遣。

45、与怙恶不悛的悛读音相同的字是:C

A、竣工的竣 B、梭镖的梭 C、柳棬的棬 D、搼头的搼

解析:怙恶不悛(hù è bù quān),意为坚持作恶,不肯悔改。竣(jùn)工。梭(suō)镖。柳棬(quān),意思是用柳条编成的杯、盂之类的容器。搼(quán)头,拳头。

46、与旱魃的魃读音相同的字是:D

A、魑 B、钹 C、魅 D、跋

解析:旱魃(bá),中国古代神话传说中引起旱灾的怪物。魑(chī),传说中指山林里能害人的怪物,所谓魑魅魍魉(chī mèi wǎng liǎng)。钹(bó),乐器。魅(mèi)。跋(bá)。

47、哀哀父母的含义是:B

A、哀愁的父亲和母亲。B、可哀呀可哀,我的父母啊!C、祭奠死去的父母。D、形容让自己的父母很哀愁。

解析:哀哀父母,意思是可哀呀可哀,我的父母啊!原指古时在暴政下的人民终年在外服劳役,对父母病痛、老死不能照料而悲哀。出自《诗经·小雅·蓼莪》:“蓼蓼者莪,匪莪伊蒿,哀哀父母,生我劬劳。”

48、与日晷的晷读音相同的字是:C

A、妫河的妫 B、加冕的冕 C、姽婳的姽 D、归咎的咎

解析:日晷(guǐ),古代用来观测日影以及定时刻的仪器。妫(guī)河。加冕(miǎn)。姽婳(guǐ huà),形容女子体态娴静美好。归咎(jiù)。

49、缘木求鱼的含义是:D

A、指出家人用的木鱼。B、因为木头的缘故,所以请求别人送一条鱼。C、用有缘的木头寻找鱼。D、比喻方法不对;徒劳无功。

解析:缘木求鱼,字面解读为爬到树上去找鱼。比喻方向或办法不对,不可能达到目的。出自《孟子·梁惠王上》:“以若所为,求若所欲,犹缘木而求鱼也。”

50、趋之若鹜的含义是:A

A、比喻很多人争着赶去。B、像骑马一样向前走。C、像马一样成群跑过去。D、像赶鸭子一样赶走他人。

解析:趋之若鹜(qū zhī ruò wù),意思是指像鸭子一样成群跑过去,比喻许多人争着去追逐。选项里之所以一会鸭子一会马的,是因为“鹜”意为野鸭,而其形近字“好高骛远”的“骛”,则是从马的纵横奔驰意思来的。

有观众姥爷问计算方式,我去研究了一下代码,计算公式是这样的。

前 20 题为一组,每题 0.05 分;中间 20 题为一组,每题 0.05 分;最后 10 题为一组,每题 0.1 分,满分 3 分。

然后根据每个部分的回答情况,将分数乘以乘数系数再加上加数权重。权重对应如下表。

得到的结果再根据作答时间由短至长乘以时间系数(1、0.997、0.993、0.99、0.987),最后结果乘以 0.38 即可。最大值为 11590。

This post is not available in English yet — showing the original Chinese version.

经典不务正业时间

给 Tia 的《酒泉子》,作于 2020 年 12 月 11 日。

        瑟瑟冬深,人去楼空情犹在,只留悠忽空嗟叹。凭阑干。

        录存旧日作华篇。改换新颜须满酌,玉梅花下又嫣然。似当年。

小记 1:当时写的时候 Tia 还没出自我介绍视频,然后根据之前的连载故事猜了个对应的梅花,结果居然蒙对了。

小记 2:“人去楼空情犹在,只留悠忽空嗟叹。”这句是 Tia 本人 12 月 11 日发在动态里的,我在保留此句的基础上写了这首词。

小记 3:《论词的高效率应用》(指改两个字可以换个目标,我真是太聪明了.jpg)

        瑟瑟冬深,人去楼空情犹在,只留悠忽空嗟叹。凭阑干。

        录存旧日作华篇。改换新颜须满酌,海棠花下又嫣然。似当年。

(等希希确定了个形象的时候再认真写一首吧)

给薯条的《眼儿媚》,2020 年 12 月 14 日写了四分之一,2021 年 1 月 2 日补完(不要问我为什么会发生这种事)。

嘻嘻一笑若疯癫。却意绪千千。
数团焰火,几声残曲,半阙诗篇。

百年为誓纷纷语,且忘去悲欢。
前时倩影,今朝星愿,有日冰颜。

小记 1:《论阴间生日歌的美化方法》。

小记 2:贺铸的词写得真好,学不来学不来。

最后:作词水平不好,欢迎交流指正。

This post is not available in English yet — showing the original Chinese version.

各位观众姥爷、帅老 DD、单推人新年好,感谢大家在去年来看 DD 机传的自动切片或是我自己剪的切片又或是写得专栏(如果有的话,如果没有的话感谢您能点进这篇专栏),特别是要感谢愿意关注我这个“某种意义上是蹭热度”的监控室老大爷的粉丝们。这一切都是我两个月前决定开始搞这个项目时所没有想到的。

所以年终总结的最开始,就是一个经典问题——**是什么把你变成这样的,H_****__吗?**某种意义上讲还真是这样的。虽然说去年可以算是虚拟区得到巨大发展的一年,特别是去年上半年很多人的生活都因为疫情而受到了巨大的影响,某种客观意义上给虚拟区的井喷式发展提供了契机。尽管如此,上半年我还是一个切片型边缘 DD,相比之下,各位经常能在我的切片的 staff 表里看到的破扇子,则是狮子组勤勤恳恳的工具人。后来的事情大家应该都熟,草台班子到了,泥潭因为冲蝗和高效引流都快成了虚拟区唯一指定论坛、奇迹之夜……就像冰糖说的那样,V 的一个月相当于“人间”一年,今年最后三个月则颇能体现出这一点。

当时我正好在研究 GPT,于是用 GPT-2 整了个活——拟态发言生成。当然这玩意只能图一乐,实际上没有什么作用。不过这件事(包括在泥潭乱逛)让我遇到了一些有趣的人,甚至有人私信提供 5ch 语料库,多多少少感受到了一点早期互联网的氛围。再之后,我看见了 CNFurikana 这个项目,当时好像还是 tcl/tk 做的界面(后来换成了 qt),多少有一种看到了当年刚开始编程写 GUI 的自己。于是乎,我用中午两个小时的时间开发了一个 web 版本以方便使用,并且在当天晚上发了出来,意外地非常受欢迎(也要多谢 DD 情报局的转发)。这让我开始考虑整上一些更有趣的东西出来,于是乎一波头脑风暴之后有了很多的想法,当然在去年首先做也是唯一一个完成的就是这个切片型 DD 机。

作为一个切片型边缘 DD,我十分认同切片对于虚拟主播(也就是直播势、VLiver)的重要性,因为全程高能的直播确实很少见,直播中的绝大多数时间都是相对平静的,可以很好地固粉却很难涨粉,而相比之下来自直播中的高光时刻的切片,则相对容易得到曝光并一定程度上转化为粉丝,一是切片包含了更精华的内容,二是切片时间更短。因此就想做一个自动录播子哦对那个切片的工具,不仅能方便我当监控室大爷(不用开很多个直播间,可以之后看精华内容),也能用来方便后面进一步剪辑。最开始的计划还有自动轴、STT 和自动翻译的功能,但是发现成本太高,效果不好于是砍掉了,就剩下目前的自动录播、自动切片、提取弹幕关键词作为标题和自动上传的功能,并且后续也在自动切片的基础上人工添加字幕形成最终的切片。(地址:https://github.com/AsaChiri/DDRecoder,欢迎试用并反馈)。说点题外的,在 11 月 25 日我用这个工具传上了第一个自动切片的时候,我觉得这个工具基本可以完成了,然而……我没有考虑到主播们日常无法独立完成直播、尤其无法独立下播,导致出现了各种各样我没能预料到的问题,以致于进行了多达两次的代码重构,总之,有一些离谱。

因为这样的原因看了很多事情、认识了很多有趣的人与灵魂,有时候会在想:Vup、Vtuber、VLiver 到底是什么?其实他们与 Up 主、Youtuber 或者主播本质上没有区别,都是为了让人能够展现自己。正所谓“天生我材必有用”,每个人都有独特的才能,每个人多多少少都有一些表现欲。有些人可能在颜值这个过去的重要因素上不那么吸引人(其实无声系 V 的出现,说明完全可以靠文字打动人,如同新时代的作家一般),有些可能有现实生活上的顾虑导致表现欲被压制了,也有可能是某种意义上的社会不适应者等等,但相关技术的出现使得他们有机会能够表现自己,成为一名 Up 主、Youtuber 或者是 Liver,同样地展现自己、带来欢乐与思考。甚至某种意义上可以预言,技术的进一步发展带来的会是更加的去中心化,会有更多的人利用新技术表现自己。

当然这个思考也让我决定弄一个《Vup/VLiver 工具指南》的栏目出来,去年更新了关于 BiliChat 的文章。毕竟虚拟区的很多工具都在早期阶段或是依靠个人用爱发电在维护,却又很大程度上是必需品,如果能够让更多的人能够上手这些工具更好地进行表演或是创作,更是某种意义上是针对于 VUP、Vtuber 和 VLiver 初心的进一步推进。技术的普及,带来的会是更精彩的世界。

说到这里,有必要说一说今年的计划了。目前我这里的自动切片机还会继续运行(最近考虑给他搬个家),精选切片也会持续产出。另外欢迎大家试用代码来关注你所喜欢的直播并反馈意见,我会持续更新。另外,之前的头脑风暴里还有一些没有实施的计划,包括各种弹幕工具的集成体(?)、用新的公开算法倒腾面捕软件(??)、给切片机约个形象(???)等等。此外《Vup/VLiver 工具指南》应该也会不定期更新。除此之外,今年我还考虑可能做一个 Python 教程系列,提供高实用性的对零基础友好的 Python 教程(现有的 Python 教程历史包袱太重,而且常见的编排开幕类型 + 格式化输出属实劝退)。(其实想法很多,但是能够付诸实现的有限,毕竟谁不想当顶级抓娃娃机呢?)

This post is not available in English yet — showing the original Chinese version.

前言

之所以想到做这个栏目,是因为各种直播事故看得太多了。相比传统主播,Vup/VLiver 开播需要操作的东西更多,相比之下有更大的可能遇到各种奇奇怪怪的问题。再加上许多 Vup/VLiver 用到的工具大多来自于开源社区用爱发电,相比商业软件确实可能在用户体验方面存在不足。虽说有句话叫做“久病成医”,但是作为秃头程序员兼监控室老大爷,在今天在希希那里看见又一次 BiliChat 掉线之后,实在是忍不住心血来潮写了这么一个专栏,主要还是希望能够提供一定程度的帮助。

为什么要使用本地 BILICHAT 服务器

BiliChat 的作者 3Shain 大佬自己提供了一个运行着 BiliChat 的公共服务器,让很多 Vup/VLiver 可以非常简单地使用 BiliChat。而且正如 BiliChat 的网站上显示的那样,使用公共服务器的 Vup/VLiver 非常的多,这无疑会给公共服务器带来很大的压力……以及随时有可能的掉线。正如 3Shain 自己所写的一样“请优先使用本地部署版本,虽然公共服务器能保证 99% 的稳定性,但因公共服务器调试/故障/宕机造成直播事故,BILICHAT 不会为此负责。”所以为了 避免可能的直播事故,使用本地 BiliChat 服务器是一个更好的选择。而且,使用本地 BiliChat 服务器的效果与使用公共服务器无异,且几乎没有特殊要求,因此是一个非常棒的选择。

用公共服务器的非常多

但是 3Shain 大佬写的本地部署教程太简略了,对于非计算机行业的绝大多数 Vup/VLiver 来说等于没说,而且官网上的本地版链接是空的(离谱),所以专门写了这么一个专栏来介绍如何使用本地 BiliChat 服务器。教程主要分为两部分,一是如何安装,二是如何启动。

如何安装本地 BILICHAT 服务器

BiliChat 需要一个名为 Node.js 的软件作为基础,因此安装本地 BiliChat 服务器主要就是安装 Node.js。本文提供了两种方式,一是手动下载安装,二是使用脚本自动安装。

手动下载安装 Node.js 和 BiliChat

要安装 Node.js,首先要下载。Node.js 的下载地址是 https://nodejs.org/zh-cn/ 点击进入后会看到这样的界面。(下载平台根据各位 Vup/VLiver 所用的系统有所不同)

直接点击左侧的大型绿色按钮(长期支持版)下载,并等待其下载完成。下载完成后双击得到的安装包运行即可开始安装。

安装过程就是一路点击 Next/Install。完成后 Finish。

到此为止 Node.js 就安装完成了,接下来就是安装 BiliChat。对于使用 Windows 10 的各位,只需要在开始菜单按钮上右键打开菜单,选择“Windows Powershell(管理员)”,打开后会看见一个类似于这样的界面。

此时,键入或者复制一下内容并按下回车。等待其执行完成得到类似的结果安装就完成了。

使用脚本安装 Node.js 和 BiliChat

本来我个人想推荐这种做法的,毕竟可以一键完成,然后发现我没有签名不好发布脚本,所以只能把脚本放在这里,需要自己新建一个脚本,将内容复制进去然后运行。脚本内容如下:

首先我们需要自己新建一个脚本。首先我们需要打开后缀名显示。我们需要点击 Windows 资源管理器菜单栏上的“查看”选项卡。

然后在“文件扩展名”前的方框中打勾。

接下来我们新建一个文本文档,然后对它重命名,将其原有名字完全清空,然后重命名成以下的文件名(请注意最后是阿拉伯数字 1 不是 l,建议复制粘贴)

此时会弹出对话框提示,选择“是”。

完成后,双击打开,将上面的代码粘贴进去保存即可。

在这之后,右击该文件,选择”使用 powershell 运行“。

此时如果您的系统版本比较早,可能会收到提示”……在此系统上禁止运行脚本……“。(如果没有可以忽略)此时只需要在开始菜单按钮上右键打开菜单,选择“Windows Powershell(管理员)”,打开后会看见一个类似于这样的界面。

此时,键入或者复制以下内容并按下回车即可。

接下来你可能会看到类似画面

当出现上一张图片一样的画面(包含提示“NodeJS 下载完成”,“NodeJS 安装完成“和”BiliChat 安装完成”)后,按回车即可退出,此时安装就完成了。

如何运行本地 BILICHAT 服务器

安装完成后,需要在每次开始直播前开启本地的 BiliChat 服务器,才能正常工作,这也可以有两种办法。

一是在开始菜单按钮上右键打开菜单,选择“Windows Powershell”,打开后会看见一个类似于这样的界面。

此时,键入或者复制以下内容并按下回车。

就会看到如下画面。

此时,就可以类似于使用原本的公共服务器一样在 OBS 中添加浏览器源了,只需要将原本在 URL 处填写的 https://bilichat.3shain.com/gkd/<你的直播间 ID> 改为上面提示的 URL(比如说我这里是 http://localhost:4000/gkd/<你的直播间号> )即可。有一点需要记住,在下播前,请务必不要关闭这个窗口,否则会导致 BiliChat 掉线。

第二种方法本质上没有区别,但是是找到 BiliChat 实际所在的位置,之后创建一个快捷方式,之后双击快捷方式即可运行。那么,BiliChat 实际所在的位置在哪呢?如果是跟着本文安装的话,你的 BiliChat 应该在以下路径中。其中<你的用户名>请根据你的实际用户名自行判断。

另外,由于 AppData 默认隐藏,因此需要以下步骤来显示隐藏文件夹。我们需要点击 Windows 资源管理器菜单栏上的“查看”选项卡。

然后在“隐藏的项目”前的方框中打勾。

这样就可以在文件夹里找到 bilichat.cmd 了,右击选择发送到 - 桌面快捷方式”,就可以在桌面上看到新建的对应的快捷方式了,每次开播前双击打开,就可以看到以下界面。

同样的此时,就可以类似于使用原本的公共服务器一样在 OBS 中添加浏览器源了,只需要将原本在 URL 处填写的 https://bilichat.3shain.com/gkd/<你的直播间 ID> 改为上面提示的 URL(比如说我这里是 http://localhost:4000/gkd/<你的直播间号> )即可。有一点需要记住,在下播前,请务必不要关闭这个窗口,否则会导致 BiliChat 掉线。

到此,关于如何安装和使用本地服务器版本的 BiliChat 就介绍完了,如果有什么问题可以在评论区留言或者私信我,我会尽量解答,也希望看到本文的 DD 多多转载,看到本文的 Vup/VLiver 能够直播顺利,在虚拟的世界里留下属于自己的华章。

How to use it?

Feel free to use it at
https://cnfurikana.asachiri.com/

The project also supports PWA. Open the tool in any mainstream PWA-capable browser and you’ll find a button to install the app locally. This lets you run the tool like a native app without opening the browser and visiting the page every time, and local installation works across all platforms.

Introduction

This project is a third-party web version inspired by Khadaaa’s CNfurikana project, built mainly to make the tool more convenient to use through the web.

Khadaaa’s original CNfurikana post on NGA: https://www.bilibili.com/read/cv8366379

Khadaaa’s CNfurikana project on GitHub: https://github.com/Gleiphir/cnfurikana

What can this project do?

+ Annotate the Chinese characters in entered or uploaded text — with kana or pinyin, optionally including tone marks.
+ Based on the HTML5 ruby feature, so annotation placement is more accurate.
+ Web-based, so it’s more convenient to use.
+ PWA support — install it locally on any supported platform.
+ TTS support — read out the Chinese pronunciation of the entered text directly.
+ Multilingual support — Simplified Chinese, Traditional Chinese, English and Japanese.

No more worrying about how to pronounce the names of captains and SC senders; Hiiro and Mēli no longer need to fear those impossibly obscure SC characters either.

I dropped by the streamer’s room today and saw the captain thank-you segment again — the subtitle team works hard; maybe this tool could make things a little easier?
It can also help with learning Chinese (in various senses of the word).
DDs, feel free to recommend this tool to any Vtuber or subtitle team that needs it~

Known issues

After reading text from an uploaded file, you need to refresh the page before you can upload another file.
Japanese translation is done by Google Translate, so it can be inaccurate.
If you run into any other issues while using it, feel free to let me know.

Discussion thread: https://ngabbs.com/read.php?tid=24273071 — or just comment here or open an issue on GitHub.

Open source

Repository: https://github.com/ZhaoWeicheng98/cnfurikana-web
License: MIT

Acknowledgements

Khadaaa’s CNfurikana project
vue.js, element-ui, pinyin.js, cnchar.js, speak-tts.js

0%