夢機能(名前変換機能)を作るために夢小説について調べたことを自分用にまとめた備忘録的な何か

こんにちは。

短編カフェに夢機能を作ろうと思います。そのために事前調査としていろいろと調べたことを備忘録としてまとめてみました。

注意

作者は特に夢界隈に詳しいわけではないです。夢小説は読んだことはありますが、個人サイトを運営したり投稿するほどではありません。

作者は普段小説投稿サイトを作っているのですが、そこに夢機能を付けてほしいという要望があったので調べました。

以下の調査は個人的な解釈を含んだものです。個人の感想です。夢機能を作るためにどんな知識があればいいかを調べたものであり、特に定義を厳密にするだとか夢について論争するためのものではないです。ご了承ください。

予防線終わり。

夢小説と歴史

夢についてはそんなに詳しくはないので、最近話題のAI君に教えてもらいながら書いてみました。引用部分がAIに教えてもらった部分です。そのあとに自分が調べたなりの補足みたいなの入れてます。

夢小説とは、既存の作品や有名人などを題材にした二次創作小説の一種で、主人公が読者の分身となるように設定されているものを指します。

基本的には、書き手/読み手/夢主が、作中の人物と交流を描いたジャンルの小説

※夢小説の定義についてはいくつも論争があるのでざっくりとした解釈です。論争見ていると統一するのは無理そう。書き手/読み手が夢小説と認識したらそれでいいというのが最終形っぽい。要するに夢小説だと思った時点でそれは夢小説になるのだ。

ちなみにですが夢小説に夢機能(名前変換機能)自体は必須ではないようです。そのあたりもいろいろと論争はあるようですが、とりあえず進めます。

初期はドリーム小説・ドリー夢小説とも呼ばれていて2000年ごろに夢小説に定着したとのこと。

主に女性向けのジャンルです。

では男性向けの夢小説があるのかというとジャンルとしてはないです。男性向けって自己投影して当たり前という前提なのでジャンルを超えたほぼほぼ共通概念になってます。逆に言うとすべてが夢小説みたいなものなのでわざわざジャンルとして設定する必要がないようです。

逆に女性の自己投影は忌避される傾向にあるので、ジャンルとして作ったのかなと思われます。知らんけど。

このあたりAI君に尋ねてみたけど、そういうジェンダー関係は答えられませんって言われた。うん、調教されてるね。

夢小説の始まり:1990年代後半~2000年代初頭
夢小説の最初の形は、1990年代後半から2000年代初頭にかけて、インターネット上の掲示板やメーリングリストで書かれた「自己投影型二次創作小説」と呼ばれるものです。これは、既存の作品や有名人などに自分自身やオリジナルキャラクターを投影して物語を作るというもので、主人公は「私」や「あなた」などの一人称で表現されます。このような小説は、読者が主人公に感情移入しやすく、自分の好きなキャラクターと恋愛や友情を楽しむことができるという魅力がありました。しかし、このような小説は、作者や読者の個人的な嗜好や感情が強く反映されるため、他者に受け入れられにくいという問題もありました。また、作品や有名人のイメージを損なうという批判もありました。

2000年あたりから夢小説が発展していきました。その一因となったのがドリーム小説変換ツール「DreamMaker」。個人サイトなどで本文中のテキストを別のテキストに変換できるツールです。

DreamMakerには1と2があって、2ではJavaScriptとクッキーを使って入力した名前を記憶しておくことができるようになっています。

仕組み自体はシンプルで、ある程度知識があればサイトに組み込んで使うことができます。

夢小説の発展:2000年代中盤~後半
夢小説の次の段階は、2000年代中盤から後半にかけて、インターネット上のホームページやブログで書かれた「読者参加型二次創作小説」と呼ばれるものです。これは、既存の作品や有名人などに自分自身やオリジナルキャラクターを投影することは同じですが、主人公は「○○(名前)」や「××(あだ名)」などの固有名詞で表現されます。また、作者は読者から主人公の設定や行動をリクエストしてもらい、それに応えて物語を進めるという方法を取ります。このような小説は、読者が主人公に自分の名前やニックネームを当てはめることで感情移入しやすくなり、また作者と読者がコミュニケーションを取りながら物語を作ることで楽しさが増すという魅力がありました。しかし、このような小説は、作者や読者の個人的な嗜好や感情が強く反映されることは変わらず、他者に受け入れられにくいという問題も引き続きありました。また、作品や有名人のイメージを損なうという批判も続きました。

読者参加型っていうのがどこの情報から来たのか不明ですが、個人サイトとWeb拍手やアンケートあたりでのコミュニケーションのことを指しているのかもしれないです。

この辺りには個人サイトを作れる場所がいっぱいあって、特にフォレストページやジオティーズ、エムペ、リゼとかで活動していた人も多かったようです。

サービス自体に夢機能がついていて、検索もできるところに人が集まっていき多くの夢小説が作られました。

DreamMakerを使うにはある程度のHTMLとかJavaScriptの知識が必要でしたが、サイトに機能が付いたことにより多くの人が利用できるようになりました。

2010年代に入ると、夢小説のジャンルや形式は多様化しました。一つの要因として、ソーシャルメディアや動画サイトなどの新しいプラットフォームの登場が挙げられます。これらのプラットフォームでは、リアルタイムでコミュニケーションができることや、動画や音声などのメディアを簡単に投稿できることが魅力となりました。また、これらのプラットフォームでは、芸能人やネットアイドル、バーチャルYouTuberなどの実在する人物やキャラクターが多く登場しました。これらの人物やキャラクターは、夢小説の対象としても人気を集めました。

もう一つの要因として、夢小説の執筆方法や公開方法が変化したことが挙げられます。2010年代には、スマートフォンやタブレットなどのモバイル端末が普及しました。これにより、夢小説をいつでもどこでも書くことや読むことができるようになりました。また、夢小説専用のサイトやアプリが多数登場しました。これらのサイトやアプリでは、夢小説を簡単に投稿できるだけでなく、ランキングやレビューなどの機能も充実していました。さらに、夢小説を連載形式で公開することや、読者からリクエストを受け付けることも可能になりました。

2010年後半には大体成熟したのかと思われます。それに伴い、この辺りからはサービス終了する場所も増えてきます。Yahooジオティーズなどモバスペも終わってしまいましたね。

この辺りでは個人サイトではなく、夢小説に特化した投稿サイトもちょこちょこと出てきています。


とりあえず簡単に歴史的なものを教えてもらったので次は機能的な面を見ていきます。

夢機能とは

「名前変換」(なまえへんかん)という機能のことだと思います。名前などの単語を様々なルールで変換できる機能です。この機能は、夢小説(ドリームノベル)などのファンフィクションでよく使われています。

名前変換機能は、名前や単語のスペルを変えたり、意味を変えたりするために使うことができます。例えば、キャラクターの名前を漢字からひらがなやカタカナにしたり、「~さん」「~ちゃん」などの敬語をつけたりすることができます。

名前の変換にはさまざまなルールがあり、作者によって好みに応じて使い分けることができる。また、著者によっては、独自のルールで名前変換を行う場合もあります。

思います?なぜそんなあやふやなのか。

夢機能とは作者/読者が指定した文字を別の文字に置き換えることができる機能のことです。

実装は大体2つのパターンに分かれます。

  • 作者が指定した文字だけ変換できる(作者設定型)

  • 読者が指定した文字を変換できる(読者設定型)

前者は独自記法で識別された文字をサイト側で用意した名前変換フォームにしたがって変換する。これのメリットは、作者が指定した文字のみ変換できること、読者側の負担が少ないことが挙げられます。

後者は、サイト側で用意された単語変換フォームに従って変換する。こちらは作者が指定していない文字も変換することもできますが、予期せぬ文字まで変換してしまう可能性があります。また読者の負担が多いです。

夢機能を持っている投稿サイト

ここから実際に夢機能について調べていきます。

夢小説を投稿できるサイトはいくつかあります。以下のサイトがおすすめです。

pixiv
占いツクール
プリ小説
フォレストページ+
ぷらいべったー
夢小説サイト ドリームノベル
yumedrop

それぞれのサイトには、独自の特徴があります。例えば、pixivはイラストと小説を投稿できるサイトで、占いツクールは占いと小説を投稿できるサイトです。プリ小説は、女性向けの小説投稿サイトで、フォレストページ+は、携帯電話からも投稿できる小説投稿サイトです。ぷらいべったーは、非公開設定が可能な小説投稿サイトで、夢小説サイト ドリームノベルは、ドリーム設定に特化した小説投稿サイトです。yumedropは、夢小説を中心に様々なジャンルの小説を投稿できるサイトです。

どのサイトも無料で利用できますので、気になるものがあれば試してみてください。

へー、最近できたyumedoropもちゃんと出てくるんだ……。と思って感心したけどあれ?このラインナップどこかで見たぞ。

これ私が書いた記事からとってきているぞ。BingAI君ってそんな最近の記事からも収集してくれるんだね。ちょっとびっくりしたけど、まぁ自分が以前に調べたもので問題なさそう。

とりあえずこれ以外にもサイト自体に夢機能がある投稿サイトを書き出してみます。

夢機能には2種類(作者設定型、読者設定型)あるのでどちらを採用しているのかも見ていきます。どんな仕組みで変換しているかも簡単に書いてみます。

フォレストページ(作者設定型)

変換をしたい名前を書き込むときに
「##NAME数字##」というタグを入力してください。

例えば「##NAME1##が呼んだ。」のようなイメージです。

2つ目以降に設定した名前は
「##NAME2##」「##NAME3##」
と数字を変えたタグで入力できます。

http://id.fm-p.jp/page/faq/index.php?code=contents/book02#06

##NAME数字##という独自タグを使うことで名前変換ができる

入れた数字の分だけ名前変換される。別の場所で変換名の説明文とデフォルトが設定できる。


フォレストページ+(作者設定型)

https://plus.fm-p.jp/support/faq/detail?id=28

本棚と小説、章ごとに名前変換の設定範囲が決められる。

名前の説明、デフォルトの名前の説明を決めたら小説本文で以下の独自タグを埋め込む。

本棚…[#da=数字#]
小説…[#dn=数字#]
各章…[#dc=数字#]

フォレストページと違って範囲が決められるようになったため若干複雑になっている。

pixiv (作者設定型)

https://www.pixiv.help/hc/ja/articles/900000378663-%E8%87%AA%E5%88%86%E3%81%AE%E5%B0%8F%E8%AA%AC%E3%81%AB%E5%8D%98%E8%AA%9E%E5%A4%89%E6%8F%9B%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF-

pixivには設定資料機能があって登場人物などの情報をまとめておける。そこに登録された単語を別の文字に置き換えることができる。

作品本文に特殊タグは打ち込む必要はないようです。

気になるのは予期せぬ単語も変換される恐れがあるかも。まぁ変換単語名を作者が決められるのでそういった事故もそこまで心配しなくていいのかもしれません。


作者設定と読者設定があります。まずは作者設定から

作品を読む際に、お名前、苗字、あだ名、が読者の方が設定した物に自動変換されるようになっています。

変換例
(名前)→「お名前」で読者の方が入力したものに変換されます
(苗字)、(あだ名)→苗字、あだ名を読者の方が設定している場合のみ、
それぞれ変換されますが、読者の方が設定していない場合は「お名前」で入力した値に変換されます。

また登場人物設定でも変換できる。

人1=名字
人2=山田
人3=田中

のように登場人物設定して、小説本文には(人1)と(人2)と(人3)と書くと変換することができる。


次は読者設定

文字変換ルール
小説/占いの内容を独自にルール設定をして変換することができます
作品内容を自分なりにアレンジして楽しむことが出来ます
変換前,変換後 のようにしてカンマ区切りでルールを設定して下さい

コンバンハ,こんばんは
コンニチハ,こんにちは
小山田,Oyamada

変換boxが用意してありそこにカンマで区切ると読者独自の変換が可能だそうです。

占いツクールは低年齢層主体なので機能がわかりやすいですね。作者でも読者でも変換が可能です。

  • nano (作者設定型)

#name#
のように小説で設定し、#formInput_#name##のようにフォーム上で変換する。
  • ALICE+ (作者設定型)

#name#
のように小説に設定し、名前変換フォームのところで設定する。

個人サイト系はどれも同じような変換方式みたいですね。


本文中に以下の独自タグを使用することで名前変換小説を投稿することができます。
例えば名前を[FN:○○] 、苗字を[LN:○○] 、ニックネームがあれば[NN:○○] 、
一人称のところに[FP:私]のように記載することでタグ内の文字列が読者の設定したものに変わります。
[は半角で入力してください。

名前、苗字、ニックネーム、一人称の4つ変換できるようですね。

そういったタグがあれば自動でポップアップされるようです。


実はハーメルンさんも名前変換できます。正規表現が使えるのでいろいろと拡張できる感じ。ほとんどの用途は、句点とか三点リーダーとか文章形態の整形に使うのかなっていう説明。

作者側が設定するのではなく、読者が指定するものです。夢機能としても使えますが、おそらく利用している人は少ないのではと思います。(ターゲット層的に言っても)


https://novel-prcm.zendesk.com/hc/ja/articles/900000850183-%E5%A4%A2%E6%A9%9F%E8%83%BD%E3%82%92%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84

プリ小説はチャット小説アプリなので、キャラクター設定というものがあります。そこに夢主を設定し、変換することができるようになっています。

#NAME1#~#NAME3#欄にそれぞれ名前・苗字・あだ名を設定します。

主人公以外の登場キャラクターや物などもドリーム設定することができます。
読者の環境などを設定してもらうことで、より夢小説の世界に引き込むことが期待できます。
この場合は#NAME4#~#NAME9#に登録します。
 #NAME4#~#NAME9#を設定する場合、そのキャラ(もしくは物やペットなど)の説明を書くことができます。

9個の名前変換が可能なようです。1~3は主人公、4~9はそれ以外の設定ができます。

  • くるっぷ

1.姓
[LN:姓]

2.名
[FN:名]

3.[FP:一人称]
一人称

4.[NN:ニックネーム]
ニックネーム

ぷらいべったーと同じ形式ですね。

完全一致、不完全一致

単語登録すると変換してくれるようになります。
不完全一致の場合は予期せぬ変換が起こる可能性があります。
完全一致の設定は
#夢野#のように#で囲って単語登録する。小説本文も#で囲う。

フォレストページとかと同じですが、#を使わない変換も可能になっています。

【変換1】、【変換2】の2つ変換することができます。


機能まとめ


#name#+フォーム系

フォレストページ、フォレストページ+、nano、ALICE+、ドリームノベル、yumedrop

ほとんどは##で囲ってフォーム設定する形ですね。nameの後に数値入れたりして区別したり。複数、かつ夢主以外の変換も可能な形式で対応範囲が広い感じ。ただその分複雑な設定が必要になりがちですね。

初期値や説明文も埋め込めるので、夢小説に特化した投稿サイトではよく使われますね。

[FN:○○]系

Privatter、くるっぷ

夢主のみの変換に対応した形式、苗字、名前、ニックネーム、一人称の限られたところだけ変換できます。くるっぷさんはおそらくぷらいべったーさんをまねたのかと思いますね。

この形式は初期値をあらかじめ設定しておけるのでフォームを作る必要がないです。夢も投稿できるけどそれがメインでないところ用かも。

(), 【】系+設定集

占いツクール, NOVEL CAKE

()でくくった部分の変換。これも主に夢主を対象にした変換ですね。ある程度対象を限定したいときに使えるかと。設定集などで初期値を入れる必要があるので、それであれば[FN:○○]系にした方が楽かもしれませんね。


単語登録系

占いツクール、pixiv、プリ小説

単語やキャラクタを設定してそれを変換できるようにしたもの。世界設定、キャラ設定、登場人物設定など別途作る必要があります。


読者設定型

占いツクール、ハーメルン

ほとんどが作者設定型ですが、読者設定型も少しあります。占いツクールさんは両方対応しています。こちらは読者が設定する必要があるので単語の対応表が必要になります。デメリットは不完全一致で意図せぬ変換が含まれる可能性があることですね。特に短い単語はその傾向が強いです。

ハーメルンさんは、夢がメインというより文章整形メインかなって感じです。正規表現も対応していてすごいです。


他にもギャレリアとかXRIAとか、エムペ、リゼ、プラグイン系統(AO3、ミスキー、Tumblr)とかあるようですが割愛。(疲れた)大体個人サイト系と同じ感じ。です。


何でこんなこと調べたみたのか

ということでここから本番です。

単純な単語変換機能を作るのは簡単で、わざわざこんなこと調べる必要はないです。

正直「JavaScript 名前変換」とか検索するといっぱい出てきます。それを参考にすればいいでしょう。

ただ、機能の背景を知らないと後々修正が発生することがよくあるので調べてます。それに加えて、何を求められているか知らないと本質的な解決ができない場合があります。

なので、こういった歴史あるものについては意外と必要だったりします。

こういうのをしないと顧客が本当に必要だったもの的な案件になったりします。

ってことで作るために必要なことを書きあげます

考えるべきポイントは以下の通り

  • 作者設定型か

  • 読者設定型か

  • どこまで変換を想定するか(夢主のみかそれ以外も変換するか)

  • どのように変換させるか(どこのサイトを参考にするか)

  • 変換用の識別タグはどうするか(##, [], ()等)

  • 変換のデフォルト設定はどこに保存するか

  • 読者の変換パターンはどこに保存するか

  • 何個まで変換を許すか

この辺りは投稿サイトの対象ユーザーによって変わるかと思います。夢小説ユーザーしかいないのであればかなり凝った変換ができるようにしないといけないですし、夢小説がおまけくらいであれば簡単な変換にした方がよいでしょう。

簡単に済ますのであれば、ぷらいべったーさんやくるっぷさんで使われているような、形式でやると実装は簡単ですね。凝ったものを作るのであれば#name#+設定フォームのようなものが必要です。

あまり使う人がいないのであれば、読者設定型の単語変換フォームを用意して、変換してもらう感じかなって思います。

あとは読者の変換設定をどこに保存するかも問題ですね。本名入れるとサーバーに保存すると個人情報管理が面倒ですし、何も保存しないといちいち設定が面倒ですし、大体ブラウザに保存することになるかと思います。まぁキャッシュの削除で消えますがそのあたりは仕方ないかもです。


実装にあたって考慮すること

JavaScriptでブラウザに表示された記事の単語を変換する機能を作成する場合、以下の点を考慮する必要があります。
- ブラウザに表示された記事のテキストを取得する方法
- 取得したテキストから単語を抽出する方法
- 抽出した単語を変換する方法
- 変換した単語を元のテキストに戻す方法

これらの点を考慮して、機能を実装してください。

考慮することは、取得して変換する単語を抜き出すことだけでそれほど難しくはなさそうですね。

ということで調査は以上です。次から実装したいと思います。

ここら辺書くために読んだりした記事など

ドリーム小説変換ツールhttp://yumeno.sakura.ne.jp/

2020年現在夢ジャンルの定義やらを考える

女オタクと男オタクの夢創作についての談話

夢小説という可能性の世界の話



次回

ということで、それらを踏まえて次から実装していきます。

なお、ここの記事は備忘録として全体公開しますが、次回からの実装部は時間がたったらメンバーシップ限定になります。

ここから先は

0字

お茶会プラン

¥300 / 月
このメンバーシップの詳細

良ければサポートお願いします。サポート費用はサーバー維持などの開発費に使わせていただきます。