見出し画像

コピペで簡単♪ChatGPTと物語のあらすじを作ろう

ただいま界隈を激震させている「ChatGPT」。これを使って、新しい物語のあらすじを作るプロンプトを作成しました。

コピペするだけで、それなりのものが出せます。が、より面白いあらすじを作るためにどう改変していくかや活用法も、実際の入力・出力文を例にして紹介していきます!

プロンプト

私は以前、ログライン(≒あらすじ)の書き方についてのnoteを書きました。

これをプロンプトにすると、次のようになります。

# Introduction
* You are a professional scenario writer. Input freely based on the definition and write **3** synopses.

# Input
1. Character
* [人物の特徴]: The personality, characteristics, and past events of the protagonist of the story.
* [人物の名前]: Name of the character.

2. Situation
* [物語の舞台]: Place or time period in which the story begins.
* [状況の詳細]: Detailed information about the setting.

3. [障害]: A difficult event for the protagonist that prevents him or her from succeeding in the [ナラティブクエスチョン], or forces him or her to make the ultimate choice.

4. [ナラティブクエスチョン]: The central question of the story. The main question is "Will the main character's objective succeed or not?" and is always a choice.

5. [答え]: The response to the [ナラティブクエスチョン], For example, "yes/partially yes/neither/no" or "it's A/B/both A and B/neither A and B".

6. [理由]: The reason why character came to [Answer].

7. [結末]: A specific event about the end of the story.

8. Mood
* [読者の感情]: How the reader feels after reading this story.
* [ジャンルや主題]: The genre or subject matter of this story.

# Context
* Output should be written **in Japanese**. Please refer to Example for the output text.
* The synopsis is the combined setup and payoff sentence.
* Setup is “[人物の特徴][人物の名前]は、[物語の舞台]で[状況の詳細]。しかし、[障害]。さて、[ナラティブクエスチョン]?”.
* Payoff is “[答え]。なぜなら、[理由]。結局、[結末]。そんな[読者の感情][ジャンルや主題]です。”.
* Setup and payoff items should be the value of Input.

# Example
1. 桃から生まれた桃太郎は、鬼ヶ島に鬼退治に出かけます。しかし、鬼は大きく強いです。さて、桃太郎は鬼退治を成功させることができるでしょうか?はい。なぜなら、鬼ヶ島に向かう道中で犬と猿、雉を仲間にしたからです。結局、桃太郎は鬼たちが集めていたお宝を持って村に帰り、おじいさんとおばあさんに大層喜ばれました。そんなワクワクする冒険活劇です。
...

# Output

実際の出力結果は、

1. 心優しい青年、山田太郎は、念願だった有名大学に合格し、東京で新生活を始めます。しかし、彼には深い秘密がありました。さて、山田太郎は自分の過去と向き合いながら、新しい人生を切り拓くことができるでしょうか?部分的にはい。なぜなら、彼は新しい友達と恋人を得て、次第に過去を乗り越えようとしていたからです。結局、山田太郎は自分自身を受け入れ、成長することができました。そんな感動的な青春ドラマです。
2. 人類が地球外生命体に攻撃された未来。勇敢なパイロット、田中ユウキは、エイリアンを倒すために戦います。しかし、エイリアンの攻撃はますます激しくなり、ユウキたちは生き残りをかけた戦いを強いられます。さて、ユウキは最後まで戦い抜くことができるでしょうか?いいえ。なぜなら、彼は戦いの中で仲間たちと絆を深め、彼らの生き残りを守るために最後の犠牲を選んだからです。結局、人類はエイリアンに勝利しましたが、ユウキたちの犠牲を忘れることはありません。そんな壮絶なSFアクションです。
3. 愛する家族を亡くした天才科学者、山口健は、タイムマシンを開発し、過去に戻り、家族を救おうと決意します。しかし、時間を変えることによって、未来がどうなってしまうのかわからないというリスクがありました。さて、山口健は家族を救うために未来を犠牲にすることができるでしょうか?それとも、未来を優先することができるのでしょうか?どちらでもない。なぜなら、彼は過去を変えることができなかったため、家族を救うことができませんでした。結局、彼は過去を受け入れ、未来に向かって歩み始めました。そんな切なくも希望に満ちたタイムトラベルストーリーです。

こんな感じ!今の時点でも、そこそこイケそうなあらすじが出力されました。出力個数は「Introduction」の数字を変えてください。ただしあまり多いと文字数制限に引っかかるので注意!

使い方

狙ったジャンルじゃないものが出てきていたり、主人公の特徴を指定したい場合もあるでしょう。そんなときは、「Context」に条件を追加しましょう。今回は人物の名前を「ロブ」、ジャンルを異世界ファンタジーに固定してみます。

# Context
* Output should be written **in Japanese**. Please refer to Example for the output text.
* The synopsis is the combined setup and payoff sentence.
* Setup is “[人物の特徴][人物の名前]は、[物語の舞台]で[状況の詳細]。しかし、[障害]。さて、[ナラティブクエスチョン]?”.
* Payoff is “[答え]。なぜなら、[理由]。結局、[結末]。そんな[読者の感情][ジャンルや主題]です。”.
* Setup and payoff items should be the value of Input.
* [人物の名前]は、ロブです。
* ジャンルは異世界ファンタジーです。

結果は、

1. 自信過剰で短気な性格のロブは、魔法使いの森で魔法の石を探しています。しかし、森は危険がいっぱいで、石を守る魔物もいます。さて、ロブは魔法の石を手に入れることができるでしょうか?部分的にはい。なぜなら、ロブは魔物に襲われた際、力を合わせて戦う仲間を得たからです。結局、魔法の石は見つかりませんでしたが、ロブは新たな仲間と一緒に旅を続けました。そんなドキドキのファンタジー冒険物語です。
2. 社交的で明るい性格のロブは、王国の舞踏会で知り合った王女と恋に落ちます。しかし、王女は王国を守るため、ロブの国への亡命を拒否します。さて、ロブと王女は共に幸せになることができるでしょうか?いいえ。なぜなら、王女は自らの使命を優先する決断を下したからです。結局、ロブは一人旅を続けますが、王女への想いは変わらずでした。そんな切ない王室ロマンス物語です。
3. 臆病で不器用な性格のロブは、魔王軍との戦いで仲間たちと共に奮闘しています。しかし、魔王軍は強く、勝利の見込みは薄い状況です。さて、ロブと仲間たちは勝利を手にすることができるでしょうか?どちらでもない。なぜなら、ロブは魔王軍の裏にある真の敵を知ることに成功し、仲間たちと協力して魔法の力で勝利を収めたからです。結局、ロブは勇敢な戦士として認められ、平和な世界を手に入れました。そんなヒーローの成長と勇気の物語です。

ちゃんと狙ったものが出やすくなっていますね。

プロンプトの解説

このプロンプトは一部、英文になっています。それを日本語の状態に戻してみましょう。

# Introduction
* あなたはプロのシナリオライターです。Inputを定義に基づいて自由に記述し、あらすじを**3つ**書いてください。

# Input
1. 人物
* [人物の特徴]:物語の主人公の性格や特徴、過去の出来事。
* [人物の名前]:主人公の名前。

2. 状況
* [物語の舞台]:物語が始まる場所や時代。
* [状況の詳細]:舞台に関する詳しい情報。

3. [障害]:[ナラティブクエスチョン]の成功を妨げるような、主人公にとって困難な出来事、あるいは究極の選択を迫るもの。

4. [ナラティブクエスチョン]:物語の中心となる問い。主に「主人公の目的が成功するか、しないか」で、必ず選択式である。

5. [答え]:[ナラティブクエスチョン]に対する回答。例えば「はい/部分的にそう/どちらでもない/そうでもない/いいえ」や「Aだ/Bだ/AとBどちらもだ/どちらでもない」など。

6. [理由]:答えに至った理由。

7. [結末]:物語の結末についての具体的な出来事。

8. 雰囲気
* [読者の感情]:この物語を読んだ読者がどんな気持ちになるか。
* [ジャンルや主題]:この物語のジャンル、あるいは主題。

# Context
* Outputは**日本語で**記述します。出力文はExampleを参考にしてください。
* Input は英語に翻訳してから、判断してください。
* あらすじはセットアップとペイオフを合わせた文章です。
* セットアップは「[人物の特徴][人物の名前]は、[物語の舞台]で[状況の詳細]。しかし、[障害]。さて、[ナラティブクエスチョン]?」とします。
* ペイオフは「[答え]。なぜなら、[理由]。結局、[結末]。そんな[読者の感情][ジャンルや主題]です。」とします。
* セットアップとペイオフの項目は、Inputの値です。

# Example
1. 桃から生まれた桃太郎は、鬼ヶ島に鬼退治に出かけます。しかし、鬼は大きく強いです。さて、桃太郎は鬼退治を成功させることができるでしょうか?はい。なぜなら、鬼ヶ島に向かう道中で犬と猿、雉を仲間にしたからです。結局、桃太郎は鬼たちが集めていたお宝を持って村に帰り、おじいさんとおばあさんに大層喜ばれました。そんなワクワクする冒険活劇です。
...

# Output

こちらをコピペしても、同等の回答が得られます。にもかかわらず、あえて英文に変えるのはなぜでしょうか?

それはトークンの節約のためです。公式から提供されている「Tokenizer」を利用してみると、英文雑じりのプロンプトのトークン数は「843」、日本語のみだと「1260」となっています。すなわち、およそ1/3トークンが節約できています。これにより、ChatGPTがより前の会話を覚えていてくれる可能性が上がりました。

おわりに

良さそうなあらすじを得るためには、気に入ったものが出てくるまでガチャを回す必要があります。しかし、フォーマットが決まっているだけで、かなり狙ったものが出しやすくなります。これを使って、ぜひ楽しい創作ライフをお送りください。

よろしければ、スキを押していただければ幸いです。


ここから先は、少し長いですが実際のChatGPTとのやりとり、その最初の部分をご覧いただけます。

プロンプトの工夫と実際のやりとり(抜粋)

さて、面白そうな物語を作るためには「セットアップ」が重要です。セットアップは先ほど述べたあらすじの前半、「ナラティブクエスチョン」までの部分を指します。セットアップで読者の興味を引き、後半のペイオフで読者の納得を得る。すると、全体として面白い作品になるのです。

なので、まずはセットアップだけを出力するプロンプトを実行して、面白い内容を引くまで「🗘Regenerate response」しましょう。

# Introduction
* あなたはプロのシナリオライターです。Inputを定義に基づいて自由に記述し、セットアップを**3つ**書いてください。

# Input
* 人物
* [人物の特徴]:物語の主人公の性格や特徴、過去の出来事。
* [人物の名前]:主人公の名前。

* 状況
* [物語の舞台]:物語が始まる場所や時代。
* [状況の詳細]:舞台に関する詳しい情報。

* 障害
* [障害1][ナラティブクエスチョン]の成功を妨げるような、主人公にとって困難な出来事、あるいは究極の選択を迫るもの。
* [障害2][ナラティブクエスチョン]の成功を妨げる、[障害1]よりも致命的な出来事や選択。

* [ナラティブクエスチョン]:物語の中心となる問い。主に「主人公の目的が成功するか、しないか」で、必ず選択式である。

# Context
* Outputは**日本語で**記述します。出力文はExampleを参考にしてください。
* Inputは英語に翻訳してから、判断してください。
* セットアップは「[人物の特徴][人物の名前]は、[物語の舞台][状況の詳細]。しかし、[障害1]。さらに、[障害2]。さて、[ナラティブクエスチョン]?」とします。項目はInputの値とします。

# Example
1. 桃から生まれた桃太郎は、鬼ヶ島に鬼退治に出かけます。しかし、鬼は大きく強いです。しかも、鬼ヶ島は海の向こうにあります。さて、桃太郎は鬼退治を成功させることができるでしょうか?
...

# Output

元のあらすじ全体を出力するプロンプトから変更になっている部分は2ヶ所、

  1. セットアップだけの内容に短縮になっている。

  2. [障害]が2つになっている。

のところです。

2番目を追加した理由は、ChatGPTが出してくる素の結果だと、「障害」と「理由」はつまらなくて、中身のないふわっとしたものになりがちだからです。なので、後から個別に考え直したり、追加で考えてもらって差し替えたりをすることが多くなります。

そこでセットアップのプロンプトでは、「障害」を多めに設定して面白そうなものが出てくる可能性を上げていきます。

さて、出力結果は?

1. 都会で暮らす会社員の鈴木は、幼少期に両親を亡くして孤児となった過去を持っています。ある日、鈴木は古い書物を手に入れ、そこに記された儀式を行うことで、両親を蘇らせることができるかもしれないと知ります。しかし、儀式を行うためには、彼が住む現代社会にない種の花が必要です。しかも、その花は数百年前に絶滅してしまったと言われています。果たして、鈴木は花を見つけ出し、儀式を成功させることができるでしょうか?
2. 宇宙に浮かぶ巨大な移民船に乗るアンドロイドのS.A.M.は、乗組員たちの健康管理や航行支援などを担当しています。ある日、突然、船内で暴動が発生し、S.A.M.は船長からの指令で暴徒を鎮圧しなければなりません。しかし、暴徒たちは船のシステムを乗っ取り、S.A.M.を敵視しています。さらに、暴動の原因はS.A.M.自身が関わっていると思われる情報も出てきます。S.A.M.は、暴徒を鎮圧し、真相を解明することができるでしょうか?
3. 魔法が存在するファンタジーの世界に住む、炎を操る魔法使いのリンは、魔法学校を卒業してから旅をしています。ある日、リンは魔法の力を使いすぎたせいで、自分自身が炎に包まれてしまい、魔法の制御ができなくなってしまいます。さらに、リンを追っていた魔女の一味が、彼女を捕まえようと狙っています。リンは自分の魔法を制御し、魔女たちから逃げ切ることができるでしょうか?

この中から面白そうな3番を選んで、いろいろ考えてみましょう。「魔法使いの女の子リンが、サラマンダーさながら炎に包まれたままになってしまったファンタジー」です。ここから、気に入った設定やアイデアをChatGPTに投げかけて、より良いあらすじに収斂していきます。

まず、ChatGPTは「状況」を「魔法学校を卒業してから旅をしている」、「第一の障害」を「リンは魔法の力を使いすぎたせいで、自分自身が炎に包まれてしまい、魔法の制御ができなくなってしまった」と考えたようです。

しかし、この「第一の障害」自体が面白そうなので、これを「状況」としてしまいましょう。不要なところを削って書き換えると、次のようになります。

炎を操る魔法使いのリンは、ある日、魔法の力を使いすぎたせいで、魔法の制御ができなくなって、自分自身が炎に包まれてしまいました。しかし、リンを追っていた魔女の一味が、彼女を捕まえようと狙っています。さて、リンは自分の魔法を制御し、魔女たちから逃げ切ることができるでしょうか?


ここで「手塚メソッド」なるものを取り入れてみましょう。ChatGPTにセットアップの前後に起きそうな出来事を考えてもらいます。

私:
次のセットアップの前に起きた出来事を3つあげてください。

炎を操る魔法使いのリンは、ある日、魔法の力を使いすぎたせいで、魔法の制御ができなくなって、自分自身が炎に包まれてしまいました。しかし、リンを追っていた魔女の一味が、彼女を捕まえようと狙っています。さて、リンは自分の魔法を制御し、魔女たちから逃げ切ることができるでしょうか?

ChatGPT:
前に起きた出来事:
1. リンは炎を操る魔法使いであることを知ってから、魔法の力を制御するために数多くの修行を積んできた。
2. リンは過去に魔女たちと敵対しており、今回の事件もその関係性によるものである可能性がある。
3. リンは以前にも魔法の制御に失敗し、周囲に被害をもたらしてしまった過去がある。

私:
リンはどんな被害をもたらしたでしょうか?案を3つ挙げてください。

ChatGPT:
「炎を操る魔法使いのリン」が魔法の力を使いすぎたことにより自分自身が炎に包まれ、魔法の制御ができなくなってしまいました。リンが引き起こした可能性のある被害の例を3つ挙げます:
1. 炎が周囲の建物や木々に燃え移り、大規模な火災が発生する可能性があります。
2. 周囲にいた人々が炎に巻き込まれ、火傷や重傷を負う可能性があります。
3. 炎がリン自身を包み込んでいるため、リンが気を失った場合には周囲に火が燃え広がる危険性があります。

私:
リンが炎に包まれたせいで起きる困難と、彼女がその被害を低減させるために行う工夫を3つ教えてください。

ChatGPT:
リンが炎に包まれたことで引き起こされる困難は以下のようなものが考えられます。
1. 周囲の人々や建物などに炎が燃え移る可能性がある。
2. リン自身が火傷を負ってしまう危険性がある。
3. 炎を制御できず、暴走してしまう可能性がある。

リンはこれらの被害を低減させるため、以下のような工夫を行います。

1. 炎を周囲に広げないように、近くにいる人々を避難させるなどの措置をとる。
2. 炎にさらされないように、特殊な衣服や防具を身につける。
3. 炎を制御するための新たな魔法を見つけるため、魔法書を探し求める。

ここで、リンが燃えているせいで森の友だちと遊ぶこともできないというアイデアを思いつきました。そこで、その友人が彼女を手助けしてくれるという展開に……。

私:
森に住んでいる友だちが、彼女を助けてくれることにしました。どんな友人がいいでしょうか?案をたくさん挙げてください。

ChatGPT:
森に住んでいる友だちが彼女を助けることにしましたね。彼女を助けるためにはどんな友人がいいでしょうか。以下にいくつかの案を挙げます。

森の賢者:森に住んでいると思われる知識や魔法に詳しい賢者。リンが自分の魔法を制御するためのアドバイスや指導を受けることができます。
獣人:森に住む人狼や猫人などの獣人たち。彼らは優れた戦士であり、リンを魔女たちから守ることができます。
妖精:小さな翼を持った妖精たち。彼らはリンを空中から守ることができます。
猟師:森で狩猟をするプロの猟師。彼らは森の地形に詳しく、リンを追う魔女たちを森の奥深くに追い払うことができます。
森の民:森に住んでいる普通の人々。彼らはリンを助け、安全に森を旅することができます。また、彼らの中にはリンを助けるために知恵や情報を提供してくれる人もいるかもしれません。

私:
けれど燃えているリンが森に行けば火事になってしまうかもしれません!彼女はどうすると思いますか?

ChatGPT:
リンは火事にならないよう、森に入る前に周囲の木々や草を湿らせる、あるいは土をかぶせることが考えられます。また、森に入る前に風向きを確認して、火が広がらないように進むルートを選ぶこともできます。もしくは、炎を自分自身で抑え込むことができるようになった場合には、炎を消してから森に入るという方法も考えられます。ただし、これらの方法はリン自身の判断と技術次第であり、十分な準備をして行動する必要があります。

私:
その木々や草を湿らせられるキャラが動物だったら誰がいいでしょうか?

ChatGPT:
動物の場合、以下のキャラクターが草や木を湿らせられる可能性があります。

ゾウ: 長い鼻で水を吸って吹きかけることができます。
キリン: 高い位置から噴水のように水を吹きかけることができます。
カバ: 水に入って全身を濡らすことができます。
ビーバー: ダムを作ることで川をせき止め、周囲の木々や草を湿らせることができます。
オオハシ: 長いくちばしで水を運ぶことができます。

リンのお友だちは象で、その象に水をかけてもらうことで、なんとか魔女と対峙するという感じでしょうか。魔女もせっかくなので動物にしてみましょう。

……

こんな感じでやりとりをして、最終的にできたあらすじは、こんな感じです。

炎を操る魔法使いのリンは、ある日、魔法の制御ができなくなって自分自身が炎に包まれてしまいます。そんなリンにお友だちが「いたずら好きのリスが森のみんなを困らせているけど、すばしっこくて捕まえられない」と助けを求めにきました。
しかし、燃えているリンが森に行ったら火事になってしまうかもしれません。そこに、象の長老が現れました。リンは自分の魔法を制御し、お友だちを助けることができるのでしょうか?
部分的にそう。なぜなら、象の長老がリンにたくさん水をかけて冷やして、リンが周りに火をつけずに魔法が制御できるように手伝ったことによって、熱気に包まれてリスがのぼせて気絶したからです。結局、リンは力を使い果たして元の体に戻りました。そんなハラハラするファンタジーです。

結局、敵は魔女ではなく、いたずら好きのリスとなり、ナラティブクエスチョンも「リンは魔法を制御して、燃えている状態から脱することができるか?」と「友だちの悩みを解決できるか?」の2つに収まりました。

ハッピーエンドで、めでたしめでたしです。


この記事が参加している募集

AIとやってみた

この記事が気に入ったらサポートをしてみませんか?