第二章 第一話 Pythonによる「なろう系粗筋ジェネレータ」の開発を志す
みなさんこんにちはプリンです。おひさしぶりです。
2022年、2月5日にスタートした、「Pythonに「なろう系タイトルジェネレータ」を移植する」という、この企画ですけど、2月7日にはアラカタ完成し、その後飽きてしまったため(笑)、しらばらく放置しておりました。(3日坊主)
そしてその後、連載中だった「異世界商店ベルゼブル」を無事完結させて、次回作の検討に入っています。そこで気づいたのですが、小説にとってタイトルって、それほど重要なものではない、むしろ後回しにするべきものかもしれないです。
では、小説を書くにあたって、タイトルよりも重要なものは何か、というのを考えた結果、「ログライン」、もしくは「粗筋」だと考えました。
今の私には、「ログライン」をランダムに生成するような、すご技は難しいので、ひとまず「粗筋ジェネレータ」を作ってみることにしました。
「粗筋ジェネレータ」。これはどういうものかというと、何枚かのカードを引いて、それをくっつけて、ストーリーを作ってしまおうというものです。「いつどこでだれがなにをしたゲーム」っていうのがありますね。あれをPythonでやってしまおうというものです。
ただし、せっかくPythonを使うのだから、「いつ」、「どこで」、「だれが」、「なにをした」、という4枚のカードだけではなく、これらのカードの種類を自由に増やせるように、工夫したプラグラムにしたいと思っています。
当面の目標は、「私がこれまでなろうで完結させた主要な作品の、粗筋を生成可能なもの」、です。
「冒険者の格差が問題となった異世界で、ベレー帽の少女が、社長とともに、ギルドの問題を解決する」
(追放ざまあ110番)
「ゲーム内仮想世界で、かわいい猫耳少女が、マスターである男性とともに、商人となってお店を開く」
(異世界商店ベルゼブル)
「リアル世界でトラブルを起こしたニート主人公が、異世界の牢獄に閉じ込められるが、何らかのトラブルによって過去に飛ばされる。そして過去世界のラスボスを倒す」
(コンビニ転生)
「未来の地球で、機械の大群に殺された主人公が、霊体となって機械を乗っ取る。そして人類を勝利に導く」
(人類反撃の狼煙)
「現代の都会の町で、引っ込み思案の少女が、幽霊としてよみがえった天才小説家とともに、作家デビューを目指して頑張る」
(MとRの物語)
結構複雑な粗筋で、「いつどこでだれがなにをした」で強引にやろうとすると、あまり汎用的には使えない、お遊び程度のプログラムとなってしまいそうです。なので、次のような構文を処理できるようなものにしようかな、と考えました。
粗筋ジェネレータ、生成構文サンプル。
「%とある場所%で、%とあるキャラ%が、%とあるキャラ%とともに、%なにかする%」
「%とあるキャラ%が、%なにかされる%が、%なんらかの原因%によって%なにかされる%。そして%とあるキャラ%を倒す」
「%とある場所%で、%とあるキャラ%が、%なにかする%。そして%なにかする%」
このような構文を定義して、それを解釈させるためには、「構文解析」、というものが必要となりますが、私はこれまで、ちゃんとした構文解析を行うプログラムを、作ったことはありません(汗。なので、そこでものすごく時間がかかることになると思います。が、Pythonの勉強も兼ねて、少しずつ更新していきたいと思っています。
今回はここまでです。次回は実行画面のレイアウトの仮決めと、構文定義ファイルの読み込みまでを、行いたいと思っています。
では次回またお会いしましょう。




