余談

このGW中、ツイッターが不安定で手短に発言する場所がないです。あと、暑いと作業がはかどりませんねぇ。今日はアイスを食べつつ、こんなことを書いて気を紛らわせています。

文字列の表現。詳細イベントにはメッセージ表示命令を含めます。そうしないとイベントで何か起こしても、プレイヤーに何も伝えられないじゃないか。

ところが厄介な問題があるのです。文字列の話なので、能力値みたいに値の桁を指定するだけでは動かない。たとえば以下の一文です。

「¥1は¥2に¥3のダメージを与えた!」

これまでは上のように書いていればコマンドの表現が機能しました。というのも、¥1と¥2に割り当てる文字列は決まっています。¥3も能力値の設定を引っ張ってくれば表示すべき桁数が分かります。ダメージを与える先のHPが整数なら、整数に丸めればシナリオ作者の意図通り動きます。

でもイベントの中では、数値の意味とメッセージの意味が結びついていません。単に演算命令があって、一方では単にメッセージ表示命令があるだけです。だから¥1も¥2も¥3も、それが何者なのか知っているのはシナリオ作者だけです。そこで文字列や数値が何者であるか、指示する必要が出てきます。

「%sは%sに%8.2fのダメージを与えた!」

  • 最初の %s → 追加でキャラクタの名前を指示
  • 二番目の %s → 追加でキャラクタの名前を指示
  • 三番目の %8.2f → 追加でグローバル変数等を指示

という感じで、メッセージの中には書式を指示して、それぞれを置き換える文字列や値を追加で指示します。

%sとか%8.2fとかいうのは、C言語等では一般的な文字列フォーマットの書式です。これはほとんどそのまま採用しようかと思っています。むしろ使わないとメッセージを指示できない、ということになります。


イベントの分岐命令があって、キャラクタの更新命令があって、メッセージ命令があれば、とりあえずそれらしいイベントを設置するところまではできるはず。過去の記事ではこのすべてについて触れてきました。

今回述べた文字列がらみが詳細イベント基礎部分における最後の課題ということになります。すべてに共通する課題は「使いにくさの克服」になってます。克服しきれる問題ではないので、だいたい覚悟しておきたいと思います。