多数の表現者がいて、それを求める人がいて、彼らを受け入れるべく場が提供されている。 コミケに参加するたびに、そのことのすばらしさを実感しています。
コミックマーケットは、開催されて当たり前のイベントではない。 コミックマーケット、あるいは同人誌即売会の「自由な表現の場」がありつづけるように、 一般・サークル・スタッフのどの参加形態であれ、努力を尽すというのが、 米澤氏に対しての恩返しになるのかなと思っています。
本当にありがとうございました。 そしておつかれさまでした。
吉里吉里関連のフィードを作りました。
どうぞご利用ください。
http://ruriko.denpa.org/200610a.html#0502
「画像ファイルそのままの絵」と「画像ファイルのデータを加工(組合せ等含む)した絵」を、指定の際に統一的に扱えるといいなぁと思いました。
例えば、storage="hoge-1" と指定した場合、今ではファイル hoge-1 を表示するわけですが、 これを
function buildImage(name) {
// name に "hoge-1" がわたってくるので、この名前を元に画像を組み立てて表示
// ...
}
みたいなメソッドをとおるようにする感じです。
設定の仕方は、例えば Rails のルーティング指定風に書いてみると……
設定ファイルでは
map.connect(/名雪-(.*)-(.*)/, nayuki_handler, ['dress', 'face']); map.connect(/あゆ-(.*)-(.*)/, ayu_handler, ['dress', 'face']); map.connect(/(.*)/, file_handler, ['filename']);
とかやっておいて
storage="名雪-制服-笑顔"
と指定すると
nayuki_handler(%['dress' => '制服', 'face' => '笑顔'])
が呼び出されるとか。
dee さんの日記でも解説されていますが http://kikyou.info/diary/?200610#i4_3 、Subversion で取得します。
mkdir mygame cd mygame svn co https://sv.kikyou.info/svn/kirikiri2/trunk/kag3ex data
data/system ディレクトリにある Config.~new ファイルを Config.tjs に名前変更します。
data ディレクトリに作ります。
とりあえず、次の内容だけ書いておきます。
%[];
layerExImage.dll が必要です。
krkr.exe と同じディレクトリに plugin ディレクトリを作り、 そこに置きます。
ここまでのディレクトリ構成をまとめると、次のようになります。
mygame/
|-- krkr.exe
|
|-- data/
| |-- envinit.tjs
| |-- system/
| |-- scenario/
| `-- ...
`-- plugin/
`-- layerExImage.dll
world 拡張を読み込むだけの first.ks を data/scenario ディレクトリに作ります。
@call storage="world.ks"
ここまでできたら、一度実行してみましょう。
真っ黒の画面が出てくるはずです。
さて、背景を表示してみましょう。
envinit.tjs を次のように書き換えます。
%[
"times" => %[
"昼" => %[],
],
"stages" => %[
"草原" => %[
"image" => "back000",
],
],
"defaultTime" => "昼",
];
bgimage ディレクトリに、背景画像 back000.png を用意します。 (jpg ファイルなどでもかまいません)
次に、first.ks を次のように修正します。
@call storage="world.ks" [linemode mode=page] [init] [草原] テスト
さて、実行してみましょう。
ちゃんと背景が表示されたでしょうか。

KAGEX の設定ファイルを YAML (参考: http://jp.rubyist.net/magazine/?0009-YAML ) で書けたらいいんじゃないかと考えてみたので、 TJS で YAML もどきパーサを書いてみました。
YAML の仕様全部を実装するのはかなり大変なので、 簡単な設定ファイルに使いそうな部分だけ実装してあります。
例えば、
%[ 'foo' => ['aaa', 'bbb'], 'bar' => ['ccc', 'ddd'] ]
というような式は YAML では
foo: - aaa - bbb bar: - ccc - ddd
と書けます。
あとは、ファイルから文字列を読みこむ部分なのですが…… プラグインか、もしくは吉里吉里本体に文字列のファイル読み込み 機能を持ってもらうのがよさそうです。
[].load で文字列をファイルから読み込めるようです。 普通の文字列読み込みに使えるとは知らなかった。
KAGEX に、とりあえず YAML 対応のコードを入れました。 envinit.yaml があれば、envinit.tjs のかわりに読みます。
envinit.tjs では変数名で値を参照しているところがあるので、 そこは要調整。
_ SB [ああ、[].load()/save()でファイルI/Oできますね。 下手するとこちらのほうが、C言語的なファイルポイ..]
_ sugi [そうですね。テキストデータだと、一気に全部読んでくれた方が便利そうです。]