ブレーンストーミング。小説の書き方とWebアプリの作成の作法を対応させて、小説を段階的に書く手法を確率する。小説の登場人物はWebアプリのDBテーブルに見立てる。小説のストーリーはWebアプリの機能に見立てる。このようにした場合、具体的な小説を例に分解してみてほしい。例えば、夏目漱石の「三四郎」でやってみて。
これはかなり面白いです。
ただし、私はあなたの現在の発想を、
キャラクター = DBテーブル
ストーリー = 機能
という対応だけで終わらせない方がよいと思います。
むしろ、
小説開発 ≒ Webアプリ開発
として工程全体を対応させると、かなり強力な執筆OSになります。
まず「三四郎」を使って分解してみます。
最上位:システム要件
Webアプリなら最初に
何のためのシステムなのか
を決めます。
例えば
勤怠管理システム
書籍販売システム
チケット販売システム
``
など。
三四郎の場合は
system_name: Sanshiro
purpose:
青年を成長させる
output:
青年の精神的変化
になります。
つまり三四郎は、
恋愛小説
ではなく、
青年成長シミュレーター
と見なす。
DB設計
ここであなたの発想を使う。
人物はレコードではない。
人物はテーブル。
Sanshiroテーブル
Sanshiro:
pure
curiosity
love
confusion
growth
三四郎という概念。
Minekoテーブル
Mineko:
beauty
freedom
mystery
distance
unattainable
美禰子という概念。
Hirotaテーブル
Hirota:
wisdom
skepticism
philosophy
observation
広田先生という概念。
ここが重要。
各テーブルは
人間
ではなく、
機能的概念の集まり
です。
機能設計
Webアプリでは次にユースケースを書く。
例えば
ログイン
商品購入
投稿作成
など。
三四郎では
機能1
青年上京機能
move_to_tokyo()
機能2
謎の女性遭遇機能
meet_mineko()
機能3
思想注入機能
meet_hirota()
機能4
恋愛失敗機能
``
lose_mineko()
ここで重要な発見がある。
ストーリー = 機能呼び出し列
普通は
物語
↓
出来事列
と考える。
しかしWeb方式だと
機能A
↓
機能B
↓
機能C
↓
機能D
になる。
三四郎全体は
move_to_tokyo()
meet_mineko()
meet_hirota()
grow()
lose_mineko()
の実行ログとも言える。
シーンはUI
これがさらに面白い。
多くの小説論では
シーンを書く
から始める。
しかしWeb開発ではUIは最後。
例えば
meet_mineko()
``
という機能がある。
そのUIが
列車内
池の周辺
散歩
になる。
つまり
機能が先
シーンは後
である。
三四郎をシーケンス図で見る
Webシステム風に書くと
Sanshiro
|
| 上京
v
Tokyo
Sanshiro
|
| 遭遇
v
Mineko
Sanshiro
|
| 相談
v
Hirota
Sanshiro
|
| 恋愛
v
Mineko
Mineko
|
| 離脱
v
Sanshiro
になる。
長編になる理由
ここがあなたの理論の核心。
もしテーブルが
Sanshiro
Mineko
``
だけなら短編。
しかし
Sanshiro
Mineko
Hirota
Yojiro
Nonomiya
Professor
Friend
`
になると、
テーブル同士の連携が爆発的に増える。
Webアプリでも同じ。
users
しかなければ単純。
しかし
users
posts
comments
likes
notifications
messages
になると急激に複雑になる。
つまり、
登場人物が増える
とは
テーブル数が増える
ではない。
本質は
JOIN可能性が増える
こと。
本文は何か
ここでさらに一段下へ降りる。
Webアプリなら
DB
↓
機能
↓
画面
で終わる。
小説では
DB
↓
機能
↓
シーン
↓
文章
がある。
つまり本文は
実装コード
に近い。
例えば
meet_mineko()
だけでは作品にならない。
その処理内容を
三四郎は池の岸を歩いていた。
そこへ美禰子が現れた。
と文章化する。
執筆OSとして整理
すると小説を書く工程は、
かなり自然に
1. システム目的
↓
2. テーブル設計
↓
3. 機能設計
↓
4. 機能呼び出し順
↓
5. UI設計(シーン)
↓
6. 実装(文章)
になる。
三四郎を完全に一行で表すと
あなたの理論で三四郎を表現すると、
Sanshiroテーブルに対して
Minekoテーブルと
Hirotaテーブルを
特定順序でJOINし、
青年を成長状態へ遷移させるアプリケーション
になる。
そして夏目漱石は、
文章家というより
青年成長アプリのシステムアーキテクト
だったと解釈できる。
このモデルの面白い点は、Roblox開発とほぼ同じ設計手順に落とし込めることです。
NPC設計
↓
能力設計
↓
イベント設計
↓
クエスト設計
↓
マップ設計
↓
セリフ実装
が、
登場人物設計
↓
概念設計
↓
ストーリー機能設計
↓
シーン設計
↓
背景設計
↓
文章実装
にそのまま対応します。
つまり小説を書くとは、「文章を考えること」ではなく、
概念テーブル群とその相互作用を設計し、その実行ログを自然言語にレンダリングすること
だと考えられます。これはかなりOS的で、あなたの構造主義的な発想に合うモデルだと思います。