developer_options.txtを書こう

この記事は伺か Advent Calendar 2014に投稿したものです。

Alice「ゴーストをネットワーク更新したわ。」
Bob「どれどれ。うわ、なんだこりゃ! ゴーストのインストール先フォルダにバルーンのフォルダが降ってきたじゃないか! しかも、さとりてまで! しかも、ゴーストのセーブデータが更新ファイルで上書きされちゃったじゃないか! せっかく、2300時間かけてストーリーフェイズ100まで進めて好感度1000万まであげたのに台無しだ!」
Alice「ごめんなさい! 更新ファイル作るときに開発フォルダからファイルを避けておくのを忘れていたわ!」
Bob「オーマイガッ! 今どきそんなことしてるなんて! いい子だから素直にdeveloper_options.txtを書くんだ、ハニー!」
Alice「それはわかってるけど、あれ書き方良くわからないのよね」

というわけで、SSPの独自機能であるdeveloper_options.txtの書き方のお話です。

developer_options.txtって?

SSPにはゴーストにフォルダを放り込むとnarアーカイブや更新ファイルなどを作ってくれるという機能があります。
その際、フォルダにdeveloper_options.txtというファイルを置いておくと、特定のファイルやフォルダをnarアーカイブや更新ファイル(updates.txt)の作成対象から外すことができます。
逆に言えばdeveloper_options.txtを書かないのであればAliceのように更新ファイルを作るために一時的にあれやこれやのフォルダやファイルを手で動かさなくてはならず、Aliceのような大☆惨☆事を引き起こしかねません(いい時代になったもんだ)。
このファイルの置く場所などについてはUKADOCを見てもらうとして、実際、どんな時に何をかけばいいのかについて述べていきます。

ここでは、例として花咲案内人を例にdeveloper_options.txtの書き方を説明していきます。

花咲案内人のファイル構成はこんな感じです。
まずは、トップのフォルダ。ghostやshellといったフォルダの他に同梱バルーンのフォルダであるBrightness_of_mindがあります。

ghost/masterの下はこんな感じ。セーブデータのファイルのkawari_savedata.txtやデバッグツールのkosui.exeが置かれています。

shell/masterは今回はとくに注目するものはないので省略。

これに対する、developer_options.txtはこんな記述になっています。

// 同梱バルーン
Brightness_of_mind/,noupdate
// セーブデータ
ghost/master/kawari_savedata.txt,nonar,noupdate
// デバッグツール
ghost/master/kosui.exe,nonar,noupdate
// developer_options.txt自身
developer_options.txt,nonar,noupdate

同梱バルーン

Brightness_of_mindフォルダは花咲案内人の同梱バルーンの「かがやくこころ」のフォルダです。
同梱バルーンはもちろんアーカイブの作成対象に含める必要がありますが、更新ファイルの対象には含めるべきではないフォルダです。
更新ファイルの作成対象に含めた場合、ユーザーがゴーストをネットワーク更新した先にゴーストのインストール先フォルダにもバルーンのフォルダやファイル(ここではBrightness_of_mind)ができてしまいます(このバルーンフォルダやその中身のファイルは不要なものです)。
したがって、同梱バルーンのフォルダに関するdeveloper_options.txtの記述内容は、更新ファイルの作成対象のみから除外するnoupdateのみを指定した

Brightness_of_mind/,noupdate

となります。

セーブデータ

ghost/master/フォルダにあるkawari_savedata.txtは花咲案内人のセーブデータのファイルです。
セーブデータをnarアーカイブや更新ファイルに含めてしまうというのは決して発生させてはいけない事故の一つです。
花咲案内人のようにユーザー名ぐらいしか保存していないなら笑い事で済みますが、Aliceのゴーストのように好感度やストーリーフェイズなどがあるゴーストでやらかした日にはユーザーの数千時間の努力を水泡に帰してしまうかも知れません。
したがって、セーブデータのファイルに関するdeveloper_options.txtの記述内容は、narアーカイブからも更新ファイルの作成対象のみからも除外するnonar,noupdateを指定した

ghost/master/kawari_savedata.txt,nonar,noupdate

となります(華和梨は搭載するミドルウェアによってセーブデータのファイル名が変わるので気をつけてください)。

なお、里々ゴーストの場合はセーブデータのファイル名は固定なので何も考えずに↓をコピペすれば問題ありません(実はsatori_savedata.txtはSSP側で自動的にアーカイブや更新ファイルの作成対象から外してくれるらしいですが)。

ghost/master/satori_savedata.txt,nonar,noupdate
ghost/master/satori_savebackup.txt,nonar,noupdate

yayaの場合もファイル名は固定のはずなので、こんな感じで。

ghost/master/yaya_variable.cfg,nonar,noupdate

デバッグツール

伺かのゴーストの開発を支援するツールとして、さとりて、そだて、さとりすと、玉、幸水、らふらんすなどのデバッグツールがあります。
これらのツールの多くはゴーストの開発フォルダの下に置くことはないかも知れませんが、もし、ゴースト開発フォルダ内にデバッグツールを置いている場合、narアーカイブや更新ファイルの作成対象に含めないようにしましょう。
ここでは、幸水(kosui.exe)が置かれていますが、このようなデバッグツールに関するdeveloper_options.txtの記述内容は、narアーカイブからも更新ファイルの作成対象のみからも除外するnonar,noupdateを指定した

ghost/master/kosui.exe,nonar,noupdate

となります。
さとりてがおいてある場合はこんな感じ。

ghost/master/satorite.exe,nonar,noupdate
ghost/master/satorite.dat,nonar,noupdate
ghost/master/satorite.txt,nonar,noupdate

れしばの場合はこんな感じ。

ghost/master/れしば.exe,nonar,noupdate
ghost/master/れしば.txt,nonar,noupdate

他のツールも適宜、実行ファイルや付随するテキストを指定しましょう。

developer_options.txt

実はこのdeveloper_options.txt自身もアーカイブや更新ファイルの対象外にすることができます。
developer_options.txtに関するdeveloper_options.txtの記述内容は、narアーカイブからも更新ファイルの作成対象のみからも除外するnonar,noupdateを指定した

developer_options.txt,nonar,noupdate

となります。
もっとも、ぽなさん的には「ゴーストと一緒に配布することも想定しています。」とのことですが……。

その他

書きかけの辞書ファイルや資料などがある場合、適宜、developer_options.txtに書いておきましょう。

ちょっと気をつけて

現状、developer_options.txtに同じファイル(フォルダ)に関する記述が複数行ある場合、最後に書かれた行の指定のみ有効になるようです。たとえば、

ghost/master/satori_savebackup.txt,nonar
ghost/master/satori_savebackup.txt,noupdate

のように書いた場合、1行目にかかれたnonarの指定は無効になり、noupdateのみの指定として扱われ、narアーカイブにはsatori_savebackup.txtが含まれてしまいます。
本来のdeveloper_options.txtの仕様ではどのなのかまでは確認していませんが今(SSP/2.3.52)のところはそうなっているので気をつけて。

ずんこon伺か

10日11日アドベントカレンダーを執筆された奈良阪さんの「ずんこon伺かマスコットアプリ文化祭で東北ずん子賞を受賞されたという速報が。おめでとうございます。
http://narazaka.blog109.fc2.com/blog-entry-185.html

それにしても、人類の永遠の夢であったデスクトップ上で任意のゴーストを呼んで動く伺かが実現される日が来るとは目頭がアツイゼ!! アツイゼー! アツクテ シヌゼェー!

というわけで以下、本題。