夢機能(名前変換機能)を作るために夢小説について調べたことを自分用にまとめた備忘録的な何か
こんにちは。
短編カフェに夢機能を作ろうと思います。そのために事前調査としていろいろと調べたことを備忘録としてまとめてみました。
注意
作者は特に夢界隈に詳しいわけではないです。夢小説は読んだことはありますが、個人サイトを運営したり投稿するほどではありません。
作者は普段小説投稿サイトを作っているのですが、そこに夢機能を付けてほしいという要望があったので調べました。
以下の調査は個人的な解釈を含んだものです。個人の感想です。夢機能を作るためにどんな知識があればいいかを調べたものであり、特に定義を厳密にするだとか夢について論争するためのものではないです。ご了承ください。
予防線終わり。
夢小説と歴史
夢についてはそんなに詳しくはないので、最近話題のAI君に教えてもらいながら書いてみました。引用部分がAIに教えてもらった部分です。そのあとに自分が調べたなりの補足みたいなの入れてます。
基本的には、書き手/読み手/夢主が、作中の人物と交流を描いたジャンルの小説。
※夢小説の定義についてはいくつも論争があるのでざっくりとした解釈です。論争見ていると統一するのは無理そう。書き手/読み手が夢小説と認識したらそれでいいというのが最終形っぽい。要するに夢小説だと思った時点でそれは夢小説になるのだ。
ちなみにですが夢小説に夢機能(名前変換機能)自体は必須ではないようです。そのあたりもいろいろと論争はあるようですが、とりあえず進めます。
初期はドリーム小説・ドリー夢小説とも呼ばれていて2000年ごろに夢小説に定着したとのこと。
主に女性向けのジャンルです。
では男性向けの夢小説があるのかというとジャンルとしてはないです。男性向けって自己投影して当たり前という前提なのでジャンルを超えたほぼほぼ共通概念になってます。逆に言うとすべてが夢小説みたいなものなのでわざわざジャンルとして設定する必要がないようです。
逆に女性の自己投影は忌避される傾向にあるので、ジャンルとして作ったのかなと思われます。知らんけど。
このあたりAI君に尋ねてみたけど、そういうジェンダー関係は答えられませんって言われた。うん、調教されてるね。
2000年あたりから夢小説が発展していきました。その一因となったのがドリーム小説変換ツール「DreamMaker」。個人サイトなどで本文中のテキストを別のテキストに変換できるツールです。
DreamMakerには1と2があって、2ではJavaScriptとクッキーを使って入力した名前を記憶しておくことができるようになっています。
仕組み自体はシンプルで、ある程度知識があればサイトに組み込んで使うことができます。
読者参加型っていうのがどこの情報から来たのか不明ですが、個人サイトとWeb拍手やアンケートあたりでのコミュニケーションのことを指しているのかもしれないです。
この辺りには個人サイトを作れる場所がいっぱいあって、特にフォレストページやジオティーズ、エムペ、リゼとかで活動していた人も多かったようです。
サービス自体に夢機能がついていて、検索もできるところに人が集まっていき多くの夢小説が作られました。
DreamMakerを使うにはある程度のHTMLとかJavaScriptの知識が必要でしたが、サイトに機能が付いたことにより多くの人が利用できるようになりました。
2010年後半には大体成熟したのかと思われます。それに伴い、この辺りからはサービス終了する場所も増えてきます。Yahooジオティーズなどモバスペも終わってしまいましたね。
この辺りでは個人サイトではなく、夢小説に特化した投稿サイトもちょこちょこと出てきています。
とりあえず簡単に歴史的なものを教えてもらったので次は機能的な面を見ていきます。
夢機能とは
思います?なぜそんなあやふやなのか。
夢機能とは作者/読者が指定した文字を別の文字に置き換えることができる機能のことです。
実装は大体2つのパターンに分かれます。
作者が指定した文字だけ変換できる(作者設定型)
読者が指定した文字を変換できる(読者設定型)
前者は独自記法で識別された文字をサイト側で用意した名前変換フォームにしたがって変換する。これのメリットは、作者が指定した文字のみ変換できること、読者側の負担が少ないことが挙げられます。
後者は、サイト側で用意された単語変換フォームに従って変換する。こちらは作者が指定していない文字も変換することもできますが、予期せぬ文字まで変換してしまう可能性があります。また読者の負担が多いです。
夢機能を持っている投稿サイト
ここから実際に夢機能について調べていきます。
へー、最近できた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 (作者設定型)
pixivには設定資料機能があって登場人物などの情報をまとめておける。そこに登録された単語を別の文字に置き換えることができる。
作品本文に特殊タグは打ち込む必要はないようです。
気になるのは予期せぬ単語も変換される恐れがあるかも。まぁ変換単語名を作者が決められるのでそういった事故もそこまで心配しなくていいのかもしれません。
占いツクール(作者・読者設定型)
作者設定と読者設定があります。まずは作者設定から
作品を読む際に、お名前、苗字、あだ名、が読者の方が設定した物に自動変換されるようになっています。
変換例
(名前)→「お名前」で読者の方が入力したものに変換されます
(苗字)、(あだ名)→苗字、あだ名を読者の方が設定している場合のみ、
それぞれ変換されますが、読者の方が設定していない場合は「お名前」で入力した値に変換されます。
また登場人物設定でも変換できる。
人1=名字
人2=山田
人3=田中
のように登場人物設定して、小説本文には(人1)と(人2)と(人3)と書くと変換することができる。
次は読者設定
文字変換ルール
小説/占いの内容を独自にルール設定をして変換することができます
作品内容を自分なりにアレンジして楽しむことが出来ます
変換前,変換後 のようにしてカンマ区切りでルールを設定して下さい
コンバンハ,こんばんは
コンニチハ,こんにちは
小山田,Oyamada
変換boxが用意してありそこにカンマで区切ると読者独自の変換が可能だそうです。
占いツクールは低年齢層主体なので機能がわかりやすいですね。作者でも読者でも変換が可能です。
nano (作者設定型)
#name#
のように小説で設定し、#formInput_#name##のようにフォーム上で変換する。
ALICE+ (作者設定型)
#name#
のように小説に設定し、名前変換フォームのところで設定する。
個人サイト系はどれも同じような変換方式みたいですね。
Privatter (作者設定型)
本文中に以下の独自タグを使用することで名前変換小説を投稿することができます。
例えば名前を[FN:○○] 、苗字を[LN:○○] 、ニックネームがあれば[NN:○○] 、
一人称のところに[FP:私]のように記載することでタグ内の文字列が読者の設定したものに変わります。
[は半角で入力してください。
名前、苗字、ニックネーム、一人称の4つ変換できるようですね。
そういったタグがあれば自動でポップアップされるようです。
ハーメルン (読者設定型)
実はハーメルンさんも名前変換できます。正規表現が使えるのでいろいろと拡張できる感じ。ほとんどの用途は、句点とか三点リーダーとか文章形態の整形に使うのかなっていう説明。
作者側が設定するのではなく、読者が指定するものです。夢機能としても使えますが、おそらく利用している人は少ないのではと思います。(ターゲット層的に言っても)
プリ小説 (作者設定型)
プリ小説はチャット小説アプリなので、キャラクター設定というものがあります。そこに夢主を設定し、変換することができるようになっています。
ドリームノベル (作者設定型)
#NAME1#~#NAME3#欄にそれぞれ名前・苗字・あだ名を設定します。
主人公以外の登場キャラクターや物などもドリーム設定することができます。
読者の環境などを設定してもらうことで、より夢小説の世界に引き込むことが期待できます。
この場合は#NAME4#~#NAME9#に登録します。
#NAME4#~#NAME9#を設定する場合、そのキャラ(もしくは物やペットなど)の説明を書くことができます。
9個の名前変換が可能なようです。1~3は主人公、4~9はそれ以外の設定ができます。
くるっぷ
1.姓
[LN:姓]
2.名
[FN:名]
3.[FP:一人称]
一人称
4.[NN:ニックネーム]
ニックネーム
ぷらいべったーと同じ形式ですね。
yumedrop (作者設定型)
完全一致、不完全一致
単語登録すると変換してくれるようになります。
不完全一致の場合は予期せぬ変換が起こる可能性があります。
完全一致の設定は
#夢野#のように#で囲って単語登録する。小説本文も#で囲う。
フォレストページとかと同じですが、#を使わない変換も可能になっています。
NOVEL CAKE (作者設定型)
【変換1】、【変換2】の2つ変換することができます。
機能まとめ
#name#+フォーム系
ほとんどは##で囲ってフォーム設定する形ですね。nameの後に数値入れたりして区別したり。複数、かつ夢主以外の変換も可能な形式で対応範囲が広い感じ。ただその分複雑な設定が必要になりがちですね。
初期値や説明文も埋め込めるので、夢小説に特化した投稿サイトではよく使われますね。
[FN:○○]系
夢主のみの変換に対応した形式、苗字、名前、ニックネーム、一人称の限られたところだけ変換できます。くるっぷさんはおそらくぷらいべったーさんをまねたのかと思いますね。
この形式は初期値をあらかじめ設定しておけるのでフォームを作る必要がないです。夢も投稿できるけどそれがメインでないところ用かも。
(), 【】系+設定集
()でくくった部分の変換。これも主に夢主を対象にした変換ですね。ある程度対象を限定したいときに使えるかと。設定集などで初期値を入れる必要があるので、それであれば[FN:○○]系にした方が楽かもしれませんね。
単語登録系
単語やキャラクタを設定してそれを変換できるようにしたもの。世界設定、キャラ設定、登場人物設定など別途作る必要があります。
読者設定型
ほとんどが作者設定型ですが、読者設定型も少しあります。占いツクールさんは両方対応しています。こちらは読者が設定する必要があるので単語の対応表が必要になります。デメリットは不完全一致で意図せぬ変換が含まれる可能性があることですね。特に短い単語はその傾向が強いです。
ハーメルンさんは、夢がメインというより文章整形メインかなって感じです。正規表現も対応していてすごいです。
他にもギャレリアとかXRIAとか、エムペ、リゼ、プラグイン系統(AO3、ミスキー、Tumblr)とかあるようですが割愛。(疲れた)大体個人サイト系と同じ感じ。です。
何でこんなこと調べたみたのか
ということでここから本番です。
単純な単語変換機能を作るのは簡単で、わざわざこんなこと調べる必要はないです。
正直「JavaScript 名前変換」とか検索するといっぱい出てきます。それを参考にすればいいでしょう。
ただ、機能の背景を知らないと後々修正が発生することがよくあるので調べてます。それに加えて、何を求められているか知らないと本質的な解決ができない場合があります。
なので、こういった歴史あるものについては意外と必要だったりします。
こういうのをしないと顧客が本当に必要だったもの的な案件になったりします。
ってことで作るために必要なことを書きあげます
考えるべきポイントは以下の通り
作者設定型か
読者設定型か
どこまで変換を想定するか(夢主のみかそれ以外も変換するか)
どのように変換させるか(どこのサイトを参考にするか)
変換用の識別タグはどうするか(##, [], ()等)
変換のデフォルト設定はどこに保存するか
読者の変換パターンはどこに保存するか
何個まで変換を許すか
この辺りは投稿サイトの対象ユーザーによって変わるかと思います。夢小説ユーザーしかいないのであればかなり凝った変換ができるようにしないといけないですし、夢小説がおまけくらいであれば簡単な変換にした方がよいでしょう。
簡単に済ますのであれば、ぷらいべったーさんやくるっぷさんで使われているような、形式でやると実装は簡単ですね。凝ったものを作るのであれば#name#+設定フォームのようなものが必要です。
あまり使う人がいないのであれば、読者設定型の単語変換フォームを用意して、変換してもらう感じかなって思います。
あとは読者の変換設定をどこに保存するかも問題ですね。本名入れるとサーバーに保存すると個人情報管理が面倒ですし、何も保存しないといちいち設定が面倒ですし、大体ブラウザに保存することになるかと思います。まぁキャッシュの削除で消えますがそのあたりは仕方ないかもです。
実装にあたって考慮すること
考慮することは、取得して変換する単語を抜き出すことだけでそれほど難しくはなさそうですね。
ということで調査は以上です。次から実装したいと思います。
ここら辺書くために読んだりした記事など
ドリーム小説変換ツールhttp://yumeno.sakura.ne.jp/
2020年現在夢ジャンルの定義やらを考える
女オタクと男オタクの夢創作についての談話
夢小説という可能性の世界の話
次回
ということで、それらを踏まえて次から実装していきます。
なお、ここの記事は備忘録として全体公開しますが、次回からの実装部は時間がたったらメンバーシップ限定になります。
良ければサポートお願いします。サポート費用はサーバー維持などの開発費に使わせていただきます。