#author("2023-01-10T04:32:22+09:00","default:post","post") #author("2023-11-10T18:41:30+09:00","default:post","post") ファイル構成。~ ゴースト「ポストと狛犬」に入ってたり入ってなかったりするファイル。~ 基本ルールでもあります。 ---- #contents ---- ~ *ファイル構成 [#f5ae23d2] **ゴースト全体の構成 [#m5dc8711] 以下はゴーストとしてのフォルダとファイルの構成の代表的な物を列挙した概略になります。~ ★マークのある項が里々とその関連の制御下・範疇にあるファイルです。 C:\Program Files\ssp\ghost\○○ │ readme.txt │ install.txt 【narファイルには必須】 │ thumbnail.png │ developer_options.txt │ update2.dau 【ネットワーク更新でサーバーに必須】 ├─ghost │ └─master │ │ descript.txt 【必須】 │ │ ○○.ico │ │ dic○○.txt │ │ replace.txt │ │ replace_after.txt │ │ satori.dll ★【必須】 │ │ satori_conf.txt ★ │ │ satori_license.txt ★【必須→配布時不要】 ※Mc163-5以降はなくてもOK │ │ satori_savebackup.txt ★【自動生成、配布時要削除】 │ │ satori_savedata.txt ★【自動生成、配布時要削除】 │ │ satorite.exe ★【配布時不要】 │ │ satorite.dat ★【配布時不要】 │ │ satorite.txt ★【配布時不要】 │ │ れしば.exe ★【配布時不要】 │ │ れしば.txt ★【配布時不要】 │ │ characters.ini ★ │ ├─saori │ │ fill_desktop.dll 【例/SAORI】 │ │ ssu.dll ★ │ ├─another ★【例/辞書フォルダ】 │ ├─profile 【自動生成、配布時要削除】 │ └─var 【自動生成、配布時要削除】 └─shell ├─master │ descript.txt │ surface○○.png │ surfaces.txt └─profile 【自動生成、配布時削除】 フォルダ名は半角英数推奨。~ 詳しく→[[Ukadoc ゴーストの構成>http://ssp.shillest.net/ukadoc/manual/manual_directory.html]] (一般的ゴーストの構成です、ここのshiori.dllが里々使用ゴーストではsatori.dllになります) 詳しく→[[Ukadoc ゴーストの構成>https://ssp.shillest.net/ukadoc/manual/manual_directory.html]] (一般的ゴーストの構成です、ここのshiori.dllが里々使用ゴーストではsatori.dllになります) *ベースウェア共通ファイル [#z6c95b7c] 里々にかかわらず、ほぼ全てのゴーストに共通する、伺か・ベースウェア仕様のファイルです。~ これらの詳しい仕様は外部サイト''[[UKADOC Project>http://ssp.shillest.net/ukadoc/manual/index.html]]''にてまとめられています(SSPはこのドキュメントが公式文書扱いとなっています)。 これらの詳しい仕様は外部サイト''[[UKADOC Project>https://ssp.shillest.net/ukadoc/manual/index.html]]''にてまとめられています(SSPはこのドキュメントが公式文書扱いとなっています)。 **readme.txt [#qaefbd46] そのゴーストの説明や作者からの注意書きなどを書いておくファイル。~ 必須ではありませんが、あればゴーストがインストールされた時に自動的に開かれるので、注意書きなどを書いておけばユーザの目に留まりやすくなります。~ 配布者や配布元など明記するのが一般的。~ **install.txt [#j39c2c7b] インストール情報を記述するファイル。~ インストール用 narファイルには必須です。~ -[[SSP:http://ssp.shillest.net/]]で narファイルを作成した場合、このファイルが無くても自動作成してくれます。 -[[SSP:https://ssp.shillest.net/]]で narファイルを作成した場合、このファイルが無くても自動作成してくれます。 -ベースウェアにインストールを正しく進めるためのファイルなので、無くても起動はできます。 -補足~ 「ポストと狛犬」をテンプレートとして使用した場合、「install.txt」内にある以下の記述は削除するのを推奨されています、なお「Rポストと狛犬」では定義されていません。(記述されているとアーカイブ更新時追加シェルが消えてしまう問題が起きます) refresh,1 refreshundeletemask,satori_savedata.txt **thumbnail.png [#q031f071] ゴーストのサムネイル画像です。省略可。~ 右クリックメニューのゴースト切り替え等で表示されます。 -使用可能な画像形式はpngもしくはjpg。 -pngをpnrにリネームすると画像左上の1ドット(座標0,0)と同色が透過されます。 **developer_options.txt [#g888f2a3] [[updates2.dau>#w2624f79]] や narアーカイブを作成する時に、この中で指定したファイルを含まないようにします。省略可。~ ベースウェア[[SSP:http://ssp.shillest.net/]]専用。~ 詳しくは[[UKADOCのdeveloper_options.txt>http://ssp.shillest.net/ukadoc/manual/descript_install.html#developer_options.txt]]を参照のこと。~ ベースウェア[[SSP:https://ssp.shillest.net/]]専用。~ 詳しくは[[UKADOCのdeveloper_options.txt>https://ssp.shillest.net/ukadoc/manual/descript_install.html#developer_options.txt]]を参照のこと。~ [[Rポストと狛犬 2018/04/24>ポストと狛犬]]では以下を記述しています。~ セーブデータ、さとりて、れしばをnarやネットワーク更新用に含めません。 ghost/master/satori_savebackup.txt,nonar,noupdate ghost/master/satori_savedata.txt,nonar,noupdate ghost/master/satorite.txt,nonar,noupdate ghost/master/satorite.exe,nonar,noupdate ghost/master/れしば.txt,nonar,noupdate ghost/master/れしば.exe,nonar,noupdate **update2.dau [#w2624f79] [[ネットワーク更新]]の受信ファイル照合用ファイル。~ ネットワーク更新でゴーストのアップデート配信する場合にサーバーに置いておきます、 ネットワーク更新したゴーストのフォルダに入ってたりします。 -このファイルが無くても起動します。 -[[SSP:http://ssp.shillest.net/]]のゴーストエクスプローラで作成する事が出来ます。 -[[SSP:https://ssp.shillest.net/]]のゴーストエクスプローラで作成する事が出来ます。 -ネットワーク更新対応しないなら不要です。 -ゴースト配布用 narファイルに入れなくても良いです、[[SSP:http://ssp.shillest.net/]]で narファイルを作成した場合は自動的に除外してくれます。 -ゴースト配布用 narファイルに入れなくても良いです、[[SSP:https://ssp.shillest.net/]]で narファイルを作成した場合は自動的に除外してくれます。 **descript.txt (ghost¥master¥) [#d6f0f6b9] ゴーストの名称等を記述します。''&color(#ff0000){必須ファイル};''。~ -ベースウェアがそのゴーストを認識するために必須のファイルです。 -ここに記述したゴースト名などが、切り替え時などで実効力を帯びます。 **○○.ico [#w635f7d8] アイコン画像ファイル。省略可。~ これを用意し、descript.txtにicon設定の定義を記述することで、タスクトレイ用のアイコンとして使われます。 -タスクトレイアイコンに独自アイコンを使いたい場合に同梱します。 -逆に独自アイコンを使用しない場合は、ファイルと共にiconの定義も削除して下さい。 *里々特有のファイル [#y09646b7] 主に里々ゴーストだけが持つ特有のファイル群です。 **satori.dll [#t895f903] 伺かの仕様における「栞」であり、里々の本体です。''&color(#ff0000){必須ファイル};''。~ 栞は、様々な辞書ファイルとベースウェアを仲介する、ゴーストの心臓部になります。~ **satori_license.txt [#x09296c2] 里々のライセンスが記載されている文書です。~ -Mc163-5以前:このファイルが無くても起動しますが、ライセンス上必ず同梱して下さい。 -Mc163-5以降:ライセンス文はsatori.dllに内蔵しているので、別途同梱しなくても問題ありません。 **satori_conf.txt [#j3e3ee70] [[変数]]・[[特殊変数]]の初期値設定、[[SAORI]]使用時の定義を記述するファイル。~ -このファイルが無くても起動しますが、通常ゴーストであればほぼ必須になります。~ -[[replace.txt>ファイル構成#sb0ae987]]による辞書置き換え対象ファイル。~ ***変数の初期値設定 [#vf1d9e6e] ゴースト起動時に[[変数]]・[[特殊変数]]へ初期値を与えたい時に記述します。~ 初期値が読み込まれるとゴースト終了時に変数の値は satori_savedata.txt に保存され、次回起動時からは satori_savedata.txt の値が優先されます。(初期値は1回だけ参照される事になります。)~ -「*初期化」行以降にエントリーを記述。 -変数の使用時に必ず必要なわけではありません。 -[[変数を削除>変数#s9a015c5]]し、satori_savedata.txt に変数の値が書き込まれなくなると、また satori_conf.txt の初期値が適用されます。 -既に変数を使用していて satori_savedata.txt に変数の値がある状況では、satori_conf.txt にエントリを追記しても参照されません。 -動的に値を変更する必要が無い[[特殊変数]]等は、このファイルで初期値を設定しておくと良いでしょう。 例 *初期化 $喋り間隔【タブ】180秒 $喋り間隔誤差【タブ】10% -補足~ 上記にもある様に satori_conf.txt で設定した変数の初期値は、ゴーストを起動して初期値が読み込まれると、終了時に satori_savedata.txt に保存され、次回起動以降は satori_savedata.txt の値の方が優先されるので、ゴースト起動後は satori_conf.txt の初期値だけ変えてもゴーストに反映されません。~ ゴースト開発中の場合は、一旦ゴーストを終了し satori_conf.txt と satori_savedata.txt 両方の変数の値を書き換えるか、セーブデータが不要であれば satori_savedata.txt のファイル自体を削除する、といった手段で値をゴーストに反映させます。~ ※[[SSP:http://ssp.shillest.net/]]ではゴーストキャッシュがあるため、ゴーストを2体起動しながら開発していると開発中のゴーストだけを再起動させても sator_savedata.txt からでなくキャッシュから変数の値を読み込んでしまうのでSSPのメニューから「機能」の「ゴーストキャッシュ開放」をしてやるか、SSP自体を再起動して下さい。~ ※[[SSP:https://ssp.shillest.net/]]ではゴーストキャッシュがあるため、ゴーストを2体起動しながら開発していると開発中のゴーストだけを再起動させても sator_savedata.txt からでなくキャッシュから変数の値を読み込んでしまうのでSSPのメニューから「機能」の「ゴーストキャッシュ開放」をしてやるか、SSP自体を再起動して下さい。~ ~ ユーザーに配布してしまったゴーストの初期値変更する場合は、[[起動イベント>起動・終了関連#xbbb02d3]]の中で値を設定するか、[[終了イベント>起動・終了関連#jf942ef8]]の中で変数を削除し毎回初期値を読み込ませるかして下さい。 ***SAORI使用時の定義 [#q327057d] 使用する[[SAORI]]を定義します。~ -「@SAORI」行以降にエントリーを記述。 -SAORIごとに1件ではなく引数別に登録できます。~ -SAORI-basic も区別せずに登録できます。~ -ゴースト「ポストと狛犬」では fill_desktop が例として定義されています。~ -定義されているSAORIが存在しないと、ゴースト起動時に「プラグインが存在しません」エラーが出ます。 例 @SAORI fill_desktop,saori/fill_desktop.dll fill_red,saori/fill_dektop.dll,255,0,0 詳しく→[[SAORI]]~ **characters.ini [#hbaf66ef] キャラクター設定をするファイルです。省略可。~ -このファイルを作ると[名前の頭文字]:で[[スコープ切り替え]]が可能になります。 -このファイルが無くても起動します。 詳しく→[[駄でべ レゴキチ/里々まとめ>http://emily.shillest.net/specwiki/index.php?%E3%83%AC%E3%82%B4%E3%82%AD%E3%83%81%2F%E9%87%8C%E3%80%85%E3%81%BE%E3%81%A8%E3%82%81]] の characters.ini の項を参照 詳しく→[[駄でべ レゴキチ/里々まとめ>https://emily.shillest.net/specwiki/index.php?%E3%83%AC%E3%82%B4%E3%82%AD%E3%83%81%2F%E9%87%8C%E3%80%85%E3%81%BE%E3%81%A8%E3%82%81]] の characters.ini の項を参照 **dic○○.txt[#lf210f30] トークから栞リソースまで全てを記述します。~ いわゆる「辞書ファイル」と呼ばれます。~ -ファイル名は dicで始まる .txtファイルです(例:&color(#ff0000){dic};01_Base&color(#ff0000){.txt};)、この範囲でなら自由なファイル名を作成することができます、○○の部分に日本語も使えます。~ -ファイル数に制限はありません。~ -辞書ファイルが一つもなくてもゴーストは起動しますが、通常ゴーストであればほぼ必須になります。~ -辞書内の最初の [[*>特殊記号一覧#d0671588]]までの行は [[#>特殊記号一覧#h0533f16]]が無くてもコメントとして扱われます。 -ghost¥masterフォルダのサブフォルダにある辞書ファイルは通常参照されません、[[特殊変数]]の[[$辞書フォルダ>特殊変数#u52cadf2]]を使うと ghost¥masterフォルダの辞書ファイルは参照されなくなり、指定したフォルダの辞書ファイルを参照する事が出来ます。 -ゴースト「ポストと狛犬」同梱の辞書ファイルはどれを削除しても良く、自分のゴーストに必要なものだけを選び書き換えることが出来ます。~ ただし「ネットワーク更新」「時刻合わせ」などトークを記述しないと実行できない機能もある。(因みに時刻合わせは時刻合わせイベント内に「¥6」を入れないと実際に時刻修正されないので注意) -どのトークをどの名前の辞書ファイルに記述しても良い、『交代トークは「dic04_Change.txt」に書かないといけない』というようなルールは無い。 -[[replace.txt>ファイル構成#sb0ae987]]による辞書置き換え対象ファイル。~ **dicAnchor○○.txt [#h0e1c049] 自動[[アンカー]]用辞書ファイル。省略可。~ -ファイル名は dicAnchor で始まる .txtファイルです。 -この辞書内のトーク名がアンカー対象文字列となり、そのトークがアンカーを踏んだ時に表示されるトークになります。~ -[[replace.txt>ファイル構成#sb0ae987]]による辞書置き換え対象ファイル。~ -ゴースト「ポストと狛犬」には入ってません。~ 詳しく→[[アンカー]]~ 関連[[特殊変数]]→[[自動アンカー>特殊変数#of2abad9]] **replace.txt [#sb0ae987] 辞書ファイル置換文字列の定義ファイル。省略可。~ 書式 置換する文字列【タブ】置換後の文字列 &color(#ff0000){※この書式の【タブ】は必ず実際のTabキーを押して入力して下さい。}; -辞書ファイルを読み込み時に内容を置換します、辞書ファイルの時点で里々書式として成立してなくてもこの読み込み時点で置換し成立させる様に出来るわけです。 -辞書ファイル(dic○○.txt)だけではなく、satori_conf.txtや satori_save.txtも対象です。 -このファイルが無くても起動します。 例えばカッコを含んだものを置き換えたり。 (赤)【タブ】(fill_desktop,255,0,0) callを省略してユーザ定義関数っぽくしてみたり。 (ほげ,【タブ】(call,ほげ, (ほげ、【タブ】(call、ほげ、 本wikiに限らず、タブ文字はけっこう多用されるので、下記の記述は入れておくと吉。 【タブ】 見えづらいですが"【タブ】"の右にはタブが2つあります。この"【タブ】"はそのまま4文字の文字列としての意味です。 **replace_after.txt [#e2122c25] トーク置換文字列の定義ファイル。省略可。~ 書式 置換する文字列【タブ】置換後の文字列 &color(#ff0000){※この書式の【タブ】は必ず実際のTabキーを押して入力して下さい。}; -トークが表示される直前、変数や関数等の()が展開された後のトーク文字列を置き換えます。 -このファイルが無くても起動します。 replace.txtと同じく、辞書に書いた内容を置き換えます。~ 違うのは、本体にさくらスクリプトを返す直前、つまり「しゃべる直前」に置き換えること。~ 例えば…… 変数(ゴースト名)に”ととたん”が入っていた場合 :(ゴースト名)さん、またねー みたいなのが ととたんさん、またねー になってしまうのを防ぐために、 たんさん【タブ】たん と書くと。 replace.txtだと、まだカッコが展開されてないので「たんさん」になっておらず、置き換えが効かないわけです。逆に、カッコを含むものはreplace_after.txtだと既に展開されており、手遅れなわけです。 このへんが影響しない場合は、どっちでも同じです。 **satori_savedata.txt [#e061fcd5] いわゆるセーブデータと呼ばれるファイルで、変数が保存されます。~ ''&color(#ff0000){ゴースト配布ファイル作成時は削除して下さい};''。~ *セーブデータ $喋り間隔【タブ】180秒 $喋り間隔誤差【タブ】10% -里々が自動生成するので事前にファイルを作っておく必要はありません。~ -ゴースト終了時に変数名と値が書き込まれます。 -[[特殊変数]]で、任意のタイミングでセーブする[[$手動セーブ>特殊変数#ga4f5345]]や、定期的にセーブする[[$自動セーブ間隔>特殊変数#v4de587a]]を設定出来ます。~ -ゴースト起動時に読み込まれます、satori_conf.txt に変数の初期値設定がある場合でも、satori_savedata.txt の値が優先されます。~ -[[SSP:http://ssp.shillest.net/]]で narファイルを作成時は自動で削除してくれます。~ -[[SSP:https://ssp.shillest.net/]]で narファイルを作成時は自動で削除してくれます。~ -[[replace.txt>ファイル構成#sb0ae987]]による辞書置き換え対象ファイル。 参考→[[セーブデータ]] **satori_savebackup.txt [#b55914fc] satori_savedata.txtの一世代前バックアップとして作られるファイルです。~ ''&color(#ff0000){ゴースト配布ファイル作成時は削除して下さい};''。~ -里々が自動生成するので事前にファイルを作っておく必要はありません。~ 参考→[[セーブデータ]] **satorite.exe , satorite.txt , satorite.dat [#zd7625e2] トークのテストをしたりできる補助ツールです。~ 里々形式で会話を書いて、それを起動中のゴーストに(SSTPで)喋らせることができます。~ 里々による「さくらスクリプト」の変換結果を見ることもできます。 -このファイルが無くても起動します。 -ゴースト配布ファイル作成時は削除して下さい。~ 同梱してしまってもセーブデータほど緊急性のある事態にはなりませんが、残しておく意味はまったくありません。 使い方→[[ゴースト作成入門-里々編-:http://ghostmaker.blog48.fc2.com/]](深瀬氏):[[さとりての使い方>http://ghostmaker.vs.land.to/2/2-6-satorite.html]] **れしば.exe , れしば.txt [#z619fa8f] 里々の動作ビューワです。~ ゴースト起動前にこれを起動しておくと、satori.dllの動作を逐一見ることができます。 -このファイルが無くても起動します。 -ゴースト配布ファイル作成時は削除します。 関連→[[特殊変数.れしば関係>特殊変数#r4f34de2]] **ssu.dll [#rb8f9bb9] ゴースト「ポストと狛犬」に標準装備されていたSAORIです。~ [[Mc157-1>https://github.com/ponapalt/satoriya-shiori/wiki]]よりssuが内部関数に統合されたため、saori/ssu.dllファイルと関連するSAORIの宣言記述が不要になりました。~ 関連→[[SAORI]],[[関数一覧]] **fill_desktop.dll [#jcc35fea] ゴースト「ポストと狛犬」にサンプルとして入っているSAORIです。省略可。~ ただし削除する場合は satori_conf.txt の次の定義も削除して下さい。 fill_desktop,saori/fill_desktop.dll fill_red,saori/fill_desktop.dll,255,0,0