偏読日記@はてな

本を読んだりゲームをしたり、インターネットの話をしたりします。小説も書きます。

やったー 俺専用全自動エロシチュ生成器ができたよー

1年前に衝動的に思い立って書き始めてから、ときおり見返しては更新し続けていた"seiheki.txt" しかし散漫とした文章が書き連ねられたままではいくら書き足しても何にも使いようがありません。
せっかくなので有効に利用しようと、こいつを元に自分専用の全自動エロシチュ生成器を作ってみました。
  

まずは文章の形でたくさん集まった「(エロ的な意味で)俺の好きなシチュエーション」を排他な要素に分解します。例を挙げれば、人間は同時に二つの場所に存在できないことから「場所」を表す要素を各文章から抜き出してひとまとめにするといったところ。同様の手続きを繰り返し、全ての文章を数個の要素に分解、それぞれの要素ごとに用意したファイルに書き込みます。


次に、各要素に対応したテキストファイルからランダムに1フレーズずつとりだして合成するスクリプトを書きます。
ゼロから書くのは大変なのでギャルゲーヒロイン自動生成 Ver2.2のコア部分を抜き出して再利用しました。
列挙されている"〜.txt"がそれぞれ要素を格納したテキストファイルです。

#!/usr/local/bin/perl
srand(time()^($$+($$<<15)));
my @source = (qw/place.txt style.txt hair.txt fashion.txt ejaculation.txt relation.txt work.txt mentality.txt situation.txt arround.txt/);

my $result;
foreach (@source){
	open INPUT,"<$_";
	my @tmp = <INPUT>;
		my $rnd = rand(@tmp); 
		my $clip = splice (@tmp,$rnd,1);
		$result .= "$clip\n";
	close (INPUT);
}
print "$result";
exit;

ギャルゲーヒロイン自動生成で、その手の娘を表現する文章を9つの「属性」に切り分けてから再構成したのとほぼ同じことをやっています。
(参考:ギャルゲーヒロイン自動生成ソース


出力見本その1 出力見本その2 ※少々卑猥な表現を含みます


「要素」ごとにまとめる際に必要最小限にまで表現を圧縮しているので、きちんとした文章の形では出力されません。だが、それだからこそ妄想が広がるというものです。広がっても何にも使いようがないけれど。
5回に1回くらいは成年コミック/男性向け二次創作18禁同人誌的ファンタジーをもってしても実現不可能に思える、どうやってそんなシチュエーションに持って行けばいいのか皆目見当のつかない物が出力されて頭の体操にもなります。構成する個別の要素自体はおかしくないのに総体として気が狂ったシチュエーションが生成されるのはまさに自動生成スクリプトのみが実現する奇跡。


思いついてから2時間くらいで作ったジョークスクリプトですが、「自分の好みの物」を要素ごとに分解して組み合わせるとおおよそ「自分の好みの物」が出力されるというのはなかなか面白い発見でした。これは色々なところに応用が効きそうな気がしますね。
改造に改造を重ねた結果あまりにも複雑化し、他の用途への応用がほとんど不可能になっていたギャルゲーヒロイン自動生成からうまいことコアの部分だけ取り出せたのも予想外の成果でした。
読み込ませるテキストファイルを入れ替えればなんにでも使えるので、自動生成による偶然性の生み出す飛躍に頼りたいときにはいろいろ応用していきたいところ。


元になる要素に髪型(hair) 関係性(relation) 性格付け(mentality)と言った物が含まれていたり、出力結果を見れば判るとおりこのスクリプトは簡易版のキャラクター設定生成器的な面があります。
ということは、ギャルゲーヒロイン自動生成のプロフィール生成機能・画像生成機能と今回作ったシチュエーション生成器を合体させれば……!!


関連記事

プロフィール生成・画像生成に加えて名前生成パターンを約54億通りまで拡張した「ギャルゲーヒロイン自動生成」最新バージョンを公開したときの記事。

ギャルゲーヒロイン自動生成にVer3系列から追加された画像生成のもとになったのはこれだったりします。