The Single Flagship TAMAKAZURA
GALLERY
THE FUTURES WATCH FOR HOPE, AND THEN HOPE IS WITH US.
One war broke out in 2366, the sun system. It is the result thing which is trivial for the history of the human race but for the people in the those days, it is an important event.

 ぷろぐらむちっくなお話。

■第02回 二作の差・変数

 '99冬:玉鬘・プロローグ篇
 '00秋:さよなら、ジュピター〜Vanising Points〜

この二作には、実は決定的な差がある。実は99冬の時点では、変数・if機構が作られていなかった‥‥‥ひでぇ話だ。

何でそんなことになったかって?理由は簡単(かどうかは保証しない)。このシステムでは、文字列を表示するのに、ものすごく長い処理を行うから。
え?全然わからない?
よし、字数稼ぎもあるし、ここは詳しく説明しよう。


まず、変数と条件分岐がワンセットなのは判るよね。例えば、感情値が上がったり下がったりしても、「上がったから、こうする」「下がってたから、どうする」みたいな処理がなかったら、何のために感情値が動いたんだか、わかりゃしない。もちろん、シューティングゲームのスコアみたいな、「値は動くけど、こっち(システム)としては知らない」みたいな事は可能よ。でも、そう言うのって殆どない。
 条件分岐って、こういうゲームでは「感情値とかの相手・自分ステータスに応じて、相手の行動・話の展開が変化する」って事にだいたい決まっているんだよね。典型的にはif文。ここまでは、いいよね?

 第01回目で話したテキスト表示アプリprtestは、大体こんな流れで表示していた。
 ファイル->変換(内部文字形式へ)->論理行分割->物理行分割->表示
それに@スクリプトをくっつけて、ノベル仕様にしたあとの流れがこう。
 ファイル->前処理->@命令分離・分析(表示文字列決定)->変換(内部文字形式へ)->論理行分割->物理行分割->表示->画面に転送・@命令実行
この流れのどこに、「変数処理=値を動かす」と、「条件分岐」を組み込むか、ってのが問題だった。
見れば判るとおり、「どういう文章を表示させるのか」っていうのは早期に決まっちゃう。だから、変数処理と条件分岐を@命令実行の所に持ってきても、文章は変更できない。
 条件分岐ってやつは、第三段階の分離・分析のところに放り込まないと、文章を変更できないわけ。当然、変数処理もそこに持って来ないと、えらい悪辣なバグの元になる。

 後知恵ではとっても簡単なんだけど、セーブ・ロードを放り込んだり、選択肢を選べるようにしたり、CD再生がおかしかったり、シナリオ実行部の山のようなバグに青くなっていた99年の11月12月には、そこまでアタマが回らなかったんだね。


ところで、変数と条件分岐が無いのに、プロローグ篇では一応マルチエンディングを実現している。じゃあ、どうやったわけ?

 答えは簡単なんだ。変数とかができる前に作った「選択肢」は、当然変数をアテにするわけにはいかなかった。だから、「選ばれたら、他のファイルを実行する」という方式をとっていたんだ。
 勘のいい人なら、もう判るよね。殆どの選択肢はダミーで、大局に影響を与えないんだ。重要な分岐のあとは、同じ様な展開でもファイルを分けて、分岐したあとのファイル実行の流れが重ならないようにしたんだ。

 うげー。それって結局、問題の丸投げじゃないかって?そのとおりなんだな。実際、このせいでシナリオ制作の方で、バグとかもでたんだ。そのうえ、変数とかがちゃんと使えるようになった後も、「変数管理の未熟さ」つまり経験不足ってことでいろいろ響いてくるんだけど、それはまた別の話。
 良い子は真似しちゃだめだね(人ごとかよ‥‥)。

おまけ。変数システムの設計

変数を使えるようにするに当たって、面倒くさいのが嫌いな僕は考えた。「変数を使うのが感情値系統なら、処理は足す・引く・代入の三種類だけで充分で、しかも実数とか、式の評価とかをはしょれる」

どういうことかというと、要するに、
dlen=sqrt( ( 520/(ftc*1.24) )^2-33^2 )
みたいなのは要らない、ってこと。あとは、「変数処理はスクリプトに埋め込むから、そうと判るような印を先頭に持ってくればいい」ってことで、$記号を変数の頭に付けるようにした。結果、
$haduki + 1
みたいな構文ができた。無論、表向きは「スクリプターなみなさまの、効率的なスクリプト作成のために」ってことになっているけど、ま、ものは言いよう、ってことで。 今週もこのくらい。
アディオス!

Prev

Latest

Next

BACK TO MENU PAGE