ノンプログラマ向け、「死亡フラグ」「フラグが立つ」とはどういう意味?

ノンプログラマ向け、「死亡フラグ」「フラグが立つ」とはどういう意味?

「“フラグ”ってよく聞くし、なんとなくの意味は分かるんだけど、どういうものなの?」と聞かれたので、プログラミングなんか全然やったことない方にも伝わればいいなと思って書いてみました。


元々はプログラム用語

コンピュータにおいて、処理結果を真(True)/偽(False)いずれかの値で保持するレジスタまたは変数のこと。条件が合っていれば真(True)、否であれば偽(False)である。真の場合を「フラグが立っている」、偽の場合を「フラグが落ちている」と言い、また真にすることを「フラグを立てる」、偽にすることを「フラグを倒す」(あるいはフラグを降ろす、落とすとも)と言う。
出典:フラグ (コンピュータ) – Wikipedia

フラグとは、真か偽、どちらかの値を入れておく変数(箱みたいなもの)のことです。これが、現在ではまわりまわって以下のような意味で使われることが多いですよね。

フラグ(Flag)とは旗を示す英単語であるが、ここで扱うフラグは小説・ドラマ・漫画・アニメ・シミュレーションゲーム等のストーリーにおいて、後に特定の展開・状況を引き出す事柄を指す用語である。伏線と同義であるものの、フラグは比較的単純で定型化された「お決まりのパターン」の含意があるとされる。
出典:フラグ (ストーリー) – Wikipedia

プログラム用語であったフラグが、お決まりのパターンのための伏線というような意味合いになってしまうまでの過程を、私なりに解説してみようと思います。

まず、「変数」という箱がありまして

どのプログラム言語とは特定せずに、概念的な形で進めていきます。

何に使う箱なの?

入力してもらったものや、途中で変化するものを入れておく箱です。

140212-1

このように、名前や日付を入れてもらったり、計算して値が変わったり、プログラムを動かしたときにいつも同じではないものを入れる箱です。

箱がなければ、プログラムはいつも全く同じことしかできません。箱を用意して、そこに入った中身を見て、これが入ってたらこの動き、あれが入ってたらあの動き、というように条件分けをすることで、とても柔軟に動くことができるんです。

箱には種類がある

たくさんありますが、ここでは代表的なものだけご紹介します。

  • 文字列型 … あいうえお, ABCDE, などテキストを扱う型(容量大きめ)
  • 数値型 … 12345, など計算等に使う型(容量小さめ)
  • ブーリアン型 … 真/偽, YES/No, 1/0, など「どちらか」という型(容量最小)

この、ブーリアン型という非常に小さな容量の箱のことを、俗に「フラグ」と呼んだりするんです。

箱の中身が真の場合、「フラグが立っている」、偽の場合「フラグが落ちている」といった表現をするわけですね。

140212-2

箱の種類がたくさんあるのはどうして?

プログラムでは、作業に入る前に使う箱を用意しておくことが多いです。

どんな型のモノでも入れてしまえる、大きな箱も存在はするのですが、箱は用意されるだけで容量を食ってしまうので、不必要に大きな箱をたくさん用意してしまうと、動作が遅くなってしまうんです。

なので、できるだけ容量を少なく、スマートに速くプログラムを動かすために、この箱は大きいものがいいね、この箱は小さくても大丈夫だね、ということを予め決めておきます。

ブーリアン型の「フラグ」は容量がとても小さいので、条件分岐などによく利用されています。

ストーリー

では、これらを踏まえてよく聞く「フラグ」のあるストーリーをプログラムっぽく解説してみます。

主人公の名前を最初に入力したというつもりになっていってみましょう。例文はヨシヒコです。(わたしが最近勇者ヨシヒコにハマってるからです)

A子フラグ

140212-3

フラグを説明するには、おそらく王道のパターン。

女の子が複数出てきて、仲良くなると特定の子のストーリーに進んでゆくという、ノベルゲーム(いわゆるギャルゲー)を例とします。

140212-4

このように、A子に興味のある行動をとることで内部プログラムでフラグが真になり、後にA子ルートへ入るための条件となります。実際のゲームでは複数のフラグを全て真にしないと起こらないイベントなどもあるので、フラグが立ちそうな選択肢は慎重に選びます。

また、B子ルートに入るためにはA子フラグを立てないようにする、といった配慮(?)も必要となったりします。(余談ですが、わたしは名雪派です。)

死亡フラグ

140212-5

映画などでよく聞くアレ。プログラム制御で分岐するストーリーではないので実際にフラグがあるわけじゃないのですが、「このセリフを言ったキャラは高確率で死ぬ」ということから、「あー、この人後で死ぬんじゃないかなー、今フラグ立っちゃったんじゃないかなー」という意味で使われているのだと思います。

プログラムっぽく書いてみるならこんな感じでしょうか。

140212-6

※こちらの内容は妄想です。

生存フラグ

140212-7

ここまで来ると、「これは生きてるパターンだ!そういう匂いがプンプンする!」みたいなパターンを「フラグ」と言ってしまう風潮になってきています。

正直この場合は、何も言わなくても生きてる感じはするんですが、上記の言葉を言ったほうがより「生きてるパターン」感が強いですよね?そういう“感じ”を世間では「フラグ」と呼んでるんだと思います!

140212-8

というわけで無理矢理書いてみました。うん、微妙ではありますがニュアンスさえ伝わればと。

まとめ

今すぐにストーリーに変化はないけれど、後々の分岐のときに効いてくる何か!それが、フラグです。

結構日常でも使えますよ。昼間かかってきた一本の電話が残業フラグだったとかね…!_(┐「ε:)_

公開日:2014/02/12

2件のコメント

  1. すしぱく より:

    この死亡フラグを抑えておくと映画がより楽しくみれますね!(‘A’)

    • *you より:

      ぱくさんコメントありがとうございますー!ベタな妄想しか書けなくてすみませんw


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)

YouTubeでQ&Aコンテンツを企画しています

運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。