RPGツクールでエロゲーをつくろう
RPGツクールではエロゲーもつくーるできます。そして販売もできます。
基本はふつうのRPGをつくるのと同じなのですが、なかにはエロゲーならではの表現、ちょっとめんどくさいことなどもあります。
今回の記事ではそのへんを触れていきます。
ちなみに使用ツールは最新の「RPGツクールMZ」とします。
また、わりとツクールに慣れてる人向けの記事になります。
・テキストを取り込もう
エロゲーにはかぎらないですが、エロゲーではエロシーンにおいて大量のテキストを処理する必要が出てくると思います。
通常RPGツクールではイベントコマンドの「文章の表示」を使ってゲーム内にテキストを表示させます。
ただ、2000字とか3000字とか、それなりに分量のあるテキストはメモ帳などの外部テキストエディタを使ってあらかじめ執筆しておくのが普通かと思います。
さて、それをツクールに取り込むとき……
一つのメッセージで最大4行、空の文章表示を無限にコピペして、スペースキーで編集を開いて、テキストエディタから一つずつコピペして……
少量であればなんとかなりますが、大量になると次第に吐き気を催してきます。
その作業を格段に楽にしてくれるのが「メッセージ組み込み開発支援プラグイン」Text2Frameです。
メモ帳に一定の規則で記述しておけば一気にツクール内に取り込んでくれる便利なプラグインです。
詳しい使い方は……リンク先を見ましょう!
・効果音を探そう
エロゲーといえば……重要なのは効果音! たとえば射精音です。
え? 射精の……音……??
演出です。演出として射精音はなければ締まりません。
デフォ素材のWaterあたりでごまかそうとしてはいけません。
たとえ絵がエッチでも音がそんなのでは興醒めしてしまいます。
さて、そのようなえっちな音素材はどこにあるのでしょう。
えっちなものは……だいたいDLsiteにあります。
著作権フリー効果音・BGM集 vol.25 射精音・ピストン・手コキ・ぶっかけ効果音108個+BGM10曲パック
私が愛用しているのはこちらです。
射精音はもちろん、ピストン音や手コキっぽい音まで揃っています。
著作権フリー効果音・BGM集 vol.7Hシーン用効果音117個+BGM10曲パック
あるいは同じサークルですがこちらですね。
え? お高い?
音にお金を惜しむべきではありません。
ましてやエロ同人ゲームとして販売するつもりならすぐ回収はできます……それだけの価値はあります……。
もちろん、こちらのサークル以外にも様々なエッチ効果音がDLsiteには販売されています。サンプルなどを聴き比べあなた好みの音を見つけましょう。
・台詞にハートマークをつけてみよう
エロ作品なら……語尾にハートマークはつけてみたいですよね❤
と、「❤」を使ってもよいのですが、これは環境依存文字です。
それに、せっかくなら赤いハートマークを使ってみたくありませんか?
文字色変更で赤くしようとするとこうなります。
毎回この表記はめんどくさいですよね。
文章の長さ(ウインドウ内に収まるかどうか)がパッと見わかりづらくなる問題もあります。
そういうわけで、私が提案する手法はアイコン表示です。
アイコン表示なら記述も短く済み、環境依存でもありません。
上の場合ではアイコンセットの1番にハートマークを置いて、以下のように表示されます。
これであらゆる台詞にハートマークを撒き放題です。
・差分を管理しよう
エロシーンをつくる際には、基本的に「ピクチャの表示」を利用することになると思います。
それ自体はむずかしくありません。
えっちな絵を表示させて、えっちな文章を表示させて、えっちな効果音を鳴らして、それでえっちなシーンが完成です。
ただ、一つのゲームにつき少なくとも10シーン、えっちな絵が10枚ほどあるとします。
それぞれえっちな絵には表情差分があり、射精差分などもあるでしょう。
どんどん枚数が膨れ上がってわけのわからないことになっていく恐れがあります。
めんどくさいのもそうですが、めんどくささはミスを誘発しかねません。
そういうわけで、ツクールMZでは待望の「サブフォルダ」対応がなされました。つまりフォルダの下にフォルダを置けます。
「pictures」フォルダの下に「expressions(表情)」フォルダや「diffs(差分)」フォルダを用意しておけば混乱は大幅に回避できるはずです。
(私の場合はちょっと小細工を弄して「img」フォルダ直下に両フォルダを置いてたりしますが)
ここからさらに突っ込んで、処理を自動化できる部分は自動化してしまうともっと楽になります。
表情については、「ここではいたずらっぽい笑み」「ここでは困ってる顔」……と状況に応じて手動で指定するほかありませんが、たとえば射精差分は「射精した後の画像になる」ことは決まり切っています。
つまり、命名規則を定めていれば、わざわざ手動で射精後の画像を選ばずとも、自動的に射精後の画像を表示させることができるはずです。
Game_Screen.prototype.showSemen = function(noWait) {
const max = 5;
const count = Math.min($gamePaizuri.ejaculate(), max);
const name = this.namePicture(p_base, true) + '_s' + count;
const pictureId = p_base + count + 1;
const opacity = noWait ? 255 : 0;
this.showPicture(pictureId, name, 0, 0, 0, 100, 100, opacity, 0);
this.movePicture(pictureId, 0, 0, 0, 100, 100, 255, 0, 30, 2);
};
これを私はこのように書いています。
「p_base」や「p_inside」は即時関数内で提示しているconstです。ピクチャーIDを指定しています。
あと「namePictre」という関数もデフォにはありませんので書いてます。
「$gamePaizuri」というのも独自に定義したクラスです。射精回数などを管理してます。
さて、これだけ見てもなんのこっちゃと思うかもですが……
命名規則としては、たとえば「P_Tate_s2」という画像を例に挙げますと
P_(パイズリ画像であることを示す。ソート用の命名規則)
Tate(縦パイズリの画像であることを示す)
_s(射精後差分であることを示す)
2(射精回数を示す)
となっています。
ちなみに基本となる画像は「P_Tate」と装飾のないファイル名になっており、この画像の名前をもとに差分画像を表示させます。
私の例をもとに処理の流れを書き出します。
・P_Tate(基本画像)をp_base(20番)に表示
↓
・p_expression(30番)に表情差分を表示(手動)
↓
・射精処理が行われた場合、射精回数に応じて射精差分をp_baseより上(21番)に表示(p_baseのファイル名を取得し、その文字列に「_s」と射精回数の数字を加算し、射精差分のファイル名を指定する)
なんかそんな感じです。
ちなみに、同じように命名規則を工夫することで挿乳差分を扱うことも可能です。なにそれ?
つまりこんな画像です。
「基本名」に「#」をつけることで表現しています。
_s0というのは射精回数が0回だからです。つまり扱いとしては射精差分と同じです。
そして挿乳差分にもそれぞれ射精差分があります。ややこしいですね。
ただ、処理を自動化してしまえばめんどうなのは画像を用意する作業だけになります。
こうした作業で具体的にどのような仕上がりになっているかは上の動画などをご覧ください。
体験版でもいいですし、いっそのこと本作を購入なさっても構いません。
・回想モードをつくろう
エロゲーといえば……回想モードは必須!
そしてツクールゲーの回想モードといえば……
なんかこんなん(概念)です。
まあ、UIとしては使えなくはないのでこの形式でひとまず問題はありません。
問題となるのはフラグ管理です。
いっそ開き直って最初から全開放、という形式なら問題ありませんが、基本的には一度でも見たら次からは何度でも見られる、という形式が一般的です。
しかし、たとえば敗北エロであればゲームオーバーになってしまいます。セーブデータには残りません。どうすればよいでしょう?
こういったプラグインを利用するとたとえゲームオーバーになったとしても「そのエロシーンを見た」というフラグは共有セーブデータに残すことができます。
あとは、本編からでも回想モードからでも再生しやすいようエロシーンはコモンイベントで組んでおくとよいでしょう。
ちなみに私の作品ではこういうUIを組んでいます。
これと同じものを実装するにはSceneクラスのあれこれの知識が必要になるわけですが……これを書こうとしたらかなり長くなりますのでまた機会がありましたら……(あるのかな……)
ちなみに、RPGツクールにおいてSceneクラスに手を出し始めると「これもうツクールじゃなくてよくね?」みたいな領域に足を踏み入れることになります。
いや、なんだかんだツクールの機能にはお世話になってるんや……!