2013年10月13日

Quandaryの使い方03

「Quandary」についての使い方の三回目です。
今回はフラグや変数を用いた分岐を書きます。

前回作ったゲームブックで2番のパラグラフで壁の鉄格子を調べるというものがありました。
そこに鍵が落ちていて拾うかどうかの選択肢を盛り込みます。

もちろん先のパラグラフでその鍵がないと入れない部屋を設定します。

今回はその鍵をアイテムとして入手し、鍵でドアを開けるパラグラフまでを作成してテストプレイする所までを記事にします。

まずは「鍵」という変数(アイテム)を作成します。

30.jpg

「Options」メニューの一番上の「Assets」を選んでクリックしてください。

29.jpg

上の画像のウィンドウが出ます。
上の「Introduction to assets 〜」という項目はアイテムやステータスなどを取り扱う場合の説明文です。
ここに書いた説明文はスタートのタイトルページで表示されるだけです。別に書いても書かなくても結構です。

下の「Current assets」の項目に作成した変数が表示されます。その下の「New Asset…」をクリックします。

28.jpg

さらに上の画像のウィンドウが現れました。
上の「Asset name」に変数名を書きます。これは日本語でも構いません。例では「鍵」と入れました。

その下の「During the exercise,〜」の項目はプレイ時にこの変数の状態を表示するか否かを選びます。
「Always」は常に表示します。
「Never」は表示しません。
「Only when not equal to zero」は変数がゼロの時は表示されません。

その下の「At the end of 〜」の部分はエンドでこの項目が表示されるか否かです。
元々クイズゲーム作成ソフトから発展したソフトなので最後に答えの採点などを表示する時に使うようです。

二つとも「Only when not equal to zero」を選ぶと下の「Do not display〜」が有効になりチェック出来るようになります。これはステータスゲージに変数名のみ入れて値を入れたくない場合に使用します。

その下の「Initial quantity of this asset:」はその変数の初期値です。プラスかマイナスを選んで数値を入れます。
数値には小数点も使えます。その際は下の「Number of decimal places〜」で小数点以下の桁数を入れてください。
「2」と入れた場合「1.00」というような入れ方ができます。ただゲームブック上ではあまり使わないと思います。

例では鍵を持っていない時はステータスゲージに表示させたくないのでどちらも「Only when not equal to zero」を選択しました。「Do not display〜」にチェックを入れておけばプレイ時には「鍵」のみ表示されて「鍵:1」と表示にはならないのですが、今回は手違い(後で気づいた…)でチェックを入れませんでした。

最初は「鍵」は持っていない設定ですので初期値は「0」のままにしておきます。

27.jpg

「OK」を押すとリストに「鍵」が加わりました。これで変数作成は終わりです。

そしてその鍵を値を変える作業です。
鍵を見つけたと書いた2番のパラグラフをメインウィンドウに表示して編集できる状態にします。

26.jpg

鍵を拾う選択肢を入れるので「New Link…」をクリックして「鍵を入手」というパラグラフへ進む「鍵を拾う」という選択肢テキストを作成します。

25.jpg

今度はその「鍵を入手」というパラグラフを編集しましょう。本文と1番のパラグラフへ戻るリンクを作成したら変数を変えるアクションを設定します。このツールではそれを「トランザクション」と呼んでいるようです。

24.jpg

トランザクションは三種類の場所に設置できます。
上の画像の三つの矢印がその場所です。一番上の「Entry transactions」はこのパラグラフが表示された時に実行するアクションを指定します。
その次…真ん中の「Exit transactions」はこのパラグラフを離れる時に実行するアクションです。
下の選択肢の欄にある 「Transactions」はその選択肢を選んだ際に実行されるアクションです。

今回の「鍵」の入手はどれを選んでも変わりません。ただ「Entry transactions」は本文表示前に実行されるのでこのパラグラフ本文にステータスゲージが現れて「鍵」が表示されるのに対し、残りの二つで指定した場合は本文表示後に実行される為当該のパラグラフでは表示されません。

とりあえず今回は一番上の「Entry transactions」で指定するのでそこをクリック。

23.jpg

トランザクションは複数設置できるのでそのリストが表示されます。
下の「New Transaction…」をクリック。

22.jpg

すると上の画面が出ます。
「Asset name:」は指定したい変数を選びます。ここでは「鍵」を選びます。

「Operator:」は計算式です。難しく考える必要はありません。右にある「Value:」の値を「Asset name:」で指定した変数の持つ値に足したり引いたりする設定を指定するだけです。

21.jpg

「add」は「Value:」の値を変数の値に足して、その計を変数に入れ直します。
「subtract」は「Value:」の値を変数の値から引いて、その計を変数に入れ直します。
「multiply」は「Value:」の値を変数の値と掛けて、その計を変数に入れ直します。
「divide」は「Value:」の値で変数の値を割って、その計を変数に入れ直します。
「set value to」は「Value:」の値を変数の値と同一にします。
「percentage」は変数の値を「Value:」で指定した%に変更して、その計を変数に入れ直します。
「power」は乗計算です。変数が5で「Value:」が2なら5を2乗した値25を変数に入れ直します。


「Operand」の枠も変数の計算式ですがこちらは種類です。

「Fixed value」は上の「Operator:」で指定した計算を変数にいれます。
「Random value」は名前の通りランダムで出した値を変数に入れます。選ぶと右に二つのゲージが現れるので最小値と最大値を入れてください。6面サイコロでしたら1と6です。
「Value of another asset」は「Asset name:」で指定した変数を右で指定した変数と値を合わせます。「Asset name:」で「HP」を指定して右で「Max HP」を指定すれば、体力全回復とかに使えます。

下半分の「Level of asset〜」の枠は条件指定です。これはまた後で説明します。

20.jpg

とりあえず鍵を入手したというアクションを実行したいので「Operator:」で「add」を指定して「Value:」を1にして「OK」にします。「鍵」という変数を1にすればいいだけですから「Operator:」を「set value to」にしても同じです。

19.jpg

変数リストに反映されました。「Chage」の欄に「+1」と書かれました。確認して「OK」を押すと反映です。

18.jpg

メインウィンドウの「Entry transactions」に「(1)」が加わりました。一つのアクションが登録されているという意味です。


今度作るゲームブックでは同じパラグラフを何度も行き来できる設定にしてあります。
よって「壁の鉄格子を調べる」というパラグラフへ行く度に「鍵」がいくつも手に入るという矛盾が生まれてしまいます。
一本道にすれば問題ないのですが、今回はあえて双方向にしました。

それを防ぐ仕掛けをします。

1番のパラグラフから「壁の鉄格子を調べる」という2番のパラグラフへのリンクがありますが、それを細工します。

17.jpg

選択肢欄のリストの「壁の鉄格子を調べる」をダブルクリックするか、選択した状態で「Edit Link…」をクリックします。

16.jpg

赤い矢印の「Transactions」をクリックします。これは選択肢に変数のアクションを入れるものです。

15.jpg

「Asset name:」で「鍵」を選択し、「Value:」はゼロのままにしておいてください。「Value:」がゼロなら「Operator:」と「Operand」は無効になります。

今度使うのは条件なのでウィンドウ下半分のの「Level of asset〜」の枠を使います。基本的に下半分の「Level of asset〜」で指定した条件が当てはまる時に、上半分の「Operator:」と「Operand」が実行され、当てはまらない時には一番下の「Message to be shown if access is refused:」で指定したテキストを表示するというものです。

「No requirement」は条件を指定しない時に選びます。どのような条件でも上半分の計算を行います。
「More than」は右で指定した数値よりも「Asset name:」の変数の値が大きい時に実行します。以上ではないので注意。金が10以上持っているときのみ実行したい場合は9を指定してください。
「Fewer than」は右で指定した数値が「Asset name:」の変数の値未満の時に実行します。
「Exactly」は右で指定した数値が「Asset name:」の変数の値と同数の時のみ実行されます。
「Not equal to」は右で指定した数値が「Asset name:」の変数の値と同数以外の時のみ実行されます。


今回は鍵を手に入れた後に「壁の鉄格子を調べる」を選ぶと「鉄格子はもう調べた。鍵も手に入れたし、もう見なくてもいいだろう。」という文章が表示されるようにします。鍵を手に入れてなければ「壁の鉄格子を調べる」パラグラフへ何回も行けます。

画像の矢印で指定した通り、「Fewer than」を選び、右のゲージで1を、下の「Message to be shown if access is refused:」に「鉄格子はもう調べた〜」という文章を入れます。

これは「鍵」と言う変数が1未満…ようするにゼロの時は何も実行せずにリンク先へ進み、「鍵」が1以上の時…鍵を持っている場合は下の文章を表示します。

「Value:」の値はゼロなので「鍵」という変数は変化しません。「OK」を押して反映します。

14.jpg

リストでの「Required」の値が「<1」となりました。これが条件です。さらに「OK」を押します。
これで「鍵」の入手関連の作業は終わりです。

13.jpg

牢獄から出た廊下のパラグラフを編集。左右にのびる廊下の右だけを先に作ります。左は次の記事で作成します。

12.jpg

右に進むとドアがあり鍵がかかっています。最初の部屋の鉄格子で見つけた鍵を持っていればドアは開けられて、持っていなければ開けられません。その文章を書きましたら新たに選択肢を作ります。

11.jpg

ドアを開けた先の「部屋の中」というパラグラフを作成して、選択肢テキストを「鍵を使ってみる」にしました。
今回は鍵を持っていない時は「鍵を使ってみる」という選択肢そのものを表示させないようにします。
そのため「Hide this link when it is inaccessible」にチェックを入れるとトランザクションで指定した条件に合わない場合はその選択肢そのものを表示できないように出来ます。

「Transactions」を押します。

10.jpg

今度は一番上の「Asset name:」で「鍵」を選択し、下半分の「Level of asset〜」の枠の「Exactly」を選び、右のゲージに「1」を入れます。それ以外はいじらなくてOKです。画像赤矢印の所ですね。

「鍵」の変数が「1」の時のみこの選択肢が有効になるという指定です。鍵はどのみち1つしか手に入れられないように設定してますからイコール1で構いません。

「Hide this link when it is inaccessible」にチェックを入れて条件が合わない時は選択肢を表示しないようにしてますから、条件が合わない時に表示する文章の「Message to be shown if access is refused:」は何も入れなくて構いません。

09.jpg

「OK」を押すとリストに反映されます。「Required」の値が「=1」となってます。

08.jpg

ドア前のパラグラフです。鍵を持っている場合は「鍵を使う」選択肢と「戻る」選択肢が表示されて、持っていない場合は「戻る」のみ表示するようにしています。


それではテストプレイします。テストプレイのスタートを選ぶウィンドウ上で変数のタイトルが文字化けしてしまいますがこれはソフトウェアの都合上どうしようもないです。プレイ画面では支障はないので問題はないでしょう。

05.jpg

「壁の鉄格子を調べる」を選んだパラグラフです。「鍵を拾う」という選択肢が入りました。

04.jpg

「鍵を入手」のパラグラフです。ステータスゲージが表示されて「鍵 : 1」と表示されました。

03.jpg

鍵を手に入れた後にもう一度「壁の鉄格子を調べる」を選ぶと指定した文字が表示されます。

02.jpg

鍵を持っている状態でドア前に来た時の選択肢です。「鍵を使ってみる」という選択肢が現れます。

01.jpg

逆に鍵を持っていないままドア前に来た時は表示されずに「戻る」選択肢だけが表示されます。


今回はここまで作りました。ちょっとややこしそうに見えますが要領さえ掴んでしまえば後は楽かなと思います。
変数やステータスが混じるとどうしても複雑になってしまいます。プログラムですからね。

次回はもっと踏み込んだ使い方を記事にしたいと思います。
posted by 文芸遊戯研究会 at 23:50| 制作ソフト | このブログの読者になる | 更新情報をチェックする