AIと長編小説を書いていると、前に決めた設定がだんだんぼやけていきます。この問題を解くためにTypeTakの設定辞典「ワールド」をつくりながら、悩んだことや選んだことを1回ずつ書いています。
物語は流れる
設定資料の設定には時点があります。1話の主人公と50話の主人公とでは、年齢も、知っていることも、そばにいる人も違います。「いつの設定なのか」を一緒に書いておかないと、設定資料はすぐに前後が入り混じってしまいます。
前回までで、設定を持つ形を決めました。人物・場所のような対象はノードに、時代・原理のような土台は文書に、事件・場面のような物語はボードに持たせました。ところが、原稿に沿って設定を埋めていくほど、形だけでは解けない問題が見えてきました。物語は流れる、ということです。
ノードが散らかった
小説はひとつの場面にとどまってはいません。7歳だった人物は成長し、隠していた秘密は明かされ、同盟は崩れます。原稿を1章ずつ整理していくと、章ごとにその人物について新しくわかったことがノードにたまっていきます。
たまること自体は問題ありませんでした。問題はたまり方です。人物の性格を書く欄に、ある日森から戻って誰と何をした、といった場面が混ざり込んでいきました。そのノードを読んでも、この人物がもともとどんな人なのか、いまはどうなのか、いつ何が変わったのかがわかりません。
1章ずつ整理してみるテストでは、後の章を整理するときに、前の章で書いた文が上書きされて消えてしまうこともありました。新しくわかったことを入れようとして、もとからあったものを消してしまったのです。
設定資料が時間を知らなければ、物語が進むほど、設定資料は散らかっていきます。
値には区間を付けた
まずは短い事実から手を付けました。年齢、地位、所属のようにプロパティに書く値は、物語の途中で変わります。7歳だった人物は、何話か後には17歳になります。
そこで値を上書きせず、値ごとに区間を付けるようにしました。その値が物語のどこからどこまで当てはまるのかを、一緒に書いておくのです。区間の始まりと終わりは、前回作ったボードのカード、つまり事件や場面から選びます。始まりや終わりを空けておけば、「最初から」や「現在まで」として扱われます。
こうすれば、7歳と17歳がひとつの欄に両方残り、それぞれがいつの値なのかも残ります。
どこから来た設定かを残した
次は出典です。ノードに書かれた設定が原稿のどの箇所から来たのかがわかれば、その設定がいつ生まれたのかも見当がつきます。3話で出た設定と30話で出た設定は、同じ欄にあっても重みが違います。
そこで、ワールド整理が入れた設定には、根拠になった原稿の箇所が出典として残るようにしました。TypeTakでは原稿だけでなく会話からも設定が入ってくるので、会話で決めた設定は、その会話が出典として残ります。出典を押せば、その箇所へすぐ移れます。
性格は変わり、原稿は性格を語らない
最後に残ったのが長い文章、セクションです。そしてセクションには、値にはない問題が2つありました。
1つ目に、セクションに書く中身そのものが変わります。セクションには人物の性格、心理、動機などを書きます。けれども物語が進めば、性格も動機も変わります。臆病だった人物が勇気を出し、復讐を夢見ていた人物が別のものを望むようになります。区間は短い値には付けられますが、文章で書いた性格に日付を付けるのは難しいことです。
2つ目に、原稿は性格を直接語ってくれません。「彼は家族のためならルールも破る人間だった」と書いてくれる原稿はまれです。その代わり、人物は行動します。師匠の命令に背いて弟を助けに行く場面が出てくるだけです。
この行動をそのまま性格を表す言葉に置き換えるのは危険です。一度の行動を見て「反抗的」と書いてしまえば、作家が意図していない性格が設定資料に刻まれます。そこで、原稿から設定を取り出すときは、性格を推測して書くよりも、人物がどんな状況で何をしたかをそのまま書くほうがいいと考えました。
ところが、それを積み重ねると、今度はうるさくなりすぎます。章ごとに人物のしたことがセクションにずらりとたまっていけば、セクションは性格の説明ではなく、あらすじの要約になってしまいます。先ほどの「ノードが散らかる」問題が、そのまま戻ってくるのです。
Novelcrafterで得た手がかり
区間と出典は、比較的すんなり解けました。値に期間を付け、設定ごとにどこから来たのかを残せばよかったからです。難しかったのはセクションでした。物語がセクションに混ざり込んで本文が散らかる問題は、なかなか抑えられませんでした。
手がかりは、ほかの製品を調べているときに見つかりました。Novelcrafterには、人物ごとに展開を書く欄が別にありました。物語に沿って変わっていくことを、その変化が起きた場面と結びつけて書く入力欄です。これを見て、変わっていくものをセクションの本文から切り離すことにしました。
同じ行動から、性質と展開を分ける
分ける基準は、こう決めました。ひとつの行動から見えてきたもののうち、物語のどの時点で読んでも当てはまるものは性質、その時点で起きた変化や初めて明かされたものは展開です。
師匠の命令に背いて弟を助けに行った場面なら、次のように分かれます。
- セクションの本文(性質):家族が危ないときは、ルールより家族を優先する。
- 展開:師匠の命令に初めて背く。
TypeTakにはすでにセクションがあり、セクションには何でも自由に書けます。そこで、Novelcrafterのように人物ごとに展開の欄を別に設けるのではなく、展開をセクションの中に入れました。中心となる性質の段落の下に、エージェントが必要に応じて展開のブロックを作り、ブロックには変わったことが物語の順に1行ずつたまっていきます。各行にはその変化が出てきた原稿やボードのカードが紐づいていて、押せばその場面へ移れます。
こうすると、性格のセクションには性格の変化が、関係のセクションには関係の変化が、別々に集まります。ワールド整理も原稿を読むときに同じ基準で、性質は本文に、変わったことや明かされたことは展開に分けて書きます。章が積み重なっても、本文はその人物がどんな人なのかを語り、何がいつ変わったのかは展開で順にたどれます。
次回は画面の話です。グラフ、Wiki形式のノード、入れ子になったカードのボードまで、ワールドの画面はほとんどすべて、すでにあるツールから学びました。何をどこから取り入れたのかを書きます。
TypeTakは、変わっていく設定を上書きしないことにしました。短い値には区間を、設定ごとに出典を残し、長い文章ではノードの性質と物語の中での変化(展開)を分けて持たせます。
よくある質問
連載中に変わる設定は、どう記録すればいいですか?
上書きせず、いつからいつまでの設定なのかを一緒に書いておくのがおすすめです。年齢や地位のような短い値は時期ごとに並べて残し、性格や関係の変化はもとの性質とは別に物語の順に集めておけば、前後が入り混じりません。
設定資料に時点を書かないと、どんな問題が起きますか?
最後に書いた内容だけが残るか、いくつもの時点の内容がひとつの段落に混ざります。そうなると、設定資料を読んでも人物がもともとどんな人なのか、いまはどうなのかがわからず、AIも過去の時点の設定を現在のものとして読んでしまいます。
設定の出典はなぜ残す必要があるのですか?
設定が原稿のどの箇所から来たのかがわかれば、その設定がいつ生まれたのか、どのくらい確かなのかを見当づけられます。設定がおかしく見えたときに、原稿へすぐ戻って確かめることもできます。
この回で使った機能
詳しい使い方はガイドにあります。
TypeTakをつくっています。ワールドを設計するなかでぶつかった問題と、選んだ答えをこのシリーズに残しています。