-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path7thsource.html
323 lines (322 loc) · 13.7 KB
/
7thsource.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
<!DOCTYPE html>
<html lang="ja">
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META name="keywords" content="官能小説,自動生成,七度文庫,エンターブレイン,ゲームコンテスト,伊集院光,七度言語,ソースコード">
<META name="description" content="官能小説自動生成ソフト「七度文庫」ソースコード解説">
<TITLE>官能小説自動生成ソフト「七度文庫」ソースコード解説</TITLE>
</HEAD>
<BODY>
<H2>七度文庫ソースコード解説</H2>
<OL><BR>
<H3><LI>はじめに</H3>
七度文庫のソースコードは七度言語で記述されている。<BR>
ソースコードは、項目ごとに分割してディレクトリーに納められている。<BR>
分割したソースをコピーコマンドを使ってつなぎ合わせて一つにして、<BR>
コンパイラのソースコードに変換している。<BR>
官能描写の部分は、過激描写版と、制限版の両方が作成してあり、<BR>
どちらかをソースコードに連結する。<BR>
したがって、制限版の七度文庫のプログラムにパッチを入れても過激描写ができるようにはならない。<BR>
ソースコードのすべてはあまりに量が多いために、html文章での公開は<BR>
困難である。<BR>
主要なアルゴリズムについて、ソースコードを紹介して解説を行いたい。<BR>
<BR>
<H3><LI>最初のスタート部</H3>
<BR>
七度言語では小説のスタートはtitle文から始まる<BR>
七度文庫の制限版のtitle文は次のように記述されている<BR>
タイトル文が<BR>
<FONT COLOR="#800080"><BR>
アルバイト<BR>
デートに誘われる<BR>
偶然<BR>
旅行1<BR>
旅行2<BR>
暴行<BR>
風俗<BR>
</FONT><BR>
の七つに分類されているのは、シナリオの出現確率を調整するためである。<BR>
最初の起動では各グループから一つづづシナリオが選択されるので、<BR>
同じグループから似たようなシナリオが繰り返し選択されるのを防ぐことができる。<BR>
<BR>
シナリオのタイトルは最初につけた名前であり、<BR>
シナリオの修正を繰り返しているので、<BR>
実際の中身とはかなり異なる場合もある。<BR>
<BR>
<FONT COLOR="#800080"><BR>
title アルバイト<BR>
{アルバイトでレイプされる}<BR>
end<BR>
select アルバイトでレイプされる<BR>
家庭教師のバイトをする<BR>
喫茶店でアルバイトする<BR>
出版社でアルバイトする<BR>
ワープロのアルバイトをする<BR>
アルバイトしてお客さんに温泉に誘われる<BR>
end<BR>
title デートに誘われる<BR>
{デートコース}<BR>
end<BR>
select デートコース<BR>
東京タワーに遊びに行く<BR>
ディズニーランドに誘われる<BR>
歌舞伎に誘われる<BR>
文楽に誘われる<BR>
映画に誘われる<BR>
ライブハウスに誘われる<BR>
テニスに誘われる<BR>
end<BR>
title 偶然<BR>
{偶然の出来事}<BR>
end<BR>
select 偶然の出来事<BR>
ライブハウスの帰りにアパートに泊まる<BR>
病院にお見舞いにいく<BR>
宗教団体の映画に誘われる<BR>
古本屋で話しかけられる<BR>
更衣室で下着ドロと会う<BR>
合コン<BR>
友達に紹介される<BR>
チアリーダーの代役を女友達に頼まれレイプされる<BR>
end<BR>
title 旅行1<BR>
{旅行先でレイプされる1}<BR>
end<BR>
select 旅行先でレイプされる1<BR>
バス旅行でバスに取り残されてレイプされる話<BR>
アルバイトで社員旅行する話<BR>
帰りの夜行列車でレイプされる話<BR>
旅行先でドライブに誘われレイプされる話<BR>
旅行先のロープウェーでレイプされる話<BR>
旅行さきのホテルで性感マッサージ<BR>
end<BR>
title 旅行2<BR>
{旅行先でレイプされる2}<BR>
end<BR>
select 旅行先でレイプされる2<BR>
旅行の帰り道車でラブホテルにつれこまれる<BR>
旅行先でマッサージしてもらう話<BR>
旅行先のホテルでナンパされてレイプされる話<BR>
旅行先の建物でレイプされる話<BR>
オリエンテーリングで二人レイプされる話<BR>
end<BR>
title 暴行<BR>
{暴行される}<BR>
end<BR>
select 暴行される<BR>
映画館で暴行される<BR>
映画館に泊まって痴漢にあう<BR>
建物で暴行される<BR>
買物で暴行される<BR>
帰りに後をつけられてレイプされる話<BR>
end<BR>
title 風俗<BR>
{風俗でレイプされる}<BR>
end<BR>
select 風俗でレイプされる<BR>
下着を売られる<BR>
テレクラで知り合った男にレイプされる<BR>
テニスのあと暴行される<BR>
学生服で盛り場に行き補導される<BR>
通販のセールスをする<BR>
親戚の女の子が原宿でナンパされる<BR>
end</FONT><BR>
<H3><LI>シナリオの分岐による自動生成</H3>
シナリオの分岐を用いて、いろいろなシナリオを自動生成する事が出来る。<BR>
例として、<BR>
<FONT COLOR="#800080"><BR>
喫茶店でアルバイトをする<BR>
</FONT><BR>
のシナリオについて記載する。<BR>
ソースコードを直接読むのはかなり分かりづらいが、<BR>
<BR>
「<FONT COLOR="#800080">喫茶店でアルバイトするきっかけが</FONT>」2通りの分岐<BR>
「<FONT COLOR="#800080">喫茶店での出来事</FONT>」4通りの分岐<BR>
<BR>
さらに喫茶店での出来事の各シナリオが、複数分岐している。<BR>
<FONT COLOR="#800080"><BR>
scene 喫茶店でアルバイトする<BR>
{章番号}<BR>
{喫茶店でアルバイトするきっかけ}<BR>
{喫茶店で面接のあとアルバイトを始める}<BR>
{章番号}<BR>
{喫茶店での出来事}<BR>
end<BR>
select 喫茶店でアルバイトするきっかけ<BR>
喫茶店の前にアルバイト募集の張り紙を見つける<BR>
女友達にアルバイトしないかと誘われる<BR>
end<BR>
select 喫茶店での出来事<BR>
お客さんにコーヒーをこぼす<BR>
遅刻でアルバイト代を引かれる<BR>
常連のお客さんに飲みに誘われる<BR>
常連のお客さんに待ち伏せされる<BR>
end<BR>
scene お客さんにコーヒーをこぼす<BR>
{お客さんにコーヒーをこぼしてしまう}<BR>
{お客さんに連れ出される}<BR>
end<BR>
select お客さんに連れ出される<BR>
車はラブホテルに入る<BR>
男のマンションにレイプされに連れ込まれる<BR>
マクドナルドにレイプされに連れ込まれる<BR>
カラオケボックスにレイプされに連れ込まれる<BR>
車は私のアパートの近くの公園で止まる<BR>
end</FONT><BR>
もう一つの例<BR>
<FONT COLOR="#800080"><BR>
合コン</FONT><BR>
<FONT COLOR="#800080"><BR>
scene 合コン<BR>
{章番号}<BR>
{合コンをする場合}<BR>
{友達の男の子}<BR>
{合コンで飲んだ後の帰り}<BR>
end<BR>
select 合コンをする場合<BR>
文化祭のコーラスのあと合コンをする<BR>
オリエンテーリングで帰りに合コンする<BR>
サッカーの試合の応援のあと合コンをする<BR>
end<BR>
select 合コンで飲んだ後の帰り<BR>
合コンのあとタクシーで横浜の山下公園に行く<BR>
合コンのあと公園でHのあとラブホテル<BR>
合コンのあと先輩のアパートに泊まりに行く途中で二人レイプ<BR>
end<BR>
scene 文化祭のコーラスのあと合コンをする<BR>
{文化祭でコーラスのコンサートをする}<BR>
{文化祭で時間をつぶす}<BR>
{女子大の食堂でコンパをする}<BR>
{章番号}<BR>
{二次会に居酒屋に誘われる}<BR>
{居酒屋で合コンする}<BR>
end<BR>
scene オリエンテーリングで帰りに合コンする<BR>
{大学の授業でオリエンテーリングがある}<BR>
{オリエンテーリングで男の子と一緒になる}<BR>
{おしゃべりしてオリエンテーリングで最後近くになる}<BR>
{最後はクラスごとに集まり帰る}<BR>
{章番号}<BR>
{居酒屋で合コンする}<BR>
{二次会にカラオケに誘われる}<BR>
end<BR>
scene サッカーの試合の応援のあと合コンをする<BR>
{先輩にサッカーの応援を頼まれる}<BR>
{章番号}<BR>
{テニスウェア姿で応援する}<BR>
{試合のあと合コンをする}<BR>
{章番号}<BR>
{二次会にカラオケに誘われる}<BR>
end</FONT><BR>
<BR>
<BR>
<H3><LI>シナリオの組み込みによる手法</H3>
シナリオのすべてを自動生成させるのは、かなり難しい。<BR>
いくつかのシナリオについては、ストーリをあらかじめ組み込んである。<BR>
<BR>
七度言語では、組み込みシナリオのストーリの展開は自分で考えて作らないといけない。<BR>
<BR>
将来はメタ言語を作成して、これらのシナリオのソースコードを自動出力させるようにしたい。<BR>
<BR>
以下の例はかなり冗長で無駄の多いコードではあるが、もっと簡約化したコードに書き換えることも可能である。<BR>
手作業で簡約化を行うのはかなり大変なので、<BR>
コードの簡約化についてはも将来は自動的に行うようにしたい。<BR>
<BR>
例<BR>
<FONT COLOR="#800080"><BR>
select 親戚の女の子が原宿でナンパされる<BR>
親戚の女の子が原宿でナンパされ着替えて相手にされない<BR>
親戚の女の子が原宿でナンパされ着替えて相手にされないのでスカートを短くする<BR>
親戚の女の子が原宿でナンパされ私も着替える<BR>
親戚の女の子が原宿でナンパされ私も着替えカラオケで二人レイプ<BR>
親戚の女の子が原宿でナンパされカラオケに呼び出される<BR>
end<BR>
select 親戚の女の子が上京する<BR>
親戚の女の子がディズニーランドに遊びに来る<BR>
親戚の女の子がテレビの公開放送で上京する<BR>
end<BR>
scene 親戚の女の子が原宿でナンパされ着替えて相手にされない<BR>
{章番号}<BR>
{親戚の女の子が上京する}<BR>
{章番号}<BR>
{親戚の女の子と原宿でナンパされる}<BR>
{章番号}<BR>
{親戚の子が駅で着替える}<BR>
{親戚の子が着替えると相手にされない}<BR>
{私も学生服に着替える}<BR>
{親戚の子と間違えられてカラオケに誘われる}<BR>
end<BR>
scene 親戚の女の子が原宿でナンパされ着替えて相手にされないのでスカートを短くする<BR>
{章番号}<BR>
{親戚の女の子が上京する}<BR>
{章番号}<BR>
{親戚の女の子と原宿でナンパされる}<BR>
{章番号}<BR>
{親戚の子が駅で着替える}<BR>
{親戚の子が着替えると相手にされない}<BR>
{買い物をしてからもう一度ロッテリアに行く}<BR>
{親戚の子とカラオケでレイプ}<BR>
end<BR>
scene 親戚の女の子が原宿でナンパされ私も着替える<BR>
{章番号}<BR>
{親戚の女の子が上京する}<BR>
{章番号}<BR>
{親戚の女の子と原宿でナンパされる}<BR>
{章番号}<BR>
{親戚の子がトイレでフェラチオする}<BR>
{章番号}<BR>
{親戚の子がブランド品の買い物をする}<BR>
{私も学生服に着替える}<BR>
{ロッテリアのトイレで二人フェラチオさせられる}<BR>
{親戚の子と間違えられてカラオケに誘われる}<BR>
end<BR>
scene 親戚の女の子が原宿でナンパされ私も着替えカラオケで二人レイプ<BR>
{章番号}<BR>
{親戚の女の子が上京する}<BR>
{章番号}<BR>
{親戚の女の子と原宿でナンパされる}<BR>
{章番号}<BR>
{親戚の子がトイレでフェラチオする}<BR>
{章番号}<BR>
{親戚の子がブランド品の買い物をする}<BR>
{私も学生服に着替える}<BR>
{ロッテリアのトイレでフェラチオさせられる}<BR>
{親戚の子がミニスカートでロッテリアに来ている}<BR>
{親戚の子とカラオケでレイプ}<BR>
end<BR>
scene 親戚の女の子が原宿でナンパされカラオケに呼び出される<BR>
{章番号}<BR>
{親戚の女の子が上京する}<BR>
{章番号}<BR>
{親戚の女の子と原宿でナンパされる}<BR>
{章番号}<BR>
{親戚の子が駅で着替える}<BR>
{親戚の子がカラオケから電話してくる}<BR>
{女友達はカラオケ店にもういない}<BR>
{ラブホテルに迎えに行き二人レイプ}<BR>
end</FONT><BR>
<H3><LI>官能描写の生成手法</H3>
官能小説の官能描写部は、どれでもみんな同じような文章である。<BR>
同じような文章が延々と続くのを書くのは、書き手にとっても手間がかかるだけである。<BR>
官能描写くらいだったら、簡単な手法でも、それらしい描写は自動生成できる。<BR>
官能描写部もシナリオ生成部と同じ七度言語を使用して記述している。<BR>
文章をより細かく分割し、毎回違う文章が生成されるように工夫している点が異なるだけである。<BR>
<BR>
基本的手法は、<BR>
<BR>
<FONT COLOR="#0080FF">基本的なテンプレートの文章を複数用意する。<BR>
<BR>
テンプレートの文章を細かい文章単位に分割する。<BR>
<BR>
文章単位が毎回違う表現で生成されるようにする。</FONT><BR>
<BR>
という手順で行われる。<BR>
<BR>
また、特定の性行為テクニック等を一つか、二つ程度<BR>
強調して盛り込んで、文章に毎回異なる印象を与えるようにしている。<BR>
<BR>
服装、場所、男性の性格などの指定により、<BR>
基本的なテンプレートや、性行為テクニックは別途に選択される。</OL>
<BR>
</BODY>
</HTML>