「フラグ」の意味
みなさんは「フラグが立つ」という言葉を聞いたことがありますか?「フラグ」は旗を意味するflagを語源とし、ゲームプログラミングにおけるフラグという概念が元となった言葉です。
一般的に「フラグが立つ」といえば「ある特定の言動により、その先の展開が読めた」「お決まりのパターンを見つけた」といった意味になります。基本的には小説や漫画などのフィクション作品に対して使用される言葉ですが、ジョークとして現実世界に対して使用する場合もあります。
「フラグ」の使い方
本来「フラグが立つ」の反対語は「フラグが下りる」ですが、後者はプログラミング以外ではあまり使用されません。また「○○フラグ」として、○○の部分に「死亡」や「恋愛」など予測される展開を入れて使用することもあります。
例えば「漫画を読みふけったせいで、テスト勉強がまったく捗らなかった。思えば部屋の掃除を始めた時点で、フラグは立っていたのだ」「パンを咥えた大男と曲がり角でぶつかった僕は、これが恋愛フラグでないことを切に祈った」といった使い方ができます。
「フラグ」の具体例
では具体的に、どのようなものがフラグに相当するのでしょう。フラグの定義は「セオリー通りならこれが伏線だ」と言えることです。つまり推理モノなどで巧妙に張られた伏線を見抜いたとしても、それはフラグと呼ばないのです。ただし“捜査線上に浮上はしていないが、やたらとキャラが立っている脇役”などは「犯人フラグ」と言えます。
フラグの最もポピュラーな例は「俺、この戦いが終わったら結婚するんだ…」という「死亡フラグ」でしょう。この戦いさえ生き抜けば結婚できるはずだったのに!という悲劇を演出するための伏線となるセリフなので、死亡する予測を立てやすいのです。
このことから「○○が終わったら○○する」はフラグとしての認知度が高く、実現しないことを示す方法として「私、このダイエットが成功したら彼氏作るんだ…」「俺、定時で帰れたらゲームするんだ…」といった使い方をすることもあります。
「フラグ」の類語
「フラグ」の類語としては「パターン」「セオリー」「伏線」といったものが挙げられます。「パターン」は「型」や「原型」という意味で、“こうなったらこうなる”という定型を指す言葉としても使用されます。
「セオリー」は「理論・学説」を意味する言葉ですが、物語において使用される場合には「統計的に確率の高い展開」といった意味になります。
また「伏線」は、ストーリーにおいて「あとの方で述べる事柄を前もってほのめかしておくもの」です。
プログラミングとしての「フラグ」
ところで、一般にも使われるようになったプログラミング概念としての「フラグ」とは、どんなものなのでしょう?フラグは、文章によってゲームが進行する、アドベンチャーゲームを製作する際に使用頻度の高いツールです。例えば主人公がある行動を取った・取らないでシナリオが分岐する際、フラグを使えばその判断が容易になります。
「フラグ」使用の具体例
わかりやすく、架空のアドベンチャーゲームをつくるシミュレーションをしてみましょう。タイトルは『ウサギと亀』で、基本的な場面は3つとします。シーン1はウサギと亀が競争を始めるくだり。シーン2はレースの中盤。シーン3はゴールする場面です。
シーン2で、主人公のウサギに昼寝をするか否かの選択肢を表示したいと思います。プレイヤーが「昼寝をする」を選択したら、シーン3で亀に負ける展開にします。ここで問題となるのが、シーン3で展開を分岐する際、シーン2でウサギが昼寝をしたかどうかを、システム上でどうやって見極めるかです。
そこで登場するのが「フラグ」です。まずフラグを下ろした状態で設定しておき、シーン2で「昼寝をする」を選択したら、フラグが立つようにしておきます。そしてシーン3の分岐点で、フラグが立っているかどうかをチェックするのです。
フラグが立っていれば「昼寝をしたんだな」とわかるので、フラグが立っていれば負け、下りたままなら勝ちという風に分岐ができます。それにしても、「僕が勝つに決まってるやい」なんて慢心して昼寝を始めるのも、わかりやすい負けフラグですよね。