「栞っていうのは、セーブやロードをする時に使うものだ」
「んでも、『かまいたちの夜』では最初に出てきたきりだったけどなー」
「あれはユーザーがセーブしなくても章が変わると自動的にセーブしてくれるオートセーブ機能だ。もちろんKAGにも『自動栞保存』機能としてついているぞ」
「すごいぢゃんよもー」
「KAGの場合、『かまいたちの夜』と似ていて、ユーザーが自由な場所でセーブすることができない。栞が挟める……つまり、セーブ可能な場所は、ラベルがついている場所だ」
「ラベルって、さっき選択肢のとこでちょこーとべんきょーした、半角の*で始まるやつ?」
「そう。ただし、普通のラベルじゃだめだ。下の例を見てくれ」
セーブできるラベルの例 |
セーブできないラベルの例 |
*start|スタート *opening|オープニング *scene01|出会い |
*start *opening *scene01 |
「さあ、違いがわかるか?」
「んーと、途中にぼー(|)があって、後ろに文字があるラベルがセーブできんみたい」
「その通り。そして、|の後ろに書かれた文字が、栞に表示される名前になる。上の例では、ラベル *opening でセーブしたら栞には『オープニング』と表示され、ラベル *scene01 でセーブしたら栞には『出会い』と表示される」
「へー」
「ただ、気をつけなくちゃいけないこともある。下の例を見てくれ」
[title name="1999 ChristmasEve"]\
[wc time=20]\
*start|オープニング
[ct]\
ぼくは立花明。どこにでもいる普通の社会人。[l]
今日は12月24日。世間一般で言う、クリスマスイブ。[l]
イブの夜と聞いて、まず思いつくのは……[l]
ベイエリアの高層シティホテル。よく冷えたシャンパン。窓辺に飾った薔薇の花束。そして小さな箱に入ったクリスマスプレゼント。[l]
もしくは、小さなペンションホテル。お揃いのロシニョールのスキー板。暗い窓の外に舞う粉雪。そしてテーブルの上のキャンドルライト。[l]
え? その後……?[l]
その後って……雑誌にはそれしか書いてなかったけど……?[p]
[ct]\
まあ、それはさておき、昨年のクリスマス。[l]
ぼくは、数年前からひそかに恋していた女性を豪華なディナーに誘うことにしていた。[l]
女性の名は桐野由美香。[l]
勤め先は別だが、ぼくと同い年で、ちょっとしたきっかけで知り合ってからはまるで兄弟のように仲のいい友達だ。[l]
友達という間柄に妙な恋愛感情が混入するとつきあい方がギクシャクしてくる前例は数多いが、ぼく達の場合はそうではない。[l]
ぼく自身は確かに由美香のことは好きだ。でも、それを簡単に口にできるような男でもないし、言ったからどうなるとも思っていないのだ。[l]
「愛してるよ」……[l]なんて、逆立ちしても無理だ。[p]
[ct]\
そんなこんなで、店の予約をしておきながらもぼくはなかなか本人を誘うことができなかった。[l]
そして結論から言えば、ぼくはディナーの予約を恋人のいる友達に売りつけてしまった。[l]
ぼくがやっと勇気を奮い起こして告げた時は、容姿端麗、明眸皓歯、才色兼備の由美香にはすでに先約が入っていたのだ。[l]
由美香はこんなふうに言っていた。[l]
「んもう、言い出すのが遅いわよ明。今年は友達とスキーに行くの。でも、もし明さえよければ、来年のイブは今から空けておくわ」[l]
何とも気の長い話に聞こえるが、由美香の言葉としては別におかしくない。単純なぼくは、早速、一年先の計画を立て始めた。[p]
[ct]\
そしていよいよ、今年のクリスマスシーズン。[l]
旅行先については、昨年の冬に発売されたパソコンゲーム『かまいたちの聖夜』にあやかって長野県白馬村のペンションホテルに決めた。[l]
実はこのゲームにはいわくがある。[l]
|
「この例では、途中に [ct] が三つ入っていることからわかると思うけど、文章は全部で四ページに渡って表示されている」
「そうだねー」
「たとえば、これをプレイしていて、最後の行の『実はこのゲームにはいわくがある』という文章を読んだところで栞を挟んだとしよう」
「つまり、4ページ目を読んでいる時にセーブしたってわけだねー」
「そう。それで、その栞を呼び出したら、どこから始まると思う?」
「んーと、4ページ目の最初の『そしていよいよ、今年のクリスマスシーズン』ってところかな?」
「そうじゃない。1ページ目の『ぼくは立花明。どこにでもいる……』から始まるんだ」
「なんでー!?」
「つまり、こういうことだ。KAGの栞というものは、一番最近に通過したラベルの位置を覚えて、その時点でのデータをセーブする。自由自在にセーブできるわけじゃない」
「4ページ目でセーブしたいと思ったらどーすればいーのよもー!」
「そういう場合は、スクリプトをこんなふうにするしかない」
[title name="1999 ChristmasEve"]\
[wc time=20]\
*start|オープニング
[ct]\
ぼくは立花明。どこにでもいる普通の社会人。[l]
今日は12月24日。世間一般で言う、クリスマスイブ。[l]
イブの夜と聞いて、まず思いつくのは……[l]
ベイエリアの高層シティホテル。よく冷えたシャンパン。窓辺に飾った薔薇の花束。そして小さな箱に入ったクリスマスプレゼント。[l]
もしくは、小さなペンションホテル。お揃いのロシニョールのスキー板。暗い窓の外に舞う粉雪。そしてテーブルの上のキャンドルライト。[l]
え? その後……?[l]
その後って……雑誌にはそれしか書いてなかったけど……?[p]
*start2|オープニング
[ct]\
まあ、それはさておき、昨年のクリスマス。[l]
ぼくは、数年前からひそかに恋していた女性を豪華なディナーに誘うことにしていた。[l]
女性の名は桐野由美香。[l]
勤め先は別だが、ぼくと同い年で、ちょっとしたきっかけで知り合ってからはまるで兄弟のように仲のいい友達だ。[l]
友達という間柄に妙な恋愛感情が混入するとつきあい方がギクシャクしてくる前例は数多いが、ぼく達の場合はそうではない。[l]
ぼく自身は確かに由美香のことは好きだ。でも、それを簡単に口にできるような男でもないし、言ったからどうなるとも思っていないのだ。[l]
「愛してるよ」……[l]なんて、逆立ちしても無理だ。[p]
*start3|オープニング
[ct]\
そんなこんなで、店の予約をしておきながらもぼくはなかなか本人を誘うことができなかった。[l]
そして結論から言えば、ぼくはディナーの予約を恋人のいる友達に売りつけてしまった。[l]
ぼくがやっと勇気を奮い起こして告げた時は、容姿端麗、明眸皓歯、才色兼備の由美香にはすでに先約が入っていたのだ。[l]
由美香はこんなふうに言っていた。[l]
「んもう、言い出すのが遅いわよ明。今年は友達とスキーに行くの。でも、もし明さえよければ、来年のイブは今から空けておくわ」[l]
何とも気の長い話に聞こえるが、由美香の言葉としては別におかしくない。単純なぼくは、早速、一年先の計画を立て始めた。[p]
*start4|オープニング
[ct]\
そしていよいよ、今年のクリスマスシーズン。[l]
旅行先については、昨年の冬に発売されたパソコンゲーム『かまいたちの聖夜』にあやかって長野県白馬村のペンションホテルに決めた。[l]
実はこのゲームにはいわくがある。[l]
|
「全部のページにラベルを書くなんて無理に決まってんぢゃんよもー!」
「そう。だから長編の場合はページ毎でなくシーン毎にラベルを設定するしかない。あるシーンの中で栞にセーブした場合は、どのページでセーブしても、ロードすると必ずそのシーンの冒頭、つまりラベルがある場所から始まることになる。『かまいたちの夜』が章立てになっていて自由にロードができなかったのは、それと同じことだ」
「うーん」
「もし、10ページも20ページもラベルのないシナリオを書いてしまうと、セーブポイントが遥か過去ということになり、ユーザーはロードするたびに苦痛を感じるかもしれない。選択肢が途中にある場合は否応なくラベルが存在するけど、そうでない場合は3〜5ページごとに適宜セーブポイントを作ってあげる方がいいだろう」
「わかったもん。んで、それわいーとして、質問があんもん」
「何だ?」
「ぼー(|)の右っかわの文字が、全部『オープニング』になってんけど、いーのかなー?」
「うん。そこは重複可能なんだ。ラベルの名前がダブっていない限りはね」
「んでも、同じだと、どこでセーブしたかがわかんなくなっちゃうぢゃんよもー」
「どうしてもそういう仕様が嫌なら、『オープニング何ページ』みたいに、棒の右側にページ数も書くしかないな」
「そんなめんどーくさいこと、すきゃんてぃ絶対にしないもん!」
「わかったわかった」
「んでも、なんでラベルの下にいつも [ct] が来んのかなー?」
「栞を読み込んでゲームを始める場合は、その栞に記録されているラベルからいきなりスタートすることになる。これがどういうことか、わかるか?」
「んー、よくわかんない」
「もし栞を読み込む前に画面に文字が表示されていた場合、それが消されずにセーブされていたラベルからゲームが始まってしまうんだ。つまり、文字が二重に表示されてしまうんだ」
「それわ、困んもん!」
「だろ? だからラベルの次には文字レイヤーをリセットする [ct] タグを書く癖をつけておくんだ。後で自分が苦労しないためにも、行儀のいい書き方をすることが大事だよ」
「ふーん」
「よし。それじゃラベルと栞の説明はここまでにして、さっき作りかけだったサンプルゲームのタイトルに、実際にリンクを張ってみよう」
練習日記 3日目 次へ
|