補講第4回 「フラグと分岐の書き方って?」
 

久々の質問は、ジュンくんです! みなさん、拍手を!
では、早速質問行ってみよう!

実は私も現在ゲームシナリオライターを目指して毎日シナリオを
書いているのですが今一番悩んでいるのがフラグについてです。
シナリオを書き始めるまでは趣味で小説もどきのようなものをずっと書いていた
せいか『分岐』することをどう表現すれば他の人に伝わりやすいのだろうと
筆が止まってしまいます。何か参考となるフォーマットや書き方があれば
ぜひ、ご教授願いたいのです。


 では、早速整理しよう。
 今回の質問は、
(1) フラグの書き方は?
(2) 分岐の書き方は?
 これですね。


フラグの書き方〜基礎篇〜

◆シナリオの冒頭でやること
 ゲームを開始した時に、真っ先にすべてのフラグをゼロクリアーします。
 ゼロクリアーするというのは、ゲーム中のフラグの値をすべて「0」にするということです。一言で言えば、フラグの初期化です。これをしておかないと、妙なフラグが成立していたりして、選んでもいない方向に話が分岐していってしまったりします。ですから、最初のシナリオの冒頭には絶対必要です。

;*******
;フラグ全クリアー
;*******
F000〜F999まですべてゼロクリアー

 これで、F000〜F999まではすべて、値が0となります。
F000=0
F001=0
F002=0
  ・
  ・
  ・
  ・
F999=0
 となるわけです。
 こうしておかないと、あるエンディングを終えてゲームの頭に戻ってきた時に、関係のないフラグまで立っていて違うエンディングに行けない、という事態が発生してしまいます。

◆フラグ指定には必ずマークを!
 さて、ゼロクリアーの後は、フラグ指定です。

;******
;フラグ指定
;******
F100=1

 のように設定します。
 違う設定の方法もあるのですが、とりあえずは値を「1」にしてやることで十分です。基本的には、値が「0」の時にフラグは未成立、「0」以外の時にフラグが成立している、と考えて下さい。

 また

;******
;フラグ指定
;******

 は必ず記述するようにして下さい。
 シナリオは厖大な量になります。その中からフラグを検索するのは大変です。
 マークをつけておけば検索は楽になります。

◆フラグリストを作ろう!
 フラグを指定した場合は、すぐさまフラグリストというテキストファイルを作って、記録するようにして下さい。
 そうしないと、ごちゃごちゃになって、意味内容は違うことに対して同じフラグをあてがってしまう、なんてバグが発生してしまいます。


フラグの書き方〜発展篇〜

◆F100=2
 先程、フラグの値を「1」にすればフラグが成立する、とお話をしました。
 今度はその発展です。
 たとえば選択肢が2つあった場合、

F100=1  ;選択肢1を選んだ場合に成立
F100=2  ;選択肢2を選んだ場合に成立

 のように設定することが出来ます。
 勿論、

F100=1  ;選択肢1を選んだ場合に成立
F101=1  ;選択肢2を選んだ場合に成立

 のようにフラグ設定することも出来ますが、選択肢1と選択肢2を両方選ぶことがない時、すなわちオルタナティブな時には便利です。
 ただし、使い方には注意が必要です。
 先にF100=1が設定されていた場合、F100=2が設定されると、F100の値は「2」に変わってしまうのです。
 F100=1かつF100=2なんて状態は、ありえないのです。
 あくまでもF100=1とF100=2がかぶさらない時に使用した方がいいでしょう。


分岐の書き方

 フラグによる分岐の場合は、専門的にはIF文というのを使うのですが、IF文を使用せずとも指定はできます。

;*********
;▼▲フラグ分岐▲▼
;*********
(1)F001=1の場合
SCENE05へジャンプ
(2)F002=1の場合
SCENE06へジャンプ
(3)その他
SCENE07へジャンプ

のように書いておけば、プログラマーには伝わります。あとで検索する時の目印になりますので、

;*********
;▼▲フラグ分岐▲▼
;*********

は、フラグ分岐するポイントの前に、必ず記述するようにして下さい。

 

 ご質問等はこちら

次の補講に進む
前の補講に戻る
講義一覧に戻る
トップページに戻る