eramaker2 マニュアル
流れ図
アップロードされていたものを転載させて頂きました。
今後若干の加筆改訂が必要になるとは思いますが、
基本的な流れは十分理解できるかと思います。
中に入っている関数などは今後別にまとめる予定です。ファイルやフォルダの役割の概説だけしています。
■GameName.txt
ゲームのタイトル(ウィンドウタイトル)を指定します。
first.ksより前に読まれます。そうしないと起動時にタイトルが確定しないためです。
■GameInfo.txt
タイトル画面で使う、作者や作成年といった情報です。
「
基本的なゲーム情報を変える」を見ればわかるかと思います。
独自形式のタイトル画面の場合は特に意味を持ちません。
■Config.txt
ある程度システム内部に関わるタイプの機能設定が含まれています。一部の設定はSFLAGと統合してもよいかも?
■startup.tjs
ゲームの起動の一番最初に呼ばれる、吉里吉里に最初から用意されていたファイルです。
systemフォルダのファイルと同じで、触らないほうがよいです。
■krenvprf.kep(ないこともある)
無視してよいです。
■○○.txtなど
そのものズバリ、キャラデータが入っています。恐らく一番いじる部分でしょう。
中身はTJSで書かれていますが、拡張子がtxtなのはメモ帳でも最初から開けていいかな? と思ったからです。実際にいじるときは「
キャラデータを変えてみる」などを参照して下さい。
キャラデータの次にいじる可能性が高いであろうところです。いわゆる口上、調教開始時や調教コマンド実行のときに表示されるキャラの反応やセリフがキャラごとに入っています。
■○○**口上.ks(○○にはキャラ名、**にはパラ、開始、刻印、自発、終了、調教 などが入る。あゆ開始口上.ksなど)
口上データです。KAGで書かれています。キャラの反応を作るために一番いじるところでしょう。具体的な書き方は別のページで今後書いていきます。口上が要らないときは単純にファイルを消してしまえばOKです。
いわゆる日常シーン、オープニング、エンディングなど文章が長く続くシーンに関するものが入っています。
シナリオ本体
■ending0000.ksなど
エンディングを書いてあるシーンです。普通のKSファイルなので、最後に[gotostart]することを忘れなければ自由に書いていってよいでしょう。
■sce000000_0.ksなど
日常イベントを書いてあるシーンです。sce000000_0.ksは通常ならオープニングになります。ターン毎にsce******_*.ksをチェックして、対応したシナリオがあれば実行という仕組みです。最初の6文字が日数で、末尾が時間を表しています。具体的な書き方のイメージは「
日常シーンのテキストを入れてみる」あたりを参照して下さい。
■scedefault.ks
上記のsce******_*.ksがなかった日に表示される日常イベントを書いてあるシーンです。何度も表示されるものだとくどくなるので、あまり複雑なことを書かないほうがよいでしょう。逆にランダムで描写を変えるという考え方もありますが。
いじるべきもの
■endinglist.tjs
エンディング条件の設定をしています。ちょっと書き方がわかりづらいですが。エンディングを作るときには必然的にいじることになるでしょう。
■userevent.tjs
UserEventCheckという、能力値などによる日常イベントを記述できる関数があります。従順が3LVを越した直後の日にこのイベントが起こる……といった処理をするときにはここを使うと良いでしょう。
あまりいじる意味がないと思われるもの
■CSCENARIO.tjs
CSCENARIOというシナリオ管理クラスが書いてあります。ややこしい上にいじる意味もあまりないかと思われます。
■scenario.tjs
ScenarioCheckMain()というシナリオ管理の関数があります。エンディングを迎えたかなどのチェックをしていますが、あまりいじる意味はないと思われます。
■scenario.ks
scenario.tjsのScenarioCheckMain()を呼び出すだけです。タイトル画面(title.ks)が終わった直後、「次の日」になった(nextday.ks)直後などにここに飛んできます。あまりこれをいじる必要はないかと思います。
データの種類を拡張したいときには触る必要があるところです。あまりややこしいことは書いていないので、中級者になればさほど面倒もなくいじれるでしょう
■eradic.tjs
能力・パラメータ・珠・経験・素質・刻印・装備・絶頂・汚れ・ソースの名前とIDの設定をしています。eramaker1のcsvの代わりになるものです。素質やら経験を増やしたいときはここをいじりましょう。ただ「復活」を「蓬莱人」にするなど、ただの改名のときは他のゲームとの互換性を保つために名前変換辞書の利用を推奨します。詳しくはこのeradic.tjsの中に書いてあります。
■eraflag.tjs
フラグ名の管理をしています。フラグは数字の見出しで管理するのか文字で管理するのか(*FLAG(0)がよいか*FLAG("休憩")がよいか?)難しいところですが、システムフラグは基本的に文字での管理がいいのではないかと思います。
■erasysflag.tjs
システムフラグの設定です。名前の管理はeraflag.tjsで、こっちは内容のコンフィグです。現時点でちょっとまとまりに欠けるイメージもあるので、システムフラグは将来的にもう少し整理されるかもしれません。
■eraitem.tjs
アイテム名と値段の設定です。売っているかどうか(ITEMSALES)はゲームが始まるたびに初期化する必要があるので、init.ksでやっています。
グラフィック周りの処理をしています。使わない場合は全く触らないでしょうが、グラフィックを充実させる場合は重要です。
■trainback.tjs
調教時の背景CGに絡む処理をしています。シルエット表示の場合も一枚絵表示の場合も、コマンドの増減、用意したグラフィックとの対応関係調整などがあるときはいじる必要が出てくるでしょう。
■emoji.tjs
ハートマークや汗マークなど、通常の文字では表示できないものを文中に入れるための処理です。やっていることは単純なので、絵文字を増やしたいならば画像だけ用意すれば大丈夫でしょう。
■face.tjs
顔グラフィックの変更・管理を行うファイルですが、未完成です。
■CEraMiniGraph.tjs
顔グラフィックなどミニ絵を管理するファイルです。今のところ顔グラフィックシステムが未完成なのであまり意義はありません。
背景データを入れるフォルダです。eramaker2では何もしなければ黒背景ですが、画面の右端のほうは大体何も表示されないようになっているので、そこに表示するようにすれば特に気にせず背景の要素を入れられるでしょう。もちろん普通のノベルゲームのように、全画面に背景が表示されていても文字の色や縁取り次第で問題ないはずです。
音楽データを入れるフォルダです。eramaker2(というか吉里吉里)ではwav形式とogg形式が基本です。「
BGMを当ててみる」を参考にしてみてください。
効果音データを入れるフォルダです。初期状態で入っているボタンを押したときの音などは佐藤敏が作ったものなので、自由に使ってかまいません。使い方によってはグッとゲーム全体の雰囲気を良くしてくれるはずです。
顔グラフィックのデータを入れるフォルダです。現時点のeramaker2ではまだこの機能は未実装ですが、顔グラフィックは比較的小さなコストでキャラへの感情移入を大きく増してくれるでしょう。
声データを入れるフォルダです。現バージョンでは声を当てるのにまだ手間がかかりますが、ネット声優さんなどが積極的にゲーム作成をしてもらえればと思っています。
いわゆる一枚絵の入るフォルダです。描くのにかかるコストは大きいですが、ここが充実してくれば市販ゲームにも負けないクオリティのゲームになるでしょう。「一枚絵」と言ってもきっちりとした塗りがされた絵でなく、鉛筆絵のスキャンやざっとした彩色の絵でも使えると思います。
ボタンやウィンドウなどグラフィックを使ったユーザーインターフェースの画像、絵文字の画像などが入ります。今のところはハートマークや汗マークの絵文字だけ入っています。使う絵文字を増やしたいならここに入れましょう。
色々な関数を詰めこんでいます。システムの中枢部分に関わる部分もありますが、ものによってはいじりやすいものもあります。
改造によってはいじる必要があるファイル
■bgmfuncs.tjs
BGMに関する処理が入ります。今は調教時にキャラごとに鳴らす音楽を変えられるだけですが、もっと色々な変化を加えることもできるでしょう。
■checkfuncs.tjs
男性器・女性器の有無チェック、売却可能チェックなど様々なチェックをする関数があります。売却可能条件を変える場合などはいじる必要があります。書いてあることもさほど難しくないと思います。
■sellfuncs.tjs
奴隷などの売却時、値段を決める関数が入っています。ビデオや母乳を売るシステムはまだ未実装なので空の関数だけがあります。他にも売りたい物がある場合、ここに関数を入れるとよいと思われます。ある程度気軽にいじれるファイルです。
■selffuncs.tjs
調教後セックス、調教後自慰などの処理です。trainend_self.ksと密接に関係しています。処理を変えたいとき、調教後○○を増やしたいときはここをいじってください。
■printfuncs.tjs
パラメータ表示や横線表示(maker1のDRAWLINE)など文字表示に絡む関数が入っています。割といじりやすい部分だと思います。
将来、自動化すればいじらなくてよくなりそうなファイル
■ablupfuncs.tjs
能力アップ画面の管理などをしています。現時点では列挙形式になってしまっているので、能力の種類を増やした場合などはいじる必要があります。いじること自体はさほど難しくないと思います。
■buyfuncs.tjs
アイテムを購入する処理(アイテムの数が増え、お金が減り、場合によっては店から消える)をしています。今はアイテムのIDを決め打ちにしてしまっていますが、「買うと店から消える」属性を設定する変数があったほうがいいかもしれません。書いてあることは簡単ですし、いじるのも難しくないかと思います。
■equipfuncs.tjs
調教中、装備しているアイテム(バイブやアナルバイブなど)の追加効果を処理するための関数があります。今は装備ごとに列挙しているだけですが、もう少し綺麗な書き方があるかもしれません。
■juelfuncs.tjs
珠取得計算・否定の珠の打ち消し計算などをしています。やっている処理はわかりやすいと思いますが、珠の種類が増えたときの対応が厄介なので将来的に書き直したほうがいいかもしれません。
■trainfuncs.tjs
パラメータの初期化等をしています。汚れや絶頂などの初期化をしているので、こういったデータを増やす場合はここもいじる必要があります。
色々なもの入れ
■otherfuncs.tjs
「便利系」の関数が入っています。処理を短く・わかりやすく書くための関数ができたらここに入れてもいいかもしれません。そうでない場合はいじる必要は特にないでしょう。
まずいじらないと思われるファイル
■comfuncs.tjs
コマンドの一覧表示、コマンドの実行管理などの機能が入っています。コマンドの一覧表示のほうは場合によってはいじることがあるかもしれませんが、CCOMクラスはあまりいじらないほうがいいと思われます。
■eventfuncs.tjs
eraeventフォルダのイベント関数チェック用です。いじる機会はあまりないと思います。
■keyfuncs.tjs
キーボード入力用の関数です。と言っても現時点ではコマンド入力のとき、Enterキーを押した反応を拾う機能だけが入っているだけです。いじる機会はあまりないでしょう。
■kojofuncs.tjs
口上のファイル名を管理する基礎的な機能が入っています。あまりいじる必要はないと思います。
■itemfuncs.tjs
アイテムに関する処理が入ります。今のところはアイテムをすべて0にする関数だけです。
■printqueuefuncs.tjs
基本的に止まらずどんどん進んでしまうTJSでメッセージウェイトや入力待ちを実現するための処理が入っています。ややこしいですし、あまりいじる意味もないと思います。
■processfuncs.tjs
選択肢関連の関数が入っています。割と呼び出すことは多いと思いますが、マクロと組み合わせてちょっと面倒な動きをしているところも多く、ユーザー側ではあまりいじらないほうがいいと思います。
■showfuncs.tjs
TJSで文字表示する機能、背景画像の表示など色々と表示に関わる関数が入っています。あまりいじる意味はないと思われます。
■sysfuncs.tjs
キャラクタの追加・削除の関数が入っています。ここをいじるのは十分な知識がある人でないと難しいでしょうし、いじる意味もあまりないでしょう。
maker1で言うところの「イベント関数」が入るフォルダです。イベント関数は「調教開始」「一日の終わり」など、特定の時に呼び出される関数です。このeraeventフォルダに入っているKSファイルはイベント関数のためのファイルだとみなされ、起動時にチェックされます。ですので余分なものはここに入れないで下さい。
■eventcom.ks
コマンド実行時のイベント関数が入っています。TFLAGの一部をリセットしています。
■eventcomend.ks
コマンド実行終了時のイベント関数が入っています。体力限界か、死亡したかどうかをチェックしています。
■eventend.ks
調教終了後のイベント関数が入っています。否定の珠打ち消しなどの処理も呼ばれています。
■eventend_self.ks
eventend.ksから呼ばれる、自発自慰、自発レズなどの処理が入っています。地の文なども書いてあるのでいじりやすいように別ファイルとしました。
■eventnextday.ks
日付を次の日にする処理、ふたなり化の処理が入っています。日をまたぐときに発生するイベントを書きたいときはここに。
■eventshop.ks
ショップに入ったときの処理が入ります。今のところは空のダミーデータです。
■eventtrain.ks
調教開始時のデータのリセット処理が入っています。
■eventturnend.ks
能力アップも終わり、次のターンに向かう前の処理が入っています。主に体力回復などです。
■eventturnend_finish.ks
キャラの売却、助手化などの条件が満たされている場合、それを実行するかどうかの処理をしています。
コマンドの管理とコマンドの実行時の処理が入るフォルダです。コマンドを増やしたいとき、コマンドの効果を変えたいときにはいじる必要があります。一番基本的な管理はerafuncsフォルダのcomfuncs.tjsでやっています。
■000愛撫.tjsなど
コマンドの実行処理をしています。1コマンドにつき1ファイルです。コマンドを実行できるかどうかの判定、コマンド実行時の効果、装備時(バイブなど)の効果など、そのコマンドに関わる具体的なものは全部ここで処理しています。
■comorder.tjs
手淫や自慰などを命じたときのコマンド実行判定の共通処理が入っています。自慰命令ときの素質「自慰しやすい」の判定などは個別のコマンドファイルでやっていますが、従順レベルなどの共通部分はここで処理しています。
■comableplus.tjs
やや特殊なコマンドの実行判定の処理をしています。
能力アップに関する処理が入っています。能力を増やしたい、能力アップの条件を変えたい、などのときにいじることになるでしょう。
■ablup**.ks
能力アップのときにはここに来ます。能力アップの条件を表示し、能力アップするかどうかユーザーに問うような処理です。
■ablup**.tjs
能力アップのために実際に珠がいくつ必要か計算するなどの処理はこちらでやっています。
ablup0.ksとablup0.tjs、などのように対応するKSファイルとTJSファイルでワンセットです。
様々な情報表示に関するファイルを入れるフォルダです。
■printinfo.tjs
日数情報やキャラ情報の表示などの関数が入っています。書いてあることは割と単純ですからいじりやすいでしょう。
いわゆる地の文(「体を丹念に愛撫した……」など)をいじるならここです。書いてあることはさほど難しくないと思われます。
■trainmesA.tjs
射精・射乳関連の地の文の処理をしています。SourceCheckAの最後で呼び出されます。
■trainmesB.tjs
コマンドに応じた地の文の処理をしています。traincom.ksから呼び出されています
■event_m.tjs
恋慕がつく、隷従がつくなどの調教に関わる(というよりターン終了時の?)特殊なイベントの処理をしています。
ソースの処理をしています。ソースとは調教コマンドを実行したときに表示される「情愛」「達成」など、パラメータ変化の一段階前の値のことです。
■source.tjs
調教時の各要素(ソース)の計算をします。maker1とほとんど同じです。この計算を変えるときにはいじる必要があります。書いてあることは長いですが、それぞれの処理はさほど難しいことを書いていないはずです。
■tracheck.tjs
source.tjsの補助的なファイルです。source.tjsの中で生ずる処理の特徴的なものを関数に分けて記載してあります。同じくこの辺りの計算を変えたいときにはいじることになるでしょう。
■showsource.tjs
調教コマンドを実行したとき、どの程度のソースが発生したのか表示する処理が入っています。そこから生まれるパラメータの変化、UpCheck()もこのファイルの中にあります。
<ゲームの流れの中心となる本流のような部分です。ここに出てくるファイルを行ったり来たりしつつ、細かい処理のとき別のフォルダのファイルに飛んでいくのがeramaker2の基本構造と言ってもいいかもしれません。インターフェースを変えたいときはいじる必要があることも多いと思われます>
いじるケースが比較的多く、簡単にいじれるであろうファイル
■init.ks:eramaker2ではmaker1と違い、タイトルへ戻る機能があるので、その際の初期値を規定しています。ゲームによっていじることが多いファイルだと思われます。
■option.ks:オプションの変更をしているときはここに来ます。オプションで設定できる項目を変えたいときはここに。OPTION_ARのいじり方がちょっとまとまってないので、書き直しの余地がありそうです。
■title.ks:タイトル画面ではここに来ます。タイトルの表示を変えたいとき、もっと豪華にしたいときなどはここをいじることになるでしょう。
ちょっと突っ込んだ改造をするときにいじるかもしれないファイル
■ablup.ks
maker1におけるABLUP.ERBです。能力アップのシーンのときにはここに来ます。能力が増えたとき用にもう少し書き直しの余地がありそうです。
■selectslave.ks
調教開始をするとき、奴隷を選ぶシーンでここに来ます。「erakanon eramaker2テンプレート版」ではちょっと汎用性に欠ける書き方をしているので、特に多くのキャラを管理するときなど書き直しの余地がありそうです。
■shop.ks:maker1のSHOP.ERBに相当します。ショップシーンではここに来ます。ショップ要素がないゲームでも、調教前のセーブやロードをするときにはここに来ることになります。selectslave.ksと同様、キャラの管理についてもう少し書き直しの余地がありそうです。
■statics.tjs
レベル上限、レベルごとの珠の取得量、色設定やコマンド幅などの定数が指定してあります。画面サイズを変える場合、パラメータのレベル上限を変える場合など大きな変更をするときにはいじることになるでしょう。なおeramainフォルダの中、これだけTJSで書かれています。
■trainmain.ks:maker1におけるUSERCOM.ERBに相当します。調教中のメイン画面、コマンド選択をしているときです。表示のレイアウトを変えたり、特殊なコマンドを実行(場所を変えるなど)できるようにするにはここをいじる必要があるかもしれません。
あまりいじらないであろうファイル
■comend.ks:コマンドが終了したときに呼ばれます。今のところはEVENTCOMENDのイベント関数を呼び出す処理をしているだけです。
■nextday.ks:次の日に行くときに呼ばれます。今のところはEVENTNEXTDAYのイベント関数を呼び出す処理をしているだけです。
■printqueue.ks:TJSでは文字を表示→クリック待ちといった処理ができないので、eramaker2ではどうしてもTJSでクリック待ちのあるテキスト表示をしたいときは「TJSで表示すべきテキストを溜める→printqueue.ksで順番に表示していく」という手法を取っています。あまりいじる必要はないかと思われます。
■turnend.ks:能力アップの処理が終わったあとここに来ます。今のところはEVENTTURNENDのイベント関数を呼び出し、次の時間に進む(午前午後がないなら次の日に進む)処理をしているだけです。
■train.ks:調教開始時にここに来ます。今のところはEVENTTRAINのイベント関数を呼び出す処理とキャラの開始口上を呼び出す処理がほとんどです。
■traincom.ks:調教コマンドを実行するとここに来ます。あまりいじるところもないでしょうし、いじらないほうが互換性を高く保てるでしょう。
■trainend.ks:調教終了時にここに来ます。今のところはEVENTENDのイベント関数を呼び出す処理とキャラの開始口上を呼び出す処理がほとんどです。
eramaker2の土台である吉里吉里の心臓部と言うべきファイルが入っています。生半可な知識ではいじれない難しさです。というか佐藤敏もごく一部しか理解していませんし、いじっていません。
ただ、読み込むファイル・フォルダを決定するコードがある「Initialize.tjs」と、基本文字サイズやウィンドウサイズなどを決める「Config.tjs」だけは例外的にいじることがあるでしょう。
セーブ、ロードに関するファイルが入っています。
■erasave.tjs
セーブ・ロードの具体的処理をしています。いじると互換性に影響が大きく出てきますが、セーブデータの説明(○○日目 ××調教中、など)を設定するEraSaveInfo()関数だけはゲームに応じて変えていってよいでしょう。
■load.ks
■titleload.ks
■save.ks
それぞれロード画面、タイトルから呼ばれたときのロード画面、セーブ画面のときにやってきます。いじる意味はあまりないと思われます。
全体にゲームの中核に関わる部分が多く、文法もややこしいものを多く使っています。あまり触らないほうがよいです
■first.ks
ゲームの最初に呼び出されるファイルであり、eramaker2の構成ファイルを順次読み込んだり後で必要な情報を収集したりします。ちょっとわかりづらい書き方をしているところもありますし、あまりいじらないほうが吉です。ただ、DLLのプラグインを使って拡張したい場合などはここで読み込む必要があります。
■debugs.tjs
デバッグ処理を独自に拡張しています。吉里吉里のデフォルトのデバッグウィンドウは情報量が多すぎるので、それを絞り込んだりエラーの起きた場所をわかりやすくすることを目指しています。いずれにしろややこしいのでユーザーは触らないほうがよいです。
■eraerror.tjs
実行時のエラーを独自に管理しています。存在しない名前やIDを入れているのが見つかった場合など、できるだけ具体的にメッセージを表示させることを目指しています。カッコ閉じ忘れなど、もっと基本的な文法ミスは吉里吉里のシステムが拾うのでこことは関係ありません。場合によってはユーザーで拡張しても良いとは思いますが、ある程度知識が必要です。
■eravar_base.tjs
eramaker2の変数を扱うための基本的なクラスと関数が定義されています。ややこしいのであまり触らないほうがよいです。
■eravar.tjs
maker1と互換性を保つための変数や、刻印名・経験名などの辞書が定義されています。新しい辞書を増やしたい場合などはここをいじるべきですが、あまりいじらないほうが他のバリアントとの互換性を保てます。eravar_base.tjsよりは簡単に読めると思いますが、ややこしい部分も結構多いです。
■erarand.tjs
乱数管理ルーチンです。普段は吉里吉里のintrandom()辺りを使えばいいと思いますが、MYRAND関数を使うと(意図的に初期化するまで)一定の順番で数字が出るようになります。つまり何回ロードしても結果は変わらないと言うことです。ランダム要素があるゲームで、ロード連発での攻略を阻止したいときには使えるかもしれません。それほど難しくないとは思いますが、いじる意味もあまりないファイルです。
■tjscheck.tjs
誤植チェック用です。*ABL("欲望") = 2;ではなくABL("欲望") = 2;などと書いてしまうと見つけづらいバグが発生するので*の抜けをゲーム起動時にチェックするため作ったのですが、あまりに重いので実用性に欠ける感じです。Config.txtの MAKER2_TJS_CHECK でチェックの有無を設定します。将来的に消すかもしれません。
吉里吉里では最初からあるKAGのタグだけでなく、よく出てくる処理をまとめてタグのように呼び出すことができます。これをマクロと呼び、このフォルダで登録されています。詳しいことは吉里吉里の「KAG System リファレンス」を見るとよいかと思います。
■macroA.ks
入力と出力を効果的に行うためのマクロ。
選択肢周りなどで結構重要なマクロも含まれています。
■macroB.ks
絵表示や音楽再生を効率的に行うためのマクロ。
■macroC.ks
maker1と互換性を保つためのマクロが定義されています。
このフォルダに入っているKSファイルはfirst.ksの最後で必ず呼び出されるので、自分でマクロを作りたい場合はこのフォルダの中にKSファイルを作ってマクロ定義をすると良いでしょう。ただしそのファイルの最後で[return]するのを忘れずに。
体のパーツをミニ絵で表示することを考えていたときの名残です。あまりパッとしないので、今は機能が消えてしまいました。このフォルダも消すかもしれません。
シルエットデータが入っています。自分でシルエットを追加するのはなかなか難しいと思われるので、実際に触ることはあまりないでしょう。
シルエットシステムを使うときも、容量を食うので使わないグラフィックは削除して再配布するほうがいいかもしれません。
動画を入れるフォルダです。個人で用意するのはなかなか難しいかもしれません。
「前景」、いわゆるノベルゲームの立ち絵などが入るフォルダです。吉里吉里にあるのでeramaker2でも残してありますが、あまり使わないと思います。
吉里吉里の売りであるトランジション(よくノベルゲームである、画面がなだらかに切り替わる機能)を使うとき用の「ルール画像」を入れるフォルダです。吉里吉里にあるのでeramaker2でも残してありますが、maker2ではトランジションを使わないのが基本ポリシーなので基本的に空っぽかと思います。
その他のデータを入れるフォルダ。吉里吉里にあるのでeramaker2でも残してありますが、あまり使わないと思います。
Last Updated : 2009-4-20
http://cbaku.com