生成AIを活用してライトノベル(小説)を作成してみた
はじめに
Chat GPTやClaude 3などを中心に生成AIが流行しており、それを活用した小説などが出てくるようになってきている。生成AIを活用した作品の応募は、日経「星新一賞」が先進的に認めてきた経過があり、受賞作品も生まれてきている。(筆者も同賞に応募した経験はあるが、生成AIの使用経験はない。)芥川賞受賞作品での使用が、最近では話題になったことも記憶に新しい。
ただし、筆者が観測する範囲では、短編などの小説が多く、長編作品で目立つものも少ない。
そこで筆者はある程度の長編(50,000文字以上を目標)となるライトノベルを書かせてみようと実践してみた内容を本稿ではまとめる。
使用した生成AI
主にGemini 1.5 Proを使用した。補助として、chat GPTである。Claude 3は使用していない。
Gemini 1.5 Proはトークン量が1,048,576あるので、継続させる文章を書かせるのには適している印象であった。Gemini 1.5 flashは文章が単調になりすぎるので、使用しなかった。
生成にあたって重要視したこと
文章の生成に役立てるということを念頭に置いた。生成AIを活用した文章の生成時には、プロンプトづくりが肝になることが多く、今回もそこを最重要視した。
これらについては、下記の記事などを参照した。
完成した作品
完成した作品は、以下で発表している。
ジャンルはSFでサイバーパンクというかバイオパンク的なアクション中心のライトノベルとなっていて、話の筋は王道であるボーイ・ミーツ・ガールである。ご興味があれば読んでみてください。
実践編
以下は、小説を生み出した過程を順序だてて説明していく。
企画/案出し
まず企画である。自分が以前書いたことがある小説などのあらすじを生成AIに読ませ、どういった作品を作ればよいかを提示させた。
いくつか出てきたが、自分が興味のあるサイバーパンク的な企画を採用した。
プロンプトの生成から企画の採用まで、だいたい15分で終わった。
プロット作成/登場人物
プロットについては過去の経験上、生成AIはあまり得意ではないとことと、後ほどプロンプトを自分でコントロールしないといけないことを踏まえ、自分で大筋を考えた。
前半部はなるべく詳細にしていたが、後半は話の流れで変更になるかもしれないため、おおまかな内容に留めた。ここにはそれなりに時間をかけた。
プロットを作成しつつ、並行して登場人物も提案させた。名前や年齢、職業などをいくつかを採用したが、詳細なプロフィールなどは自分で記載した。
個人的にプロットを考えている時がおもしろいので、プロットについては、ほぼ生成AIに相談などはしていない。
プロンプト作成
生成AIの活用においては、一番の肝となるプロンプト入力である、ということが主流であり、今回もそれを実践した。
プロンプトによって、どんな文体の文章がどの程度の量で出てくるかが決まってくる。
具体的なプロンプトについては、まず「生成AIが何をすべきか」を書かせた。そこに「参照する文体(自分の書いた小説を読ませることを基本とした)」、「登場人物」、「単語」などの項目を挿入し、最後に「書かせたいシーン」を入れた。文字数については、2000文字~3000文字書く、とプロンプトには記載したが、実際に生成されるのは8割程度(1600文字~2400字)であった。
プロンプトの文章量は、約5000文字だったと記憶している。
思った文章が生成できるようになるまでには、四苦八苦しており、3時間くらいかかった。
文章の作成
プロンプトが決まれば、あとはプロットに沿ってどんどん生成をしていった。
ある程度満足する文体であればOKとし、前後関係がおかしい点や、細かい間違いなどはすべて無視をした。あまりに文体がおかしいと感じた場合は、校正をさせていた。
インプットの生成とアウトプットの管理が主なので、モジュール製造の管理をしているような感覚だった。全体をくみ上げている印象。
結局、6章構成で100000文字程度の初稿が生まれた。予定では70000文字くらいかなと思っていたので、意外と多かった。
以前の生成AIでは「勝手にいい話にもっていこうとする」傾向が若干あったが、プロットでプロンプトをコントロールしていたせいか、今回の場合はあまり見受けられなかった。
たまに上限というかで、生成を制限される。その際には推敲をして時間をつぶして、解除になるのを待っていた(数時間から一日程度)。
推敲
最も時間がかかったのは、推敲である。
主にやっていたことを以下にまとめる。
・ルビを振る単語を生成させて、文章に埋めていった。自分でルビを決めた個所もある。作品を完成した場合、noteで公開しようと企画段階で計画していたので、note形式で記載させた。というよりワード形式でルビを振るために生成するのが手間だったので(不可能ではない)、今回はあきらめた。ただし、たまにnote形式で記載しない場合があるので、最終的に目視でチェックしていた。
・無駄な文章が多いので、基本的にガンガン削除していく。動作の描写はまだしも、感情の描写はチープな表現が多いので、少し検討が必要であった。戦闘シーンは意外としっかり描いてくる。
・矛盾点などがあれば、修正していった。シーンによっては登場人物がまだ出ていないはずなのに、出現することもあった。性別が変わる場合もあって、厄介だった。
・物理法則を無視してくることもあるので、修正した。
・セリフがおかしい場合、直した。語尾が単調になる傾向もある、と感じた。
・シーンをつぎ足したところもある。その場合は、生成AIに文章を作らせ、挿入していた。
・情報の提示(順番)、ということの判断が難しく、伏線など張ることが少し困難な印象を受けた。
・掌の形状をした人形ロボットが出てくるが、あまりうまく表現してくれなかった。イレギュラーな形状などは不得意な様子である。
結局何度も読み直す必要があるため、非常に時間のかかる作業であった。
文字数は100000文字から80000文字程度(2割くらいは自分で書いた)にまで減少していた。削除だけだと4割くらいに達するのではないか。
遊んだこと
遊びで冒頭にエピグラフを挿入しようと思い、プロンプトで意味不明な文書を書けと指示しまくって、出力された文章を継ぎ接ぎした。
ビートニクとかを意識させると、途端口調が荒くなるのは面白かった。
生成や推敲の息抜きにはなる気がした。
完成
完成後には、何度か読み直して修正していった。
誤字など発見した場合は、自分で付記して書き換えた個所が大半であった。
基本的に、生成AIに書かせた文章に大きな間違いはなかった。
まとめ
出来上がった文章は、自分で書く人力の文章にかなり近い気はした。
創作活動する際に、文体を読み込ませ、シーンを挿入するなどには十分に使えるような気がした。
また、苦手なシークエンスなど(バトルシーンや会話シーン)を書かせる補助での活用もできるのではないか。
全編で生成AIを活用してライトノベルを書くにあたっては、下記の点が重要であると感じた。
・基本的に文章を削除する作業が大半。
・プロットをしっかり考えておく。
以下は利点である。
・初稿の出来上がりとしてはかなり早い。
・誤字脱字が圧倒的に少ない。校正ができるのもよい。(ただし、全文はできなかったので、パーツで分ける必要がある)。
以下は不利と感じた点である。
・たまにプロットから逸れていく、知らない人(キャラ)がいきなり出てくる、など手で書く時には出てこない現象に遭遇する。対処方法に慣れてくれば、そんなに苦ではない気がするけど、まあ、という感じ。
Claude 3のほうが、今回使用した生成AIよりも、日本語の文章が流暢だという人もいるので、そっちも試してみてもよかったなと思った。
基本的に生成AIは高性能化が日進月歩で進んでいるので、今後も活用する人は増えていくであろうと思われるが、個人的に実践してみたものである。
参考にしてもらえれば幸いである。