本文来自微信公众号:果壳(ID:Guokr42),作者:栗子,头图来自:《仙剑》游戏截图


有些话一旦出口,故事高概率朝反方向发展。


《魔法少女小圆》里的学姐:“已经没什么好怕的了。”说完,头没了。


《三国演义》里的魏延:“谁敢杀我?谁敢杀我?谁敢杀我?”说完,头没了。


直播间里的PDD:“是男人就坚持5秒?我(哔——)五秒怎么不能坚持啊?我今天必坚持过5秒。”说完……


PDD:这个东西坚持不了五秒丨《主播真会玩》<br>
PDD:这个东西坚持不了五秒丨《主播真会玩》


不过问题是,这些能为观众预告前方剧情的台词,为什么会被称作flag? 


编程里的flag,满足条件才能立


其实,flag原本是个编程术语,有时被译作“旗标”。既是旗子,便有立有倒。那么,怎样算立怎样算倒? 


先拿简单的零旗标(zero flag)举例,它立起的条件是a-b=0。 


所以,当a=b,条件满足,flag便立起。当a≠b,条件不满足,flag便倒下。 


比零旗标再复杂一点的,还有进位旗标(carry flag)。它立起的条件,要么是a+b的最高位产生了进位,要么是a-b的最高位产生了借位。 


加法,假如原有的位数已经装不下,就立flag丨作者供图<br>
加法,假如原有的位数已经装不下,就立flag丨作者供图


减法,假如原有的位数已经不够减,就立flag丨作者供图<br>
减法,假如原有的位数已经不够减,就立flag丨作者供图


假如最高位没有进位或借位,这flag就会倒掉。 


除此之外,奇偶旗标(parity flag)也是常见的一类。它检测的内容是,某一个数里包含1的个数是奇数还是偶数。比如,偶则立flag,奇则倒。 


27在二进制里是11011,当中有4个1,flag立起。 


26在二进制里是11010,当中有3个1,flag倒下。 


不同的flag,立起的条件可以五花八门,但它们大多有个共同点:flag的值通常只有两种,立为1,倒为0,一个字节便可存储复杂的信息。 


于是,人们常常用flag来标记条件有没有达成,判断程序处在怎样的状态。得知了状态,就能据此做出不同反应。游戏开发者们尤其需要这样的工具,来增进玩家与系统之间的互动。也是在游戏里,flag的功效被发挥到淋漓尽致。 


那是触发事件的开关


其中,当属RPG(角色扮演游戏)的开发者们对flag最为钟爱。 


偷窥可耻但有用(误)


比如《仙剑奇侠传》初代,李逍遥为了救重病的婶婶,登上仙灵岛求药。岛上的水月宫是丹药的所在,但宫外有结界保护,防止不速之客闯入。 


通往水月宫的路被挡住丨仙剑奇侠传
通往水月宫的路被挡住丨仙剑奇侠传


结界虽强,却也受一道“开关”控制,那便是flag。逍遥想走进水月宫求药,必先满足条件,立起flag来驱散结界。这个条件也十分有名,可简单概括为偷看女孩子洗澡。 


身为玩家的我们,要让逍遥在一座水塘边的石头上,发现女孩子的衣裳。如此,他才会注意到有位少女沐浴在水中。这也是逍遥和灵儿的初次相遇。 


调查衣服然后丨仙剑奇侠传
调查衣服然后丨仙剑奇侠传


灵儿察觉变态偷窥,用法术连劈几道雷,吓得逍遥道出来访缘由。念他一片孝心,灵儿答应带逍遥去取药。此时,那股挡住逍遥的力量消散,去往水月宫的路就此打通。


怎么打雷了丨仙剑奇侠传<br>
怎么打雷了丨仙剑奇侠传


偷看他人沐浴并不可取。但假如不调查水边的衣物,就无从触发两人初遇的剧情。系统检查得知条件未满足,便立不起flag。结界仍在,逍遥想救婶婶也无门。 


游戏里类似的flag不计其数。玩家通过自己的操作,满足不同条件,立起不同flag,触发不同事件:与系统互动时的参与感越深,便越容易代入角色,沉浸在剧情里。 


比如,灵儿被困锁妖塔,逍遥与月如前往营救。依剧情提示,锁妖塔有进无出,唯有毁塔方能逃脱。三人打败守护塔基的七只神龙,条件达成,自会触发塔身崩塌剧情。 



当锁妖塔开始倒塌丨仙剑奇侠传
当锁妖塔开始倒塌丨仙剑奇侠传


而意外的是,天降巨石砸在月如头顶,也是这段剧情的一部分。即是说,玩家在立毁塔flag的同时,并不知那竟是月如的死亡flag。这一处设定可能也成了许多玩家的幼年伤痛。 


好在,不是所有游戏都用flag来执行这样直接而猛烈的打击。 


比如《命运石之门》,游戏里立flag的条件不全是简单明了,有时也不会立刻见效。而玩家做出的选择,可能让故事走向不同的结局。 


命运石之门的选择


(本节有剧透) 


在石头门的设定里,时间不是从过去流向未来的一根线,而是有无数条线在流动,它们叫作世界线。不同的世界线上,发生的事件有所不同,人物的命运也可能改变。 


中二科学家冈部伦太郎找到了跳跃世界线的方法,取名“电话微波炉(暂定)”。在他第一次跳跃前,世界处于β线,那里的冈伦看到天才少女红莉栖躺在血泊中;而在跳跃后的α线,红莉栖安然无恙,成了冈伦深爱的助手,但与冈伦青梅竹马的真由理,怎样拯救都难逃一死。 



上为β线收束的结果,冈伦看到血泊中的助手;下为α线收束的结果,真由理便当丨命运石之门
上为β线收束的结果,冈伦看到血泊中的助手;下为α线收束的结果,真由理便当丨命运石之门


游戏里, 冈伦做出不同的选择,可以把故事引向不同的岔路。比如,剧情中最重要的分歧点,是第十章的一处恋爱flag,它将决定冈伦的情感到底归属助手还是真由理。此处的判定条件,并不在一时的取舍,而是游玩途中许多个选择的累积:


第二章,助手不喜欢冈伦在和她聊天时看邮件,假如手机收到邮件提醒时选择不查看, 便会增加助手好感度。


冈伦收到邮件却没掏手机,获得助手的称赞丨命运石之门
冈伦收到邮件却没掏手机,获得助手的称赞丨命运石之门


第四章,助手不断给冈伦发来邮件,每一封都回复恰当的内容,也会增加助手好感度,并获得“天才少女的忧郁症”成就。 


若以上条件全部满足,flag立起,冈伦与助手确认恋爱关系;若有一条不符,flag倒下,冈伦便与真由理牵手。虽说不管在两人之中与谁相恋,冈伦都会跳回β线救活真由理,但…… 


第十章,回复助手的邮件丨命运石之门<br>
第十章,回复助手的邮件丨命运石之门


假如助手的恋爱flag立起,她便也有机会得救。只要冈伦在第五章至第十章里,继续恰当回复助手的各种邮件,就会再立一道flag:冈伦乘时间机器回到过去拯救助手。


原本,在α线经历无数次真由理的死亡,冈伦几乎认定,β线的助手同理无法拯救。但在首次营救失败之后,他获得了新的启示:不要企图改变过去。也就是说,依然要让过去的自己看到血泊中的助手,只是助手未必真的要死。 


时间机器。假如不失败一次,冈伦就不会背负着失败的所有后果,用15年开发出时间机器,并设计好全套拯救策略,再派人回到15年前帮助那时的自己拯救助手……丨命运石之门
时间机器。假如不失败一次,冈伦就不会背负着失败的所有后果,用15年开发出时间机器,并设计好全套拯救策略,再派人回到15年前帮助那时的自己拯救助手……丨命运石之门


本作的真结局,也是后来动画版的结局,便在这个指导思想之下达成了。冈伦和助手过上幸福的生活,真由理也还是他的青梅竹马。表面看去是科技的力量,实则全靠恋爱flag,或许美少女游戏(galgame)本应如此。 


玩家通过自己的操作立flag,在剧情分歧之间自如地穿梭,早在游戏里成了日常。但假如只在游戏里成为标配,flag可能也不算物尽其用。 


还可以是故事里的伏笔


你看,《命运石之门》动画化之后,有了原创的死亡flag。还记得在α世界线难逃死劫的真由理吧,不管是被枪杀,被车撞,被失手推下站台……悲剧来临前,毫不知情的真由理总会发现,奶奶给她的怀表不走了。 


怀表停了丨命运石之门<br>
怀表停了丨命运石之门


哪怕是没有打过游戏原作的观众,只要听过这句台词,再次听见的时候也会感受到,那是真由理快要凉了的标志。 


伏笔,就是flag脱离编程语境后的引申义。而拥有伏笔功效的物品,不止真由理家传的怀表,梨花牌酱油也该有姓名。 


《寒蝉鸣泣之时》第一季,梨花以打酱油之名拜访诗音家。结果除了打酱油,还被发病暴走的诗音喂了便当(或者说是自行吃了便当)。 


梨花牌酱油丨寒蝉鸣泣之时
梨花牌酱油丨寒蝉鸣泣之时


寒蝉动画同样是游戏改编而来,酱油也不是动画的原创梗。但当一位广州市民的精彩发言“关我(哔——)事,我出来买酱油的”响彻大江南北,动画里的“梨花牌酱油”借此东风,成了为人津津乐道的死亡flag。


当然,立flag的道具不一定是随身携带的物品,还有可能是人物自身的某种特征,比如发型。


有位善于归纳的观众,在看《未闻花名》的时候,意识到仁太早逝的妈妈的侧马尾,可能是一种死亡发型: 


从上到下为,花名里仁太的妈妈,巨人里艾伦的妈妈,钢炼里爱德华的妈妈丨a-multi-shipper
从上到下为,花名里仁太的妈妈,巨人里艾伦的妈妈,钢炼里爱德华的妈妈丨a-multi-shipper


《进击的巨人》里艾伦的母亲在第一话便被巨人吃掉,《钢之炼金术师》里爱德华的母亲因病去世,《东京喰种》里笛口雏实的母亲为了保全孩子而死在“白鸽”手中……她们也都是侧马尾。 


一时间,大家找到了依靠发型揣测人物命运的新乐趣,多以“你的发型很危险”对角色发出友好的弹幕问候。 


不过,这条定律并不万能,还有不少梳着侧马尾的人物成功活到一季动画的完结。 


一些幸存者:橘美希,乾日向子,小牧郁乃丨《干物妹小埋》《食戟之灵》《ToHeart2》<br>
一些幸存者:橘美希,乾日向子,小牧郁乃丨《干物妹小埋》《食戟之灵》《ToHeart2》


毕竟,不管是怀表是酱油还是发型,道具终究只是道具。而假如人类自身的能量足够强大,也可能不受道具的限制(误)。 


比如,2014年星际争霸II世界锦标赛(WCS)美洲区,TooDming(土豆明)对Alicia的决胜盘,Alicia从开局按错键开始,一直处于劣势。决战前夕,小明人口占优,并有飞龙盘踞在对方出兵点上空防止部队聚集,看似局势大好。 


这时,黄旭东解说进行了“飞龙骑脸怎么输”的热切发言: 


“难道我真的是三鹿?”丨星际老男孩
“难道我真的是三鹿?”丨星际老男孩


自此,小明开始出现严重失误,最终输掉了比赛。这可能是黄旭东老师解说生涯的成名之作。 


以“飞龙骑脸”为起点,这个男人在电竞解说中收获的“毒奶”战绩源源不断,跨界“拯救国足”“预知股市”的典故也广为流传。不过需要说明的是,这些都只是人们观察到的现象,拿去玩梗绰绰有余,却远不足以证明因果关系的存在。 


除非,我们回到编程的世界里,每个flag的判定条件都是预先设置好的。那样,达成的条件与触发的事件之间,才有确实的因果关系。 


参考文献

[1] 幻嵐. (2011, July). [MASM學習筆記]第一課:數字系統與暫存器. http://it-easy.tw/masm-class-1/2/

[2] 青衫. 仙劍奇俠傳DOS/95/98版圖文攻略.  https://chiuinan.github.io/game/game/intro/ch/c11/pal/pal/pal.htm

[3] cabcie1. (2018, Apr). 【攻略】遊戲中牧瀨紅莉栖及真結局攻略與小小感想. 巴哈姆特電玩資訊站. https://forum.gamer.com.tw/Co.php?bsn=17358&sn=7246 

[4] 【暴雪控】谐星语录之奶水有毒. (2014, June 24). [Video]. Bilibili. https://www.bilibili.com/video/BV1kx411T7mw


本文来自微信公众号:果壳(ID:Guokr42),作者:栗子,编辑:Odette