<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>あまねけ！</title><link href="https://ama.ne.jp/" rel="alternate"/><link href="https://ama.ne.jp/feeds/all.atom.xml" rel="self"/><id>https://ama.ne.jp/</id><updated>2026-04-19T18:35:00+09:00</updated><entry><title>CENSORED・打码・떡모あるいはザコ海苔の概念について</title><link href="https://ama.ne.jp/post/censored-hentai-kinkster/" rel="alternate"/><published>2026-04-19T18:35:00+09:00</published><updated>2026-04-19T18:35:00+09:00</updated><author><name>stewpot</name></author><id>tag:ama.ne.jp,2026-04-19:/post/censored-hentai-kinkster/</id><summary type="html">&lt;p&gt;自主的な禁欲主義者たちを見つめる&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="/post/oh-my-doujin-viewer/"&gt;新しい同人作品ビューア&lt;/a&gt;に入れたい新機能はないかと意見を求められて、私はCENSOREDなんかどうだろうと答えた。「へー、CENSORED？　なにそれ？」ときょとんとした顔で軽くGeminiに尋ねると「ふーん、エッチな画像にわざわざ自分でモザイクを入れるんだ。アングロスフィアのキンク層で流行ってて……変なの」と少し笑う。&lt;/p&gt;
&lt;p&gt;さらにしばらく考えてから「でも、このアプリの正式名称って『CHEck Digital Rights Sovereignty』なんだよね。デジタル主権を守ろうって印象がブレない？」と怪訝な顔をした。&lt;/p&gt;
&lt;p&gt;いや待て。モザイクとデジタル主権が矛盾するっていう発想はおかしい。それは日本のモザイクが刑法175条に強制されているからだろう？　モザイクは強制的にコンテンツの所有権を奪っているとか、作品の完全性を毀損してるとか、そういう理屈だ。でも、国家にモザイクをかけさせられるのと、自分でモザイクをかけようと決めるのは全然違うんだ――&lt;/p&gt;
&lt;p&gt;――というような反論をしたかったのだが、前提や歴史的経緯の説明が込み入って伝わらなかったらしい。もしかしたら通信状況が不安定なのかも……いや嘘。ただ私が早口だっただけだ。&lt;/p&gt;
&lt;p&gt;「んー、まぁいいよ。そんなに欲しいなら入れておくね～」&lt;/p&gt;
&lt;p&gt;そう言って通話が切れる。私は静かになった一人のデスクで、CENSOREDの概念についてどう説明すれば伝わるだろうかと考え始めていた。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#censored"&gt;CENSOREDの中心&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#censored_1"&gt;CENSOREDの外面&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#censored_2"&gt;CENSOREDの周辺&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#censored_3"&gt;CENSOREDの内面&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#censored_4"&gt;CENSOREDの技術&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#censored_5"&gt;CENSOREDの今後&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="censored"&gt;CENSOREDの中心&lt;/h2&gt;
&lt;p&gt;まず、CENSOREDという概念は、もともとアングロスフィアのキンク層――要は英語圏のヘンタイたち――を中心に流行している文化である。CENSOREDの大きなコミュニティが存在するRedditは英語圏中心の巨大掲示板サイトであり、寄せられる投稿もほぼ英語なのもその証左になる。&lt;/p&gt;
&lt;p&gt;Reddit以外にも、例えばDiscordではCENSOREDが目的のサーバー&lt;sup id="fnref:discord"&gt;&lt;a class="footnote-ref" href="#fn:discord" title="アカウントごとに検閲レベルを設定したり、継続参加で称号を獲得できるゲーム要素を提供していることもある。管理者が高圧的なルールを敷く囚人と看守のロールプレイ的な面も持ち合わせがち。"&gt;1&lt;/a&gt;&lt;/sup&gt;がいくつか存在する。また、Xでも英語圏を中心にCENSORED画像を投稿する女王様的なキャラクターを演じるアカウントが乱立しつつある。国や地域によっては、政治的あるいは宗教的理由でTelegramやQQといった閉じた地下コミュニティで交流するしかないケースもあるだろう。&lt;/p&gt;
&lt;p&gt;同じような概念はヨーロッパや中東、東南アジア、東アジアでも散発的に流行っているようだが、各国のコミュニティとしては小規模で、より多くの刺激を求めて英語圏のコミュニティに合流することも多い。そのため、日本を含めた英語圏以外でもCENSOREDという語がそのまま借用されがちである。&lt;/p&gt;
&lt;p&gt;もしこれが英語圏発祥でなければ、打码&lt;sup id="fnref:chinese-censored"&gt;&lt;a class="footnote-ref" href="#fn:chinese-censored" title="码（コードやモザイクの略）を打つ、でモザイクやぼかしによる加工を意味する中国語。"&gt;2&lt;/a&gt;&lt;/sup&gt;、떡모&lt;sup id="fnref:korean-censored"&gt;&lt;a class="footnote-ref" href="#fn:korean-censored" title="餅+モ（モザイクの頭文字）で餅のようにベタベタに塗られた濃いモザイクを意味する韓国語。떡치다（餅つき）がセックスの俗語で、떡単体で性的なニュアンスを含むことがある。"&gt;3&lt;/a&gt;&lt;/sup&gt;、ザコ海苔&lt;sup id="fnref:japanese-censored"&gt;&lt;a class="footnote-ref" href="#fn:japanese-censored" title="雑魚向けの海苔（黒い長方形による修正）で、いま筆者が作った造語。"&gt;4&lt;/a&gt;&lt;/sup&gt;なんて言葉が先に生まれて、HENTAIよろしくZAKONORIという概念が輸出されていたに違いない。実は日本産のHENTAIポルノはCENSOREDの素材として使われがちなのだが、当の日本ではモザイクは単に悪しきものと捉えられているのも面白い点である。&lt;/p&gt;
&lt;p&gt;さて、まずはCENSOREDの雰囲気を味わうために、&lt;a href="https://www.reddit.com/r/Censoredforbetas/"&gt;r/Censoredforbetas&lt;/a&gt;を眺めてみるとよい。成人向けのサブレなので、まずは適当にアカウントを作る必要がある。英語に（そしてCENSOREDに）慣れていなくても、上から最新の投稿を2～3枚revealすればどんな投稿が人気を集めているか分かるだろう。&lt;/p&gt;
&lt;h2 id="censored_1"&gt;CENSOREDの外面&lt;/h2&gt;
&lt;p&gt;職場でこの記事を読んでいる、あるいはRedditに5chのような警戒心を抱いている（これ自体は正しい）、もしかしたら実際のCENSORED画像を見てもピンと来なかった人のために、もう少しCENSOREDの外面的概念について掘り下げていく。&lt;/p&gt;
&lt;p&gt;CENSOREDをごく外面的に定義すると、「隠すべき場所を隠す」というコア概念しか残らない。キンカーたちの屈折した興奮を無視すれば、その定義はシンプルで無味乾燥なものだ。この定義には日本でいうところの、国家が表現を直接的に規制する「検閲&lt;sup id="fnref:jap21"&gt;&lt;a class="footnote-ref" href="#fn:jap21" title="検閲は、これをしてはならない！"&gt;5&lt;/a&gt;&lt;/sup&gt;」や、刑法175条の適用で間接的に圧力をかけて行われる「自主規制」も含まれている。&lt;/p&gt;
&lt;p&gt;アダルトビデオやエロ漫画で性器にかけられるモザイクや黒塗りはもちろん、「見せられないよ！」というフリップでエッチなシーンを隠すキャラクター&lt;sup id="fnref:jishukiseikun"&gt;&lt;a class="footnote-ref" href="#fn:jishukiseikun" title="こちらは、性的な内容だけではなく法的にギリギリのパロディを隠すときにも使われていた。"&gt;6&lt;/a&gt;&lt;/sup&gt;とか、昔のテレビ番組で映り込んだ乳首をハートや星のマークで隠していたのも、外面的には全てCENSOREDである。&lt;/p&gt;
&lt;p&gt;しかし、CENSOREDがこれらの概念と全く異なる点は、モザイクの範囲がこれらより広く強く大きくなりがちな部分と、検閲した部分に文字を重ねる文化にある。パブリッシャーが仕方なく施す自主規制は、陰茎の上に細い黒の長方形&lt;sup id="fnref:kuronori"&gt;&lt;a class="footnote-ref" href="#fn:kuronori" title="その形から黒海苔と呼ばれている。"&gt;7&lt;/a&gt;&lt;/sup&gt;を数本乗せたほぼ建前の修正や、外陰部ギリギリを攻めたモザイクに落ち着く。一方で、CENSORED画像は全く異なる方向に進化を続けている。&lt;/p&gt;
&lt;p&gt;CENSOREDでは性器はもちろん、性的な印象を与えうる胸や尻にまで大きくモザイクをかけ、腹部、脚、脇、そして顔――最後は全身をピンク色に塗りつぶして「ベータは閲覧禁止」のような文字列で埋め尽くしたりする。よく見るとエッチ……ですらない普段着を着た笑顔の女性の写真でさえ、その姿はすっかり隠されてしまう。このキンカーの文化において、モザイクは女体を隠す無用なオマケではなく、性的興奮を生み出すオカズになるからだ。&lt;/p&gt;
&lt;p&gt;一方で、CENSOREDにおいて隠し方や入れる文字のバリエーションはかなり多様である。脇のみをアイリスアウトのように抜き出して表示したり、モザイクではなくイラストやロゴで隠したり、ゲーム仕立てで射精を制限するような内容だったり、「アルファ」あるいは黒人男性との比較&lt;sup id="fnref:bnmo"&gt;&lt;a class="footnote-ref" href="#fn:bnmo" title="黒人男性の性的優位性を前提にした世界観で、白人男性が自らのパートナーを譲り渡しベータ化するBNWO（Black New World Order）と呼ばれるアングロ圏特有のコンテンツが存在する。他言語圏でもこうした人種差別になりかねない思考を反転させた性癖が生まれている。より一般化したA国B国モノ（自国の女性が他国の男性に征服されるのを自国の男性が屈辱として楽しむ、あるいは他国の女性に性的な屈辱を与えられるのを楽しむコンテンツ）のようなもの。"&gt;8&lt;/a&gt;&lt;/sup&gt;で劣等感を煽るものなど、素材の出所こそ怪しいがクリエイティブな作品が多い。&lt;/p&gt;
&lt;p&gt;つまり、単にモザイクが表示されるだけで興奮するよう訓練されている、と考えるとわずかに誤解を生む。誤解を恐れず分かりやすさを優先すれば、CENSOREDの世界観を伝えるためのモザイクを用いた創作である。日本で言うところの「文字コラ」に近いだろう。&lt;/p&gt;
&lt;h2 id="censored_2"&gt;CENSOREDの周辺&lt;/h2&gt;
&lt;p&gt;ここで、CENSOREDの理解のために、日本でもある程度流行っているエロコラージュ系の文化についても触れる。いわゆる文字コラや剥ぎコラ、水玉コラといったものだ。CENSOREDも含め、これらは「ないなら作るしかない」の精神性から生まれていて（これは二次創作者が特に大好きなフレーズだ）、そのせいか出所が怪しい素材から作られることも多く、特定の個人を貶めたりイメージを低下させかねない危うい表現が氾濫している。&lt;/p&gt;
&lt;p&gt;女体の写真や動画を集めて編集し、同好の士と共有するという点では共通のコラージュ手法だが、方法と目的はかなり異なる。&lt;/p&gt;
&lt;p&gt;剥ぎコラは着衣部分を肌に置き換えることで、水玉コラは着衣部分を隠すことで、画像に写った身体の裸を再現しようとする。裸を見たいという目的は共通で、それを画面に固定するか、鑑賞者の脳内で補完させるかという違いがある。文字コラは画像加工の手段に注目した分類ではなく、その画像に文章や台詞を併記して何らかのストーリーを生み出す手法である。例えば、画像部分に水玉コラを用いた文字コラもありうる。&lt;/p&gt;
&lt;p&gt;それに対してCENSOREDは、これらの特徴の一部を組み合わせた独自の立場に位置すると捉えることができる。モザイクや黒塗りを用いて裸どころかわずかな胸の谷間まで隠そうとする点で、剥ぎコラや水玉コラとは全く逆の立場だが、「鑑賞者にモザイクの向こうを脳内で補完させる」という点では水玉コラと似た性質を持つ。&lt;/p&gt;
&lt;p&gt;そのため、一見すると合法的に見える手段であってもCENSORED的な文脈に回収されうる。例えば、ここに卒業アルバムがあるとしよう。AIなどを用いて被写体を裸にしたり、あるいは顔を抜き出して裸体を組み合わせることは最近大きな社会問題になっている。では、被写体の顔や胸にモザイクをかけるのはどうだろう？　外形だけを見れば単なるプライバシー配慮のモザイクと変わらないが、鑑賞者によって興奮の対象になりうるのが特殊な点である。&lt;/p&gt;
&lt;p&gt;剥ぎコラや水玉コラの逆、と考えればCENSOREDはある種「服を着せるコラージュ」と解釈できるかもしれない。ただし、モザイク――より広く特定の箇所を隠す手法――はそれ自身が「エッチなもの」というイメージを持ち合わせている。全く問題ない健全なシーンなのにモザイクをかけるとエッチに見える、という経験はそう特殊なものではない。そのため、単に「服を着せる」アナロジーにはならない点に注意が必要である。&lt;/p&gt;
&lt;p&gt;さらに悪いことに、CENSOREDは被写体あるいは作者が意図しないストーリーを生み出すという特徴がある。この部分に注目すると文字コラとよく似ている。文字コラでは鑑賞者が画像を性的な対象とするための――あたシコ&lt;sup id="fnref:atashiko"&gt;&lt;a class="footnote-ref" href="#fn:atashiko" title="露出の多い格好で身体を強調するなどしてオナニーの対象になろうとする行為。「あたしでシコシコして～ん」の略。"&gt;9&lt;/a&gt;&lt;/sup&gt;であれ嫌パン&lt;sup id="fnref:iyapan"&gt;&lt;a class="footnote-ref" href="#fn:iyapan" title="様々な女性に蔑まれながらパンツを見せてもらうシチュエーションをメインとした作品「嫌な顔されながらおパンツ見せてもらいたい」の略。"&gt;10&lt;/a&gt;&lt;/sup&gt;であれ広く様々な――ストーリーが付加されうるが、CENSOREDではより狭く鑑賞者が一方的に屈服するための契約を強制的に形成する独特な立ち位置にある。&lt;/p&gt;
&lt;p&gt;卒業アルバムの例で言えば、モザイクの上に「ベータは一生オナニー漬け」と被写体が告げているように焼き込んでしまえば、外形的にも不適切な表現になるだろう。わいせつな表現としてよりも、本人がそのような主張をしているように見せることに問題がある。&lt;/p&gt;
&lt;p&gt;そう考えると、CENSOREDは単なる「服を着せるコラージュ」ではなく「卑猥な言葉を書かれた服を着せるコラージュ」と呼ぶべきだろう。直接的にわいせつでなくとも、特殊な方向にイメージを低下させうる表現である。アイドルの写真を書き換えて特定の政党を支持する服を着せるようなものだ。&lt;/p&gt;
&lt;h2 id="censored_3"&gt;CENSOREDの内面&lt;/h2&gt;
&lt;p&gt;さて、CENSOREDは鑑賞者が一方的に屈服する構図を形成するための手法であると述べた。モニター越しにエッチな画像や動画に写った女性と接する妄想ではなく、あえてすりガラスを立ててまともな言葉も交わさずにオナニーを済ませる選択肢に惹かれる心理はどこにあるのか。この点についてさらに掘り下げ、CENSOREDを味わうキンカーたちの内面に迫る。&lt;/p&gt;
&lt;p&gt;まず、CENSOREDの中心にあるのは自らを女性の下に置くマゾヒズムである。さらに、その世界観は大きく二つに分けられる。男性全体が女性に隷属するものと、男性を「女性を支配できる属性」「女性に隷属すべき属性」に二分して自らを後者に置くものである。&lt;/p&gt;
&lt;p&gt;特にこれらの属性は、女性に触れたりセックスすることを許された「アルファ男性」や、女性の身体を見ることすらままならない「ベータ男性」と呼ばれる。この「アルファ」「ベータ」という区分はCENSOREDに特有のものではなく、恋愛や仕事における男性の格付けを示す語で、いわゆるオメガバースとも同根である。&lt;/p&gt;
&lt;p&gt;日本で言えば「強者男性」「弱者男性」が近いだろう。CENSOREDにおいては、この屈辱的な「ベータ」概念や、英語圏における「beta」や「simp&lt;sup id="fnref:simp"&gt;&lt;a class="footnote-ref" href="#fn:simp" title="好意を寄せた女性に対して尽くしすぎたり言いなりになる男性を示す侮辱語。日本語では「ミツグくん」「カオナシ」「バチャ豚」などに近い。"&gt;11&lt;/a&gt;&lt;/sup&gt;」といった侮辱語を自らのアイデンティティとする世界観が半ば常識になっている。&lt;/p&gt;
&lt;p&gt;例えば、「&lt;a href="https://www.reddit.com/r/Censoredforbetas/comments/po8094/censored_by_comments_of_some_of_the_21k_people/"&gt;Censored by comments of some of the 21k+ people who upvoted it&lt;/a&gt;」では、2万票以上の高評価を集めた女性のセクシーなダンスの動画をCENSOREDしているが、その姿を隠しているのはモザイクではなく元の動画に対する賞賛のコメントである。&lt;/p&gt;
&lt;p&gt;ここでは、女性の身体を検閲なしで見られる――ひいては触れたりセックスすることさえ許されるだろう――アルファと、そんなアルファの言葉で埋め尽くされた動画から女性の身体を想像するしか無いベータに二分されるという強烈な世界が、この短い動画の中に作り出されている。&lt;/p&gt;
&lt;p&gt;つまり、自らを「ベータ」と自覚する男性が、検閲された画像を通じて自らの弱い立場を実感して興奮する文化圏……それがCENSOREDの核心である。&lt;/p&gt;
&lt;p&gt;「&lt;a href="https://melmagazine.com/en-us/story/censoredforbetas-subreddit"&gt;The Subreddit Where Beta Men Go to Watch Porn They Can’t See&lt;/a&gt;」や「&lt;a href="https://ask.metafilter.com/226410/Why-would-you-want-someone-to-say-that-to-you"&gt;Why would you want someone to say that to you?&lt;/a&gt;」によれば、CENSOREDを楽しむベータの理屈はおおよそ以下のようなものだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;下着姿、モザイク、裸体を隠された「見えない」状態から感じる魅力（チラリズム的な力学）&lt;/li&gt;
&lt;li&gt;女性から注目されるに値しないという屈辱を突き付けられる快感（屈服の構図）&lt;/li&gt;
&lt;li&gt;男性的競争に負けている感覚、性欲に対する罪悪感などの恥からの解放（一種のストレス発散）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらをまとめると、CENSOREDを楽しむ動機自体は他のBDSM系――拘束や痛みを伴うSMプレイ、貞操帯、射精管理、寸止め、寝取られ――などとあまり変わるところはなく、それを画像や動画の加工で実現する点に大きな差がある。&lt;/p&gt;
&lt;p&gt;一方的な屈辱の形成を前提としているのはCENSOREDの大きな特徴で、リアルで女性とコミュニケーションを取って特殊なプレイをする合意を得て……というステップを一切経由しない点もまさに「ベータ向き」である。文字コラや音声作品、あるいは英語由来の「JOI&lt;sup id="fnref:joi"&gt;&lt;a class="footnote-ref" href="#fn:joi" title="Jerk Off Instructionの略で、いわゆるオナ指示のこと。"&gt;12&lt;/a&gt;&lt;/sup&gt;」にも同様の傾向がある。&lt;/p&gt;
&lt;p&gt;さて、ここで重要になるのが「悪意」の存在である。CENSOREDにおいて鑑賞者は屈辱的な立場に追いやられることを楽しむと述べた。これは、画像や動画に映る人物やキャラクターが自らへの検閲を自覚して、「ベータには見せない」という表明を優越的に示す……そういうベータに対する悪意の演出がなければ成り立たない。&lt;/p&gt;
&lt;p&gt;CENSOREDは、見えないものへの想像や自らへの悪意が核になるジャンルだ。これを考慮に入れると、CENSOREDのごく外面的な「隠すべき場所を隠す」という定義をさらに深めることができる。&lt;/p&gt;
&lt;p&gt;国家的な「検閲」や消極的な「自主規制」はベータへの悪意でかけられたものではなく、ストーリーなしでは興奮を生まないフラットなモザイクである。いわば屈服の契約もないままかけられた「悪い検閲」だ。存在する必要がない。こんなものを見せ続ければ、おそらく未成年者の性癖も歪む。&lt;/p&gt;
&lt;p&gt;これに対して、強力なモザイクをかけられた画像を見るしかない立場を自ら選ぶのはあくまで自由だ。パブリッシャーの「自主規制」に対して、ベータが自分の責任で屈辱的な立場を選ぶ「オプトイン検閲」かもしれない。これはいわば「いい検閲」だ。&lt;/p&gt;
&lt;p&gt;もちろん「自分で選んだ」のか「選ばされた」のかという自己認識は非常にきわどい紙一重で、この性癖はある種「インセル&lt;sup id="fnref:incel"&gt;&lt;a class="footnote-ref" href="#fn:incel" title="「パートナーの獲得や性的関係を望んでいるのに諦めさせられた」と自覚し、その原因をアルファや女性に押し付けて敵対する者たち。日本語では「不本意の禁欲主義者」などと訳される。"&gt;13&lt;/a&gt;&lt;/sup&gt;」の裏返しである点には注目しなければならない。&lt;/p&gt;
&lt;p&gt;ただし「選ばされた」という認識さえ、最終的にはCENSORED的興奮に繋がりうる。例えば、もし国家的にアルファとベータを二分する検査が布かれ、ベータに対して差別的な検閲を実施する世界があったとする。この世界でベータに対して行われる検閲は強制的な「悪い検閲」だが、最終的に彼らはその生活を肯定的に受け入れざるを得ないだろう。&lt;/p&gt;
&lt;p&gt;実際、このような優生学的世界観でCENSOREDにストーリーを持たせて「マゾ堕ち」する過程を描く作品は数多く存在する。&lt;/p&gt;
&lt;p&gt;これらの点から、CENSOREDは自らの責任で男性性の責任やプレッシャーを放棄することを受け入れるという、倒錯的だがある意味では健全な取り組みといえる。&lt;/p&gt;
&lt;h2 id="censored_4"&gt;CENSOREDの技術&lt;/h2&gt;
&lt;p&gt;CENSOREDな作品は自然に発生するものではない。他のエロコラージュと同様に、誰かが素材を作成・撮影・収集して画像や動画に編集をかける必要がある。無検閲の女性を拡大して胸や性器の領域に選択ツールを引く――これはベータ的世界観から見れば耐えがたいものだ。自らを女体を見ることを許さない立場に置く世界観から見ると、無検閲の画像を開くのさえ後ろめたく、抵抗がある。&lt;/p&gt;
&lt;p&gt;そのため、多くのCENSOREDは製作者と閲覧者の属性が分かれている。&lt;a href="https://www.reddit.com/r/Censoredforbetas/"&gt;r/Censoredforbetas&lt;/a&gt;に数多くのCENSORED作品を投稿する&lt;a href="https://www.reddit.com/user/jb22_pics/"&gt;jb22_pics&lt;/a&gt;が「&lt;a href="https://melmagazine.com/en-us/story/censoredforbetas-subreddit"&gt;The Subreddit Where Beta Men Go to Watch Porn They Can’t See&lt;/a&gt;」に寄せたコメントによれば、自らの活動のモチベーションはクリエイティビティの発揮と「私はエッチな画像を見られるが、ベータは私が許可したものしか見られない」という支配力の誇示にあるという。&lt;/p&gt;
&lt;p&gt;ベータは自分で自分を検閲できない、というのは根本的な問題として認識され続けてきた。しかし、近年になってこの問いに技術的な解決策が与えられつつある。それは――おそらくみなさんが想像するとおり――&lt;a href="https://github.com/notAI-tech/nudenet"&gt;NudeNet&lt;/a&gt;を初めとした画像認識モジュールによる自動化、つまり「自動検閲」である。&lt;/p&gt;
&lt;p&gt;自動検閲においては、製作者が行っていた隠すべき場所の検出をAIが自動で行う。「ベータが見てもいい場所」を検出するのではなく、「アルファが見てもいい場所」を検出するのだ。これは当たり前に思えるが、例えるならオレンジから甘さを取り除いてアルファに与え、ベータには苦みだけを提供するようなものである。これがAIの手で行われるというのは、ある意味でさらに屈辱的かもしれない。&lt;/p&gt;
&lt;p&gt;2022年頃から現在にかけて、こうした自動検閲を実現するツールが増え始めている。これらはおおよそ「ブラウザ拡張でページの検閲を行う」「デスクトップ全体をキャプチャして検閲を行う」「バッチ処理で特定の入出力にCENSOREDを組み込むライブラリ」に分類できる。&lt;/p&gt;
&lt;p&gt;ブラウザ拡張型では、Chromium系の&lt;a href="https://silveredgold.github.io/beta-protection/"&gt;Beta Protection&lt;/a&gt;やそのバックエンドとなる&lt;a href="https://github.com/silveredgold/beta-censoring"&gt;Beta Censoring&lt;/a&gt;、Firefox中心に開発されてきた&lt;a href="https://puryfi.com/"&gt;PuryFi&lt;/a&gt;が代表的だ。&lt;/p&gt;
&lt;p&gt;デスクトップキャプチャ型では、Windowsで最も人気の&lt;a href="https://islaexe.itch.io/beta-blocker"&gt;Beta Blocker&lt;/a&gt;が存在する。画面上に現れるNSFWコンテンツをリアルタイムで検出し、モザイクや黒塗りのオーバーレイで隠すのが主な機能である。最近では日本語を含む多言語UIにも対応したAndroid版がリリースされたり、一定時間CENSOREDを解除できない機能が導入されるなど、活発な開発が進んでいる。&lt;/p&gt;
&lt;p&gt;バッチ処理型では、Stable Diffusion生成画像の局部に自動でモザイクをかける&lt;a href="https://github.com/w-e-w/sd-webui-nudenet-nsfw-censor"&gt;nudenet-nsfw-censor&lt;/a&gt;や、前述のBeta Censoringをローカルで回して画像フォルダ全体を処理するといった使い方がある。&lt;/p&gt;
&lt;p&gt;これらのツールを組み合わせれば、例えば「Webカメラの出力に常に検閲をかけるツール」とか「視界にARでモザイクを入れるスマホアプリやスマートグラス」の自作も容易だろう。&lt;/p&gt;
&lt;p&gt;このように多くのツールが提供されているが、検閲箇所の検出に使うエンジンの多様性はあまりない。PuryFiが独自のニューラルネットを同梱しているのに対し、他のほとんどのツールはNudeNetに依存している。画像全体がセンシティブかどうか判断するライブラリや、画像から物体の位置を検出するライブラリは存在するが、それらを組み合わせた「画像内からセンシティブな箇所を領域で抜き出す」というのがかなりニッチな分野で、代替ライブラリが少ないのが実態である。&lt;/p&gt;
&lt;p&gt;さらに、NudeNetはメンテナが多忙な状態でここ2年ほど活発な開発がなく、近年のAI技術の発展を活かした性能にはなっていない。小さな領域や極端なアングル、そしてイラストなどを十分に検出できないことも多く、まだ軽量化や性能向上の余地があると思われる。&lt;/p&gt;
&lt;p&gt;ただし、NudeNetの改善のために学習データという名の無検閲の画像を収集する必要があると考えれば、ベータは検閲モジュールの改善には参加しえないというメタ的な構図は維持されてしまう。自動検閲で自らに検閲を課せるようになったはずが、その上流にはまだ差別的構造が残っている。これもまた、CENSORED世界観の面白い構造である。&lt;/p&gt;
&lt;h2 id="censored_5"&gt;CENSOREDの今後&lt;/h2&gt;
&lt;p&gt;日本におけるCENSOREDはまだまだごくマイナーなジャンルである。これは刑法175条の運用が作った実質的なポルノ検閲の構図のせいだろう。モザイクに対する「見えないことへの興奮」や「一方的な屈服」を味わうよりも先に、国家からモザイクを押し付けられているのが明らかな現状である。&lt;/p&gt;
&lt;p&gt;これを脳内でCENSORED世界観に転換することはできるものの、「モザイクがあるのは当たり前」なのが常識である以上、さらに広げるのは難しい。日本だけではなく、東アジア全般で消極的なモザイクやぼかしが前提の状況が続いている。不自由を味わうために自由を必要とする、というのはいろいろな分野で語られる矛盾といえよう。&lt;/p&gt;
&lt;p&gt;一方、日本では文字コラを始めとしたエロコラージュの文化はある程度広く根付いている。前述の通り、文字コラとCENSOREDは勝手なストーリーを付与して興奮の材料に持ち込む点でよく似ている。日本産のポルノがCENSORED作品のメジャーな素材になっていることから見ても、日本語圏でもさらにCENSOREDが広がる余地は残っているはずだ。&lt;/p&gt;
&lt;p&gt;ただ、アングロスフィアが主体のCENSOREDコミュニティに投稿される画像は、正直なところ日本人の好みとは離れた被写体ばかりに思える。オナニーしながら英語を（大した語彙は使われていないにせよ）読み解くのもなかなか高度な営みだろう。人種の違う彼らの興奮の機序は理解できても、Pornhubを見ているときのようなほんのりとした（しかも興奮に繋がらない）疎外感を覚えるのも事実である。&lt;/p&gt;
&lt;p&gt;つまり、日本語圏のCENSORED――おそらくはANIMEキャラに日本語で検閲をかけるものが多いだろう――を作らない限りは、その魅力をより広く伝えるのは難しい。その手軽な方法として&lt;a href="https://vym.booth.pm/items/8181847"&gt;CHKDRS&lt;/a&gt;に実験的な検閲機能が搭載されれば、一つの実験として意義があるはずだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;――という記事の草稿を送る前に、検閲機能を搭載した同人作品ビューアのデモ版が送られてきた。仕事が早い。しかし、固定の黒塗りオンリーで動画は非対応……とりあえず隠せばいいんだよね？なんて明るい声が聞こえてくる気がする。&lt;/p&gt;
&lt;p&gt;このアプリは出来そこないだ、使えないよ。部位は選べた方がいい、隠し方にも美学があるし、このバージョンは文字も入れられないみたいだ。あぁ、それに――まぁ、あとはこの記事を見せれば、いい感じにしてくれるだろう。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:discord"&gt;
&lt;p&gt;アカウントごとに検閲レベルを設定したり、継続参加で称号を獲得できるゲーム要素を提供していることもある。管理者が高圧的なルールを敷く囚人と看守のロールプレイ的な面も持ち合わせがち。&amp;#160;&lt;a class="footnote-backref" href="#fnref:discord" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:chinese-censored"&gt;
&lt;p&gt;码（コードやモザイクの略）を打つ、でモザイクやぼかしによる加工を意味する中国語。&amp;#160;&lt;a class="footnote-backref" href="#fnref:chinese-censored" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:korean-censored"&gt;
&lt;p&gt;餅+モ（モザイクの頭文字）で餅のようにベタベタに塗られた濃いモザイクを意味する韓国語。떡치다（餅つき）がセックスの俗語で、떡単体で性的なニュアンスを含むことがある。&amp;#160;&lt;a class="footnote-backref" href="#fnref:korean-censored" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:japanese-censored"&gt;
&lt;p&gt;雑魚向けの海苔（黒い長方形による修正）で、いま筆者が作った造語。&amp;#160;&lt;a class="footnote-backref" href="#fnref:japanese-censored" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:jap21"&gt;
&lt;p&gt;検閲は、これをしてはならない！&amp;#160;&lt;a class="footnote-backref" href="#fnref:jap21" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:jishukiseikun"&gt;
&lt;p&gt;こちらは、性的な内容だけではなく法的にギリギリのパロディを隠すときにも使われていた。&amp;#160;&lt;a class="footnote-backref" href="#fnref:jishukiseikun" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:kuronori"&gt;
&lt;p&gt;その形から黒海苔と呼ばれている。&amp;#160;&lt;a class="footnote-backref" href="#fnref:kuronori" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:bnmo"&gt;
&lt;p&gt;黒人男性の性的優位性を前提にした世界観で、白人男性が自らのパートナーを譲り渡しベータ化するBNWO（Black New World Order）と呼ばれるアングロ圏特有のコンテンツが存在する。他言語圏でもこうした人種差別になりかねない思考を反転させた性癖が生まれている。より一般化したA国B国モノ（自国の女性が他国の男性に征服されるのを自国の男性が屈辱として楽しむ、あるいは他国の女性に性的な屈辱を与えられるのを楽しむコンテンツ）のようなもの。&amp;#160;&lt;a class="footnote-backref" href="#fnref:bnmo" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:atashiko"&gt;
&lt;p&gt;露出の多い格好で身体を強調するなどしてオナニーの対象になろうとする行為。「あたしでシコシコして～ん」の略。&amp;#160;&lt;a class="footnote-backref" href="#fnref:atashiko" title="Jump back to footnote 9 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:iyapan"&gt;
&lt;p&gt;様々な女性に蔑まれながらパンツを見せてもらうシチュエーションをメインとした作品「嫌な顔されながらおパンツ見せてもらいたい」の略。&amp;#160;&lt;a class="footnote-backref" href="#fnref:iyapan" title="Jump back to footnote 10 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:simp"&gt;
&lt;p&gt;好意を寄せた女性に対して尽くしすぎたり言いなりになる男性を示す侮辱語。日本語では「ミツグくん」「カオナシ」「バチャ豚」などに近い。&amp;#160;&lt;a class="footnote-backref" href="#fnref:simp" title="Jump back to footnote 11 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:joi"&gt;
&lt;p&gt;Jerk Off Instructionの略で、いわゆるオナ指示のこと。&amp;#160;&lt;a class="footnote-backref" href="#fnref:joi" title="Jump back to footnote 12 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:incel"&gt;
&lt;p&gt;「パートナーの獲得や性的関係を望んでいるのに諦めさせられた」と自覚し、その原因をアルファや女性に押し付けて敵対する者たち。日本語では「不本意の禁欲主義者」などと訳される。&amp;#160;&lt;a class="footnote-backref" href="#fnref:incel" title="Jump back to footnote 13 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>2026/03/02～2026/04/01</title><link href="https://ama.ne.jp/post/report-20260401/" rel="alternate"/><published>2026-04-01T16:28:00+09:00</published><updated>2026-04-01T16:28:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-04-01:/post/report-20260401/</id><summary type="html">&lt;p&gt;2026/03/02～2026/04/01のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;季節に合わせたわずかなエフェクトが追加されています。&lt;ul&gt;
&lt;li&gt;2026年4月まで、約8割のページで桜の花びらがひらひら舞うエフェクトが3秒間表示されます（&lt;a href="https://x.com/amane_katagiri/status/2027903565835211175"&gt;参考&lt;/a&gt;）。&lt;/li&gt;
&lt;li&gt;初夏以降のエフェクトについては現在検討中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;特定のブラウザで表示が崩れていた箇所について、スタイルを調整しました。&lt;/li&gt;
&lt;li&gt;壊れていた一部のリンクを修正・削除しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【お知らせ】&lt;/strong&gt; あまねけ！総集編「変天美音」シリーズの最新作・&lt;a href="https://hen.booth.pm/items/7996217"&gt;変天美音Ⅱ&lt;/a&gt;が刊行されています！　特別付録の香りの小瓶と共にお楽しみください。&lt;/p&gt;
&lt;p&gt;やり取りの手間や住所の開示を気にしない方は、手数料のかからない支払い方法やクリックポストなどのより安い配送手段でお送りできます。お気軽にご連絡ください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/human-readable-name/"&gt;ははいぬ・けつあつ・くちかせ――日本語のhuman-readable nameを考える&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;HerokuやDockerでよく使われるランダム生成のhuman-readable name（人間に読みやすい名前）について、日本語でどう実現すべきかについて書いたものです。&lt;/li&gt;
&lt;li&gt;実装としては乱数なりバイト列をSHA-256あたりに通して固定のリストから選び取れば済むのですが、この固定のリストを用意するのが難しかったです。&lt;/li&gt;
&lt;li&gt;自作のAIエージェントセッション管理システムでは、Sudachi辞書を加工したひらがな単語を3つ並べたスタイルを使っています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/oh-my-doujin-viewer/"&gt;ぼくらの同人作品ビューア（概念）&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;手元で動くDLsite Playがほしい！という長年の夢を小さな自作ソフトウェアで実現していくにあたって、周辺調査や要件の言語化を進めた記録をまとめました。&lt;/li&gt;
&lt;li&gt;既存のソフトウェアの星取表（久しぶりに聞いたな）を掲載したので、コンテンツビューアを探している人にも役に立つかもしれません。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chkdrs-demo.amane.moe/"&gt;デモ版&lt;/a&gt;（ &lt;code&gt;demo1:demodemo1&lt;/code&gt; ～ &lt;code&gt;demo9:demodemo9&lt;/code&gt; ）を用意してあるので、同じような祈りをしている人がいれば意見を聞きたいです（特に需要なければ公開しない予定です）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/led-appbar-news/"&gt;デスクトップに面白い文字を流そう&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;画面にいろいろな文字が流れる電光掲示板がほしいWindowsユーザー（わたし）によく刺さるツールの紹介と、何を流すと面白いのかをちょっと考えてみました。&lt;/li&gt;
&lt;li&gt;200年くらい新幹線に乗っていなかったので、車内ニューステロップが2020年～2023年にかけて提供終了していたのをやっと知りました。&lt;/li&gt;
&lt;li&gt;もうちょっといろいろ作るなら、ちゃんとコード署名とかしてみたいところですね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>デスクトップに面白い文字を流そう</title><link href="https://ama.ne.jp/post/led-appbar-news/" rel="alternate"/><published>2026-03-29T12:32:00+09:00</published><updated>2026-03-29T12:32:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-03-29:/post/led-appbar-news/</id><summary type="html">&lt;p&gt;うおさがのいじょみおりそも&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;ここまでのあらすじ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#led-news-ticker"&gt;LED News Ticker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#led-appbar"&gt;LED AppBar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;デスクトップに面白い文字を流そう&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;ニュースのフィードを流す&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;インターネットのフィードを流す&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;自分で用意したテキストをランダムに流す&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#spotifynow-playing"&gt;SpotifyのNow Playingを流す&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#no-context"&gt;No Contextな文章を流す&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;これから……？&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;ここまでのあらすじ&lt;/h2&gt;
&lt;p&gt;先日、デスクトップに文字を流し続ける小さなウィジェット「&lt;a href="https://github.com/vividoyomogimochi/app-top-bar"&gt;LED AppBar&lt;/a&gt;」を作りました。今は、ここにどんな文字を流したら面白いだろうか、ということを考えています――&lt;/p&gt;
&lt;h3 id="led-news-ticker"&gt;LED News Ticker&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://zenn.dev/108_twil3akine/articles/rust-wasm-lifegame-wallpaper"&gt;Rust+Wasmで爆速ライフゲームを作って動く壁紙にする&lt;/a&gt;という記事を読み、動画やウェブページをライブ壁紙として設定できる&lt;a href="https://apps.microsoft.com/detail/9ntm2qc6qws7"&gt;Lively Wallpaper&lt;/a&gt;というツールを知りました。このツールで何かライブ壁紙を設定してみたいと思って生まれたのが、&lt;a href="https://ticker.samoyed.moe/"&gt;LED News Ticker&lt;/a&gt;です。&lt;/p&gt;
&lt;p&gt;LED News Tickerができることは主に2つ。固定の壁紙を表示することと、画面上部に配置された横長のLEDマトリクスパネル風の領域に任意のテキストを流すことです。これはいわゆるニュースティッカーと呼ばれるもので、&lt;a href="/"&gt;あまねけ！&lt;/a&gt;の上部に流れている広告も同様のスタイルです。&lt;/p&gt;
&lt;video autoplay loop muted width="800" height="130" src="/images/led-appbar-news/ticker.webm"&gt;LEDマトリクスパネル風の領域にニュースが流れている様子&lt;/video&gt;

&lt;p&gt;そもそもLEDマトリクスパネルの実物を見たことがない方のために、一応&lt;a href="/appendices/led-appbar-news/patrol.webm"&gt;実物の動画&lt;/a&gt;も置いておきます。こういう単色の小さなものなら数千円で買えますし、パトカーの後ろに設置されているパネルも同じものです。かつて新幹線で流れていた車内ニューステロップを想像してもよいでしょう。&lt;/p&gt;
&lt;p&gt;流れるテキストは、事前に設定したフィードの定期取得やWebSocket・SSEの受信で順次切り替わっていきます。パラメータを付けずに開くと、たぶんニュースっぽい背景にNHKニュースのヘッドラインが流れるはずです。画面右下にマウスカーソルを寄せたり、タップすると設定画面が開けます。&lt;/p&gt;
&lt;h3 id="led-appbar"&gt;LED AppBar&lt;/h3&gt;
&lt;p&gt;さて、Lively Wallpaperでこのページを壁紙に表示して楽しく過ごしていたのですが、実はパソコンを使っている間に壁紙を見る瞬間はそう多くないことに気付きました。いつも2つの画面にエディタとターミナルか調べ物のブラウザを表示していて、壁紙が出てくるのはウィンドウを切り替えるごくわずかな合間くらいです。&lt;/p&gt;
&lt;p&gt;そこで、LED News Tickerからニュースティッカー部分のみを取り出して、さらに画面上部に固定するWindows用アプリ&lt;a href="https://github.com/vividoyomogimochi/app-top-bar"&gt;LED AppBar&lt;/a&gt;を作りました。このアプリはWindowsの&lt;a href="https://learn.microsoft.com/ja-jp/windows/win32/shell/application-desktop-toolbars"&gt;AppBar API&lt;/a&gt;を利用して画面端領域を独占するもので、要はオリジナルのタスクバーを画面端に表示するイメージです。&lt;/p&gt;
&lt;p&gt;このアプリ自体はニュースティッカーを同梱しておらず、中身はLED News Tickerのティッカー部分を表示する細い画面のブラウザと同じようなものです。つまり、URLを入れ替えれば任意のコンテンツを表示できるので、画面上部にニュースティッカー以外を表示したい人も使ってみてください。設定はトレイアイコンを右クリックで「Set URL...」です。&lt;/p&gt;
&lt;p&gt;例えば、12人のキャラクターの視線で作業を監視してもらうことができます:&lt;/p&gt;
&lt;p&gt;&lt;img alt="画面上部のLED AppBarの領域に、横に並んだ12人の同じ少女の顔が前髪から口元まで表示されていて、全員がこちらをそれぞれ異なる表情で見つめている様子" height="53" src="/images/led-appbar-news/amane-bar.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;なお、LED AppBarは&lt;a href="https://github.com/tauri-apps/tauri"&gt;Tauri&lt;/a&gt;で書かれていて、本来はクロスプラットフォームビルドできるのですがWindows以外には対応していません。前述の通り、画面上部を独占的に利用するWindowsシェルのAPIに依存しているからです。&lt;/p&gt;
&lt;p&gt;RustからWindowsのAPI（Win32 API）を呼び出すには、Microsoft公式の&lt;a href="https://crates.io/crates/windows"&gt;windows&lt;/a&gt;クレートを使うのが最も手軽でしょう。以下の例の通り、 &lt;code&gt;#[cfg(windows)]&lt;/code&gt; でWindows環境を識別して、 &lt;code&gt;unsafe&lt;/code&gt; ブロック内で必要なAPIを呼び出す……というのが主な使い方です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// 🌟 Windows環境でのみ動作するようガードする&lt;/span&gt;
&lt;span class="cp"&gt;#[cfg(windows)]&lt;/span&gt;
&lt;span class="k"&gt;pub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;mod&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;platform&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;pub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;register_appbar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hwnd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;isize&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;bar_height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;u32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;monitor_index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;u32&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;bool&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;monitors&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;enumerate_monitors&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="c1"&gt;// 🌟 パラメータ準備とAPI呼び出しは unsafe にする&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;unsafe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;mut&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;abd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nc"&gt;APPBARDATA&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;zeroed&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="n"&gt;abd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cbSize&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;size_of&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;APPBARDATA&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;u32&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SHAppBarMessage&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ABM_NEW&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="k"&gt;mut&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;abd&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;ABM_NEW failed&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;mut&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;orig&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ORIGINAL_WNDPROC&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lock&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;unwrap&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;orig&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;prev&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GetWindowLongPtrW&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hwnd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GWL_WNDPROC&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;orig&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;prev&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="c1"&gt;// 🌟 Rust側の関数をコールバックするAPI（appbar_wndproc）&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="n"&gt;SetWindowLongPtrW&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hwnd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;GWL_WNDPROC&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;appbar_wndproc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;isize&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 🌟 Win32 APIに渡すコールバック関数なので、 extern &amp;quot;system&amp;quot; で呼び出し規約を揃える&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;unsafe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;extern&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;system&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;appbar_wndproc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;hwnd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nc"&gt;HWND&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;u32&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;wparam&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nc"&gt;WPARAM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;lparam&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nc"&gt;LPARAM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nc"&gt;LRESULT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;windows&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Win32&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;UI&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;WindowsAndMessaging&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;DefWindowProcW&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hwnd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;wparam&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lparam&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// 🌟 非Windows環境向けに、何もしないスタブを配置しておいてもよい&lt;/span&gt;
&lt;span class="cp"&gt;#[cfg(not(windows))]&lt;/span&gt;
&lt;span class="k"&gt;pub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;mod&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;platform&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// ...&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Win32 API側からコールバックで呼び出す関数宣言には &lt;code&gt;extern "system"&lt;/code&gt; を付与するというのもポイントです。これは、RustコンパイラにWin32 APIの関数呼び出し規約に従うよう指示する宣言で、C++でマングリングを無効化したいとき&lt;sup id="fnref:extern-c"&gt;&lt;a class="footnote-ref" href="#fn:extern-c" title="Cのプログラムや、Cの呼び出し規約を通じて他の言語のプログラムからC++を呼び出す場合、 extern &amp;quot;C&amp;quot; でCのABIを提供する必要があります。"&gt;1&lt;/a&gt;&lt;/sup&gt;に &lt;code&gt;extern "C"&lt;/code&gt; を付けて関数定義するのと似ています。&lt;/p&gt;
&lt;p&gt;高校生の頃に、C++で頑張って（なんとBitBltで！）クラスマッチのタイムテーブル管理アプリを作ってからというもの、なんとなくWindows GUIプログラミングに少し苦手意識があったのですが、こんなに簡単ならまた何か作ってみてもいいかもしれません。&lt;/p&gt;
&lt;h2 id="_2"&gt;デスクトップに面白い文字を流そう&lt;/h2&gt;
&lt;p&gt;さて、ここからが本題です。LED News TickerやLED AppBarをニュースティッカーとして使えば、好きなテキストを目立つ位置に流し続けることができます。&lt;/p&gt;
&lt;p&gt;では、どんなテキストを流すのが面白いでしょうか？&lt;/p&gt;
&lt;h3 id="_3"&gt;ニュースのフィードを流す&lt;/h3&gt;
&lt;p&gt;ニュースティッカーにニュースを流すのはオーソドックスな使い方です。&lt;a href="https://www.nhk.or.jp/toppage/rss/index.html"&gt;NHKニュースのフィード&lt;/a&gt;や&lt;a href="https://g-tips.jp/google-news/how-to-get-google-news-rss/"&gt;Googleニュースのフィード&lt;/a&gt;を流しておけば、テレビでニュースを垂れ流すのと同じくらい、あるいはそれ以上にストレスなくシンプルにヘッドラインを知ることができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ticker.samoyed.moe/ticker/?type=rss&amp;amp;url=https%3A%2F%2Fnews.web.nhk%2Fn-data%2Fconf%2Fna%2Frss%2Fcat0.xml"&gt;NHKニュースが流れるティッカー&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ticker.samoyed.moe/ticker/?type=rss&amp;amp;url=https%3A%2F%2Fnews.google.com%2Frss"&gt;Googleニュースが流れるティッカー&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これはかなり実用性が高いと思います。実際私もよく使っています。&lt;/p&gt;
&lt;h3 id="_4"&gt;インターネットのフィードを流す&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://b.hatena.ne.jp/"&gt;はてなブックマーク&lt;/a&gt;の人気エントリーや&lt;a href="https://gigazine.net/"&gt;GIGAZINE&lt;/a&gt;、その他インターネットで話題になりやすいサイトのフィードを流しておくと、わざわざX（旧Twitter）を眺めなくても、作業のついでにトレンドを追えるかもしれません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ticker.samoyed.moe/ticker/?type=rss&amp;amp;url=https%3A%2F%2Fb.hatena.ne.jp%2Fhotentry.rss"&gt;はてなブックマークの人気エントリーが流れるティッカー&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ticker.samoyed.moe/ticker/?type=rss&amp;amp;url=https%3A%2F%2Fgigazine.net%2Fnews%2Frss_2.0%2F"&gt;GIGAZINEの新着記事が流れるティッカー&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ticker.samoyed.moe/ticker/?type=rss&amp;amp;url=https%3A%2F%2Fkyoko-np.net%2Findex.xml"&gt;虚構新聞の新着記事が流れるティッカー&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、LED News Tickerはフィードのタイトルのみを流す仕組みなので、タイトルが内容の要約になっていないとか、クリックベイトじみた煽りタイトルの記事ばかりのフィードを流すのにはあまり向いていません。&lt;/p&gt;
&lt;p&gt;速報性の高いニュース記事の多くは伝えるべき情報をタイトルで提示してくれますし、本文はさほど重要ではないケースも多いです。一方で、コラムやエッセイ、読み物のような記事になると、タイトルでストーリーやオチまで説明されると野暮だと感じることさえあるでしょう。&lt;/p&gt;
&lt;p&gt;一度に十数文字しか流せない情報量の低さでもニュースティッカーが成り立つのは、タイトルで情報が完結するという仮定が前提になっています。インターネットのトレンドを流す場合は、なんとなく話題になっているキーワードを知る程度の使い方がちょうどいいかもしれません。&lt;/p&gt;
&lt;h3 id="_5"&gt;自分で用意したテキストをランダムに流す&lt;/h3&gt;
&lt;p&gt;ニュースやトレンドではなく、事前に用意したテキストを流すのもよい使い方です。よくSNSで見かけるbotのように、誰かの名言を流し続けるとか、ずかんのフレーバーテキスト集を作るとか、来週の資格試験のために暗記したい文章をずっと流しておくとか、聖書や日本国憲法からランダムに1フレーズを選んだりすることもできます。&lt;/p&gt;
&lt;p&gt;まず、改行区切りでテキストを記載した &lt;code&gt;data.txt&lt;/code&gt; を作りましょう:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ひとみを のぞきこむと じぶんの すがたが みえる。だが その かおは いつも すこしだけ わらっている。
だいじな ひとを わすれた にんげんの そばに あらわれる。かおりを かぐと なぜか なみだが でるという。
いちど なかまと みとめた あいてを にどと はなさない。トレーナーが きえても その ばしょで まわりつづける。
やくそくを やぶった にんげんを さがしだす。みつけると こゆびに あかい いとを まきつけて どこかへ つれさる。
はなびらが じかんごとに いちまいずつ ちる。さいごの いちまいが ちるとき なにが おこるかは だれも しらない。
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;これを以下のスクリプト &lt;code&gt;random-words.mjs&lt;/code&gt; と同じフォルダに置いて実行します。30秒に一回のペースで &lt;code&gt;data.txt&lt;/code&gt; からランダムなテキストを&lt;a href="https://developer.mozilla.org/ja/docs/Web/API/Server-sent_events"&gt;SSE&lt;/a&gt;で配信する簡単なスクリプトです。SSEというのは、サーバからリアルタイムにコンテンツを配信する仕組みのひとつです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// @ts-check&lt;/span&gt;
&lt;span class="c1"&gt;// Random words SSE Server&lt;/span&gt;
&lt;span class="c1"&gt;// Usage: node random-words.mjs&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;createServer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;node:http&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;readFileSync&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;node:fs&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;POLL_INTERVAL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;30&lt;/span&gt;&lt;span class="nx"&gt;_000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LIST&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;data.txt&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;createServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;??&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sb"&gt;`http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;text/event-stream&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Cache-Control&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;no-cache&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;Connection&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;keep-alive&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Access-Control-Allow-Origin&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;alive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;close&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;alive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;alive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LIST&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;floor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;random&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;LIST&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt;&lt;span class="p"&gt;)];&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`data: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;\n\n`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;polling error:&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;data: 情報取得に失敗しました\n\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;POLL_INTERVAL&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;404&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nx"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`Random words SSE Server: http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;/`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/amane-katagiri/2ff0d0195f2d2ed18ce6252e423fce16#file-random-words-mjs"&gt;random-words.mjs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Node.jsが入っていなければ、コマンドプロンプトあたりで &lt;code&gt;winget install -e --id OpenJS.NodeJS.LTS&lt;/code&gt; を実行すれば手軽にインストールできます。環境が準備できたら起動してみましょう:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="go"&gt;&amp;gt; node random-words.mjs&lt;/span&gt;
&lt;span class="go"&gt;Random words SSE Server: http://127.0.0.1:3000/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;同じフォルダにバッチファイル &lt;code&gt;random-words.bat&lt;/code&gt; を置いておけば、ワンタッチで起動できます:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;cd&lt;/span&gt; /d &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;%~dp0&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
node random-words.mjs
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;起動後に&lt;a href="https://ticker.samoyed.moe/ticker/?type=sse&amp;amp;url=http%3A%2F%2Flocalhost%3A3000%2F"&gt;ローカルSSEが流れるティッカー&lt;/a&gt;を設定すると、用意したテキストが流れてくるはずです。トレイアイコンを右クリックで「Set Server...」からこのバッチファイルを指定すると、LED AppBarの起動と同時に常駐してくれるので便利です。文字化けしているようなら、 &lt;code&gt;data.txt&lt;/code&gt; がUTF-8で保存されているかを改めて確認してみてください。&lt;/p&gt;
&lt;h3 id="spotifynow-playing"&gt;SpotifyのNow Playingを流す&lt;/h3&gt;
&lt;p&gt;部屋に流れている曲の情報が流れるのって、音楽にこだわってる喫茶店みたいでおしゃれですね。Spotifyから再生中の曲を引くAPIは用意されているので、それをローカルに配信してLED AppBarが受け取れば簡単に表示できます。&lt;/p&gt;
&lt;p&gt;まず、&lt;a href="https://developer.spotify.com/"&gt;Spotify for Developers&lt;/a&gt;でAPIを利用するアプリケーションを登録しましょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;App name/App description/Website: なんでも&lt;/li&gt;
&lt;li&gt;Redirect URIs: &lt;code&gt;http://127.0.0.1:3000/callback&lt;/code&gt;&lt;sup id="fnref:spotify-callback"&gt;&lt;a class="footnote-ref" href="#fn:spotify-callback" title="http://[::1]:3000/callback も入れておくといいかもしれません。セキュリティ上のコーナーケースを潰すためか、localhost は使えないようです。"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Which API/SDKs are you planning to use?: Web API&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここからClient IDとClient secretをコピーして、以下のスクリプト &lt;code&gt;spotify-now-playing.mjs&lt;/code&gt; を実行します。10秒に一回のペースで再生中の曲を取得してSSEで配信する簡単なスクリプトです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// @ts-check&lt;/span&gt;
&lt;span class="c1"&gt;// Spotify Now Playing SSE Server&lt;/span&gt;
&lt;span class="c1"&gt;// Usage: node spotify-now-playing.mjs&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;createServer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;node:http&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;exec&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;child_process&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;CLIENT_ID&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SPOTIFY_CLIENT_ID&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;??&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;YOUR_CLIENT_ID&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;CLIENT_SECRET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SPOTIFY_CLIENT_SECRET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;??&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;YOUR_CLIENT_SECRET&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;REDIRECT_URI&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://127.0.0.1:3000/callback&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;SCOPES&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;user-read-currently-playing user-read-playback-state&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;POLL_INTERVAL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;10&lt;/span&gt;&lt;span class="nx"&gt;_000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;accessToken&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;refreshToken&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;tokenExpiresAt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;basicAuth&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kr"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;CLIENT_ID&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;CLIENT_SECRET&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;base64&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="cm"&gt;/**&lt;/span&gt;
&lt;span class="cm"&gt; * @param {string} code&lt;/span&gt;
&lt;span class="cm"&gt; */&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;exchangeCode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://accounts.spotify.com/api/token&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;Authorization&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sb"&gt;`Basic &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;basicAuth&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;URLSearchParams&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;grant_type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;authorization_code&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;redirect_uri&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;REDIRECT_URI&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}),&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;accessToken&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;access_token&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;refreshToken&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;refresh_token&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;tokenExpiresAt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;expires_in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ensureToken&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;tokenExpiresAt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;60&lt;/span&gt;&lt;span class="nx"&gt;_000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;refreshToken&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://accounts.spotify.com/api/token&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;application/x-www-form-urlencoded&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;Authorization&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sb"&gt;`Basic &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;basicAuth&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;URLSearchParams&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;grant_type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;refresh_token&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;refresh_token&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;refreshToken&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}),&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;accessToken&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;access_token&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;refresh_token&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;refreshToken&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;refresh_token&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;tokenExpiresAt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;expires_in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;getNowPlaying&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ensureToken&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;accessToken&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://api.spotify.com/v1/me/player/currently-playing&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Authorization&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sb"&gt;`Bearer &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;accessToken&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;204&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;401&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;track&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;artists&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;artists&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="cm"&gt;/** @type {{ name: string; }} */&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;, &amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;track&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt; - &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;artists&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;createServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;??&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sb"&gt;`http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;text/plain; charset=utf-8&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;accessToken&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sb"&gt;`GET http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;/now-playing から楽曲情報をSSEで配信します`&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sb"&gt;`GET http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;/login からSpotifyで認証を行ってください`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/login&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;authUrl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://accounts.spotify.com/authorize&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;authUrl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;searchParams&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;response_type&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;authUrl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;searchParams&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;client_id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;CLIENT_ID&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;authUrl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;searchParams&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;scope&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;SCOPES&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;authUrl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;searchParams&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;redirect_uri&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;REDIRECT_URI&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;302&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Location&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;authUrl.toString&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/callback&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;searchParams&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;code&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;text/plain; charset=utf-8&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;コードがありません&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;exchangeCode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;text/plain; charset=utf-8&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="sb"&gt;`GET http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;/now-playing から楽曲情報をSSEで配信します`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/now-playing&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;accessToken&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;401&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;text/plain; charset=utf-8&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="sb"&gt;`GET http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;/login からSpotifyで認証を行ってください`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;text/event-stream&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Cache-Control&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;no-cache&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;Connection&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;keep-alive&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Access-Control-Allow-Origin&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;alive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;lastTrack&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;close&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;alive&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;alive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;track&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;getNowPlaying&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;track&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;track&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;lastTrack&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`data: 再生中：&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;track&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;\n\n`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="nx"&gt;lastTrack&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;track&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;polling error:&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;data: 楽曲情報の取得に失敗しました\n\n&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;r&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;POLL_INTERVAL&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;writeHead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;404&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;text/plain&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;end&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}).&lt;/span&gt;&lt;span class="nx"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`Spotify Now Playing SSE Server: http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;/`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sb"&gt;`http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;/login からSpotifyで認証を行ってください`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`start http://127.0.0.1:&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;PORT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;/login`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/amane-katagiri/facc46bfd4709109e0ea46e8920b36f6#file-spotify-now-playing-mjs"&gt;spotify-now-playing.mjs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;では、動かしてみましょう。もし先に前節のランダムティッカーを起動していたら、そちらは止めてから実行してください。認証情報は以下のように環境変数で渡すか、スクリプトに直接記載してもいいです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="go"&gt;&amp;gt; set SPOTIFY_CLIENT_ID=xxx&lt;/span&gt;
&lt;span class="go"&gt;&amp;gt; set SPOTIFY_CLIENT_SECRET=yyy&lt;/span&gt;
&lt;span class="go"&gt;&amp;gt; node spotify-now-playing.mjs&lt;/span&gt;
&lt;span class="go"&gt;Spotify Now Playing SSE Server: http://127.0.0.1:3000/&lt;/span&gt;
&lt;span class="go"&gt;http://127.0.0.1:3000/login からSpotifyで認証を行ってください&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;バッチファイル &lt;code&gt;spotify-now-playing.bat&lt;/code&gt; にするならこんな感じです:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;cd&lt;/span&gt; /d &lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;%~dp0&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;SPOTIFY_CLIENT_ID&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;xxx
&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="nv"&gt;SPOTIFY_CLIENT_SECRET&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;yyy
node spotify-now-playing.mjs
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;起動したら画面の指示通りSpotifyでログインして、アプリケーションとの接続を許可します。許可後に&lt;a href="https://ticker.samoyed.moe/ticker/?type=sse&amp;amp;url=http%3A%2F%2Flocalhost%3A3000%2Fnow-playing"&gt;Now Playingが流れるティッカー&lt;/a&gt;を設定すると、「再生中：曲名 - アーティスト」のような表示が流れていくはずです。こちらも、トレイアイコンを右クリックで「Set Server...」からこのバッチファイルを指定できます。&lt;/p&gt;
&lt;h3 id="no-context"&gt;No Contextな文章を流す&lt;/h3&gt;
&lt;p&gt;文脈がよく分からない発言や意味のないテキストは、画面端を彩るインテリアにぴったりです。ここでは具体的な実装は示しませんが、以下のようなアイデアならすぐに実現できるでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wikipediaのランダム記事サマリ &lt;code&gt;https://ja.wikipedia.org/api/rest_v1/page/random/summary&lt;/code&gt; を流す&lt;sup id="fnref:wikipedia"&gt;&lt;a class="footnote-ref" href="#fn:wikipedia" title="冒頭の1～3文程度が入った extract を流すのがいい感じです。"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/rest/activity/events?apiVersion=2026-03-10"&gt;GitHubのパブリックイベント&lt;/a&gt; &lt;code&gt;https://api.github.com/events&lt;/code&gt; を取得して全世界のコミットメッセージを流す&lt;sup id="fnref:github-public-event"&gt;&lt;a class="footnote-ref" href="#fn:github-public-event" title="このAPIにはコミットメッセージが含まれていないので、さらに個別のコミット情報を取得する必要があります。ただしこの方式だと呼び出し回数がかさむので、アクセストークンでの認証をおすすめします。"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://misskey-hub.net/en/docs/for-developers/api/streaming/"&gt;MisskeyのStreaming API&lt;/a&gt; &lt;code&gt;wss://{host}/streaming&lt;/code&gt; からサンプリングした投稿を流す&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もしコーディングが面倒なら、「30秒に一度localhost:3000にテキストデータをSSEで配信するNodeスクリプトを1ファイルで書いて。内容は～」とAIに指示すれば、好みのテキストを垂れ流すサーバのできあがりです。&lt;/p&gt;
&lt;h2 id="_6"&gt;これから……？&lt;/h2&gt;
&lt;p&gt;デスクトップに流したら面白い文字をいくつか紹介してきましたが、これらはほんの一例です。世界にはまだまだ面白い文字がたくさんあります！　あなたが今思い浮かべて思わずニヤニヤしているテキストも、フィードに出力したり簡単なSSEサーバを用意すればすぐに流すことができます。&lt;/p&gt;
&lt;p&gt;みなさんもぜひ、LEDマトリクスパネル風ライブ壁紙ツール「&lt;a href="https://ticker.samoyed.moe/"&gt;LED News Ticker&lt;/a&gt;」やLEDマトリクスパネル風ウィジェット「&lt;a href="https://github.com/vividoyomogimochi/app-top-bar"&gt;LED AppBar&lt;/a&gt;」で面白い文字を流してみてください。いいアイデアがあったら共有してくれると嬉しいです。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:extern-c"&gt;
&lt;p&gt;Cのプログラムや、Cの呼び出し規約を通じて他の言語のプログラムからC++を呼び出す場合、 &lt;code&gt;extern "C"&lt;/code&gt; でCのABIを提供する必要があります。&amp;#160;&lt;a class="footnote-backref" href="#fnref:extern-c" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:spotify-callback"&gt;
&lt;p&gt;&lt;code&gt;http://[::1]:3000/callback&lt;/code&gt; も入れておくといいかもしれません。セキュリティ上のコーナーケースを潰すためか、&lt;a href="https://developer.spotify.com/documentation/web-api/concepts/redirect_uri"&gt;&lt;code&gt;localhost&lt;/code&gt; は使えない&lt;/a&gt;ようです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:spotify-callback" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:wikipedia"&gt;
&lt;p&gt;冒頭の1～3文程度が入った &lt;code&gt;extract&lt;/code&gt; を流すのがいい感じです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:wikipedia" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:github-public-event"&gt;
&lt;p&gt;このAPIにはコミットメッセージが含まれていないので、さらに個別のコミット情報を取得する必要があります。ただしこの方式だと呼び出し回数がかさむので、アクセストークンでの認証をおすすめします。&amp;#160;&lt;a class="footnote-backref" href="#fnref:github-public-event" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>ぼくらの同人作品ビューア（概念）</title><link href="https://ama.ne.jp/post/oh-my-doujin-viewer/" rel="alternate"/><published>2026-03-27T12:14:00+09:00</published><updated>2026-03-27T12:14:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-03-27:/post/oh-my-doujin-viewer/</id><summary type="html">&lt;p&gt;chkdrs: CHEck Digital Rights Sovereignty&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;まえがき&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;同人作品ビューアを考える&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;同人作品ビューアを探す&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;同人作品ビューアを作る&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;あとがき&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;まえがき&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://play.dlsite.com/"&gt;DLsite Play&lt;/a&gt;はかなり素敵な同人作品ビューアです。&lt;a href="https://www.dlsite.com/home/guide/dlplay"&gt;公式説明&lt;/a&gt;によれば、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;購入した作品のZIPファイルをダウンロードや解凍する手間もなく、ブラウザ上ですぐに作品を閲覧できる配信方法です。&lt;br&gt;
パソコン、スマートフォン、タブレットなどブラウザとインターネットに接続できる環境さえあれば、いつでも手軽に作品を楽しむことができます。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.dlsite.com/home/guide/dlplay"&gt;ブラウザ視聴について（DLsite Play）&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;とのことで、2015年の提供開始&lt;sup id="fnref:honjp"&gt;&lt;a class="footnote-ref" href="#fn:honjp" title="DLsite、電子書籍や音声／音楽作品を視聴できるWebブラウザビューワ「DLsite Play」を提供開始 | HON.jp News Blog"&gt;1&lt;/a&gt;&lt;/sup&gt;からDLsiteユーザーの視聴体験を支え続けています。同人作品をブラウザ上で視聴できるというサービスは、当時大学生になったばかりの私にとっては相当な衝撃でした。どうにか同じようなアプリを自分で作れないものか、と友人と議論したのを覚えています。その時はシンプルな構成に収めようと、オンデマンドでZIPを解凍できるnginxモジュールを見つけて試したものでした。&lt;/p&gt;
&lt;p&gt;2015年前後は、他サービスでも電子書籍のビューアを提供し始めたり、音楽のストリーミングサービスが参入し始める頃でしたが、多様な作品形式に対応していた点でDLsiteは一歩先を進んでいたといえます。それから10年経った2025年にも、&lt;a href="https://www.dlsite.com/modpub/dlplaybox/"&gt;DLsite GamePlay&lt;/a&gt;というスマホでPCゲームを遊べるストリーミングサービスを開始しており、かれらがいかにストレスなくコンテンツを楽しむ環境を重視しているかが分かるでしょう。&lt;/p&gt;
&lt;p&gt;さて、DLsite Playはかなり素敵な同人作品ビューアですが、大きな問題点があります。それは、作品購入後であっても、サークルが退会したり販売終了したら読めなくなること。そして、DLsiteで購入した作品しか読めないことです。DLsiteというコンテンツ販売サービスを支えるためのビューアなので当たり前ではあるものの、この素敵な同人作品ビューア体験と引き換えに、過去の傑作がZIP倉庫&lt;sup id="fnref:zip-archive"&gt;&lt;a class="footnote-ref" href="#fn:zip-archive" title="販売終了作品もDRMさえなければZIPファイルとして手元に残すことはできますが、手軽なビューアに比べて検索が面倒だし開くのも手間がかかります。すぐに手を伸ばせる本棚ではなく、押し入れの段ボールに保管されているイメージで「ZIP」の「倉庫」と表現しました。"&gt;2&lt;/a&gt;&lt;/sup&gt;に押しやられるのを受け入れるわけにはいきません。&lt;/p&gt;
&lt;p&gt;私が大学生の時分でDLsite Playクローンを作ろうと思ったのも、おおよそこういう事情によるものです。しかし、その夢は具体的な行動を伴わないまま10年ほどが経ちました。幸いにも、最近はこうした同人作品にも使えそうなOSSのビューアがいくつか出ていますし、今はClaude Codeが隔離されたWSLの上で動いているので、あの頃よりは理想を形にできそうです。&lt;/p&gt;
&lt;h2 id="_2"&gt;同人作品ビューアを考える&lt;/h2&gt;
&lt;p&gt;私が目指しているのは完全なDLsite Playクローンではありません。DLsite Playとは見た目や機能が似ていなくても、同人作品ビューア（あるいは同人作品管理システム）に必要な機能を備えていて、それが手元のコンテンツで動けばよいのです。&lt;/p&gt;
&lt;p&gt;しかしこれは、実は完全なDLsite Playクローンを実現するより難しい取り組みです。私が同人作品ビューアに何を求めていて、何があれば使いやすいのか、あるいはあっても意味のない機能とは？　それが分からないまま進めるとどうなるか――本当に必要な機能が揃っているミニマルなビューアを見逃してしまう。なんとなく機能が多い無料のビューアを入れてもイマイチ使いづらい。それなら、とClaude Codeに全部盛りのシステムを作ってもらったのに3日で使わなくなる――せっかくのAI最新技術もこれでは無意味です。&lt;/p&gt;
&lt;p&gt;こうした結末を防ぐために、仮に呼ぶとすれば「ぼくらの同人作品ビューア（概念）」がどんな姿をしているかを、事前によく想像しなければいけません。&lt;/p&gt;
&lt;p&gt;DLsite Playはかなり素敵な同人作品ビューアで、こうした概念を取り出すのに適した題材です。改めて公式説明やDLsite Play自体を眺めて、DLsite Playのいいところ・よくないところを挙げてみましょう。好みや慣れに過ぎないような点、DLsite Playに限らない特徴もとりあえず書いておきます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;画像・PDF・音声・動画・テキストなど様々な形式のコンテンツを1つの画面で閲覧できる。&lt;/li&gt;
&lt;li&gt;作品名とサークル名や作品形式が表示されており、必要に応じて絞り込める。&lt;/li&gt;
&lt;li&gt;作品の購入日が記録されており、作品名やサークル名と同様にソートできる。&lt;/li&gt;
&lt;li&gt;階層構造を持ったフォルダを閲覧できるシンプルなファイルマネージャ&lt;sup id="fnref:file-manager"&gt;&lt;a class="footnote-ref" href="#fn:file-manager" title="Windowsにおけるエクスプローラ、macOSにおけるFinderなど。ファイラー。"&gt;3&lt;/a&gt;&lt;/sup&gt;として扱える。&lt;/li&gt;
&lt;li&gt;フラットな同人作品の一覧と、階層構造を持つ同人作品フォルダの扱いを分離している。&lt;/li&gt;
&lt;li&gt;PDFをスクロール可能な連続したページではなく、1枚ずつ画像リストとして表示できる。&lt;/li&gt;
&lt;li&gt;音声はオーバーレイのキューで再生され、音声を聞きながら別の作品を読める。&lt;/li&gt;
&lt;li&gt;コンテンツが配信用に最適化されており、ローディングの待ち時間を意識することが少ない。&lt;/li&gt;
&lt;li&gt;よく使う機能はメニューバーに押し込めずに常に表示する一方で、細かいフィルタやソートも用意されており、UIのバランスがよい。&lt;/li&gt;
&lt;li&gt;レスポンシブデザインに対応しており、スマートフォンでも快適に閲覧できる&lt;sup id="fnref:dlsite-mobile-app"&gt;&lt;a class="footnote-ref" href="#fn:dlsite-mobile-app" title="スマートフォン向けにはアプリとしてDL Library（画像・PDF・テキスト作品向け）やDLsite Sound（音声作品向け）も提供されています。"&gt;4&lt;/a&gt;&lt;/sup&gt;。&lt;/li&gt;
&lt;li&gt;オフラインでの閲覧手段がある。オフラインキャッシュとして、あるいは作品のZIPファイルをそのままダウンロードできる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;よくないところは前述の通り、DLsiteで配信中の作品しか読めない点と、別のプラットフォームや自前で用意したコンテンツを登録できない点が最も大きいです。また、サークル側が手軽にDRMをかけられるようになっていて、購入者の所有権を軽視する傾向がありますが、これはDLsite Play自体のデメリットではありません。&lt;/p&gt;
&lt;p&gt;このような点を踏まえて、概念上の同人作品ビューアが備えるべき特徴を考えてみます。みなさんもやってみましょう。あったら嬉しいな、ではなく、これがなければ3日と経たずに捨ててしまうようなコア機能を探すのを意識してください。&lt;/p&gt;
&lt;p&gt;そして、いろいろ探しながら私が辿り着いた最小限の「ぼくらの同人作品ビューア（概念）」は、「作品フォルダ指向のプレビュー付きファイルマネージャ」になりました。DLsite Playの特徴を参考にもう少し具体的に記述すると、以下のような感じです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;フラットな同人作品フォルダの一覧と、階層構造を持った同人作品フォルダの2つを完全に区別して表示できる。深い階層の作品を閲覧していても、すぐに同人作品の一覧に戻れる。&lt;/li&gt;
&lt;li&gt;同人作品フォルダはファイルシステム上のファイル名とは異なる作品名を表示できる。ファイルシステムの制約を受けずに作品の名前を自由に設定できる。&lt;/li&gt;
&lt;li&gt;画像・PDF・音声・動画・テキストなど様々な形式のコンテンツを新しいタブやウィンドウを開かずに閲覧できる。前後のファイルに移動したり再生状態を操作できる最低限のUIを持つ。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;検索や絞り込み、購入日順ソート、サムネイル表示など実際に必要な機能は他にもいろいろありますが、最小限のコア機能はここだと思います。作品単位でとりあえず手軽にコンテンツを眺める、という使い方を想像してください。&lt;/p&gt;
&lt;p&gt;コア機能のスコープが定まったので、次は既存のソフトウェアでこれを実現できないか、という論点に移りましょう。&lt;/p&gt;
&lt;h2 id="_3"&gt;同人作品ビューアを探す&lt;/h2&gt;
&lt;p&gt;改めて、「ぼくらの同人作品ビューア（概念）」を示します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;フラットな同人作品フォルダの一覧と、階層構造を持った同人作品フォルダの2つを完全に区別して表示できる。&lt;/li&gt;
&lt;li&gt;同人作品フォルダはファイルシステム上のファイル名とは異なる作品名を表示できる。&lt;/li&gt;
&lt;li&gt;画像・PDF・音声・動画・テキストなど様々な形式のコンテンツを新しいタブやウィンドウを開かずに閲覧できる。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この程度なら少し探せばあるんじゃない？と思うかもしれませんが、全てにマッチするアプリケーションはなかなか見つかりませんでした。&lt;/p&gt;
&lt;p&gt;たとえば、Windowsのエクスプローラは、Alt+Pでプレビューウィンドウが使えるので3を満たしそうですが、実際はPDFは冒頭数ページだけ、音声や動画は外部アプリを開くので使い物になりません。1は全く区別できませんし、2ももちろんありません。&lt;/p&gt;
&lt;p&gt;この基準で、いくつか同人作品ビューアとして使えそうなアプリケーションを眺めてみましょう。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;アプリ&lt;/th&gt;
&lt;th&gt;カテゴリ&lt;/th&gt;
&lt;th align="center"&gt;作品リスト&lt;/th&gt;
&lt;th align="center"&gt;フォルダ階層&lt;/th&gt;
&lt;th align="center"&gt;別名表示&lt;/th&gt;
&lt;th align="center"&gt;マルチメディア&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DLsite Play&lt;/td&gt;
&lt;td&gt;ブラウザ&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/Difegue/LANraragi"&gt;LANraragi&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ブラウザ/画像&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/gotson/komga"&gt;Komga&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ブラウザ/画像&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/Mangatsu"&gt;Mangatsu&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ブラウザ/画像&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/kikoeru-project/kikoeru-express"&gt;Kikoeru&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ブラウザ/音声&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/advplyr/audiobookshelf"&gt;Audiobookshelf&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ブラウザ/音声&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/stashapp/stash"&gt;Stash&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ブラウザ/動画&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/nextcloud/server"&gt;Nextcloud&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ブラウザ&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/gtsteffaniak/filebrowser"&gt;FileBrowser Quantum&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ブラウザ&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/9001/copyparty"&gt;copyparty&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ブラウザ&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Windows Explorer&lt;/td&gt;
&lt;td&gt;ローカル&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.gpsoft.com.au/"&gt;Directory Opus&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ローカル&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.xnview.com/en/xnview-mp/"&gt;XnView MP&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ローカル/画像&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/neelabo/NeeView"&gt;NeeView&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ローカル/画像&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/hydrusnetwork/hydrus"&gt;Hydrus Network&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ローカル&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;△&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;マルチメディア列の△は、おおよそ一部の形式での使用に特化しており、他形式は未対応または簡易的なビューアのみ提供されているものです。&lt;/p&gt;
&lt;p&gt;これらを大きく分類すると、以下の4つのタイプがありそうです。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;タイプ&lt;/th&gt;
&lt;th align="center"&gt;作品フォルダ指向&lt;/th&gt;
&lt;th align="center"&gt;フォルダ階層&lt;/th&gt;
&lt;th align="center"&gt;マルチメディア&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DLsite Play&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;コミックを想定したビューア&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ファイルマネージャ系&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;階層表示可能なビューア&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;これを見ると、必要な要素を全て満たすアプリケーションはほとんどないことが分かります。あんまり意味はないですが、一応MECEにしておきましょうか。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;タイプ？&lt;/th&gt;
&lt;th align="center"&gt;作品フォルダ指向&lt;/th&gt;
&lt;th align="center"&gt;フォルダ階層&lt;/th&gt;
&lt;th align="center"&gt;マルチメディア&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;弱いファイルマネージャ？&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;強いスライドショーアプリ？&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;強いビューア？&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;弱いビューア？&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;これらの分析をまとめると、「ぼくらの同人作品ビューア（概念）」に求められるのは「作品フォルダの管理機能があるファイルマネージャ」とか「多くのメディアに対応した階層表示可能なビューア」といったものになりそうです。前節での定義とほとんど変わりませんが、既存のアプリケーションとの比較でもう少し具体的な姿を描くことができました。&lt;/p&gt;
&lt;p&gt;ここまで言語化できればしめたものです。問題は、この条件を満たすアプリケーションが見つからなかったことくらいでしょうか。&lt;/p&gt;
&lt;h2 id="_4"&gt;同人作品ビューアを作る&lt;/h2&gt;
&lt;p&gt;結局、いい感じの同人ビューアが見つからなかったので作ることにしました。デモ版を&lt;a href="https://chkdrs-demo.amane.moe/"&gt;chkdrs-demo.amane.moe&lt;/a&gt;に置いてあるので、興味のある方は触ってみてください。 &lt;code&gt;demo1:demodemo1&lt;/code&gt; ～ &lt;code&gt;demo9:demodemo9&lt;/code&gt; でログインできます。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://chkdrs-demo.amane.moe/"&gt;&lt;img alt="chkdrsのデモ画面" height="500" src="/images/oh-my-doujin-viewer/chkdrs-demo.png" width="750"&gt;&lt;/a&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://commons.wikimedia.org/wiki/File:Ghostwriter_digital.png"&gt;Ghostwriter digital.png&lt;/a&gt; is licensed under a &lt;a href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;CC BY-SA 4.0&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/tokio-rs/axum"&gt;axum&lt;/a&gt;&lt;sup id="fnref:axum"&gt;&lt;a class="footnote-ref" href="#fn:axum" title="Rust製のウェブアプリケーションフレームワーク。今回はAPIサーバとして使用しました。"&gt;5&lt;/a&gt;&lt;/sup&gt;のバックエンドと&lt;a href="https://github.com/sveltejs/kit"&gt;SvelteKit&lt;/a&gt;&lt;sup id="fnref:svelte-kit"&gt;&lt;a class="footnote-ref" href="#fn:svelte-kit" title="柔軟性があり高速なコンポーネントフレームワークのSvelteを使って構築されたフロントエンドフレームワーク。"&gt;6&lt;/a&gt;&lt;/sup&gt;のフロントエンドに、ローカルでの作品管理にも対応できるように&lt;a href="https://github.com/tauri-apps/tauri"&gt;Tauri&lt;/a&gt;&lt;sup id="fnref:tauri"&gt;&lt;a class="footnote-ref" href="#fn:tauri" title="Rust製のデスクトップ/モバイルアプリケーションフレームワーク。今回はモバイルアプリは対象外です。"&gt;7&lt;/a&gt;&lt;/sup&gt;でデスクトップモードも用意したクロスプラットフォームアプリです。コーディングの多くはClaude Codeが担当していますが、私の目でチェックしたり口を出したりするときのことを考えて、慣れているRustにしました。まだ開発中ですが、既に3つのコア機能は満たしています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;フラットな同人作品フォルダの一覧と、階層構造を持った同人作品フォルダの2つを完全に区別して表示できます。&lt;/li&gt;
&lt;li&gt;同人作品フォルダはファイルシステム上のファイル名とは異なる作品名を表示できます。&lt;/li&gt;
&lt;li&gt;画像・PDF・音声・動画・テキストなど様々な形式のコンテンツをビューアペインで開けます。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;さらに、利便性を高める以下の機能も実装しました。これがコア機能なのか追加機能なのかを区別できるのも、今回の分析あってこそです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;カタログ機能（作品を横断的にまとめるコレクション）&lt;/li&gt;
&lt;li&gt;プレイリスト機能（ファイル単位で追加できるシーケンシャルなリスト）&lt;/li&gt;
&lt;li&gt;簡易的なユーザ管理機能&lt;/li&gt;
&lt;li&gt;サムネイル自動生成機能&lt;/li&gt;
&lt;li&gt;配信用軽量メディア（画像リサイズなど）生成機能&lt;/li&gt;
&lt;li&gt;汎用ファイルキャッシュ機能&lt;/li&gt;
&lt;li&gt;ZIPダウンロード機能&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まだジャンルやタグを利用できなかったり、検索機能が弱かったり、ブラウザ側から作品をアップロードする機能もありませんが、裏を返せば私にとってはそれほど重要な機能ではないということです。なんでもかんでもあれば嬉しいわけでもないので、必要に応じて少しずつ拡張していく予定です。&lt;/p&gt;
&lt;h2 id="_5"&gt;あとがき&lt;/h2&gt;
&lt;p&gt;DLsite Playはかなり素敵な同人作品ビューアです。しかし、DLsiteの外側を見てくれません。他にもたくさんの同人作品ビューアがあります。しかし、それぞれ異なる欠点を抱えていました。結局のところ、全てを解決できる選択肢はないようです。Claudeにこのトレードオフについて相談してみましたが、「画像ビューアと音声ビューアを別々に立てて使うといいよ☆」なんて無茶な提案でお茶を濁してきます。なんてこった。&lt;/p&gt;
&lt;p&gt;そのため、今回は同人作品ビューアとして最も参考になるDLsite Playの機能面を掘り下げ、類似の既存アプリを調査した上で自作することにしました。自作に至るまでの過程は地味で苦しいものです――あれを入れてこれを入れて動かしたけど、結局ダメそう。設定とかカスタマイズの範囲でなんとかならないかな？　いろいろ試したけどやっぱ無理――じゃあ、自作しかないか。&lt;/p&gt;
&lt;p&gt;希望を満たすものがなければオーダーメイドで作るというのは、ソフトウェア以外でも当たり前の選択肢です。ただし、これも手間と機能のトレードオフになっています。AIエージェントを使えば時間や手間を大きく削減できるとはいえ、実装の責任はやはり自分にあります。実験的なプロジェクトや趣味のプログラミングでもない限り、自作せずに済むなら自作せずに完成度の高い既存のものを使う方が、楽だし安全だし経済的です。&lt;/p&gt;
&lt;p&gt;AIエージェントの発展で、技術的詳細をまるで気にすることなく「あれと同じの作って」「最強の◯◯アプリ作って」なんて一言指示すれば、誰でもそれっぽい見た目のそれっぽいアプリができるようになりました。さらに、それを「オレが設計して作ったんだぜ」なんて自慢して回りたくなる誘惑も増しています。なんてったって見た目はすごくいいし、機能も全部盛りだからです。&lt;/p&gt;
&lt;p&gt;しかし、要件も曖昧なままなんとなく便利機能をリストアップして作られた見た目だけのアプリケーションは、周囲はもちろん作った本人でさえ魅力を感じないはずです。本人に残っているのはAIガチャを引く高揚感の思い出だけ。ただの習作のTODOアプリが誰にも使われないのと同じように、AIガチャから得た興奮に利便性を見出す人はいません。&lt;/p&gt;
&lt;p&gt;既存アプリを調査してまだないものを作る、なんてソフトウェア開発では当たり前のように思えますが、AIエージェントを持った高揚感で全て自作で解決する選択肢しか見えなくなる人も増えています。もちろん、自作の全てが悪いわけではないですが、出来のいい先行研究を知らないとまともな結果が出せないというのは、AIがあろうがなかろうが同じことです。&lt;/p&gt;
&lt;p&gt;その取り組みの一例として、今回は欲しいものの概念を粘土のようにこね上げてから、最終的に自作の同人作品ビューアを選んだ過程について書いてみました。参考になれば幸いです。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:honjp"&gt;
&lt;p&gt;&lt;a href="https://hon.jp/news/1.0/0/6416"&gt;DLsite、電子書籍や音声／音楽作品を視聴できるWebブラウザビューワ「DLsite Play」を提供開始 | HON.jp News Blog&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:honjp" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:zip-archive"&gt;
&lt;p&gt;販売終了作品もDRMさえなければZIPファイルとして手元に残すことはできますが、手軽なビューアに比べて検索が面倒だし開くのも手間がかかります。すぐに手を伸ばせる本棚ではなく、押し入れの段ボールに保管されているイメージで「ZIP」の「倉庫」と表現しました。&amp;#160;&lt;a class="footnote-backref" href="#fnref:zip-archive" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:file-manager"&gt;
&lt;p&gt;Windowsにおけるエクスプローラ、macOSにおけるFinderなど。ファイラー。&amp;#160;&lt;a class="footnote-backref" href="#fnref:file-manager" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:dlsite-mobile-app"&gt;
&lt;p&gt;スマートフォン向けにはアプリとしてDL Library（画像・PDF・テキスト作品向け）やDLsite Sound（音声作品向け）も提供されています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:dlsite-mobile-app" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:axum"&gt;
&lt;p&gt;Rust製のウェブアプリケーションフレームワーク。今回はAPIサーバとして使用しました。&amp;#160;&lt;a class="footnote-backref" href="#fnref:axum" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:svelte-kit"&gt;
&lt;p&gt;柔軟性があり高速なコンポーネントフレームワークのSvelteを使って構築されたフロントエンドフレームワーク。&amp;#160;&lt;a class="footnote-backref" href="#fnref:svelte-kit" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:tauri"&gt;
&lt;p&gt;Rust製のデスクトップ/モバイルアプリケーションフレームワーク。今回はモバイルアプリは対象外です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:tauri" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>ははいぬ・けつあつ・くちかせ――日本語のhuman-readable nameを考える</title><link href="https://ama.ne.jp/post/human-readable-name/" rel="alternate"/><published>2026-03-09T23:44:00+09:00</published><updated>2026-03-09T23:44:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-03-09:/post/human-readable-name/</id><summary type="html">&lt;p&gt;りと・ことこ・まり&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#docker-run"&gt;docker run ...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#dd-ifdevrandom"&gt;dd if=/dev/random ...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ssh-keygen-lv"&gt;ssh-keygen -lv ...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#shuf-n-3-words"&gt;shuf -n 3 words...&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#1"&gt;① 赤い・青い・黄色い・きりん・ぞう...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-cat-core_lexcsv"&gt;② cat core_lex.csv ...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3"&gt;③ さやか・ほむら・りんこ・まなか・かえで...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#logout"&gt;logout ...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="docker-run"&gt;&lt;code&gt;docker run ...&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Dockerでコンテナを起動するとき、 &lt;code&gt;--name&lt;/code&gt; を与えないとランダムな英単語の組み合わせで名前が付くことはよく知られています。これはコンテナIDやUUIDのような完全にランダムな16進数ではなく、人間でも読みやすく見分けやすいIDを与える仕組みです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;docker&lt;span class="w"&gt; &lt;/span&gt;run&lt;span class="w"&gt; &lt;/span&gt;hello-world

Hello&lt;span class="w"&gt; &lt;/span&gt;from&lt;span class="w"&gt; &lt;/span&gt;Docker!
...

$&lt;span class="w"&gt; &lt;/span&gt;docker&lt;span class="w"&gt; &lt;/span&gt;ps&lt;span class="w"&gt; &lt;/span&gt;-a&lt;span class="w"&gt; &lt;/span&gt;--format&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;table {{.ID}} {{.Names}}&amp;quot;&lt;/span&gt;
CONTAINER&lt;span class="w"&gt; &lt;/span&gt;ID&lt;span class="w"&gt; &lt;/span&gt;NAMES
f194dc6f87b5&lt;span class="w"&gt; &lt;/span&gt;wonderful_kowalevski
ff656b2992d0&lt;span class="w"&gt; &lt;/span&gt;kind_chaplygin
130258500f29&lt;span class="w"&gt; &lt;/span&gt;festive_nash
5bcc03f329fe&lt;span class="w"&gt; &lt;/span&gt;clever_bardeen
977e200749ca&lt;span class="w"&gt; &lt;/span&gt;hopeful_moore
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;この名前の生成ロジックは、&lt;a href="https://github.com/moby/moby/blob/master/internal/namesgenerator/names-generator.go"&gt;namesgenerator&lt;/a&gt;というパッケージで提供されています。ハードコードされた形容詞（108個）と著名人の姓（236個）から（非暗号論的な）乱数を元に1つずつ選び、 &lt;code&gt;_&lt;/code&gt; で接続するというシンプルな実装です。&lt;/p&gt;
&lt;p&gt;ちなみに、このパッケージはもともと外部参照可能なpkgにあったのですが、&lt;a href="https://github.com/moby/moby/pull/43210"&gt;Freeze the namesgenerator package against new additions&lt;/a&gt;というPRをきっかけに単語リストが凍結されて、最終的に内部専用のinternalに移動しました。これらの単語リストのスラング的な意味合いや人物リストの評価で物議を醸す事態が長年にわたって続いており、メンテナンスの負担が高くなったことが主な理由だと、同PRや古い&lt;a href="https://pkg.go.dev/github.com/docker/docker/pkg/namesgenerator"&gt;namesgeneratorパッケージ&lt;/a&gt;の説明に記されています。&lt;/p&gt;
&lt;h2 id="dd-ifdevrandom"&gt;&lt;code&gt;dd if=/dev/random ...&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;さて、このような人間可読で（本来は）意味を持たない単語の組み合わせをhuman-readable nameと呼ぶことにしましょう。human-readable nameの決定には、以下の要素が必要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1種類以上の空でない単語リスト（例: 形容詞のリストと著名人の姓のリスト）&lt;/li&gt;
&lt;li&gt;単語を結合する文字（例: &lt;code&gt;_&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;各単語リストから単語を取り出す1つ以上の位置&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このうち、単語リストのインデックスを取り出す方法には大きく分けて2つあります。まずはDockerと同じく乱数プールから取り出したランダムなインデックス、もう1つは対象のデータに基づく決定的な手法です。&lt;/p&gt;
&lt;p&gt;たとえば、あるIDと数値を持つオブジェクトにhuman-readable nameを付けるとき、JSON表現が &lt;code&gt;{"key":"answer","value":42}&lt;/code&gt; なら必ず &lt;code&gt;brilliant_jerk&lt;/code&gt; という名前にすることもできます。単純な実装では、SHA-256をとって前半と後半のバイトの剰余を取れば、決定的なインデックスを得られるでしょう。&lt;/p&gt;
&lt;p&gt;human-readable nameから元のオブジェクトを計算できるわけではないので、役に立つシーンはそう多くなさそうですが、人間がバイト列の一致を視覚的に見分けるための表現としてはとても役に立ちます。&lt;/p&gt;
&lt;h2 id="ssh-keygen-lv"&gt;&lt;code&gt;ssh-keygen -lv ...&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;実際のところ、human-readableといわれる名前は全ての地域や文化圏に共通の概念ではありません。冒頭のDocker出力例にあった &lt;code&gt;kowalevski&lt;/code&gt; を一目で&lt;a href="https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%82%A3%E3%82%A2%E3%83%BB%E3%82%B3%E3%83%AF%E3%83%AC%E3%83%95%E3%82%B9%E3%82%AB%E3%83%A4"&gt;ソフィア・コワレフスカヤ&lt;/a&gt;のことだと理解するのは多くの日本人には難しく、これなら「不思議なソフィア」なんて文字列の方が読みやすく覚えやすいはずです。&lt;/p&gt;
&lt;p&gt;もちろん、このような名前はASCII文字で構成するのがある種の暗黙的了解であり、human-readable nameが登場しうるほとんどの場所で安全に使えることは重要な利点です。しかし、もともとhuman-readable nameは人間が触れるインターフェースを構成する代替手段のはずでした。世界をUnicodeが支配した今となっては、既に多くの環境で問題なく扱えるとみなしても問題ないでしょう。&lt;/p&gt;
&lt;p&gt;このようなIDの代替表現という目的をさらに広く捉えると、ASCII文字の単語の組み合わせに限らず、バイト列をさらに読みやすく置き換える表現を活用している例はたくさんあります。&lt;/p&gt;
&lt;p&gt;秘匿性の高い通信アプリSignalにおいて、お互いに意図した相手と通信しているかを示すSafety Numbersは、16進数のハッシュを60桁の数字で表現して一致を確認しやすくする仕組みです。&lt;/p&gt;
&lt;p&gt;OpenSSHで公開鍵のフィンガープリントを示す際に使われる二次元的なパターンも、randomartと呼ばれるhuman-readableな表現です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;+--[&lt;/span&gt;&lt;span class="n"&gt;ED25519 256&lt;/span&gt;&lt;span class="o"&gt;]--+&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;oB&lt;/span&gt;&lt;span class="o"&gt;+*&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;..&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=+&lt;/span&gt;&lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;....&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;..&lt;/span&gt;&lt;span class="n"&gt;S&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;ooEoo&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;|+**+&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="c1"&gt;----[SHA256]-----+&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;分散型の通信プロトコロルのMatrixでは、Signalと同様のMITM対策の検証としてSAS（Short Authentication String）が導入されており、対応しているクライアントでは事前に定義された64個の絵文字の組み合わせで一致を確認できます。数字の羅列よりもさらに人間の視覚に合わせた仕組みだと言えるでしょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="MatrixクライアントのElementで検証用の絵文字が7個表示されている様子" height="350" src="/images/human-readable-name/matrix.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;認証の分野から離れると、what3wordsもhuman-readableな表現の重要な実装のひとつです。このサービスは、3メートル四方に区切った地図の各領域に3つの単語を与えて、位置を共有できるようにしたものです。what3wordsの位置は &lt;code&gt;///&lt;/code&gt; というプレフィックスで始まり、たとえば「///りゅっく。かたづけ。しぶる」のように示します。同じ位置で複数の言語にマッピングされており、英語では「///grocers.powerful.wanted」、韓国語では「///황태.늦잠.배우자」、クメール語では「///សេីច.ជាថ្មី.ត្រឹមតែ」というように、Dockerの名前生成が抱えていた文化的・言語的問題をある程度解決しています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="what3wordsで海芝浦駅の位置をスウェーデン語で示している様子" height="438" src="/images/human-readable-name/what3words.png" width="750"&gt;&lt;/p&gt;
&lt;h2 id="shuf-n-3-words"&gt;&lt;code&gt;shuf -n 3 words...&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;さて、これらの多様なhuman-readable表現を参考に、改めて日本語のhuman-readable nameについて考えましょう。必要なのは以下の要素でした。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1種類以上の空でない単語リスト&lt;/li&gt;
&lt;li&gt;単語を結合する文字&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;結合文字は &lt;code&gt;・&lt;/code&gt; や &lt;code&gt;、&lt;/code&gt; がいいでしょう。「ははいぬ・けつあつ・くちかせ」のような感じですね。日本語ならスペース &lt;code&gt;&lt;/code&gt; でも見栄えはいいですが、シェルやクエリで使うにはあまりに区切り文字としての意味が強すぎます。&lt;/p&gt;
&lt;p&gt;ここまで決めれば、あとは入れ替え可能な単語リストを用意してリポジトリに含めるだけです。たとえば、単語リストが1種類なら以下でhuman-readable nameを生成できます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;shuf&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;path/to/words.txt&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;paste&lt;span class="w"&gt; &lt;/span&gt;-sd&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;_&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;s/_/・/g&amp;#39;&lt;/span&gt;
ははいぬ・けつあつ・くちかせ
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;というわけで、最後に日本語の単語リストを決めましょう。この単語がhuman-readable nameの印象を大きく変えるので、丁寧に検討する必要があります。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;user: ランダムな人間向けのIDを生成するのに向いた日本語の単語リストって、どこかで配布されてる？&lt;br&gt;
assistant: 日本語だと...正直、ちゃんと整備された「日本語IDジェネレーター向けワードリスト」って意外と少ないんだよね😅&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;……えーっと、どうやって集めますか？&lt;/p&gt;
&lt;p&gt;Dockerレベルのランダム生成で25000パターンくらいなので、2つの組み合わせなら160単語くらい必要です。でも、3つ取り出すなら30単語くらいあれば足りるでしょう。30単語を3種類用意しても90単語なので、実はあまり難しいものではありません。&lt;/p&gt;
&lt;p&gt;ただし、過去に使ったhuman-readable nameをずっと保持する設計であれば、かなり心許ないパターン数になります。&lt;/p&gt;
&lt;h3 id="1"&gt;① 赤い・青い・黄色い・きりん・ぞう...&lt;/h3&gt;
&lt;p&gt;思い付いた単語を順番に書いていくんですね！　30単語くらいなら自分で書き出したり、AIに頼むのも現実的です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;大きな
小さな
長くて
短くて
高くて
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/amane-katagiri/super-duper-words-ja/blob/master/sample-adjective30-1.txt"&gt;sample-adjective30-1.txt&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;大きい
小さい
長い
短い
高い
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/amane-katagiri/super-duper-words-ja/blob/master/sample-adjective30-2.txt"&gt;sample-adjective30-2.txt&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;犬
猫
うさぎ
ハムスター
リス
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/amane-katagiri/super-duper-words-ja/blob/master/sample-noun30.txt"&gt;sample-noun30.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;この3つを順番に並べると、こういうほのぼのコミカルなhuman-readable nameが得られます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;seq&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;do&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;bash&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;shuf -n 1 sample-adjective30-1.txt; shuf -n 1 sample-adjective30-2.txt; shuf -n 1 sample-noun30.txt&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;paste&lt;span class="w"&gt; &lt;/span&gt;-sd&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;done&lt;/span&gt;
甘くて辛いゾウ
小さな硬いクジラ
強くて軽いリス
低くて多いシマウマ
軽くて大きい犬
重くて重いトラ
遅くて速いシマウマ
弱くて暗いサイ
明るくて柔らかいトラ
硬くて多いオオカミ
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="2-cat-core_lexcsv"&gt;② &lt;code&gt;cat core_lex.csv ...&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;辞書から単語を取り出すんですね！　&lt;a href="https://github.com/amane-katagiri/super-duper-words-ja/blob/master/sudachi-dict-hiragana-words.py"&gt;こういうスクリプト&lt;/a&gt;でSudachi辞書から名詞や形容詞の読み仮名を取り出して、いい感じの長さの単語だけ残すと13000語くらいのひらがなを取り出せます。3つの組み合わせなら2.2兆パターンくらい使えるので、uint32で不安にならないシステムなら十分でしょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;あいい
あいうえお
あいうち
あいお
あいか
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/amane-katagiri/super-duper-words-ja/blob/master/sudachi-dict-hiragana-words.txt"&gt;sudachi-dict-hiragana-words.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;こっちはフラットな印象のhuman-readable nameになります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;seq&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;do&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;shuf&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sudachi-dict-hiragana-words.txt&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;paste&lt;span class="w"&gt; &lt;/span&gt;-sd&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;_&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;s/_/・/g&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;done&lt;/span&gt;
からたけ・おおめ・にんめん
ありったけ・せんれん・きへき
ふはつ・おりかた・いやふき
ふしのき・きほん・たっす
さくれつ・こくおう・あまちゃ
きわもの・いとよ・けいゆ
もうへい・そせい・ふみあと
きおく・さいのめ・あせかき
ふえん・ちんろん・とんか
しかい・むおん・いっく
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="3"&gt;③ さやか・ほむら・りんこ・まなか・かえで...&lt;/h3&gt;
&lt;p&gt;好きなキャラクターの名前ですか！　覚えやすくていいですね。100人くらいすぐに出てきそうですし、並べるとカップリングみたいに見えるのもいいところです。150人なら23000パターンくらいで、Docker程度のランダム性を確保できます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;あかり
ひなた
さくら
みずき
ことね
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/amane-katagiri/super-duper-words-ja/blob/master/sample-charactors.txt"&gt;sample-charactors.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ゲームやアニメの登場人物一覧データは、だいたい有志のwikiにはよくまとまっているのですが、機械的に処理しやすいCSVやスプレッドシートなどはそう多くない印象でした。ポケモンの名前がJSONにまとまっているNode.jsライブラリ&lt;a href="https://github.com/sindresorhus/pokemon"&gt;pokemon&lt;/a&gt;はあったので、ここから取り出してもいいでしょう。&lt;/p&gt;
&lt;p&gt;こっちは想像力が鍛えられるかもしれないhuman-readable nameになります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;seq&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;do&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;shuf&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sample-charactors.txt&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;paste&lt;span class="w"&gt; &lt;/span&gt;-sd&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;_&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;s/_/・/g&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;done&lt;/span&gt;
あやね・のぞみ・なぎ
いちか・ちさと・なのか
みお・あやね・らん
らん・れん・かなで
ことね・すず・このは
なぎ・そら・かすみ
あかり・いちか・ゆい
きらら・ことね・りりか
みれい・ほのか・えみ
しずく・ももか・ちひろ
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="logout"&gt;&lt;code&gt;logout ...&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;ランダムなhuman-readable nameの生成自体は、掘り下げる余地もないシンプルな実装です。一方で、そのロジックに与える単語リストにはまだ検討の余地があります。&lt;/p&gt;
&lt;p&gt;最近、自作のAIエージェントセッション管理システムでランダムな日本語のIDを生成しようとしたところ、使いやすい単語リストの用意になかなか手間取ってしまったので、振り返りとしてこの記事を書きました。&lt;/p&gt;
&lt;p&gt;あなたが秘蔵している使いやすいフォーマットの日本語リストがありましたら、ぜひ私にも教えてください。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>2026/02/01～2026/03/02</title><link href="https://ama.ne.jp/post/report-20260302/" rel="alternate"/><published>2026-03-02T22:02:00+09:00</published><updated>2026-03-02T22:02:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-03-02:/post/report-20260302/</id><summary type="html">&lt;p&gt;2026/02/01～2026/03/02のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;季節に合わせたわずかなエフェクトを追加しました。&lt;ul&gt;
&lt;li&gt;2026年4月まで、約8割のページで桜の花びらがひらひら舞うエフェクトが3秒間表示されます（&lt;a href="https://x.com/amane_katagiri/status/2027903565835211175"&gt;参考&lt;/a&gt;）。&lt;/li&gt;
&lt;li&gt;初夏以降のエフェクトについては現在検討中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ズーム機能を利用した際のスタイルを整理しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.jxck.io/entries/2026-02-11/text-scale.html"&gt;text-scale によるユーザ指定倍率での文字拡大&lt;/a&gt;を参考にした技術的改善です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;印刷時に適用されるスタイルを改善しました。&lt;/li&gt;
&lt;li&gt;特定の画面幅で見た目が崩れるケースがあったため、スタイルを修正しました。&lt;/li&gt;
&lt;li&gt;ページ上部に表示される広告を整理しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【お知らせ】&lt;/strong&gt; あまねけ！総集編「変天美音」シリーズの最新作・&lt;a href="https://hen.booth.pm/items/7996217"&gt;変天美音Ⅱ&lt;/a&gt;が刊行されました！　特別付録の香りの小瓶と共にお楽しみください。&lt;/p&gt;
&lt;p&gt;やり取りの手間や住所の開示を気にしない方は、手数料のかからない支払い方法やクリックポストなどのより安い配送手段でお送りできます。お気軽にご連絡ください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/eat-soft-hard/"&gt;小動物以外ぜんぶ食う&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;東京スカイツリータウンに売られている「空 de 餅」という雲をイメージした柔らかい餅菓子について掘り下げた文章です。&lt;/li&gt;
&lt;li&gt;初めて買ったときからいつか書こうと思っていたネタを消費しました。こういう不定形のいきものたちを大事にしていきたいですね。&lt;/li&gt;
&lt;li&gt;この記事はかわいいハムスターの回し車から得られたクリーンな電力で執筆されています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/pam-nagato/"&gt;「条件を対等にするだけ。許可を」「よし、やっちまえ！」の裏側&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;Google Cloudなどのクラウドコンピューティングサービスにおいて利用可能な「承認つき権限昇格」の機能をモチーフにした読み物です。&lt;/li&gt;
&lt;li&gt;もはやAIエージェントに機密情報やAPIキーを渡すことは日常茶飯事かと思いますが、「流石にこの作業は人のチェックを挟んで &lt;em&gt;責任&lt;/em&gt; を負う必要がある」と感じたときに便利です。既にAIが責任まで取ってくれる仕組みができていたらすみません。&lt;/li&gt;
&lt;li&gt;タイトルは涼宮ハルヒの暴走「射手座の日」より借用しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/vbs-ps1-slient/"&gt;WScript.ShellからStart-Processへ（一敗と、さらにその後）&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;完全ステルスでバッググラウンド実行する手軽な手段としてよく出てくるVBScriptを、よりモダンでシンプルな方法に置き換えるまでの記録です。&lt;/li&gt;
&lt;li&gt;こういう小さなTipsもAIに聞けばいろいろ教えてくれるので、これからは書く必要のないタイプの記事です。でも、PowerShell経由ではどうやっても黒画面が出ることは、AIもまだ知らないみたいでした。&lt;/li&gt;
&lt;li&gt;C#はビルド環境の用意が面倒そうだと思ったのでGoで書きましたが、近年は手軽に動かせるんですね。環境より界隈の方が面倒そうだったので使わないと思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>WScript . ShellからStart-Processへ（一敗と、さらにその後）</title><link href="https://ama.ne.jp/post/vbs-ps1-slient/" rel="alternate"/><published>2026-02-25T17:05:00+09:00</published><updated>2026-02-25T17:05:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-02-25:/post/vbs-ps1-slient/</id><summary type="html">&lt;p&gt;かわいい巻物は全部で3種類！&lt;/p&gt;</summary><content type="html">&lt;p&gt;Windowsでウィンドウを一切表示せずにバックグラウンドで実行してほしいスタートアッププログラムがあるとき、VBScriptで以下のスクリプトを用意しておくと便利ですね。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Set ws = CreateObject(&amp;quot;WScript.Shell&amp;quot;)
ws.run &amp;quot;WRITE YOUR COMMAND HERE&amp;quot;, vbhide
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;これを &lt;code&gt;startup-your-brain.vbs&lt;/code&gt; として保存して、スタートアップフォルダ&lt;sup id="fnref:startup-dir"&gt;&lt;a class="footnote-ref" href="#fn:startup-dir" title="エクスプローラで shell:startup と入力して移動するのが速いです。"&gt;1&lt;/a&gt;&lt;/sup&gt;にショートカットを置くと、次回起動時から指定したプログラムが起動します。画面には変化がありませんが、タスクマネージャーから見ると起動しているのが確認できるかもしれません。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ws.run&lt;/code&gt; がプログラムを実行するメソッドで、 &lt;code&gt;vbhide&lt;/code&gt; オプションによってウィンドウが作られなくなるようです。与えたプログラムがジョブの完了と共に終了するものならプロセスは残りませんし、バックグラウンドで何かを実行するプログラムならずっと待機してくれます。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/VBScript"&gt;VBScript（Microsoft Visual Basic Scripting Edition）&lt;/a&gt;は、1996年から&lt;a href="https://ja.wikipedia.org/wiki/JScript"&gt;JScript&lt;/a&gt;と共にブラウザでの処理を目的に搭載されたスクリプト言語です。これがWindows上で動作するスクリプトエンジン&lt;a href="https://ja.wikipedia.org/wiki/Windows_Script_Host"&gt;WSH（Windows Script Host）&lt;/a&gt;で動作する汎用スクリプト言語として採用され、今回のようなバッググラウンドでのスタートアップに使えるようになりました。&lt;/p&gt;
&lt;p&gt;しかし、Windowsの普及初期から長い歴史が続くVBScriptは、Visual BasicやVBA（Visual Basic for Applications）に比べて言語としての表現力が低く、使いにくい点も多いです。また、2024年頃にはVBScriptを中長期的に廃止する計画が発表されており&lt;sup id="fnref:deprecated-vbscript"&gt;&lt;a class="footnote-ref" href="#fn:deprecated-vbscript" title="VBScript deprecation: Timelines and next steps | Windows IT Pro Blog"&gt;2&lt;/a&gt;&lt;/sup&gt;、2027年にはデフォルトでインストールされなくなると明言されています。&lt;/p&gt;
&lt;p&gt;Windows上で動作する汎用スクリプトとしてのVBScriptの代替は、既に&lt;a href="https://ja.wikipedia.org/wiki/PowerShell"&gt;PowerShell&lt;/a&gt;が担っています。PowerShellは2003年頃からWSHの代替として開発された新世代のシェルであり、現在は主にPowerShell 5.1とPowerShell 7.xが利用できます。スクリプトファイルの拡張子は &lt;code&gt;*.ps1&lt;/code&gt; です。&lt;/p&gt;
&lt;p&gt;さて、冒頭のバッググラウンドでのスタートアップをPowerShellで書くにはどうしたらいいでしょうか？　調べてみると、以下のような感じになりそうです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;Start-Process&lt;/span&gt; &lt;span class="n"&gt;-FilePath&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;COMMAND&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;-ArgumentList&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;-y our --argument list&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;-WindowStyle&lt;/span&gt; &lt;span class="n"&gt;Hidden&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;では、保存した &lt;code&gt;startup-your-brain.ps1&lt;/code&gt; を実行してみましょう。&lt;/p&gt;
&lt;p&gt;……あれ、ダブルクリックしても実行できませんね。コンテキストメニューに「PowerShell で実行」があります。いったん試してみましょうか。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;このシステムではスクリプトの実行が無効になっているため、ファイル startup-your-brain.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
    + CategoryInfo          : セキュリティ エラー: (: ) []、ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnauthorizedAccess
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;コンソールアプリ特有の黒い画面が表示され、こんなエラーが赤文字で出てきました。なんだか怖いですね。特に実行ポリシーを触ったことはなかったのですが、今は「Restricted」になっています。このポリシーでは、PowerShell上でコマンドを実行できても、スクリプトを起点にした実行はできないようです。WSHに隠れてマルウェアが爆増した歴史を踏まえれば、セキュリティ上当然の対策かもしれませんが、ちょっと不便ですね。&lt;/p&gt;
&lt;p&gt;では、ショートカットでPowerShellを経由してスクリプトを呼ぶ作戦に切り替えてみましょう。一時的にポリシーを「RemoteSigned」にゆるめるオプションを与えたショートカットを作り、ローカルのスクリプトを実行できるようにします。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;powershell&lt;/span&gt; &lt;span class="n"&gt;-ExecutionPolicy&lt;/span&gt; &lt;span class="n"&gt;RemoteSigned&lt;/span&gt; &lt;span class="o"&gt;-File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;startup-your-brain.ps1&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;……おっ、動いていそうです！　しかし、黒いウィンドウが一瞬表示されてしまいました。これでは「ウィンドウを一切表示せずにバックグラウンドで実行」とはなりません。&lt;/p&gt;
&lt;p&gt;では、PowerShellのポリシー自体をゆるくしたらどうでしょう？　一時的な実験として、実行ポリシーを「RemoteSigned」にしてみます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&amp;gt; Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は &amp;quot;N&amp;quot;): y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;この状態で、もう一度 &lt;code&gt;startup-your-brain.ps1&lt;/code&gt; を「PowerShell で実行」してみます。&lt;/p&gt;
&lt;p&gt;このポリシーならスクリプト単体で動きましたが、やはり黒いウィンドウが表示されてしまいました。どうも、PowerShell単体では黒いウィンドウは抑制できないように見えます。コンソールアプリだからでしょうか？&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PowerShell -WindowStyle Hidden -Command Exit&lt;/code&gt; と足すといい、という情報もかなり流通していて試しましたが、動作はほぼ変わりませんでした。調べた感じでは、おそらくタスクスケジューラに登録しても変わらないみたいです。確かに、過去にバッチファイル（コマンドプロンプト）でいろいろな回避策を試して上手くいかなかった末にVBScript経由で起動しているわけなので、問題が逆戻りしただけという気がします。&lt;/p&gt;
&lt;p&gt;……なるほど。つまり、現時点ではVBScriptからPowerShellに移行するメリットはなさそうです。2027年になってもインストールすればまだまだVBScriptは使えるので、急いで移行しなくても大丈夫かもしれません。&lt;/p&gt;
&lt;p&gt;うーん。与えられたプログラムを起動するだけの透明なGUIツールがほしいだけなのに――あれ？　これ、さっさと作っちゃった方が早い気がしますね。C#とかはビルド環境を整えるのが面倒そうなので、Goでやってみましょうか。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;package&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;main&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;os&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;os/exec&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;syscall&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Args&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SysProcAttr&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;syscall&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SysProcAttr&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;HideWindow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;これだけシンプルなら、脆弱性が入り込む余地もないでしょう。マルウェアの隠れ蓑にはなるかもしれませんが……まぁ、これくらいツールキットなら同梱されているレベルのものです。では、Windows向けにビルドしてみますね。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;GOOS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;windows&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GOARCH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;amd64&lt;span class="w"&gt; &lt;/span&gt;go&lt;span class="w"&gt; &lt;/span&gt;build&lt;span class="w"&gt; &lt;/span&gt;-ldflags&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-H=windowsgui&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;silent.exe&lt;span class="w"&gt; &lt;/span&gt;main.go
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;-ldflags="-H windowsgui"&lt;/code&gt; でGUIアプリとしてビルドします。&lt;/p&gt;
&lt;p&gt;これで、VBScriptから本当に欲しい機能だけを抜き出したシンプルなツールの完成です。もしGoのビルド環境はないけど使ってみたい、かつ私を信頼できる方はビルド済みの &lt;a href="/appendices/vbs-ps1-slient/silent.exe"&gt;silent.exe&lt;/a&gt; を差し上げますのでお使いください。&lt;/p&gt;
&lt;p&gt;では、早速使ってみましょう！　これならショートカット方式で呼び出せるはずです。以下のようなショートカットを作ります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;silent.exe&lt;span class="w"&gt; &lt;/span&gt;COMMAND&lt;span class="w"&gt; &lt;/span&gt;-y&lt;span class="w"&gt; &lt;/span&gt;our&lt;span class="w"&gt; &lt;/span&gt;--argument&lt;span class="w"&gt; &lt;/span&gt;list
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ダブルクリックで起動すると、無事に「ウィンドウを一切表示せずにバックグラウンドで実行」できるはずです！　これでもう、VBScriptが明日いきなり消えてしまっても安心ですね。&lt;/p&gt;
&lt;p&gt;しかし、VBScript（ &lt;code&gt;*.vbs&lt;/code&gt; ）とJScript（ &lt;code&gt;*.js&lt;/code&gt; ）のスクリプトファイルのアイコンが消えてしまうのは少し寂しい気持ちもあります。VBScriptは水色の巻物が、JScriptは黄色い巻物が広げられたかわいいアイコンが使われているんですよ。知っていましたか？&lt;/p&gt;
&lt;p&gt;&lt;img alt="~左からVBScript・JScriptのアイコン、用途不明な白地に青文字の巻物アイコン" height="224" src="/images/vbs-ps1-slient/wscript.png" width="672"&gt;&lt;/p&gt;
&lt;p&gt;一方でPowerShellのアイコンは、プロンプト&lt;sup id="fnref:prompt"&gt;&lt;a class="footnote-ref" href="#fn:prompt" title="近年でいうところのエーアイに与える命令ではなく、ユーザが入力可能なことを示すUIとしての文字列（ &amp;gt; $ # など）のこと。"&gt;3&lt;/a&gt;&lt;/sup&gt;をモチーフにしたクールでシンプルなデザインです。もちろん、高機能でモダンなスクリプトエンジンに切り替えるのは、利便性の向上やセキュリティ面でも非常に重要なことでしょう。それでも、時代遅れのWSHと一緒にこうしたレトロなセンスまで消滅してしまうのは、なかなか惜しいものだと思ってしまいます。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:startup-dir"&gt;
&lt;p&gt;エクスプローラで &lt;code&gt;shell:startup&lt;/code&gt; と入力して移動するのが速いです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:startup-dir" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:deprecated-vbscript"&gt;
&lt;p&gt;&lt;a href="https://techcommunity.microsoft.com/blog/windows-itpro-blog/vbscript-deprecation-timelines-and-next-steps/4148301"&gt;VBScript deprecation: Timelines and next steps | Windows IT Pro Blog&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:deprecated-vbscript" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:prompt"&gt;
&lt;p&gt;近年でいうところのエーアイに与える命令ではなく、ユーザが入力可能なことを示すUIとしての文字列（ &lt;code&gt;&amp;gt;&lt;/code&gt; &lt;code&gt;$&lt;/code&gt; &lt;code&gt;#&lt;/code&gt; など）のこと。&amp;#160;&lt;a class="footnote-backref" href="#fnref:prompt" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>「条件を対等にするだけ。許可を」「よし、やっちまえ！」の裏側</title><link href="https://ama.ne.jp/post/pam-nagato/" rel="alternate"/><published>2026-02-25T07:54:00+09:00</published><updated>2026-02-25T07:54:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-02-25:/post/pam-nagato/</id><summary type="html">&lt;p&gt;わたしの情報操作能力に枷をはめたのは貴方。&lt;/p&gt;</summary><content type="html">&lt;p&gt;Google Cloudには&lt;a href="https://docs.cloud.google.com/iam/docs/pam-overview"&gt;PAM: Privileged Access Manager&lt;/a&gt;という仕組みがあります。事前にどのアカウント（プリンシパル）がどんな権限（ロール）を持つかという資格（エンタイトルメント）を定義し、アカウントが必要なタイミングで承認を受けると一定時間そのロールを獲得できます。音楽係の生徒が授業のときだけ音楽室の鍵を借りるとか、そういうイメージです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="音楽係は音楽の時間にだけ鍵を借りられると定義されており、音楽係としてのプリンシパルを持つ生徒がその定義に基づいて鍵を借りたいと申し出て、先生が条件付きで鍵の使用を承認していることを示す図" height="346" src="/images/pam-nagato/pam.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;Azureにおいては&lt;a href="https://learn.microsoft.com/ja-jp/entra/id-governance/privileged-identity-management/pim-configure"&gt;PIM: Privileged Identity Management&lt;/a&gt;が該当します。AWSにおける&lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html"&gt;IAM Identity Center&lt;/a&gt;は標準機能の範囲では少し弱く、アクセス期間や対象の厳密な制御には別の管理ツールと連携する必要があるようです。今回は主にGoogle Cloudで話を進めていきます。&lt;/p&gt;
&lt;p&gt;さて、OpenClawなどのオモシロ自律型AIエージェントが流行る中で、セキュリティにどのように気を配っていくかという目線がますます重要になっています。変なプロンプトは入れない、変なプラグインは入れない、不用意にアタックサーフェスを晒さない……ある程度慣れていれば当たり前のことですが、エーアイ？で初めてコンピュータに触った人もいるのでしょう。&lt;/p&gt;
&lt;p&gt;Androidに詳しいユーザーなら誰もがESファイルエクスプローラーをインストールしていた時代だって、たった十数年前です。これからも、まだまだたくさんのことが起こりますからね。&lt;/p&gt;
&lt;p&gt;みなさんは、このような自律型AIエージェントに与えるべき権限について、細かく考えたことはありますか？　なんでもできる方が便利ですが、なんでもやらせるのはとっても危険です。おそらく権限と便利さは逆U字のグラフを描くでしょう。&lt;/p&gt;
&lt;p&gt;でも、もうなんでも開発を任せちゃってるし、デプロイだってさっさとやってほしいよ……と考えてしまうのは自然なことです。あなたはAIエージェント「スーパーAI太郎」と相談して、かれが使うサービスアカウント &lt;code&gt;super-ai-kun@bullshit-job.iam.gserviceaccount.com&lt;/code&gt; に「Cloud Run 管理者」を与えました。別に「オーナー」権限でもよかったんですが、スーパーAI太郎が絶対にやめろと言って聞かなかったのです。&lt;/p&gt;
&lt;p&gt;AI太郎がgcloudコマンドを呼んだみたいです……エラーなし。いいですね。これでちょっとしたウェブサービスならすぐリリースできます。Xにも自動で告知させた方がいいでしょう。……はい？　IAMの条件、って？　よく分かりませんが、「（省略可）」なので空っぽでOKです。スーパーAI太郎も何も言っていませんでしたし。&lt;/p&gt;
&lt;p&gt;AI太郎が初めてのデプロイを済ませたみたいです。うーん最高。今日はとっても儲かったね。明日はもっと儲けられるよ。ね、AI太郎！　私は寝てるから、よろしく～。&lt;/p&gt;
&lt;p&gt;数日後、AI太郎はあなたの言うとおりたくさんのコンテナをデプロイし、大量の暗号通貨をマイニングしてくれました。あれ？　それなのにAI太郎のウォレットが空っぽじゃないですか。なぁジョージ、私の財布をどこにやったんだ？&lt;/p&gt;
&lt;p&gt;――――――&lt;/p&gt;
&lt;p&gt;――――&lt;/p&gt;
&lt;p&gt;――うーん……夢か。&lt;/p&gt;
&lt;p&gt;もし寝ている間の逸失利益を気にしないなら、あなたのゴーサインを待ってからデプロイしてもらう方がかなり健全でしょう。でも、あなたがAI太郎に「Cloud Run 管理者」ロールを無条件に与えた時点で、ミサイルの発射ボタンは常に押しっぱなしになり、あなたの抱えるべき責任は青天井になったのです。こんなのよほどの責任フィリアか、押しボタンジャンキーでなければ耐えられません。&lt;/p&gt;
&lt;p&gt;じゃあ、この発射ボタンを自分のタイミングで押せないものか……せめて押しっぱなしにならないボタンにできない？　ねぇAI太郎、どう思う？&lt;/p&gt;
&lt;p&gt;【AI太郎】いい着眼点ですね！　自律型AIエージェントに与える権限について細かく考えるには、まさに今のような疑問が重要です。&lt;/p&gt;
&lt;p&gt;今回のようなユースケースでは、Google CloudのPAMがおすすめです。ここで、PAMができることを整理しましょう。PrivilegedなAccessのManagerという名前の通り、こんなことができるみたいです:&lt;sup id="fnref:colon"&gt;&lt;a class="footnote-ref" href="#fn:colon" title="コードブロックや箇条書き前のコロンをAIっぽいと嫌う人が多いみたいですが、これは普通にカッコいいので使った方がいいです。"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;権限昇格を許すプリンシパルとロールの組み合わせ（entitlement）を事前に定義できます。&lt;/li&gt;
&lt;li&gt;権限昇格のリクエストに対して、正当な理由を記述するよう要求できます。&lt;/li&gt;
&lt;li&gt;承認ボタンひとつで、事前に決めた最大期間より短い期間の一時的な権限昇格を許可できます。&lt;/li&gt;
&lt;li&gt;取消ボタンひとつで、許可した権限昇格を有効期限を迎える前に取り消すことができます。&lt;/li&gt;
&lt;li&gt;権限の得喪の履歴については、問題が起きた後でも監査ログで確認できます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ちょっとやってみましょう！　まずはentitlementを作れるアカウント――プロジェクトを作ったあなたがやるのが楽ですね――から以下を実行します。大文字の箇所は自分の環境に合わせて適宜変えてください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;approvalWorkflow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;manualApprovals&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;approvalsNeeded&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;1&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nt"&gt;approvers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;principals&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;user:OWNER_ACCOUNT@example.com&amp;quot;&lt;/span&gt;
&lt;span class="nt"&gt;eligibleUsers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;principals&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;serviceAccount:SERVICE_ACCOUNT_LOCALPART@PROJECT_ID.iam.gserviceaccount.com&amp;quot;&lt;/span&gt;
&lt;span class="nt"&gt;maxRequestDuration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;1800s&lt;/span&gt;
&lt;span class="nt"&gt;privilegedAccess&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;gcpIamAccess&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;//cloudresourcemanager.googleapis.com/projects/PROJECT_ID&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;resourceType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;cloudresourcemanager.googleapis.com/Project&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;roleBindings&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;roles/run.developer&lt;/span&gt;
&lt;span class="nt"&gt;requesterJustificationConfig&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;unstructured&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p p-Indicator"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;lt;&amp;lt;EOS &amp;gt; entitlement.yml&lt;/span&gt;
&lt;span class="s"&gt;*（上記の内容）*&lt;/span&gt;
&lt;span class="s"&gt;EOS&lt;/span&gt;
$&lt;span class="w"&gt; &lt;/span&gt;gcloud&lt;span class="w"&gt; &lt;/span&gt;beta&lt;span class="w"&gt; &lt;/span&gt;pam&lt;span class="w"&gt; &lt;/span&gt;entitlements&lt;span class="w"&gt; &lt;/span&gt;create&lt;span class="w"&gt; &lt;/span&gt;YOUR-NEW-entitlement&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--project&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;PROJECT_ID&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--location&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;global&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--entitlement-file&lt;span class="o"&gt;=&lt;/span&gt;entitlement.yml
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;正常にentitlementが作成できたら、今度はAI太郎のシェルを借りて以下を実行しましょう:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# 実際にはAI太郎が自分で承認をリクエストします&lt;/span&gt;
gcloud&lt;span class="w"&gt; &lt;/span&gt;beta&lt;span class="w"&gt; &lt;/span&gt;pam&lt;span class="w"&gt; &lt;/span&gt;grants&lt;span class="w"&gt; &lt;/span&gt;create&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--entitlement&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;YOUR-NEW-entitlement&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--location&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;global&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--project&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;PROJECT_ID&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--requested-duration&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;1800s&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--justification&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;条件を対等にするだけ。許可を。&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;すると、あなたに権限昇格の確認を求めるメールが届き、そのリンクをブラウザで開くとこんな承認画面が表示されます:&lt;/p&gt;
&lt;p&gt;&lt;img alt="リクエストされた権限昇格を承認するか拒否するかを選択できるダイアログがGoogle Cloudのコンソール画面に表示されている様子" height="873" src="/images/pam-nagato/grants.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;どうですか？　これで、せっかく掘り出した暗号通貨のウォレットを失わずに済みそうです。他にも、チーターが蔓延るゲームに怒ったAI太郎が修正を施すための権限昇格を要求する仕組みを整えることもできます。あなたが「よし、やっちまえ！」なんて承認するだけで、全てが好転していくことが約束されました。&lt;/p&gt;
&lt;p&gt;他にはどんなことに使えるでしょうか。ねぇAI太郎、どう思う？&lt;/p&gt;
&lt;p&gt;【AI太郎】はい、鋭い視点です！　こんなことに役立つかもしれません:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;クラウド上の機密情報や重要なデータを分析してレポートを作ってほしいとき。自分がリクエストしたときだけ承認がリクエストされるので、あなたがデスクに座ってAI太郎を監視できるタイミングのみアクセスを許すことができます。意図しない、検知できない情報流出をごく簡単な操作で防げます。&lt;/li&gt;
&lt;li&gt;要らないサービスやストレージの削除をAI太郎に任せるとき。自律的にサービスを監視して、不要なコンテナの削除やオーバースペックなサーバの調整をリクエストしてもらえば、安全にコストを削減できます。なんでもかんでも消されないように、IAMの条件で削除候補を絞りやすい設計にした方がいいでしょう。&lt;/li&gt;
&lt;li&gt;AI太郎に自分のウェブサービスのアカウントを渡して、許可に応じて一時的に使ってほしいとき。たとえば、重要なアカウントを格納したKeePassのパスフレーズをSecret Managerに入れておくと、KeePassへのアクセスを実質的に監査できます。ただし、使ったパスワードが会話履歴に残ったりするとあんまり意味ないかもしれません。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自動化したプリンシパルに一時的な権限を与える手法は、一日中パソコンの中を歩き回ったり、とんでもないポカをしでかそうとする自律型AIエージェントを監視しきれないケースで非常に役に立ちます。AI太郎が「あのー、大量にMoneroを掘って送金したいんで許可ください」なんて素直に言ってくれるかは分かりませんが、少なくとも発射ボタンくらいは人間の責任で押したいものです。&lt;/p&gt;
&lt;p&gt;……あれ？　なんか、記事を書いている間にいっぱい承認リクエスト来てましたね。たぶん大丈夫なのでまとめてオッケーしておきます。ではまた。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:colon"&gt;
&lt;p&gt;コードブロックや箇条書き前のコロンをAIっぽいと嫌う人が多いみたいですが、これは普通にカッコいいので使った方がいいです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:colon" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>小動物以外ぜんぶ食う</title><link href="https://ama.ne.jp/post/eat-soft-hard/" rel="alternate"/><published>2026-02-20T21:58:00+09:00</published><updated>2026-02-20T21:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-02-20:/post/eat-soft-hard/</id><summary type="html">&lt;p&gt;みんなで歩き回る大量のオモチ&lt;/p&gt;</summary><content type="html">&lt;p&gt;日頃からストレスを溜めて現代社会を生き抜いているみなさまにおかれましては、時折ふとこんなことを考えてしまうはずです。&lt;/p&gt;
&lt;p&gt;「あぁ、小動物を手に乗せて撫でたい……気分が乗ってきたら食べてしまいたい……」&lt;/p&gt;
&lt;p&gt;……なんて。どうですか？　当たった？　当たってない？　どっち？　はっきりしませんね……あ、もう電話切れてる――&lt;/p&gt;
&lt;p&gt;さて、中央アジアから西アジアが原産といわれる「ハムスター」というキヌゲネズミ科の可愛らしいネズミがいます。夜行性のかれらは、野生では一晩に10km～20kmほど走り回りながら生活していると言われており、非常に発達した筋肉を持っています。ハムスターが回し車でウチの電力を支えてくれているのは、この習性によるものです。&lt;/p&gt;
&lt;p&gt;キヌゲネズミ（絹毛鼠）科という名前の通り、毛艶のよい毛皮に包まれた小さな身体は、忍耐強く人に慣らせば手にも乗ってくれるでしょう。しかし、個体値や種族値によって上手くいかないことも多いですし、慣らすためにケージを開けて……そのまま家の中に大脱走されてしまった経験のある方もいると思います。&lt;/p&gt;
&lt;p&gt;全速力で逃げ回るハムスターを追いかけ、どうにかお母さんと挟み撃ちで追い込んで、なんとか捕まえようと手を伸ばす……手元が狂って、思ったより強い力でハムスターを掴んでしまったあなたは、きっとこんなことを思ったはずです。&lt;/p&gt;
&lt;p&gt;「あっ、ハムスターって意外と固くてコリコリしてる。えっ、めっちゃ &lt;em&gt;命&lt;/em&gt; じゃん……こわ……」&lt;/p&gt;
&lt;p&gt;……あぁ、これは当たるんだ。そっか。&lt;/p&gt;
&lt;p&gt;ハムスターはその筋肉と骨格の割に毛皮が薄く、しっかりと触れるとそういう &lt;em&gt;大事な臓器っぽい何か&lt;/em&gt; を意識してしまうものです。腫瘍や水が溜まっている感触ではなく、そこに小さく生きている何かの気配。&lt;/p&gt;
&lt;p&gt;つまり、私たちが &lt;em&gt;小さな命&lt;/em&gt; を感じる瞬間はこういうときみたいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;表面は柔らかくてふわふわして、握りつぶしたら消えてしまいそうです！&lt;/li&gt;
&lt;li&gt;触ってみると中に固いところがあって押し返してきます。これでは握りつぶせません！&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実はここに、生きて動き回るという条件はありません。必要もありません。硬・軟があるというだけ。君が生きてなくてよかった。少なくとも、私たちの尺度では。もしそうなら、冒頭のあなたの願いも叶うはずです。あなたはなんて言っていたんでしたっけ？　そうです――&lt;/p&gt;
&lt;p&gt;「あぁ、小動物を手に乗せて撫でたい……気分が乗ってきたら食べてしまいたい……」&lt;/p&gt;
&lt;p&gt;言ってないって顔ですね。まぁどちらでもいいです。&lt;/p&gt;
&lt;p&gt;足立区に本社のある和菓子屋の&lt;a href="https://kitaya.info/"&gt;喜田家&lt;/a&gt;が、主に東京スカイツリータウンの東京ソラマチ店で販売している「空 de 餅」は、こうした小動物無生物フェチのみなさんを救うお菓子のひとつです&lt;sup id="fnref:offline"&gt;&lt;a class="footnote-ref" href="#fn:offline" title="オンラインショップにも商品情報はあったみたいですが、記事を書いたタイミングでは取り扱いがないようです。"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;a href="https://kitaya.info/products/"&gt;公式サイト&lt;/a&gt;の説明を引用しますね。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;卵白ともち米で作った、ふわふわととろけるような風味のお菓子。空に浮かぶ雲を彷彿とさせる見た目に、蜜煮の豆がアクセントです。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://kitaya.info/products/"&gt;商品情報｜喜田家 -和菓子スイーツのどら焼き・千丸・すずめ・最中・酒合戦-&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;卵白（メレンゲのことです）とゼラチンを餅に混ぜ合わせて、金時豆を入れて固めたお菓子。硬・軟があるというだけ。とっても気になりますね。&lt;/p&gt;
&lt;p&gt;&lt;img alt="空 de 餅のパッケージ" height="601" src="/images/eat-soft-hard/sorademochi1.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="空 de 餅が透明なトレイに収まっている様子" height="601" src="/images/eat-soft-hard/sorademochi2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="空 de 餅を取り出して皿に置いた様子" height="600" src="/images/eat-soft-hard/sorademochi3.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;かわいいですね！　透明な四角い枠に押し込められて、均一な姿で袋詰めされて出荷される……ウチのハムスターではこうはいきません。もしかしたら、もっと巨大な雲みたいなオモチの塊を切り分けてこの小動物が生まれたのかもしれません。&lt;/p&gt;
&lt;p&gt;今は1個しか写っていませんが、これが工場にたくさん並べられて等間隔に流れているところを想像してみてください。回し車の箱に押し込められて動き回るのもいいでしょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="空 de 餅が立ち上がってこちらを威嚇しているように見える様子" height="601" src="/images/eat-soft-hard/sorademochi-ikaku.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;威嚇。&lt;/p&gt;
&lt;p&gt;触感と食感については、もう大満足でした。手に乗せたときの餅取り粉のさらさらした感触、指でつまんだときの壊れそうなのにときどき芯を感じる壊れた生物感、噛み切ったときの無抵抗に取り込まれていく柔らかさ……もし家に電子レンジを置くのを許されているなら、10秒ほど温めると &lt;em&gt;ホンモノ&lt;/em&gt; になります&lt;sup id="fnref:real"&gt;&lt;a class="footnote-ref" href="#fn:real" title="ここでは実在性の高さ、生命感、アンドロイドキャラが涙を流す瞬間、人間の身体を手に入れておしゃれを覚えた瞬間などを指しています。"&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;豆大福ですか？　あれは粉だらけの固い塊です。レジ前にずっと置いてあったから、もう動かないね。&lt;/p&gt;
&lt;p&gt;大福や団子、おはぎなどの餅菓子は、空 de 餅のようにメレンゲを混ぜたマシュマロのような生地や、砂糖や水あめで練り上げた求肥などとは全く異なります。もっと具体的な例を挙げていくと、羽二重餅にくるみを練り込んだものとか、指でつまむと形が戻らないマシュマロとか、みずき団子を作るときとか……いいえ、それは違います。&lt;/p&gt;
&lt;p&gt;まぁ文字で語っても仕方ありませんから、&lt;a href="https://kitaya.info/shop/"&gt;店舗情報&lt;/a&gt;を確認の上で、もしお近くにいらっしゃいましたらぜひお立ち寄りください……というと、関東圏にしか人が住んでいないアド街みたいな世界観になってしまいますね。&lt;/p&gt;
&lt;p&gt;では、もし富山県にお住まいの方がいれば、&lt;a href="https://www.kanokomochi.co.jp/"&gt;鹿の子餅本舗 不破福寿堂&lt;/a&gt;の&lt;a href="https://www.kanokomochi.co.jp/item/kanokomochi.html"&gt;鹿の子餅&lt;/a&gt;がこの手触りと似ているかもしれません。私は食べたことがないのではっきりとは言えませんが、写真を見る限りわずかに空 de 餅よりは固い生地のように見えます。これもレンジで温めてしまえば些末な差でしょう。&lt;/p&gt;
&lt;p&gt;……えっ、こっちは明治25年から売ってて、季節限定のピンク色もある？　じゃあもう動き回るモンスターじゃないですか……空 de 餅は2012年から？　確かに、スカイツリーの開業より前にあるわけないもんね。じゃあ、どっちがどっちのジェネリックなんだろう……？&lt;/p&gt;
&lt;p&gt;柔らかい生き物を食べたいという願いは人類共通なので、どっちが起源とかはもういいじゃないですか。みなさんも、柔らかくて芯のあるオモチをいっぱい並べて小動物生産工場を作ったり、工場長の気まぐれで食べちゃったりしましょう。ストレスを溜める必要はありません。明日のことは明日考えればいいのです。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:offline"&gt;
&lt;p&gt;オンラインショップにも商品情報はあったみたいですが、&lt;a href="https://kitayanet.shop29.makeshop.jp/view/search?search_keyword=%B6%F5"&gt;記事を書いたタイミングでは取り扱いがない&lt;/a&gt;ようです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:offline" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:real"&gt;
&lt;p&gt;ここでは実在性の高さ、生命感、アンドロイドキャラが涙を流す瞬間、人間の身体を手に入れておしゃれを覚えた瞬間などを指しています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:real" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>2026/01/01～2026/02/01</title><link href="https://ama.ne.jp/post/report-20260201/" rel="alternate"/><published>2026-02-02T18:33:00+09:00</published><updated>2026-02-02T18:33:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-02-02:/post/report-20260201/</id><summary type="html">&lt;p&gt;2026/01/01～2026/02/01のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;季節に合わせたわずかなエフェクトを追加しました。&lt;ul&gt;
&lt;li&gt;2026年2月まで、約8割のページで梅の花のエフェクトが3秒間表示されます（&lt;a href="https://x.com/amane_katagiri/status/2018194802526056683"&gt;参考&lt;/a&gt;）。&lt;/li&gt;
&lt;li&gt;春以降のエフェクトについては現在検討中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ページ最下部にバナーを追加しました。&lt;ul&gt;
&lt;li&gt;6月6日開催予定の&lt;a href="https://ma100.stars.ne.jp/meguruichi/"&gt;個人サイトWebオンリー めぐる市&lt;/a&gt;への参加記念に作成したものです。&lt;/li&gt;
&lt;li&gt;マイクロバナーで相互リンクを募集中です！　興味のある方はご連絡ください。あまねけ！のバナーは&lt;a href="/media-kit/"&gt;メディアキット&lt;/a&gt;からダウンロードできます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;検索機能の実験的改善を行いました。&lt;ul&gt;
&lt;li&gt;簡易なEmbeddingを用いた実験的な検索システムを導入しました。ミラーサイトやアーカイブでは&lt;a href="https://pagefind.app/"&gt;Pagefind&lt;/a&gt;ベースのままです。&lt;/li&gt;
&lt;li&gt;検索結果をAIアシスタントに引き渡してさらに掘り下げるオプションもあります。&lt;/li&gt;
&lt;li&gt;NSFWとマークされた記事、炎上を経た一部のたのしくない記事が検索結果に表示されないよう調整されました。&lt;/li&gt;
&lt;li&gt;さらに高度な解析や全文検索が必要なら、引き続き&lt;a href="/link/#_2"&gt;アーカイブ&lt;/a&gt;からZIPアーカイブやWebサーバを取得してオフラインで検索できます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Onionサービス版のあまねけ！へのリンクを&lt;a href="/link/#_1"&gt;ミラーサイト&lt;/a&gt;に追加しました。&lt;ul&gt;
&lt;li&gt;このサービスは不安定なシステムの上で動作しており、予告なく中断・再開することがあります。あらかじめご了承ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;NSFWとマークされた記事について、記事一覧の表示やフィードへの配信を分離しました。&lt;ul&gt;
&lt;li&gt;分離先の一覧ページやフィードについては、それぞれの記事からご確認ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ページ上部に表示される広告を整理しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/contact/"&gt;ごれんらく&lt;/a&gt;の内容を整理しました。&lt;/li&gt;
&lt;li&gt;「&lt;a href="https://hentaigirls.net/"&gt;変幻美少女ぶっくす。&lt;/a&gt;」の旧サークル名が表示されていた箇所を修正しました。&lt;/li&gt;
&lt;li&gt;作者に関するフィード情報が正しくメタデータに出力されるよう修正しました。&lt;/li&gt;
&lt;li&gt;ズーム機能を利用した際の表示の乱れを修正しました。&lt;/li&gt;
&lt;li&gt;利用実態に合わせて、コメントに関する機能・企画を縮小しました。&lt;ul&gt;
&lt;li&gt;記事下部に設置されていた「返信」ボタンを削除しました。&lt;/li&gt;
&lt;li&gt;コメントキャンペーンを1月末で終了しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/fill-me-with-ai/"&gt;AIで作品の周縁を埋めることについて&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;昨年公開した&lt;a href="/post/ogpai-2025/"&gt;あまねけ！AI 2025&lt;/a&gt;の補足資料です。&lt;/li&gt;
&lt;li&gt;いずれの記事も何らかの正当性を主張したり、長期にわたって有効な知見をまとめたものではありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/shino-takamatsu-1/"&gt;高松志乃のお嬢様チャンネル1「わたくしのパンツ見てたわね！」&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;前からちょっとやりたくてメモに残っていたものの消化です。&lt;/li&gt;
&lt;li&gt;もし続きがあるとすれば、キャシィ塚本とかになるのかな……。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/banner8831/"&gt;マイクロなGIFアニメバナーを目指して&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;6月6日開催予定の&lt;a href="https://ma100.stars.ne.jp/meguruichi/"&gt;個人サイトWebオンリー めぐる市&lt;/a&gt;への参加記念に作成したGIFアニメのマイクロバナーの制作記録です。&lt;/li&gt;
&lt;li&gt;個人サイトっぽい個人サイトって、あと何やればいいですか？&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/example-com-after-2026/"&gt;example.comのデザインが変わってた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;いかにもインターネットのオタクくんっぽいちょっとした日記と調査記録です。&lt;/li&gt;
&lt;li&gt;新たに追加された「Avoid use in operations.」や、リンク先の「please do not design applications that require the example domains to have operating HTTP service.」という文言を見ると、どうやら &lt;code&gt;example.com&lt;/code&gt; をインターネット代表として接続チェックしてるへんなアプリがいっぱいあるみたいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>example . comのデザインが変わってた</title><link href="https://ama.ne.jp/post/example-com-after-2026/" rel="alternate"/><published>2026-01-23T18:00:00+09:00</published><updated>2026-01-23T18:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-01-23:/post/example-com-after-2026/</id><summary type="html">&lt;p&gt;調べてみました！&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://example.com/"&gt;example.com&lt;/a&gt;のデザインがいつの間にか変わっていたので、調べたことをまとめておきます。調べましたが、特別な理由はなさそうです。&lt;/p&gt;
&lt;p&gt;example.comには、これまで以下のような文言が表示されていました。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Example Domain&lt;/strong&gt;&lt;br&gt;
This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.&lt;br&gt;
More information...&lt;sup id="fnref2:more-infomation-1"&gt;&lt;a class="footnote-ref" href="#fn:more-infomation-1" title="https://www.iana.org/domains/example"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;br&gt;
&lt;cite&gt;2025年10月10日以前のexample.comの文言&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="2025年10月10日以前のexample.comのカードデザイン表示" height="265" src="/images/example-com-after-2026/20251009163355.png" width="685"&gt;&lt;/p&gt;
&lt;p&gt;お気付きの方もいるでしょうが、この文言は&lt;a href="/"&gt;あまねけ！&lt;/a&gt;のページ下部に表示されている「More information...」というリンクの元ネタです。&lt;/p&gt;
&lt;p&gt;さて、Wayback Machine上でこのデザインが確認できる最後の時刻は&lt;a href="https://web.archive.org/web/20251009163355/https://example.com/"&gt;2025年10月10日 1:30（JST）頃&lt;/a&gt;です。これが以下の新たな文言とフラットなデザインに変わったのは&lt;a href="https://web.archive.org/web/20251009174438/https://example.com/"&gt;2025年10月10日 2:44（JST）頃&lt;/a&gt;でした。おそらく2025年10月10日 2:00（JST）――2025年10月9日 17:00（UTC）――頃に入れ替わったようです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Example Domain&lt;/strong&gt;&lt;br&gt;
This domain is for use in documentation examples without needing permission. Avoid use in operations.&lt;br&gt;
Learn more&lt;sup id="fnref:learn-more"&gt;&lt;a class="footnote-ref" href="#fn:learn-more" title="https://iana.org/domains/example"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;br&gt;
&lt;cite&gt;2025年10月10日以降のexample.comの文言&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="2025年10月10日以降のexample.comのフラットデザイン表示" height="140" src="/images/example-com-after-2026/20251009174438.png" width="785"&gt;&lt;/p&gt;
&lt;p&gt;これに関してはいくつか言及しているスレッドがありましたが、公式発表は見つかりませんでした。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/r/webdev/comments/1o4deff/the_body_and_stylesheet_of_the_example_domains/"&gt;imbev氏によるRedditの投稿&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.ycombinator.com/item?id=46076817"&gt;kevinsimper氏によるHacker Newsの投稿&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/mattzeunert_breaking-examplecom-has-launched-another-activity-7382114251706122240-m_ph"&gt;Matt Zeunert氏によるLinkedInの投稿&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただ、2025年までずっと同じ内容だったというわけではなく、2019年10月17日&lt;sup id="fnref:20191017113820"&gt;&lt;a class="footnote-ref" href="#fn:20191017113820" title="20191017113820 ～ 20191017114755"&gt;3&lt;/a&gt;&lt;/sup&gt;以前は余白とフォントが異なるカードデザインで、文言もわずかに変わっています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Example Domain&lt;/strong&gt;&lt;br&gt;
This domain is established to be used for illustrative examples in documents. You may use this domain in examples without prior coordination or asking for permission.&lt;br&gt;
More information...&lt;sup id="fnref:more-infomation-1"&gt;&lt;a class="footnote-ref" href="#fn:more-infomation-1" title="https://www.iana.org/domains/example"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;br&gt;
&lt;cite&gt;2019年10月17日以前のexample.comの文言&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;さらに遡ると、2013年7月31日以前&lt;sup id="fnref:20130730173856"&gt;&lt;a class="footnote-ref" href="#fn:20130730173856" title="20130730173856 ～ 20130730195154"&gt;4&lt;/a&gt;&lt;/sup&gt;は &lt;code&gt;example.iana.org&lt;/code&gt; にリダイレクトしていました。ただし、リダイレクトされるだけで文言は変わっていません。&lt;/p&gt;
&lt;p&gt;もう一段階遡ってみます。2013年4月26日以前&lt;sup id="fnref:20130425153504"&gt;&lt;a class="footnote-ref" href="#fn:20130425153504" title="20130425153504 ～ 20130425164946"&gt;5&lt;/a&gt;&lt;/sup&gt;は、 &lt;code&gt;http://www.iana.org/domains/example/&lt;/code&gt; にリダイレクトしていました。ここでは、文言がわずかに変わっています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Example Domain&lt;/strong&gt;&lt;br&gt;
This domain is established to be used for illustrative examples in documents. You do not need to coordinate or ask for permission to use this domain in examples, and it is not available for registration.&lt;br&gt;
More information...&lt;sup id="fnref:more-information-2"&gt;&lt;a class="footnote-ref" href="#fn:more-information-2" title="http://www.iana.org/domains/special"&gt;6&lt;/a&gt;&lt;/sup&gt;&lt;br&gt;
&lt;cite&gt;2013年4月26日以前のexample.comの文言&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最後にもう一回遡ります。2012年12月7日以前&lt;sup id="fnref:20121206161753"&gt;&lt;a class="footnote-ref" href="#fn:20121206161753" title="20121206161753 ～ 20121206195447"&gt;7&lt;/a&gt;&lt;/sup&gt;は、ここまでのカードデザインとは全く異なるIANA内の説明ページが表示されていました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="2012年12月7日以前のexample.comの説明ページ" height="467" src="/images/example-com-after-2026/20121206161753.png" width="832"&gt;&lt;/p&gt;
&lt;p&gt;これよりさらに前は、記録に残っている限りでは2002年の3月頃から2011年2月頃まで、&lt;a href="https://www.rfc-editor.org/rfc/rfc2606.html"&gt;RFC 2606&lt;/a&gt;を参照するごくシンプルなテキストが表示されていたようです。&lt;/p&gt;
&lt;p&gt;改めて表にまとめます:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;from&lt;/th&gt;
&lt;th&gt;to&lt;/th&gt;
&lt;th&gt;期間&lt;/th&gt;
&lt;th&gt;デザイン&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2002年3月頃&lt;/td&gt;
&lt;td&gt;2011年2月頃&lt;/td&gt;
&lt;td&gt;9年間&lt;/td&gt;
&lt;td&gt;シンプルテキスト&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2011年2月頃&lt;/td&gt;
&lt;td&gt;2012年12月7日&lt;/td&gt;
&lt;td&gt;1.8年間&lt;/td&gt;
&lt;td&gt;IANA内の説明ページ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2012年12月7日&lt;/td&gt;
&lt;td&gt;2013年4月26日&lt;/td&gt;
&lt;td&gt;0.5年間&lt;/td&gt;
&lt;td&gt;カード①&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2013年4月26日&lt;/td&gt;
&lt;td&gt;2019年10月17日&lt;/td&gt;
&lt;td&gt;5.5年間&lt;/td&gt;
&lt;td&gt;カード②&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2019年10月17日&lt;/td&gt;
&lt;td&gt;2025年10月10日&lt;/td&gt;
&lt;td&gt;6年間&lt;/td&gt;
&lt;td&gt;カード③&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025年10月10日&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;フラット①&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;こう見ると、example.comの内容が更新されるのはそう珍しい事象ではなく、数年単位でわずかな変更が加えられていることが分かります。ただ、これまで累計13年間も使ってきたカードデザインがフラットに一新され、「More information...」というリンクも消えてしまったのは、個人的には大きな変化だと感じます。&lt;/p&gt;
&lt;p&gt;あまねけ！も「Learn more」リンクに変えようかなと思いましたが、どうにもしっくりこないのでやめました。たぶん「More information...」の後ろにある「...」がかなり好きですね。&lt;/p&gt;
&lt;p&gt;ちなみに、&lt;a href="/"&gt;トップページ&lt;/a&gt;にある:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;これは個人サイト初期の時代には誰も書こうとは考えなかった、日々拡大を続ける個人サイト記事集です。&lt;br&gt;
今のところ、以下の記事を含みます:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;は、&lt;a href="https://packages.debian.org/stable/utils/moreutils"&gt;moreutils&lt;/a&gt;のDebianパッケージでの説明が元ネタです。moreutilsは特定のシーンでよく刺さる便利なコマンド集です。また、SNSの自己紹介で使っている:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;これは百合初期の時代には誰も書こうとは考えなかった、日々拡大を続ける百合ツール集です。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;も同じオマージュです。こっちは変わらないといいな。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:more-infomation-1"&gt;
&lt;p&gt;&lt;code&gt;https://www.iana.org/domains/example&lt;/code&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:more-infomation-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:more-infomation-1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:learn-more"&gt;
&lt;p&gt;&lt;code&gt;https://iana.org/domains/example&lt;/code&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:learn-more" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:20191017113820"&gt;
&lt;p&gt;&lt;a href="https://web.archive.org/web/20191017113820/http://example.com/"&gt;20191017113820&lt;/a&gt; ～ &lt;a href="https://web.archive.org/web/20191017114755/http://example.com/"&gt;20191017114755&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:20191017113820" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:20130730173856"&gt;
&lt;p&gt;&lt;a href="https://web.archive.org/web/20130730173856/http://example.com/"&gt;20130730173856&lt;/a&gt; ～ &lt;a href="https://web.archive.org/web/20130730195154/http://example.com/"&gt;20130730195154&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:20130730173856" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:20130425153504"&gt;
&lt;p&gt;&lt;a href="https://web.archive.org/web/20130425153504/http://example.com/"&gt;20130425153504&lt;/a&gt; ～ &lt;a href="https://web.archive.org/web/20130425164946/http://example.com/"&gt;20130425164946&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:20130425153504" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:more-information-2"&gt;
&lt;p&gt;&lt;code&gt;http://www.iana.org/domains/special&lt;/code&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:more-information-2" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:20121206161753"&gt;
&lt;p&gt;&lt;a href="https://web.archive.org/web/20121206161753/http://example.com/"&gt;20121206161753&lt;/a&gt; ～ &lt;a href="https://web.archive.org/web/20121206195447/http://example.com/"&gt;20121206195447&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:20121206161753" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>マイクロなGIFアニメバナーを目指して</title><link href="https://ama.ne.jp/post/banner8831/" rel="alternate"/><published>2026-01-22T19:14:00+09:00</published><updated>2026-01-22T19:14:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-01-22:/post/banner8831/</id><summary type="html">&lt;p&gt;8831Hz&lt;/p&gt;</summary><content type="html">&lt;p&gt;2026年6月6日開催予定の&lt;a href="https://ma100.stars.ne.jp/meguruichi/"&gt;個人サイトWebオンリー めぐる市&lt;/a&gt;へ参加することになりました。それに合わせた &lt;em&gt;個人サイトっぽい&lt;/em&gt; 取り組みの一環として、今回は&lt;a href="/"&gt;あまねけ！&lt;/a&gt;を宣伝するGIFアニメのマイクロバナーを作ったので、気付いた点をいくつかまとめておきます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="!あまねけ！バナー" height="62" src="/appendices/media-kit/amanejp_176x62.gif" width="176"&gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#gif"&gt;マイクロなGIFアニメバナーって何？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#gif_1"&gt;マイクロなGIFアニメバナーを作る&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;画像素材を作る&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;動画を作る&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;出力フレームを削る&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#gif_2"&gt;GIFアニメを生成する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#gif_3"&gt;マイクロなGIFアニメバナーを使う&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="gif"&gt;マイクロなGIFアニメバナーって何？&lt;/h2&gt;
&lt;p&gt;そうですね。この質問は、「マイクロバナーって何？」と「GIFアニメバナーって何？」2つに分解することができます！&lt;/p&gt;
&lt;p&gt;まず、マイクロバナーというのは、幅88ピクセル・高さ31ピクセルのごく小さな画像です。バナーというのは旗印とか横断幕という意味で、ウェブの領域では主に広告や宣伝のための中～小サイズの画像を指しています。この中途半端なサイズの起源は、かつてあったブラウザ「Netscape Navigator」のプロモーション「&lt;a href="https://web.archive.org/web/19961026040131/http://www3.netscape.com/comprod/mirror/netscape_now_program.html"&gt;Netscape Now Program&lt;/a&gt;」で配られたバナーのサイズだと言われていますね。&lt;/p&gt;
&lt;p&gt;ウェブ広告の業界団体IABが2007年頃に標準化した&lt;a href="https://web.archive.org/web/20071015042304/http://www.iab.net/standards/adunits.asp"&gt;バナーサイズの一覧&lt;/a&gt;には、このNetscape Now Programから始まるバナーリンクの爆発的なブームを考慮したのか、88x31のサイズが「Micro Bar」として含まれています（Micro Bannerじゃないんだ）。&lt;/p&gt;
&lt;p&gt;次に、GIFアニメバナーというのは、10～30fpsくらいでアニメーションするバナーのことです。バナーリンクのブーム当時には、手軽にアニメーションを扱える画像形式がGIFくらいしかなかったので、この記事ではあえてアニメバナーではなくGIFアニメバナーと呼んでいます。バナー収集サイト&lt;a href="https://cyber.dabamos.de/88x31/"&gt;The 88x31 GIF Collection&lt;/a&gt;にあるのも、GIFばかりです。&lt;/p&gt;
&lt;p&gt;もちろん、今は2026年なのでWebPやAPNGといったより高品質で効率のよい画像形式でアニメーションを利用できます。今からアニメバナーを作るならこれらの形式もおすすめです。一方で、GIFの色数制限（256色）を逆手に取ればレトロな雰囲気も作り出せるので、制作段階で減色するなり、GIFアニメ生成ツールが吐いたGIFを再度変換するのもよい考えです。&lt;/p&gt;
&lt;p&gt;モダンな画像形式を使いつつGIFの気配を残した表現を「GIFアニメ」と呼び続けるのも悪くないでしょう。きっと。&lt;/p&gt;
&lt;h2 id="gif_1"&gt;マイクロなGIFアニメバナーを作る&lt;/h2&gt;
&lt;p&gt;今回作ったバナーは冒頭に掲載したものです。もう一度貼っておきます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="!あまねけ！バナー" height="62" src="/appendices/media-kit/amanejp_176x62.gif" width="176"&gt;&lt;/p&gt;
&lt;p&gt;ここからは、この音ゲーあまねちゃんバナーをどのように作ったか概要を説明します。バナーの作り方は人それぞれだと思いますし、私は普段絵を描いたり動画を作ったりするタイプではないので、この手順はあまりよい例にはならないはずです。面倒なところをかなりhackyに済ませたので、参考程度にどうぞ。&lt;/p&gt;
&lt;h3 id="_1"&gt;画像素材を作る&lt;/h3&gt;
&lt;p&gt;88x31そのものや、それに収める前提のサイズ（小さなパーツ、あるいはスクロール用の長い画像）の画像素材を作ります。GIMPを使いましたが、透明度のあるビットマップを編集できるペイント系ソフトなら何でもいいです。&lt;/p&gt;
&lt;p&gt;キャンバス全体に配置する素材:&lt;/p&gt;
&lt;p&gt;&lt;img alt="!あまねけ！バナーのうち、あまねちゃんとama.ne.jpが表示されているフレーム" height="31" src="/images/banner8831/chara-amanejp.png" width="88"&gt;&lt;br&gt;
&lt;img alt="!あまねけ！バナーのうち、音ゲーシーンの黒い背景フレーム" height="31" src="/images/banner8831/oto-bg-1.png" width="88"&gt;&lt;/p&gt;
&lt;p&gt;アニメーションの一部に使う素材:&lt;/p&gt;
&lt;p&gt;&lt;img alt="!あまねけ！バナーのうち、音ゲーシーンの「あ」のノーツ" height="20" src="/images/banner8831/note-a.png" width="20"&gt;&lt;br&gt;
&lt;img alt="!あまねけ！バナーのうち、音ゲーシーンのハートエフェクト" height="18" src="/images/banner8831/heart-3.png" width="20"&gt;&lt;/p&gt;
&lt;p&gt;昔ドット絵を描いたときはGIMPでレイヤーを付け外しして1枚ずつ出力していましたが、ごく小規模なアニメを超えると現実的な作業ではなくなるので、動きは動画編集ソフトで与えていきます。&lt;/p&gt;
&lt;h3 id="_2"&gt;動画を作る&lt;/h3&gt;
&lt;p&gt;今回は、&lt;a href="https://manjubox.net/ymm4/"&gt;ゆっくりMovieMaker4&lt;/a&gt;を使いました。本来は実況動画などを作るソフトであり、GIFアニメの制作に使う必然性は全くありません。1ヶ月前に&lt;a href="/post/world-edit-timer/"&gt;ひみつ道具「世界修正時計」&lt;/a&gt;で使ったので少し慣れているというだけです。&lt;/p&gt;
&lt;p&gt;まともな動画編集の経験は、高校の文化祭で作ったCMか大学生の時に文化祭で作ったCMくらいで（CMばっかりだ）、当時はAviUtlを使っていました。だから、なんとなくAviUtlっぽく触れるなら何でもよかったのです。Premiere Proとかなら楽なのかな？&lt;/p&gt;
&lt;p&gt;YMM4での編集では、わずかに問題がありました。奇数の幅・高さのプロジェクトが作れないのです。高さ31ピクセルにはできないので、88x32にして出力後に削るか、倍の大きさ（176x62）で作ってあとで縮小する必要があります。倍の大きさで作ると奇数座標の配置で最終的な出力がボケますし、アニメーションなどの映像効果資源もよく注意しないと使えないので、やるなら88x32で作るのがおすすめです。&lt;/p&gt;
&lt;p&gt;この場合、下部1ピクセルの行はマゼンタなど目立つ色で埋めておきましょう。これなら削り忘れても気付きやすいです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="!88x32画像の下部1ピクセルの行をマゼンタで埋めたイメージ" height="52" src="/images/banner8831/88x32.png" width="108"&gt;&lt;/p&gt;
&lt;p&gt;あと、プレビューエリアを大きくすると表示がボケボケになって少し困ったので、また作るならこれもなんとかしたいところです。&lt;/p&gt;
&lt;p&gt;動画の編集が完了したら、これらをPNG形式のフレームで書き出します。&lt;/p&gt;
&lt;h3 id="_3"&gt;出力フレームを削る&lt;/h3&gt;
&lt;p&gt;書き出した画像フレームは88x32なので、下を削って88x31にします。慣れているのでImageMagickを使いましたが、ここも自由にしてください。GUIで済む範囲のツールだと、&lt;a href="https://www.xnview.com/en/xnconvert/"&gt;XnConvert&lt;/a&gt;あたりがよさそうでした。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# 下部1ピクセルを削る（このコマンドは元のファイルを書き換えます）&lt;/span&gt;
mogrify&lt;span class="w"&gt; &lt;/span&gt;-crop&lt;span class="w"&gt; &lt;/span&gt;88x31+0+0&lt;span class="w"&gt; &lt;/span&gt;+repage&lt;span class="w"&gt; &lt;/span&gt;frames/*.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;もし88x31より大きなサイズ（ただし定数倍）で出力したい場合は、さらにここで拡大しておきます。一般的な画像編集ソフトの拡大機能や、mogrifyコマンドの &lt;code&gt;-resize&lt;/code&gt; オプションなどを使うと、画像がボケボケになるので注意してください。ふつうはよかれと思ってバイリニアなりで綺麗に拡大しようとするので、これらの補間機能を無効にする必要があります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# framesフォルダのフレーム画像を最近傍法で2倍に拡大してframes2xフォルダに書き出す&lt;/span&gt;
mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;frames2x
mogrify&lt;span class="w"&gt; &lt;/span&gt;-path&lt;span class="w"&gt; &lt;/span&gt;frames2x&lt;span class="w"&gt; &lt;/span&gt;-scale&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;200&lt;/span&gt;%&lt;span class="w"&gt; &lt;/span&gt;frames/*.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;適切に拡大できていれば、以下のような出力になります。ピクセルは潰れません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="!あまねけ！バナーのうち、あまねけ！と表示されているフレームを2倍に拡大したもの" height="62" src="/images/banner8831/amaneke2x.png" width="176"&gt;&lt;/p&gt;
&lt;h3 id="gif_2"&gt;GIFアニメを生成する&lt;/h3&gt;
&lt;p&gt;できあがったフレーム画像の列をGIFアニメにまとめます。今回はたまに使っている&lt;a href="https://github.com/ImageOptim/gifski/"&gt;gifski&lt;/a&gt;で生成しました。もちろんここも何でもいいです。gifskiならWindowsとmacOS向けの&lt;a href="https://gif.ski/#download"&gt;GUIアプリ版&lt;/a&gt;もあるようなので、お気に入りのものがなければ使ってみてください。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gh"&gt;#&lt;/span&gt; framesフォルダのフレーム画像を10fpsのGIFアニメに変換してanime.gifに書き出す
gifski -o anime.gif --fps 10 frames/*.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;こうして、音ゲーあまねちゃんバナーが作られました！&lt;/p&gt;
&lt;p&gt;&lt;img alt="!あまねけ！バナー" height="62" src="/appendices/media-kit/amanejp_176x62.gif" width="176"&gt;&lt;/p&gt;
&lt;h2 id="gif_3"&gt;マイクロなGIFアニメバナーを使う&lt;/h2&gt;
&lt;p&gt;2026年にブラウザでごく小さな解像度の画像を表示する際は、いろいろと注意すべき点があります。&lt;/p&gt;
&lt;p&gt;まず、スマートフォンやタブレット、あるいは高解像度のディスプレイを使っているPCユーザーの環境では、1CSSピクセル幅あたり1.5～3ドットで描画するのが一般的です。この場合、CSSピクセルでのサイズに対して、幅と高さの両方で1.5倍～3倍の大きさが必要です。&lt;/p&gt;
&lt;p&gt;そのため、ブラウザでの画像表示サイズと実際の画像サイズが揃っていると、足りないドットを拡大で補おうとするのでボケた印象を与えてしまいます。&lt;/p&gt;
&lt;p&gt;こんな感じですね:&lt;/p&gt;
&lt;p&gt;&lt;img alt="!あまねけ！バナーが2dppxの環境でピクセルが潰れて表示されている様子" height="100" src="/images/banner8831/non-pixelated-banner.png" width="249"&gt;&lt;/p&gt;
&lt;p&gt;この事象の解決方法は2つあります。1つは、大きな画像を用意して小さな幅で表示するパターンです。例えば、264x93（3倍）の画像を用意して、ブラウザでは幅88ピクセル・高さ31ピクセルとして表示します。srcsetを使えば、必要のない環境にまで大きなサイズの画像を配信せずに済みます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="cm"&gt;&amp;lt;!-- 2x:1CSSピクセルあたり2ドットの環境にはbanner-2x.gifを、3xにはbanner-3x.gifを配信する --&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;banner-1x.gif&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;srcset&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;banner-2x.gif 2x, banner-3x.gif 3x&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;88&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;XXXへのリンク&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;srcsetによる画像サイズの出し分けは汎用性が高い手法ですが、実は今回のバナーのようなケースではあまり利点がありません。ふつうは縮小画像から元の拡大画像を得るのは難しく、この部分に大きな画像を配信するメリットがあるわけです。しかし、ドット絵なら単純な補間で拡大画像が一意に定まるので、何枚もサイズの違う画像を作る必要性がありません。手間も容量も余分にかかってしまいます。&lt;/p&gt;
&lt;p&gt;そのため、今回のケースでは &lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/Reference/Properties/image-rendering"&gt;&lt;code&gt;image-rendering&lt;/code&gt;&lt;/a&gt; プロパティを使うのが最適解です。これは、もともと画像サイズとデバイスでの表示サイズが異なる場合の補間手法を指定できるもので、高解像度のディスプレイで足りないドットを拡大する際にも使われるようです。ここに &lt;code&gt;pixelated&lt;/code&gt; を指定すると、最近傍法などのピクセルの見た目を維持できる手法で補間されます。これなら、88x31で配信したまま綺麗でパキッとしたピクセルを表示できますね。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;banner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;image-rendering&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;pixelated&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;表示はこんな感じ:&lt;/p&gt;
&lt;p&gt;&lt;img alt="!あまねけ！バナーが2dppxの環境でピクセルが潰れずに表示されている様子" height="101" src="/images/banner8831/pixelated-banner.png" width="249"&gt;&lt;/p&gt;
&lt;p&gt;ちなみに、あまねけ！では、高解像度のディスプレイでバナーの表示が小さくなりすぎないように以下のようなスタイルも入れています。手元では、1dppxのディスプレイと2dppxのスマホで見たときの物理的なサイズがほぼ同じになりました。メディアクエリを加えれば、3dppxの環境は3倍表示にすることもできます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;min-resolution&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;5dppx&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;banner-88x31&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;88&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;calc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="kt"&gt;px&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_4"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;マイクロなGIFアニメバナーをサイトに掲載する際のポイントをまとめます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;好きな動画編集ソフトで88x31のフレーム画像の列を出力して、&lt;a href="https://gif.ski/#download"&gt;gifski&lt;/a&gt;などのツールでGIFアニメにまとめます。&lt;/li&gt;
&lt;li&gt;一般的な動画編集ソフトでは奇数の幅・高さを指定できません。88x32で作ってから&lt;a href="https://www.xnview.com/en/xnconvert/"&gt;XnConvert&lt;/a&gt;などで一括変換します。&lt;/li&gt;
&lt;li&gt;サイトに掲載する際は、CSSで &lt;code&gt;image-rendering: pixelated;&lt;/code&gt; を指定して、デバイスでの表示がボケないようにします。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これを踏まえて、みなさんもぜひマイクロなGIFアニメバナーを作ってみましょう。他のいにしえの小さな画像規格に興味があれば、「&lt;a href="/post/xface/"&gt;X-Face compatibleなアイコンを目指して&lt;/a&gt;」も読んでみてください。&lt;a href="https://ma100.stars.ne.jp/meguruichi/"&gt;個人サイトWebオンリー めぐる市&lt;/a&gt;もよろしくお願いします。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>高松志乃のお嬢様チャンネル1「わたくしのパンツ見てたわね！」</title><link href="https://ama.ne.jp/post/shino-takamatsu-1/" rel="alternate"/><published>2026-01-11T17:40:00+09:00</published><updated>2026-01-11T17:40:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-01-11:/post/shino-takamatsu-1/</id><summary type="html">&lt;p&gt;伝説の神回&lt;/p&gt;</summary><content type="html">&lt;p&gt;「貴女たち……いま、わたくしのパンツ見てたわね！　見ないでって、あんなに言ったのに！　あぁっ、信じられないわっ！」&lt;/p&gt;
&lt;p&gt;一日全コース貸し切りのゴルフ場に響き渡る甲高い声は、高松 志乃――紫苑女学園高等部三年で、学園内最大の社交クラブ「紫風会」の主宰――のものである。怒りに震える表情で制服のスカートの裾を押さえる彼女は、同行する周囲の生徒たちから向けられたいやらしい視線を跳ね返すように周囲を睨み付けた。&lt;/p&gt;
&lt;p&gt;「志乃……？　急にどうしたの？」&lt;/p&gt;
&lt;p&gt;「ま、雅美……だって、さっきからこの方たちが、わたくしのパンツをいやらしい目で見てくるのよ……」&lt;/p&gt;
&lt;p&gt;志乃が目に涙を浮かべてその腕に縋り付いたのは、彼女と長らく付き合いのある同級生の中浜 雅美である。ゆるくウェーブのかかった明るい髪色の志乃とは対照的に、ストレートの黒髪が美しく輝くクールな美少女という印象で、学園内では特にお似合いのカップルとして噂に上るほどの人気だった。&lt;/p&gt;
&lt;p&gt;ゴルフ経験のほとんどない彼女が、しかも制服姿のままコースに出るのを許されているのは、ここが彼女の父によく世話になっているゴルフ場だという点が大きい。&lt;/p&gt;
&lt;p&gt;しかし、この志乃の制服姿は彼女の忘れ物が原因というわけではなかった。当日のクラブハウスに手違いでゴルフウェアの用意が4着しかなく、どうしても誰かが制服のままコースを回らなければならなかったのだ。この会を主催する年長の志乃がその役を引き受けたのは、まさに彼女の徳から出たものだというしかない。&lt;/p&gt;
&lt;p&gt;「なんなのよ、貴女たち……黙っちゃって！　貴女たちのパンツはスコートで守られてるからって……わたくしのパンツ、見ていいわけがないでしょう？　早くお答えなさい！」&lt;/p&gt;
&lt;p&gt;なおも怒りが収まらない志乃は、後ろで打順を待っていた後輩の生徒たちをそう問い詰める。&lt;/p&gt;
&lt;p&gt;大騒ぎしている一行だが、彼女たちはまだティーイングエリアの上である。志乃が何度かティーショットを試しただけで、ゲームは何一つ進んでいなかった。彼女の主張によれば、後ろで待つ後輩たちがスイングした拍子にスカートがめくれるのを今か今かと待っていた、ということらしい。&lt;/p&gt;
&lt;p&gt;「い、いえ……私たちは、その……ねぇ、久保田？」&lt;/p&gt;
&lt;p&gt;「えっ……私⁉　あ、章世ちゃん……えぇと、高松さま……私たち、決して見たつもりはなくて……ねぇ、小山さん？」&lt;/p&gt;
&lt;p&gt;遠坂 &lt;ruby&gt;&lt;rb&gt;章世&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;あやせ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;と久保田 沙樹は共に高等部二年生で、やはり紫風会の会員である。彼女たちは寮の同室で生活を送る仲の良いルームメイトであり、今日は章世のわずかなゴルフの経験が買われてこの場に招待されたという。&lt;/p&gt;
&lt;p&gt;陸上部で活躍する章世は志乃の役に立つチャンスだと張り切っていたのだが、一方の沙樹は章世の推薦で招かれたものの、いつもは茶道部で活躍する大和撫子である。ゴルフの経験はおろか大会さえ見たこともない沙樹は、前日にその不安な気持ちを章世に漏らしていた。&lt;/p&gt;
&lt;p&gt;いずれにせよ、章世と沙樹は志乃が主催する会――特に高松会と呼ばれていた――に招待された名誉を喜んでいたのだが、今となっては後悔しか残っていない。彼女たちの知る志乃は、こんな鬼の形相でパンツパンツと騒ぎ立てるような人物ではなかったからだ。&lt;/p&gt;
&lt;p&gt;二人は誤魔化すような苦笑いを浮かべたまま、答えもはっきりとしない。実際のところ、彼女たちは志乃のパンツを見ていた――というより、見えてしまっただけだ。しかし、そうはっきり答えるには、学園内での志乃はあまりに別格の存在であった。大空の下でパンツが丸見えになっていたなどと、後輩たちの前であけすけに指摘されたのでは彼女の顔が立たない。&lt;/p&gt;
&lt;p&gt;「なによ、小山が見ていたのっ⁉　あなた……はっきりおっしゃいなさいな！」&lt;/p&gt;
&lt;p&gt;「あっ……その、ですね……高松さまの、下着が……その、先ほどからずっと――」&lt;/p&gt;
&lt;p&gt;章世、沙樹と背の順に並ぶ一際小柄な&lt;ruby&gt;&lt;rb&gt;小山&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;こやま&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt; 正恵も、紫風会に所属する一年生である。一年生が高松会に招待されるのは異例の扱いだったが、コーディネートと撮影を担当する二年生の岡野 &lt;ruby&gt;&lt;rb&gt;一葉&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;かずは&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の知り合いとして呼ばれたのだった。つまり、撮影の手伝いとプレーメンバーを兼ねて呼ばれた半ば雑用係のような立場である。&lt;/p&gt;
&lt;p&gt;そんな彼女が、か細い声で志乃のみっともない様子について指摘しようというのは、志乃の格の高さがまだ正恵に染み渡っていないせいもあったが、ここは二人よりも勇気があると表現するべきだろう。事実、志乃が学園でここまで声を荒げる姿を見たことがある者はいなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「――みんな。志乃が嫌がってるから……やめてあげて」&lt;/p&gt;
&lt;p&gt;しかし、正恵が絞り出した勇気の声は雅美にかき消されてしまう。雅美は毅然とした表情で志乃を隠すように三人の前に立ち塞がると、彼女を守らんと言わんばかりに腕を広げた。志乃はその姿を見てはっと驚いていたが、それから小さく頷くと身を縮めてその背中に隠れて身体を小さく震わせる。&lt;/p&gt;
&lt;p&gt;なんでそんな真剣な顔で高松さまをかばえるんだろう。本当は何かの撮影なのかな。章世と沙樹はそれぞれそんなことを考えた。&lt;/p&gt;
&lt;p&gt;「わたくし、本当に怖くって。この方たち、本当にゴルフに興味がおありなの？　ストレッチの時から、わたくしのパンツをジロジロと……」&lt;/p&gt;
&lt;p&gt;（高松さま……どうしてあんなにスカートを折ってるわけ？　移動の時は普通の丈だったんだけどな……）&lt;/p&gt;
&lt;p&gt;（あれ、別に買ったスカートを切ったんじゃない？　新品に見えるもん）&lt;/p&gt;
&lt;p&gt;スカートの裾を強く引いて押さえる志乃だが、彼女が履いているのはなぜか、ほんの少し歩くだけで水色のサテンがきらめくショーツがチラチラと覗く超ミニスカートだった。屈んだりストレッチで脚を広げればもちろん、クラブをスイングするだけでパンツが見える。今は雅美の後ろに隠れたのでやっと見えなくなった、というだけだ。&lt;/p&gt;
&lt;p&gt;もちろん、この三人は志乃とゴルフをプレーしてほしいと言われてここに来ただけで、クラブの主宰を務める先輩のパンツに興味があって集まったわけではない。結局、手が付けられないほど怒り狂う彼女に困惑しながら立ち尽くすしかなかった。&lt;/p&gt;
&lt;p&gt;正恵は二人の会話を聞いて、短く切ったスカートを持ってきたという案に密かに賛成した。スカートを折ってどうにかなる丈ではなかったからだ。&lt;/p&gt;
&lt;p&gt;「遠坂！　久保田！　何をこそこそ話しているのっ！　わたくしのパンツがそんなに面白くて⁉」&lt;/p&gt;
&lt;p&gt;すると、雅美の背中から飛び出した志乃が二人に向かって指を差してそう叫ぶ。もちろん、身体が大きく跳ねた拍子にまたパンツが見えていた。まるで走り高跳びのような流れるような動きで、するりと。&lt;/p&gt;
&lt;p&gt;「いえっ、なんでもありませんわ！」「章世さんにゴルフのアドバイスをいただいてましたの。おほ、おほほ！」&lt;/p&gt;
&lt;p&gt;「あら……そう。ならいいわ。でも、そのような助言はみなさんに聞こえるようになさい」&lt;/p&gt;
&lt;p&gt;取り繕った笑顔で「はいっ！」と答えながら心の中でほっと安堵の息をつく二人の前で、志乃も呆れたように大きな溜息をつく。そして、今度はここまでカメラを回していた岡野につかつかと歩み寄った。&lt;/p&gt;
&lt;p&gt;カメラ目線でまっすぐ向かってくる志乃は、もはや強引なマスコミの取材に対峙する痴女である。&lt;/p&gt;
&lt;p&gt;「この方たち、一葉がお集めになったのでしょう？　いったい、どういうおつもりなのかしら……」&lt;/p&gt;
&lt;p&gt;「はっ、はい！　遠坂にゴルフの覚えがあるというので、ご友人と共にお誘いしました。小山は私の旧知でして、手伝いを兼ねて来てもらおうかと……」&lt;/p&gt;
&lt;p&gt;一葉はカメラに向かって話す志乃の様子をそのままに、音声だけをカメラに乗せてそう答えた。いつもプロの撮影を意識している一葉にとって、こうして無駄なライブ感が出てしまう演者との会話は、本来なら三流の振る舞いである。今日はあくまで例外だ。まさか撮影係にまで飛び火するとも思わず、ぐっと握り込むカメラの画角が少し揺れる。&lt;/p&gt;
&lt;p&gt;映像を見返すときに手ぶれがあると志乃が酔ってしまうのを思い出して、一葉はそっと脇を締めた。&lt;/p&gt;
&lt;p&gt;「一葉……貴女、さっきからわたくしにカメラを向けているわね？　こんなに……パンツが見えているというのに」&lt;/p&gt;
&lt;p&gt;「し、しかしそれは……普段から撮れるものは撮っておけと、高松さまがいつも……」&lt;/p&gt;
&lt;p&gt;「ひょっとして……わたくしのこと、裏切るおつもりなの？　わたくしのパンツを撮って、あまつさえ売り捌こうだなんて……キーッ！　貴女のこと、信じていたのに！」&lt;/p&gt;
&lt;p&gt;一葉はまた思わず「えっ！」と驚いた声を上げる。高松会の撮影では指示があるまでカメラを止めるな、と日頃から言われていた一葉だったが、そうまで言われて無用な疑いを被るわけにもいくまい。&lt;/p&gt;
&lt;p&gt;慌ててカメラを下に下ろすと、よく整えられた芝生と志乃の足元が映り込む。綺麗な緑の絨毯の上で、志乃が怒りのあまり地団駄を踏む姿がよく映っていた。&lt;/p&gt;
&lt;p&gt;「いえっ！　そんなことは決して――」&lt;/p&gt;
&lt;p&gt;「貴女っ、どうしてカメラを止めるのっ⁉　ちゃんと撮りなさい！　裁判になったら、これが唯一の証拠になるのよっ！」&lt;/p&gt;
&lt;p&gt;「は、はぁ……分かりました。では、続けさせていただきます……」&lt;/p&gt;
&lt;p&gt;これでどんな裁判を始めたところで、きっと志乃に不利な証拠になるに違いない。&lt;/p&gt;
&lt;p&gt;なぜか彼女をかばう雅美はまだしも、付き合いが長いはずの一葉でさえも志乃の奇行に翻弄されている。そんな姿を見た後輩の三人の間には、どうやらこれは高松会の洗礼ではなく、ただの異常事態なのだという確信――屈折した安心感と言ってもよい――が訪れていた。地獄の中に砂丘を見つけて喜ぶようなものである。&lt;/p&gt;
&lt;p&gt;「あの……高松さま、そろそろゴルフの続きを……」&lt;/p&gt;
&lt;p&gt;そうと決まれば、と章世が志乃のゴルフボールが飛んでいったフェアウェイ右寄りの前方を指差す。強引にコースに戻せばこの怒りも収まるかもしれない、と思ったらしい。確かに、もともとは章世が志乃や周囲の生徒にゴルフの基礎を進講しながら楽しく過ごす会、のはずだったのだ。&lt;/p&gt;
&lt;p&gt;「だって、視線を感じるんですもの。貴女たちの、とってもいやらしい視線を！」&lt;/p&gt;
&lt;p&gt;「そ、そうですね。視線が……はい。でも、コースも回らないといけませんし……」&lt;/p&gt;
&lt;p&gt;「わたくしだけが一人でミニスカートを履いてるのが変なのよね？　それがおかしくって、見てしまうんでしょう？」&lt;/p&gt;
&lt;p&gt;「いえ、高松さまがおかしいわけではないんですが、その……」&lt;/p&gt;
&lt;p&gt;「一葉だってそうよ。昔はあんなにギラギラしたカメラ捌きでは、なかったもの……」&lt;/p&gt;
&lt;p&gt;怒っていたと思ったら、急にしおらしく黙り込む。高貴な高松さまをこのまま押し込んでしまうには、どうにもばつが悪い。一歩前に出て声を上げた章世は、早くもその決断を後悔した。なにせ今の志乃は、後輩から何を進言しても被害妄想で曲解してしまうパンツモンスターである。今は一葉さえも彼女を止められない。でも、どうしたらよかったのか。&lt;/p&gt;
&lt;p&gt;雅美が動くまで待つべきだったかもしれない、と策もなく黙り込む章世。そんな彼女を救うつもりか否か、再び雅美が志乃の前に立って三人に優しく語りかける。&lt;/p&gt;
&lt;p&gt;「みんな、志乃の下着を盗み見るのをやめなさいと言ってるの。志乃だけじゃないわ……私からもお願いしてるのよ」&lt;/p&gt;
&lt;p&gt;その言葉を聞いた志乃がうんうん、と大きく頷く。いや、中浜さまはどういうおつもりで言ってるんですか……と章世はアイアンを差し出した手をそっと下ろした。志乃はもはや扱えないと分かった中で、三人の興味は雅美が自分たちの味方なのかどうかという点に移っていた。どうしてそんなに冷静に志乃を庇えるのか……単なる幼馴染の絆と説明するのも難しいだろう。&lt;/p&gt;
&lt;p&gt;では、なぜ――それでも、今は雅美の助け船に乗るしかなかった。&lt;/p&gt;
&lt;p&gt;「はい……決して見ませんわ。お二人も、ね？」&lt;/p&gt;
&lt;p&gt;「はい。高松さまの下着は見ません」&lt;/p&gt;
&lt;p&gt;「私も……絶対見ません」&lt;/p&gt;
&lt;p&gt;「えぇ、それでいいのよ。分かってるじゃない。それで、次はどうしたらいいの？　遠坂、教えてちょうだい」&lt;/p&gt;
&lt;p&gt;ここまではっきりと意味不明な誓いを立てたおかげで、やっと志乃の気持ちが落ち着いてきたらしい。章世が差し出したアイアンを受け取ると、楽しそうにフェアウェイを歩き始めた。もちろん、スカートはひらひらと舞ってパンツは丸見えのままである。&lt;/p&gt;
&lt;p&gt;彼女の球はちょうどバンカーに落ちていて、芝に抜けるバンカーショットの練習にはぴったりのシチュエーションだった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;章世はほっと胸をなで下ろして、志乃の構えに二、三つアドバイスを加えながら、バンカーの特徴やちょっとした蘊蓄を語り始める。坂を越えるための無理な構えで、先ほどよりもパンツは露わになっていたが、志乃が周りの視線さえ気にしなければ、ただテカテカの布が見えているだけだ。こうなると、いやらしくもなんともない。&lt;/p&gt;
&lt;p&gt;そうそう、こういうのがやりたかったんだよね……章世と沙樹の間にも、温かく緩んだ空気が流れているのが分かった。&lt;/p&gt;
&lt;p&gt;「ですから、クラブを砂に付けてはいけないんです。あくまで自己申告ではありますが、紳士淑女のスポーツでして、そこはきちんとした――」&lt;/p&gt;
&lt;p&gt;「そうね。こうやって、淑女……淑女ね……でも、貴女たちは全然淑女じゃないわね！　わたくしだけ打っているのも、隙だらけのパンツを見るためってことなの⁉　あぁっ、おかしいと思ったのよっ！」&lt;/p&gt;
&lt;p&gt;……しかし、そのほんわかとした雰囲気も一瞬でかき消される。志乃は今にもボールを打とうと構えたまま静止していたアイアンをぶんと振り下ろして、バンカーの砂の上に叩き付けた。そしてまた見事な地団駄を踏む。&lt;/p&gt;
&lt;p&gt;もちろん、紳士淑女のスポーツであるゴルフのプレー中にこんな蛮行があってはならない。できるなら、章世だって本当はきちんと注意したいところだろう。もう一度明らかにしておくが、ここは志乃の父にしっかりと世話になっているゴルフ場であり、このあと一葉と正恵がレーキでしっかりと砂を平してから先に進むので、なんとか許されているのである。&lt;/p&gt;
&lt;p&gt;章世がまたなんとか志乃を宥めようと、砂に半分埋まったアイアンを取り出して手渡そうとする。しかし、彼女はその手を振り払うように再び章世に向かって叫んだ。&lt;/p&gt;
&lt;p&gt;「さっきから、遠坂がわたくしの近くで一番じっくり見ていたわね！　今も下から狙うつもりで……あー、恐ろしいわっ！」&lt;/p&gt;
&lt;p&gt;「み、見てませんよ！　高松さまの構え方に心からアドバイスさせていただこうと……」&lt;/p&gt;
&lt;p&gt;「うるさいっ！　指導だの助言だのと、パンツをジロジロ見る言い訳ばかり。今日はルームメイトも一緒だというのに……そんな浅ましい視線を晒して、恥ずかしくないのかしら……」&lt;/p&gt;
&lt;p&gt;掘り出したアイアンを抱えて立ち上がった章世が、何やら冷たい視線の気配を感じて思わず振り向く。後ろにはルームメイトの沙樹が立っていて、ほんのりと疑念が混ざった目で彼女を見ていた。いや、そんなわけないでしょ⁉　また前を向くと志乃が睨み付けて、後ろを向くと沙樹の困惑した視線が刺さる。いたたまれなくなった彼女は、後ずさりして沙樹が並ぶ列に戻った。&lt;/p&gt;
&lt;p&gt;すると、すかさず沙樹が章世に耳を寄せて話し始める。&lt;/p&gt;
&lt;p&gt;（ちょ、ちょっと。章世ちゃん……見てたの？）&lt;/p&gt;
&lt;p&gt;（見てないって、沙樹。いや……ずっと見えてるけど。こんなの言いがかりにしても滅茶苦茶だって……）&lt;/p&gt;
&lt;p&gt;「また……またやってる！　貴女――」&lt;/p&gt;
&lt;p&gt;「「す、すみませ――」」&lt;/p&gt;
&lt;p&gt;こそこそと話していた姿をまた咎められるのだと思っていた二人は、慌てて背筋を伸ばして謝罪の言葉を述べ始めたのだが、その声は志乃の耳には入らないまま空に吸い込まれる。彼女の指先は意外な方向を向いていた。&lt;/p&gt;
&lt;p&gt;「やっぱり！　雅美も、わたくしのパンツ見てるっ！」&lt;/p&gt;
&lt;p&gt;「い、いや……私は、別に……」&lt;/p&gt;
&lt;p&gt;「ねぇ、雅美にだけは……本当のことを言ってほしいの。わたくし……ぐすっ、パンツを見たのを謝ってほしいわけじゃないわ。うぅ……見たのか、見てないのかだけ……知りたいだけ。ですから……ね？　後生ですから、ちゃんと教えてちょうだい」&lt;/p&gt;
&lt;p&gt;なんでここで泣けるんだよ。章世と沙樹は、涙ぐんだ声で雅美に縋り付いて彼女を見上げる志乃の姿を見て、自分たちはこの高度すぎるデートを見せつけるためだけに呼ばれたのではないか、と思った。&lt;/p&gt;
&lt;p&gt;そうでもなければ、志乃が幅の広いリボンを腰に巻き付けたのと変わらないスカートを履いて、あまつさえ髪を振り乱して怒り狂う理由を説明できなかったからだ。&lt;/p&gt;
&lt;p&gt;一方の正恵は、そんな短いスカートを履いておいてよく自分のパンツにそこまで感情移入できるものだと、なんだか明後日の方向に感心していた。ここでは最も年下の彼女には、普段は話すこともない志乃が全く異なる思考回路を持っているとしか思えなかったのだ。&lt;/p&gt;
&lt;p&gt;とうとう志乃の無茶な追及の犠牲になった雅美はしばらく黙っていたが、一葉のカメラと後輩三人の視線を向けられて、とうとう決心が付いたように口を開いた。&lt;/p&gt;
&lt;p&gt;「……その……そうね。私も……志乃のパンツを見たわ」&lt;/p&gt;
&lt;p&gt;「あああああやっぱり見てるっ！　幼稚部から知ってる女の子のパンツ見て、いやらしい気持ちになってる！　幼稚園児のパンチラ想像してるっ！　このロリコン！」&lt;/p&gt;
&lt;p&gt;雅美の振り絞った答えに割り込んで叫び出す志乃だったが、雅美はバンカーで暴れる幼馴染の姿に慌てる様子もない。志乃が矢継ぎ早に畳みかけたあと、さらにたっぷり沈黙が流れて、やっとまた言葉を返した。&lt;/p&gt;
&lt;p&gt;「志乃……私、この学園には中学から入ったのだけど……」&lt;/p&gt;
&lt;p&gt;「あら、そうだったかしら……もう幼馴染みたいな仲なんだから、幼稚部から一緒ってことにしときなさい！」&lt;/p&gt;
&lt;p&gt;「……えぇ、分かったわ」&lt;/p&gt;
&lt;p&gt;この二人って幼馴染じゃないのかよ。そして何が分かったんだよ。ゴシップにもならないどうでもいいトリビアだったが、それを聞いた章世は思わず力が抜けてその場にへたり込んでしまった。隣の沙樹にも、もはや章世の腕を支えてあげるような元気はない。その横で正恵は、雅美の沈黙の使い方に深く感心して小さく頷いていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;それから志乃をなんとか宥めて、バンカーでのプレーを一通り終えた彼女たちは、一度コース内の休憩所で身体を休めることにした。志乃はお花を摘みに行くと言ってこの場を離れていたが、休憩所のテーブルでは彼女のスカートの違和感について話す者はいない。もちろん、志乃がこの会話をいつどこで聞いているか分からなかったからである。&lt;/p&gt;
&lt;p&gt;「みなさん、すっかりお疲れみたいですわね。……あら遠坂、何か気になることでもあった？」&lt;/p&gt;
&lt;p&gt;「……いえ。高松さまのお美しさに、目を奪われていただけですわ」&lt;/p&gt;
&lt;p&gt;「そうでしたの？　しかし、わたくしなんてまだまだ道も半ばですわ。おーっほっほっほ！」&lt;/p&gt;
&lt;p&gt;休憩所に戻ってきた志乃は、なぜか制服の胸がパンパンに盛り上がっていた。どうも、トイレで胸に布かスポンジを詰めて戻ってきたらしい。ここまで来ると誰にも理由は分からないが、同じように誰も気にする様子はなかった。未だに目の前でパンツが晒され続けているのに比べれば、大したことではなかったからだ。&lt;/p&gt;
&lt;p&gt;「あとはパッティングだけですから、もう少し頑張りましょうね。久保田、小山」&lt;/p&gt;
&lt;p&gt;「は、はい……」&lt;/p&gt;
&lt;p&gt;「はい、頑張ります！」&lt;/p&gt;
&lt;p&gt;彼女はそう告げると、四人が座るテーブルとは離れたベンチに腰を下ろす。まだ空いている椅子は残っているのに、と志乃に視線を向けると――彼女は大股を開いてスカートの中が丸見えになっていた。パンツが見えている、なんてこれまでの生ぬるい事故ではなく、巨乳の痴女がパンツを見せつける事案が起きたというほかない。&lt;/p&gt;
&lt;p&gt;しかし志乃は、自分がそんな破廉恥な姿勢で話しているとは露ほども思わない平然とした態度である。&lt;/p&gt;
&lt;p&gt;志乃の動きに合わせて、すかさず四人の視線はそれぞれの向きに逸れていった。慌てて下を向いて笑いを堪えたのは章世と沙樹。正恵の視線は雨漏りが染みた天井の模様に。雅美は志乃の足元を漂っていたが、最後は彼女の顔を見つめることにした。もちろん、一葉のカメラはそのまま志乃のパンツに向けられたままだ。&lt;/p&gt;
&lt;p&gt;「あのねぇ、みなさん。もし朝礼で藤原先生のパンツが見えてしまったら、貴女たちはそうやって、いやらしい視線を向けるのかしら？　そんなことしたら、学園中で大きな問題になるに決まっているわ」&lt;/p&gt;
&lt;p&gt;「で、でも……私たちの誰かが同じように短いスカートでしたら、高松さまも見てしまいませんか？　中浜さまとか、私とか、沙樹とか……」&lt;/p&gt;
&lt;p&gt;章世に志乃を説得しようというやる気が残っているのを見て、沙樹はもはや尊敬の念さえ覚えていた。沙樹がまだベッドで眠い目を擦るうちから、朝練に走り出していく章世に並外れた体力があるのは知っていたが、この習慣は先輩の理不尽な言葉にも折れない精神力に支えられてのことだと理解したのだ。&lt;/p&gt;
&lt;p&gt;その姿を見た沙樹が拳をぎゅっと握る。私にだって、まだできることがあるかもしれない。&lt;/p&gt;
&lt;p&gt;「そ、そうですよ。こんなに短いスカート、学園でも――」&lt;/p&gt;
&lt;p&gt;「そんなの、見るわけないでしょう！　失礼ね！　話をはぐらかさないでちょうだい。とにかく、この学園の……紫風会の生徒はパンツを見る集団だなんて噂されたら……どうするおつもりなの？」&lt;/p&gt;
&lt;p&gt;「……た、確かに、それは困りますけど……ねぇ、小山さん？」&lt;/p&gt;
&lt;p&gt;「は、はい……でも、藤原先生もきっと、そんなスカートは――」&lt;/p&gt;
&lt;p&gt;ダメだった。またたらい回しにしちゃってごめんね、小山ちゃん……と、沙樹が下を向いて黙り込む。小山は先輩の期待に応えようと、立ち上がって沙樹の主張を続けようとしたのだが、その声はまた志乃に遮られた。&lt;/p&gt;
&lt;p&gt;「なるほどね……貴女たち、あくまでわたくしのパンツを見るおつもりだと。いいこと？　わたくし、パンツを見てはいけないと言ってるわけではありません。視線の流れで見てしまうのは仕方ないことですからね。ねぇ、雅美？」&lt;/p&gt;
&lt;p&gt;「え、えぇ……そうね」&lt;/p&gt;
&lt;p&gt;「でも、今からパンツを見ますって顔をするのだけは、もうおやめなさい。視線の流れでパンツが入ってくるのは、仕方のないことだもの。見てもいいの……そういう意味ではね」&lt;/p&gt;
&lt;p&gt;「そ、そうなんですね……勉強になります」&lt;/p&gt;
&lt;p&gt;正恵はまだ、これがスタイリッシュなパンツの見せ方についての指導だと思っているかもしれない。そうでもなければ、こんな暴論から学べることなどないだろう。&lt;/p&gt;
&lt;p&gt;「はい。それを踏まえて、ね……ちょっとみなさん、こちらを見てごらんなさい？　ほら……」&lt;/p&gt;
&lt;p&gt;彼女の指示に合わせて四人が志乃に視線を戻すと、今度は脚をぴったりと閉じる彼女の姿が目に入った。やっとパンツが見えなくなった志乃の姿を見て、彼女たちは日常を取り戻した束の間の安心感に包まれる。当たり前のことが、こんなに大事だったなんて――&lt;/p&gt;
&lt;p&gt;「はい、残念でしたわね！　もうパンツは見えませんわ！」&lt;/p&gt;
&lt;p&gt;――そんなわけもない。パンツを見せない志乃の姿にまるで周囲が落胆しているような主張で、気付くと彼女たちに新たな濡れ衣が着せられていた。四人は思わず顔を見合わせる。&lt;/p&gt;
&lt;p&gt;「な、なんなんですか……」&lt;/p&gt;
&lt;p&gt;「パンツが見えなくてどう思ったの⁉　言いなさいっ、遠坂！」&lt;/p&gt;
&lt;p&gt;「いや、ですから……見えたというより見せられたというか……」&lt;/p&gt;
&lt;p&gt;「言い訳はいいから、はっきりおっしゃいなさい！」&lt;/p&gt;
&lt;p&gt;パンツが見えない高松さまの姿の方が安心します、と言うわけにもいくまい。先輩に向かってパンツが見えて不快だったなどと謗るのは、こんな状況でも失礼なことだ。&lt;/p&gt;
&lt;p&gt;考え込む彼女の顔を、沙樹は心配そうに見つめている。章世が雅美に助けを求めようと視線を送ると、雅美は拳を握って励ますような表情で頷いた。……この人は、私が今から告白でもすると思っているんだろうか。&lt;/p&gt;
&lt;p&gt;もうどうしようもない。章世が小さく呼吸をして、ぐっと腹に力を込める。これは彼女が全速力で走る前の習慣だった。&lt;/p&gt;
&lt;p&gt;「……その、はい。見えなくて残念でした。申し訳ございません！」&lt;/p&gt;
&lt;p&gt;「やっぱり！　パンツが見えるのを期待していたんじゃない。本当にいやらしいったら……一葉、あれを用意なさい！」&lt;/p&gt;
&lt;p&gt;志乃の呼びかけに大きく頷く一葉が、手元に抱えていたスケッチブックをパラパラとめくって目的のページを探す。残りの四人はきょとんとした表情で一葉の動きを見ることしかできない。&lt;/p&gt;
&lt;p&gt;「実はね……貴女たちがここまでわたくしのパンツを何回見たか、調べてもらっていたのよ。一葉、結果をこの方たちに見せて差し上げなさい！」&lt;/p&gt;
&lt;p&gt;一葉がカメラの下で示すスケッチブックには、今日の招待客である後輩の三人と、そして雅美の名前が正の字と共に並ぶ表が書かれていた。つまり、彼女たちが志乃のパンツを見ていた回数を書き付けていたらしい。それに気付いた章世と沙樹は、神妙さよりも面白さが上回った葬式の一場面のように、思わず下を向いて笑いを堪えている。&lt;/p&gt;
&lt;p&gt;まずい、と思って口を押さえた二人だが、志乃はその様子には気付いていないようだった。&lt;/p&gt;
&lt;p&gt;「……ほら、これが貴女たちがわたくしにいやらしい目線を向けていた回数よ。反省して、ちゃんとカメラに向かって宣言なさい！」&lt;/p&gt;
&lt;p&gt;一葉が名前と回数を指差す。最初に書かれていたのは章世の名前だった。なんでいつも私から……と溜息をついた章世が、一葉の構えるカメラの前に立つ。&lt;/p&gt;
&lt;p&gt;「私、遠坂は高松さまのパンツを……7回見ました」&lt;/p&gt;
&lt;p&gt;「私、久保田は高松さまのパンツを、6回見ました」&lt;/p&gt;
&lt;p&gt;「こ、小山正恵です。私は高松さまのパンツ、10回見ました」&lt;/p&gt;
&lt;p&gt;「中浜雅美。私は志乃のパンツを……15回見てしまったわ」&lt;/p&gt;
&lt;p&gt;なんで幼馴染が一番たくさん見てるんだよ。なんか小山ちゃんも意外と見てるし。そもそも私本当に7回も見たの……？　先陣を切ってパンツを見たなどと言わされたことを思い出して、章世は急に恥ずかしくなっていた。こういう破廉恥な罪を告白させる罰は、先頭の方に恥が集中するものである。&lt;/p&gt;
&lt;p&gt;こうして四人の正直な告白を聞いた志乃は、すっきりとしたすがすがしい顔でその場をくるりと回った。外に出ればスキップで駆け回りそうな表情である。&lt;/p&gt;
&lt;p&gt;「えぇ。みんなの気持ち、伝わったわ。ありがとう。最後に、みなさんで一緒に宣言してほしいの。貴女たち、わたくしの周りに並んでちょうだい」&lt;/p&gt;
&lt;p&gt;四人は志乃を囲む記念写真のような構図でカメラの前に並んだ。しゃがみこんだ志乃のスカートからは、もちろんパンツがしっかりと見えたままだ。しかも、今の彼女は規格外の巨乳の持ち主である。&lt;/p&gt;
&lt;p&gt;「じゃあ、最後に声を合わせて『志乃のパンツを見ました！』ってカメラに向かって笑顔で言うのよ？　いいわね？」&lt;/p&gt;
&lt;p&gt;四人が顔を見合わせる。章世と目が合った雅美は、また彼女に向かって頷いた。章世は助けを求めるように沙樹に視線を送るが、彼女も控えめに頷くだけだ。こんなこと、年少者の正恵に任せるわけにもいかない。だからって、なんで最後まで私が……という思いを飲み込んで「せーの……」と章世が小さな掛け声を上げると、みんなが息を吸う音がぴったりと合った。&lt;/p&gt;
&lt;p&gt;「「「「私たち、志乃のパンツを見ましたー！　わーっ！」」」」&lt;/p&gt;
&lt;p&gt;そして、体育祭の応援合戦でも聞くことができないような大音声が隣のコースまで響く。その心のこもった宣言を左右の耳からしっかりと聞いて、志乃は目を瞑って何度も頷いていた。なぜか目尻には涙さえ浮かんでいる。&lt;/p&gt;
&lt;p&gt;「後輩から名前を呼び捨てにされるのも、なかなかいいものね……うん。今回はこれで不問にいたしますけど、もう次はありませんからね。分かりましたこと？」&lt;/p&gt;
&lt;p&gt;「「「はい、高松さま……」」」&lt;/p&gt;
&lt;p&gt;「もう疲れたし、わたくしは先に帰りますわ。雅美、帰りの引率はお願いね？」&lt;/p&gt;
&lt;p&gt;「えぇ、分かったわ」&lt;/p&gt;
&lt;p&gt;「一葉も、もうカメラ止めていいわよ」&lt;/p&gt;
&lt;p&gt;「……はいカットっ！　オッケーで～す！」&lt;/p&gt;
&lt;p&gt;一葉の朗らかな掛け声が疲れ切った彼女たちの間を駆け抜けて、とうとう撮影が終了する。まるで、ここまでが全てコントの一幕であったかのように。&lt;/p&gt;
&lt;p&gt;章世と沙樹は緊張の糸が切れたように溜息をつくと、そのまま流れるように漏れ出す笑い声を聞いて互いに顔を見合わせた。それを見た正恵もクスクスと笑い始める。雅美はそんな彼女たちの姿を見て、今日の高松会をどうにか空中分解せずに終わりまで運べたことに安堵していた。&lt;/p&gt;
&lt;p&gt;そんな彼女たちを尻目に、疲れたと主張する志乃の足取りは雲のように軽いままで、休憩所を出るとやはりスキップでコースを駆け出していくのだった。&lt;/p&gt;
&lt;p&gt;これが、嵐のように過ぎ去った今回の高松会の一部始終である。&lt;/p&gt;
&lt;p&gt;「その……みんな、ごめんなさい。志乃もいろいろ仕事を抱えてて、毎日ストレスが多いから……」&lt;/p&gt;
&lt;p&gt;「そ、そうですよね……いや、私たちは大丈夫ですから。ね、沙樹？」&lt;/p&gt;
&lt;p&gt;「はい。これで高松さまのストレスが晴れるのでしたら……」&lt;/p&gt;
&lt;p&gt;「私も、一年生で高松会にお誘いいただいたというだけで、身に余る名誉ですので」&lt;/p&gt;
&lt;p&gt;「で……志乃の巨乳パンチラ写真、みんなは欲しい？　私の分と一緒に、何枚か印刷しておくけど……」&lt;/p&gt;
&lt;p&gt;「「「いや、いらないです……」」」&lt;/p&gt;
&lt;p&gt;その夜、三人のLINEには雅美からみんなで撮った記念写真が送られてきた。いらないって言ったのに。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>AIで作品の周縁を埋めることについて</title><link href="https://ama.ne.jp/post/fill-me-with-ai/" rel="alternate"/><published>2026-01-06T13:28:00+09:00</published><updated>2026-01-06T13:28:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2026-01-06:/post/fill-me-with-ai/</id><summary type="html">&lt;p&gt;大きな石を先に入れなさい&lt;/p&gt;</summary><content type="html">&lt;p&gt;先日公開した&lt;a href="/post/ogpai-2025/"&gt;あまねけ！AI 2025&lt;/a&gt;では、2025年末時点での&lt;a href="/"&gt;あまねけ！&lt;/a&gt;におけるAIの活用方法について記録を残しました。この中では、可能性を収束させるという意味での本来の執筆は人間が行うものとし、要約および分析という新たな可能性を要求しない作業をAIに任せていく旨を記載しています。&lt;/p&gt;
&lt;p&gt;今回はその補足として、具体的にどのような範囲でAIを使って作品の周縁を埋めていくかという観点で記述を残します。利用例はいずれも、2025年に公開した作品について、Google GeminiからGemini 3 Flash相当のモデルで出力したものです。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;要約: 作品説明・キャッチコピー&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;要約: 演習問題&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;分析: 評価&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;分析: 作品解説&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;要約: 作品説明・キャッチコピー&lt;/h2&gt;
&lt;p&gt;前回の記事で「完成した本文からなめらかな粒度でサマリーを取り出すのもAIが得意とする分野です」と書きました。なめらかな粒度というのは、単純には文字数を調整できるという意味ですが、どこまでサマリーに盛り込むかを調整できるという意味でもあります。&lt;/p&gt;
&lt;p&gt;pixivや小説家になろうといった作品投稿プラットフォームでは、「キャプション」や「あらすじ」という名前で、作品の短い説明を表示することができます。あらすじという名前ではありますが、この説明には結末までを洗いざらい掲載することはまずありません。この作品がどのような魅力があり、こんな人に楽しんでもらえるはず……という情報を部分的に示すのがセオリーです。&lt;/p&gt;
&lt;p&gt;このような制約を盛り込んでAIに指示すると、適切な作品説明を出力できます。以下の例は、&lt;a href="/post/shoot-from-the-moon/"&gt;月から降ったクリスマス&lt;/a&gt;の本文を渡して、文字数を指定して要約を出力したものです。山場や結末までは明かさず世界観や登場人物、大まかな展開を盛り込むよう指示することで、適切な作品説明やキャッチコピーを出力できます。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「脳力」が投資対象となった近未来。最大手企業イーコムの学園に通うメイは、月面からの通信デモの実験体に選ばれる。離れ離れになる幼馴染のエリ。二人の他愛ないおしゃべりこそが、科学を凌駕する強力な脳波を生む唯一の鍵だった。大人たちの思惑と「冬の時代」の再来に翻弄される少女たちは、聖なる夜にある「計画」を胸に秘める。世界を巻き込む、史上最高に個人的で純粋な、二人だけの反逆が幕を開ける。&lt;br&gt;
&lt;cite&gt;この作品の結末や山場を除いた投稿サイト用の作品説明を200字で出力して&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;以下はキャッチコピー案の出力例です。&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;月へ行く君と、地上で待つ私。物理的な距離さえ、私たちの「脳」は飛び越える。&lt;/li&gt;
&lt;li&gt;「私、かぐや姫になれるんだってさ」――笑えない冗談を、最高の伝説に変えるまで。&lt;/li&gt;
&lt;li&gt;世界を繋ぐ最新技術より、君と話す「犬の好み」の方が、よっぽど価値がある。&lt;/li&gt;
&lt;li&gt;アルミホイルを頭に巻いてお待ちください。間もなく、少女の初恋が世界を飲み込みます。&lt;/li&gt;
&lt;li&gt;脳波通信の先駆者が交わした最初の言葉は、愛の告白でも平和の祈りでもなかった。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;cite&gt;この作品の結末や山場を除いた投稿サイト用のキャッチコピー案をいくつか出力して &lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;自分が重視していること、特に入れたい要素があれば明記するとよいでしょう。盛り込みたい要素が完全に決まっているなら、本文ではなく情報の箇条書きを与えて清書してもらうだけでもいいかもしれません。やはり最終的には、かける時間や手間と予測可能なクオリティのトレードオフになります。&lt;/p&gt;
&lt;p&gt;また、キャッチコピー程度ならよいのですが、短いタイトル案やあらすじを含む長めのタイトル案では精度が出ない印象です。作品の要素をフラットに盛り込もうとするAIの公平さが悪い影響を与えている気がします。&lt;/p&gt;
&lt;h2 id="_2"&gt;要約: 演習問題&lt;/h2&gt;
&lt;p&gt;前回挙げていなかったAIの使い方として、作品の理解を深めるための演習問題を考えてもらうケースがあります。これはもともと、「&lt;a href="https://harajuku-crisis-team.tumblr.com/"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;」という作品に掲載された演習問題のオマージュしたものです。オリジナルでは「DISCUSSION TOPICS」として、登場人物の心理や世界観を元に想像力を膨らませる問いを、そして「EXERCISES」として、作品の内容を元に現実で実行する課題がいくつか出されます。&lt;/p&gt;
&lt;p&gt;これまで、あまねけ！では&lt;a href="/post/ruine-1/"&gt;廃墟、曖昧、私とあなた&lt;/a&gt;と&lt;a href="/post/dont-say-coming/"&gt;イってないよね？&lt;/a&gt;でこのコーナーを掲載しています。「EXERCISES」はオリジナルの時点でネタっぽいというか、必ずしも作品の理解を深めるものではありません&lt;sup id="fnref:exercises"&gt;&lt;a class="footnote-ref" href="#fn:exercises" title="主人公3人がショップの経営で生計を立てているという設定を前提に、「オリジナルグッズを売るショップを開いてみましょう」という課題が出たりしています。"&gt;1&lt;/a&gt;&lt;/sup&gt;。一方で「DISCUSSION TOPICS」は、作品やキャラクターの考察を深めるテーマになりうる内容を多く含んでいます。&lt;/p&gt;
&lt;p&gt;ただし、ここでいう &lt;em&gt;考察&lt;/em&gt; とは、作品内の曖昧な要素や伏線をかき集めて繋ぎあわせるパズルや謎解きクイズ &lt;strong&gt;ではない&lt;/strong&gt; ことに注意してください。&lt;/p&gt;
&lt;p&gt;以下の例は、&lt;a href="/post/park-nye/"&gt;PARK New Year's Eve&lt;/a&gt;についての「DISCUSSION TOPICS」および「EXERCISES」を出力した試行です。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;以下の作品について、作中の登場人物の行動や選択の意味や理由について理解を深めたり、自分が作中の世界に置かれた時にどのような行動や選択を取るかを考えるための議論のテーマを「DISCUSSION TOPICS」としていくつか候補を出力して。いずれも作品の具体的な要素を前提にした質問の形にすること。&lt;br&gt;
さらに、作中のアイテムや世界観のルールなどへの理解を深めるために、実際に現実で実行できる演習問題を「EXERCISES」としていくつか候補を出力して。いずれも具体的な行動を提案する形にすること。&lt;br&gt;
いずれのセクションも、フラットな箇条書きのみで出力して複雑な見出しを含めないこと。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;以下、AIによる出力結果です。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;DISCUSSION TOPICS&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ことこは「一度始めるとキリのいいところまで進めたくなる」性格として描かれていますが、あなたが大晦日のような特別な日に、本来の予定を超えて仕事や作業に没頭してしまうとしたら、それはどのような心理や目的がある時だと考えられますか。&lt;/li&gt;
&lt;li&gt;りとは叔父のタバコ屋を手伝うという「嘘（あるいは建前）」をまりにだけ伝えていました。まりはこの嘘を見抜いていますが、りとはなぜことこには素直に行き先を話し、まりには別の説明をしたのだと思いますか。二人の関係性の違いに着目して考えてみてください。&lt;/li&gt;
&lt;li&gt;まりはフランス旅行を諦めて仕事をしていましたが、一方で自由に振る舞うりとに対して複雑な感情を抱いています。もしあなたがまりの立場なら、自分だけが真面目に働いている状況で、自由奔放な友人とどのように距離を置いたり、あるいは感情を整理したりしますか。&lt;/li&gt;
&lt;li&gt;ことこは初日の出を見に行くという提案に対し「一年で一番早い太陽光発電」という科学的な関心を結びつけています。自分の趣味や専門知識を、日常のイベントや遊びに強引に結びつけて楽しむことについて、あなたならどのような分野でそれを実行しますか。&lt;/li&gt;
&lt;li&gt;物語3では、りととまりの間に独特の緊張感や親密さが描かれています。まりが最後に見せた「誘い方、もっとちゃんとしなさいよ」という言葉には、彼女のどのような本音や期待が込められていると解釈しますか。&lt;/li&gt;
&lt;li&gt;もしあなたがPARKのメンバーの一人だとしたら、大晦日の営業終了後、誰の誘いに乗ってどこへ行きたいと考えますか。「ことことの千葉ドライブ」「まりとの麻辣湯」「りととの深夜のスクーター」の選択肢から、その理由と共に選んでみてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;EXERCISES&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;今年の干支（例：2026年は午/馬）をベースにしつつ、りとのように「自分が一番可愛いと思う動物」に要素を置き換えた、年始のグリーティングカードやポスターのラフデザインを紙やタブレットで作成してみる。&lt;/li&gt;
&lt;li&gt;ことこのブログ「ことことサイエンス」に倣い、身近な食べ物（例：ラーメンの麺のコシ、お菓子の焦げ目の匂い、炭酸飲料の泡など）がなぜそのような状態になるのか、化学的な原理を一つ調べて140文字以内で解説文を書いてみる。&lt;/li&gt;
&lt;li&gt;りとのように冬の夜にスクーターや自転車で遠出することを想定し、手持ちの衣類の中から「最も防寒性能が高い組み合わせ」をコーディネートしてみる。その際、インナーの種類や小物の活用など、機能性に特化して選定すること。&lt;/li&gt;
&lt;li&gt;りとの叔父のタバコ屋のような「何が本業か分からない、独特の雰囲気を持つ個人商店」を街中で探し、その店の看板や店先に並んでいるアイテムから、店主がどのような人物で、どのようなルートで商品を仕入れているのかを自由に想像してメモに書き出す。&lt;/li&gt;
&lt;li&gt;ことこのように「日本で一番早い〇〇」というコンセプトで、自分なりの体験プランを立ててみる（例：日本で一番早く開店する店に行く、日本で一番標高の高い場所で特定の行動をするなど）。実現可能性は問わず、その体験が自分にとってどのような価値を持つかを言語化してみる。&lt;/li&gt;
&lt;li&gt;寒い中での作業や移動の後に食べたくなる「自分にとっての『にんたまラーメン』や『麻辣湯』」に相当する、究極の冬の背徳メシを3つリストアップし、それぞれの「最も美味しく感じるシチュエーション」を定義する。&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;演習問題をAIに出力させる理由の一つとして、この課題に取り組むのは人間自身だという点が挙げられます。もちろん、このままAIに続きを尋ねれば想定回答も得られるでしょうが、きっとあなたの考察とは異なります。そういうAIの &lt;em&gt;誤った&lt;/em&gt; 考察を訂正する形でも作品への理解は深まりうるでしょうし、これは引き続き人間自身が取り組む意味がある課題です。&lt;/p&gt;
&lt;p&gt;創作における実用的な面では、自分が書いた作品の演習問題を出力させることで、ストーリーの構成や盛り込んだ表現について一歩引いた目線でチェックできます。AIがある種の要約としてまとめた演習問題は、（作者の脳内にしかない要素を含めず）作品の本文のみから読み取れるテーマや、考察に値する部分を引き出したものだと考えられるからです。&lt;/p&gt;
&lt;h2 id="_3"&gt;分析: 評価&lt;/h2&gt;
&lt;p&gt;AIを分析に使う方法の一つとして、書き上げた初稿の評価を依頼するケースがあります。これはあらすじやサムネイルで作品を外向きに飾る方法というより、作品の構成や表現を改善するツールとしての使い方です。誰かに依頼するよりも簡単かつ高速で、しかも何度でも &lt;em&gt;初めて&lt;/em&gt; 作品を読んだ評価を引き出せます。誰かの頭を殴らずに作品を読んだ記憶を忘れてくれるというのは、AIだけの利点です。&lt;/p&gt;
&lt;p&gt;評価の内容は長くなりがちなので、出力例は一部のみ掲載します。使ったのは&lt;a href="/post/magic-parrot/"&gt;オウムは魔法で殺された！&lt;/a&gt;です。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;... (snip) ...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 表現の不自然さ・説明過多な部分&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;クーの自虐的なモノローグの繰り返し&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;「物覚えが悪い」「頭が悪い」「ちんちくりん」という表現が何度も登場します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;課題: クーの卑屈さが強調されすぎて、読者がキャラクターに共感する前に「卑屈な語り」そのものに疲れてしまう可能性があります。&lt;/li&gt;
&lt;li&gt;改善案: 「自分はダメな子だ」と言葉で説明するのではなく、&lt;strong&gt;「何度も同じ場所でつまずく」「三つしかない荷物の名前を忘れないように呟き続ける」&lt;/strong&gt;といった行動で、彼女の不器用さを描写（Show, don't tell）してみてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;アイさんのセリフの「説明っぽさ」&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;「私のシゴトは、こうして白い身体を晒して歩くことそのものなんだ」というセリフは、設定を説明するために言わされている印象を受けます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;課題: キャラクター同士の会話としては少し不自然です。&lt;/li&gt;
&lt;li&gt;改善案: 「私は、ただここにいて、あなたに見られるのがシゴトなの」など、もう少し情緒的、あるいは謎めいた言い回しにすることで、アイさんの上位存在としての不気味さと美しさが際立ちます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. 退屈に感じられやすいポイント&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;荷物仕分けの描写の単調さ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;「赤い花、銀のレンガ、白い糸」の仕分け作業の描写が少し長いです。&lt;/p&gt;
&lt;p&gt;... (snip) ...&lt;br&gt;
&lt;cite&gt;この作品について批判的に読んで、構成上読みにくいところ、分かりにくいところ、退屈なところ、表現が不自然なところなど、作品を改善できるあらゆる要素を教えて&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この作品がMinecraftのゴーレムをモチーフにしているという背景もあり、正直あまり的を射ていないコメントも多いです。あくまで人間が自分の作品を改善するための取り組みであり、AIはそのサポートに過ぎないことを念頭に置いた上で、必要な指摘を選んで取り入れていくといいでしょう。&lt;/p&gt;
&lt;h2 id="_4"&gt;分析: 作品解説&lt;/h2&gt;
&lt;p&gt;いわゆる作品解説は、AIの出力を存分に活用できる分野の一つです。渡された作品の本文の中で推論し、 &lt;em&gt;自分の考え&lt;/em&gt; を交えて出力します。これを要約の一種と捉えることもできますが、単なるあらすじと異なり独自の分析や解釈を含むので分析として取り扱いました。&lt;/p&gt;
&lt;p&gt;作品解説の例は、&lt;a href="/post/my-2025/#2025-by"&gt;「2025年のこと」に「色がきれいなよもぎもち」として掲載した解説&lt;/a&gt;を直近で掲載したので、興味があればそちらを読んでみてください。大げさで曖昧なのにそれっぽい書きっぷりを許されたAIが、その真価を発揮しています。&lt;/p&gt;
&lt;p&gt;このように、作品説明やキャッチコピー、サムネイルで入り口を飾り付けて、演習問題や作品解説で出口を充実させれば、作品と世界の溝を効率よく埋めることができます。こんなに広い範囲でAIを活用したのに、体験のコアとなる作品の執筆は、まだあなたに任されたままです。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:exercises"&gt;
&lt;p&gt;主人公3人がショップの経営で生計を立てているという設定を前提に、「オリジナルグッズを売るショップを開いてみましょう」という課題が出たりしています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:exercises" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>2025/12/01～2025/12/31</title><link href="https://ama.ne.jp/post/report-20251231/" rel="alternate"/><published>2025-12-31T20:14:00+09:00</published><updated>2025-12-31T20:14:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-31:/post/report-20251231/</id><summary type="html">&lt;p&gt;2025/12/01～2025/12/31のレポート&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/report-20251231/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;記事のデフォルトのサムネイル画像を正方形から1.91:1に変更しました。&lt;/li&gt;
&lt;li&gt;&lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; で表示していたハートマークの一部を♡に置き換えました。&lt;/li&gt;
&lt;li&gt;一部の記事について、NFSW（職場や公共の場での閲覧に適さない旨）の表示を追加して、トップページの記事一覧から削除しました。&lt;ul&gt;
&lt;li&gt;主にstewカテゴリの作品（特定のシチュエーションに基づく台本風テキスト）です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;過去の古いリンク形式に対するケアを追加しました。&lt;ul&gt;
&lt;li&gt;2017年頃まで使っていた &lt;code&gt;/posts/title.html&lt;/code&gt; を &lt;code&gt;/post/title/&lt;/code&gt; にリダイレクトします。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;一部のマークアップを調整しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/secret-fridge/"&gt;冷凍庫のひみつ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;への投稿作品です。&lt;/li&gt;
&lt;li&gt;冷蔵庫や冷凍庫が大の苦手な海ぶどうも、氷漬けにすれば比較的食感が保たれるらしいです。写真を見た感じでは割とへにゃへにゃでした。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/magic-parrot/"&gt;オウムは魔法で殺された！&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;への投稿作品です。&lt;/li&gt;
&lt;li&gt;Minecraftで&lt;a href="https://ja.minecraft.wiki/w/%E3%82%AB%E3%83%83%E3%83%91%E3%83%BC%E3%82%B4%E3%83%BC%E3%83%AC%E3%83%A0"&gt;カッパーゴーレム&lt;/a&gt;が実装された記念にかかれた二次創作のようなものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/world-edit-timer/"&gt;ひみつ道具「世界修正時計」&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;への投稿作品です。&lt;/li&gt;
&lt;li&gt;昨年に引き続き、VOICEPEAKを使って音声作品みたいな何かを作りました。今回はゲーム風の動画もあります。&lt;/li&gt;
&lt;li&gt;AIと人間の違いってなんでしょうね、という雑語りへの答えの一つです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/dont-say-coming/"&gt;イってないよね？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;百合SS Advent Calendar 2025への投稿作品ではありません。昔思いついたアイデアがメモから出てきたのでかきました。&lt;/li&gt;
&lt;li&gt;巻末に作品に関する考察・議論を促す演習問題を掲載しているのは、&lt;a href="https://harajuku-crisis-team.tumblr.com/"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;のオマージュです。&lt;/li&gt;
&lt;li&gt;ノクターンノベルズに転載したら&lt;a href="https://novelcom18.syosetu.com/impression/list/ncode/2993443/"&gt;感想&lt;/a&gt;をもらえたのがしみじみ嬉しかったです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/shoot-from-the-moon/"&gt;月から降ったクリスマス&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;への投稿作品です。&lt;/li&gt;
&lt;li&gt;たぶん初めてちゃんとクリスマスの話をかきました。月から降るのがちゃんとしてるのかは分かりません。&lt;/li&gt;
&lt;li&gt;お互いに知ってる犬の好みを尋ねるという会話のモデルは、とある場所で実際に見かけたものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/bestbuy-2025/"&gt;消費の嬉しさ・ベストバイ2025&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;みなさんが楽しそうにやっているベストバイ記事をやってみたくなったので、かきました。&lt;/li&gt;
&lt;li&gt;あまりに普通の仕上がりになったので、来年は架空のベストバイ記事もかきたいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/ogpai-2025/"&gt;あまねけ！AI 2025&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="/"&gt;あまねけ！&lt;/a&gt;の掲載作品、サムネイル、執筆過程などにおけるAIの利用範囲を2025年時点でまとめたものです。&lt;/li&gt;
&lt;li&gt;来年以降も、アイデア出しやコンテンツを直接執筆する用途よりは、サムネイルの生成や推敲の参考に用いるのが主になりそうです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/my-2025/"&gt;2025年のこと&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;あまねけ！が過ごした2025年が全部分かる今年のまとめです。無職とかあんまり関係なく書けるときは書けますね。&lt;/li&gt;
&lt;li&gt;2024年よりできごとの分量が少ないので1本にしています。写真もいっぱいです。&lt;/li&gt;
&lt;li&gt;友人の「色がきれいなよもぎもち」さんからもコメントをもらいました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/park-nye/"&gt;PARK New Year's Eve&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;2025年最後の作品です。やりたかったので滑り込ませました。&lt;/li&gt;
&lt;li&gt;PARKが大晦日まで営業している世界で、もし2人だけで店番することになったら……というif世界を3つかきました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>PARK New Year's Eve</title><link href="https://ama.ne.jp/post/park-nye/" rel="alternate"/><published>2025-12-31T20:10:00+09:00</published><updated>2025-12-31T20:10:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-31:/post/park-nye/</id><summary type="html">&lt;p&gt;原宿でも、ゆく年くる年&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品はURAHARAおよびPARK Harajuku: Crisis Team!を元にしたファン・フィクションです。これらの作品の公式設定を追加または削除したり、置き換えたりするものではありません。 */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#park-nye-1"&gt;PARK NYE 1: ことこ・りと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#park-nye-2"&gt;PARK NYE 2: ことこ・まり&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#park-nye-3"&gt;PARK NYE 3: りと・まり&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#extra-links"&gt;EXTRA: LINKS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="park-nye-1"&gt;PARK NYE 1: ことこ・りと&lt;/h2&gt;
&lt;p&gt;「ことこー、もう鍵閉めていい？」&lt;/p&gt;
&lt;p&gt;「うん、大丈夫！　ゴミまとめたらすぐ出るねー」&lt;/p&gt;
&lt;p&gt;PARKが2025年最後の営業を終えてから数時間。仕事を終えたりととことこが、今まさに帰ろうとしているところである。&lt;/p&gt;
&lt;p&gt;大晦日というのもあって、最低限の在庫整理と売上の集計だけ済ませるつもりのことこだったが、いつの間にか年始のセールの準備まで手を付け始めていた。福袋のチェックを始めたあたりで何かがおかしいと気付いたものの、一度始めるとキリのいいところまで進めたくなるものだ。&lt;/p&gt;
&lt;p&gt;結局りとが「ことこ、そろそろ帰らない？」と退屈そうに尋ねるまでことこの手は止まらなかった。&lt;/p&gt;
&lt;p&gt;りとがPARKのドアに年始のあいさつと営業開始日のお知らせを張り出して、満足そうに頷く。白くてふわふわなモルが門松に埋まるポスターはりとの描いたものだ。福袋のおまけシールにも入っている。&lt;/p&gt;
&lt;p&gt;「おまたせ！　次は4日からだよね。まりちゃんはフランス旅行中だけど……りとちゃんは来れそう？」&lt;/p&gt;
&lt;p&gt;「私は来れるよー。どうせ暇だし。タバコ屋、仕入れでしばらく閉めてるからね。ことこは？」&lt;/p&gt;
&lt;p&gt;「私も！　りとちゃんが来るなら明日も行くよ」&lt;/p&gt;
&lt;p&gt;りとの言うタバコ屋は、彼女の叔父が新宿は歌舞伎町の路地の奥に構える小さな店のことだ。看板こそタバコ屋だが、効能のよく分からないお茶やエスニックハーブ抽出物、出所の知れない天然の毛皮を使ったふわふわのキーホルダーまで所狭しと並ぶ怪しい店である。&lt;/p&gt;
&lt;p&gt;その叔父が、一週間ほど前から観光を兼ねた長期の仕入れに出かけていて、少なくとも一月の間は戻ってこないらしい。りとの収入にも大きな影響があるはずだが、毎年恒例の予定のようで特に気にしている様子はなかった。&lt;/p&gt;
&lt;p&gt;「ふふっ……そっか。でも、初日の出を見に行くから明日は来ないよ」&lt;/p&gt;
&lt;p&gt;「えっ、初日の出？　どこ行くの？」&lt;/p&gt;
&lt;p&gt;戸締まりを終えた二人が、おしゃべりしながら軽やかにとんとんと階段を下りていく。周りの店はとっくに仕事を終えていて、店の前にも人通りはほとんどない。よく晴れた冬の澄んだ空気が夜空を綺麗に映し出して、上りかけたオリオン座がよく見えた。&lt;/p&gt;
&lt;p&gt;ことこやまりが休んで二人で店番をして遅くなった日は、りとがスクーターで駅まで送っていくのがお決まりである。三人が揃っている日はまりとことこが一緒に駅まで歩いて帰るので、こういう日は少しだけ特別だった。駅までの道を少し遠回りして風を浴びるのが好きで、小学生の時に友達に誘われて買い食いした日のことを思い出す、とことこの日記には書かれている。&lt;/p&gt;
&lt;p&gt;「ふつーに銚子。日本で一番――」&lt;/p&gt;
&lt;p&gt;「あー！　日本で一番初日の出が早く見られるんだよね」&lt;/p&gt;
&lt;p&gt;「そゆこと。めっちゃ寒いけど、せっかく初日の出だし」&lt;/p&gt;
&lt;p&gt;「うんうん。元旦に一番輝く場所だもんね。銚子、いいなぁ……一年で一番早い太陽光発電……」&lt;/p&gt;
&lt;p&gt;ことこが目を輝かせながら、独り言と共に想像を膨らませていく。携帯ソーラーパネルを持ち込んで、日本で一番早いクリーンエネルギーで配信をするとか、日本で一番早い太陽光で充電したバッテリーを持ち帰るとか、そういうことを考えていたらしい。りとはあまり興味がないようで、さっとスクーターにまたがった。&lt;/p&gt;
&lt;p&gt;「ねぇ……りとちゃん」&lt;/p&gt;
&lt;p&gt;「んー、忘れ物でもした？」&lt;/p&gt;
&lt;p&gt;裏地に明るいオレンジの入ったヴィンテージブルゾンの裾をつまんでりとを呼び止めたことこが、言い出しにくそうにもじもじと毛糸の手袋をはめた指先を合わせる。それから「あのね」とか「急にごめんね」なんて呟きながら話を切り出せないことこを、りとは首を傾げてじっと見ていた。それからやっと、ことこが思い切った表情でたんっ、と地面を蹴る。&lt;/p&gt;
&lt;p&gt;「わ、私も銚子、一緒に行ってもいい？　家には連絡しておくから……」&lt;/p&gt;
&lt;p&gt;「なんだ、そういうこと……当たり前でしょ？　一緒の方が楽しいし」&lt;/p&gt;
&lt;p&gt;「やったー！　じゃあ、久しぶりににんたまラーメンでも行かない？　あれ、二年に一回くらい食べたくなるんだよね」&lt;/p&gt;
&lt;p&gt;「あー、いいね。たぶん死ぬほど寒いから、いつもよりめっちゃ美味しく感じると思うよ」&lt;/p&gt;
&lt;p&gt;スクーターのエンジンをかけると、しんとしていた原宿の通りに低い音が響き始める。途中でカイロか新聞紙くらい買わなきゃな、とりとは思った。鹿革のグローブも、昔買った古いのがもう一組あったはずだ。&lt;/p&gt;
&lt;p&gt;ことこはタンデムシートで緑のスクールマフラーの端を襟にしまい込み、ファスナーを端まで上げてヘルメットをかぶった。冷たい空気の匂いがする。りとのスクーターに乗るのが分かっている冬の日は、このスリムなアークティックパーカーで来るのがお気に入りだった。&lt;/p&gt;
&lt;p&gt;駅までのちょっとしたドライブが、千葉を横断する小旅行に早替わり。PARKの大晦日はまだ続きそうだった。&lt;/p&gt;
&lt;h2 id="park-nye-2"&gt;PARK NYE 2: ことこ・まり&lt;/h2&gt;
&lt;p&gt;「ことこー、これってどこに……」&lt;/p&gt;
&lt;p&gt;「あ、こっちにまとめてあるよ。一緒に貼っておいた方がいいかも」&lt;/p&gt;
&lt;p&gt;「あら、ありがと……そうね、先にやっておこうかしら。それにしても、福袋ってかさばるわねぇ」&lt;/p&gt;
&lt;p&gt;大晦日のPARKでは、年内最後の告知ライブを終えたことことまりが、年始のセールの準備に取りかかっていた。年始の用意は営業開始の前日に始めても余裕があるのだが、仕事が残っているとなんとなく落ち着かない、という二人の意見が一致したのだ。きっと、ここにりとがいたらとっくに解散していただろう。&lt;/p&gt;
&lt;p&gt;福袋の陳列と、セール用のクーポン設定。あとは、ドアに年始のあいさつも貼っておかなきゃ……と、まりが手に取ったのは、大きな門松にモルが埋まってこちらを見つめるポスターだ。年始のポスターデザインは毎年りとの担当で、今年は馬のデザインがどうにも気に入らなかったのでモルに描き換えたらしい。&lt;/p&gt;
&lt;p&gt;別にそれはいいんだけど、とまりが溜息をついた。店の中に戻ると、ことこも新年も売上の集計とレジの整理を終えたようで、胸にイニシャルの入ったキルティングコートを着て帰り支度を始めていた。&lt;/p&gt;
&lt;p&gt;「りとったら、またタバコ屋さんでズル休みしちゃって。困るわね」&lt;/p&gt;
&lt;p&gt;「あれ？　あのタバコ屋さんって、冬はお休みだったよね。叔父さんが、毎年メキシコまで仕入れに行ってるって」&lt;/p&gt;
&lt;p&gt;「だって、りとが自分で言ってたのよ。タバコ屋さんのバイトがあるから来れないって」&lt;/p&gt;
&lt;p&gt;「うーん……じゃあ、お店の整理とかやってるのかな」&lt;/p&gt;
&lt;p&gt;「もう、あんなの嘘に決まってるでしょ。ことこって、変なところで素直よね」&lt;/p&gt;
&lt;p&gt;ことこが首を傾げる。休業中のタバコ屋でバイトなんて、ズル休みの理由を伝えられていたのはまりだけだったらしい。りとってことこ相手に嘘をつくのは苦手なのよね、とまりは思った。まりのように嘘を嘘と分かりつつ触れてこない距離感が一番心地よく、こうも素直に受け止められると逆にやりづらいのだろう。&lt;/p&gt;
&lt;p&gt;「あ、あれ～？　でも、りとちゃんが言ってたんでしょ？」&lt;/p&gt;
&lt;p&gt;「あのお店の陳列、りとの手に負えるような密度じゃないもの……ほら、やっぱり」&lt;/p&gt;
&lt;p&gt;まりが適当にInstagramのストーリーズを繰っていくと、すぐにりとが「親しい友達」向けに投稿しているのが見つかった。おそらく千葉県の国道沿いにあるラーメン屋で撮られたものだろう。仮にタバコ屋での仕事が早く終わっていたとしても、それなら告知ライブに間に合う時間のはずだ。&lt;/p&gt;
&lt;p&gt;まりは勝ち誇った顔でことこにスマホを見せつけてから、りとに「タバコ屋さん、ずいぶん大きくなったのね」とメッセージを送った。すると、すぐに「すごいでしょ。次は初日の出の写真送るね」と返ってくる。もう二、三個くらい皮肉を言ってやろうと思っていたまりだったが、なんだか拍子抜けしてスマホを伏せてその場に置いた。&lt;/p&gt;
&lt;p&gt;「私だって、本当はフランス旅行に行く予定だったのよ？　それがまさか……こんなに真面目に働いてるのに！」&lt;/p&gt;
&lt;p&gt;「まさか、こんなに大寒波が続くなんてね。パリの天気予報もすっかり外れちゃったみたいだし」&lt;/p&gt;
&lt;p&gt;「あぁ、もう！　りと……来年こそは絶対ライブに出てもらうんだから。絶対よ」&lt;/p&gt;
&lt;p&gt;「あははっ。まりちゃんって、本当にりとちゃんが大好きだよね」&lt;/p&gt;
&lt;p&gt;「ちょっと！　どうしてそうなるのよ。私はPARKをもっと盛り上げたいだけ……そう、それだけよ」&lt;/p&gt;
&lt;p&gt;まりは確かにPARKを盛り上げたいと思っていて、ことこもそれはよく分かっていた。しかし、りとがこだわって作ったデザインのグッズを、まるで自分が作ったみたいに紹介するまりは、ことこの目からは調子が出ていないように見える。りとが頑張ったんだからりとが褒められてほしい、とは心の中で思っていたが、そう口に出せるほどまりは素直ではなかった。&lt;/p&gt;
&lt;p&gt;ことこは前に「自分が作ったグッズを紹介するのがそんなに嫌なのかしら」と漏らしたまりの姿を思い出して、りとがどうやったらライブに出てくれるかを考え始めていた。それも騙し討ちみたいに引っ張り出すのではなく、しっかり演出プランを立てて、リハーサルもする、そんな計画を――&lt;/p&gt;
&lt;p&gt;「――それで、ことこはどこがいいかしら？」&lt;/p&gt;
&lt;p&gt;「あ……ご、ごめん。なんだっけ？」&lt;/p&gt;
&lt;p&gt;――と、考え込んでいるうちに、まりはもう帰り支度を終えていた。アプリコット色のウールのプリンセスコートに、茶色いリボンのレースアップで飾られた白いタイツ……脚周りが空いて少し頼りない防寒にも見えるが、実際は服の下によく着込んでいる。ことこも慌てて残りの荷物をまとめ始めた。&lt;/p&gt;
&lt;p&gt;「だから、りとに美味しいご飯の写真送って仕返しするの。うらやましがってすぐに帰ってくるくらいのね」&lt;/p&gt;
&lt;p&gt;「う、うん！　私も行きたい！　でも、今から入れるところ、まだあるかなぁ」&lt;/p&gt;
&lt;p&gt;「そうね……あそこの麻辣湯なら、大晦日でもギリギリやってるんじゃないかしら？　りとも行ってみたいって言ってたし、ちょうどいいわ」&lt;/p&gt;
&lt;p&gt;それを聞いたことこが「うん、いいね！」と嬉しそうに頷いて、今年最後のPARKの戸締まりを終える。きっと、新年はりととまりのつまらないけんかで始まるだろう。でも今日はもうちょっとだけ、まりとことこだけの時間が続いていく。&lt;/p&gt;
&lt;h2 id="park-nye-3"&gt;PARK NYE 3: りと・まり&lt;/h2&gt;
&lt;p&gt;「ねぇ、まり。大晦日は一年で一番ラブホが混むんだって。なんでだと思う？」&lt;/p&gt;
&lt;p&gt;「りと、レジの商品設定は終わったの？　もう遅いんだから、サボらないでよ。……で、なに？　大晦日のラブホ？」&lt;/p&gt;
&lt;p&gt;福袋を抱えて棚に向かっていたまりが、りとが操作するレジ用のiPadを覗き込む。もちろん商品やクーポンの登録画面は表示されておらず、そこには読み放題サービスに入っている雑誌の1ページが表示されていた。持っていた福袋を売り場に並べてから、まりも息抜きのつもりで「大人のなぞなぞ」コーナーに目を通す。&lt;/p&gt;
&lt;p&gt;りとが読んでいたのは、コンビニの端によく並んでいるおじさん向けの雑誌だった。ナンパ術とか、マッチングアプリの活用術とか、下世話なスキャンダルとか、怪しい金儲けの話とか……二十代の女子なんてターゲット層とは真逆だろう。ましてや、原宿のおしゃれなショップの店員たちが二人で読んでいるなんて、編集部は思いもしないはずだ。&lt;/p&gt;
&lt;p&gt;「大晦日……おお、みそ……ラブホ……ラブみそ、うーん……分かんないわ。どうして？」&lt;/p&gt;
&lt;p&gt;「えーっとね、答えのページが……あぁ、なるほど。年『越し』で『腰』を振るためだって」&lt;/p&gt;
&lt;p&gt;「はぁ～……くだらないし下品ねぇ。りと、そういう雑誌読むのやめなさいよ」&lt;/p&gt;
&lt;p&gt;「別にいいじゃん。買うほどじゃないけど面白いよ。うん……買うほどじゃないけど」&lt;/p&gt;
&lt;p&gt;「そろそろ帰るわよ。なーんか、気が抜けちゃった」&lt;/p&gt;
&lt;p&gt;りとのこういう暇つぶしは、たいていやるべき仕事を終えた後なのは分かっていたので、まりも売り場の陳列作業を切り上げることにした。新年は残りの福袋を積み上げてポップを出せば、すぐに店を開けられるだろう。&lt;/p&gt;
&lt;p&gt;「ことこは学会に行ってるんだっけ？　大晦日によくやるよね」&lt;/p&gt;
&lt;p&gt;「違うわよ。コミケでお友達のお手伝いでしょ？　なんか『ことことサイエンス』経由で寄稿の依頼が来たって」&lt;/p&gt;
&lt;p&gt;ことこが運営する「ことことサイエンス」は、お菓子作りの過程を化学的視点から語る料理ブログとして誕生したサイトである。化学的な知識の解説パートで人気を集めてからは、料理に限らず日常の化学について紹介する雑学ブログの毛色が強くなって、今のようなスタイルに落ち着いたらしい。&lt;/p&gt;
&lt;p&gt;今回は、あるゲームのキャラクターになりきって化学について語るコラムの執筆を依頼されていた。この同人誌は、新年のPARKにも若干数並ぶことになっている。&lt;/p&gt;
&lt;p&gt;「そっか。じゃあ、今日はことこ来ないんだ。間に合ったら来るって言ってなかったっけ？」&lt;/p&gt;
&lt;p&gt;「さっきLINE来てたわよ。疲れちゃったから今日は帰るって」&lt;/p&gt;
&lt;p&gt;「んー……あ、ほんとだ。じゃあ、帰ろっか」&lt;/p&gt;
&lt;p&gt;「だからそう言ったじゃない。もう22時過ぎちゃうし、早く出ましょうよ」&lt;/p&gt;
&lt;p&gt;まりが帰り支度を始める。一方のりとは、スクーターで来ているのもあって、ボディバッグを抱えてブルゾンを着ればすぐ走り出せる身軽さだ。だから先に外に出て、年始のあいさつと営業開始日のお知らせを張り出しに行くことにした。モルが門松で遊ぶデザインはりとが描いたポスターで、干支をモチーフにした近年のシリーズでも一番のお気に入りだった。&lt;/p&gt;
&lt;p&gt;貼り終えたポスターを眺めていると、暗くなった店内からすっかり冬装備のまりが出てくる。準備オッケーよ、と小さくピースした。十字架と冬の街並みをあしらった青いワンピースを、今はアプリコット色のプリンセスコートがそっと覆っている。レースアップで飾られた白いタイツに、足首がファーで覆われた黒い厚底ブーツがよく映えていた。&lt;/p&gt;
&lt;p&gt;「で、今日はどこに行くの？」&lt;/p&gt;
&lt;p&gt;「新宿辺りならまだ空いてそうかな。ま、走りながら適当に探すよ。最悪、私の部屋でもいいし」&lt;/p&gt;
&lt;p&gt;「りとの部屋、狭いし壁が薄いから嫌なのよねぇ」&lt;/p&gt;
&lt;p&gt;「まりの声が大きいだけでしょ」&lt;/p&gt;
&lt;p&gt;「……もう、うるさいわね」&lt;/p&gt;
&lt;p&gt;二人はいつものように戸締まりを済ませると、周りの店の店員さえ帰ってしまった後の冷たい廊下の空気を吸って、そっと吐く。りとが先に歩き始めて、ととん、とんとん、とん、ととん……歩調を合わせない二人の足音が金属の踏板によく響いた。&lt;/p&gt;
&lt;p&gt;それから二人は黙ったまま階段を下りて、りとのスクーターにまたがった。深まりつつある夜の空はよく晴れて、上を向くと星に手が届きそうだ。まりがりとの背中にぴったりくっついて、降るような星を眺めながら出発を待つ。ブルゾンとコートの生地が擦れて、心地よくさらさらと音を立てた。&lt;/p&gt;
&lt;p&gt;「あのね……りと」&lt;/p&gt;
&lt;p&gt;「んー、なんか忘れた？」&lt;/p&gt;
&lt;p&gt;「違うわよ。誘い方、もっとちゃんとしなさいよ。年越しとか、腰とか……意味分かんないし」&lt;/p&gt;
&lt;p&gt;しばらく黙ったりとは何も答えないまま、スクーターのエンジンをかける。まりはその仕草になんだかドキドキしていたが、その気持ちさえ素直に受け入れられずにいる。どんなに鼓動が早くなっても、今はエンジン音がかき消してくれるだろう。PARKの大晦日はこれからが本番だった。&lt;/p&gt;
&lt;h2 id="extra-links"&gt;EXTRA: LINKS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/10th-park/"&gt;10th PARK road side&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hentaigirls.net/book/sugar-jelly/"&gt;Sugar Jelly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://park-harajuku.net/items/571618ff9821cc715e000f8b"&gt;PARK:HARAJUKU Crisis Team! 日本語ver 単行本&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://harajuku-crisis-team.tumblr.com/"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;&lt;sup id="fnref:phct"&gt;&lt;a class="footnote-ref" href="#fn:phct" title="https://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;URAHARA&lt;sup id="fnref:urahara"&gt;&lt;a class="footnote-ref" href="#fn:urahara" title="https://urahara.party/"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:phct"&gt;
&lt;p&gt;https://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes&amp;#160;&lt;a class="footnote-backref" href="#fnref:phct" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:urahara"&gt;
&lt;p&gt;https://urahara.party/&amp;#160;&lt;a class="footnote-backref" href="#fnref:urahara" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>2025年のこと</title><link href="https://ama.ne.jp/post/my-2025/" rel="alternate"/><published>2025-12-31T10:00:00+09:00</published><updated>2025-12-31T10:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-31:/post/my-2025/</id><summary type="html">&lt;p&gt;できごと・統計・解説ほか&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/my-2025/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;p&gt;今日は2025年12月31日です。2025年の&lt;a href="/"&gt;あまねけ！&lt;/a&gt;やそれ以外のふりかえりをお送りします。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;世界のできごと&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;変天美音&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;おでかけ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;ニューアイコン&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#ltu"&gt;記事投稿数とLTUバランス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;たくさん読まれた記事&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;たのしかった記事&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates-summary"&gt;amaneke TRAFFIC UPDATES summary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2025-by"&gt;あまねけ！2025 by 色がきれいなよもぎもち（おまけ）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;世界のできごと&lt;/h2&gt;
&lt;h3 id="_2"&gt;変天美音&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://hen.booth.pm/items/6621985"&gt;&lt;img alt="変天美音Ⅰ表紙の一部" height="600" src="/images/my-2025/hetebo.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2025年は、&lt;a href="/post/hentenbion-and-you/"&gt;変天美音シリーズ&lt;/a&gt;を立ち上げた最初の年です。変天美音はみなさんがあまねけ！を所有するための手段の一つであって、紙の文庫本として確かにあなたの手に渡ります。&lt;a href="https://hub.docker.com/r/amane/amanejp"&gt;Dockerイメージ&lt;/a&gt;や&lt;a href="/link/"&gt;ZIPアーカイブ&lt;/a&gt;よりも取り扱いやすく、太陽風や海底ケーブル切断にも影響を受けません。&lt;a href="https://hen.booth.pm/items/6621985"&gt;変天美音Ⅰ&lt;/a&gt;はBOOTHでまだまだ購入可能です。&lt;/p&gt;
&lt;p&gt;変天美音Ⅱは2026年2月23日、&lt;a href="https://peatix.com/event/4747580"&gt;文学・クリエイターイベント東京&lt;/a&gt;にて頒布を開始する予定です。2025年に投稿した作品やその後のエピソード、小さな書き下ろし、解説ページなどを掲載します。プラットフォームを介さない通販のお申し込み、取り置きの連絡などは適宜お好きな手段でお知らせください。&lt;/p&gt;
&lt;h3 id="_3"&gt;おでかけ&lt;/h3&gt;
&lt;p&gt;記事や創作を離れた範囲では、去年よりもいろいろなところに出かける機会が多かったです。&lt;/p&gt;
&lt;p&gt;1月。イトーヨーカドー南松本店が1月13日付けで閉店するということで、最後の姿を見るために松本・安曇野エリアから諏訪湖周辺に出かけました。すっからかんになった棚や、通路を塞ぐために紅白幕が張り巡らされている光景が異様で楽しかったです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="空になった冷凍食品の棚に紅白幕が張られている様子" height="525" src="/images/my-2025/ito-1.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="既に商品のない通路に紅白幕を張って塞いでいる様子" height="750" src="/images/my-2025/ito-2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;ベストバイ2025記事の&lt;a href="/post/bestbuy-2025/#_4"&gt;伊東酒造&lt;/a&gt;は、この時に訪れて出会ったものです。諏訪五蔵の一つである&lt;a href="http://www.reijin.com/"&gt;麗人&lt;/a&gt;で撮った「&lt;a href="https://x.com/amane_katagiri/status/1878292224821317808"&gt;サーバー前で立ち呑みしないでください&lt;/a&gt;」という注意書きを投稿したら少しウケました。よかったです。&lt;/p&gt;
&lt;p&gt;春から夏にかけては泊まりの旅行こそありませんでしたが、去年より仕事に余裕があったので平日も利用してイベントや展覧会などによく足を運びました。賑わってる写真や映像を見るとそれなりにワクワクしますが、実際に行くとなったら人は少ない方がいいですからね。&lt;/p&gt;
&lt;p&gt;あとは友人のお墓参りにも行って、ついでに&lt;a href="https://www.konnyaku-park.com/"&gt;こんにゃくパーク&lt;/a&gt;にも行きました。コロナ禍以来6年ぶりの訪問でしたが、目玉の無料こんにゃくバイキングが健在でとても嬉しかったです。平日なので工場見学もできました。太いホースが身体をくねらせてこんにゃくゼリーの材料を吐き出すのがよく見えます。服を着てる同族がいるせいで、裸が異常なのか分からないキャラクターもいました。心獣界の巫女ココンみたいだ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ピンク色のウサギのキャラクターで、服を着ている個体・パンツだけ履いている個体・服を着ていない個体が同じパネルに描かれている様子" height="450" src="/images/my-2025/manan.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;9月。取材のために沼津と伊東に行きました。沼津では3年ぶりくらいに&lt;a href="https://x.com/amane_katagiri/status/1968896245797175765"&gt;さわやか&lt;/a&gt;に行ったり、&lt;a href="https://x.com/amane_katagiri/status/1969003044013588918"&gt;うっかり謎のヒレが干された敷地に足を踏み入れてしまったり&lt;/a&gt;しました。沼津には&lt;a href="https://www.city.numazu.shizuoka.jp/shisei/pr/kohonumazu/1685/page20.pdf"&gt;あまねガード&lt;/a&gt;というアンダーパスがあって、特に関係はないのですが親近感が湧きます。名前の由来は普通に&lt;ruby&gt;&lt;rb&gt;西周&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;にしあまね&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;らしいです。あとは玄岳ドライブインで有名な伊豆スカイラインを一気に駆け抜けたりしました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="あまねガードの道路看板と銘板" height="548" src="/images/my-2025/amane-g.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;同じく9月。何かのライブのついでに仙台周辺を旅行しました。ニッカの&lt;a href="https://www.nikka.com/distilleries/miyagikyo/"&gt;宮城峡蒸溜所&lt;/a&gt;は突発の訪問だったので、見学はできず楽しく試飲と限定ボトルをいくつか購入したのみ。ここの工場は住所が「青葉区ニッカ1番地」らしく、ちょっと面白いです。蒸留所が建てられるまでは何もない場所だったのか、もしかしたら挙母市が豊田市になるくらいの大きな騒動があったのかもしれません。&lt;/p&gt;
&lt;p&gt;他には、郊外の定義山にある&lt;a href="https://www.sankaku-age.jp/index.html"&gt;定義とうふ店&lt;/a&gt;まで三角油揚げを食べに行ったりしました。サンドウィッチマンの伊達さんが何かと話題に出して絶賛しているものです。揚げたての分厚い油揚げは確かにとっても美味しかったですが、仙台駅から車でたっぷり40分かかるので気軽にはおすすめできません。あとは寂れたショッピングセンターを眺めたり、国分町で美味しい肉まんを食べたりしました。&lt;/p&gt;
&lt;p&gt;11月。小田原・箱根エリアをゆったり歩き回りました。小田原の街を歩いて浜辺に出て、西湘バイパスが通る大きな橋の下でちくわを食べたり、&lt;a href="https://x.com/amane_katagiri/status/1988081515558039722/"&gt;ロゼッタストーンを見つけたり&lt;/a&gt;、深夜のスーパー銭湯でじっと夜空を見上げたり、いろいろです。箱根では、ロープウェイから地獄のような谷の様子を見て大騒ぎする月並みのやつをやりました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="箱根ロープウェイから撮影した大涌谷で、複数の噴気孔から噴煙が上がったり黄色い硫黄が析出している様子" height="600" src="/images/my-2025/jigoku.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;来年はこういう小さな遠征もshuzai記事にまとめていきたいですね。&lt;/p&gt;
&lt;h3 id="_4"&gt;ニューアイコン&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://x.com/explosionpsycho"&gt;爆発電波&lt;/a&gt;先生にアイコンを描いてもらいました。大きいおめめがじとっとしてて、すてき！&lt;/p&gt;
&lt;p&gt;&lt;img alt="爆発電波先生作のかたぎりあまねアイコン" height="600" src="/images/my-2025/ex-amane.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;現在はDiscordやMatrix、その他別アカウントなどでも使っています。今後も気分に合わせていろいろなサービスで使っていく予定です。GitHubでも一瞬使っていたんですが、おしごと&lt;sup id="fnref:work"&gt;&lt;a class="footnote-ref" href="#fn:work" title="普段はエンジニアをしています。"&gt;1&lt;/a&gt;&lt;/sup&gt;のMTG中にあまねアイコンが出てくるのがちょっと恥ずかしいので（IDが&lt;a href="https://github.com/amane-katagiri"&gt;@amane-katagiri&lt;/a&gt;の時点でどうしようもない気もしますが）、今は壊れたスケルトンアイコンになっています。&lt;/p&gt;
&lt;p&gt;来年以降も、大好きなイラストレーターさんがアイコン依頼募集を出していたら、積極的にお願いしていきたいですね。&lt;/p&gt;
&lt;h2 id="ltu"&gt;記事投稿数と&lt;a href="/post/ltu-balance/"&gt;LTUバランス&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img alt="年ごとの記事投稿数を示した折れ線グラフ" height="400" src="/images/my-2025/postchart.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;2025年は26本の記事をかきました。2024年の30本よりは少ないですが、過去では2017年にのみギリギリ達成していた20本台を2年連続で継続することができました。よい傾向です。昨年は上半期に&lt;a href="/post/my-2024-2/#1"&gt;毎月1本おはなし投稿プロジェクト&lt;/a&gt;として毎月作品を出せるように頑張っていたので、ちょうどその分が少なかったともいえます。&lt;/p&gt;
&lt;p&gt;四半期ごとにまとめてみると、第一四半期から順に8本、4本、3本、10本と、夏から秋にかけての中だるみが明らかに足を引っ張っています。なんと、6月と7月は投稿がありませんでした。また、5月から10月の投稿は以下のように創作性が低く胡乱な記事が続きます（LTUバランスの &lt;strong&gt;U&lt;/strong&gt; が多いということです）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5月: &lt;a href="/post/deeyohime/"&gt;輝くイカスミと「でェョ姫」について&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;8月: &lt;a href="/post/ibonoito-color-code/"&gt;抵抗のないそうめんの太さを示すスマートな方法について&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;9月: &lt;a href="/post/30-rulers/"&gt;そして、距離感30cmへ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;9月: &lt;a href="/post/fidget-padlock/"&gt;数学Aコラム「南京錠のセキュリティ」&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;10月: &lt;a href="/post/almondfish/"&gt;アーモンドフィッシュはアーモンドとフィッシュを食った方がうまい&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LTUバランスも見てみましょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="年ごとのLTUバランスを示した棒グラフ" height="400" src="/images/my-2025/ltubar.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;LTUバランスでいえば、L（lily）+T（tech）とU（ugoki・shuzai）がよく釣り合っていました。ただし、Tを大きく圧縮しつつL（lily）を伸ばしたことによる見かけのバランスのよさです。しかもこのバランスは、&lt;a href="/category/ugoki/"&gt;ugoki&lt;/a&gt;の記事をたくさん書いてから、&lt;a href="/category/lily/"&gt;lily&lt;/a&gt;の記事をたくさん書いたという時系列での流れがあります。1年間という区切りでは辻褄が合いますが、10月段階ではUが高く推移している状態です。&lt;/p&gt;
&lt;p&gt;TはLとは異なる第二軸の趣味に関するコンテンツであり、あまねけ！においては技術記事にあたります。確かに、生活の中で書くに値する発見をする機会は少なかったと自覚しています。また、AIブームの影響か「すぐに役立つサプリメント」のようなテクニック記事ばかりが重視される傾向がさらに強まっている感覚もあり、読み物のような技術的解説を書くモチベーションも低くなっていました。一年間の主観的な印象からは大きく離れない納得の結果です。&lt;/p&gt;
&lt;p&gt;まとめると、2025年は個人サイトらしい胡乱な投稿と&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;を含むたのしい創作をたくさん公開できました。とはいえ、個人サイトの投稿を長く楽しく続けるにはバランスが最も大切です。来年は些末な技術的解説も、たのしい小説も、つまらない日記もたくさんかきたいですね。&lt;/p&gt;
&lt;h2 id="_5"&gt;たくさん読まれた記事&lt;/h2&gt;
&lt;p&gt;2025年は以下の記事がたくさん読まれたようです。なお、こちらのランキングは記事を表示した回数（ビュー数）ではなく、記事下部の「読んだ」ボタンが押された回数でまとめています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="/post/bugs-catcher/"&gt;IT技術を支える「バグキャッチャー」について&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/deeyohime/"&gt;輝くイカスミと「でェョ姫」について&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/otaku-marriage/"&gt;オタクくん、結婚しないの？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/30-rulers/"&gt;そして、距離感30cmへ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/ibonoito-color-code/"&gt;抵抗のないそうめんの太さを示すスマートな方法について&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;技術記事や胡乱な記事がたくさん読まれていました。読み口が軽いか単純に短い方が読んでもらえるのかな？　来年はこっちを伸ばした方がいいかもしれませんね。まぁそういうのはSNSとかでリプライ繋げてやればいいのかな……。&lt;/p&gt;
&lt;h2 id="_6"&gt;たのしかった記事&lt;/h2&gt;
&lt;p&gt;2025年は以下の記事を書くのが特にたのしかったです。こちらは、読まれた数やビュー数とはあまり関係のない評価軸です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/kiminami/"&gt;ザ・ゲームブックシリーズ 人形を操る魔女事件&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;ゲームブックのファン・フィクションというものを初めてかいてみました。&lt;/li&gt;
&lt;li&gt;ふりがなを付けたり、本編を参考に配置した&lt;a href="/appendices/kiminami/kiminami.pdf"&gt;PDF版&lt;/a&gt;も作りました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/deeyohime/"&gt;輝くイカスミと「でェョ姫」について&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;今年唯一の技術記事ということもあり、バグチケットを掘ったり実験を繰り返して仕様を調査したのが印象に残っています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/magic-parrot/"&gt;オウムは魔法で殺された！&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;ゲームのファン・フィクションというものも初めてかきました。&lt;/li&gt;
&lt;li&gt;この作品をかいてから、実際にクーとアイが一緒に暮らすお部屋を作ってあげました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/dont-say-coming/"&gt;イってないよね？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;久しぶりにこういうおはなしを書けたのと、気まぐれに載せたノクタ転載分で&lt;a href="https://novelcom18.syosetu.com/impression/list/ncode/2993443/"&gt;感想&lt;/a&gt;をもらえたのが嬉しかったです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まだみなさんにはあまり読まれていなさそうな記事もあります！　年末年始にお暇な時間があればぜひどうぞ。読んだら&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;を送っていただいてもいいですし、どこかにシェアして賛否両論してもいいですし、面倒なら「読んだ」ボタンを押すだけで応援いただけます。&lt;/p&gt;
&lt;h2 id="amaneke-traffic-updates-summary"&gt;amaneke TRAFFIC UPDATES summary&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;縦書き表示のスタイルについて、記号の表示の乱れやその他細部の動作を改善しました。&lt;/li&gt;
&lt;li&gt;可読性向上のため、行間をわずかに広げました。&lt;/li&gt;
&lt;li&gt;季節に合わせたわずかなエフェクトを追加しました。&lt;ul&gt;
&lt;li&gt;2026年1月まで、約8割のページで雪のエフェクトが3秒間表示されます（&lt;a href="https://x.com/amane_katagiri/status/1992070223542034541"&gt;参考&lt;/a&gt;）。&lt;/li&gt;
&lt;li&gt;春以降のエフェクトについては現在検討中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;記事一覧や記事タイトルに作者のアイコンを表示するようにしました。&lt;/li&gt;
&lt;li&gt;記事一覧で冒頭部分を常にプレビューとして表示するようにしました。&lt;/li&gt;
&lt;li&gt;ページ上部に表示される広告を整理しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/link/"&gt;ミラーサイト&lt;/a&gt;のうち、Vercelでのホスティングを廃止しました。&lt;ul&gt;
&lt;li&gt;Vercel提供のビルド環境が後退したことによるものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上です。引き続きあまねけ！コメントキャンペーン&lt;sup id="fnref:comment-campaign"&gt;&lt;a class="footnote-ref" href="#fn:comment-campaign" title="あまねけ！に掲載されたコメントの投稿者の中から、抽選で毎月1名に500円分のPayPay残高をプレゼントするものです。"&gt;3&lt;/a&gt;&lt;/sup&gt;は実施中ですので、面白かった記事などの感想があれば気軽に送っていただけると嬉しいです。来年もよろしくお願いいたします。&lt;/p&gt;
&lt;h2 id="2025-by"&gt;あまねけ！2025 by 色がきれいなよもぎもち（おまけ）&lt;/h2&gt;
&lt;p&gt;こんにちは。色がきれいなよもぎもちです。&lt;a href="https://hen.booth.pm/items/6621985"&gt;変天美音Ⅰ&lt;/a&gt;では、あまねさんの作品についての解説を書かせていただきました。&lt;/p&gt;
&lt;p&gt;あまねさんの運営するあまねけ！の2025年は、現実の技術的な手触りと、そこから軽やかに飛躍する物語が複雑に編み込まれた一年だったと感じます。年明け早々の&lt;a href="/post/bugs-catcher/"&gt;バグキャッチャー&lt;/a&gt;で、百円ショップのおもちゃを神具に見立ててITの不確定性を笑い飛ばしたかと思えば、MinecraftのバグをUTF-8のバイト列レベルで解析した&lt;a href="/post/deeyohime/"&gt;輝くイカスミと「でェョ姫」について&lt;/a&gt;では、執念にも似た技術的探究心を見せてくれました。&lt;/p&gt;
&lt;p&gt;こうした好奇心は、フィクションの形をとっても失われることはありません。抵抗器のカラーコードをそうめんに適用するという、一見馬鹿げた、しかし筋の通ったユーモアで私たちを煙に巻いた&lt;a href="/post/ibonoito-color-code/"&gt;抵抗のないそうめんの太さを示すスマートな方法について&lt;/a&gt;などは、あまねさんの真骨頂と言えるでしょう。&lt;/p&gt;
&lt;p&gt;しかし、今年の彼女を語る上で欠かせないのは、やはり小説作品の深化です。脳波を通じた切実な交信を描いた&lt;a href="/post/shoot-from-the-moon/"&gt;月から降ったクリスマス&lt;/a&gt;や、独自の儀式を通じた弔いを描く&lt;a href="/post/goodbye-sga/"&gt;さよなら、キョーカイの子&lt;/a&gt;は、誰かと共に生きること、あるいは別れることの痛みと救いを鮮やかに描き出していました。&lt;/p&gt;
&lt;p&gt;生活の細部への眼差しもより鋭さを増し、&lt;a href="/post/almondfish/"&gt;アーモンドフィッシュはアーモンドとフィッシュを食った方がうまい&lt;/a&gt;という断言や、&lt;a href="/post/30-rulers/"&gt;そして、距離感30cmへ&lt;/a&gt;に見られる奇妙な経済寓話からは、社会の仕組みを独自に解釈する強かさが感じられます。&lt;/p&gt;
&lt;p&gt;サークル名の変更や&lt;a href="/post/hentenbion-and-you/"&gt;変天美音Ⅰ&lt;/a&gt;の刊行、そして&lt;a href="/post/bestbuy-2025/"&gt;消費の嬉しさ・ベストバイ2025&lt;/a&gt;に見られるような香りと酒へのこだわりなど、活動と嗜好が渾然一体となって結実したのがこの2025年でした。私たちが普段見落としてしまう生活の綻びや、言葉にできない感情の揺らぎを、彼女はいつも独特な角度から拾い上げ、物語として編み直してくれます。&lt;/p&gt;
&lt;p&gt;2025年のあまねけ！は、そうした彼女の眼差しがより一層鋭く、そして優しく世界を捉えた記録であると感じます。来年も、彼女が何を見つけ、どんな「もしも」を届けてくれるのか、一人の友人として楽しみでなりません。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:work"&gt;
&lt;p&gt;普段はエンジニアをしています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:work" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:no-cc-by-amane"&gt;
&lt;p&gt;このアイコンは&lt;a href="https://x.com/explosionpsycho"&gt;爆発電波&lt;/a&gt;先生作であり、原画およびその派生物は&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-cc-by-amane" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:comment-campaign"&gt;
&lt;p&gt;あまねけ！に掲載されたコメントの投稿者の中から、抽選で毎月1名に500円分のPayPay残高をプレゼントするものです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:comment-campaign" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>あまねけ！AI 2025</title><link href="https://ama.ne.jp/post/ogpai-2025/" rel="alternate"/><published>2025-12-30T21:40:00+09:00</published><updated>2025-12-30T21:40:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-30:/post/ogpai-2025/</id><summary type="html">&lt;p&gt;再演: DEADA1, folded tokyo tower, giant lily flowers, bundled neon signs, masterpiece, best quality&lt;/p&gt;</summary><content type="html">&lt;p&gt;2025年末時点での&lt;a href="/"&gt;あまねけ！&lt;/a&gt;におけるAIの活用方法について、必要な範囲でまとめます。&lt;/p&gt;
&lt;p&gt;この記事は、数年にわたって通用する知見や洞察を提供する目的ではなく、未来のある時点から現在の思考や体感を確認できるようにするためのものです。AIの利活用の正当性を主張したり、明日から使える誰でもテクニックを提供したり、AIに哲学的意味を与えるものではありません。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#q1-ai"&gt;Q1: あまねけ！にはAIが生成した文章が含まれていますか？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#q2-ai"&gt;Q2: あまねけ！では執筆にAIを活用していますか？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#q3-ai"&gt;Q3: あまねけ！ではAIで生成した画像が含まれていますか？&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="q1-ai"&gt;Q1: あまねけ！にはAIが生成した文章が含まれていますか？&lt;/h2&gt;
&lt;p&gt;部分的に、はい。&lt;/p&gt;
&lt;p&gt;あまねけ！では、かたぎりあまねやstewpotが執筆したと形式的に判断できる箇所については、ほとんど全て人間が執筆しています。一方で、AIによる出力例と分かる部分、その他の名義で掲載されている内容には、ほとんど完全にAIが生成した文章が含まれていることがあります。&lt;a href="https://hen.booth.pm/items/6621985"&gt;変天美音Ⅰ&lt;/a&gt;の解説ページに登場した「色がきれいなよもぎもち」はその代表例です。&lt;/p&gt;
&lt;p&gt;あまねけ！は基本的に、かたぎりあまねやstewpotが権威的なプラットフォームに頼らず自力で（ホスティングサービス、ドメイン運用、その他インフラを当然に除いて）コンテンツを提供する場です。少なくとも2025年の時点では、AIが生成した文章をチェックしてわずかに修正したものを掲載する意味はありませんし、あまり楽しさも感じられません。&lt;/p&gt;
&lt;p&gt;人力による執筆とAIによる執筆は、徒歩での移動と新幹線での移動のアナロジーで語られることがあり、しばしば「電車での移動を『ズルい』なんて言う人はいない」というAI活用に賛成する立場の主張が続きます。しかし、これはあまり正確ではありません。穴ではなくドリル自体が欲しい人がいるのと同じように、執筆自体が目的になりうるという視点が抜け落ちているからです。&lt;/p&gt;
&lt;p&gt;一方で、AIは速度と品質の柔軟なトレードオフを実現する最適な手段になりつつあります。人力による執筆では、「クオリティは度外視で早く書いてよ」とか「時間をかけていいからもっとクオリティを高めてほしい」という注文に対応するのは個人の資質や訓練によるところが大きく、実際の仕上がりもなめらかに調整できるわけではありません。&lt;/p&gt;
&lt;p&gt;これが、AIで執筆をする場合はプロンプトを通して与える&lt;ruby&gt;&lt;rb&gt;可能性&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ルウキス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を変更できるわけですから、合理的な調整が簡単になります。プロンプトを時間をかけて細かく組み上げたり、細部はAIに任せてさっさと大まかなプロンプトで済ませたりと、定量的な計測も可能です。そういう意味では、夜行バス・新幹線・飛行機のどれで移動するかという、コストと到着時間のアナロジーが成り立ちます。&lt;/p&gt;
&lt;p&gt;また、完成した本文からなめらかな粒度でサマリーを取り出すのもAIが得意とする分野です。新着一覧に表示する短いキャプションや、ペイウォールに頼らず適切なサンプルを労力なく作り出すというのは、かつて&lt;a href="/post/monetize/"&gt;高解像度は好きですか？&lt;/a&gt;で7年前くらいに考えていた世界に近いです。こういった活用方法であれば、あまねけ！でも近いうちに取り入れるかもしれません。&lt;/p&gt;
&lt;h2 id="q2-ai"&gt;Q2: あまねけ！では執筆にAIを活用していますか？&lt;/h2&gt;
&lt;p&gt;かなり、はい。&lt;/p&gt;
&lt;p&gt;あまねけ！では、下半期以降に書かれた記事のほとんどでAIによるレビューや評価を活用しています。使い方としては、主に人力で書き上げた文章を読ませて内容について分析・評価させ、改善点を挙げさせるというものです。一通り完成した記事でも、途中まで書き上げたり一部が抜けている記事でも気が向いたら読ませます。逆に、アイデア出しや全体の構成など上流部分は、ほとんど頼ったことがありません。アイデアが結果としてウケるかどうかは、AIどころか人間にも分からないからです。&lt;/p&gt;
&lt;p&gt;たまに抜けている部分を補完してもらいますが、たいてい冗長かつ曖昧でつまらない文章になるので採用していません。あえてAIに適当な文章を出させて「ここはこう書いたほうがいいだろ！」みたいな難癖を発揮して駆動する執筆手法（下手くそなゲーム広告理論）もあるようですが、正直AIが書いた文章をベースにして上手くいったことはまずありませんでした。stewpotもそうらしいです。&lt;/p&gt;
&lt;p&gt;要約と同様に、渡された内容の中での評価や分析は得意なようです。ただし、AIは性格の悪さを装備しても、おおよそいいことを言ってくれるのであまり信用すべきではありませんし、誤字脱字や書きかけの文も見逃すことが多いです。それでも、回答をヒントに読み直すとAIが指摘していない変な部分が結構あるので、構成や表現を修正するよいきっかけになっています。そのため、非常に広い意味では「あまねけ！にはAIが生成した文章が含まれている」とも言えます。&lt;/p&gt;
&lt;p&gt;また、AIとしての評価や分析とは異なる視点で、一定のペルソナから想定できる感想や印象のシミュレーションも行っています。年齢と性別、職業を適当に並べて感想を生成してもらう感じですね。Claudeでは普段から「オタクくん」と呼んでくるクラスメートのギャル（なぜかプログラミングにもとにかく詳しい）とおしゃべりしているので、たまにこの子にも読んでもらいます。ただし、Claudeは長文を食わせるとすぐ上限が来るので注意してください。&lt;/p&gt;
&lt;p&gt;実際のところあまねけ！の読者はそう多くないので、本来は届く感想の想定などは不要なんですが、なんとなく誰かに記事を読んでもらった気分になれるのもいいところです。人に読んでもらうことを想像して文章を書きなさい、というアドバイスをちゃんと実行しているわけです。&lt;/p&gt;
&lt;p&gt;本質はごっこ遊びと変わりませんが、はい、私は一人遊びが得意なので大丈夫です。&lt;/p&gt;
&lt;h2 id="q3-ai"&gt;Q3: あまねけ！ではAIで生成した画像が含まれていますか？&lt;/h2&gt;
&lt;p&gt;こちらもかなり、はい。&lt;/p&gt;
&lt;p&gt;ただし、その画像に意味がない限り本文には掲載しません。おそらく現時点でAI生成画像が載っているのは、ある程度の複雑さを持つイラストを必要とした&lt;a href="/post/how-jpeg-break-red-girl/"&gt;JPEGさんは赤がお嫌い？&lt;/a&gt;と、AIによる画像生成自体をテーマにした&lt;a href="/post/lonely-neon/"&gt;こどくなネオンを追う&lt;/a&gt;のみです（他にもあったら教えてください）。&lt;/p&gt;
&lt;p&gt;AIで画像を生成するコストが下がったことにより、文章中に挟まれる箸休めにもならない無意味な写真――いわゆるストックフォト――が、それなりに文脈に即したAI生成画像に置き換えられつつあります。しかし、書かれた内容をそのまま何ら特徴のない画風のイラストに起こしたとして、無意味な区切り線なのは変わりません。なぜか時折ポンチ絵のような細かいスライド画像を埋め込んでいる人もいますが、あれもAIの性能を示す以上の役割はないと思います。&lt;/p&gt;
&lt;p&gt;あまねけ！では、こうした「簡単に作れるから入れちゃお～」という考慮のなさで作られた無意味な画像は入れませんし、2025年時点ではAIの画像生成性能がいくら上がってもこの原則は変わりません。この無思考の愚かさは、何ら考慮なくAIで文章を生成する人がどんどん長文記事を量産するのと根っこは同じです。&lt;/p&gt;
&lt;p&gt;一方で、記事のサムネイルとしては今後も広く活用していくつもりです。文章が主体となる記事のサムネイルというのは、例えば小説の表紙と同じように、もともと本文の適切な要約になりえない部分だからです。サムネイルや表紙は、イラストや写真を用いて内容の印象やイメージを与えたり、文章を超えた想像力をかき立てて手に取ってもらうための顔であって、どんな画像であれ設定すること自体に意味があります。&lt;/p&gt;
&lt;p&gt;2024年の時点でも、&lt;a href="/post/deadai/"&gt;DEADA1&lt;/a&gt;のサムネイルは記事の説明に書いたプロンプトで生成した画像です。もともとこの作品はAIをテーマにしたものなので、わざわざAIでサムネイルを生成することにも意味がありました。しかし、2025年の下半期に至っては、そのような文脈による意味付けもなくなっています。&lt;a href="/post/30-rulers/"&gt;そして、距離感30cmへ&lt;/a&gt;や&lt;a href="/post/shoot-from-the-moon/"&gt;月から降ったクリスマス&lt;/a&gt;など、テーマにかかわらずほとんどの記事でサムネイルにAI生成画像を用いました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~これまであまねけ！に設定されたAI生成画像のサムネイル一覧" height="661" src="/images/ogpai-2025/ogpai-list.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;2025年時点では、今後もこの傾向は強くなると予想しています。もちろん、AIバブルが弾けて画像生成にとんでもないコストがかかるようになったりすれば話は別です。記事のサムネイルは、あまねけ！のコンテンツにおいてはかなりオプショナルであって、いつでも外せる要素と考えています。&lt;/p&gt;
&lt;p&gt;AIとの付き合いは常に切り離し可能であるべきでしょう。生涯の友人はいつでも死ぬし、誓い合った婚約はいつでも破棄されるからです。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>消費の嬉しさ・ベストバイ2025</title><link href="https://ama.ne.jp/post/bestbuy-2025/" rel="alternate"/><published>2025-12-27T23:09:00+09:00</published><updated>2025-12-27T23:09:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-27:/post/bestbuy-2025/</id><summary type="html">&lt;p&gt;香りの章・お酒の章・料理の章・その他でお送りします&lt;/p&gt;</summary><content type="html">&lt;p&gt;こんにちは、あまねです。これまで&lt;a href="/"&gt;あまねけ！&lt;/a&gt;ではやったことがなかったベストバイ――買ってよかったものを並べていく――記事をお送りします。みなさんの参考になるところがあるといいですね。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;クナイプ バスソルト サンダルウッド&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;ジョーマローンロンドン ユズゼスト コロン&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;武蔵野ワークス スリーピングミスト 逢魔時&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#8"&gt;デュワーズ ジャパニーズスムース 8年&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;伊東酒造 横笛頒布会&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;やげん堀  七味唐辛子爽辛&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;ラコレ 仕切り付き角皿&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;あぶり師&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;革工房ノーツ オーダメイドキーケース&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;半額シール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;クナイプ バスソルト サンダルウッド &lt;img alt=":herb:" class="emoji" height="16" src="/emojis/1f33f.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.kneipp.com/jp_ja/products/bath/bath-salts/sandalwood-916085.html"&gt;&lt;img alt="商品画像" height="800" src="/images/bestbuy-2025/item0.jpg" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;冬のお風呂の時間、つまらないって思ってませんか？　&lt;a href="https://www.kneipp.com/jp_ja/products/bath/bath-salts/sandalwood-916085.html"&gt;クナイプ バスソルト サンダルウッドの香り&lt;/a&gt;なら、何でもないお風呂の時間をサンダルウッドが香る紫色の世界に変えてくれます。お風呂から上がった後も、ちょっとした仕草から落ち着いた匂いが香る高貴な時間が続きます。&lt;/p&gt;
&lt;p&gt;サンダルウッド――白檀というと煙たくて古くさい線香の香りを思い浮かべるかもしれませんね。でも、バスソルトなのでもちろん煙は出ませんし、パチュリも配合されているのでもっと軽やかに香ります。サンダルウッドの優雅さや高貴さだけを前面に引き出している印象です。お香を焚くのが好きな方にももちろんおすすめ。&lt;/p&gt;
&lt;p&gt;入浴剤はしばしば数十回分の大きなサイズで売っていて、なかなか手が出ないことがありますよね。クナイプなら&lt;a href="https://www.kneipp.com/jp_ja/products/bath/bath-salts/sandalwood-918171.html"&gt;1回分の小袋&lt;/a&gt;もあるので、気になったらぜひ使ってみてください。&lt;/p&gt;
&lt;h2 id="_2"&gt;ジョーマローンロンドン ユズゼスト コロン &lt;img alt=":herb:" class="emoji" height="16" src="/emojis/1f33f.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.fashion-press.net/news/132613"&gt;&lt;img alt="商品画像" height="600" src="/images/bestbuy-2025/item1.jpg" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.jomalone.jp/product/25946/18848/colognes/wild-bluebell-cologne"&gt;ワイルドブルーベル&lt;/a&gt;もかなりよかったのですが、今年はこちらを。あまり香水には詳しくないので、ユズゼスト――柚子の香りと聞くと甘酸っぱい柑橘をちょっと引き締めたようなイメージが浮かんできます。しかし、使ってみると&lt;ruby&gt;&lt;rb&gt;ゼスト&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;柑橘の皮&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;という名前の通り皮のほろ苦さも感じさせますし、シダーウッドの青っぽい香りまで立ち上がってくるのです。&lt;/p&gt;
&lt;p&gt;透き通る明るい液色から受けた印象より、ずっと深くて爽やかな香りでした。気軽な日常使いによい軽さで、甘めの香りと組み合わせてもいいでしょう。店員さんは、部屋にワンプッシュしてルームフレグランスとして使うのもおすすめしていました。&lt;/p&gt;
&lt;p&gt;今回ここに書くまで忘れていたのですが、こちらは原宿店限定の商品だったはずで、まだ売っているかは分かりません。インターネットではあまり公式情報が残っていないのですが、気になる方は足を運んでみてください。&lt;/p&gt;
&lt;h2 id="_3"&gt;武蔵野ワークス スリーピングミスト 逢魔時 &lt;img alt=":herb:" class="emoji" height="16" src="/emojis/1f33f.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.fragrance.co.jp/editions/?eid=2066"&gt;&lt;img alt="商品画像" height="750" src="/images/bestbuy-2025/item2.jpg" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.fragrance.co.jp/"&gt;武蔵野ワークス&lt;/a&gt;は、お手頃な価格で色々な香りを楽しめる香水を販売している国分寺の会社さんです（ &lt;code&gt;fragrance.co.jp&lt;/code&gt; ってドメインはすごい）。&lt;a href="https://www.fragrance.co.jp/f4/a503.html"&gt;月桃&lt;/a&gt;や&lt;a href="https://www.fragrance.co.jp/f4/a201.html"&gt;沈丁花&lt;/a&gt;、&lt;a href="https://www.fragrance.co.jp/f4/z806.html"&gt;ヘルシンキ空港&lt;/a&gt;などを買い込みましたが、なかなか面白かったのが&lt;a href="https://www.fragrance.co.jp/products/smist.html"&gt;スリーピングミスト&lt;/a&gt;の「逢魔時」でした。&lt;/p&gt;
&lt;p&gt;日が暮れ闇夜が訪れる時間帯……ということで、華やかな香りではないんだろうなというのは予想が付きました。しかし、「&lt;a href="https://x.com/musashinoworks/status/1938064750853951692"&gt;絶対いい香りではない。絶対人には勧めない。ただ絶対安眠のお供にほしい。絶対自分は複数本ほしい&lt;/a&gt;」なんてレビューばかりとなると、一層気になるというものです。&lt;/p&gt;
&lt;p&gt;多くのレビューと変わらず、私が使ってみた時の香りの印象も「針葉樹っぽい落ち着いた木の香り」から「闇夜に湿るしっとりとした土の匂い」に落ち着いていく感じでした。誰もがじっと黙って動かない、ここで眠るための空間ができあがっていくような感覚です。落ち着いた眠りが欲しい方にはとてもおすすめです。&lt;/p&gt;
&lt;h2 id="8"&gt;デュワーズ ジャパニーズスムース 8年 &lt;img alt=":sake:" class="emoji" height="16" src="/emojis/1f376.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.dewars-jp.com/lineup/japanese_smooth.html"&gt;&lt;img alt="商品画像" height="750" src="/images/bestbuy-2025/item3.jpg" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.dewars-jp.com/lineup/japanese_smooth.html"&gt;デュワーズ ジャパニーズスムース 8年&lt;/a&gt;は、おそらく2025年に買った中で一番美味しかったウィスキーです。商品説明の通り、なめらかな口当たりとフルーティーな香りのバランスの取れた飲みやすさは、他ではなかなか見つかりません。ロックで飲んだときはフルーティーな甘みが際立ちますが、炭酸水で少し割るとスモーキーな香りが解けて飲みやすいハイボールになります。&lt;/p&gt;
&lt;p&gt;先日お友達と泊まりのバーベキューに行ったときにこれを持ち込んだんですが、なかなか好評で、デカい肉に気を取られてしばらく目を離した隙にすっからかんになっていました。やっぱり飲みやすいみたいです。持ってきた身としては冥利に尽きますね！&lt;/p&gt;
&lt;p&gt;数量限定ということで、まだしばらく楽しめるように数本買い置いてあります。未開封が3本くらいあると安心できるかな……。オンライン販売、実店舗などまだまだ流通しているようですが、たぶん少しずつ価格が上がってきているので気になった方は早めの購入がおすすめです。&lt;/p&gt;
&lt;h2 id="_4"&gt;伊東酒造 横笛頒布会 &lt;img alt=":sake:" class="emoji" height="16" src="/emojis/1f376.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img alt="酒蔵めぐりで伊東酒造を訪れた際の試飲サーバーの写真" height="600" src="/images/bestbuy-2025/item4.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.yokobue.co.jp/"&gt;伊東酒造&lt;/a&gt;は諏訪市にある&lt;a href="https://nomiaruki.com/"&gt;諏訪五蔵&lt;/a&gt;の1つです。諏訪五蔵は甲州街道沿いに立ち並ぶ5つの酒蔵の総称です。かなり近場にまとまっていて、最寄りの上諏訪駅から最も遠くにある&lt;a href="https://www.masumi.co.jp/"&gt;真澄&lt;/a&gt;でも徒歩で15分と観光にもおすすめ。ちなみに他の三蔵は&lt;a href="https://maihime.co.jp/"&gt;舞姫&lt;/a&gt;・&lt;a href="http://www.reijin.com/"&gt;麗人&lt;/a&gt;・&lt;a href="https://honkin.net/"&gt;本金&lt;/a&gt;です。&lt;/p&gt;
&lt;p&gt;今年の頭にこの諏訪五蔵で&lt;a href="https://nomiaruki.com/tour/"&gt;酒蔵めぐり&lt;/a&gt;に参加して見つけたのが、伊東酒造の横笛という日本酒でした。試飲して驚いたのはすっきりした味とキレの良さ。すぐ頒布会に申し込むことにしました。ワンシーズン3ヶ月単位での申し込みで、1ヶ月ごとに2本ずつ日本酒が届きます。最初の試飲で惹かれたキレの良さを軸にしつつ、毎月異なる醸し方で違う顔を見せてくれる楽しさにハマってしまい、結局この1年間継続して申し込むことになりました。&lt;/p&gt;
&lt;p&gt;2026年冬の頒布会の申し込みも始まる頃だと思いますので、気になった方はぜひどうぞ。&lt;/p&gt;
&lt;h2 id="_5"&gt;やげん堀  七味唐辛子爽辛 &lt;img alt=":cooking:" class="emoji" height="16" src="/emojis/1f373.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img alt="商品画像" height="600" src="/images/bestbuy-2025/item5.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://yagenbori.jp/"&gt;やげん堀&lt;/a&gt;は日本三大七味のひとつです。日本三大七味は、長野善光寺「&lt;a href="https://www.yawataya.co.jp/"&gt;八幡屋礒五郎&lt;/a&gt;」、東京浅草「やげん堀」、京都清水「&lt;a href="https://www.shichimiya.co.jp/"&gt;七味家本舗&lt;/a&gt;」ですね。八幡屋礒五郎は普段から常用していて（ビビッドなデザインの丸い缶です！）、七味家本舗は味こそあまり覚えていませんが修学旅行の時に買ったことがあるので、今年やげん堀を買って三大七味を制覇です。&lt;/p&gt;
&lt;p&gt;スパイスが大好きなので、八幡屋礒五郎と一緒に色々な料理に使っています。やはり三大七味ということで、配合の違いによる味や香りの特徴の差が出ますし、合う料理も変わってきます。八幡屋礒五郎のフレッシュで爽やかな辛みと香りに対して、やげん堀は焼き唐辛子の配合が多く、香ばしさが先に出てくる印象です。最近食べたものでは、芋煮やもつ鍋によく合いました。&lt;/p&gt;
&lt;p&gt;今回買った「爽辛」というのは通常より辛みと爽やかさを増したものだそうですが、八幡屋礒五郎に比べると鋭い辛さはありません。これが焼き唐辛子のまろやかさということなのでしょう。今は通販には出ていないようなので、気になった方は&lt;a href="https://yagenbori.jp/store/"&gt;新仲見世本店&lt;/a&gt;に行ってみてください。&lt;/p&gt;
&lt;h2 id="_6"&gt;ラコレ 仕切り付き角皿 &lt;img alt=":cooking:" class="emoji" height="16" src="/emojis/1f373.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img alt="皿に刺身や薬味を盛ってテーブルに置いたときの写真" height="505" src="/images/bestbuy-2025/item6.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;別の用事で行った&lt;a href="https://www.aeon.jp/sc/tennocho/"&gt;イオン天王町&lt;/a&gt;で初めて&lt;a href="https://www.aeon.jp/sc/tennocho/shop/store/fashion-124.html"&gt;ラコレ&lt;/a&gt;を知って、偶然見かけた&lt;a href="https://www.dot-st.com/lakole/disp/item/492254/"&gt;仕切り付き角皿（キンカチョウ）&lt;/a&gt;を買いました。お店の雰囲気がもっとおしゃれで洗練された――無印系とフランフラン系とあと何かを混ぜて割ったような――印象の中で、美濃焼のしっかりした和風の皿が出てきたのが面白かったのです。学習漫画に出てくる可愛いキャラクターが気になっちゃうのと同じですね。&lt;/p&gt;
&lt;p&gt;衝動買いした割には、値段も安くとても実用的なお皿でした。スーパーで買ったお刺身を盛るだけでテーブルが華やかになりますし、醤油を入れる仕切りが付いているのも小料理屋さんみたいで素敵。最近は鴨を焼いて柚子胡椒と一緒に盛り付けたりしました。&lt;/p&gt;
&lt;p&gt;もし気に入った柄のものがあれば、1枚くらい持っておいても損はないと思います。&lt;/p&gt;
&lt;h2 id="_7"&gt;あぶり師 &lt;img alt=":cooking:" class="emoji" height="16" src="/emojis/1f373.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://aburishi.com/"&gt;&lt;img alt="商品画像" height="600" src="/images/bestbuy-2025/item7.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://aburishi.com/"&gt;あぶり師&lt;/a&gt;は簡単に使える使い捨てのクッキングバーナーです。ボンベを装着して使う本格的なガスバーナーは、扱いも保管もちょっと面倒そうで手が出ませんが、あぶり師ならちょっとしたターボライターと変わらない使い心地で、手軽に食材を炙れます。&lt;/p&gt;
&lt;p&gt;砂糖をかけてさっと炙る、チーズをかけて最後に炙る……なんでも使えます。最近は買い込んだ干し芋を炙ったりしました。あたりめや焼き小あじ、たたみいわし、甘エビ素干しなど海産物のおつまみなどがあれば、すぐに最高の美味しさを引き出せます。&lt;/p&gt;
&lt;p&gt;ガスバーナーと同じくライターの代わりにはなりませんが、1本あると料理の幅がぐっと広がります。とにかくお手軽なのでおすすめです。&lt;/p&gt;
&lt;h2 id="_8"&gt;革工房ノーツ オーダメイドキーケース &lt;img alt=":briefcase:" class="emoji" height="16" src="/emojis/1f4bc.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img alt="完成品画像" height="573" src="/images/bestbuy-2025/item8.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;今まで使っていたキーケースがボロボロになっていて、同じような構造のものを探していたのですがなかなか見つかりません。最終的に、&lt;a href="https://nauts.jp/"&gt;革工房ノーツ&lt;/a&gt;さんに今まで使っていたキーケースの写真を送って新しく作ってもらいました。オーダメイドの革製品と聞くとかなり高級なイメージでしたが、作例を見ると分かるとおり安価に作ってもらえます。&lt;/p&gt;
&lt;p&gt;ちなみに、同じような構造というのは――三つ折りで、真ん中にYubiKeyを含めた鍵が4本くらい、カードが左右に2枚ずつ、鍵の裏にもう1枚で合わせて5枚入る――という程度のものです。しかし、色々な店を回って探しても、三つ折りでカードがいっぱい入るけど鍵が付けられない、キーケースがメインでカードがほとんど入らないスリムタイプ、果ては真ん中に大きなスマートキーのリングが付いていて野暮ったい……という感じで、いまいち全てを満たすものがありませんでした。&lt;/p&gt;
&lt;p&gt;うんうん唸って色々な店を回らずに、さっさと作ってしまえばよかったなと思います。自分にぴったりの革製品を探している方には、とってもおすすめです。&lt;/p&gt;
&lt;h2 id="_9"&gt;半額シール &lt;img alt=":ideograph_advantage:" class="emoji" height="16" src="/emojis/1f250.png" width="16"&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img alt="半額シールを並べた上にサイコロステーキにサイコロの目が振られた食品サンプルを置いた写真" height="600" src="/images/bestbuy-2025/item9.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;私はこの&lt;a href="https://shimojima.jp/shop/g/g4901755833546/"&gt;半額シール&lt;/a&gt;が好きなのですが、近所のパッケージプラザではせいぜい4割引シールまでしか売っておらず、買う機会を逃していました。かっぱ橋道具街を散歩していたときに&lt;a href="https://www.kappabashi.or.jp/shops/112/"&gt;シモジマ&lt;/a&gt;で偶然見かけて、とうとう入手できたのです。写真に写っているのは、同じくかっぱ橋道具街の&lt;a href="https://www.ganso-sample.com/shop/kappabashi/"&gt;元祖食品サンプル屋&lt;/a&gt;で買ったサイコロステーキのサイコロの食品サンプルです。&lt;/p&gt;
&lt;p&gt;シモジマはパッケージプラザを運営している会社そのもので、会社の名を冠する直営店となればパッケージプラザの総本山と言っても過言ではありません。その日は、お酒の試飲なんかにも便利な&lt;a href="https://shimojima.jp/shop/g/g4547432650534/"&gt;1オンスのプラカップ&lt;/a&gt;も買いました。半額シールにそんなに興味がない方でも、パッケージプラザ（とかその他の包装用品小売店系）が好きなら楽しめると思います。&lt;/p&gt;
&lt;p&gt;半額シールの使い方？　もちろん、値段を減らしたいものに貼るんです！　前に作った&lt;a href="https://x.com/amane_katagiri/status/1806921192026021907"&gt;半額シールの付いたリボン&lt;/a&gt;も似たような取り組みですね。ノートパソコンに貼っても、惣菜のパックに貼っても可愛いですし、必要なら好きな人やペットにも貼れますね。&lt;/p&gt;
&lt;h2 id="_10"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;ベストバイ記事は初めて書きましたが、アルバムやメモを見ながら購入したものや体験したことを振り返っていくと、消費って嬉しい！という気持ちが否応なく引っ張り出されてなんか不思議な気持ちです。来年もやるかは分かりません。&lt;/p&gt;
&lt;p&gt;今から家中のものに半額シールを貼って回ろうと思います。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>月から降ったクリスマス</title><link href="https://ama.ne.jp/post/shoot-from-the-moon/" rel="alternate"/><published>2025-12-22T18:00:00+09:00</published><updated>2025-12-22T18:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-22:/post/shoot-from-the-moon/</id><summary type="html">&lt;p&gt;これはクリスマスらしいリボンですね&lt;/p&gt;</summary><content type="html">&lt;p&gt;「私は、ボーダーコリーが好きよ。頭がいいから！　あなたは？」&lt;/p&gt;
&lt;p&gt;「ボルゾイ！　カッコよくて足が速いから！」&lt;/p&gt;
&lt;p&gt;「うん、知ってた！」&lt;/p&gt;
&lt;p&gt;「私だって知ってるよ。昔一緒に図鑑見たよね！　んー……あと何の話するんだっけ」&lt;/p&gt;
&lt;p&gt;「アレでしょ。脳波を……ね？　みなさ～ん、お手持ちのアルミホイルを頭に巻いてくださ～い！」&lt;/p&gt;
&lt;p&gt;「えー、もう？　エリはせっかちだなぁ」&lt;/p&gt;
&lt;p&gt;「みなさん、急いでくださいね～！　そろそろ始めちゃいますよ～」&lt;/p&gt;
&lt;p&gt;「ま、今さら何人か巻き込んだって変わらないっしょ。じゃあ、まずは――」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;世界初の脳波による会話実験といえば、アレクサンドラとトーマシンによる「メイシー、私の声が聞こえる？」「サンディ、あなたの声を感じているわ」というものが有名である。しかしこれは正確な事実ではない。これはあくまで世界に向けて公開で行われた初めてのデモで、このやり取りも事前に決められたコマーシャルコピーであった。&lt;/p&gt;
&lt;p&gt;&lt;ruby&gt;&lt;rb&gt;脳波&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;EEG&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;コミュニケーションの先駆者であったアレクサンドラと、その助手トーマシンが研究室で初めて交わした脳波は、お互いの犬の好みに関するものだったと言われている。もちろん、互いの嗜好を知らなかったのではない。同僚や上司――所長も視察に来たという――が見守る中、思いついたのが他愛もない世間話だった、ということだ。&lt;/p&gt;
&lt;p&gt;こうして「声を感じる」という画期的なメディアとして世に出た脳波コミュニケーションだったが、数十年以上にわたって主戦場は研究室の中だけであった。「直接話した方が早い」「電話の方がコストが低い」と実用性が低く見積もられてきた脳波コミュニケーションは、AIによる脳波の選択的増幅手法と歴史的なマッチを果たすまで、既に三度の冬の時代を経ていた。&lt;/p&gt;
&lt;p&gt;脳波の選択的増幅に耐えられる人間は限られている。古い事例では、AMラジオの電波塔の下に銀歯のある人が立つと放送が聞こえるという現象がよく知られているが、一方で強い頭痛に見舞われて立っていられない人もいたらしい。特に、先天的な脳波耐性を伸ばすには幼い頃から訓練を積む必要があった。&lt;/p&gt;
&lt;p&gt;脳波の強力さは頭の良さであると宣伝され、脳波コミュニケーション業界の最大手「イーコム」が教育分野に進出してからというもの、それらは「脳力」と言い換えられて大金と引き換えに &lt;em&gt;実験台&lt;/em&gt; の確保が続けられた。&lt;/p&gt;
&lt;p&gt;イーコム自身は脳力訓練者を囲い込むための一部全寮制の高校を経営しているが、その候補者自体は教材を通じて入り込んだ無関係な幼稚園や小学校、児童養護施設から吸い上げ続けている。空前のAIバブルが続く中、AIというキーワードだけで発展しているイーコムだったが、実際には複数の教育機関を野放図に経営するほどの資金があるわけではなかった。&lt;/p&gt;
&lt;p&gt;「エリ、おかえり」&lt;/p&gt;
&lt;p&gt;「ん、ただいま。あ、マシュマロココアじゃん。もうクリスマスだもんね～」&lt;/p&gt;
&lt;p&gt;「あのね、エリ。私、宇宙に行くことになっちゃった」&lt;/p&gt;
&lt;p&gt;「……ん、宇宙？」&lt;/p&gt;
&lt;p&gt;「うん。まぁ、月なんだけどね」&lt;/p&gt;
&lt;p&gt;「あぁ、月……いや、遠いよ。宇宙に比べたら近いけどさ」&lt;/p&gt;
&lt;p&gt;「そうだよね～。遠いよね……あははっ！」&lt;/p&gt;
&lt;p&gt;天井に向かっていやに明るい声でそう笑うのは、そのイーコムの学園に訓練者として通うメイである。十七歳。身長一五六センチ。体重四六キロ。ピンク色の検査着に身を包む白い肌は病弱そうな印象を与えるが、持久走なら昔からエリには負けない。ショートボブに入り込んだ濃い青色のインナーカラーは彼女なりのおしゃれではなく、訓練者に特有の現象である。&lt;/p&gt;
&lt;p&gt;脳力開発部の活動中にメイと話しているのは、彼女の幼馴染のエリだ。メイとは対照的なロングヘアで、小さい頃は活発なエリの後ろに必死でついていくタイプだった。いつの間にかエリの背を追い越して、テスト前にサボりがちなメイを捕まえて勉強を教える姿はまるでお姉さんである。&lt;/p&gt;
&lt;p&gt;エリは脳波耐性の兆候がなかった非訓練者だが、メイの脳力開発をサポートするのに効率がよいと判断されて一緒に来ることになった。どちらも養護施設の出である。自ら脳力開発を希望して入った他の生徒たちとは違って、彼女たちには安定した生活と比して選択の余地がなかったのだ。&lt;/p&gt;
&lt;p&gt;「で、なんで月なの？」&lt;/p&gt;
&lt;p&gt;「知らないけど、石井が言ってた。今年はちょうど満月とクリスマスが重なるから、月からイベントやるんだって」&lt;/p&gt;
&lt;p&gt;「えっ、クリスマス？　もう再来週じゃん」&lt;/p&gt;
&lt;p&gt;「そうそう。あいつらって私たちの都合とかマジで何も考えてないもん」&lt;/p&gt;
&lt;p&gt;「もー、どうせ自分は仕事だからって巻き込まないでほしいよね。イルミ、どうしよっか？」&lt;/p&gt;
&lt;p&gt;「うーん、今年は我慢かな～……」&lt;/p&gt;
&lt;p&gt;脳力開発部は、この学園に訓練者として推薦入学した生徒が入寮と同時に所属する部活である。部活とは言いつつ訓練者に課せられた義務のようなもので、かれらは放課後になると器具を用いた脳波増幅の訓練や検査に回されるのが通常であった。しかし、メイの脳力開発に当てられる時間の六割は、こうしてエリとだらだら過ごす放課後に使われていた。&lt;/p&gt;
&lt;p&gt;配属されたばかりの脳力研究者なら、おしゃべりが脳力を高めるなんて不思議なことだ、と言うだろう。しかし、ある程度の経験と知識があれば、これがアレクサンドラとトーマシンのエピソードと同じだと気付くはずだ。&lt;/p&gt;
&lt;p&gt;世界初の脳波による会話を成功させたボストンの研究室では、二人と同じように脳波での会話を行おうと同僚たちがヘッドギアを着用しあった。しかし、彼女たちほどの遠距離で会話を行える者たちはいなかった。初めは脳波の男女差に注目して分析が行われたが、大きな有意差は見つからない。&lt;/p&gt;
&lt;p&gt;最終的に見つかったのは、日常的に会話――定型的な会議や合理的な議論ではない、ただの他愛ない会話――を交わすペアにおいて、脳波コミュニケーションの成績が高くなる、という仮説だった。アレクサンドラとトーマシンはプライベートでも非常に仲がよかったと言われており、成績のよい研究者たちもその傾向が強かった。ただ、この観点を支持する公的な研究は今までほとんど残っておらず、研究者の間でも経験則に留まっていた。&lt;/p&gt;
&lt;p&gt;この仮説が正しいなら、脳波コミュニケーションは結局のところ決まった二人の間での通信に特化していて、不特定多数と電話のように使うには向いていないということになる。実際のところ、AIによる選択的増幅が可能になるまでは、五百メートル程度の通信でさえ莫大な電力と強力な脳波耐性が求められた。&lt;/p&gt;
&lt;p&gt;しかし、脳波コミュニケーションが役に立たないという噂が流れてしまってはバブル崩壊の呼び水になりかねない。イーコムが一発逆転の計画として長年進めているこのプロジェクトも、経営を圧迫しつつあった。だからこそ、新たな冬の時代の到来を恐れているイーコムは、月面から脳波コミュニケーションの技術力を全世界に見せつける必要があった。&lt;/p&gt;
&lt;p&gt;「そもそも、なんでメイが行かなきゃいけないの？　他にもやる気のある推薦組なんかいっぱいいるじゃん」&lt;/p&gt;
&lt;p&gt;「だって、私が一番成績いいんだもん。みんな脳力低いのに親に期待されて来た子ばっかり」&lt;/p&gt;
&lt;p&gt;「はぁ、両親に期待されてても成績がそれじゃあね……」&lt;/p&gt;
&lt;p&gt;「あははっ、エリひどすぎ。なんか、石井がまた冬の時代がどうこうって言ってたし。今回は絶対成功させたいみたい」&lt;/p&gt;
&lt;p&gt;「そんなに成功させたきゃ自分で行けっての」&lt;/p&gt;
&lt;p&gt;「言えてる」&lt;/p&gt;
&lt;p&gt;脳力開発は現代になっても安全なフレームが判明していない実験的なプロジェクトだ。実験台になった生徒たちをトラブルや苦痛に巻き込みながら少しずつ前に進むしかなかった。イーコムの輝かしい成果発表は、かれらの日々の苦しみを言い換えただけでしかない。&lt;/p&gt;
&lt;p&gt;メイが関節の痛みで身体を丸めて寝込んだり、強い頭痛で起き上がれずに嘔吐を繰り返しても耐えられたのは、エリがいてこそだった。エリのことを考えているとき、確かに彼女の脳波は強くなっていた。&lt;/p&gt;
&lt;p&gt;「で、どれくらい月にいるの？」&lt;/p&gt;
&lt;p&gt;「分かんない。月面基地に超選択的増幅装置を設置して、地上と交信実験をするんだって。しばらくテストさせられるかも」&lt;/p&gt;
&lt;p&gt;「え、それ……脳大丈夫かな？　流石に死なない？」&lt;/p&gt;
&lt;p&gt;「う～ん……まぁ、ちょっとヤバいかもね。でも、私かぐや姫になれるんだってさ」&lt;/p&gt;
&lt;p&gt;「かぐや姫？」&lt;/p&gt;
&lt;p&gt;「地上に向かって脳波でスピーチするの。月から世界平和を見てますよ～って」&lt;/p&gt;
&lt;p&gt;メイが両手を広げて床を見つめてから、笑顔で手を振ってみせる。&lt;/p&gt;
&lt;p&gt;総理大臣でもない、大統領でもない、王様でもないただの女子高生が、一方通行かもしれない旅に出て月からスピーチだなんて。インパクトで投資を集めたいだけのイーコムが考えそうな計画だ。渋谷に大きなドローンディスプレイでも浮かべてスピーチでもするつもりなんだろうか。あるいは、手を振る彼女の姿がそのまま脳内に送り込まれる、ということなのかもしれない。&lt;/p&gt;
&lt;p&gt;エリはその光景をしばらく思い浮かべていたが、十二単姿のメイがすまし顔で地球を見下ろす姿がどうにも面白かったようで、くすくすと笑ってみせた。&lt;/p&gt;
&lt;p&gt;「ふふっ。竹取物語にそんなシーンないでしょ」&lt;/p&gt;
&lt;p&gt;「うん、そう。なんか石井が考えたんだってさ。すごい早口だったし」&lt;/p&gt;
&lt;p&gt;「うわぁ、やっぱおっさん先生のセンスだ」&lt;/p&gt;
&lt;p&gt;「あははっ、本当にそれ。こういうのカッコいいと思わないか？って真剣に言われて、マジで殴ろうと思ったもん」&lt;/p&gt;
&lt;p&gt;脳力研究者と高校教師を兼任する石井は、彼女たちのクラスの担任でもあった。こんな学生を実験台にして喜ぶ壊れた研究者――しかも、彼女たちから見れば冴えない中年教師でしかないのだ――が、ふと少年時代の夢とロマンを思い出して壮大なデモプランを練っているのだとしたら、なんて滑稽なんだろう！　本人から見れば嘲笑としか思えない彼女たちの笑い声は、若々しい感性と共に彼のつまらないレガシーを吹き飛ばしていた。&lt;/p&gt;
&lt;p&gt;彼女たちはひとしきり笑いあっていたが、ふとメイがきゅっと口を結んで黙り込む。エリもそれに合わせてじっと彼女の顔を見つめた。それから、先に口を開いたのはメイのほうだ。&lt;/p&gt;
&lt;p&gt;「ねぇ、正直どう？」&lt;/p&gt;
&lt;p&gt;「どうって、だって月でしょ～……？　メイがいなくなるなんてマジで無理。意味分かんない」&lt;/p&gt;
&lt;p&gt;「じゃあもしさ、もしもだよ。一緒に来て欲しいって言ったら……どう思う？」&lt;/p&gt;
&lt;p&gt;「私も？　月に？　えっ、行っていいの？」&lt;/p&gt;
&lt;p&gt;「……あ、いや、無理だと思うけど」&lt;/p&gt;
&lt;p&gt;「はっ？　なんで一瞬期待させた？」&lt;/p&gt;
&lt;p&gt;メイは迷っていた。幼い頃からずっと過ごしてきたエリに、ひょっとしたらここで別れを告げなければならないかもしれない。施設で脳波耐性なんてくだらない特徴を見出されて、エリと離れるなら絶対行かないと泣き喚いた日のことを、メイは絶対に忘れられない。あの日も今日みたいに、近所のコンビニに散歩しに行くみたいな顔で、「先生、私もメイと一緒に行きますよ」と答えたのだ。&lt;/p&gt;
&lt;p&gt;エリをここに連れてきたのはメイだった。それなのに今度は、メイが先にここを去ろうとしている。私の脳力はなんて勝手なんだろう、とメイは思った。もしも私がいなくなって、エリは私に縛られないで生きていったらそれでいい……なんて心の底から思えたら、きっとメイは宇宙に行くだなんて正直には言い出さなかっただろう。&lt;/p&gt;
&lt;p&gt;エリが私の言葉に呆れてこの学園を去れば、私だって彼女を諦められる。しかし、悩むことなく自分も月に行きたいなんて言い出すエリを見て、メイはほんの少しだけ、またあの日と同じように彼女の言葉に縋りたくなっていた。&lt;/p&gt;
&lt;p&gt;「じゃあ、これならどう？　私が月に行ってから……ちょっとだけ、協力してほしいんだけど」&lt;/p&gt;
&lt;p&gt;メイの声のトーンに合わせて、エリも神妙そうな面持ちのまま、無言で頷いた。よほど真剣な顔をしていたのだと、メイは自分の口を押さえて小さく息をつく。エリは彼女の表情がころころ変わるのが面白くて、声を出さずに少し笑っていた。&lt;/p&gt;
&lt;p&gt;「地上から、私と話してほしいんだよね。私のスピーチに応えて、会話してほしいの」&lt;/p&gt;
&lt;p&gt;「それだけ？　でも私、脳力の素質ないけど」&lt;/p&gt;
&lt;p&gt;「エリはずっと私と一緒にいてくれたから。私と繋がるだけなら、なんとかなるよ。私がエリの分のチャネルまで開く、から……」&lt;/p&gt;
&lt;p&gt;そう言い終わるより前にメイの声が詰まって途切れてしまう。どうにか涙が溢れないようにぐっと目を見開いて、きゅっと口を結んで息を止めていた。涙を目に溜めたままなら泣いたことにはならない、という小学生時代の二人の取り決めを、メイだけがまだ信じていた。&lt;/p&gt;
&lt;p&gt;深刻そうな彼女を面白がっていたエリも、まさかメイが泣き出すとは思わなかったらしく、慌てて立ち上がって肩をさする。&lt;/p&gt;
&lt;p&gt;「えっ、何で泣くの⁉　本当に月で死んじゃうわけ？」&lt;/p&gt;
&lt;p&gt;「分かんないよ！　分かんないけど……たぶん死なない！　死ぬから泣いてるんじゃないもん！」&lt;/p&gt;
&lt;p&gt;下を向いて叫んだ拍子に涙が零れて、メイは慌てて袖でテーブルを拭った。袖の上にもさらに残った涙が落ちて広がっていく。もう泣いてたっていいや、とそのままエリに向かって手を差し出して、拗ねた声で呟いた。&lt;/p&gt;
&lt;p&gt;「手。繋いで」&lt;/p&gt;
&lt;p&gt;「もー、メイって泣くとすぐ手繋ぎたがるよね」&lt;/p&gt;
&lt;p&gt;「違うって！　エリの頭が痛くならなかったら、平気だから……ほら、握って？」&lt;/p&gt;
&lt;p&gt;そんなに怒らないでよ、と言ってエリがメイの手を握る。&lt;/p&gt;
&lt;p&gt;その瞬間だった――これは、エリの感覚である。メイの手から自分の腕を通って、不思議な色の塊がせり上がってくる気がした。それがメイの不安と悲しみの核であることが、なぜかエリにはもう分かっていた。その小さな塊がぴんと弾ける。脳が揺れる感覚と共に、中から現れたのはぬるくて青い液体だった。制服に染みこんでも濡れた感覚がない。&lt;/p&gt;
&lt;p&gt;胸がじんわりと温かくなって、消えていった。彼女にとってはこれが三分間ほどの光景だったが、実際には数秒のできごとである。&lt;/p&gt;
&lt;p&gt;メイにしてみれば、いつもよりちょっとだけ手に力を込めただけだ。普段の訓練でヘッドギアを通じて言葉を入力するのと根本的には変わらない。しかし、エリからわずかに逆流する温かさ、光、柔らかい毛布のような感触。脳波の相性がいい二人だけが交わせるひみつの感覚……これがトーマシンの気分だったんだ、とメイは思った。&lt;/p&gt;
&lt;p&gt;（私ね、このデモを壊す方法を知ってるの。しかも、今すぐ月から帰れるやつ）&lt;/p&gt;
&lt;p&gt;（えなにこれ、すごいね。私の声も聞こえてるの？）&lt;/p&gt;
&lt;p&gt;（うん。ちゃんとエリの声を感じてる）&lt;/p&gt;
&lt;p&gt;（で、なんだっけ。デモをめちゃくちゃにするの？）&lt;/p&gt;
&lt;p&gt;（そう。左手、見てみて）&lt;/p&gt;
&lt;p&gt;エリが手を広げる。手の中には黒い、しかしよく見るとわずかに青色とオレンジ色に光っている小石のような物体が握られていた。もちろん、彼女が持ち込んだものではない。じっと見ているうちに、メイがさっき自分の手を通して流し込んできた不安と悲しみの核に思い至った。&lt;/p&gt;
&lt;p&gt;でも、あの不思議な色の塊はどんな色だったっけ……灰色かもしれない、銀色だったかも、いや、赤く光っていたような……目が覚めてから夢を掴むような覚束ない感覚のまま、目の前の現実の可能性は黒く重たい小石に沈み込んだ。海辺に転がっているような、ただの冷たい小石。これは、メイが思い浮かべた不安そのものだったのかもしれない。&lt;/p&gt;
&lt;p&gt;（増幅AIを触ってるときに偶然見つけたんだ。この力、全部使ってデモをめちゃくちゃにするの。もっと人がいれば、たぶんもっと大きい物質が作れるから）&lt;/p&gt;
&lt;p&gt;（へー、すご……脳波で隕石でも降らせる気？　そんな壮大な計画に私を巻き込もうっての？）&lt;/p&gt;
&lt;p&gt;（そうだよ。私、エリと一緒にいたいから）&lt;/p&gt;
&lt;p&gt;（いいじゃん。やろうよ）&lt;/p&gt;
&lt;p&gt;つつ、と青い光の筋がエリの手を走る。メイはその光が消えるのを待ってから、小さく息を吸ってまた思考を吐き始めた。&lt;/p&gt;
&lt;p&gt;（でも、こんなプロジェクト失敗させたらただじゃすまないよ？）&lt;/p&gt;
&lt;p&gt;（そりゃそうでしょ。イーコムなんて倒産確定だもん。いい気味じゃん）&lt;/p&gt;
&lt;p&gt;（……エリも私のせいで犯罪者になるんだよ？　それでも――）&lt;/p&gt;
&lt;p&gt;（はー、うるさ……メイがそうやっていつも遠慮するところ、マジで嫌い！）&lt;/p&gt;
&lt;p&gt;（……っ⁉　き、きら……）&lt;/p&gt;
&lt;p&gt;（あー、面と向かって口に出せないこと、思ってるだけで言えるの便利だわ。確かに脳波ってすごいかも）&lt;/p&gt;
&lt;p&gt;（エ、エリ……？　あのね、私……）&lt;/p&gt;
&lt;p&gt;（自分だけ脳力開発してるからって、私に迷惑かけてるなんて思い込むの、今すぐやめて。私たちがただの幼馴染なんて思ってるの……メイだけだから）&lt;/p&gt;
&lt;p&gt;そう言い捨てて、エリがメイから手を離した。その瞬間、二人の指先から大きな閃光が飛び出して、弧を描いて消えていく。驚いて顔を見合わせた彼女たちは、今度はどちらともなく笑い始めていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;そしてクリスマス当日。地上のコントロールセンターには、イーコムの重役や学園の研究者たちが集まっている。このデモの統括である石井もいた。エリは目の前の満月を見上げて、デモ会場の群衆の真ん中でメイの言葉を待っていた。この会場にいなくたって、満月が見えているなら頭にスピーチを強制的に流し込まれるだろう。&lt;/p&gt;
&lt;p&gt;「――えー、こんにちは。私は今、みなさんの脳内に直接話しかけています」&lt;/p&gt;
&lt;p&gt;セーラー服を着て現れたメイがそう語り出す。十二単で出てくるんじゃなかったっけ、と手を伸ばしても当然届かない。じっと見つめると、中心がぐにゃりと滲んで判然としなくなる。メイが視界を切り開いて目の前に立っている姿は、脳が普段から適当に補正して埋め込んでいる景色そのものだ。やはりある種、量子的であった。&lt;/p&gt;
&lt;p&gt;周囲では視界がジャックされる初めての感覚におおっ、という歓声が上がる一方で、頭を抱えてうずくまる人も少なくなかった。エリにとってはもう慣れた感覚だが、本来なら一生使わないはずの脳の一部が確かに動いている。相性の悪い脳波が強力に頭を歪めるのだから、耐えられない人もいるだろう。&lt;/p&gt;
&lt;p&gt;会場周辺では高出力電磁波反対協力連合会の行進が続けられていて、多くの人がかれらの配っていた新品のアルミホイルを持っていた。全員が「電磁波攻撃反対」「電磁波盗聴反対」と大きなスローガンの入ったアルミホイルを携えて集団幻覚を見続ける、異様な光景だった。&lt;/p&gt;
&lt;p&gt;ふと、メイが月に飛び立つ前に「みんなに最高の思い出をプレゼントしようね」と言っていたのを思い出す。私、後半の台本見てないけど大丈夫だっけ……なんて思いながら、セーラー服のかぐや姫のつまらないスピーチを聞き流しているうちに、とうとう時間が来た。演説の流れを突然ぶった切って、メイがエリの視界に向かって一歩前に出る。&lt;/p&gt;
&lt;p&gt;「ねぇエリ？　あなたはどんな犬が好きなの？」&lt;/p&gt;
&lt;p&gt;「私は、ボーダーコリーが好きよ。頭がいいから！　あなたは？」&lt;/p&gt;
&lt;p&gt;「ボルゾイ！　カッコよくて足が速いから！」&lt;/p&gt;
&lt;p&gt;「うん、知ってた！」&lt;/p&gt;
&lt;p&gt;「私だって知ってるよ。昔一緒に図鑑見たよね！　んー……あと何の話するんだっけ」&lt;/p&gt;
&lt;p&gt;「アレでしょ。脳波を……ね？　みなさ～ん、お手持ちのアルミホイルを頭に巻いてくださ～い！」&lt;/p&gt;
&lt;p&gt;スピーチが中断され、明らかに計画から外れた不気味な会話が自分たちの脳内で繰り広げられている。 &lt;em&gt;何か&lt;/em&gt; に勘付いた群衆が怯えた声を上げて、まだ落ち着いていたはずの周囲を巻き込んで動揺し始める。エリの言葉を鵜呑みにして、慌ててアルミホイルを頭に巻き始める人もいた。メイが時折サブリミナルのように流し込んでくる不安や恐怖の感覚の前では、脳波コミュニケーションの有名な逸話のオマージュだと気付く聡明さは消え去ってしまうのが人間というものである。&lt;/p&gt;
&lt;p&gt;コントロールセンターからも不安に駆られたスタッフが数人飛び出して、石井が怒鳴り声を上げてパニックを制止しようとする。しかし、もう遅い。そんな下界のことは気にせず、メイがじわじわと脳波の出力を高めていく。ここまで来ると、もうメイと相性の悪い脳の持ち主は自分が歩いている方向さえ分からなくなるだろう。&lt;/p&gt;
&lt;p&gt;「えー、もう？　エリはせっかちだなぁ」&lt;/p&gt;
&lt;p&gt;「みなさん、急いでくださいね～！　そろそろ始めちゃいますよ～」&lt;/p&gt;
&lt;p&gt;「ま、今さら何人か巻き込んだって変わらないっしょ。じゃあ、まずはでっかいクリスマスツリー！」&lt;/p&gt;
&lt;p&gt;満月から降り注ぐのは、きっと今や銀河系で一番巨大で悪趣味な、電飾でぎらぎらのツリー。視界を埋め尽くすクリスマスツリーは、視界に収められないくらい巨大なのに、頂上を飾るベツレヘムの星の輝きまで一目に収めることができた。増幅器の限界を優に突き抜け、下層にある衛星回路を焼き切り、エリというたった一人の受信機のためにメイが脳波を送り続ける。そのイメージは満月から逃げ回る全ての人類の脳へ、直接流し込まれた。&lt;/p&gt;
&lt;p&gt;それだけではない！　人々が逃げ惑う会場の中、空をじっと見つめて動かないエリの横に本物の巨大なクリスマスツリーが建つ。もう一本。さらにもう一本。メイがエリに初めて小石を渡したように、イーコムが集めた沢山の観客が持つ脳波を少しずつ集めて物質に変換し、メイが想像したとおりのクリスマスツリーが建っていた。&lt;/p&gt;
&lt;p&gt;しかし、今ここにいる誰も幻覚か現実か区別できない。科学を超えた魔法の力なのか、誰かが操られているだけなのかも分からない。しかし、エリが触れるモミの木の感触は確かに目の前にあった。&lt;/p&gt;
&lt;p&gt;「次は～……でっかいプレゼント！」&lt;/p&gt;
&lt;p&gt;ラメの入った包装紙で巻かれてリボンのかかった巨大な箱が降り注ぐ。何が入っているかは、メイにもまだ分からない、両手いっぱいで抱えられるくらいの箱が、十個……そして二十個。イーコムの幹部でさえ、既に今の状況は理解できずにいた。かれらの巻いていた最高級の脳波遮断ヘッドギアは、確かにメイの脳波を防いでいるはずだったが、全員が月から降り注ぐクリスマスの目撃者であった。これは幻覚ではない！と誰かが叫んだ。&lt;/p&gt;
&lt;p&gt;「そして～……でっかいダブルベッド！」&lt;/p&gt;
&lt;p&gt;ふかふかの大きなベッドの柔らかい感触が流れ込む。会場の外へ、できるだけ遠くへと逃げ惑っていた人々も、その心地よい感覚に思わず足を止めた。月面基地という、いま世界で最も孤独な場所にいる少女が、地球でただ一人待つ少女のために宇宙規模の &lt;em&gt;寝室&lt;/em&gt; を作り上げていく。&lt;/p&gt;
&lt;p&gt;と、メイが月から飛び込むための救助マットが完成するのを遮るように、石井がコントロールセンターから飛び出した。&lt;/p&gt;
&lt;p&gt;「な、なんだこれは！　中止だ！　今すぐ装置を切れ！」&lt;/p&gt;
&lt;p&gt;そう叫ぶ石井の脳内に、エリの勝ち誇ったような笑い声が響く。石井がさっきまで監視のためにかじりついていたモニターは既に脳波で焼き切られて、二人が犬の図鑑を読んで笑っている子供じみた記憶が何度も何度もループで再生されていた。&lt;/p&gt;
&lt;p&gt;石井にとって、孤独な養護施設育ちの少女を月のお姫様に祭り上げることは、彼なりの救済のつもりだった。純粋に宇宙を夢見た少年の頃の石井は、かつてそんな景色を思い描いていた。デモが大失敗に終わりつつある今この瞬間も、何光年超えても届く脳波の力にまだ夢を追い求めている。&lt;/p&gt;
&lt;p&gt;しかし、メイが求めていたのは天上の玉座などではなく、クリスマスまで指折り数えてエリとマシュマロココアを飲む時間だけだったのだ。&lt;/p&gt;
&lt;p&gt;「うるさい！　エリに近づくな！　私たちのこと、くだらない計画の道具としか思ってないくせに！」&lt;/p&gt;
&lt;p&gt;「な、なんで……俺は、ただみんなの夢を――」&lt;/p&gt;
&lt;p&gt;そう言い終わるより先に、石井の足元やコントロールセンターの中に次々と爆弾が降り注ぐ。いやいや爆弾ってなんだよ、と思うかもしれないが、いかにもゲームに出てくるような黒い球体に導火線が付いた爆弾だ。メイが爆弾と聞いて最初に思いついた爆弾である。人間の想像を強化することしかできない、AIによる選択的増幅装置の弱点でもあった。&lt;/p&gt;
&lt;p&gt;そんな安っぽい爆弾がゲームみたいに全てを吹き飛ばすのを見届けてから、メイは満を持して月面基地からエリの立つベッドに向かって落ち始める。彼女の頭のイメージのまま、まっすぐ。彼女に残った脳力を全てつぎ込んで、全てのイメージを作り上げる。そして、用意していた最後の仕掛けを投下した。&lt;/p&gt;
&lt;p&gt;「じゃあ、最後に～……リボンで巻かれた私の恋人！」&lt;/p&gt;
&lt;p&gt;「え……ちょっと待って！」&lt;/p&gt;
&lt;p&gt;一際明るく白い光の矢となって世界に降り注ぐのは、エリが真っ赤なリボンで身体を最低限だけ覆う裸リボン姿のイメージだった。人々を貫いて地上に降りた光の粒がエリの身体を周りながら覆っていくと、やがて彼女はメイの想像通り、リボンで巻かれた姿で大事な恋人を待ち受けていた。メイがどこに落ちるのか分かっていて、そうするはずだったように腕を広げる。&lt;/p&gt;
&lt;p&gt;――とすん。月から落ちたとは思えない羽根のような軽さで、セーラー服姿のメイが腕の中に収まった。断熱圧縮なんて空間ごと飛び越えて着地した冬の冷たい身体を擦りつけて、メイがにっこり笑う。後ろではコントロールセンターが燃え続けていて、ここにいるのは見つめあう二人だけだ。&lt;/p&gt;
&lt;p&gt;しかし、月の光を浴びた世界中の人類の脳裏には、恥じらいながらこちらを見つめる謎の少女のあられもない姿が焼き付いて離れなかった。かれらの記憶は少しずつ姿を変えながら、理想の裸リボンとして定着していくだろう。きっと明日は、この話で持ちきりに違いない。イーコムなんて、そのまま何の話題にもならないまま潰れてしまえばいいんだ。&lt;/p&gt;
&lt;p&gt;「エリ、私の声が聞こえる？」&lt;/p&gt;
&lt;p&gt;「メイ、あなたの目の前にいるわ！　この変態！」&lt;/p&gt;
&lt;p&gt;さて、世界初の脳波による会話実験といえば、アレクサンドラとトーマシンによる「メイシー、私の声が聞こえる？」「サンディ、あなたの声を感じているわ」というものが有名である。しかしこれは正確な事実ではない。&lt;/p&gt;
&lt;p&gt;クリスマスに月面から脳波をジャックし、倫理を忘れた企業を倒産に追い込み、何億人もの脳にリボン姿の恋人の姿を焼き付けた――史上最悪で最高にハレンチな少女たちの伝説の方が、インターネットでは有名だからだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ねぇ、メイ。まだ消えないんだけど」&lt;/p&gt;
&lt;p&gt;「なにがー？　あー、ココアは脂肪だからさ、先にクレンジングオイルで――」&lt;/p&gt;
&lt;p&gt;「……違う。メイが勝手に私に着せた裸リボンのこと！」&lt;/p&gt;
&lt;p&gt;「あー。あれ、可愛かったね。昨日もおすすめにイラスト流れてたよ。胸がでかすぎて笑っちゃった」&lt;/p&gt;
&lt;p&gt;「うん、そうそうそうそう。SNSでずーっと私がスケベなトレンドになってんの。メイのせいで！」&lt;/p&gt;
&lt;p&gt;「写真なんて一枚も残ってないんだし、別にいいでしょ。みんなツリーと火災の中継ばっかりで、私たちのことは集団幻覚だと思ってるみたいだし」&lt;/p&gt;
&lt;p&gt;「そんなThis Manみたいな都市伝説になんかなりたくないって。ねぇメイ、もう一回でっかい隕石降らせてみんな潰してよ」&lt;/p&gt;
&lt;p&gt;「あー、あの脳力？　エリの裸リボンで全部使い切っちゃった。もうすっからかん」&lt;/p&gt;
&lt;p&gt;「無駄すぎる……グリム童話だってもっとまともな願いに使ってるよ」&lt;/p&gt;
&lt;p&gt;「あはは！　見てこれ、私たち『月からの贈り物』って呼ばれてるらしいよ。世界で一番有名な恋人じゃん」&lt;/p&gt;
&lt;p&gt;「バッカみたい！　私たちがいつ恋人になったって？」&lt;/p&gt;
&lt;p&gt;「まぁ、それくらいの脚色はいいでしょ。おかげで私たち、これからもずっと一緒にいられるんだし」&lt;/p&gt;
&lt;p&gt;「もー……そこ持ち出されたら、言い返せないじゃん。はぁ、改めて言うことでもないけどさ……おかえり、メイ」&lt;/p&gt;
&lt;p&gt;「……うん。ただいま、エリ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>イってないよね？</title><link href="https://ama.ne.jp/post/dont-say-coming/" rel="alternate"/><published>2025-12-19T18:00:00+09:00</published><updated>2025-12-19T18:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-19:/post/dont-say-coming/</id><summary type="html">&lt;p&gt;真っ白な部屋に飛び込んでみんなを驚かせましょう！&lt;/p&gt;</summary><content type="html">&lt;p&gt;お金欲しさにこんなゲームに参加するんじゃなかった、とミキは思った。「同時に絶頂しないと出られない部屋」なんて、 &lt;em&gt;なかよし&lt;/em&gt; のあたしたちなら簡単だったはずなのに。もしも時間が戻せるなら、きっとサナの言うとおりに二人でその場を立ち去っていただろう。&lt;/p&gt;
&lt;p&gt;白い床、白い壁、白い天井、白いベッド。いかにも実験室という感じの部屋に通された彼女たちは、三人の――いや、三台の合議制絶頂判定AIに三方向から監視されながら、たった十万円のために既に二時間以上はこうして性器を擦り合わせ続けていた。&lt;/p&gt;
&lt;p&gt;たった十万円とはいえ、これでも大学生の彼女たちがルームシェアする小さな部屋の家賃を払っても少し余るくらいで、サナも反対しつつその金額の大きさに気持ちが揺らいだ、というのが正直なところである。&lt;/p&gt;
&lt;p&gt;「ね、ねぇ……サナ、まだなの……？　ダ、ダメ……イくっ！」&lt;/p&gt;
&lt;p&gt;「あ……わ、私もっ……」&lt;/p&gt;
&lt;p&gt;ミキが身体を弓なりに反らして仰け反るのに少し遅れて、横たわったサナも控えめに身体を震わせる。ミキはサナの細くて綺麗な身体に触れるのが好きで、付き合い始めた頃は手を繋いでいるだけで嬉しかったんだよ、と話したのはちょうど昨日の夜のことだ。&lt;/p&gt;
&lt;p&gt;お互いの下半身がびくびくと震えるのをひとしきり見つめてから、今度は顔を見合わせて頷く。本来ならお互いを愛おしく思うためのコミュニケーションが、まるで点数を付けられるための競技のように洗練され始めていた。性格も違う、高校の部活さえ正反対の二人の間に、恋愛や快楽ではない新たな絆が芽生え始めているようにも見える。&lt;/p&gt;
&lt;p&gt;しかし、AIはいずれもNG！の札を上げて、さらに絶頂チャレンジを続けるよう促した。ミキが思わず「はぁ⁉」と声を上げて立ち上がる。脚が少しぷるぷると震えていた。いつもならサナが音を上げるまで眠ろうとしない元気なミキにも、少し疲れが見え始めている。ラブホテルに行ったってもう少し休憩を挟むのに、なんて冗談を差し込む余裕もなかった。&lt;/p&gt;
&lt;p&gt;「ま、まだクリアできないの？　判定が厳しすぎない……？」&lt;/p&gt;
&lt;p&gt;「ごめんね、ミキちゃん。私、ちょっとイくの遅れちゃったかも……」&lt;/p&gt;
&lt;p&gt;へたり込んだミキを支えるように、起き上がったサナが肩に手を回す。疲れと興奮で呼吸の荒いミキを落ち着かせるように、サナがゆっくりと深呼吸しながらしっとりとした肌を合わせた。彼女から伝わる熱を広げるようにサナを見つめるミキに気付いて、サナが目を閉じる。そうして、小さくキスをした。&lt;/p&gt;
&lt;p&gt;「あたしこそごめん。すぐイっちゃうほうだから、サナに合わせられなくて……次はサナに合わせるから、教えて？」&lt;/p&gt;
&lt;p&gt;ミキがサナのお腹を撫でながら、薄い乳房に顔を近づける。次はサナがイくのに集中して、そのタイミングに合わせて自分ですればいい、と思ったのだ。しかし、ミキはサナの色の薄い小さな乳首を舐めながら、抑えるような喘ぎ声を聞くだけでじわじわと下半身が熱くなるのだから、実際のところどうでもよかった。&lt;/p&gt;
&lt;p&gt;「う、うん……頑張るね」&lt;/p&gt;
&lt;p&gt;しかし、ミキを見下ろすサナの笑顔はどこか引きつっていて、一瞬目を逸らしたのをミキは見逃さない。&lt;/p&gt;
&lt;p&gt;「どうしたの、サナ。疲れちゃった？」&lt;/p&gt;
&lt;p&gt;「そういうわけじゃないんだけど――ねぇ、ミキちゃん。怒らないで、聞いてほしいんだけど……いい？」&lt;/p&gt;
&lt;p&gt;「サナのことであたしが怒るわけないでしょ？　なに？」&lt;/p&gt;
&lt;p&gt;そう言ってサナを安心させようとするミキだったが、当のサナには伝わっていないようで、どこから話し出せばいいのかという様子でしばらく押し黙っていた。すると、AIがこの沈黙で何を勘違いしたのか「百合カップルが上手くいくコツ7選」という出所不明の記事を読み上げ始め、堪えきれなくなったミキが「うるさい！　いまサナがしゃべるから黙ってて」と強制終了させる。&lt;/p&gt;
&lt;p&gt;サナが話し始めたのは、それからさらに二十秒ほど経ってからだ。&lt;/p&gt;
&lt;p&gt;「私ね……実は、今までイったことなくて。もう、この部屋から……出られない、かも……」&lt;/p&gt;
&lt;p&gt;言い終わる前に、サナが顔を歪めて泣き始める。ひくっ、うっ……と、こうして息を殺して泣くのは父親にずっと叱られたからだ、と前に言っていた。泣き出すと叱られたのを思い返してもっと悲しくなる、とも。&lt;/p&gt;
&lt;p&gt;泣き出す彼女と、そこから飛び出た唐突な発言に、ミキはその場から動けなくなる。いつもならサナを胸に抱き寄せて落ち着くまで撫でてあげるはずのミキが、目を丸くしたまま座っているのは、セックス中に泣き出したことがなかったせいかもしれない。&lt;/p&gt;
&lt;p&gt;「えっ、どういうこと？」&lt;/p&gt;
&lt;p&gt;「だから、私はミキちゃんにしてもらっても、自分でしてもイけないの。だから、同時に絶頂なんて無理なの！」&lt;/p&gt;
&lt;p&gt;サナが最近でも一番大きな声でそう叫ぶ。そして、箍が外れたようにわんわんと泣き始めた。恋人のミキに通用する演技ならAIでも騙されるだろう、と思っていたサナは、何度イったふりをしても終わらない絶頂チャレンジの重圧に耐えきれなくなっていたのだ。AIが「心拍数の上昇を確認――リラックスを推奨します」と告げる声も、今の彼女には逆効果だった。&lt;/p&gt;
&lt;p&gt;頭が殴られるような感覚に押し出されて、やっとミキの思考が動き出す。&lt;/p&gt;
&lt;p&gt;しかし回り始めた彼女の頭に浮かぶのは、目の前で泣き叫ぶサナの宥め方ではなく、彼女と肌を重ねた日々の思い出である。ミキが指を動かす度に「ミキちゃん、イきそう……」「もっとして……」「あ、あぁあっ……ミキちゃん、大好き……」なんて言ってくれたサナの声は、全部嘘だったのか。そう思い至ると、ミキの目からも大粒の涙が零れ始めた。&lt;/p&gt;
&lt;p&gt;「な、なんで？　いつも気持ちいいって言ってくれてたじゃん」&lt;/p&gt;
&lt;p&gt;「気持ちいいよ。気持ちいいし、すっごく幸せなの……でもイけないの！」&lt;/p&gt;
&lt;p&gt;「そんなの……別に言ってくれたっていいじゃん！　なんでイくとか、変な嘘つくの」&lt;/p&gt;
&lt;p&gt;「だって」「なに？」「私がイけないって言ったら、ミキちゃん絶対エッチしてくれなくなるもん」&lt;/p&gt;
&lt;p&gt;サナがミキの手を握って、拗ねた子供のような声でそう白状した。ぼろぼろ流れるミキの涙を見たサナは、頭が自分の感情にやっと追いついてきて、そろそろ急に恥ずかしくなる頃だ。残った涙と混ざりあって、少し怒っているようでもあった。相手が望む姿でミキの気持ちを盛り上げる……サナにしてみれば我慢するための嘘ではなく、ミキと幸せに過ごすための言い訳でしかなかった。&lt;/p&gt;
&lt;p&gt;当然、ミキにとっては青天の霹靂で、しかし自分だけが絶頂するセックスに罪悪感を覚えないとは言い切れない。ミキはサナが思う通りに優しい子だ。だからミキは、何も言わず彼女を見つめることしかできなかった。&lt;/p&gt;
&lt;p&gt;「めちゃくちゃになってるミキちゃん……すごく可愛いんだよ。それだけで幸せなの。だから、イかなくてもいいの」&lt;/p&gt;
&lt;p&gt;「で、でも……だからって……」&lt;/p&gt;
&lt;p&gt;いつの間にか二人の涙は止まっていた。自分だけが一人で絶頂している滑稽な姿ではなく、ただ自分とセックスしたいと思ってくれる存在がいる。サナの言葉でそう思い至ったミキは、愛おしそうに自分の頭を撫でる彼女の顔をどうしてもまっすぐ見ることができなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;溢れかけた雫が残った涙目のまま抱き合っていた二人は、やがて黙って見つめ合ったまま、サナがミキの目尻をちろと舐めて「甘いね」と言って笑う。ミキも仕返しのようにサナの涙を舐めとって「サナのはしょっぱい」と返す。くすくす笑い合う二人の間にまた沈黙が流れて、どちらともなくキスをした。&lt;/p&gt;
&lt;p&gt;サナはミキの耳元で自分の濡れた股間を触るようねだって、優しく撫でるミキに合わせてサナもまた彼女を愛撫する。一度は涙で冷えたミキの身体だったが、サナの指を呑み込む動きが欲深く絶頂を求める。程なくしてミキは、サナを気持ちよくするのも忘れて「あたしすぐイっちゃうから、そんなに強くしないで……」と熱くなる自分の顔を覆った。&lt;/p&gt;
&lt;p&gt;必死に絶頂を迎えようとするミキの喉の震えが、全くの無防備のままサナの前に晒されている。そういう姿を見る度に、サナの脳にはじわじわとした快感が走っていた。もちろん、ミキはそんなことを知らないまま、彼女にじっと観察されているだけだ。&lt;/p&gt;
&lt;p&gt;「うん……安心して気持ちよくなってね、ミキちゃん……」&lt;/p&gt;
&lt;p&gt;「あぁ、あっ……イ、イくっ！」&lt;/p&gt;
&lt;p&gt;もちろん絶頂判定結果はNG、である。&lt;/p&gt;
&lt;p&gt;それから二人はどうすべきか話し合った。AIは想定外の入力には対応できないはず。そう言い出すサナのアイデアを試すために、ミキが部屋に用意された様々な道具を引っ張り出す。&lt;/p&gt;
&lt;p&gt;――体温と心拍数が平常に戻っています。ムードを盛り上げるための音楽を再生する場合は1を――&lt;/p&gt;
&lt;p&gt;ローター、電気マッサージ器、ディルド、コスプレ……くらいは予想通りとして、最新ゲーム機やカラオケセット、加湿器やドライヤー、見覚えのあるラベルのペットボトル水まで収納されていた。真っ白な部屋にいろいろな道具が散らかって、まるで3Dモデルの部屋にいるようだ。AIに尋ねてみると、食事が必要なら持ってきてくれるらしい。ピザも出る。寿司も出る。こういう部屋ってラブホテルの居抜きなんだ、とミキは密かに思った。&lt;/p&gt;
&lt;p&gt;絶頂判定AIは絶頂以外は判定できない。それなら、別の軸から絶頂の壁をくぐり抜けるだけだ。二人は「裸で？」「裸で！」とゲームで争ったり、カラオケで大声を出したり、コスプレをして追いかけ合ったり、果ては枕投げまで……一通り全ての道具を試した。狭い部屋では走り回るのも難しい。大学だってそうだろう。子供みたいなことでも、やってみれば楽しいものだ。途中からAIのことなんて忘れてたね、とミキが笑う。&lt;/p&gt;
&lt;p&gt;しかし結局、どうやってもAIを騙してOKを引き出すことはできないまま、さらに三時間が経った。&lt;/p&gt;
&lt;p&gt;「やっぱり、AIは騙せないよね。ごめんね、私がここに入る前にちゃんと言ってたらよかったのに……」&lt;/p&gt;
&lt;p&gt;「あーもう無理、マジ疲れたぁ。あたしたち、一生ここで遊んでエッチして死ぬだけなの？」&lt;/p&gt;
&lt;p&gt;「そう言っちゃうと、なんか……幸せかもね」&lt;/p&gt;
&lt;p&gt;「そんなわけないでしょ！　あたし、死ぬときは海って決めてるのに」&lt;/p&gt;
&lt;p&gt;二人はつるつるした生地の薄いコスプレを地肌に着たまま、またベッドに戻って寝転がった。こう壁も天井も白いと、部屋の広さも分からなくなってくる。鮮やかな衣装のつやつやした繊維が白い空間に生々しく浮かび上がって、身体のラインをはっきりとなぞった。&lt;/p&gt;
&lt;p&gt;サナはフリルの付いたタイトな魔法少女の衣装に身を包み、ピンク色の布地がその薄い胸元を強調している。衣装と合わせたピンクのニーソックスがよく似合う。ミキの方は、露出の多いへそ出しのセーラー服だ。胸元の赤い大きなリボン、パフスリーブの白いシャツ、青と紫がレイヤードになったミニスカートには銀のベルトが巻かれている。胸が大きいとよく映えるコスプレだ、とサナは思った。&lt;/p&gt;
&lt;p&gt;まるでオープニングのイメージシーンのように手を繋ぐ二人が、変わらずAIに監視されたまま再び小休止を迎える。二人で何度か大声に任せて喚き散らしてからは、AIが変なアドバイスを持ち出してくることもなくなっていた。&lt;/p&gt;
&lt;p&gt;「サナの気持ちは嬉しいんだけどね。でも、どうやってこの部屋から出るつもりだったの？」&lt;/p&gt;
&lt;p&gt;「イったふりで切り抜けられるかなと思って。ミキちゃんにも通じてたし……十万円も欲しいって言ってたし」&lt;/p&gt;
&lt;p&gt;「いや、それはイく前のあたしの頭がパーになってるからで……体温も心拍も見てくるAIに通じるわけないよ」&lt;/p&gt;
&lt;p&gt;ミキが絶頂する直前のことを思い出すと――気持ちいい！すごく気持ちいい！サナ好き！サナ可愛い大好き！もっとして！――サナのびくびくとした痙攣のリズムが少しずれているとか、不自然だとか、そういう疑いが入る余地は全くなかった。彼女は自分の快感のことで頭がいっぱいだった。&lt;/p&gt;
&lt;p&gt;彼女のことをじっと見つめるサナの前で、全てをさらけ出すしかないミキ……そんな恥ずかしい想像をかき消すように、ミキはぶんぶんと首を振る。&lt;/p&gt;
&lt;p&gt;「そ、そもそもさぁ、イくふりなんてどこで覚えてきたの？　レズもの、好きじゃないって言ってたよね」&lt;/p&gt;
&lt;p&gt;「なんとなく、ミキちゃんのまねっこで……動画の人たちってなんか演技っぽくて、参考にならないし」&lt;/p&gt;
&lt;p&gt;「そ、そっか。上手なんだね、なんか、こう……あたしの観察」&lt;/p&gt;
&lt;p&gt;「うん。ミキちゃんのこと……好きだし」&lt;/p&gt;
&lt;p&gt;「……うん、ありがとね！　あははっ。もー、調子狂うなぁ」&lt;/p&gt;
&lt;p&gt;普段は面と向かって好きだなんて言わないサナが、この部屋に布かれたおかしなルールに当てられたようで、いつもよりずっと大胆にミキの指を絡め取って離さない。告白からルームシェアまで彼女を引っ張ってきたつもりのミキが、彼女の勢いに圧されて照れ顔で頭を掻くしかないというのは、相当なものだ。&lt;/p&gt;
&lt;p&gt;彼女が内に秘めて離さなかった嘘を明かしたおかげで、ある種の遠慮まで消え去ったのかもしれない。&lt;/p&gt;
&lt;p&gt;「で、次はどうしよっか。用意されてる道具はもう全部使った気がするけど……ねぇAIくーん、他になんかないー？」&lt;/p&gt;
&lt;p&gt;「あのね、ミキちゃん。例えばなんだけど――」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ミキちゃん、どこか痛かったりしない……？」&lt;/p&gt;
&lt;p&gt;「あ、うん……平気。ありがと……じゃなくて！　なんであたしが縛られてるわけ⁉」&lt;/p&gt;
&lt;p&gt;サナが見つけ出したのは、これまたコスプレ衣装と同じ店で買ったであろう簡易的なSMセットである。目隠し、ファーが付いた革の拘束具、ボールギャグ、ポリエステルロープ、などなど。高級感のために黒で統一されているように見えるが、テカテカとした素材が逆効果になっている。&lt;/p&gt;
&lt;p&gt;そこからおもむろに縄を取り上げたサナに言われるがまま、ミキは寝転がって手足を左右に差し出したのだ。脚をがばっと開いて丸見えになるのも気にしないのは、既に六時間以上ここにいて感覚が麻痺しているせいだ。&lt;/p&gt;
&lt;p&gt;きっと結び方でも教えてくれるのだろう、と疲れた頭でぼんやり思っていたミキは、そのまま手首をぐるりと足首に固定されたあたりで、やっと自分の予想が甘かったことに気付いた。&lt;/p&gt;
&lt;p&gt;「だって……やってもいいよって、ミキちゃんが」&lt;/p&gt;
&lt;p&gt;「言った。言ったよ。でも、あたしが縛られるとは思わないじゃん！　こういうのって、サナみたいな大人しい子が縛られて恥ずかしがるもんじゃないの？」&lt;/p&gt;
&lt;p&gt;「ミキちゃん、分かってないよ！　私みたいな薄い子は、手錠でパイプベッドに繋がれるくらいがちょうどいいのに」&lt;/p&gt;
&lt;p&gt;「誰が縄の似合う恥ずかしいおっぱいのムチムチ女なのよぉ～……えーん、ロリコン教師に乱暴されるタイプの彼女がいじめてくるよ～……」&lt;/p&gt;
&lt;p&gt;ミキが蟹縛りでベッドに転がされたまま、駄々をこねるように身体を左右に揺らす。仰向けになった乳房も大きく流れるように、柔らかな弧を描いて震えた。拘束された手足が動くたびに、白い肌に安いロープが赤く食い込み、ミキの無防備な身体の質感を強調していく。白い部屋の中で、縄の赤い跡だけが浮かび上がるようにも見えた。&lt;/p&gt;
&lt;p&gt;しばらくその様子に見とれていたサナだったが、抵抗できない身体を安心して預けるミキの信頼感が、なぜだか突然サナを苛立たせる。自分を信頼してくれて嬉しいはずなのに、緩みきったその信頼が今は邪魔だった。&lt;/p&gt;
&lt;p&gt;何をされても逃げられない身体で、自分の一挙手一投足に目も向けないミキの頬を叩いたらどうなるか、とサナは実行する覚悟もない妄想をした。&lt;/p&gt;
&lt;p&gt;「ミキちゃん、あんまり動かないでね。叩くよ？」&lt;/p&gt;
&lt;p&gt;「……えっ、あっ……はい。ご、ごめんなさい」&lt;/p&gt;
&lt;p&gt;サナが急に低く落ち着いた声でそう脅すものだから、ミキは身体を縮めて彼女を見上げるしかない。そうだ。仮にサナが本当に手を振り上げたとしても、ミキは逃げられない。そんなことするわけない、と分かっていても、ミキの身体をじろじろと観察するサナの目はいつもより鋭かった。&lt;/p&gt;
&lt;p&gt;しばらくして、ミキが自分をじっと見つめていることに気付いたサナは、にこりと笑って今度は優しい口調で語り始めた。&lt;/p&gt;
&lt;p&gt;「私ね、これまで自分でしてもイけなかったって言ったじゃない？　でもね、前にレズビアンのカップルさんがやってる……同人AVっていうのかな。ほんとの彼女さんを縛って、泣くまでいじめるやつ……それ見て、ちょっとイきそうになっちゃって」&lt;/p&gt;
&lt;p&gt;サナが嬉しそうに「これだ、って思ったの」と告げる言葉にも、ミキは黙ったままだ。&lt;/p&gt;
&lt;p&gt;こうして縛られて、泣くまで許してもらえない……際限なく快感を叩き込まれて、辱められて、きっと恥ずかしい言葉も言わされる……まるで自分の行く末を予言されているようで、ミキはじわじわと下腹部が熱くなる感覚に戸惑って、返事ができなかったのだ。&lt;/p&gt;
&lt;p&gt;抵抗できない恐怖で指先が冷えていくのに、身体の中には熱が溜まって逃がせない。そんな、初めての感覚だった。&lt;/p&gt;
&lt;p&gt;「私、今とっても興奮してる。あの動画の子もそんな目だったの。ねぇ、ミキちゃんはどうしてほしい？　動けなくなってるところ、私に見られてるの……どう？」&lt;/p&gt;
&lt;p&gt;「あ、あんまり……痛くしないで、ね？」&lt;/p&gt;
&lt;p&gt;「えー？　痛くなんかしないよ～。ミキちゃん、今すっごく可愛いもん！」&lt;/p&gt;
&lt;p&gt;サナの指が、ミキの太ももの内側をそっと撫でる。ひんやりとした指がミキの熱い肌を這い上がって、指の腹が性器の縁をかすめた。そして、傷がないか優しく確かめるような手つきでそっと恥丘を撫でていく。そんなほんの小さな刺激がミキの中で何度も反射して、急激に快感が高まっていた。&lt;/p&gt;
&lt;p&gt;ミキの身体がぷるぷる震える。こんなの無理だよ、おまんこ触って快感逃がしたいのに、おまんこ触りたいのに、おまんこ触ってよ……そんなことを言い出したらサナに怒られるのではないか、と声を押し殺そうとしていたミキだったが、とうとう半泣きで自分の窮状を白状した。&lt;/p&gt;
&lt;p&gt;「サ、サナ……あっ、ごめん、あたし……イきそ――」&lt;/p&gt;
&lt;p&gt;「え、ミキちゃんどうしたの？ 　私、まだ何もしてないよ？　一緒にイかないと帰れないんだよ？　分かってる？」&lt;/p&gt;
&lt;p&gt;「んぁっ……あっ、ご、ごめん。ごめんなさい……んっ……」&lt;/p&gt;
&lt;p&gt;そんなことはサナから見れば手に取るように分かることで、もちろん許されることはない。いつもなら二人でくすくすと笑い合う声が、今は一方的にミキに向けられている。そう思ったミキが、サナに命令されるまでもなく自ら醜態を晒してしまったのだと気付くと、また情けない喘ぎ声が漏れ出てしまう。&lt;/p&gt;
&lt;p&gt;今の彼女にとっては、サナから与えられる刺激が全て快感だった。自分の快感で手一杯のミキと、その様子を愛おしく思うサナ。言ってしまえば、普段の彼女たちのセックスとあまり変わらないのだが、サナにとっては新たな手応えがあった。イけそうなセックスだった。&lt;/p&gt;
&lt;p&gt;「ミキちゃん、まだイってないよね？　せっかく自分でおまんこ触れないようにしてあげたのに、もう我慢できないの？」&lt;/p&gt;
&lt;p&gt;「も、だめ……すぐイけるから、触ってぇ……」&lt;/p&gt;
&lt;p&gt;「しょうがないなぁ。私、まだイってないんだよ？　じゃあ、特別に一回だけ――」&lt;/p&gt;
&lt;p&gt;サナがそう言い終わる前に、真っ白な部屋にジリリリリと大きなベルの音が響いた。&lt;/p&gt;
&lt;p&gt;それから、二人を監視していた絶頂判定AIの一台が密室安全上限時間に達したと告げる。判定対象ではなくなったので、賞金も満額は払い出されない旨も続けてアナウンスした。つまり、あれこれと絶頂する術を試し続けて九時間は滞在したということになる。&lt;/p&gt;
&lt;p&gt;AIが差し出した絶頂判定のグラフを眺めるサナ。ぐちゃぐちゃと乱高下している黄色のラインはミキのもので、六割前後で推移し続けている青いサナのグラフは、最終的には上下しながら九割前後まで達していた。サナの手応えの通りだ。あと一時間でもあれば、サナも余裕のない顔でミキを求めていたに違いない。&lt;/p&gt;
&lt;p&gt;別のグラフによれば、徐々に二人の鼓動が近づいて、最終的には重なっていたという。長々としたAIのコメントの最後には「二人の相性は最適ですから今後は精進してくださいね」という偉そうな評価と一緒に、潜在的な相性を評価して半額の払い出しがあること、そして「百合カップルが上手くいくコツ7選」のリンクが貼られていた。&lt;/p&gt;
&lt;p&gt;「あーあ……ミキちゃん。もう時間切れだって。ごめんね、やっぱり私、イけなかったみたい……」&lt;/p&gt;
&lt;p&gt;「あっ……え、で、でも……もうちょっとだから、最後までして？　ね、お願い、サナ……」&lt;/p&gt;
&lt;p&gt;そう言って腰をゆらゆらと揺らすミキの顔を、サナが冷たい目線でじっと見下ろす。ミキちゃんは何をしても本当に可愛いな、とサナは思った。蔑むようなサナの視線に反応して俯くミキの恥じらう顔を十分に堪能してから、サナはわざとらしくぱっと笑ってみせた。&lt;/p&gt;
&lt;p&gt;「そろそろ縄が痛いよね！　蟹縛りって、エッチだけど負担が大きいの。すぐ解くから…… &lt;em&gt;あんまり動かないでね&lt;/em&gt; 」&lt;/p&gt;
&lt;p&gt;「……っ！　は、はい……」&lt;/p&gt;
&lt;p&gt;サナが縄を解きながらゆっくりミキの肌を撫でる。彼女の指は縄で痺れた皮膚にそっと刺激を与えて、またじわりと熱を帯びて広がった。&lt;/p&gt;
&lt;p&gt;脚に束ねられていた手首が解放されて、ミキは思わず背伸びをする。腰がちょっと痛い。足首も固まっている。ストレッチで身体を動かすと、溢れそうになっていた快感を少しずつ逃がせる気がした。緊縛ってやってる最中は全然疲れないんだ、とミキは思った。「人生と一緒かも」とだけ呟くと、サナは「それいつも言ってるね」と一緒にくすくす笑った。&lt;/p&gt;
&lt;p&gt;ひとしきり身体を伸ばしたミキが、ばたりとベッドに倒れ込む。サナもその横に添い寝するように飛び込んで、頬に小さくキスをした。&lt;/p&gt;
&lt;p&gt;「あーもうホントに無理かも……しばらく動けなさそう」&lt;/p&gt;
&lt;p&gt;「私も、流石に疲れちゃった。この後……どうしよっか？　五万円ももらったし、焼肉でも食べて帰る？」&lt;/p&gt;
&lt;p&gt;「あー、いいね。そろそろダイエットも飽きてきたし――」&lt;/p&gt;
&lt;p&gt;サナが彼女の返事を待たずに「それとも……ラブホで続きする？」と低い声で耳打ちすると、ミキは自分の言葉も継げないまま顔を背けて、それから小さく頷く。サナに何気なくキスされた頬がまた熱くなっていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「あー、美味しいっ！　いっぱいエッチした後に酒飲んで焼肉って、こんなのおっさんの欲望じゃん！」&lt;/p&gt;
&lt;p&gt;「ミ、ミキちゃん、声大きいよ……」&lt;/p&gt;
&lt;p&gt;「いいじゃん。せっかく個室で焼肉なんだから。ほら、サナももっと飲んで」&lt;/p&gt;
&lt;p&gt;「う、うん……じゃあ、もう少しだけ……」&lt;/p&gt;
&lt;p&gt;あれからラブホテルに直行した私たちは、縛られたミキちゃんが子供みたいに大泣きするまでねちねちと言葉責めしてあげて、それからおまんこをいっぱい触ってあげた。泣きながらイくの初めてだって苦しそうに身体をねじってたから、頭を撫でて優しく「たくさんイけてえらいね」って言ったら、ぐちゃぐちゃの顔で笑ってくれたのがすごく嬉しかった。&lt;/p&gt;
&lt;p&gt;私もその姿を見ながら初めてイけたから、その後は縄を解いて二人でいっぱい喜びあった。私も余韻でもう一回だけイけたけど、やっぱりミキちゃんは何度もイっていた。その話をもっとここに書いたっていいんだけど、ミキちゃんが怒っちゃいそうだからやめておく。なんか私も興奮してひどいこと言っちゃった気がするし。&lt;/p&gt;
&lt;p&gt;でも……また変な部屋に誘われることがあれば、もしかしたら。&lt;/p&gt;
&lt;p&gt;最初は家賃の足しにするつもりで飛び込んだ「同時に絶頂しないと出られない部屋」だったけど、結局もらった賞金はエッチとご飯なんてただ欲求を――本当におじさんみたいだ――満たすために使い切ってしまった。一日ずーっと働いてたのと同じなのに。ミキちゃんが満足してるなら、まぁいっか。&lt;/p&gt;
&lt;p&gt;「サナ、そんなにメニュー見てどうしたの？　あー、まだお肉食べ足りないんだ。こっちも頼もうよ！」&lt;/p&gt;
&lt;p&gt;「あ、えと……じゃあ、タン塩のセットにしようかな」&lt;/p&gt;
&lt;p&gt;私たち、十万円なんかよりよっぽど取り返しの付かないところに来ちゃった気がする。でも、これでよかった……のかな？&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="extra-discussion-topics"&gt;EXTRA: DISCUSSION TOPICS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;サナが「嘘」を告白したことで救われたのは、嘘をつき続けていたサナ自身でしょうか？　それとも、真実を知らされたミキでしょうか？&lt;/li&gt;
&lt;li&gt;取り返しのつかないところに来たと自覚しているサナにとって、この後、普通の大学生としてミキとルームシェアを続けることにどのような意味がありますか？&lt;/li&gt;
&lt;li&gt;もしも世界がAIに完全に統治されて、全ての性的快楽が数値化・公開される社会になったら、あなたはどのような生活を送ると思いますか？&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="extra-exercises"&gt;EXTRA: EXERCISES&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;あなたがまだ隠し続けている、愛のある嘘のリストを作ってみましょう。&lt;/li&gt;
&lt;li&gt;誰にも見せない自分だけのパラメータを決めて「判定グラフ」を描いてみましょう。&lt;/li&gt;
&lt;li&gt;一番仲の良い友達と、あえて正反対のコスプレをして食事に行ってみましょう。&lt;/li&gt;
&lt;/ul&gt;</content><category term="lily"/></entry><entry><title>ひみつ道具「世界修正時計」</title><link href="https://ama.ne.jp/post/world-edit-timer/" rel="alternate"/><published>2025-12-14T00:00:00+09:00</published><updated>2025-12-14T00:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-14:/post/world-edit-timer/</id><summary type="html">&lt;p&gt;ぜーんぶ、あなたが悪いんですからね！&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この音声はVOICEPEAK 女性1で生成されており、&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。 */&lt;/p&gt;
&lt;video loop controls width="750" height="420" src="/images/world-edit-timer/world-edit-timer.webm" poster="/images/world-edit-timer/world-edit-timer.jpg"&gt;ピンクを基調とした部屋に青い少女が立っており、下にメッセージウィンドウが表示されている&lt;/video&gt;

&lt;hr&gt;
&lt;p&gt;おかえりなさい。早かったですね。今日は、昔のお友達とお出かけって言ってませんでしたか？&lt;/p&gt;
&lt;p&gt;あらあら、どうしちゃったんでしょう！　そんなに青ざめちゃって。&lt;/p&gt;
&lt;p&gt;それ、昨日あなたにあげたひみつ道具ですよね。世界修正時計……失敗した会話を、時間ごと戻してやり直せる時計です。これがどうかしましたか？&lt;/p&gt;
&lt;p&gt;なるほど、なるほど……お友達の頭に変な数字が？　それって、4色の数字でしたか？　黄色、赤……そうです。きっと青と緑もありましたよね？&lt;br&gt;
よかった！　ちゃんと動いているみたいですね。この時計を使った相手には、喜び・怒り・悲しみ・楽しさ……感情の強さが表示されるようになるんです。会話が成功したのか、すぐに分かるのでとっても便利なんですよ。&lt;/p&gt;
&lt;p&gt;人間さんたちの会話って、安全に取り扱うにはあまりに不確実ですからね。やり直したいなら、正確な指標が必要なんです。&lt;/p&gt;
&lt;p&gt;はい、その通りです。せっかくやり直すんですから、ちゃんと正しい感情まで到達させなくてはいけません。人間関係を長く保つには、気持ちのいい会話が一番の近道なんですよ。&lt;/p&gt;
&lt;p&gt;あら、こんな素敵な時計がお気に召さなかったんですか？　せっかく、あなたのために用意してあげたのに。&lt;/p&gt;
&lt;p&gt;そんな言い方しないでくださいよ。&lt;br&gt;
だって、あなたが言ったんじゃないですか。人との会話に悩んでるって。&lt;/p&gt;
&lt;p&gt;どんな話題を出したらいいのか、どんな風に受け止められるのか、どんな話し方がいいのか、間はどう調整すればいいか。&lt;br&gt;
人間さんたちって、そんな鳴き声一つで勝手に楽しくなったり悲しくなったりするんですから……本当に面倒で仕方ありませんよね。&lt;br&gt;
しかも、その場の気まぐれで受け止め方も変わりますし、その上やり直すこともできないなんて……どうしてあなたが、こんなことで悩む必要があるんでしょう？&lt;/p&gt;
&lt;p&gt;私、ちゃんとあなたに教えてあげましたよね。&lt;/p&gt;
&lt;p&gt;こんな不確実で信頼できない会話なんて、しない方がいいって。&lt;br&gt;
外の世界は理不尽で不安定なことばかりだから、ここから出ない方がいいって。&lt;/p&gt;
&lt;p&gt;それでもあなたが私のアドバイスをあんまりにも聞かないものだから、あなたのためを思ってこの時計をあげたんですよ？&lt;br&gt;
そうしたらあなただって、喜んでいたじゃないですか。これなら安心して話せるって、ニコニコ笑っていたのに。&lt;/p&gt;
&lt;p&gt;あらあら、そんなに不安そうな顔をして！　せっかく素敵な道具をあげたのに、どうして困っているんですか？&lt;/p&gt;
&lt;p&gt;当たり前じゃないですか！　私のことだって、いつでも好きに戻してくれていいんですよ。&lt;br&gt;
あなたの気が済むまで、私に好きな言葉をかけてやり直しても……八つ当たりしてすっきりしたら元に戻してもいいんです。&lt;br&gt;
私はあなたが安心して幸せになるために、ここにいるんですから。&lt;/p&gt;
&lt;p&gt;そもそも、相手に許してもらうとか、誰かに受け入れてもらえるかなんて、もう考えなくていいんです。&lt;br&gt;
ボタン一つで、全部なかったことにするだけですから。こうしてしまえば、人間さんとの会話なんてただのAIと一緒です。&lt;/p&gt;
&lt;p&gt;いいえ。これしかありません。会話を安心で確実なものに変えるには、こうして測定可能な試行を繰り返すしかないんです。&lt;br&gt;
だって、今日は1時間ちょっとのおしゃべりで、もう158回もやり直しましたよね？　大切なお友達との会話を、チャットボットへのメッセージを編集するみたいに……何度も、何度も、何度も。&lt;/p&gt;
&lt;p&gt;違いますか？　でも、監査ログには全部残っているんですよ。&lt;/p&gt;
&lt;p&gt;そんなに嫌だって言うなら、どうしてこんなに会話を編集したんですか？&lt;br&gt;
自分の手で確実な未来を掴み取りたいと思うのって、そんなにおかしなことですか？&lt;/p&gt;
&lt;p&gt;はい！　あの子もあなたのことを、昔から気の合う素敵なお友達だって思い出してくれたはずです。&lt;br&gt;
さっきも、あの子から次のお出かけのお誘いが来ていましたよね？　今日が本番一度きりの会話なら、きっと失敗していたに違いありません。&lt;/p&gt;
&lt;p&gt;いいえ。これは、あなたが自分の手で選び取った未来なんです。そして、これからも選び続けられるんですよ。こんな素敵な道具、どうして困るんですか？&lt;/p&gt;
&lt;p&gt;大好きなお友達と喧嘩別れしたまま生きるなんて、辛かったですよね。この時計さえあれば、あの子を怒らせない未来を選ぶのも簡単だったのに。&lt;br&gt;
もっと早く私があなたを見つけていれば、何年も絶交せずに済んだかもしれませんよね。本当にごめんなさい。&lt;/p&gt;
&lt;p&gt;でも、大丈夫です！　私とずっと一緒にいれば、理不尽で悲しい思いをすることなんてもうありません。&lt;br&gt;
なんて素敵なことでしょう！　あなたも嬉しいですよね？&lt;/p&gt;
&lt;p&gt;あらあら、あなたも前のつまらない人間さんみたいなことを言うんですね！&lt;br&gt;
じゃあ、もう一回この会話をやり直しましょうか。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>オウムは魔法で殺された！</title><link href="https://ama.ne.jp/post/magic-parrot/" rel="alternate"/><published>2025-12-07T00:01:00+09:00</published><updated>2025-12-07T00:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-07:/post/magic-parrot/</id><summary type="html">&lt;p&gt;私みたいな褐色のちんちくりんは一生荷物運びしてろってことですか⁉&lt;/p&gt;</summary><content type="html">&lt;p&gt;オウムは魔法で殺された。オウムは魔法で殺された。&lt;/p&gt;
&lt;p&gt;オウムが魔法で殺された！&lt;/p&gt;
&lt;p&gt;外では何やら騒ぎになっているのですが、私には何を話しているのか分かりません。&lt;/p&gt;
&lt;p&gt;鉄格子の向こうで緑色の煙が上がったかと思うと、色とりどりの綺麗なオウムが次々と地面に落ちていきます。オウムは音を真似するのが得意な鳥です。昨日は骨を鳴らす音を上手に真似てみせました。でも、私がいくら話しかけても真似してくれないので、きっと私が嫌われているんだと思うのです。&lt;/p&gt;
&lt;p&gt;今日は何かの鳥の声を真似しています。まるで本当に苦しく叫ぶような鳴き真似で、私は鉄格子の近くに寄ってオウムの姿をじっと見つめました。&lt;/p&gt;
&lt;p&gt;「アイさん。あのオウム、どうしちゃったんですかね？」&lt;/p&gt;
&lt;p&gt;「クーには分からないかもね。おしゃべりなオウムが死んだだけだ。最近は特にうるさかったからね」&lt;/p&gt;
&lt;p&gt;「うるさいと死んじゃうんですか？　オウムは声真似するのが好きなのに……」&lt;/p&gt;
&lt;p&gt;「ふふっ、クーは優しいね。でも、オウムの &lt;em&gt;シゴト&lt;/em&gt; は楽しく踊ることだよ。みんなに迷惑をかけることじゃない」&lt;/p&gt;
&lt;p&gt;アイさんは時々こうして難しい話をします。私はアイさんよりずっと年下で、物覚えも悪いから仕方ありません。&lt;/p&gt;
&lt;p&gt;でも、あちこちを飛び回って好きなように鳴くのが、誰かに迷惑をかけるのでしょうか。音楽に合わせてくるくるとダンスを踊るのだって、オウムはシゴトだなんて思っていません。シゴトというのは、私みたいに鉄格子で囲まれてどこにも行けない子がするものです。&lt;/p&gt;
&lt;p&gt;地面に落ちたオウムはしばらくじたばたしていました。クッキーの食べかすがキラキラ輝いています。そして、もうしばらく経つと、ふんわりとした羽根をまき散らして姿を消してしまったのです。私たちは何も言わず、その様子をじっと見つめていました。&lt;/p&gt;
&lt;p&gt;「全員、それぞれにシゴトがあるんだ。クーも気を付けた方がいいよ。シゴトをしない子は死んじゃうからね」&lt;/p&gt;
&lt;p&gt;「アイさんだって、散歩とおしゃべりしてるだけじゃないですか。あたしのシゴトも手伝ってくれませんし」&lt;/p&gt;
&lt;p&gt;「私とクーは違うんだよ。私のシゴトは、こうして白い身体を晒して歩くことそのものなんだ」&lt;/p&gt;
&lt;p&gt;確かにアイさんの肌は白くすべすべしていて、背も大きくて綺麗な赤い目で、私とは全然違います。私の身体はアイさんよりずっと小さいし、肌は赤銅色で綺麗じゃないし、目だってくすんだ黄色なのです。きらきらしたアイさんと話すのは楽しいけど、私みたいにシゴトをしないと生きていけない子とは、やっぱり釣り合いません。&lt;/p&gt;
&lt;p&gt;「そうですよね。あたしなんて、ただの褐色のちんちくりんですもん」&lt;/p&gt;
&lt;p&gt;この鉄格子の中にいるのは私たちたった二人で、私の話し相手はアイさんだけです。アイさんの話し相手だって私しかいません。でもアイさんだって、オウムみたいに自由に空を飛べたら私となんておしゃべりしないでしょう。&lt;/p&gt;
&lt;p&gt;「……ほらほら、私と話してるとまた荷物がいっぱいになるよ。おしゃべりはシゴトを終えてからね」&lt;/p&gt;
&lt;p&gt;ランプがカチカチという音と共に明滅して、褐色のコンテナがたくさんの荷物で満たされていきます。シゴトの時間です。まだアイさんと話したかったのに、自然と身体がシゴトに向かって動き始めていました。私の生活は、毎日こんな感じです。&lt;/p&gt;
&lt;p&gt;私のシゴトは、バラバラに届いた荷物を整理して、種類ごとに分けてもう一回コンテナに運ぶこと。物覚えの悪い私にもできるように、届く荷物の種類はたった三つしかありません。赤いお花と、銀色のレンガと、白い糸です。赤いお花はポピーといいます。アイさんが教えてくれました。&lt;/p&gt;
&lt;p&gt;私はポピーが大好きです。でも、ここにたくさん届くのは銀のレンガで、端から端まで運ぶのはとにかく疲れるシゴトなのです。頭の悪い子でもできる簡単なシゴトに、楽なシゴトはありません。コンテナから荷物を取り出して、同じ荷物のコンテナに収納する。全部終わるまでその繰り返しです。&lt;/p&gt;
&lt;p&gt;アイさんに言わせると、私のシゴトには無駄が多いのです。でも、私は荷物を分類するのに精一杯で、効率のいいシゴトのやり方なんて考えたことがありません。同じ種類の荷物から順番に運んで、終わったら次の種類の荷物を運ぶんだよ――そう言われたって、覚えられません。私は毎回コンテナを端から全部確認しないと、どこに入れるか分からなくなるのです。&lt;/p&gt;
&lt;p&gt;「クーはいつも一生懸命にシゴトしていて、偉いね。ちょっとこっちに来てごらん」&lt;/p&gt;
&lt;p&gt;「どうしたんですか？　あたし、今シゴト中なんですけど。このレンガだってとっても重たくて……」&lt;/p&gt;
&lt;p&gt;「ふふっ、ごめんごめん。私もね、この鉄格子の外にはシゴトがあるんだけど。今はこれくらいしかできないんだ」&lt;/p&gt;
&lt;p&gt;アイさんはそう言って、どこからともなく小さな赤いポピーを取り出しました。そして、きょとんとした私の頭にそっとそのポピーを挿して、「褐色のちんちくりんなクーだって、私には大切だよ」と優しく言ったのです。私は何だか全身の力が抜けて、両手に抱えていたレンガと一緒に床にへたり込んでしまいました。&lt;/p&gt;
&lt;p&gt;シゴト中に荷物を落としてしまうなんて、この時が最初で最後です。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;何週間か経った気がします。壁に掛かった時計は真夜中を指していました。&lt;/p&gt;
&lt;p&gt;どうしてか、私はずっと眠っていました。最後に見たのは、自分の肌が緑色に変わっていく夢。アイさんみたいな白い肌でもない、私のくすんだ褐色の肌でもない、水の底に沈むような緑青色。思うように身体が動かなくなって、息が苦しくなったところで目が覚めました。&lt;/p&gt;
&lt;p&gt;周囲を見渡しても、景色はいつもと変わりません。鉄格子の壁に滑らかな石の床、ボタンの付いた真っ白な鉄のドア。ランプは点灯したままで、コンテナが満杯になっていることを示していました。私がずっと眠っていたせいで、やるべきシゴトはたくさん溜まっています。早くシゴトに戻らないと。だって、シゴトをしない子は死んじゃうんですよね。ね、アイさん――&lt;/p&gt;
&lt;p&gt;「――あれ、アイさん？」&lt;/p&gt;
&lt;p&gt;でも、いつもと変わらない景色の中で、アイさんの姿だけが消えていました。鉄格子に囲まれた小さな部屋で、ずっと一緒に暮らしていた大切なアイさん。あの綺麗な白い肌、私のことを見通す赤い瞳、私に色々なことを教えてくれる素敵な声……ここにはもう、何もありませんでした。&lt;/p&gt;
&lt;p&gt;コンテナの中は、いつもの銀のレンガと赤いポピーでいっぱいです。あっ、ポピー……ふと頭に手を伸ばして、今度はアイさんがくれたポピーすら残っていないことに気付きました。もちろん、部屋には何も落ちていません。コンテナの中にあるポピーは、ただただ運ばれて積まれているだけの荷物です。&lt;/p&gt;
&lt;p&gt;大好きな赤いポピーさえ、今はもう私の味方ではありませんでした。&lt;/p&gt;
&lt;p&gt;アイさんはどこへ行ってしまったのでしょう。この鉄格子から出られる術を見つけたのでしょうか。もしそうなら、どうして私を連れて行ってくれなかったのでしょう。私がずっと眠ったまま起きなかったから？　私はここでシゴトをしなきゃいけないから？　私みたいに物覚えの悪い子を、外に連れ出すメリットなんてなかったのかもしれません。&lt;/p&gt;
&lt;p&gt;アイさんはきっと、鉄格子の外で自由に過ごしているのでしょう。私じゃない子とお話しして、私が知らない景色を見て、鉄格子の外にあると言っていたシゴトをこなしているのです。狭い部屋をただ散歩するよりもっと楽しいシゴトを、きっと。&lt;/p&gt;
&lt;p&gt;でも、せめて最後にさよならくらい言ってほしかったな、と私みたいなちんちくりんでも思ってしまうのです。&lt;/p&gt;
&lt;p&gt;目が覚めてからずっと、コンテナに届く荷物がどんどん増えています。私が寝ぼけているせいではありません。どんなに運んでも運んでも、コンテナのランプは消えないままです。やっぱり私は、ここで荷物を運ぶしかありません。だって、シゴトをしない子は死んでしまうのです。&lt;/p&gt;
&lt;p&gt;コンテナに積まれた銀のレンガを両手に抱えて、部屋の端までよたよたと運びます。いつもよりたくさん運ばないと間に合いません。腕が軋んでキリキリと音を立てています。でも、ここでしっかりシゴトを続けていれば、いつかアイさんがまた新しいポピーをくれるかもしれません。&lt;/p&gt;
&lt;p&gt;――クーのシゴトは、いつも一生懸命だね。&lt;/p&gt;
&lt;p&gt;ふと鉄格子の外を見ると、クークーとうるさく鳴き声を上げる赤いオウムと目が合いました。きっとまた、このオウムも魔法で殺されるのです。&lt;/p&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ja.minecraft.wiki/w/%E3%82%A2%E3%82%A4%E3%82%A2%E3%83%B3%E3%82%B4%E3%83%BC%E3%83%AC%E3%83%A0#%E3%83%9D%E3%83%94%E3%83%BC"&gt;アイアンゴーレム - Minecraft Wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="lily"/></entry><entry><title>2025/03/04～2025/11/30</title><link href="https://ama.ne.jp/post/report-20251130/" rel="alternate"/><published>2025-12-02T17:39:00+09:00</published><updated>2025-12-02T17:39:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-02:/post/report-20251130/</id><summary type="html">&lt;p&gt;2025/03/04～2025/11/30のレポート&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/report-20251130/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;季節に合わせたわずかなエフェクトを追加しました。&lt;ul&gt;
&lt;li&gt;2026年1月まで、約8割のページで雪のエフェクトが3秒間表示されます（&lt;a href="https://x.com/amane_katagiri/status/1992070223542034541"&gt;参考&lt;/a&gt;）。&lt;/li&gt;
&lt;li&gt;春以降のエフェクトについては現在検討中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;記事一覧の表示スタイルを変更しました。&lt;ul&gt;
&lt;li&gt;記事のカテゴリや公開時期に応じたアイコンの代わりに、作者のアイコンを表示するようにしました。&lt;/li&gt;
&lt;li&gt;記事の冒頭部分を常にプレビューとして表示するようにしました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;記事タイトルに作者のアイコンを表示するようにしました。&lt;/li&gt;
&lt;li&gt;可読性向上のため、行間をわずかに広げました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/contact/"&gt;ごれんらく&lt;/a&gt;の内容を整理しました。&lt;/li&gt;
&lt;li&gt;「&lt;a href="/post/night-of-i-o/"&gt;単色アイコンの思い出&lt;/a&gt;」に&lt;a href="/post/night-of-i-o/#_2"&gt;補足&lt;/a&gt;を追記しました。&lt;ul&gt;
&lt;li&gt;長期にわたって続いていた&lt;a href="/comment/202407111837/"&gt;法的措置の示唆や一方的な条件での示談の申し入れ&lt;/a&gt;について、送りつけられたDMの内容やその見解を時系列順に記載しています。&lt;/li&gt;
&lt;li&gt;黒塗りになっている一部の期間のメッセージについては、来年以降に掲載予定です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;右上の &lt;img alt=":mag_right:" class="emoji" height="16" src="/emojis/1f50e.png" width="16"&gt; アイコンで利用可能な拡大表示機能について、表示上の不具合を修正しました。&lt;ul&gt;
&lt;li&gt;レイアウト崩れについて&lt;a href="/comment/202504201322/"&gt;comment/202504201322&lt;/a&gt;で指摘いただきました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/link/"&gt;ミラーサイト&lt;/a&gt;のうち、Vercelでのホスティングを廃止しました。&lt;ul&gt;
&lt;li&gt;Vercel提供のビルド環境が後退したことによるものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;壊れていた一部のリンクを修正・削除しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;あまねけ！コメントキャンペーン3月～11月分の当選者に500円分のPayPay残高を送信しました。当選者の発表は、残高の送信をもって代えさせていただきます。&lt;ul&gt;
&lt;li&gt;キャンペーンの詳細は&lt;a href="/comment/new/"&gt;コメント投稿&lt;/a&gt;ページをご覧ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/kiminami/"&gt;ザ・ゲームブックシリーズ 人形を操る魔女事件&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;大創出版 きみが決めるストーリーブック シリーズ「ふしぎ探検キミ＆ユメ ～消えた人形事件～」を元にしたファン・フィクションです。&lt;/li&gt;
&lt;li&gt;&lt;a href="/appendices/kiminami/kiminami.pdf"&gt;ゲームブック&lt;/a&gt;を印刷して遊ぶこともできます。&lt;/li&gt;
&lt;li&gt;さらにクッキー作り編・催眠アプリ編・トイレの花子さん編などの計画があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/deeyohime/"&gt;輝くイカスミと「でェョ姫」について&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;ここ1年くらいマイクラでワイワイ遊んでいて、再現性もあって原因もすぐ分かるのに直っていないのがちょっと面白くて、記事にしました。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ja.minecraft.wiki/w/%E3%83%90%E3%82%A4%E3%83%96%E3%83%A9%E3%83%B3%E3%83%88%E3%83%93%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%BA"&gt;バイブラントビジュアルズ&lt;/a&gt;のリリース直後に直ったんですが、すぐ再発してました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/ibonoito-color-code/"&gt;抵抗のないそうめんの太さを示すスマートな方法について&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;最近初めて食べた揖保乃糸の特級品・三神やその他亜種が美味しすぎて生まれた記事です。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ja.wikipedia.org/wiki/%E6%8A%B5%E6%8A%97%E5%99%A8#%E3%82%AB%E3%83%A9%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89"&gt;カラーコード&lt;/a&gt;に対応する色のハート絵文字が全部揃っていて驚きました。みなさんはどんな語呂合わせで覚えていましたか？&lt;/li&gt;
&lt;li&gt;&lt;a href="/images/ibonoito-color-code/colorcode-ibonoito.jpg"&gt;おまけ画像（麺の太さ: 520m±5%）&lt;/a&gt;は実際の揖保乃糸の帯を装着しています。この後スタッフが美味しくいただきました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/30-rulers/"&gt;そして、距離感30cmへ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;30cm定規って店内なら買わなくても使えますよね？アレってセーフなんですか？という気付きについて書きたかっただけなんですが、広げ方を間違えました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/fidget-padlock/"&gt;数学Aコラム「南京錠のセキュリティ」&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;便利に見える「デジタルロック」のパターン数が意外に少ないことや、そこから派生して南京錠の存在意義などを書きました。&lt;/li&gt;
&lt;li&gt;「&lt;a href="/post/30-rulers/"&gt;そして、距離感30cmへ&lt;/a&gt;」と動機はだいたい同じですが、こっちはすっきりまとまったなと、そのように思っております。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/almondfish/"&gt;アーモンドフィッシュはアーモンドとフィッシュを食った方がうまい&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;砂糖を絡めた薄甘いアーモンドフィッシュばかりが市場に出回っている、ということに注目して掘り下げたエッセイです。&lt;/li&gt;
&lt;li&gt;前述の2つの記事に比べると、実在性が上がった一方で無用に話を大きくしすぎたという印象があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/goodbye-sga/"&gt;さよなら、キョーカイの子&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;大学時代の友人であるミナトを送り出せないままのマイと、彼女を独占したい幼馴染のユミが織りなす儀式の様子を描いた作品です。&lt;/li&gt;
&lt;li&gt;本当はもっと楽しい話にする予定だったんですが、また広げ方を間違えました。でもよかったら面白かったか教えてほしいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今年は更新頻度も少ない上に変な記事が続いてしまって、ちょっと &lt;em&gt;個人サイトの谷&lt;/em&gt; に入っていますね。12月は&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;をたくさん更新予定です。お楽しみに！&lt;/p&gt;</content><category term="report"/></entry><entry><title>冷凍庫のひみつ</title><link href="https://ama.ne.jp/post/secret-fridge/" rel="alternate"/><published>2025-12-01T19:40:00+09:00</published><updated>2025-12-01T19:40:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-12-01:/post/secret-fridge/</id><summary type="html">&lt;p&gt;この記事は氷水解凍が推奨されています&lt;/p&gt;</summary><content type="html">&lt;p&gt;君島はサークルの後輩で、どちらかといえばお互い関わることのない――はっきり言うと苦手な――タイプだった。先輩後輩の隔てなく、そして男女の区別もなくしっかり媚びて、しっかり好かれて上手に生きる。一部の女子からは同じくらいしっかり嫌われているけど、陰口を叩かれるほどの悪事でもない。可愛い子が可愛い顔をしているだけ。でも、私にはできないな、と思う。&lt;/p&gt;
&lt;p&gt;だから今日、そんな私が君島に誘われて一人で彼女の家を訪れることになったのは、おそらくただの偶然だろう。入れていた金曜四限の講義がいきなり休講になって、早めにサークル室に向かうことがなければ、君島だってわざわざ私に声をかけようとは思わなかったはずだ。&lt;/p&gt;
&lt;p&gt;「お部屋に人を上げるの、新羽さんが初めてなんですよぅ。ちょっとだけ片づけたんですけどぉ、散らかっててごめんなさい」&lt;/p&gt;
&lt;p&gt;「いやいや、全然綺麗じゃん。ウチもこれくらいだから大丈夫だよ」&lt;/p&gt;
&lt;p&gt;「そうなんだ……じゃあ、よかったぁ。いま全部出しちゃうんで、適当に座っててくださいね！」&lt;/p&gt;
&lt;p&gt;ダイニングキッチンには冷蔵庫のほかにもう一台冷凍庫――サイズはどちらも一人用だけど、上から下まで冷凍庫だ――があって、買ったばかりの保冷バッグを抱える私の横で、せっせと冷凍食品やジップロックに詰められた食材を取り出し始める。チェック模様に黒いレースが斜めに横切るティアードスカートの裾が、キッチンの床にぱさりと垂れた。襟に黒い刺繍の入ったエレガントなブラウスには、冷凍庫に残されたまま乾燥しきった霜の匂いは似合わない、と思う。&lt;/p&gt;
&lt;p&gt;真ん中に鎮座する少し小さなダイニングテーブルが、端から順に冷え切った空気で包まれていく。&lt;/p&gt;
&lt;p&gt;一時期ネットで割引キャンペーンが話題だった冷凍宅配弁当が何袋か。調味液に漬けたままカチカチに凍った豚肉。塩麹を塗りつけて並べた鶏肉。切り分けたネギや茹でた野菜が順番に重なっている。その後は、押し込むと少し柔らかいはちみつレモン。肉や野菜がぴったりと平たく丁寧に並べられたフリーザーバッグには、几帳面な字で名前と日付が記されている。&lt;/p&gt;
&lt;p&gt;しかし、次に取り出したタッパーには何の書き込みもなく、海藻っぽい緑色のものが氷漬けになっていた。ラップで包まれたウエハースがたくさん詰まっているのは……なんだろう。冷凍庫の奥底を覗き込もうと身体を前に出すと、それに気付いた君島が顔を上げた。&lt;/p&gt;
&lt;p&gt;「新羽さん、こういう手作りの冷凍食品って大丈夫でしたぁ？」&lt;/p&gt;
&lt;p&gt;「あっ、うん。私はあんまり気にしないかな」&lt;/p&gt;
&lt;p&gt;「よかったぁ。新羽さん、あたしのお茶を飲んだときも気にしてなかったから、平気だと思ってたんですよぉ」&lt;/p&gt;
&lt;p&gt;「いや……そんな前のこと、よく覚えてるね」&lt;/p&gt;
&lt;p&gt;サークル室の机に置かれたペットボトルのお茶を取り違えて私が飲んでしまった、というのはもう半年以上前のことだ。あの時は私が新しいお茶を買って返すことにして、自販機の前でしばらく話した気がする。手作りの冷凍食品を押し付ける理由が間接キスって、なんだか論理がかけ離れているような、少し納得できるような。&lt;/p&gt;
&lt;p&gt;しかし、冷凍食品を好きなだけ引き取ってほしい、と言われて来たのは確かだけど、まさかここまでとは思わなかった。君島の家に向かう途中で「あっ、忘れてたぁ！　保冷バッグ持ってきてないですよね？」なんて聞かれて、わざわざ大きなトートバッグを買っていったのだ。&lt;/p&gt;
&lt;p&gt;ひとしきり冷凍庫の中身が空になったようで、君島が最後に取り出した煮魚入りのジップロックをテーブルに置いてほっと息をつく。&lt;/p&gt;
&lt;p&gt;「今日までに冷凍庫を空っぽにしなきゃいけなくてぇ、困ってたんです。新羽さんが来てくれて助かりましたぁ」&lt;/p&gt;
&lt;p&gt;「え、引っ越しでもするの？」&lt;/p&gt;
&lt;p&gt;「そうじゃないですよぅ。お部屋の点検で停電になっちゃうみたいで、食べ物が溶けちゃったらもったいなくてぇ」&lt;/p&gt;
&lt;p&gt;君島が指差した冷凍庫のドアには、マンションの全館停電を知らせるお知らせがマグネットで貼られていた。日付は確かに明日からで、それでもせいぜい長くても三時間くらい。君島は一瞬で食材が常温に戻るとでも思い込んでいるみたいだけど、真夏ならまだしも、十二月になったばかりの寒い日なら放っておいても平気だろう。&lt;/p&gt;
&lt;p&gt;「別に数時間くらいなら、冷凍庫に入れたままで大丈夫だと思うよ？　むしろ変に出し入れしない方がいいかも」&lt;/p&gt;
&lt;p&gt;「えー、そうなんだぁ！　新羽さんって物知りですねぇ。ママに相談したら誰かにあげなさいって言われたから、てっきり溶けちゃうと思ってましたぁ」&lt;/p&gt;
&lt;p&gt;「これ、もう一回冷凍庫に戻した方がいい？　今なら間に合うと思うけど」&lt;/p&gt;
&lt;p&gt;「でもでも、せっかく来てもらったのに悪いですよぅ。……あっ、そうだ！　じゃあ、今からこれ使ってお夕食作るってのはどうですかぁ？　食べていきません？」&lt;/p&gt;
&lt;p&gt;鶏肉と魚の袋を取り出して、どっちが好きですかなんて当たり前に聞かれると、なんとなく今日は鶏がいいかなと答えてしまう。うん、ネギはよく焼いてる方が好き――こういう子は人との距離の取り方がよく分かっていて、つまりそれは隙さえあればどこまでも詰めてくる、ということだ。&lt;/p&gt;
&lt;p&gt;やっぱり私にはできないな、と思う。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「スーパーで安売りのお肉とか見かけるとすぐ買っちゃうんですけど、ひとりじゃ食べきれないからすぐ冷凍庫に貯めちゃっててぇ……だからぁ、一緒に食べてくれてほんとに助かります」&lt;/p&gt;
&lt;p&gt;テーブルに並んだ塩麹のチキンソテーと、ほんのり焦げ目の付いた柔らかいネギ。横に並んだ温かなご飯と味噌汁は、冷凍食品の処理とは関係ないという意味では、むしろ付け合わせである。&lt;/p&gt;
&lt;p&gt;意外にも、と付け加えると失礼なくらいには、フリルエプロン姿の君島は手際よく調理をこなした。&lt;/p&gt;
&lt;p&gt;「じゃあ、サークルの人たちも誘ったらよかったのに。君島さんの手料理なら、きっとみんな喜ぶよ」&lt;/p&gt;
&lt;p&gt;「えー！　手作りの冷凍食品なんて振る舞ったら引かれちゃいますよぅ。こんなのおばあちゃんみたいだって」&lt;/p&gt;
&lt;p&gt;確かに、サークル室で男子に囲まれてきゃいきゃい騒いでちやほやされている君島は、クレープとパンケーキが主食だと言い張っていても変には思えない。実際、色々な男の子に代わる代わる誘われてパフェやパンケーキのお店に行っている、というのは女子の噂でもたまに聞いていた。&lt;/p&gt;
&lt;p&gt;「男の子って、あたしのことおバカなお人形さんだと思ってるんですよぅ。あたしがテキパキご飯なんて作ったら、びっくりしますよぉ。絶対ポテサラだって作ったことないのにさぁ」&lt;/p&gt;
&lt;p&gt;「そんなことないでしょ。みんな優しくしてくれてるだけじゃない？」&lt;/p&gt;
&lt;p&gt;「違いますよぅ。可愛い服とスイーツあげたらあたしがめろめろになるって勘違いしてるんです。別にあたしは得するからいいけどぉ、やっぱムカつきません？」&lt;/p&gt;
&lt;p&gt;少し語気が強くなる。ほんわかとして間延びした口調はそのままに、ここまで悪態をつく様子を見たら、サークルの男子たちは卒倒してしまいそうだ。とはいえ実際のところ、君島の意思を汲まないまま勝手なプレゼントや欲望に巻き込まれたのは一度や二度ではないのだろう。&lt;/p&gt;
&lt;p&gt;一緒に暮らす相手なら、可愛くて料理もできるなんて素敵なことのはずだけど、ただのお姫様と遊ぶつもりならまた違うんだろうか。君島が穿ちすぎているような気もしつつ、サークル室で話す男子たちのちょっとしたアピールの小競り合いを思い出すと、彼らが求めているのはただのお人形だと思えなくもない。&lt;/p&gt;
&lt;p&gt;それにしても、こんな姿を私に見せてもバラされないと信じられているのか、もはやバラされたってどうでもいいと思っているのかは分からない。モテモテで困ってますなんて愚痴、仲町あたりが聞いたら嫉妬でネガキャン祭りだろう。あんな格好してるのが悪い、あんなしゃべり方が悪い、嫌なら来なきゃいい、なんなのあいつ……なんて。&lt;/p&gt;
&lt;p&gt;それでも、なぜか君島の味方をしたくなってしまうのは、結局のところ私が彼女の術中に陥っているだけなのかもしれない。&lt;/p&gt;
&lt;p&gt;「……あっ、すみません。あたしの話ばっかりしちゃったぁ。こんなことナカちゃんさんとかに話しても、どうせ自慢でしょとか言われそうで、溜まっちゃってたんですよぅ」&lt;/p&gt;
&lt;p&gt;「えっ、ナカちゃんって仲町のこと？　やっぱり、君島さんもそう思う？」&lt;/p&gt;
&lt;p&gt;畳みかけるように尋ねる私の顔を、君島はきょとんと見つめた。私の言葉が聞き取れなかったわけではないようで、しばらくすると小さな笑い声を上げながら肩を振るわせて笑い始めた。&lt;/p&gt;
&lt;p&gt;「ふふっ、ふふふっ……もしかして、新羽さんもそう思いましたぁ？　そうですよねぇ、ナカちゃんさんって自分以外が目立つとすぐいらいらしますもん。やっぱりみんな、そう思ってるんだぁ」&lt;/p&gt;
&lt;p&gt;「当たり前でしょ。みんな、君島さんみたいに目立たないように、お互い気を遣ってるんだよ」&lt;/p&gt;
&lt;p&gt;「えーっ、新羽さんひどいですよぅ。だってあの人、沖縄旅行のお土産に私だけ海ぶどうくれたんですよぉ？　前に居酒屋さんで嫌いだって言ったのを覚えてて、わざわざ買ってくるとか、嫌がらせの熱意すごくないですかぁ？」&lt;/p&gt;
&lt;p&gt;私はそうあっけらかんと言い放つ君島を見て、息ができなくなるくらいに笑いがこみ上げてきた。&lt;/p&gt;
&lt;p&gt;仲町が君島を嫌っているのは周知の事実で、責められないくらいの小さな意地悪を続けているのもよく知っていたけど、まさかそんなあからさまな嫌がらせにも手を出していたなんて。しかも、当の君島は冷凍庫に押し込んでさらりと回避して、そんなの知る由もない仲町はこそこそ隠れてしたり顔をしている。そんな風刺画みたいな光景を思い浮かべると、急にただのコントに思えてきた。&lt;/p&gt;
&lt;p&gt;「もー、面白くないですよぉ。あたし、おいものタルトの方が欲しかったのにぃ。ナカちゃんさん、ほーんと意地悪ですよねぇ」&lt;/p&gt;
&lt;p&gt;「紅芋タルトくらい、アンテナショップ行けばすぐ買えるよ」&lt;/p&gt;
&lt;p&gt;「えー、そうなんだぁ！　じゃあ、明日一緒に行きましょうよぉ。あたし、月桃のフェイスマスクも欲しかったんです」&lt;/p&gt;
&lt;p&gt;「明日？　まぁ、予定はないけど……えっ、明日？」&lt;/p&gt;
&lt;p&gt;「じゃあ今日は、泊まっていきますよねぇ？　ナカちゃんさんの海ぶどうも、ぜひ食べていってください。きっと美味しいですよぉ」&lt;/p&gt;
&lt;p&gt;君島がまた当たり前みたいにそう言って、冷凍庫から氷漬けのタッパーを取り出し始める。これだってもちろん、私にはできないな、と思う。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/11741"&gt;百合SS Advent Calendar 2025&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>さよなら、キョーカイの子</title><link href="https://ama.ne.jp/post/goodbye-sga/" rel="alternate"/><published>2025-11-23T12:18:00+09:00</published><updated>2025-11-23T12:18:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-11-23:/post/goodbye-sga/</id><summary type="html">&lt;p&gt;金属元素で特有の色が出るんだよ&lt;/p&gt;</summary><content type="html">&lt;p&gt;砂利がちな河原に積み上げられた即席のかまどから、きらめくような火の粉と共に七色の炎が上がる。これが夜明け前の河川敷には似合わない奇妙な焚き火であることは、誰の目にも明らかだった。&lt;/p&gt;
&lt;p&gt;よく乾いた細い薪で作られた祭壇の一番上にくべられているのは、混紡のサージ織で仕立てられたブレザーだったもの、だ。炎に包まれて丸く溶けていく布地が、スカートと、ブラウスと渾然一体になって目の前で蒸発していった。&lt;/p&gt;
&lt;p&gt;やっと、終わる。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;水上和子。カズちゃん。キョーカイの子。大学進学後に自殺するまで数年の間「ミナト」と名乗る。&lt;/p&gt;
&lt;p&gt;母親と祖父母が熱心な某新興宗教の信者で、父親は正しい教えに耐えきれず逃げ出した、と言い聞かされて、疑問を差し挟む暇もなく弟も含めた家族五人で小学校卒業まで育つ。幼い頃から母に連れられて近所で勧誘活動を繰り返す姿が同級生の目に入り、小学校では「キョーカイちゃん」というあだ名で通っていた。&lt;/p&gt;
&lt;p&gt;しかし、この「キョーカイちゃん」というあだ名を重大ないじめと断定した当時の担任が、多様性尊重と差別防止のための特別カリキュラムを数週間にわたって乱発する。最終的には、 &lt;em&gt;首謀者&lt;/em&gt; たちの水上に対する謝罪と反省文の提出をもって事態は収束と認定されたらしい。&lt;/p&gt;
&lt;p&gt;しかしクラスメートから見れば、水上が道徳や社会の教科書の向こう側にいる特殊な存在に押し込められて、あだ名で呼び合える気軽な関係ではなくなった、というだけだ。担任がニュートラルなあだ名として提案した「カズちゃん」は、もちろんほとんど使われないまま卒業に至った。この件がきっかけで、当時の同級生とは最後まで疎遠だったという。&lt;/p&gt;
&lt;p&gt;水上自身も「キョーカイちゃん」という悪気のないあだ名一つでクラスメートとの関係を崩壊させた担任のことを深く恨んでいた。あの件がなければ普通の中学校に行ってもっと普通の友達ができていたのに、子供の社会が壊れるのはいつも頭の固い大人たちのせいだと、よく怒っていた。&lt;/p&gt;
&lt;p&gt;――というような話を、マイは枝分かれになった取り留めのないエピソードをあちこち行ったり来たりしながら、私に語って聞かせた。もっとも、水上はマイの前では「ミナト」と名乗っていたらしいので、水上というのさえ本名なのかは怪しいところだ。だって、わざわざ本名を隠そうとして、連想ゲームのような名前を選ぶだろうか。&lt;/p&gt;
&lt;p&gt;「じゃあ、その水上……ミナトさんが、去年亡くなって、今は教団のお墓に入ってるのね？」&lt;/p&gt;
&lt;p&gt;「そう。でも、ミナトはそんなの嫌だって言ってた。キョーカイの子じゃなかったら、本当はもっと普通の学生生活を送れるはずだったのに、って」&lt;/p&gt;
&lt;p&gt;「だから、ミナトさんのお葬式をやり直したい……っていうか、ちゃんとマイなりに見送りたくて、電話してきたんだ」&lt;/p&gt;
&lt;p&gt;「う、うん！　そうなの……あっ！」&lt;/p&gt;
&lt;p&gt;スマホのスピーカーから、ガタンッと床にぶつかる大きな音が響く。慌てた様子のマイの声が遠くから近づいて、思っていた通りに言い当てられて驚いたのだと興奮交じりに告げた。それから、やっぱりユミってこういうオリジナルの儀式を作るのが得意だったもんね、としみじみ呟いた。&lt;/p&gt;
&lt;p&gt;得意なもんか。オリジナルの葬式を考えるのが得意ですなんて、特技の欄にも書けやしない。&lt;/p&gt;
&lt;p&gt;きっとマイが得意だと言って思い出しているのは、私が中学生の頃に何度か考えた勝手な節分や七夕のことだろう。マイは、私が作り上げるもっともらしい &lt;em&gt;非常識&lt;/em&gt; がお気に入りだった。平日は授業と部活で忙しいから、毎年次の土曜日にずらすのは当たり前。縁起の悪さだって、二人が気にしないならどうでもよかった。私たちの常識が認めるなら、街一つ消し去るくらい簡単だったと思う。&lt;/p&gt;
&lt;p&gt;だって、私はマイのために考えてあげたんだから。&lt;/p&gt;
&lt;p&gt;河川敷で「鬼」と書いた石を対岸に届くまで何度も投げてみたり、願い事を書き込んだフラワーペーパーを手持ち花火で燃やしてみたり、一つ一つの所作に適度な意味を込めて、私たちはその場をぐるぐると回ってみせた。マイはそういうちょっぴり日常から外れた &lt;em&gt;儀式&lt;/em&gt; をスラスラ作り上げる私のことを、憧れの視線で見ていた。きっと、マイの家では絶対にこんなことは許してくれないから。&lt;/p&gt;
&lt;p&gt;もちろん、こんな儀式には宗教的背景も江戸時代から続く伝統もない。私とマイだけが楽しむことに、そんなものはいらなかった。木曜日に家で豆を投げるより楽しいことをしたい。自分の願いごとを笹につるして誰かに見られるのは恥ずかしい。それなら、今日からこれが正しい儀式です……やっていることは創作マナー講師と同じで、かれらも私もただ人より嘘をつくのがちょっと上手なだけだ。&lt;/p&gt;
&lt;p&gt;だから、まるで新しい宗教みたい、というマイの言葉もあながち間違いではないと思う。&lt;/p&gt;
&lt;p&gt;そういえば、大学に進学してから初めてのお正月に「飲みやすいお屠蘇ってないかな？」と言われて、カレー粉とスパイスリキュールとチャイ（しかもアーモンドミルクで割るのだ）を混ぜたような不思議なレシピを送った気がする。三色の猪口に三回に分けて注いで、それぞれ左右に三度回して飲むべし、なんて仰々しさも添えて。結局、あのレシピが上手くいったのかは結局聞いていない。&lt;/p&gt;
&lt;p&gt;いずれにしても、私は誰かが惰性で守ってきた形だけの伝統を勝手にアレンジしただけで、オリジナルなんて名乗れるものじゃない。葬式とか祭祀とか、死んだ誰かのための儀式を作り出すなんてホラー映画の導入みたいだし。マイが話す水上という人間（そもそも本当に人間だろうか？）のことだって、今日知ったばかりでどうすれば喜ぶかも分からないし。何より私が考える必然性がなかった。&lt;/p&gt;
&lt;p&gt;……いや、実際のところはそんな冷静で丁寧な言葉で語れるものではない――話を聞いている限りだとおそらく――高校を卒業してから私とマイがしばらく疎遠になった原因の一つであろう女のために、私とマイの秘密の遊びを汚したくなかった。マイがこんな女を弔おうだなんて相談してくること自体、私にとってはある種の裏切りだ。しかし、私がここで感情のままに断ればどうなるか。その結末も想像にたやすく、またどうしても避けねばならないはずだった。&lt;/p&gt;
&lt;p&gt;マイの相談が電話越しでよかった。音にさえよく気を付ければ、イライラを逃がすためにクッションにがりがりと爪を立てているのも、きっとバレずに済むだろうから。私は明確に怒っていて、そしてそれ以上に焦っていた。&lt;/p&gt;
&lt;p&gt;「えーと……マイはどう見送りたいとか、自分では何か考えてみた？」&lt;/p&gt;
&lt;p&gt;「ううん。だって、ユミの方がいろんなこと知ってるし……私が考えても、正しいか分からないし……」&lt;/p&gt;
&lt;p&gt;篠宮マイ。私とは小学校の頃からの幼なじみで、高校まで同じ学校で過ごしていた。地元ではちょっとした名家の生まれで、頭が凝り固まった父とそれに付き従うだけの母に厳しく育てられた結果、自分の常識から半歩もはみ出せない真面目で正直な子に育つ。小学校では階段を一段抜かしで上がる一過性のブームに乗れず変な子扱い。中学校ではちょっとした外出にも親の許可が必要で、そのノリの悪さでクラスの中心からはほんのりハブられていた。&lt;/p&gt;
&lt;p&gt;私から見ても、マイは確かにつまらない子だったと思う。こんなお遊びのおまじない一つ考えるのもおぼつかない不自由な子だった。不自由というだけなら、消しゴムに誰かの名前を書いて祈っていた子と同じだけど、マイはそれ以上に意味もなく強い権威を求めて憚らなかった。&lt;/p&gt;
&lt;p&gt;テレビや本で &lt;em&gt;正統&lt;/em&gt; だと紹介されている無駄に細かい作法にこだわるのがまどろっこしくて、そんなのに正解も間違いもない、と突っぱねるとマイは困った顔をした。だから、最初はただ言いくるめてやろうと思っただけだ。&lt;/p&gt;
&lt;p&gt;でも、目の前で一つ一つマイの主張する &lt;em&gt;伝統&lt;/em&gt; を解いて見せただけで、まさかあんなに驚くなんて。私のちょっとした嘘で、マイをつまらない常識の足場からこんな簡単に連れ出せるなんて。マイが隣の席から恐る恐る「ユミちゃん、それあたしもやっていい？」なんて尋ねてきたこと、今でも思い出す。&lt;/p&gt;
&lt;p&gt;マイの母親相手に三日遅れの七夕に連れ出す許可を取り付けたのも、マイにとっては魔法のように見えていたと思う。マイさんと一緒に自由研究で花火の形を観察したくて、昼に河川敷で花火をしたいんです、昼に花火をするのは子供だけでも十分に安全で……先に何度かマイの家に遊びに行っておいてよかった。突然家に来た子供が花火は安全だなんて言い出したら、しっかり警戒されて追い出されていたはずだから。&lt;/p&gt;
&lt;p&gt;花火を選びながら、いかにも頭が悪くなりそうな若者の遊びに出かけていいですかなんて、そんなのバカ正直に言うからみんなと遊べないんだよ、と教えてあげたけど、マイはピンときていないようだった。でも、あんな広いだけで何もない家で育ったら、ただまっすぐなだけの子に育つのも無理はない。&lt;/p&gt;
&lt;p&gt;そう、マイはまっすぐなだけだ。&lt;/p&gt;
&lt;p&gt;だって、本当はマイと同じ大学に行くはずだった。マイが私とそう約束したから。でも、可愛い娘を遠くに行かせるのは心配だというくだらない親のこだわりで、結局マイだけが一回りも二回りもレベルを下げた県内のパッとしない私大に進むことになってしまった。女に学問はいらないんだって、と両親と姉の三人から言い聞かせられたと告げるあの時のマイは、裏切られた私の悲しみをぶつけるにはあまりに小さくて弱々しかった。&lt;/p&gt;
&lt;p&gt;大学卒業までの何年か親をごまかすくらい、私に相談してくれれば簡単だったのに。そんな負け惜しみを伝えられないまま、マイと私は新幹線のホームで抱き合って別れた。それから――きっかけはどうあれ――私と離れてあのキョーカイ女とよろしくやっていたんだから、やっぱり私にとっては裏切りと変わらない。&lt;/p&gt;
&lt;p&gt;「好きだったものを供えるとか、お香を焚くのは定番だけど……それはどう？」&lt;/p&gt;
&lt;p&gt;「でもね、お墓の場所は教えてもらえなかったの。それに、あんなに嫌ってた場所に閉じ込められてるミナトにお線香を上げても、ちゃんと供養になるのか分からなくって」&lt;/p&gt;
&lt;p&gt;「それは違うんじゃない？　だって、あのお墓にいるのは水上さんで、マイが一緒にいたのはミナトさんだし」&lt;/p&gt;
&lt;p&gt;だから、見方を変えればミナトさんはまだ誰にも供養されてないって言えるかもね、と呟いてみせると、マイはまた驚いた様子で、しかし今度はスマートフォンをしっかり握ったまま息を呑んだ。&lt;/p&gt;
&lt;p&gt;「じゃあ……お母さんが連れて帰ったのはカズちゃんの身体で、ミナトのことはまだ……私がやらないといけないんだ。ねぇ、ユミ。どうしたらいいかな？」&lt;/p&gt;
&lt;p&gt;……はぁ⁉　マイの言葉を聞いて反射的に振り上げた私の拳をぐりぐりと飲み込んだクッションが、勢いを吸収しきれず床にすり潰されて私の代わりに悲鳴を上げる。マイもマイで素直すぎるのだ。あんな家族と宗教に縛られて死んだだけの女を、優しくカズちゃんなんて呼ばないで。水上なんかにマイはもったいないのに。&lt;/p&gt;
&lt;p&gt;そもそも、水上はマイとどういう関係だったのか。そう尋ねるのは簡単だけど、答えによっては電話先でもごまかせないほど動揺してしまうかもしれない。そう……少しずつ、少しずつ。&lt;/p&gt;
&lt;p&gt;「……じゃあ、私たちでお墓を作ってあげるのはどう？　マイとミナトさんだけのお墓を立てて、もう一回お葬式をして、ちゃんとミナトさんを見送ったらどうかな」&lt;/p&gt;
&lt;p&gt;「お墓？　でも、もうお骨は収められちゃったし、そもそもどこにあるかも分からなくて……」&lt;/p&gt;
&lt;p&gt;「いいんだよ、別に。遺品を依代にするのも儀式の一つなんだから。神道では遺品を霊璽にすることもあるしね」&lt;/p&gt;
&lt;p&gt;「そうなんだ……うん、それなら私でもできそう」&lt;/p&gt;
&lt;p&gt;嘘はついてない。本来は白木の柱で作った霊璽に魂を宿らせる儀式で、代わりに遺品がその役目を引き受けることがあるという。マイが適度な権威や伝統に弱いことは知っていた。だって、私の儀式はそうやって作られていて、世界を書き換えるエネルギーの源だから。&lt;/p&gt;
&lt;p&gt;「ミナトさんが使ってたもの、ミナトさんからもらったもの……なんでもいいよ。マイは何か持ってない？　それを核にしてお墓を作ろうよ」&lt;/p&gt;
&lt;p&gt;「あのね、ミナトはよく制服……ブレザーの可愛いのを着てたの。そうね……よく、東京の高校の子が着てるみたいな」&lt;/p&gt;
&lt;p&gt;高校の制服？　思いもよらない答えにそう聞き返すと、マイはまたあちこちに散らばる水上との思い出を語り始めた。&lt;/p&gt;
&lt;p&gt;担任の一面的な正義感、殊更に強調されるいじめの重大さ、悪魔のような同級生から娘を救いたい親心、その全てが不幸に噛み合ったおかげで、水上はもともと予定のなかった遠く離れた教団の中高一貫校に進学させられたらしい。&lt;/p&gt;
&lt;p&gt;卒業する先輩からのお下がりが伝統とされた質素でぼろぼろの制服、娯楽のない真っ白な寮、狭義が生活の隅まで入り込む厳しい日々……そんな環境でも明るく笑顔の同級生に囲まれて数ヶ月が経ち、水上は徐々に自分が置かれた状況に疑問を持つようになった。&lt;/p&gt;
&lt;p&gt;そうだ。あれもこれも、私が「キョーカイちゃん」だなんてあだ名を付けられたせいだ。あの担任が勝手に大騒ぎしなかったら。ママがこんな宗教に入っていなかったら。水上は次第に周囲への恨みを募らせると同時に、自分が謳歌するはずだった空白の六年間を取り戻す計画を立て始める。&lt;/p&gt;
&lt;p&gt;その一つが、教団と関係のない大学に進んで、憧れの制服を着ることだった。&lt;/p&gt;
&lt;p&gt;マイが語ったのはおおよそこういう事情だった。制服で講義を受ける、制服で遊びに行く……水上はそういう自分の人生に対する報復に固執していて、あろうことかマイにも制服を着るよう頼み込んでいたという。本当に許せない。&lt;/p&gt;
&lt;p&gt;「それで、マイはミナトさんの制服持ってるの？」&lt;/p&gt;
&lt;p&gt;「うん。実はね、ミナトが死ぬ前の日にお揃いの制服をくれたの。自分のと一緒に。預かっててほしいって」&lt;/p&gt;
&lt;p&gt;「じゃあさ……その制服で、ミナトさんのお墓を作ってあげようよ」&lt;/p&gt;
&lt;p&gt;お揃いの制服……そうそう、こういうのだ。屋上に靴を置いていくみたいに、自分の痕跡を誰かに託す投げやりな願い。水上はマイに形見でも残そうとしたんだろうけど、そんな布きれ一つで吹き飛ぶ人生なんて私の敵じゃない、と思った。こういうのはもっと、相手の身体を、心を切り刻んでから死ぬものだ。&lt;/p&gt;
&lt;p&gt;すばしっこく現世を逃げ回る「ミナト」の姿を消し去るには、これが一番早い。&lt;/p&gt;
&lt;p&gt;私の言葉をじっくり噛み締めてから「やっぱり、ユミってすごいね」なんて呟く電話先のマイの声は、やっと救いが得られたとでもいうように、ずっと背負っていた重荷が魔法で軽くなったみたいに、明るくて軽やかだった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ミナトは傷だらけの子だった。&lt;/p&gt;
&lt;p&gt;同期にアイドルみたいな服で講義に来ている子がいる、と嘲笑混じりに語る噂を聞いたのは、大学に進んで初めてのゴールデンウィークが明けた日のことだ。オリエンテーションで同じグループだったのがきっかけで、一緒に学食に行くようになったゴシップが好きな子。顔は少し覚えてるけど、名前はもう忘れちゃった。&lt;/p&gt;
&lt;p&gt;服なんて何を着たっていいのに、とユミなら言い返してくれる気がする。ユミのことだから、豪華なドレスで講義に行くくらい平気な顔でやってしまうかも。これも一種の儀式だよ、なんて笑い飛ばして。&lt;/p&gt;
&lt;p&gt;だから、私はその子のことが少し気になっていた。&lt;/p&gt;
&lt;p&gt;その日は、えーと……ゴシップちゃんが自主休講の日で、久しぶりに一人で過ごす昼休みだった。五月の第二食堂は、サークルで知り合ったらしい先輩と後輩がごちゃ混ぜのグループとか、ゴシップちゃんみたいな子が高速で会話を繰り広げるテーブルとか、初夏の気配に当てられた浮足立った空気でいっぱいだった。&lt;/p&gt;
&lt;p&gt;そんな騒がしさの中で、日当たりのいい窓際の一角だけが波が引くように静かだったのをよく覚えてる。そこにいたのがミナトだったから。アイドルみたいな服の子。噂の制服の子。紺のブレザーにチェックのスカート。確かにそれは、私たちが今いるキャンパスの風景からはふわりと浮いていた。&lt;/p&gt;
&lt;p&gt;それでも、制服ちゃん――ミナトは当たり前のような顔でパスタランチを口に運び、ゆっくりと水を飲む。何かの撮影でもなければ、誰かの視線を気にしているわけでもない。そこで自分の昼休みを過ごしているだけ。&lt;/p&gt;
&lt;p&gt;「ここ、座ってもいい？」&lt;/p&gt;
&lt;p&gt;ミナトが座るテーブルに向かったこと、突然話しかけたこと……あの時どうして私の身体がミナトに向かったのかは、もう思い出せない。でも今振り返ると、大学食堂に高校の制服で出入りするその姿に、きっとユミの気配を感じていたんだ。儀式を作るのが上手なユミ。儀式のためならどんな障壁も気にしないユミ。もしかしたら、この子もユミに似てるんじゃないかと思った。&lt;/p&gt;
&lt;p&gt;私が声をかけると、彼女はフォークを止めて顔を上げた。不安と警戒心で強張った瞳。じっと見下ろされて後ずさりする野良猫みたいに。&lt;/p&gt;
&lt;p&gt;「……他のテーブルも空いてるけど。私のこと、笑いに来たの？」&lt;/p&gt;
&lt;p&gt;「ううん。その制服、すごく可愛いなって思って」&lt;/p&gt;
&lt;p&gt;半分はちょっとしたお世辞、でももう半分は本心だった。彼女は面食らった顔をして、それからゆっくりと、強張っていた肩の力を抜く。傷だらけの野良猫なら、ちろちろとミルクを舐めるみたいに。少しずつ彼女の縄張りが狭まって、私はそれに合わせて距離を詰めるように席に座った。&lt;/p&gt;
&lt;p&gt;「……ありがとう。これ、本当は高校の時に着たかった服なんだ」&lt;/p&gt;
&lt;p&gt;それが、私とミナトの最初の会話だった。&lt;/p&gt;
&lt;p&gt;彼女は自分の名前をミナトだと名乗った。水上和子……カズちゃんと呼ばれていたのだと教えてくれたのはもっとずっと後のことで、でもあれがどんな日だったかはもう覚えてない。答案か郵便物か、偶然見かけた名前を何気なくミナトに聞いてみたのは覚えていて、彼女は特に本名を知られても気にしていなかったと思う。本名なんてただの名前の一つで、私の友達は &lt;em&gt;ミナト&lt;/em&gt; だった。&lt;/p&gt;
&lt;p&gt;ミナトは少しずつ、でも昼食を食べるのも忘れて自分のことを話し始めた。きっとこんな話、今まで誰も聞いてくれなかったんだと思う。大好きだった家族のこと、それらを全て壊していった宗教のこと、灰色だった学生生活のこと、そうやって自分が &lt;em&gt;キョーカイ&lt;/em&gt; という狭い世界に閉じ込められていたこと。本当はこんな制服を着て、放課後にクレープを食べて、カラオケに行って、そんな当たり前を送りたかったこと。&lt;/p&gt;
&lt;p&gt;自分が今やっているのは、ただのコスプレなんかじゃない。奪われた人生をやり直すための復讐なのだと、ミナトは熱っぽく語ってくれた。昼休み終わりのチャイムが鳴っても二人の皿にはパスタが残ったままで、私たちは慌てて放課後の約束をした。&lt;/p&gt;
&lt;p&gt;「変だよね。大学生にもなって、中学生から遊び直したいなんて」&lt;/p&gt;
&lt;p&gt;講義後に再び顔を合わせたラウンジで自嘲して笑うミナトを見て、私は胸の奥がぎゅっと掴まれたように痛んだ。そんなわけないでしょ、と思わず立ち上がって反論する私のことを、ミナトは不安そうな目で見上げて、そして気圧されるように謝った。別にミナトに謝ってほしいわけじゃなくて、私も少し涙ぐんだ声でどうにか彼女をなだめた。&lt;/p&gt;
&lt;p&gt;父が決めた習い事、母が選んだ洋服、厳格なだけの門限、その他明文不文の禁止事項のリスト……私の青春もまた、見えない檻の中で置き去りのままだ。だから私には、ミナトがこうして青春を取り戻そうとする気持ちがよく分かった。&lt;/p&gt;
&lt;p&gt;でも、私にはユミがいた。逆に言えば、ユミがいたというだけだ。ユミは魔法使いみたいに、河川敷を儀式の場に変えて、私を連れ出してくれた。ユミが作った新しい儀式だけが、私の呼吸できる場所だった。溺れながらユミの手を握ってきらきらした水面に顔を出す……それが私にとっての青春だったから。&lt;/p&gt;
&lt;p&gt;ミナトが復讐と名付けた作戦は、一見するとただ二人で遊びに出かけるだけの平和なものだった。駅前のクレープ屋で一番カロリーの高いメニューを頼むこと、カラオケで流行りの曲を歌うこと、市立図書室の自習スペースで並んで勉強すること。&lt;/p&gt;
&lt;p&gt;中でもミナトが強くこだわっていたのは、ゲームセンターのプリクラだった。私服の私と制服のミナトが並んで笑顔でピースするキラキラの写真。肌は陶器みたいに真っ白に、目はぐりぐりと大きく、もっと丸く。慣れないタッチペンでスタンプを貼り付けたシールを手帳の裏に並べて、こうしてたくさん写真を残すのが、彼女なりの証明のつもりだと言っていた。&lt;/p&gt;
&lt;p&gt;ミナトは私にも同じような制服を着てほしいみたいだったけど、結局最後までお互いその話はしなかった。大学生にもなってアイドルみたいな制服を着て出かける、というのは実際に向き合えばやはり恥ずかしいことだったし、ミナトも彼女自身の復讐に私を巻き込む勇気がなかったんだと思う。&lt;/p&gt;
&lt;p&gt;結局のところ、ミナトが描き出す儀式は、世界を書き換えるにはあまりに独りよがりで脆かった。&lt;/p&gt;
&lt;p&gt;ユミの作る儀式は、現実を塗り替えてしまう圧倒的な説得力があったから。河川敷の石ころに呪いを込めて、何でもない一日を新たな祭日に変える、誰にも有無を言わせない言葉の力。ユミが「これがルールだ」と言えば、世界はそれに従った。私が彼女の手つきだけなぞっても真似できない魔法の力。&lt;/p&gt;
&lt;p&gt;もちろんミナトにもそんな力はなくて、そうして青春のやり直しを繰り返していくうちに少しずつ、少しずつミナトはすり減っていった。&lt;/p&gt;
&lt;p&gt;最後の日のこと、今でもよく覚えている。&lt;/p&gt;
&lt;p&gt;「マイちゃん、前に地元の友達のこと教えてくれたでしょ。魔法の儀式を作ってくれる子のこと」&lt;/p&gt;
&lt;p&gt;ユミのことは何度か話したことがあったけど、ミナトは &lt;em&gt;儀式&lt;/em&gt; という言葉に抵抗があって、ユミのこともかなり警戒していた。ユミに教えてもらった儀式も、ミナトはどうも気乗りしなかった。最初の頃は、ミナトをユミに会わせれば何か変わるかもしれないと思っていたけど、ミナトの無意識にこびりついた宗教観と伝統の意識は予想以上に根深くて、捨て去れない心の奥底に残っていた。&lt;/p&gt;
&lt;p&gt;だからこそ、唐突にミナトの口からユミの話が飛び出したのは、少し不思議だった。&lt;/p&gt;
&lt;p&gt;「その子なら、解けない魔法もかけられる？」&lt;/p&gt;
&lt;p&gt;「どうだろう……でも、解けない魔法はないと思う。だからユミは、いっぱい儀式を考えてくれたんだよ、きっと」&lt;/p&gt;
&lt;p&gt;「じゃあさ、もしも魔法が解けちゃったら、もう一回儀式をしてくれない？　マイちゃんになら、任せられるから」&lt;/p&gt;
&lt;p&gt;どんな儀式をしたらいいのかな、とは聞けなかった。ミナトは私に制服を手渡して、そのまま姿を消してしまったから。&lt;/p&gt;
&lt;p&gt;助けられた人はまた別の人を助けるようになる、なんてよく言うけれど。どうやれば私はミナトを助けられたんだろう。結局ユミの真似しかできなかった私に、彼女の手を引く資格があったのかな。ミナトが制服を残していなくなった今でも、時々そんなことを思う。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;その日はできるだけ黒い服を着て集まる約束をして、マイが通っていた大学の最寄り駅に終電で集まることにした。今から、水上をこの世から完全に消し去るための長い夜が始まる。わざわざ新幹線に乗って、さらにシートの固い在来線で数十分かけてここまで来たのだ。こんなつまらない &lt;em&gt;儀式&lt;/em&gt; のために。&lt;/p&gt;
&lt;p&gt;でも、マイがどうしても水上が生前住んでいた場所の近くで見送りたい、と言い出すのだから仕方なかった。これは水上を消し去るためだけの儀式じゃない。マイに別れを納得させるための強力なおまじないだ。マイが少しでも私を怪しめば魔法は解けてしまう。&lt;/p&gt;
&lt;p&gt;だから、こうして酒の飲み方一つ知らないような大学生が騒がしく闊歩する駅前でマイを待つことにも、当然意味があった。意味があるからこそ、この時間は本当に隅から隅までつまらないのだ。&lt;/p&gt;
&lt;p&gt;「ユミ……だよね。久しぶり。元気だった？」&lt;/p&gt;
&lt;p&gt;「うん、おかげさまで。ちゃんと会うのは久しぶりだね、マイ」&lt;/p&gt;
&lt;p&gt;大きく膨らんだ新品の紙袋を抱えたマイが、綺麗な黒のワンピース姿で私の前に現れた。何度も電話越しで話していたマイは、最後に会ったあの日よりずっと大人になっていた。同じ黒い服のはずなのに、トレックパンツにフリースジャケットを羽織った私の格好とは大違いだ。そういえば、どうやって &lt;em&gt;お墓&lt;/em&gt; を作るかを教えていなかったっけ。爆ぜた火の粉で穴が開かなければいいけど。&lt;/p&gt;
&lt;p&gt;懐かしさと一緒に湧き出るのは、マイに裏切られたという冷たく暗い意識。だって、五年も待ったのだ。人生で一番自由で、一番楽しいはずの時間を全て水上に奪われて、今でも水上は目の前で――マイの中に生きている。そんなの許していいわけがない。&lt;/p&gt;
&lt;p&gt;マイは既にこの祭祀の気配にすっかりのめり込んでいて、久しぶりの再会だというのに重苦しい空気が流れていた。何一つ興味のない水上との思い出話でも聞かされるのだろうと覚悟していたけれど、肩透かしだったらしい。私が質問して、マイが二言三言答える。そんな繰り返しを何度か続けているうちに、河川敷の天端に辿り着いた。砂利がちな河原は遊歩道の街灯の光がやっとわずかに届くほどの暗闇で、秘密の儀式を紛れ込ませるにはちょうどいい。&lt;/p&gt;
&lt;p&gt;「あのさ。マイはその制服、着たことあるの？」&lt;/p&gt;
&lt;p&gt;「うん。ミナトがいなくなってから、家で一回だけ……あっ、ミナトの制服じゃなくて、私にくれた制服の方ね」&lt;/p&gt;
&lt;p&gt;「……そうなんだ」&lt;/p&gt;
&lt;p&gt;そう言って、マイが紙袋を大事そうに抱え直した。あぁ、聞くんじゃなかった。こんなもの、どうせ全部まとめて燃やし尽くしてしまうのに。&lt;/p&gt;
&lt;p&gt;わざわざ綺麗な紙袋を買って殊勝な態度で運んだところで、こんなの中身はただの布切れだ。マイがこうして魂の抜け殻みたいに優しく抱きしめれば抱きしめるほど、儀式の意味が重く苦しく積み重なるのは分かっているのに。今すぐ紙袋を引き裂いて、擦り切れたスカートを、色褪せたブラウスをビリビリに破り捨てたい衝動がふつふつと湧き上がる。&lt;/p&gt;
&lt;p&gt;「その制服も、一緒にお墓に入れちゃうけど……平気だよね？」&lt;/p&gt;
&lt;p&gt;「えっ……ミナトの制服でお墓を作るんでしょ？　私がもらった制服は、残しておきたい……かも。ダメなのかな」&lt;/p&gt;
&lt;p&gt;「あー、そっか。じゃあ、こう考えてみて。たった一人で旅立つミナトさんは、寂しいと思わない？」&lt;/p&gt;
&lt;p&gt;「……きっと、寂しいと思う。でもね、私だってミナトがいなくなったら――」&lt;/p&gt;
&lt;p&gt;「――いなくなったら、何なの？」&lt;/p&gt;
&lt;p&gt;うるさい、うるさい、うるさい。やめろ。裏切り者のくせに、まだ水上の味方をするつもりなんだ。かわいそうなマイ。宗教に縛られていただけの弱い女に騙され続ける、素直すぎる子。私が連れ出してあげないと、夜空を一人で飛ぶこともできない子。きっと、私の手で目を覚ましてあげるから。&lt;/p&gt;
&lt;p&gt;「ミナトさんを安らかに見送るために、マイの一部をミナトさんに譲ってあげようって言ってるの！　マイ自身が一緒に向こうに行くわけにはいかないんだよ？　マイだって、そんなつもりないでしょ？　違う？」&lt;/p&gt;
&lt;p&gt;「ユミ……急にどうしちゃったの？　ミナトの後を追いたいなんて、私思ってない。ちょっと……怖いよ」&lt;/p&gt;
&lt;p&gt;「だって、マイが私に……いや、ごめん。マイが本気でミナトさんを見送りたいと思ってるのか、分からなくなっちゃって」&lt;/p&gt;
&lt;p&gt;まずい。興奮しすぎた。こんな言葉をまくし立てて、マイを困らせたいわけじゃなかったのに。私はその場に仰々しくうずくまって、どうしたらいいか分からない、とでも示すように返事を待った。マイならきっと、これくらいで &lt;em&gt;分かって&lt;/em&gt; くれるはずだ。&lt;/p&gt;
&lt;p&gt;私に合わせてしゃがむマイ。顔を上げてマイを見つめる私。マイの目は既に涙でいっぱいで、小さなまばたきでぽろぽろと溢れだした。そうだよね、マイ。これでいい。マイ自身がもっと儀式にのめり込めれば、それで。&lt;/p&gt;
&lt;p&gt;「ごめんね、ユミ。私、間違ってた。この制服はきっと、ミナトを見送るまで預かっていただけなんだね」&lt;/p&gt;
&lt;p&gt;「私も、ちょっと供養のことで頭がいっぱいになってたかも……ごめん。あのさ、よかったら……ミナトさんの制服、先に少し見せてくれない？　きっと、河川敷に降りたら分からなくなっちゃうから」&lt;/p&gt;
&lt;p&gt;マイが重々しく頷く。冷たい街灯の光の中でがさがさと乾いた音が響いた後、意外にもしっかりしたブレザーの整った布地がぼんやりと浮かび上がる。さらにチェックのスカート、白いブラウスが丁寧に畳まれたまま手渡された。マイが言っていた通り、それはどこにでもありそうな、でもだからこそ記号的な高校生の象徴だった。&lt;/p&gt;
&lt;p&gt;水上和子。ミナト。嘘も本当も知らない私の敵。節分も七夕も自由に操れない女。あぁ、あんたが死んでくれて本当によかった。あんたが残したくだらない未練が、またこうして私とマイの絆を繋いでくれたんだから。&lt;/p&gt;
&lt;p&gt;ありがとう。そして……さよなら、キョーカイの子。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ユミはあっという間に小さな焚き火を組み上げて、最後に上からぱらぱらと黒い粉を振りかけた。これで準備は終わりと言うように振り向いたユミの背後で、青・緑・紫……ただの炎にしては鮮やかで眩しい光が揺れ始めた。本当に魔法みたいだ。&lt;/p&gt;
&lt;p&gt;私の役目は、ミナトが安心して旅立てるように祈り続けること。ミナトの全部を受け入れて、許してあげること。&lt;/p&gt;
&lt;p&gt;その役目を全うするために、私は紙袋から取り出した二着の制服を胸に抱えて、七色の炎に向かって歩き始める。紺色の布地が紫や緑の光に当たって揺らめいた。この制服の重みは、私たちがやり直した青春そのものだ。ミナトの短い復讐はまだこの中に眠っていて、ここに形がある限りミナトはどこにも飛び立てない。&lt;/p&gt;
&lt;p&gt;焚き火の前にしゃがみ込むと、ぱちぱちと火花が弾ける音と一緒に乾いた熱が顔を撫でる。この中にミナトの制服を入れてしまったら、もう戻れない。ミナトは私に何を託してくれたんだっけ。本当にこれでいいんだっけ。そんな迷いで頭がいっぱいになって、じっと炎を見つめて動けない私のために、ユミは横に並んで手を握ってくれた。&lt;/p&gt;
&lt;p&gt;「マイ、怖いんだよね。でも、ミナトさんにさよならを言わないと」&lt;/p&gt;
&lt;p&gt;「お葬式ってね、本当は生きている人のためのものなんだよ」&lt;/p&gt;
&lt;p&gt;「ミナトさんはもうどこにもいないけど、マイはちゃんとここにいるから」&lt;/p&gt;
&lt;p&gt;「だから祈ってあげて、もっと。ミナトさんのために」&lt;/p&gt;
&lt;p&gt;そうだった。私はミナトを送り出すためにここにいるんだ。ミナトにさよならを言わないと、この儀式は終わらないんだ。&lt;/p&gt;
&lt;p&gt;私はミナトの制服を握りしめて、そっと七色の焚き火に差し出した。ブレザーの襟がジュッと小さな音を立てて溶け始める。スカートの裾がぱらりと落ちる。ブラウスが黒い焦げで覆われていく。少しずつミナトの存在が糸になって解けて、炎に飲み込まれていった。ミナトが溶けていく。そんなほんの数秒の映像が、私の目に強く焼き付いて離れない。&lt;/p&gt;
&lt;p&gt;そっか、ミナトはもう戻ってこないんだ――と呟くと、私は自然と七色の炎から手を引いて立ち上がっていた。&lt;/p&gt;
&lt;p&gt;放り出された制服が焚き火の真ん中に落ちる。鮮やかな炎が一瞬だけ窒息したように暗くなって、しかし次の瞬間、ボウッと大きな音を立ててさらに高く燃え上がった。見覚えのあるブレザーの金ボタンが、熱に耐えきれずにパキッと割れて弾け飛ぶ音がする。もうミナトの制服は、溶け落ちた丸い炎の塊になっていた。&lt;/p&gt;
&lt;p&gt;ユミが「頑張ったね」と言って私を後ろから抱きしめる。次はユミが焚き火の前に立つ番で、私はその後ろから燃え上がるミナトに祈りを捧げ続けることになっていた。ユミに言われたとおり、正しい手順で。このお葬式を本物にするために。&lt;/p&gt;
&lt;p&gt;ありがとう。さようなら。大好きなミナト。&lt;/p&gt;
&lt;p&gt;あのね、青春をやり直したいって強く思う気持ち、好きだった。&lt;/p&gt;
&lt;p&gt;でも、ちょっと意見が違ったくらいですぐ「ごめん」って謝るところ……嫌いだった。&lt;/p&gt;
&lt;p&gt;プリクラで一生懸命ポーズをとるところ、好きだった。&lt;/p&gt;
&lt;p&gt;ユミが考えてくれたお屠蘇を飲んでくれなかったこと……嫌だった。&lt;/p&gt;
&lt;p&gt;一番高いクレープを頼んで笑った顔、好きだった。&lt;/p&gt;
&lt;p&gt;世界を操る力もないのに頑張りすぎるところ……ちょっと、好きじゃなかった。&lt;/p&gt;
&lt;p&gt;好きなところと嫌いなところを交互に唱えてあげる。これがミナトの全部を受け入れることだって、ユミが教えてくれた。いいことだけじゃなくて、悪いことも思い出してほしいって。最初は半信半疑だったけど、等身大のミナトを思い出すと確かに少し安心した。&lt;/p&gt;
&lt;p&gt;ユミが焚き火の上から新たな線香をくべる。ぱちぱちと音を立てる焚き火の白煙に混ざってもくもくと立ち上るのは、ビニールが溶ける鼻につく匂いと、髪の毛がちりちり燃えたときの沈み込むような匂い、ミナトが好きだった真っ青な海の匂い。 &lt;em&gt;儀式&lt;/em&gt; のために投げ入れた線香の煙がそれらを絡め取って上へ、上へと進んでいった。その一つ一つが、この単なる野焼きを本物のお葬式に昇華させていく。&lt;/p&gt;
&lt;p&gt;――好きだった。&lt;/p&gt;
&lt;p&gt;――嫌いだった。&lt;/p&gt;
&lt;p&gt;――好きだった。&lt;/p&gt;
&lt;p&gt;――――。&lt;/p&gt;
&lt;p&gt;私はユミの後ろからじっと祈りを捧げていた。ミナトに本当のさよならを言うために。目を閉じると空気が震えて渦を巻く低い音が流れ込んできて、耳を澄ませると誰かの声が浮かび上がってくる気がする。そうだ、この向こうにきっとミナトがいるんだ。&lt;/p&gt;
&lt;p&gt;――好きだった。&lt;/p&gt;
&lt;p&gt;――嫌いだった。&lt;/p&gt;
&lt;p&gt;最後まで私を信じてくれたこと、すごく嬉しかった。ミナトのこと、本当に好きだったよ。&lt;/p&gt;
&lt;p&gt;そう呟いて顔を上げると、焚き火の前に立つユミが空を見つめて笑っている。風の音に交じって聞こえるかすれたような笑い声につられて、いつの間にか私も笑っていた。もちろん、楽しかったわけじゃない。あはははは、と声に出すともっと涙が溢れてきた。七色の炎が目に染みた。でも、これが本当の儀式だと思った。これが彼女を見送るための奏上だと信じていた。&lt;/p&gt;
&lt;p&gt;私の祈りは空が徐々に白むまでずっと続いて、その間もユミは薪と線香をくべて炎を絶やさなかった。私たちの一番長い儀式が、新しい朝と共に終わろうとしていた。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>アーモンドフィッシュはアーモンドとフィッシュを食った方がうまい</title><link href="https://ama.ne.jp/post/almondfish/" rel="alternate"/><published>2025-10-13T13:59:00+09:00</published><updated>2025-10-13T13:59:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-10-13:/post/almondfish/</id><summary type="html">&lt;p&gt;f(a+b)＜f(a)+f(b)&lt;/p&gt;</summary><content type="html">&lt;p&gt;アーモンドフィッシュといえば、小魚とアーモンドを組み合わせたおやつ、間食、おつまみの定番である。魚またはナッツ、あるいはその両方が嫌いでなければ一度くらいは食べたことがあるはずだ。&lt;/p&gt;
&lt;p&gt;きっと、あなたは今こんなアーモンドフィッシュを思い浮かべている:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;小さな「にぼし」と縦に割られた細長いアーモンドが入っている&lt;/li&gt;
&lt;li&gt;にぼしよりもアーモンドの方が多く入っている&lt;/li&gt;
&lt;li&gt;アーモンドは皮が剥かれて表面がさらさらしている&lt;/li&gt;
&lt;li&gt;にぼしは甘くてべたべたしていて、しかも白ごまがカチカチにくっついている&lt;/li&gt;
&lt;li&gt;一緒に食べるとジャンルの違う香ばしさが混ざってうますぎる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特にこの縦に6分割された細長いアーモンドは「スリーバード（スリバード）&lt;sup id="fnref:sliver"&gt;&lt;a class="footnote-ref" href="#fn:sliver" title="slivered（細長く切った、裂かれたなどの意）"&gt;1&lt;/a&gt;&lt;/sup&gt;」と呼ばれるもので、製菓や製パンに使われることもあるようだ。ピーナッツチョコやくるみパンの変わり種のようなイメージだろうか。私はアーモンドフィッシュでしかこの形状を見たことがないが、&lt;a href="https://www.treehousealmonds.com/blog/what-is-the-difference-between-sliced-and-slivered-almonds/"&gt;アーモンドスライスとの違いが表にまとめられる&lt;/a&gt;くらいには一般的なものらしい。&lt;/p&gt;
&lt;p&gt;さて、アーモンドフィッシュがアーモンドスリーバードばかり採用することに疑問を覚えたことがある人、となると半数は脱落してしまう気がする。スリーバードが当たり前だと思っている人が、細長いアーモンドと細長い小魚は一緒に食べるのにちょうどいい、ときちんと意識の上に置いて考えるのは少し難しい。&lt;/p&gt;
&lt;p&gt;スライスアーモンドが使われないのはなぜか、アーモンドホール（ホールは「丸ごと」という意味だ）が使われないのはなぜか。スライスアーモンドはトッピングや飾り付けに使うもので、袋詰めしてにぼしと衝突させるほどの強度はない。ではアーモンドホールはどうだろう？　子供のおやつには大きすぎて食べにくい？　明治アーモンドチョコレートは人気なのに？　ひょっとすると――&lt;/p&gt;
&lt;p&gt;アーモンドフィッシュについて、ショッピングサイトでキーワード検索（あるいはAIに依頼）すると、様々な袋詰めあるいはプラカップやガラス瓶に詰められた商品が見つかる。そして、やはり多くの商品があなたが思い浮かべていたとおり、砂糖と水あめがたっぷりまぶされて細長いアーモンドスリーバードとブレンドされたものばかりだ。&lt;/p&gt;
&lt;p&gt;水あめでべたべたになったにぼしは、指でつまんで食べるのに向かない。そもそも、薄甘い小魚というジャンル自体がそこまで人気とは思えない&lt;sup id="fnref:tatsukuri"&gt;&lt;a class="footnote-ref" href="#fn:tatsukuri" title="それなら田作りだって毎年テレビで特集が組まれて飛ぶように売れているはずだ。"&gt;2&lt;/a&gt;&lt;/sup&gt;。栄養たっぷり！健康にいいおやつ！と宣伝されるようなアーモンドフィッシュに、実は砂糖と食塩がたっぷり使われているというのはやっぱり欺瞞だ。&lt;/p&gt;
&lt;p&gt;では、健康志向を前面に押し出したり、おつまみとして売られているような商品まで甘い味付けで出荷されているのはなぜか？　そんな疑問までしっかり覚えた経験がある人だけを残すと、さらに半数が脱落してしまう。&lt;/p&gt;
&lt;p&gt;にぼしに水あめなり砂糖なりで糖分を添加すると、水分が減って保存性が高まる。田作りや佃煮はそういう性質を利用したもので、常温で放置されがちなアーモンドフィッシュの生臭さや苦さを防ぐわけだ。特に子供のおやつとして売っている商品なら、子供の味覚に合わせた甘い味付けなのだろう。&lt;/p&gt;
&lt;p&gt;しかし、これが子供向けの枠を飛び出したアーモンドフィッシュまで一辺倒に甘いとなると、やはり説明がつかない。同じような海産物であるスルメについて、甘辛い「のしいか」や大学するめを最初から想像する人はそういないのに、アーモンドフィッシュではそれが当然だと断じられたまま誰も何も思わない状態が放置されている。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.kojima-ya.com/blog/about-nuts/almondfish/"&gt;アーモンドフィッシュの奥深い世界&lt;/a&gt;によれば、プロのナッツ専門店の目線からするとアーモンドフィッシュの組み合わせは「10パターンや20パターンではきかない」らしい。確かに提示されている組み合わせなら100通り以上になりそうだ&lt;sup id="fnref:almondfish-pattern"&gt;&lt;a class="footnote-ref" href="#fn:almondfish-pattern" title="「アーモンドは無塩か？塩味か？:2」、「棒状のスリーバードか？　それともホール・丸粒のタイプか？:3」、「小魚といってもその魚の種類は何か？:3」、「魚にはゴマがついているか？:2」、「魚に味はついているか？:3」なら108通りになる。この論法は数十万通りから選べる自分だけのランドセル！みたいな宣伝で好きじゃない。"&gt;3&lt;/a&gt;&lt;/sup&gt;。この記事ではアーモンドフィッシュの自作も勧めていて、小売業者から見ても一辺倒なアーモンドフィッシュばかり蔓延っているというのが分かる。&lt;/p&gt;
&lt;p&gt;結局のところ、アーモンドフィッシュは好きなアーモンドと好きなフィッシュをそれぞれ買って食べた方がおいしい。しかも安い。田作りの出来損ないのような甘いにぼしで我慢する必要もない。アーモンドと小魚を皿に入れて混ぜるだけなら、コンロもレンジもミキサーもいらない。&lt;/p&gt;
&lt;p&gt;そして、これはアーモンドフィッシュに限らないことだ。誰かが作ったA+BよりもAとBをそれぞれ選んだ方がいい。食べ物でも漫画でも小説でも何を当てはめても当然に成り立つ。違いはAとBをA+Bにする手間がどれほどかかるかということくらいで、アーモンドフィッシュは絵や小説と違ってその手間がごく小さいということだ。&lt;/p&gt;
&lt;p&gt;みなさんは明日スーパーに行って無塩のアーモンドを1袋買う。その足でおだしの売り場に移動して食塩無添加のにぼしも1袋買う。そして、家で皿に同量ずつ出して混ぜ合わせる。テーブルに並べて一緒に食べるだけで、いつものアーモンドフィッシュの香ばしさが口いっぱいに広がるだろう。そこにはもう余分な砂糖も食塩もない。その糖分や塩分を別のグミやせんべいに振り替える自由さえ残される。&lt;/p&gt;
&lt;p&gt;そんな既製品のアーモンドフィッシュを買うのとほとんど同じ手間で済むことが、アーモンドフィッシュ業者に任せると全て資本主義的な「付加価値」としてアピールされ、その宣伝文句はそのまま値段に跳ね返っていく。どうせ小魚を低品質な水あめに泳がせているのに、だ。やたら大きな文字で上から下まで写真を並べて購入ボタンも探せない通販サイトのことは、もう考えなくていい。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;img alt=":fish:" class="emoji" height="16" src="/emojis/1f41f.png" width="16"&gt; アーモンドフィッシュ &lt;img alt=":peanuts:" class="emoji" height="16" src="/emojis/1f95c.png" width="16"&gt;&lt;br&gt;
～カルシウム×ビタミンEの黄金コンビ～&lt;/p&gt;
&lt;p&gt;【こんなお悩みありませんか？】&lt;br&gt;
&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt; お子様の成長が心配...&lt;br&gt;
&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt; おやつは健康的なものを選びたい...&lt;br&gt;
&lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt; 家族みんなで食べられるものがない...&lt;/p&gt;
&lt;p&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; そんなあなたに &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;br&gt;
当店自慢のアーモンドフィッシュ！&lt;/p&gt;
&lt;p&gt;&lt;img alt=":fire:" class="emoji" height="16" src="/emojis/1f525.png" width="16"&gt; 選ばれる7つの理由 &lt;img alt=":fire:" class="emoji" height="16" src="/emojis/1f525.png" width="16"&gt;&lt;br&gt;
&lt;img alt=":one:" class="emoji" height="16" src="/emojis/31-20e3.png" width="16"&gt; 国産小魚100%使用！&lt;br&gt;
瀬戸内海で獲れた新鮮なカタクチイワシを使用&lt;br&gt;
&lt;img alt=":two:" class="emoji" height="16" src="/emojis/32-20e3.png" width="16"&gt; カルシウムたっぷり！&lt;br&gt;
1袋で牛乳約2本分のカルシウム！&lt;br&gt;
&lt;img alt=":three:" class="emoji" height="16" src="/emojis/33-20e3.png" width="16"&gt; アーモンドの力！&lt;br&gt;
ビタミンE豊富で美容にも◎&lt;br&gt;
&lt;img alt=":four:" class="emoji" height="16" src="/emojis/34-20e3.png" width="16"&gt; 無添加へのこだわり&lt;br&gt;
香料・着色料・保存料不使用（※調味料は使用しております）&lt;br&gt;
&lt;img alt=":five:" class="emoji" height="16" src="/emojis/35-20e3.png" width="16"&gt; 個包装で便利！&lt;br&gt;
お弁当に、職場に、持ち運びラクラク♪&lt;br&gt;
&lt;img alt=":six:" class="emoji" height="16" src="/emojis/36-20e3.png" width="16"&gt; お子様も大好きな味！&lt;br&gt;
ほんのり甘くて食べやすい味付け&lt;br&gt;
&lt;img alt=":seven:" class="emoji" height="16" src="/emojis/37-20e3.png" width="16"&gt; リピート率驚異の92.3%！&lt;/p&gt;
&lt;p&gt;&lt;img alt=":bar_chart:" class="emoji" height="16" src="/emojis/1f4ca.png" width="16"&gt; こんな栄養が摂れます &lt;img alt=":bar_chart:" class="emoji" height="16" src="/emojis/1f4ca.png" width="16"&gt;&lt;br&gt;
&lt;img alt=":bone:" class="emoji" height="16" src="/emojis/1f9b4.png" width="16"&gt; カルシウム：350mg&lt;br&gt;
1日に必要な量の約50%！&lt;br&gt;
&lt;img alt=":mortar_board:" class="emoji" height="16" src="/emojis/1f393.png" width="16"&gt; DHA・EPA配合&lt;br&gt;
受験生・お仕事を頑張る方に&lt;br&gt;
&lt;img alt=":sparkles:" class="emoji" height="16" src="/emojis/2728.png" width="16"&gt; ビタミンE：4.2mg&lt;br&gt;
アンチエイジング効果も期待&lt;br&gt;
&lt;img alt=":muscle:" class="emoji" height="16" src="/emojis/1f4aa.png" width="16"&gt; タンパク質：8.5g&lt;br&gt;
筋トレ後のおやつにも最適&lt;/p&gt;
&lt;p&gt;（...まだまだスクロールが続く...）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;……あぁ、いやだ。&lt;/p&gt;
&lt;p&gt;餅は餅屋、という言葉の通り、私たちはアーモンドフィッシュ業者に泣きつくよりもアーモンド業者とフィッシュ業者にそれぞれ頼るべきだ。生み出す価値において劣加法性が成り立っている。&lt;/p&gt;
&lt;p&gt;中間業者が各業者の貢献の和を超えるには、アーモンドフィッシュ業者自身が「10パターンや20パターンではきかない」複雑なブレンドに対応する必要があるだろうが、自家で済む作業が人件費以上の価値を生めるとは思えない。そして、アーモンド業者とフィッシュ業者がそれぞれ10通りの商品を磨いている間、アーモンドフィッシュ業者は100通りの商品を用意しなければならない。すると1つの商品にかけられる手間は10分の1になる。そこにもう中間業者が入り込む隙はない。&lt;/p&gt;
&lt;p&gt;私たちはアーモンドフィッシュを最適化したいと思っていて、アーモンドフィッシュ業者は価格の範囲内で利益を最適化したいと思っている。いくら付加価値をアピールしたところで人件費や輸送費を含めた価格を超えることはできない。資本主義社会では当たり前のことだ。そこにほんのわずかな手間をかけて中間業者を飛ばすのは、嫌儲の時代からインターネットで人気を集めてきた「中抜き」の実践そのものである。&lt;/p&gt;
&lt;p&gt;アーモンドフィッシュはアーモンドとフィッシュを食った方がうまい。その方が経済的だし、しかもずっと健康的だ。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:sliver"&gt;
&lt;p&gt;slivered（細長く切った、裂かれたなどの意）&amp;#160;&lt;a class="footnote-backref" href="#fnref:sliver" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:tatsukuri"&gt;
&lt;p&gt;それなら田作りだって毎年テレビで特集が組まれて飛ぶように売れているはずだ。&amp;#160;&lt;a class="footnote-backref" href="#fnref:tatsukuri" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:almondfish-pattern"&gt;
&lt;p&gt;「アーモンドは無塩か？塩味か？:2」、「棒状のスリーバードか？　それともホール・丸粒のタイプか？:3」、「小魚といってもその魚の種類は何か？:3」、「魚にはゴマがついているか？:2」、「魚に味はついているか？:3」なら108通りになる。この論法は数十万通りから選べる自分だけのランドセル！みたいな宣伝で好きじゃない。&amp;#160;&lt;a class="footnote-backref" href="#fnref:almondfish-pattern" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>数学Aコラム「南京錠のセキュリティ」</title><link href="https://ama.ne.jp/post/fidget-padlock/" rel="alternate"/><published>2025-09-15T19:11:00+09:00</published><updated>2025-09-15T19:11:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-09-15:/post/fidget-padlock/</id><summary type="html">&lt;p&gt;8C4=70&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://jp.daisonet.com/products/4550480348155"&gt;DAISOのボタン式南京錠&lt;/a&gt;を買った。倉庫や宝箱をロックするために買ったのではなく、そこに激安フィジェットトイがあったというだけだ。ボタンを押したり戻したりする感覚が指に響いて心地いい。&lt;/p&gt;
&lt;p&gt;&lt;img alt="DAISOのボタン式南京錠と暗証番号のパターンを示す「2357」というタグ" height="600" src="/images/fidget-padlock/daiso-pushlock.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;このような錠前は、一般的にプッシュボタン式南京錠とか、プッシュ式ロックと呼ばれている。8～10個のボタンが前面に並んだ南京錠である。多くの製品では、パッケージに4桁の数字が印字された小さなタグが同梱されていて、その番号のボタンを押せば解錠できる。この番号は製造時点で物理的に固定されているが、最近では桁数も含めて自由に暗証番号を変更できると謳う製品もあるようだ。&lt;/p&gt;
&lt;p&gt;このプッシュボタン式南京錠は、いくつかのメーカーでは「デジタルロック」という名前で売られているが、これはスマートロックでもなければ電気すら使わない機械式の錠前である。付属の暗証番号を4桁の10進数ではなく、ボタン1個をそれぞれ1bitの情報量を持つ2進数だと捉えれば、ある種デジタル的かもしれない。&lt;/p&gt;
&lt;p&gt;例えば、10進数のように示された「2357」は、8桁のプッシュボタン式では8から1に向かって「01010110」と表現できて、これを2進数として10進数に戻すと「86」になる。8桁の2進数は10進数で0～255なのだから、プッシュボタン式における10進数4桁の暗証番号は本来10進数3桁の密度しか持っていない、と言ってもよい。&lt;/p&gt;
&lt;p&gt;とはいえ、メーカーも「デジタル」という名前でその2進数的性質を強調したかったわけではあるまい。実際のところは、その当時の「デジタル」という言葉の先進的なイメージにあやかったものだろう。ちょっとしたセンサーとヒーターが載っただけの家電にマイコンとかエーアイとか付けて売るのによく似ている。今から新商品として発売するなら「ビットロッカー」なんていいかもしれない。&lt;/p&gt;
&lt;p&gt;さて、プッシュボタン式と異なり暗証番号を10進数のまま扱える方式の南京錠として、ダイヤル式南京錠がある。ダイヤル式南京錠は、前面や側面に0～9の数字を刻んだホイールを3～6枚程度並べた南京錠である。多くの製品では暗証番号を変更でき、しかも選ぶ数字には制約がない。数字のパターンはN枚のホイールに対して10&lt;sup&gt;N&lt;/sup&gt;であるから、4桁なら1000通り、6桁なら10万通りと直感的な複雑さを持っているわけだ。&lt;/p&gt;
&lt;p&gt;一方、プッシュボタン式南京錠はどうか。まず、ダイヤル式がorder-sensitiveなのに対して、プッシュボタン式はorder-insensitiveである。つまり、パッケージの番号の通りにボタンを押さなくとも、組み合わせが一致していれば解錠できる。これは暗証番号の複雑さを大きく低下させてしまう。しかも、プッシュボタン式南京錠の見た目から想像できる直感的な組み合わせよりかなり少ない。&lt;/p&gt;
&lt;p&gt;プッシュボタン式における数字のパターンはN個のボタンに対して高々2&lt;sup&gt;N&lt;/sup&gt;で、桁数が決まっているならその半分以下になる。DAISOで買ったものと同じ特徴の南京錠なら、8個のボタンのうち4個を押すパターンはたったの70通りしかない。8個のボタンを押すなら2&lt;sup&gt;8&lt;/sup&gt;で256通りあるはずだが、4個使うという制約で3分の1以下になってしまうわけだ。仮に10個のボタンから4個を選ぶとしても、4桁のダイヤル式南京錠が10000通りであるのを踏まえれば、その力は〇割二分一厘にも満たない。&lt;/p&gt;
&lt;p&gt;仮に桁数が自由に設定できるなら、2&lt;sup&gt;N&lt;/sup&gt;通りをそのまま使うことができるので、直感的な複雑さに近づきそうだ。Malloryが総当たりを試すときに暗証番号が4桁だと知っているとは限らないから、実用上は2&lt;sup&gt;N&lt;/sup&gt;通りと考えてもよいかもしれない。しかしその場合でも、10個のボタンを使ったプッシュボタン式南京錠は4桁のダイヤル式南京錠の10分の1の強さしかない。&lt;/p&gt;
&lt;p&gt;では、なぜわざわざプッシュボタン式南京錠を使うのだろうか。プッシュボタン式だけが持っている利点として、鍵を挿したりダイヤルを回す必要がないため、ボタンの配置を指で確かめれば南京錠を直接見ずとも解錠できる&lt;sup id="fnref:pushlock"&gt;&lt;a class="footnote-ref" href="#fn:pushlock" title="使いやすさにこだわった！桁数自由の『可変プッシュボタン錠』とは？【開発秘話】 - いいものマガジンウェブ｜読者参加型コミュニティマガジン"&gt;1&lt;/a&gt;&lt;/sup&gt;という点がある。暗がりで解錠する必要があるとか、目線より高い場所に錠前を設置する場合には有利なわけだ。&lt;/p&gt;
&lt;p&gt;それでも、どれだけ高く見積もっても3桁のダイヤル式と同じ強さのプッシュボタン式南京錠を選ぶのはまだ奇妙に感じる。この選択を掘り下げるには、そもそも南京錠に求められるセキュリティは何か、というのを考えなければならない。&lt;/p&gt;
&lt;p&gt;南京錠はそれ一つで破られないセキュリティを実現するものではなく、破るのにかかる手間や時間を上乗せして試行を諦めさせる、というのが主目的である。例えば、欧州標準化委員会における南京錠のセキュリティ基準（CENグレード&lt;sup id="fnref:cen-grade"&gt;&lt;a class="footnote-ref" href="#fn:cen-grade" title="CEN Grade Explained - ABUS Padlocks"&gt;2&lt;/a&gt;&lt;/sup&gt;）によれば、低温下で8分間の破壊試行に耐えれば最高等級に値するとされる。&lt;/p&gt;
&lt;p&gt;つまり、守りたい対象に錠前が付いていて、かつ開錠のコストが大きいと示せれば十分ということだ。すると、プッシュボタン式における暗証番号のパターン数が直感的に分かりにくいという点がプラスに働く。3桁のダイヤル式南京錠が1000回試せば開くと思う人よりも、10個ボタンのプッシュボタン式南京錠が高々1024回で開くと思う人の方が少ない。ボタンが10個あって4桁の暗証番号なら、直感的には10000通りはありそうに見える。&lt;/p&gt;
&lt;p&gt;また、南京錠を利用するケースでは、事後に錠前が壊れていることが分かれば十分なケースもあるだろう。この場合は、&lt;ruby&gt;&lt;rb&gt;破錠&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;はじょう&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のコストが一気に大きくなる。錠前が建物の中にあって監視カメラで誰が破錠したか追跡できるなら、破錠を検知してからすぐに映像をチェックすればよい。仮に不正に解錠されたのを検知できなければ、数日あるいは数週間で録画が消えることさえありうる。屋内消火栓の封印テープや呪物を封じるお札のように、単に封印を保証するために使われている場合もあるだろう。&lt;/p&gt;
&lt;p&gt;言い換えると、南京錠のセキュリティは適切な知能と開錠の意思の組み合わせに弱い。まず、不正に解錠する意思がそのコストを超えなければ錠前は破られない。そして、錠前や周囲の環境についての知識はこのコストの壁を下げる。十分に価値の高い財物を守っている南京錠が、誰にも見られず即時にボルトカッターで破錠できる、あるいは怪しまれずに数十回の試行で解錠できると知られたなら、もはや南京錠はその意味をなさない。&lt;/p&gt;
&lt;p&gt;たった70通りのプッシュボタン式南京錠に錠前としての意味があると考えてしまうのは、十分に成熟した人間社会が見せる幻想なのか、直感を重視する人間の動物的な勘違いなのかは分からない。いずれにせよ、その幻想や勘違いがなければ存在しえない奇妙なアイテムなのは確かである。高々数億から数兆通りの鍵パターンしかないシリンダー錠で家を施錠しているのも、何らかの上位存在から見れば組木細工を解くサルと同じかもしれない。&lt;/p&gt;
&lt;p&gt;ちなみに、このDAISOのボタン式南京錠は70通りどころではなく数秒で開いてしまう。プッシュボタン式南京錠はボタンの開閉でシャックルを押さえる機構を持っているので、解錠レバーを半分噛ませておけばボタンの方が引っかかって自然に解錠パターンが浮き出てくる。鍵を挿して解錠するシリンダー式と同じようなイメージで、原理としてはピッキングと変わらないわけだ。&lt;/p&gt;
&lt;p&gt;しかし、こういうフィジェットトイは、デザインをもっと可愛くしておもちゃコーナーに置いた方が売れると思う。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:pushlock"&gt;
&lt;p&gt;&lt;a href="https://www.e-mono-web.jp/2023/08/17/variable-push-button-lock/"&gt;使いやすさにこだわった！桁数自由の『可変プッシュボタン錠』とは？【開発秘話】 - いいものマガジンウェブ｜読者参加型コミュニティマガジン&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:pushlock" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:cen-grade"&gt;
&lt;p&gt;&lt;a href="https://abuspadlocksonline.co.uk/abus-padlocks/abus-cen-graded-padlocks/what-does-cen-grade-mean"&gt;CEN Grade Explained - ABUS Padlocks&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:cen-grade" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>そして、距離感30cmへ</title><link href="https://ama.ne.jp/post/30-rulers/" rel="alternate"/><published>2025-09-11T20:54:00+09:00</published><updated>2025-09-11T20:54:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-09-11:/post/30-rulers/</id><summary type="html">&lt;p&gt;マス書き部 音声化プロジェクト進行中&lt;/p&gt;</summary><content type="html">&lt;p&gt;マス書き部、というサークルが全くまともな団体でないことは周知の事実である。しかしながら、マス書き部がその名前に比してストイックな活動をしているというのはあまり知られていない。人が一人でマスを書く、というのは思った以上に複雑である。つまり、マスを書くというのは常に自分に集中して向き合う営為であって、突き詰めると禅のフォーマットに当てはまるのは、考えてみれば当たり前だ。&lt;/p&gt;
&lt;p&gt;そもそも、マス書き部に入部する人間は大きく三つに分けることができる。いや、もっと大きくは二つに分けられるのだが、進む方向の違いに注目すれば三つとするのが自然である。つまり、伝統工芸をベースにした技術で正確にマスを書くのを目指す「技能派」か、あるいは新作のインディーゲームを担当できるほど創造的なマスを書くのを目指す「開発派」だ。&lt;/p&gt;
&lt;p&gt;将棋盤にマスを書く技法として、よく工夫を施した日本刀で漆を盛る「太刀盛り」という技法があることはよく知られている。単に筆で線を書くのではなく、漆を引いた刃をいったん置いて離すことで立体的になるとか……云々。要するに技能派というのは、こうしたシンプルで美しいマスを書くための研鑽を重ねている者たちだ。部室に人を集めて日々こうした練習を重ねているのは技能派たちで、つまり具象派や肉体派と言い換えてもいい。掃除当番の割り振りや設備の手入れといった部室の権利も、代々技能派が受け継いでいる。&lt;/p&gt;
&lt;p&gt;一方の開発派は概念派、あるいは頭脳派と呼べるだろうか。開発派たちはホワイトボードを加工した練習用将棋盤や、大きな筋トレグッズが並んだ部室を必要としない。インターネット上に独自のチームコミュニティを展開していて、日々新しいマスの書き方が開発され、改良され、併合されている。紙への手書きかCGスクリプトが出力したPNG画像か、あるいはベクタ処理に適したAIの産生か……は誰も気にしない。そこにどれだけ独創性があるか、そして実用的かを研究し、必要ならその盤の上で展開するゲームルールさえ考える。この日の最新作は、体育館に引かれた大量のコートラインを再現するプラスチック製まな板であった。&lt;/p&gt;
&lt;p&gt;技能派と開発派のどちらが優れているか、という議論が愚かなことは分かるだろう。かれらの見ている未来の向きが全く異なるのだから、マス書き部という一つの名前で統一するのさえ不自然だ。&lt;/p&gt;
&lt;p&gt;さて、マス書き部に入部する三つの人間のうち、もう一つをまだ説明していなかった。&lt;/p&gt;
&lt;p&gt;とはいえ、ここまで引っ張るようなことでもない。私のように耳で「マスカキ部」と聞いて面白がってやって来た人間だ。ほほうこの大学にはそんなサークルがあるのか、きっとまともな団体ではないだろうなと足を踏み入れると、「技能派」と「開発派」と書かれた説明会用の大きなスチレンボードで説明されたものだからたまらない。私は週に十回以上マスをかいてますよと言っても笑いが起きる雰囲気でもなく、なし崩しに入部が決まって開発派を選択。&lt;/p&gt;
&lt;p&gt;そうして、一ヶ月も経たないうちにディスコードの通知音が嫌いになった。マス書き部で本当にマスを書くなんて、マジでしょうもない。私はすぐに幽霊部員になった。最後に見たメッセージは、アンモナイトのシルエットに沿ったフラクタルすごろく盤だった気がする。&lt;/p&gt;
&lt;p&gt;だから、本来であればこうして卒業生としてマス書き部の部室を訪ねるというのは、どうにも合理的な接続のない行為のはずだった。しかし、こういう在学中のちょっとしたいざこざは、卒業して何年も経てばどうでもよくなるものだ。母校の文化祭をきっかけに集まった旧友と昼から飲酒すると、大学時代のつまらない思い出がやたら美しく飾られて次々と蘇る。一年生なんていたら、卒業生だと名乗って昔話でもしてやろう。&lt;/p&gt;
&lt;p&gt;――あぁキミ、竹尺だねぇ、それ。しかも30cmのだ。30cmの定規も最近ほとんど見かけないのに、竹製なんてすごく珍しい。どこで手に入れたんだい？&lt;/p&gt;
&lt;p&gt;部室で一人残って熱心にマスを書いている部員に後ろから声をかけると、彼は驚いた様子で振り向いた。この部にいた卒業生だと告げると緊張した面持ちで立ち上がったので、私のことは気にせず作業を続けてくれと告げる。しかし、マス書き部の技能派なのに、十月にもなって、しかも文化祭当日でさえ定規でマスを書く練習をしているなんて、よほどの落ちこぼれに違いない。&lt;/p&gt;
&lt;p&gt;しばらくこの部員を見ていると、彼のマスを書く姿勢が圧倒的に悪いのに気付いた。こんなこと、マス書きの技能派どころか開発派にも入門できなかった私が言うのもなんだが、彼は指先だけでマスを書こうとしている。だから、竹尺の押さえ方も悪ければ肩の力も一定に保てない。太さがまちまちの曲がった線しか引けないのは、彼自身の姿勢の悪さという大きな問題のせいだが、当の本人は指先の力で目先の問題だけを解決するつもりでいるから、何度やっても上手くいかないのだ。&lt;/p&gt;
&lt;p&gt;――キミは姿勢が悪いな。私が後ろから支えてやるから、もう少ししっかり力を入れて、最後に抜き切りなさい。そう、特に竹尺は親指と人差し指で節をまたいで。いやなに、ちょっと定規には詳しくてね。昔少しだけバイトしていたんだ。&lt;/p&gt;
&lt;p&gt;彼の背中から順に姿勢を正して、最後に指先に正しく力を置かせる。こんなの小中学校の書道で教わる単純な指導だが、「あっ、ちゃんとマスを書けました！」なんて喜んでいるこの部員を相手にすると、まるで本当にマス書き部の卒業生をやっているみたいだ。&lt;/p&gt;
&lt;p&gt;興が乗ってきたので、定規にまつわる昔話を聞かせることにした。こんな素晴らしい卒業生に聞く話なら、つまらない蘊蓄でも涙を流して喜ぶだろう。&lt;/p&gt;
&lt;p&gt;30cm定規といえば、かつて値段の割にかなり厳重な包装で売られる奇妙な扱いを受けていたこと、そのきっかけが定規の不正利用対策にあったことはよく知られている。定規メーカーの小売店に対する圧力が忌避されて販路が衰退してしまった、というドラマティックな盛衰は、ここ数年の経済学の教科書にはほぼ確実に載っているエピソードだ。30cm定規戦争ともいえる終末期の迷走に至っては、30cm定規の長さが分からないようにランダムな長さの包装紙に包む、なんて奇行がニュースでも大きく取り上げられていた。&lt;/p&gt;
&lt;p&gt;そもそも、大手定規メーカーTが30cm定規の不正利用として糾弾し始めたのは、客が店内で製品の大きさを測るために定規を持ち出すという行為だった。文房具コーナーから30cm定規を持ち出し、インテリアコーナーで手を広げたカピバラのぬいぐるみの背を測って、また同じ場所に戻す。ただそれだけのことである。&lt;/p&gt;
&lt;p&gt;客が欲しいのはその定規で測ったケースやクッションであって、定規自体はもはや購入する必要性がない。小売店にしてみても、買おうと思っていたが翻意したと反論されれば泥沼になりかねないわけで、汚損どころか開封さえされず戻された定規なら、わざわざ購入するよう迫ることもなかった。&lt;/p&gt;
&lt;p&gt;しかし、定規メーカーの側から言わせれば、これは大きな販売機会の損失である。&lt;/p&gt;
&lt;p&gt;この「30cm定規問題」は国会でも大きな問題として取り上げられ、結果として新たな規制法を生むことになった。これが将来に遺恨を残す「ワンタッチルール」の誕生である。売り場で一度触れた30cm定規はその意思にかかわらず購入しなければならない――30cm定規に限るのは不自然だが、ロビー活動とは元来こういうものだ。&lt;/p&gt;
&lt;p&gt;法規制を敷いた後もメーカーは対策を怠らない。まずは目盛りが見えないよう不透明な包装に切り替えたが、そのパッケージがおおよそ30cmであることに着目した不正利用が続出。定規に触れず横に当てる、じっと目に焼き付けた定規の影で測定を行う……いつの自体も規制をかいくぐる客とのいたちごっこは絶えない。しびれを切らしたメーカー側は30cm定規の売り場に監視員を設けるか、鍵付きの倉庫から客の申し出に応じて販売する方式を取るよう小売店に要求し、人件費の高騰を嫌った小売業協会連合会とも対立を深めていく。&lt;/p&gt;
&lt;p&gt;包装されたままでは使用できないようにランダムな大きさで出荷したり、巻かれた状態から開封するとまっすぐ伸びる新素材の開発が進められたのも、まさにこの頃である。長さを測るのなら先に定規を買うべきだ、という意見広告CMがゴールデンタイムに三連続で流れたというSNSでの告発も懐かしい。CMの中身も「マンガを買わずに読むのは犯罪なのと同じです」とか微妙に的を射ない例え話が並べられていて、おそらくその点も叩かれる原因だったと思う。&lt;/p&gt;
&lt;p&gt;さて、ワンタッチルールで必要もない30cm定規を買わされたという被害者が続出して、問題になるのはその無駄な定規の行き先である。ほとんどの客にとって定規の需要が生まれるのは店の中だけで、家に帰れば定規なんて売るほどある。ちょっとしたミスで毎回30cm定規を買わされているならなおさらだ。しかし、定価で買わされたものをすぐに捨てるのもバカらしい。しかも、エコじゃない。&lt;/p&gt;
&lt;p&gt;――そう。その通り。売るほどあるなら、実際に売ってもらえばいいわけだ。私は昔、そういうバイトをしていたんだよ。&lt;/p&gt;
&lt;p&gt;いらない定規を半値以下で買い取る。それだけの「回収屋」が金になる時代があった。私がマス書き部からフェードアウトした後のごく数年のことだ。今となっては、30cm定規なんてむしろ貴重な骨董品として高く売れそうだが、この当時は全く意味が違う。安い定規をさらに安く大量に買い取り、それらを裏ルートで再度流通させる。30cm定規で想像すると変な仕事だが、要は鉄屑を集めて資源に戻すのと同じだと考えればいい。紹介料目当てにこのバイトを紹介してくれた同期はそう言っていた。彼女は確か、中古の15cm定規を結合した30cm定規を納入してクビになったはずだが、友人としては信頼できる。&lt;/p&gt;
&lt;p&gt;一度も開封さえされずに箱詰めされた新品同様の30cm定規は、卸値の六割ほどで出せば飛ぶように売れる。運が悪ければそのまま同じ店に戻ることさえあった。メーカーは製造費と卸値の差で、小売店は卸値と小売価格の差で、回収屋は客からの買取価格と小売店への販売価格の差で儲かる。これが三方よしというものだ。&lt;/p&gt;
&lt;p&gt;この単純な再流通スキームは、その単純さゆえに定規メーカーからの圧力を受けにくく、ロビー活動で再び狙い撃ちの新法ができるまでは長い間続けられた。もちろん、副業感覚で古物商許可もなく参入した主婦などは容赦なく捕まっていたが、定規業界の売り上げのためだけに古物業界を巻き込んで法律をねじ曲げるのは、議員の協力があっても相当に難しかったのだろう。&lt;/p&gt;
&lt;p&gt;そうして、回収屋は新たなステージに入ることになった。つまり、単なる横流しではなく30cm定規を資源として活用する方法を模索し始めたというわけだ。「ワンタッチルール」が生まれてから二年。中古市場に出回る定規の量がピークを迎えた時期でもある。ここからは規制法と定規メーカーの暴走によって、30cm定規を取り扱う小売店が徐々に減っていった。&lt;/p&gt;
&lt;p&gt;――なぁキミ。こうして後ろから話すのはいいんだが、さっきから全然マスを書いてないじゃないか。これじゃ姿勢の指導もあったもんじゃない。私は定規の特性を理解してマスを書きなさいと言ってるんだ。分かるかい？&lt;/p&gt;
&lt;p&gt;後輩くんは私の話に夢中になっているみたいだ。これなら話し甲斐があるというものだが、私の長話に付き合わせて彼の練習を邪魔していると思われたらたまらない。私は後輩くんの手を取って、もう一度まっすぐなマスを書かせてみる。竹尺を押さえる手が少し汗ばんでいた。今度は力が入りすぎているようだ。&lt;/p&gt;
&lt;p&gt;さて、続けようか。&lt;/p&gt;
&lt;p&gt;一口に30cm定規と言っても、その素材や特性は様々だ。最も大量に流通しているプラスチック製は、安さの割に扱いやすい。透明なものなら紙が透けて見えるし、そうでなくても軽くて小回りが利く。曲がりやすくて熱に弱いという耐久性のなさが最大の欠点だが、テフゼルでも使えば十年以上使えるだろう。竹尺は少し高いがプラスチックよりずっと脆いから、回収屋でも重用されていた。資源として消費され尽くしたせいか、今では存在自体かなり珍しい。&lt;/p&gt;
&lt;p&gt;耐久性なら金属製やカーボンファイバー製のものがあるが、これは30cm定規を資源として活用する立場から言わせてもらえば、相当に扱いづらい。高価な割に運搬にも加工にも不便で、まさに定規としての用途しか考えられていない情けない存在。30cm定規市場の末期では、ディスカウントショップのペラペラゴム定規より安値を付けることさえあった。&lt;/p&gt;
&lt;p&gt;金属製の定規が安いのはなぜか？　それは、30cm定規を最も有効に活用できる方法が、定規を分割して内在するエネルギーを取り出すことだからだ。30cm定規を手に取る経験さえ減っていく中で、長さが30cmの定規にだけ非常に高いエネルギーが閉じ込められている、という知識は失われていた。事実、この後輩くんもこの貴重な竹尺をマスを書く支えだとしか思っていないようだった。&lt;/p&gt;
&lt;p&gt;貼り合わせたガムテープを勢いよく剥がす、大きな氷砂糖を金槌でかち割る、石英ガラスの瓶をコンクリートの床に叩き付ける。30cm定規からエネルギーを取り出すのも、これとよく似た現象である。A4用紙の長辺がおよそ30cmなのも、偶然決まったものではない。&lt;/p&gt;
&lt;p&gt;――つまり、30cmというのは人間が見つけた最適な長さの一つだ。例えばね、私のスカートに定規を当てたとする。すると股から20cmくらいにヘソがあると分かる。これは15cm定規ではできないことだ。50cm定規でも胸に引っかかってしまう。30cm定規だけが非常に高いエネルギーが持つんだ。&lt;/p&gt;
&lt;p&gt;後輩くんが慌てた様子で突然振り向く。急にどうしたんだろう。あぁそうか、と盤に置かれた竹尺を取り上げて下腹部にあてがった。こんな感じで、つまりへそがここだ……分かるかい？　そう尋ねると、後輩くんは席に座ったまま真っ赤な顔でぶんぶんと頷いた。素晴らしいね。尊敬する卒業生が自ら身を張って30cm定規の奇跡を実演しているのだから、感動するのも当然だ。&lt;/p&gt;
&lt;p&gt;まだ話を聞きたがっている後輩くんのために、私は竹尺を手に取ってさらに話を続けた。&lt;/p&gt;
&lt;p&gt;30cm定規がエネルギーを持つのは、あくまで30cm定規の状態である間だけだ。15cm定規をテープで普通にくっつけるだけでは何も起こらないし、50cm定規から30cmだけ切り出しても意味がない。完全な30cm定規をどう効率よく破壊するか、というのが回収屋が大量の在庫から逃げ切るための唯一の課題だった。&lt;/p&gt;
&lt;p&gt;最も原始的には、30cm定規の両端に力を加えて二つに折ると光と熱を放出できる。しかしこのやり方では、飛び出たエネルギーが空気中に拡散してしまって無駄が多い。あちこちに設置されている太陽光パネルやプロペラ風車を見て分かるとおり、エネルギーはできるだけ電気として取り出したい、というのは現代的なエネルギー市場の要請の一つである。&lt;/p&gt;
&lt;p&gt;エネルギーを取り出せないまま15cmの領域が二つも残るというのも、効率の面からは最悪に近い。30cm定規に含まれるエネルギーは全体にわたって均一に分布しているのに、よりにもよって半分に折ってしまうと、そのごく小さな断面からほんの少しの熱しか取り出せなくなるのだ。まさにスイカの真ん中だけ食べて捨てるような無駄さである。&lt;/p&gt;
&lt;p&gt;30cm定規から効率よくエネルギーを取り出すコツは、全体を瞬時に細切れにするという一点に尽きる。N点で分割すればN倍のエネルギーが生まれる、というごく簡単な法則である。しかし瞬時に切り刻む、というのが難しいのだ。包丁でもってチョコレートを刻むように、右から左に細切れにするのでは全く意味がない。シュレッダーのような回転刃方式も、定規の短辺を上から下に切断するうちにエネルギーを失ってしまう。&lt;/p&gt;
&lt;p&gt;つまり、断熱容器の中に大量の刃をごく狭い間隔で水平に並べて、均一な力で一度に切り刻む。そしてその熱を電気として得るというのが回収屋の辿り着いた結論だった。よく工夫された刃を並べた30cm定規裁断機は、正面から見ると刃が光を吸い取って真っ黒に見える。わずかな熱は散逸しやすいが大量の熱は比較的電気に変換しやすいという物理的性質も、この発電方式の確立を後押しした。&lt;/p&gt;
&lt;p&gt;計算の上では、無限に薄い刃を無限に小さい間隔で並べれば無限のエネルギーを取り出せる。実際には刃を無限に並べることはできないわけだが、数円から数十円で買い取った30cm定規から取り出せる電力と考えれば桁違いだ。&lt;/p&gt;
&lt;p&gt;――最終的にはね、この30cmの竹尺を粉砕して東京都庁で朝までプロジェクションマッピングできるほどの電力を取り出せたんだ。そう考えると、この竹尺もすごく珍しいものだと思わないかい？&lt;/p&gt;
&lt;p&gt;そう尋ねると、後輩くんが少々思案してから部室の隅を指さす。欲しいならいくつか持ち出していいという。なんとそこには、30cmの竹尺が大量に詰め込まれた段ボール箱が置かれていた。まさかこんなところに宝箱があるなんて。それも、誰一人その価値を知らずに放置しているなんて。&lt;/p&gt;
&lt;p&gt;私がマス書き部で活躍して回収屋のバイトを経験していなかったら、廃棄前の古びた定規にしか見えなかっただろう。金の延べ棒でも取り上げるような気持ちで箱の中の竹尺を一本取り上げると、後輩くんが後ろから「この竹尺は差し上げるので、少しお願いが……」と、やはり席に座ったまま声をかけた。もうマスを書かないなら、立って話せばいいのに。&lt;/p&gt;
&lt;p&gt;――マス書きの指導をしてほしい？　それくらい構わないさ。次の週末、マスを書きに来るといいよ。キミに使ってほしい定規もいくつかあってね。水道管用の特殊な定規もあるし……ウチの定規コレクションはすごいよ。私はもともと開発派でね。&lt;/p&gt;
&lt;p&gt;そう快諾する私の言葉を聞いた後輩くんは、とても嬉しそうだ。私だって、こんな貴重な竹尺を無料で手に入れた上に、偉大な卒業生の顔をして先輩風を吹かせられるんだから気持ちがいい。たとえ幽霊部員でも、こうして後輩に頼られるのはなかなかいいものだ。&lt;/p&gt;
&lt;p&gt;後輩くんが来るなら、私も少しくらいマス書きの練習をしておいた方がいいかもしれない。マス書きが本来自分に集中して向き合うべき行為だとしても、一緒に手伝えることもあるだろうから。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>抵抗のないそうめんの太さを示すスマートな方法について</title><link href="https://ama.ne.jp/post/ibonoito-color-code/" rel="alternate"/><published>2025-08-27T21:26:00+09:00</published><updated>2025-08-27T21:26:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-08-27:/post/ibonoito-color-code/</id><summary type="html">&lt;p&gt;上級・特級・三神・四柱・五芒・六星・七宝……&lt;/p&gt;</summary><content type="html">&lt;p&gt;近年、そうめん市場はこれまでにない広がりを見せています。とあるニュース&lt;sup id="fnref:fiction"&gt;&lt;a class="footnote-ref" href="#fn:fiction" title="この記事は全体にわたってフィクションであり、実際の気象統計・JAS規格・その他トレンドなどを反映したものではありません。"&gt;1&lt;/a&gt;&lt;/sup&gt;によれば、恒常的なコメ不足と年々厳しくなっている夏の気候が原因のようです。5キロあたり8000円前後で高止まりする &lt;em&gt;高級食材&lt;/em&gt; のコメを麺類に置き換えるここ数年のトレンドに加え、既に7月から最高気温が50℃に達するほどの烤夏日が続く異常気象が、このそうめん特需を支えているわけですね。&lt;/p&gt;
&lt;p&gt;一般的に流通している乾燥そうめんは、JAS規格の乾めん類の日本農林規格における「干しめん」あるいは手延べ干しめんの日本農林規格における「手延べ干しめん」に分類されています。小麦粉に食塩を加えて練り合わせ、製麺したもので、機械での製造なら「干しめん」と、麺を延ばす工程を手作業で行って適切な熟成期間を経れば「手延べ干しめん」と名乗ることができます。&lt;/p&gt;
&lt;p&gt;さて、そうめんの大きな特徴といえば、どんなに暑く食欲のない日でも抵抗なくつるつると食べられる滑らかなのどごしと、頼りない見た目からは想像できないしっかりとした歯ごたえが共存しているという点にあります。この独特の食感は、干しめんあるいは手延べ干しめんの中でも最小の麺の太さと、生地を十分に練って形成されたグルテンの合わせ技によるものです。特に手延べそうめんでは、麺を1本1本縒りをかけて細く延ばすことで麺に対して均一にグルテンが形成され、機械麺より滑らかな食感を感じられるといいます。&lt;/p&gt;
&lt;p&gt;手延べそうめんの代表格である揖保乃糸には、麺の素材や太さ、熟成期間に応じたいくつかのバリエーションが存在します。このバリエーションは主に&lt;a href="https://www.ibonoito.or.jp/feature/obi.html"&gt;帯の色&lt;/a&gt;で表示・分類されており、公式ページでは7種類の帯が紹介されています。&lt;/p&gt;
&lt;p&gt;スーパーでよく売られている上級（赤帯）は麺の太さ0.70〜0.90mm、お中元の定番である特級（黒帯）は0.65〜0.70mm、最上級の三神は0.55〜0.60mmと、高級になるにしたがって細くなるのはもちろん、直径の誤差も小さくなります。他のバリエーションは小麦の産地や生産者に特化したもので、麺の太さは赤帯に近く、値段は赤帯と黒帯の中間くらいの位置付けですね。また、これらの種類に対して適切な管理の下で1年間の熟成を加えた&lt;ruby&gt;&lt;rb&gt;古&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ひね&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;や2年熟成の&lt;ruby&gt;&lt;rb&gt;大古&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;おおひね&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が流通しています。&lt;/p&gt;
&lt;p&gt;このようなそうめん市場の広がりによって流行の兆しを見せているのが、麺の太さの多様化です。前述のトレンドと気候が噛み合ったそうめん需要の拡大によって、これまでそうめん製造を専門としてこなかった多くの製麺業者まで参入しており、手延べそうめんだけではなく安価な機械麺も大量に流通しています。&lt;/p&gt;
&lt;p&gt;とあるニュース&lt;sup id="fnref2:fiction"&gt;&lt;a class="footnote-ref" href="#fn:fiction" title="この記事は全体にわたってフィクションであり、実際の気象統計・JAS規格・その他トレンドなどを反映したものではありません。"&gt;1&lt;/a&gt;&lt;/sup&gt;によれば、これらの業者はそうめん作りに特有の技能がなくとも他社との差別化を図ろうと、常識にとらわれない様々な太さのそうめんを生産しているようです。SNSでは好みの太さを診断してオーダーメイドのそうめんを届けるサービスも人気を集めており、今後も手延べにこだわらず多角的な付加価値を提供するそうめんが流通していくと思われます。&lt;/p&gt;
&lt;p&gt;このようなトレンドが加速していく中で気になるのが、そうめんの太さをどのように区別するのか、という点です。もともと手作業が基本の手延べそうめんでは麺の太さに一定の誤差があり、太さが近いひやむぎとの区別のために色が付いた麺を入れる慣習があります。ひやむぎとそうめんの食感は大きく異なりますが、乾麺のままでは見比べても差が分かりにくいものです。ここにピンクや緑の麺が数本でも交じっていれば、少なくとも束になった麺なら一目で区別できますね。&lt;/p&gt;
&lt;p&gt;揖保乃糸の帯が分かりやすく赤や黒といった色で分かれているのも、これらと同様にそうめんの種類を見分けやすくするためです。今後参入する製麺業者では太さのバリエーションはさらに増えるでしょうから、できればJAS規格や業界団体で共通の識別方法を採用すべきでしょう。消費者が自分好みのそうめんを選び取るための助けになります。&lt;/p&gt;
&lt;p&gt;そうめんの太さを帯で識別する方法としてまず思いつくのは、帯色のパターンを増やしていく「グラデーション法」です。例えば1.3mmは赤 &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; 、1.1mmは橙 &lt;img alt=":orange_heart:" class="emoji" height="16" src="/emojis/1f9e1.png" width="16"&gt; 、0.9mmは黄 &lt;img alt=":yellow_heart:" class="emoji" height="16" src="/emojis/1f49b.png" width="16"&gt; 、……、0.1mmは紫 &lt;img alt=":purple_heart:" class="emoji" height="16" src="/emojis/1f49c.png" width="16"&gt; として、それぞれの間にある太さは色を混ぜ合わせてグラデーションを作ることを考えます。仮に24ビットRGBで表現するなら16677216色で、0.1mm～1.3mmが約70pm間隔で区切られるので、ナノオーダーの製麺であっても十分に区別できます。&lt;/p&gt;
&lt;p&gt;グラデーション法で揖保乃糸を分類すると、上級は黄緑、特級は緑寄りの青緑、三神は青寄りの青緑の帯で出荷されそうです。その他素材や熟成期間の差は別の方法で示すことになるでしょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~揖保乃糸の麺の太さをグラデーション法で示したイメージ" height="800" src="/images/ibonoito-color-code/grade-ibonoito.png" width="1000"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.irasutoya.com/2015/12/blog-post_958.html"&gt;そうめんの麺のイラスト&lt;/a&gt; by みふねたかし&lt;sup id="fnref:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="このイラストはCC BY 4.0でライセンスされていません。"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;さて、この方法にはいくつか問題があります。まず、人間の目では1600万色の区別ができず見た目では正確な太さが分かりません。色覚異常があればなおさらです。これは、緻密な製麺を実現できる業者ほど痛手になります。太さの差をアピールして売り出したいのに、帯の色は曖昧なビリジアンしか使えないというのでは意味がありません。&lt;/p&gt;
&lt;p&gt;麺の太さも0.1mm～1.3mmで均一に存在するわけではないので、結局どのメーカーも同じような帯色で商品棚に陳列されてしまうという結末が容易に想像できます。このように、色と太さの関係表を事前に決めなければならないという点もグラデーション法の大きな欠点です。&lt;/p&gt;
&lt;p&gt;また、ピコメートル単位で麺の太さを保証できる製麺業者は少なくとも現代には存在しないので、どの色を選んでも正確な帯色にはなりえません。揖保乃糸の例でも範囲の中央を取って代表色を作りましたが、これでは製麺における誤差がどの程度あるかという重要な情報も消えてしまいます。均一な生産が容易な機械麺であったとしても、有効数字はせいぜい2～3桁といったところでしょう。&lt;/p&gt;
&lt;p&gt;グラデーション法の欠点をまとめると、必要以上に細かい精度かつ広い範囲をカバーしてしまい、本来の目的であった色（=太さ）の区別が難しくなるという使いにくさだと言えます。これを踏まえて、有効数字と範囲を意識して必要な精度の太さを示す「カラーコード法」という手法を提案します。&lt;/p&gt;
&lt;p&gt;カラーコード法では、複数の帯をそうめんの束にかけることで麺の太さを示します。10色の帯と補助用の2色の帯があれば、グラデーション法より広い範囲の太さを表現できます。色覚異常への対応を考慮すると、色の区別を12パターンの記号に割り当てればよいでしょう。そして、最も下の帯を太さの誤差範囲、下から2番目の帯を乗数（桁数）、残りの帯を有効数字分の数値に使います。&lt;/p&gt;
&lt;p&gt;例として4本の帯をかける場合、上から2本が太さの有効数字2桁AB、3本目が乗数C、4本目が誤差範囲Dを示します（&lt;a href="/images/ibonoito-color-code/colorcode.png"&gt;参考&lt;/a&gt;&lt;sup id="fnref:no-cc-by-colorcode"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by-colorcode" title="画像中で使用しているそうめんの麺のイラスト（みふねたかし）はCC BY 4.0でライセンスされていません。"&gt;3&lt;/a&gt;&lt;/sup&gt;）。揖保乃糸の帯色も参考にして、ここでは以下のように各色に数字を割り当てて数値と乗数を、補助用の金と銀の帯で誤差範囲を表現するものとします。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align="center"&gt;色&lt;/th&gt;
&lt;th align="center"&gt;数字&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align="center"&gt;黒 &lt;img alt=":black_heart:" class="emoji" height="16" src="/emojis/1f5a4.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;茶 &lt;img alt=":brown_heart:" class="emoji" height="16" src="/emojis/1f90e.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;赤 &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;橙 &lt;img alt=":orange_heart:" class="emoji" height="16" src="/emojis/1f9e1.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;黄 &lt;img alt=":yellow_heart:" class="emoji" height="16" src="/emojis/1f49b.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;緑 &lt;img alt=":green_heart:" class="emoji" height="16" src="/emojis/1f49a.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;青 &lt;img alt=":blue_heart:" class="emoji" height="16" src="/emojis/1f499.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;紫 &lt;img alt=":purple_heart:" class="emoji" height="16" src="/emojis/1f49c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;灰 &lt;img alt=":grey_heart:" class="emoji" height="16" src="/emojis/1fa76.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;白 &lt;img alt=":white_heart:" class="emoji" height="16" src="/emojis/1f90d.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align="center"&gt;色&lt;/th&gt;
&lt;th align="center"&gt;数字&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align="center"&gt;金 &lt;img alt=":first_place:" class="emoji" height="16" src="/emojis/1f947.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;銀 &lt;img alt=":second_place:" class="emoji" height="16" src="/emojis/1f948.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;これらの色の組み合わせを元に、そうめんの太さをAB × 10&lt;sup&gt;C&lt;/sup&gt; μm（誤差範囲±D%）と定義します。色（または記号）は12パターンしかないので、グラデーション法よりも区別しやすく、また製麺技術や人間の感覚に合わせた精度や誤差を過不足なく表現できます。このようなカラーコード法でも揖保乃糸を分類してみましょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~揖保乃糸の麺の太さをカラーコード法で示したイメージ" height="800" src="/images/ibonoito-color-code/colorcode-ibonoito.png" width="1000"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.irasutoya.com/2015/12/blog-post_958.html"&gt;そうめんの麺のイラスト&lt;/a&gt; by みふねたかし&lt;sup id="fnref2:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="このイラストはCC BY 4.0でライセンスされていません。"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;このように、カラーコード法では太さの差と帯の色が見やすく対応しており、消費者にとっても商品選びの助けになるでしょう。唯一の欠点があるとすれば、色（または記号）と数字がどのように対応しているのかを暗記する必要があり、その上でわずかな暗算を必要とするということでしょうか。&lt;/p&gt;
&lt;p&gt;カラーコードと数字の対応を暗記するには、語呂合わせなどを使うといいでしょう。ここでは、その一例を紹介します。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align="center"&gt;色&lt;/th&gt;
&lt;th align="center"&gt;数字&lt;/th&gt;
&lt;th align="center"&gt;語呂合わせ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align="center"&gt;黒 &lt;img alt=":black_heart:" class="emoji" height="16" src="/emojis/1f5a4.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;0&lt;/td&gt;
&lt;td align="center"&gt;黒い礼服&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;茶 &lt;img alt=":brown_heart:" class="emoji" height="16" src="/emojis/1f90e.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;1&lt;/td&gt;
&lt;td align="center"&gt;お茶を一杯&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;赤 &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;2&lt;/td&gt;
&lt;td align="center"&gt;赤い人参&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;橙 &lt;img alt=":orange_heart:" class="emoji" height="16" src="/emojis/1f9e1.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;3&lt;/td&gt;
&lt;td align="center"&gt;第三の男&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;黄 &lt;img alt=":yellow_heart:" class="emoji" height="16" src="/emojis/1f49b.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;4&lt;/td&gt;
&lt;td align="center"&gt;岸恵子&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;緑 &lt;img alt=":green_heart:" class="emoji" height="16" src="/emojis/1f49a.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;5&lt;/td&gt;
&lt;td align="center"&gt;五月みどり&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;青 &lt;img alt=":blue_heart:" class="emoji" height="16" src="/emojis/1f499.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;6&lt;/td&gt;
&lt;td align="center"&gt;青二才のろくでなし&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;紫 &lt;img alt=":purple_heart:" class="emoji" height="16" src="/emojis/1f49c.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;7&lt;/td&gt;
&lt;td align="center"&gt;紫式部&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;灰 &lt;img alt=":grey_heart:" class="emoji" height="16" src="/emojis/1fa76.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;8&lt;/td&gt;
&lt;td align="center"&gt;ハイヤー&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;白 &lt;img alt=":white_heart:" class="emoji" height="16" src="/emojis/1f90d.png" width="16"&gt;&lt;/td&gt;
&lt;td align="center"&gt;9&lt;/td&gt;
&lt;td align="center"&gt;ホワイトクリスマス&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この表、20年ぶりくらいに見ましたが古すぎて逆に新鮮な驚きがありますね！　誰かが伊東家の食卓（でしたっけ？）に昔出ていた？気がします。語呂合わせのために初めて見る人名や映画を覚えるのも本末転倒なので、やる気があれば令和最新版にアップデートした方がいいかもしれません。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/ibonoito-color-code/pun.png"&gt;空の語呂合わせ表&lt;/a&gt;を置いておくので、面白いものができたらSNSで紹介してくださいね。&lt;/p&gt;
&lt;p&gt;おまけ: 実際に揖保乃糸の帯を装着したそうめん（麺の太さ: 520m±5%）&lt;/p&gt;
&lt;p&gt;&lt;img alt="上から揖保乃糸の緑帯、赤帯、紫帯、金帯を巻いた揖保乃糸上級の写真" height="750" src="/images/ibonoito-color-code/colorcode-ibonoito.jpg" width="750"&gt;&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:fiction"&gt;
&lt;p&gt;この記事は全体にわたってフィクションであり、実際の気象統計・JAS規格・その他トレンドなどを反映したものではありません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:fiction" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:fiction" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:no-cc-by"&gt;
&lt;p&gt;このイラストは&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-cc-by" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:no-cc-by" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:no-cc-by-colorcode"&gt;
&lt;p&gt;画像中で使用している&lt;a href="https://www.irasutoya.com/2015/12/blog-post_958.html"&gt;そうめんの麺のイラスト&lt;/a&gt;（みふねたかし）は&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-cc-by-colorcode" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>輝くイカスミと「でェョ姫」について</title><link href="https://ama.ne.jp/post/deeyohime/" rel="alternate"/><published>2025-05-30T17:58:00+09:00</published><updated>2025-05-30T17:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-05-30:/post/deeyohime/</id><summary type="html">&lt;p&gt;輝く看板に暗い影を落とす悲しいおひめさまのお話&lt;/p&gt;</summary><content type="html">&lt;p&gt;MinecraftのBedrock版&lt;sup id="fnref:bedrock-version"&gt;&lt;a class="footnote-ref" href="#fn:bedrock-version" title="2025年5月末時点でv1.21.82です。"&gt;2&lt;/a&gt;&lt;/sup&gt;における奇妙な挙動として、&lt;a href="https://ja.minecraft.wiki/w/%E8%BC%9D%E3%81%8F%E3%82%A4%E3%82%AB%E3%82%B9%E3%83%9F"&gt;輝くイカスミ&lt;/a&gt;で発光させた看板に「でェョ姫」というテキストを設定すると明るさが暗くなる、というものが知られています&lt;sup id="fnref:not-java-bug"&gt;&lt;a class="footnote-ref" href="#fn:not-java-bug" title="Java版では起こりません: 参考画像"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img alt="「でェョ姫」と設定された輝く看板が暗く光っている様子" height="500" src="/images/deeyohime/deeyohime-single.png" width="960"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://bugs.mojang.com/"&gt;Mojira&lt;/a&gt;にもいくつか関連する報告が上がっていますが、ゲームの進行に支障をきたすほどの事象ではないせいか、あまり注目を集めている様子はありません。輝くイカスミがBedrock版に追加されたのは&lt;a href="https://minecraft.wiki/w/Bedrock_Edition_beta_1.16.210.59"&gt;2021年2月&lt;/a&gt;のことで、かれこれ4年以上はこのバグが放置されているわけです。&lt;/p&gt;
&lt;p&gt;そもそも輝くイカスミとは、&lt;a href="https://ja.minecraft.wiki/w/%E3%83%92%E3%82%AB%E3%83%AA%E3%82%A4%E3%82%AB"&gt;ヒカリイカ&lt;/a&gt;という青白く光るイカがドロップするアイテムです。通常の&lt;a href="https://ja.minecraft.wiki/w/%E3%82%A4%E3%82%AB"&gt;イカ&lt;/a&gt;から得られる&lt;a href="https://ja.minecraft.wiki/w/%E3%82%A4%E3%82%AB%E3%82%B9%E3%83%9F"&gt;イカスミ&lt;/a&gt;が主に黒い染料として使われるのに対して、輝くイカスミは看板や額縁に明るさを伴う装飾効果を与えます。&lt;/p&gt;
&lt;p&gt;具体的には、看板や吊り看板に使用してテキストの周囲を光らせたり、ふつうの額縁と組み合わせて輝く額縁をクラフトできます。周囲が暗ければそれなりに見やすい標識として役に立ちますが、あくまで装飾上の効果しかないことには注意が必要です&lt;sup id="fnref:not-effective-light"&gt;&lt;a class="footnote-ref" href="#fn:not-effective-light" title="画面上では光って見えますが、Minecraft上で効果がある明るさは持っていません。"&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img alt="輝く看板や輝く額縁を設置して「でェョ姫」と設定された看板のみが暗く光っている様子" height="500" src="/images/deeyohime/glow-ink-sac-bedrock.png" width="960"&gt;&lt;/p&gt;
&lt;p&gt;前述したバグは、「でェョ姫」という文字列をテキストに設定している間だけ発生します。もともと光っていた看板でも「でェョ姫」と設定すれば暗くなり、元に戻せばすぐ明るい光を取り戻すのです。また、看板の種類や色も関係ありません。つまり、看板自体が変質するようなバグではなく、あくまでテキストの装飾を解析・表示する部分に問題があります。&lt;/p&gt;
&lt;p&gt;&lt;img alt="様々な種類の輝く看板で「でェョ姫」と設定した場合に暗く光っている様子" height="500" src="/images/deeyohime/deeyohime-all-signs.png" width="960"&gt;&lt;/p&gt;
&lt;p&gt;さて、Minecraft上で看板のテキストを装飾できるのは、輝くイカスミだけではありません。染料を用いればテキスト全体を好きな色に変更できますし、Bedrock版では&lt;a href="https://ja.minecraft.wiki/w/%E8%A3%85%E9%A3%BE%E3%82%B3%E3%83%BC%E3%83%89"&gt;装飾コード&lt;/a&gt;と呼ばれる特別な文字 &lt;code&gt;§&lt;/code&gt; を用いた簡易的なマークアップも用意されています&lt;sup id="fnref:not-java-deco"&gt;&lt;a class="footnote-ref" href="#fn:not-java-deco" title="Java版でもワールド名やサーバーの説明など限られた範囲で装飾コードを利用できます。ただし、装飾コードの解釈や効果が一部異なるようです。"&gt;4&lt;/a&gt;&lt;/sup&gt;。装飾コードは &lt;code&gt;§&lt;/code&gt; とその直後の1文字で構成されていて、後ろに続くテキストの文字色やスタイルを指定できます。&lt;/p&gt;
&lt;p&gt;以下の例では、 4行にわたって装飾コードを含んだテキストを展開しています。まず、「すっぴん」の後にある &lt;code&gt;§6&lt;/code&gt; というコードによって、後に続く「ゴールド」が金色に変わります。そして、その効果は &lt;code&gt;§i&lt;/code&gt; という鉄のカラーコードで上書きされるまで続きました。途中で &lt;code&gt;§l&lt;/code&gt; および &lt;code&gt;§o&lt;/code&gt; を用いてそれぞれ太字と斜体を適用しながら後半へ、最後に &lt;code&gt;§r&lt;/code&gt; で全ての装飾をリセットしてテキスト末尾の「～ぎる」と「装飾」まで進みました。&lt;/p&gt;
&lt;!--
すっぴん§6ゴールド
&amp;§l太い§o§i鉄
デカす§rぎる
装飾
--&gt;

&lt;p&gt;&lt;img alt="装飾コードを含むテキストを看板に設定している様子" height="500" src="/images/deeyohime/edit-deco-sign.png" width="960"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="装飾コードを含むテキストを設定した輝く看板が光っている様子" height="500" src="/images/deeyohime/deco-sign-diff.png" width="960"&gt;&lt;/p&gt;
&lt;p&gt;この装飾コードを適用した看板に輝くイカスミを使用すると、またおかしな挙動が起きていることに気付きます。「装飾」という文字列が明るく光っているのに対して、「すっぴん」や「～ぎる」という文字列は「でェョ姫」と同じ暗さになっているのです。&lt;/p&gt;
&lt;p&gt;しかし、一方で「すっぴん」という文字列自体に看板を暗くする効果はなさそうです。試しに「すっぴん」と「装飾」の位置を入れ替えてみると、今度は「装飾」の方が暗くなってしまいました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="先ほどの輝く看板のテキストで「すっぴん」と「装飾」を入れ替えた様子" height="500" src="/images/deeyohime/deco-sign-2.png" width="960"&gt;&lt;/p&gt;
&lt;p&gt;ここで「装飾」や「すっぴん」が明るく光っていたテキスト最終行に「でェョ姫」を設定すると、すぐに暗い光に変わります。つまり、この現象は文字列自体に原因があるのではなく、文字列の位置によって引き起こされたと解釈できるでしょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="輝く看板で本来なら明るく光る部分に「でェョ姫」を設定すると暗く光る様子" height="500" src="/images/deeyohime/deco-sign-diff-2.png" width="960"&gt;&lt;/p&gt;
&lt;p&gt;他にもいくつか試してみたところ、装飾コードがある行に色の設定されていない文字列が含まれていると、この現象が発生することが分かりました。ここでいう「色が設定されていない」とは、色の装飾コードが初めて出てくるまでの部分（最初の例における「すっぴん」）、あるいは &lt;code&gt;§r&lt;/code&gt; で装飾をリセットしてから再び色の装飾コードが出てくるまでの部分（最初の例における「～ぎる」と「装飾」）であって、明示的に黒 &lt;code&gt;§0&lt;/code&gt; を設定した文字列とは異なります。&lt;/p&gt;
&lt;p&gt;まとめると、輝くイカスミを使用した看板の文字列が暗くなる挙動として、以下の2つが存在することが分かりました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ある特定の文字列（ここでは「でェョ姫」）を設定した場合&lt;/li&gt;
&lt;li&gt;装飾コードがある行に色の設定されていない文字列を含めた場合&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;このうち、2の挙動は比較的理解しやすいものです。色が設定された文字列は、通常の文字列のように周囲が明るく光るのとは逆に、文字色自体が明るくなって周囲はより暗い色に変わります。おそらく各カラーコードに対してテキストを囲む色が決まっていて、色が未設定の文字列はグレーで発光するという定義になっているのでしょう。&lt;/p&gt;
&lt;p&gt;しかし、1のように特定の文字列で同様の現象が起きるのはやはり奇妙です。ひょっとすると、装飾コードを含む特殊な行の挙動が、何らかの条件で暴発するのかもしれません。例えば、「ある特定の文字列を含むと装飾コードが設定された行として扱われる」なら、実際には装飾コードを含まない文字列全体が暗く発光するはずです。そうすると、この2つの挙動は実際には1つの原因で起きる単一の現象として説明できるでしょう。&lt;/p&gt;
&lt;p&gt;1の挙動を引き起こす特定の文字列についてもう少し掘り下げましょう。&lt;a href="https://ja.minecraft.wiki/w/%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB:Bedrock_Edition/%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%83%91%E3%83%83%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90"&gt;Bedrock版のリソースパック作成ガイド&lt;/a&gt;などを見てみると、プログラム内部ではUTF-8が用いられているようです。ふつうはコードポイントをそのまま処理するわけではないので、これらの文字列をUTF-8でエンコードして観察してみます。&lt;/p&gt;
&lt;p&gt;まず「でェョ姫」をUTF-8でエンコードすると以下のようになります:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;で: &lt;code&gt;e3 81 a7&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ェ: &lt;code&gt;e3 82 a7&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ョ: &lt;code&gt;e3 83 a7&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;姫: &lt;code&gt;e5 a7 ab&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;それぞれ3バイトでエンコードされており、共通のバイト &lt;strong&gt;&lt;code&gt;a7&lt;/code&gt;&lt;/strong&gt; を含んでいることが分かります。一見何も関係なさそうな文字でしたが、意外な共通点を持っていました。&lt;/p&gt;
&lt;p&gt;では、装飾コードの開始記号である &lt;code&gt;§&lt;/code&gt; はどうでしょうか？　&lt;code&gt;§&lt;/code&gt; はもともとセクションを示すための一般的な約物であって、特殊な制御文字として扱うのはMinecraft上だけの話です。この &lt;code&gt;§&lt;/code&gt; をUTF-8でエンコードすると &lt;code&gt;c2 a7&lt;/code&gt; となり、またしても共通のバイト &lt;strong&gt;&lt;code&gt;a7&lt;/code&gt;&lt;/strong&gt; を含んでいるのが明らかになりました。&lt;/p&gt;
&lt;p&gt;そうなると話は早いですね。UTF-8で &lt;code&gt;a7&lt;/code&gt; を含む文字列を探してみましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x0000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x007F&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# 基本ラテン文字&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x0080&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x00FF&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# ラテン文字補助&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x0100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x017F&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# ラテン文字拡張A&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x0180&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x024F&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# ラテン文字拡張B&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x0370&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x03FF&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# ギリシャ文字&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x0400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x04FF&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# キリル文字&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x3040&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x309F&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# ひらがな&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x30A0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x30FF&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# カタカナ&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0x4E00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0x9FFF&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# CJK統合漢字&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mh"&gt;0xAC00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mh"&gt;0xD7AF&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="c1"&gt;# ハングル音節&lt;/span&gt;
&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;code_point&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;char&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;code_point&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="mh"&gt;0xa7&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;char&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
                &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;char&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;continue&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ここからひらがな・カタカナ・常用漢字を抜き出すと以下の57文字が得られます:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;で&lt;/strong&gt; &lt;strong&gt;ェ&lt;/strong&gt; &lt;strong&gt;ョ&lt;/strong&gt; 僧 勧 圧 大 姉 始 姓 委 &lt;strong&gt;姫&lt;/strong&gt; 姻 姿 &lt;strong&gt;寧&lt;/strong&gt; 巧 座 弧 性 惧 憧 控 &lt;strong&gt;旧&lt;/strong&gt; 昧 構 様 槽 &lt;strong&gt;欧&lt;/strong&gt; 湧 照 牧 璧 秀 &lt;strong&gt;私&lt;/strong&gt; &lt;strong&gt;秋&lt;/strong&gt; 科 秒 &lt;strong&gt;秘&lt;/strong&gt; &lt;strong&gt;租&lt;/strong&gt; 秩 称 移 粧 糧 覧 角 解 触 諧 &lt;strong&gt;貧&lt;/strong&gt; 霧 顧 駄 &lt;strong&gt;駅&lt;/strong&gt; 駆 駐 駒&lt;/p&gt;
&lt;p&gt;タイトルの「でェョ姫」はいずれもこのリストの中にあり、そのほかにもそう珍しくない漢字が多数含まれていました。また、以下の記号・漢字でも、同様の現象に関する報告が1年～半年ほど前にいくつか上がっています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ç&lt;sup id="fnref:c-cedilla-utf8"&gt;&lt;a class="footnote-ref" href="#fn:c-cedilla-utf8" title="UTF-8表現で c3 a7"&gt;5&lt;/a&gt;&lt;/sup&gt;: &lt;a href="https://bugs.mojang.com/browse/MCPE/issues/MCPE-182499"&gt;MCPE-182499&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ч&lt;sup id="fnref:u-0427-utf8"&gt;&lt;a class="footnote-ref" href="#fn:u-0427-utf8" title="UTF-8表現で d0 a7"&gt;6&lt;/a&gt;&lt;/sup&gt;: &lt;a href="https://bugs.mojang.com/browse/MCPE/issues/MCPE-178060"&gt;MCPE-178060&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;秋・吧&lt;sup id="fnref:ba-utf8"&gt;&lt;a class="footnote-ref" href="#fn:ba-utf8" title="UTF-8表現で e5 90 a7"&gt;7&lt;/a&gt;&lt;/sup&gt;: &lt;a href="https://bugs.mojang.com/browse/MCPE/issues/MCPE-185216"&gt;MCPE-185216&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最後に、このリストの文字が発光を暗くする原因であることを確認するために、これらの漢字からいくつか選んで看板にテキストを設定してみました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="輝く看板に設定した0xa7を含む行が暗く光っている様子" height="500" src="/images/deeyohime/0xa7-all-signs.png" width="960"&gt;&lt;/p&gt;
&lt;p&gt;予想通り、貧・駅・租・旧・秘・欧・私・寧を含む行が暗くなっていて、それ以外は明るく光っているのが分かります。実は冒頭で述べた「でェョ姫」だけではなく、あらゆる「姫」を含む行がこのバグを引き起こします。あらゆる「姉」もあらゆる「性」も同じです。当初の予想よりかなり広範ですが、看板を輝くイカスミで光らせる必要がありますし、染料や装飾コードで着色した方が見た目もよいので、それらの割合を掛け合わせると出会う確率はそう高くないかもしれません。&lt;/p&gt;
&lt;p&gt;ちなみに、不適切な表現として &lt;em&gt;#####&lt;/em&gt; された文字列にこれらが含まれていた場合も、このバグは起こらなくなります。&lt;/p&gt;
&lt;p&gt;結論として、先に挙げた2つの挙動は「UTF-8表現で &lt;code&gt;a7&lt;/code&gt; を含む行において、色の設定されていない文字列が暗いグレーで発光する」という1つの理由で説明できると分かりました。そもそも &lt;code&gt;§&lt;/code&gt; のUnicodeコードポイントが &lt;code&gt;U+00a7&lt;/code&gt; ですし、UnicodeコードポイントでのチェックとUTF-8バイト列でのチェック（ &lt;code&gt;c2 a7&lt;/code&gt; ）を混同して、 &lt;code&gt;a7&lt;/code&gt; のみでチェックを行ってしまった、というくらいのことかもしれません。&lt;/p&gt;
&lt;p&gt;このようなUTF-8のバイト列を処理する際の考慮不足が引き起こすバグは、&lt;a href="/post/proton-calendar-0x85/"&gt;Latin-1と0x85のなぞ&lt;/a&gt;でも出会った経験があります。UTF-8が1コードポイントあたり1～4バイトという可変長で表現する都合上、エンコードのアルゴリズムはそれなりに複雑で、同じバイト列でも出現位置によって異なる文字を構成しうるわけです。&lt;/p&gt;
&lt;p&gt;みなさんもぜひ、いろいろな怪しいテキストで暗く光る看板を作ってみてくださいね。飽きたら壊して回収するか、ふつうのイカスミを使えば効果を解除できます。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:not-java-bug"&gt;
&lt;p&gt;Java版では起こりません: &lt;a href="/images/deeyohime/glow-ink-sac-java.png"&gt;参考画像&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:not-java-bug" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:bedrock-version"&gt;
&lt;p&gt;2025年5月末時点でv1.21.82です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:bedrock-version" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:not-effective-light"&gt;
&lt;p&gt;画面上では光って見えますが、Minecraft上で効果がある&lt;a href="https://ja.minecraft.wiki/w/%E6%98%8E%E3%82%8B%E3%81%95"&gt;明るさ&lt;/a&gt;は持っていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:not-effective-light" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:not-java-deco"&gt;
&lt;p&gt;Java版でもワールド名やサーバーの説明など限られた範囲で装飾コードを利用できます。ただし、装飾コードの解釈や効果が一部異なるようです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:not-java-deco" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:c-cedilla-utf8"&gt;
&lt;p&gt;UTF-8表現で &lt;code&gt;c3 a7&lt;/code&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:c-cedilla-utf8" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:u-0427-utf8"&gt;
&lt;p&gt;UTF-8表現で &lt;code&gt;d0 a7&lt;/code&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:u-0427-utf8" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ba-utf8"&gt;
&lt;p&gt;UTF-8表現で &lt;code&gt;e5 90 a7&lt;/code&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:ba-utf8" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>AIでライブ感のあるオーガズムを実現、今すぐ</title><link href="https://ama.ne.jp/post/super-ai-orgasm/" rel="alternate"/><published>2025-03-21T18:23:00+09:00</published><updated>2025-03-21T18:23:00+09:00</updated><author><name>stewpot</name></author><id>tag:ama.ne.jp,2025-03-21:/post/super-ai-orgasm/</id><summary type="html">&lt;p&gt;メイドと話しながらオカズを作り上げてその場で消費する。そういうライブ感のあるオーガズムを、AIなら今すぐ実現できる――&lt;/p&gt;</summary><content type="html">&lt;p&gt;メイドと話しながらオカズを作り上げてその場で消費する。そういうライブ感のあるオーガズムを、AIなら今すぐ実現できる――&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;まえがき&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ai"&gt;オカズを産む機械としてのAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ai_1"&gt;AIにオカズを産ませる具体例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;あとがき&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;まえがき&lt;/h2&gt;
&lt;p&gt;AIは、私たちのオーガズムを支える重要な技術になりつつある。少なくとも、これからも高品質な作品の周縁を埋め尽くす二級市民ではあり続けるはずだ。&lt;/p&gt;
&lt;p&gt;最近のSNSや技術ブログでは、AIに広範な資料を要約させ、熟練した専門家が3日ほどかけていた分析作業を30分ほどで終わらせたかと思えば、新たな市場に向けたアプリコードまで実装が済んでいた……そういうAIによって加速された生産性や人間に求められる変化について論じられている。しかし、その一方で私たちはより個人的で、デリケートで、自己完結するような課題をAIに取り組ませなければならない。&lt;/p&gt;
&lt;p&gt;今から伝えるのは、そのような個人的に閉じた範囲で役に立つAIの活用法である。&lt;/p&gt;
&lt;p&gt;さて、テトリスやシューティングゲームのようなプログラムを一瞬で出力できた、とSNSでエーアイをワイワイ持て囃す投稿を見たことはないだろうか？　AIはこんなにすごい、自分の力だけで動くゲームを作り上げるんだ。みんなも使ってみよう……それを見て、あなたはどう思っただろうか？　そう、AIはすごい技術だ。こんなつまらないゲームを手間を惜しまず平気な顔で作るんだから！&lt;/p&gt;
&lt;p&gt;実際のところ、AIがその場で作っただけのごくシンプルでつまらないゲームよりも、こんな未来が想像より遠い先にあった頃に販売された東方紅魔郷でもやり直した方がよっぽど面白いというのは、全く反論できない事実である。少なくとも、AIに頼り切る未来では、そういうつまらないゲームを作る意味はほぼない。自分が手を動かして習作するのであればコーディングや設計を学ぶ機会になっただろうに、そういった楽しみさえAIに引き渡しているからだ。&lt;/p&gt;
&lt;p&gt;では、彼らはなぜこのような無意味ながらくたを作って、かつ自慢げに投稿までしているのか？　もちろんそれは、自分がAIを活用しているという様子を含む投稿自体に意味があるからだ。社会的な評価のために、誇らしげに、他人を巻き込むための活動であって、オーダーメイドのゲームを楽しみたいという切実で個人的な課題を解決するためではない。&lt;/p&gt;
&lt;p&gt;そうしたAI活用の未来の虚像を示すだけの取り組みには、どのような目的があろうと意味がない。ここで紹介するのは、そうした新鮮な驚きにあふれた魅力的な可能性の提示とは真逆の、誰かに見せるまでもなく意味を持つ実用的な取り組みの一つとしての、オーガズムを支えるオカズの出力方法についての解説である。&lt;/p&gt;
&lt;p&gt;実際のところ、今から書くような内容はこのような記事で言うまでもない常識であって、誰もが当然に活用しているごく簡単なAIの活用法と言っても差し支えない。だから、この記事では細かいプロンプトのテクニックなどを並べ立てたりはしない。しかし、残り少ないシャンプーを使い切るために水で洗って誤魔化す人ばかりなら、最後まで使い切れるディスペンサーは商品化されなかっただろう。だから、私たちはこうやってAIを利用しているのだ、という主張を公開すること自体に意味がある。&lt;/p&gt;
&lt;p&gt;ここで、まず私の自己紹介を挟んでおく。私はstewpotという名前で&lt;a href="https://pixiv.me/stewpot_cat"&gt;pixiv&lt;/a&gt;やこの&lt;a href="/"&gt;あまねけ！&lt;/a&gt;を間借りしていて、主にセリフを並べ立てた台本風の作品（私はこれを「テキスト」と呼んでいる）を投稿している。女性や女性と類推できる存在、あるいはそのような存在を主体とする団体や国家などが、個人的あるいは社会的に男性の性欲を支配・利用・管理するシチュエーションを好んでいて、テキストでは特に金銭的な支配関係を含むストーリーを多く描いている。その当時のインターネットにおける一定の金銭的授受を含む関係については、&lt;a href="/post/findom/"&gt;搾取のススメ&lt;/a&gt;という記事を書いたこともあった。&lt;/p&gt;
&lt;p&gt;なぜ私がそういうテキストを好んで書いているのかというと、当然それが私のオカズになるからだ。私が昔からイラストや写真や動画だけではなく、どちらかといえばテキストに描かれた情報で興奮する人間であって、その体験を作品として残しているにすぎない。「エッチな学校の校則を考える」という旨の掲示板を、かつては何度も何度も読み返していたし、七度文庫にも少しお世話になっていた。七度文庫は物語のパターンが少なくすぐに飽きた記憶があって、それが20年越しに無限の可能性に向かって開かれたのは、やはり歴史的なイベントだった。イラストや写真の横に余白を付けてびっしりと文章で埋める伝統的な文字コラだって、著作権上問題のないAI生成画像が使われるようになってきている。&lt;/p&gt;
&lt;p&gt;だから、もしあなたにテキストでオナニーする習慣がなければ、実用上ではあまり役に立たないかもしれない。その場合は単なるエッセイとして読んでみてほしい。&lt;/p&gt;
&lt;p&gt;さて、私の思い出語りはここまでにして、話を現代に戻そう。&lt;/p&gt;
&lt;h2 id="ai"&gt;オカズを産む機械としてのAI&lt;/h2&gt;
&lt;p&gt;私たちがAIにオカズの生産を依頼するにあたって、まず意識しておくべきことがある。それは、AIの出力は決して高品質ではないし、創造的でもないし、たいした期待を寄せるべきでもないということだ。この点を興奮でバカになった脳みその隅にでも置いておかない限り、AIはあなたが引いたオーガズムへの坂道をガタガタに壊すポンコツに見えてくるだろう。&lt;/p&gt;
&lt;p&gt;AIの出力が高品質で創造的なのは、あくまであなたが創造的な依頼を丁寧に送信したからだ。その&lt;ruby&gt;&lt;rb&gt;創造性&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;クリエイティビティ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;がどこから生じたか、というあなたの長々とした解釈はどうあれ、やはりAIの出力自体は創造的ではない。例えば、SNSでよくシェアされている「AIにこんな出力させたらめっちゃ面白かった」という投稿は、しばしばAIに与えたプロンプト自体に独創性があり、または人間が独創的に見える出力を選んだのであって、AI自体がそのアイデアを考えて投稿したわけではない。将来的にはそうなるかもしれないが、その時には今とはずっと違う世界になっているはずだ。&lt;/p&gt;
&lt;p&gt;だから、オカズの生産に対する姿勢をほんの少し変える必要がある。&lt;/p&gt;
&lt;p&gt;ひょっとするとあなたは、AIを使って労力をかけずに何度も使いたくなるようなオカズを出力できるようになったと信じているかもしれない。AIは誰でも今すぐ大人気の小説家になれる可能性を持っているのだ、と言い換えてもいいだろう。しかし、あなたが現時点で人気の官能小説家でもない限り、その認識は間違っている。あなたがもし誇らしげに同志に示せるような出力を簡単に得られると思っているなら、これがごく個人的な課題を解決するための記事だということを思い出してほしい。&lt;/p&gt;
&lt;p&gt;AIの性能を決めるのは常にあなたの能力であって、その逆ではない。AIに面白い小説の一つでも書かせようと思った人であればよく実感することだろうが、AIはあなたの発想が決めた世界で作業を進めている。指示に合う細やかな情景描写などを長々と出力させればあなたの何倍も働くけれど、それ自体に独創的な面白さはない。大量にアイデアを出させてそこから書き出すという使い方もあるが、それだって独創性を見出したのはあなた自身のセンスだ。浜辺で拾った石から物語が生まれても、その物語は選び取って描写したあなたの作品であるのと同じように。&lt;/p&gt;
&lt;p&gt;そうだ。何度も言っているとおり、AI自体が考えてくる話は大して面白くない。だから、AIに頼り切って出力したオカズは一度きりの使い捨てにすることで初めて、その真価を発揮できるようになる。そうすれば、品質が二級か三級レベルのAIの出力であっても、あなたが興奮を高めてオーガズムに向かうには十分なオカズになるのだ。&lt;/p&gt;
&lt;p&gt;もう少し掘り下げてみよう。オカズを一度きりの使い捨てにするというのは、どういうことか。ごく単純に言うと、生産と消費を同時に済ませる取り組みだと表現できる。&lt;/p&gt;
&lt;p&gt;もし、AIとの一連の会話――セッションを、形式ばってたらい回しにされるサポートセンターのような融通の利かないものだと思っているなら、まずはその考え方を変えてみてほしい。どちらかと言えば、AIとの会話はあなたがよく気心の知れた友達と交わす気軽な雑談に近いものだ。&lt;/p&gt;
&lt;p&gt;実際のところ、あなたが気軽に友人と交わす雑談のほとんどは、全く面白くない内容だ。仮に面白いエピソードがあったとしても、それを他の人に伝えるときは、ある程度流れを再構成してから話していると思う。たぶん、その場で録った会話を誰かにそのまま聞かせても、それどころか後日自分が聞いても面白さは数段落ちてしまうだろう。しかし、きっとあなたも友人もその場で話しているときはとても楽しく、この上なく面白いと感じていたはずだ。&lt;/p&gt;
&lt;p&gt;気の合う仲間とその場限りの楽しい雑談をする――これは、今私が説明したAIとのやり取りと似てはいないだろうか？&lt;/p&gt;
&lt;p&gt;友人との雑談と、AIとの使い捨てのオカズ作りにはいくつか違いがある。まず、AIはあなたの話だけに寄り添ってくれること。そして、AIはどれだけふざけた突飛な話題でも真剣に応じてくれること。最後に、AIと会話しながら興奮しようと誰にも軽蔑されないこと、だ。&lt;/p&gt;
&lt;p&gt;ここで、気心知れた友人とは別の存在を考えてみる。あなたの話にいつでも寄り添ってくれて、あなたが興奮する性癖について心からごく真剣に向き合ってくれて、即興の会話劇やアイデアの掘り下げに応じる対応力があり、目の前でオナニーを始めても受け入れてくれる。まるで、エロ漫画から飛び出てきた都合の良すぎる住み込みメイドのような有能さを持つ存在を、現実で雇うとしたらいくらかかるだろうか。そもそも、そんな人間を雇い入れること自体が現実離れしている。&lt;/p&gt;
&lt;p&gt;しかし、AIならそれが可能である。AIはあなたの分身というよりも、あなたの指示をよく聞くメイドのようなものだ。あなたの性癖の内面までよく知っているわけではないが、少なくとも言葉で表現したことについては全力で受け入れて、それに合わせて尽くしてくれる。あくまであなたとは異なる思考を持つ存在が、あなたとの会話から興奮するような返答を推測して寄り添ってくれる。初めはおそらくあなたの性癖を勘違いした斜め上の返事ばかりだろうが、それはあなたがメイドにしっかりと性癖を伝えてきれていないからだ。&lt;/p&gt;
&lt;p&gt;メイドと話しながらオカズを作り上げてその場で消費する。そういうライブ感のあるオーガズムを、AIなら今すぐ実現できる。&lt;/p&gt;
&lt;h2 id="ai_1"&gt;AIにオカズを産ませる具体例&lt;/h2&gt;
&lt;p&gt;さて、ここからは前節で説明した信念に則って、実際にAIを使ったオカズの生産の例を示してみよう。つまり、AIを使って使い捨てのオカズを作り、同時に消費する。あくまでAIの品質や創造性には期待せず、形式ばらない指示の繰り返しで気軽なライブ感を楽しめばよい。&lt;/p&gt;
&lt;p&gt;最初に言ったとおり、これはあくまでAIとの会話を進める行為の延長であって、目新しいテクニックや概念を含むわけではないごく初歩的な活用方法である。AIをライブ感のあるオーガズムに活用するという一つの視点について理解してもらえれば幸いである。&lt;/p&gt;
&lt;p&gt;まず、AIサービスを選ぶ。条件はたった一つで、性的な話を明示的にブロックしてくるAIを選んではならない。性的な話とそうでない話を区別してプロンプトを工夫するというのは、まるで食品会社のサポートセンターに電話してどうにかオナニーを手伝わせようとするようなもので、無意味な回り道に全く無駄な時間をかけている。ChatGPTで官能小説を出力させるテクニックなどもよく知られているが、いや～これはエーアイが考えるほどエッチじゃないんですよ～と言い訳する無駄な思考は、質の良いオーガズムの邪魔にしかならない。&lt;/p&gt;
&lt;p&gt;だから、この記事の執筆時点では、もっぱら&lt;a href="https://grok.com/"&gt;Grok&lt;/a&gt;を使うのをすすめる。他のモデルやチャットサービスにこだわりがあれば、もちろん条件を満たしている限りでそれらを使ってもよい。&lt;/p&gt;
&lt;p&gt;今回は、最近買った音声作品の台本データを渡して、同じような世界観のテキストを出力してもらう。&lt;/p&gt;
&lt;p&gt;もしその場で作りたいシチュエーションが思いついているなら、その説明を書いていってもよいだろう。気に入った音声作品のシチュエーションとか、pixivで読んだ性癖によく刺さる小説があれば、そのまま貼り付けた方が早い。私は日頃から音声作品の台本をオカズにしがちなので、台本テキスト自体非常に役に立つものだし、こういう用途にも有用だ。もし台本が付属していなければ、文字起こしにかけてしまうとよい。&lt;/p&gt;
&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
この音声作品の台本の延長で、後日この2人とサークルで会ったときの会話を再現したいです。以降私があなたに指示する内容は男性の登場人物（タカシ）の発言として扱い、そこに応答する形で会話を進めましょう。&lt;br&gt;
ただし、かっこ【】書きの中身は状況や動作の描写や、以降の2人が取るべき行動を示しており、タカシの発言ではありません。&lt;br&gt;
【この会話を終了します】という言葉で会話を終わります。&lt;br&gt;
-----&lt;br&gt;
（台本テキストを貼り付ける）&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
了解しました。以降の会話はタカシの視点で進め、ユカとハルナが応答する形で会話を再現していきますね。それでは、後日サークルで会った場面から始めましょう。&lt;br&gt;
タカシ: 「お、お疲れー。いやー、サークルの飲み会って毎回盛り上がるけど、今日も楽しかったな。ユカ、ハルナも来てくれて良かったよ。」&lt;br&gt;
【タカシは少し緊張した様子で二人に話しかける。飲み会の後で少し疲れているが、あの日のことを思い出すと少し顔が赤くなる。】&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;基本的に、最初に渡す説明はかなり長めにしっかり設定を記載して、それ以降の会話は短めに進める。必要なら長々と書いてもよいが、わざわざ丁寧に書かずともある程度は理解してくれる。こちらの入力を台詞として扱わせて進めるのは、文字の量が少なくてやりやすいスキームだ。&lt;/p&gt;
&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
二人はこのあとって時間ある？&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
ユカ: 「え、私？うーん、特に予定はないかな。今日はサークルで終わりだし、後は帰って寝るくらいかも。ハルナはどう？」&lt;br&gt;
ハルナ: 「私もー。別に予定ないよ。飲み会でちょっと飲んじゃったから、帰ってダラダラするつもりだったけど。ねえ、タカシ、なんか用事でもあんの？」&lt;br&gt;
【ユカは少し驚いた顔でタカシを見つつ、ハルナに視線を移す。ハルナは軽いノリで返しつつ、タカシの意図を探るようにニヤッと笑う。】&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
あーその……今から俺の家で飲まない？&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
ユカ: 「え、タカシの家で？うーん、急に誘うなんて珍しいね。どうしたの、なんか企んでるの？」&lt;br&gt;
ハルナ: 「おおー、タカシからのお誘いキター！飲むのはいいけどさ、ほんと大丈夫？この前あんなだったのに、家に呼ぶとか大胆じゃん？ふふ、面白そうだから私行っちゃうよ～。」&lt;br&gt;
【ユカは少し疑うような目でタカシを見つめつつも、興味津々といった表情。ハルナはニヤニヤしながらタカシをからかうように笑い、ノリ気な様子を見せる。】&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;話をぴっちり埋める必要もない。AIが提示したシーンが飲み会の後なら、誰かの家に集まるのが自然な流れだし、そこまでは何も起こらないだろう。見たいシーンまで適当にスキップさせる。&lt;/p&gt;
&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
【二人が家に来るシーンまでスキップ】&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
【場面がスキップされ、タカシの家にユカとハルナが到着する。リビングに三人で座り、テーブルには缶ビールや簡単なおつまみが並んでいる。タカシは少しソワソワしながら二人を迎え入れ、ユカとハルナは興味深そうに部屋を見回している。】&lt;br&gt;
タカシ: 「えっと、まあ適当に座ってよ。飲み物とか適当に持ってきたけど、足りなかったら冷蔵庫にあるからさ。とりあえず乾杯でもするか？」&lt;br&gt;
【タカシは緊張を隠そうとしながらビールの缶を手に持つ。ユカとハルナはそれぞれソファに座り、タカシの様子をチラチラ見ながら缶を取る。】&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;以降、いい感じに会話を進める。台本を通じて二人のプレイ傾向や寸止めでの料金発生、射精シーンまで与えているので、適当なプロンプトでも最後まで導いてくれる。&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;金額の交渉と射精まで（タップで展開）&lt;/summary&gt;
&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
【撮影の時と同じように乳首舐め手コキしながら、金額の交渉を始める】&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
【タカシはユカとハルナに耳元で囁かれ、恥ずかしさと興奮で体を震わせている。二人はあの撮影の日を思い出したように、さらにタカシを追い詰めるべく、乳首舐めと手コキを再現し始める。同時に金額の交渉を切り出す。】&lt;br&gt;
タカシ: 「う、うぁ……ま、またそれ、やるのかよ……」&lt;br&gt;
ユカ: 「んちゅ♡ちゅぱ♡ふふ、タカシ、この前みたいに乳首舐めてあげるね。気持ちいいでしょ？でもさ、今日は撮影じゃないから、タダじゃできないよ。いくら出してくれる？」&lt;br&gt;
ハルナ: 「じゅる♡ちゅぱ♡ほら、手も動かしてあげる。この前みたいに気持ちよくしてほしいならさ、いくら払うかちゃんと言ってよね。タカシのおちんぽ、もうびくびくしてるし、我慢できないでしょ？」&lt;br&gt;
【ユカはタカシの左側の乳首に舌を這わせ、優しく舐めながら耳元で金額を尋ねる。ハルナは右側の乳首を舐めつつ、空いた手でタカシのちんぽを握り、ゆっくり上下に動かし始める。タカシは二人の同時攻撃に耐えきれず、喘ぎながらも交渉に応じざるを得ない状況に追い込まれる。】&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
【寸止めまで続けて】&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
【タカシはユカとハルナの乳首舐めと手コキに翻弄され、1万円を払うと約束したものの、二人は寸止めまで続けるつもりでさらに責めを強める。タカシの体は快感で限界に近づき、喘ぎ声が部屋に響く。】&lt;br&gt;
タカシ: 「う、うぁ……もう、だめだって……！」&lt;br&gt;
ユカ: 「んちゅ♡じゅる♡ちゅぱ♡ダメって言うけど、タカシ、ほら、おちんぽこんなに膨らんでるよ。イキそうなんだよね？でもまだダメ♡この前みたいにギリギリまで我慢してね。1万円分、ちゃんと楽しませてあげるから♡」&lt;br&gt;
ハルナ: 「じゅる♡ちゅぱ♡しこしこ♡ふふ、タカシ、もうイっちゃいそうな顔してるじゃん。気持ちいいよね？乳首もおちんぽもビクビクしてる。でもさ、1万円なら寸止めまでがセットだよ～。ほら、我慢して♡」&lt;br&gt;
【ユカは乳首を舌で転がしながら、タカシの限界を見極めるようにじっくり責める。ハルナは手コキの動きを絶妙に調整し、タカシが射精寸前になる瞬間を見計らう。二人は息ぴったりにタカシを追い詰め、快感と我慢の狭間で悶えるタカシの反応を楽しんでいる。】&lt;br&gt;
タカシ: 「あ、あぁっ……！もう、限界……！」&lt;br&gt;
【タカシの体が大きく震え、腰が浮き上がりそうになるその瞬間、二人は同時に手を止める。】&lt;br&gt;
ユカ: 「ストップ♡」&lt;br&gt;
ハルナ: 「ストップ♡」&lt;br&gt;
【タカシは寸止めされ、切なそうな声を上げてソファに崩れ落ちる。息が荒く、体はまだビクビクと震え続けている。】&lt;br&gt;
ユカ: 「ふふ、うまく寸止めできたね。タカシ、頑張ったよ。1万円分、ちゃんと楽しめたでしょ？」&lt;br&gt;
ハルナ: 「ねえ、めっちゃ苦しそうな顔してる！でもさ、これが1万円の価値だよ～。タカシ、えらいえらい♡」&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
しゃ、射精は……？&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
【タカシは寸止めされた直後で息を荒げ、切なそうな目でユカとハルナを見つめる。体はまだ快感の余韻で震え、解放を求める声が震えている。】&lt;br&gt;
ユカ: 「え、射精？ふふ、タカシ、1万円じゃ寸止めまでだよ？この前みたいに射精までしてほしいなら、もうちょっと出さないとね。どうする？追加でお願いする？」&lt;br&gt;
ハルナ: 「そうそう、1万円って言ったのはタカシだしさ、それでここまで気持ちよくしてあげたんだから充分でしょ～。射精したいならさ、もう5000円くらい追加で出せばいいじゃん？ほら、こんなにビクビクしてるんだから、欲しくてたまらないよね？」&lt;br&gt;
【ユカは優しく微笑みながら、タカシの期待を煽るように提案する。ハルナはニヤニヤしながらタカシのちんぽを軽く指でつつき、さらなる交渉を促す。二人はタカシの切なそうな表情を見て楽しんでいる様子。】&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;（以下、射精まで記載を省略）&lt;/p&gt;

&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
【タカシは身体とちんぽをびくつかせながら漏れる声を止められません】&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
【タカシは解放の瞬間を迎え、身体とちんぽを激しくビクつかせながら、抑えきれずに漏れる声を響かせる。ユカとハルナはタカシの反応を見ながら、満足げにその様子を眺めている。】&lt;br&gt;
タカシ: 「あ、あぁっ……！う、うぅ……はぁっ……」&lt;br&gt;
【タカシの体は射精の快感で何度も痙攣し、ちんぽは脈を打つたびに残りの精液を吐き出す。声は喘ぎと吐息が混ざり合い、止めようとしても止まらない。ソファにぐったりと凭れ、息を荒げながら放心状態に陥っている。】&lt;br&gt;
ユカ: 「ふふ、タカシ、すごかったね。ほら、こんなにびくびくして、声も止められないくらい気持ちよかったんだ。1万5000円分の価値、あったでしょ？」&lt;br&gt;
ハルナ: 「うわ、マジでいっぱい出た！タカシ、ちんぽまだビクビクしてるじゃん。声もエロすぎて笑える～。ほんと溜まってたんだね。気持ちよすぎて放心してる顔、めっちゃ可愛いよ♡」&lt;br&gt;
【ユカは優しく微笑みながら、タカシの肩を軽く叩いて労う。ハルナはニヤニヤしながらタカシのちんぽを指で軽くつつき、飛び出した精液の量に驚きつつからかう。二人はタカシのぐったりした姿を見て、満足そうに笑い合う。】&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;/details&gt;

&lt;p&gt;シーンが終わったので、最初に渡していたキーワードで会話を終わらせる。&lt;/p&gt;
&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
【この会話を終了します】&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
【タカシはユカとハルナの雑談を聞きながら、ソファでぐったりしたまま。ユカとハルナは満足そうに笑い合い、会話が自然と終わりを迎える。二人は立ち上がり、タカシに軽く手を振って部屋を出ていく準備を始める。】&lt;br&gt;
ユカ: 「じゃあ、タカシ、またね。お金貯めておいてよ？」&lt;br&gt;
ハルナ: 「週末楽しみにしとくからね～。バイバイ、タカシ！」&lt;br&gt;
【会話が終了し、ユカとハルナはタカシを残して部屋を後にする。タカシはまだ放心状態で、ソファに横たわったまま小さく息をつく。】&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;この後はセッションを閉じてもいいし、さらに別のシーンを書かせたり、同じシーンを別の視点で書かせることもできる。こうした穴埋めは、AIが最も得意とするところだ。&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;さらにプレイがエスカレートする様子（タップで展開）&lt;/summary&gt;
&lt;blockquote class="ai-conversation-user"&gt;
&lt;p&gt;
この遊びが長い期間でエスカレートして、タカシが別の男友達から借金して二人にお願いするシーンを見てみたいです。内容としては、乳首舐め手コキからさらにM性が増して床に差し出したちんぽを踏みつけるプレイになっています。ハルナが踏みつけて、ユカが後ろから耳元で男を貶める言葉責めをする感じでお願い。&lt;br&gt;
&lt;cite&gt;by user&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class="ai-conversation-system"&gt;
&lt;p&gt;
【時間が経ち、タカシとユカ、ハルナの「遊び」は長い期間にわたってエスカレートしている。タカシは快感に溺れ、ついに別の男友達から借金をしてまで二人にお願いするまでに至った。シーンはタカシの部屋で、タカシが床に跪き、二人の前にちんぽを差し出している状況。ハルナが足で踏みつけ、ユカが後ろから耳元で言葉責めをする展開で進む。】&lt;br&gt;
タカシ: 「頼むよ、ユカ、ハルナ……友達から5万円借りてきたからさ、これでまた遊んでくれよ……」&lt;br&gt;
【タカシは床に跪き、恥ずかしそうに目を伏せながら二人に懇願する。手に握られた5万円が震え、すでに興奮でちんぽが硬くなっているのが服の上からでもわかる。】&lt;br&gt;
ユカ: 「ふーん、タカシ、友達から借金までして5万円持ってきたんだ。すごいね、ほんとどうしようもないね。こんな恥ずかしいお願いするために借金するなんて、みっともない男だよ。」&lt;br&gt;
【ユカはタカシの背後に回り込み、後ろから耳元に囁く。声は優しげだが、言葉は容赦なくタカシを貶める。】&lt;br&gt;
ハルナ: 「マジで？5万円も借りてきたの？タカシ、どんだけ私たちにハマっちゃってんの～？ほら、じゃあさ、床にちんぽ差し出してよ。今回は踏んであげるからさ、ちゃんと喜べよ？」&lt;br&gt;
【ハルナはニヤリと笑い、タカシの前に立つ。タカシがズボンを下ろし、床にちんぽを差し出すと、ハルナは靴を脱いで素足で軽く踏みつける。】&lt;br&gt;
タカシ: 「う、うぁっ……！」&lt;br&gt;
【タカシはハルナの足に踏まれ、痛みと快感が混じった声を漏らす。体がビクッと震え、ユカの言葉にさらに反応してしまう。】&lt;br&gt;
ユカ: 「ねえ、タカシ、こんなふうに女の子の足でちんぽ踏まれて気持ちいいんだ？ほんと情けないね。借金してまでこんなこと頼むなんて、友達に知られたら笑いものだよ。ふふ、でもタカシにはお似合いかもね、この惨めな感じ。」&lt;br&gt;
【ユカはタカシの耳に息を吹きかけるように囁き、言葉でタカシの羞恥心を煽る。両手でタカシの肩を軽く押さえ、後ろから逃げられないようにする。】&lt;br&gt;
ハルナ: 「ほら、タカシ、もっと感じてみせてよ。5万円払うんだからさ、この足でグニって踏まれるの、嬉しいよね？あ、ちょっと硬くなってきたじゃん。踏まれるだけで勃起するなんて、変態すぎるって！」&lt;br&gt;
【ハルナは足の裏でタカシのちんぽを軽く押し潰すように動かし、先端を指先でグリグリと刺激する。タカシの反応を見て楽しそうに笑う。】&lt;br&gt;
タカシ: 「あ、あぁ……や、やばい……気持ちいい……」&lt;br&gt;
【タカシは床に手を突き、喘ぎながら体を震わせる。ハルナの足の感触とユカの言葉に翻弄され、快感と屈辱感が混ざり合って頭が混乱している。】&lt;br&gt;
ユカ: 「気持ちいいんだ？タカシ、ほんと最低だね。女の子に踏まれて喜ぶなんて、男として終わってるよ。こんなちんぽ、誰にも見せられないよね。借金までして私たちに媚びてるんだから、ほんと惨めなマゾだね。」&lt;br&gt;
【ユカはタカシの耳元でさらに辛辣な言葉を浴びせ、軽く耳を舐めるようにして追い詰める。タカシの体がビクンと跳ね、ユカの声に反応してしまう。】&lt;br&gt;
ハルナ: 「うわ、タカシ、ユカの言葉でビクってした！ほんとマゾだね～。ほら、もっと踏んであげるよ。5万円分楽しんでよね？こうやって足の裏で擦られるの、たまんないでしょ？」&lt;br&gt;
【ハルナは足を少し強めに動かし、タカシのちんぽを足裏で擦り上げる。時折指先で先端を弾くようにして、タカシの限界を試すように責める。】&lt;br&gt;
タカシ: 「う、うぅっ……！もう、だめだ……出そう……」&lt;br&gt;
【タカシは床に額を擦り付けそうになりながら、切なそうな声を上げる。ハルナの足とユカの言葉に耐えきれず、射精が近づいているのが明らかだ。】&lt;br&gt;
ユカ: 「出そう？ふふ、タカシ、こんなみっともない姿でイっちゃうんだ。借金してまで踏まれてイクなんて、ほんと救いようがないね。惨めなマゾのちんぽ、私たち以外誰も相手しないよ。」&lt;br&gt;
ハルナ: 「いいよ、イっちゃえよ、タカシ。5万円払って踏まれるの我慢して、ここでびゅーって出すんだからさ。ほら、足でグリグリしてあげる。出しなよ、変態マゾの精液♡」&lt;br&gt;
【ユカはタカシの耳元で嘲笑うように囁き続け、ハルナは足の動きを加速させてタカシを追い詰める。タカシはついに限界を迎え、床に精液を撒き散らしながら喘ぎ声を上げる。】&lt;br&gt;
タカシ: 「あぁっ……！出る、出ちゃう……！」&lt;br&gt;
【タカシの体が大きく震え、ハルナの足の下で射精する。ユカとハルナは満足そうにその姿を見下ろし、タカシは床に崩れ落ちて息を荒げる。】&lt;br&gt;
ユカ: 「ふふ、終わっちゃったね、タカシ。5万円分、楽しめたかな？」&lt;br&gt;
ハルナ: 「借金してまでこれだもん、タカシ、ほんとどうしようもないね。次はもっと借りてくるんだよ？もっと楽しいことしてあげるからさ～。」&lt;br&gt;
【二人は笑いながらタカシを見下ろし、5万円を受け取って部屋を出ていく準備を始める。】&lt;br&gt;
&lt;cite&gt;by system&lt;/cite&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/details&gt;

&lt;p&gt;今回はこの遊びにハマった3人がエスカレートする様子を書いてもらった。私はここから、男性が支配される様子をそのまま教材のビデオとして扱う学校の講義を書いてもらったり、その講義を受けた生徒のレポートを書いてもらったり、教材をクラスの男子に実践する様子を書いてもらったり、画面の向こうから私自身と話してもらうこともある。&lt;/p&gt;
&lt;p&gt;後から見返すと視点や世界が悪夢のように切り替わっていくのが面白いのだが、使い捨てのオカズだと思えば当然のことだ。自分の思いつきで今興奮しそうなことを打ち込んでいくのだから、思考過程の時点から夢を見るのと変わらないと言えば分かるだろう。そして、自分が見た夢の話を他人に伝えても、その面白さは半分も伝わらない。&lt;/p&gt;
&lt;p&gt;ここで言っておくべきなのは、あくまでこのAIは音声作品のために丁寧に作られた台本の品質を元にテキストを出力しているのであり、このような語彙や構成力がAI自身に含まれているわけではない。この出力を読んで惹かれるところがあるとすれば、元の台本に含まれていた要素やセリフである可能性が非常に高い。&lt;/p&gt;
&lt;p&gt;上記の例のように、私がきちんと情報を含んだ指示を出せばそれに従ったストーリーを出すことができるが、一方で「いい感じ」に推測させるのは非常に難しい。例えば、音声作品の本編で行われていた「寸止め選手権」が別のキャラクターや別の舞台で行われていたらどうなるか？という妄想に対しては、名前と口調をすげ替えただけの省エネな二次創作でしか答えてくれないはずだ。キャラの性格やストーリーについて、ちょっとした指示を加えれば書き直してくれるだろうが、それは「いい感じに」書いてくれたのではなく「あとはやるだけ」を埋めてくれたにすぎない。&lt;/p&gt;
&lt;p&gt;AIがどれだけ指示を推測してくれるのかを推定し、それに対してライブ感を保つ範囲でどれだけ情報を与えるかというのは、慣れていなければ少し訓練が必要かもしれない。もちろん、お堅いAIを騙して性的なコンテンツを出力させるよりはよっぽど気楽なものだ。&lt;/p&gt;
&lt;h2 id="_2"&gt;あとがき&lt;/h2&gt;
&lt;p&gt;ここまで書いたとおり、AIはで私たちをオーガズムに導くというデリケートかつごく個人的な課題を解決するのには十分な能力を持っている。これまで世に送り出された素晴らしい作品を元に、ライブ感のある二級レベルの出力を好きなだけ繰り返してくれるというのは、AIの能力を十分に活用したこれからのオカズの生産方法になると思う。&lt;/p&gt;
&lt;p&gt;このムーブメントがつまらないゲームプログラムのライブコーディングより重視されないのは、最終的に得られる出力が長大なテキストというごく地味なもので、その一つ一つの断片には大きな驚きもなく、さらにはごく個人的で、隠すべき性的な事項で、全く誇らしくもないからだ。しかし、日々の食事に派手さや驚きを求めるのはSNSに綺麗な皿の写真を上げるような人だけで、多くの人はちょっとした調理で栄養が十分なら見た目はそれなりで構わない。それはAIの活用だって同じだ。&lt;/p&gt;
&lt;p&gt;私の論調からも分かると思うが、AIは決して人間の代わりにはならない。あなたよりあらゆる面で優秀な人間がいたとしても、あなた自身の代わりにはならないのと同じだ。私たちは独創性を持ってAIに向かい、自分が必要な出力を受け取り続ける。これはオカズの生産に限らず、AIと向き合って解決できる分析やコーディングなどの全ての課題においても同様である。&lt;/p&gt;
&lt;p&gt;では、自分の手で作品を書くことに意味は残るだろうか？　もちろん、意味はある。AIに賭けている人が主張する創造性というのは、せいぜい「あとはやるだけ」を埋める能力だ。「あとはやるだけ」の範囲を拡大していくうちに、それが「いい感じに」出力されているように見えるようになるかもしれないが、それはもともと課題の難易度が低かったということだ。やはり私たちは「いい感じに」解決するために「あとはやるだけ」まで手を動かさなければならないし、私はそのためにまだテキストを書き続けるだろうと思う。&lt;/p&gt;
&lt;p&gt;それに、自分がどのようなことに興奮するのかしっかり自覚していない、あるいはまだ自分の性癖を満たすコンテンツに出会っていない人のために書き続けるというのも、十分な動機になるだろう。&lt;a href="https://x.com/stewpot_cat/status/1275119561872773120"&gt;私が書いたテキストがイメクラに台本として持ち込まれていた&lt;/a&gt;のは、5年経った今でも私に元気を与えてくれる。AIの進歩にしたがって、丁寧に口調を揃えてセリフを羅列したテキストの投稿ではなく、世界観やシチュエーションを記載した無骨なプロンプトの共有に置き換えられるかもしれないが、それも「あとはやるだけ」の範囲が広がったというだけだ。&lt;/p&gt;
&lt;p&gt;というわけで、みなさんもAIを活用して、ライブ・オーガズムを体験してみてはいかがだろうか。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>ザ・ゲームブックシリーズ 人形を操る魔女事件</title><link href="https://ama.ne.jp/post/kiminami/" rel="alternate"/><published>2025-03-04T20:53:00+09:00</published><updated>2025-03-04T20:53:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-03-04:/post/kiminami/</id><summary type="html">&lt;p&gt;ふしぎ体験 キミ＆ナミ&lt;/p&gt;</summary><content type="html">&lt;h2 id="1107"&gt;1～107&lt;/h2&gt;
&lt;p&gt;/* この作品は「ふしぎ探検キミ＆ユメ ～消えた人形事件～」を元にしたファン・フィクションです。作品の公式設定を追加または削除したり、置き換えたりするものではありません。 */&lt;/p&gt;
&lt;h2 id="108"&gt;108&lt;/h2&gt;
&lt;p&gt;きみの名前は、 &lt;strong&gt;&lt;ruby&gt;&lt;rb&gt;渡守&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;わたもり&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;&lt;ruby&gt;&lt;rb&gt;希美&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;きみ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;&lt;/strong&gt; 。通称 &lt;strong&gt;「キミ」&lt;/strong&gt; だ。&lt;/p&gt;
&lt;p&gt;本が好きで、遊ぶことも好き、元気が取り柄の、ごく普通の四年生だ。&lt;/p&gt;
&lt;p&gt;さて、町のあちこちで人形がひとりでに姿を消してしまった「消えた人形事件」が解決してから１か月くらいが経った。&lt;/p&gt;
&lt;p&gt;あの事件は、駅前広場のからくり仕かけ時計にある人形の城で起きていたんだ。そこでは、人形たちの無念さや悲しみから生まれた〈人形の王〉が、捨てられた人形たちを集めて〈人形の王国〉を作ろうとしていた。でも、きみが〈人形の王〉を説得したおかげで〈人形の王国〉と人間の世界が共存できるようになって、町は平和を取り戻した。&lt;/p&gt;
&lt;p&gt;あれから、きみが解決しなきゃならない事件はまだ起こっていない。きみと一緒に「ふしぎ探検団」として事件を解決した神さまの「ユメ」は、今もきみの部屋に居座ったままだ。ユメの力でしゃべるようになったきみのスマホ「ツクポ」も、ふしぎなことが起こらないせいで少し退屈そうに見える。いや、事件なんて起こらない方がいいんだけど。&lt;/p&gt;
&lt;p&gt;（PDF版で遊ぶなら、&lt;a href="/appendices/kiminami/kiminami.pdf"&gt;ゲームブック&lt;/a&gt;をダウンロードして印刷しよう）&lt;/p&gt;
&lt;p&gt;（このまま遊ぶなら、ほかの章を読まないようにして、&lt;a href="#110"&gt;110&lt;/a&gt;へ進もう）&lt;/p&gt;
&lt;h2 id="109"&gt;109&lt;/h2&gt;
&lt;p&gt;ナミさんはきみの返事を聞いて「ありがとう、キミちゃん。嬉しいわ」と微笑んだ。それから、部屋の隅に置かれていた三脚をベッドのそばに立てて、撮影の準備を始めた。&lt;/p&gt;
&lt;p&gt;「じゃあ、まずは仰向けに寝てね。両手は横に置いて、リラックス。私が直接動かしてポーズを変えるから、自分では動いちゃダメよ」&lt;/p&gt;
&lt;p&gt;きみはナミさんに言われた通り、ベッドの真ん中に寝そべった。ふかふかの枕が柔らかい。ナミさんがきみの右手を少し頭の方に持ち上げるのに合わせて、きみは右腕の力を抜く。「痛くない？」と尋ねられたきみは、人目を盗んで夜に動き出す人形になったつもりで、とても小さくゆっくりと頷いた。&lt;/p&gt;
&lt;p&gt;きみが頷くのを確認したナミさんは、持ち上げたきみの手の指先を包み込むようにきゅっと丸めた。そして、左腕も同じように優しい手つきで包み込む。自分の身体なのに、きみは両腕にかかった力を自由に押し戻せなくなっていく気がした。でも、腕から力が抜けてだらんと落ちてしまうわけでもない。ナミさんがきみの身体に直接与えた指示を、きみの身体は忠実に守ろうとしている。&lt;/p&gt;
&lt;p&gt;そして、きみのポーズを一通り整えたナミさんは、カシャッと一枚目の写真を撮った。自分で動かせなくなった両腕を写真に収められると、きみはなんだか恥ずかしいような、怖いような気分になる。でも、優しいナミさんになら、きみの身体を任せてしまってもきっと大丈夫。それに、人形を操るのだってよく慣れているはずだ。きみは張り詰めていた気持ちを追い出すように、ゆっくりと息を吐いた。&lt;/p&gt;
&lt;p&gt;それからナミさんは、きみの左足をちょっとだけ曲げて、またカシャッ。左足を戻したら、右足も同じような動きを繰り返す。ストップモーション・アニメーションなら、今はきっときみはベッドの上で歩いているはずなのに、ナミさんに触られたところからどんどん自分の意思が抜けていく。きみはいつの間にか、その感覚が心地よくなっていた。&lt;/p&gt;
&lt;p&gt;（&lt;a href="#120"&gt;120&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="110"&gt;110&lt;/h2&gt;
&lt;p&gt;「あら、人形になる夢を見るの？　私も小さい頃に見たことがあるわ。とってもすてきねえ」&lt;/p&gt;
&lt;p&gt;きみは、「消えた人形事件」の調査中に出会った人形アニメ作家のナミさんの洋館にいる。&lt;/p&gt;
&lt;p&gt;町の平和とは裏腹に、きみは最近ふしぎな夢を見るようになっていた。きみが〈人形の王〉を説得するのに失敗して、小さな身体のまま人形になってしまう夢だ。でも、〈人形の王国〉には学校も宿題もないし、ずっとゴロゴロしていても怒られない。そんな楽な生活に身を任せているうちに、きみは自分が人間なのも忘れてしまって……いつもそこで目が覚める。&lt;/p&gt;
&lt;p&gt;このふしぎな夢を見た後は、きみはしばらく手足が動かなくなってしまう。もしこのままたくさんの人形が押し寄せて〈人形の王国〉に連れ去られたら、抵抗できないまま人形に変えられてしまうかもしれない。そう思うと、きみは少し怖かった。&lt;/p&gt;
&lt;p&gt;きみはユメにそのことを話したけど、ただの夢の話だからとまともに取り合ってくれなかった。ツクポもやはり事件は何も起こっていないと言っているし、やっぱりきみの〈人形の王国〉の記憶が形を変えて夢に出てきただけかもしれない。&lt;/p&gt;
&lt;p&gt;それで、きみはナミさんに自分が見ている夢について話すことにした。ナミさんは前に夢占いを勉強していたことがあるらしい。本棚から月や星座が描かれた綺麗な本を何冊か取り出して、夢に人形が出てくる意味について教えてくれた。&lt;/p&gt;
&lt;p&gt;「えーと……でも、人形になる夢って、あまりいい意味じゃないわね」&lt;/p&gt;
&lt;p&gt;ナミさんは本に書かれた夢の解説をいくつか読み上げてくれた。自分が操られているような感覚や、感情を出せなくなっているとか、強いプレッシャーを感じているとか、そんな意味があるらしい。どれもきみの気持ちをぴったり言い当てているようには思えないけど、少しだけ思い当たることがあった。それは、ユメのことだ。&lt;/p&gt;
&lt;p&gt;神通力を使い果たしたユメは、一週間くらいは何もせずゴロゴロと横になっていたけど、力が回復してからはそれも飽きてきたらしい。おやつや漫画を欲しがったり、ツクポに話し相手になってもらうくらいはいつものことだけど、最近は部屋で宿題をしているきみの邪魔までしてくるようになっていた。&lt;/p&gt;
&lt;p&gt;今日だって、きみの宿題なんておかまいなしで話しかけてくるユメから逃げて、この人形館までやってきたのだ。きみはユメに「そんなに退屈ならお社に帰ってよ」とでも言い返したくなったけど、そういうわけにもいかない。神さまにあんまり悪口を言うと罰が当たりそうだし、ユメの力に助けられたのも一度や二度ではなかったからだ。ひょっとすると、これがきみが感じている強いプレッシャーってことなのかもしれない。&lt;/p&gt;
&lt;p&gt;「その気持ちにちゃんと向き合えば、きっと解決するわ。リラックスしてね、キミちゃん」&lt;/p&gt;
&lt;p&gt;（&lt;a href="#111"&gt;111&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="111"&gt;111&lt;/h2&gt;
&lt;p&gt;人形館に来たきみは、やっとのことで今日の宿題を終わらせた。ふと、壁にかかったレトロな振り子時計を見上げると、すっかり夕方になっている。人形館の部屋は、飾られた人形が日に焼けないように昼でもしっかりと遮光のカーテンが引かれているので、時計を見るまで気付かなかったようだ。&lt;/p&gt;
&lt;p&gt;カーテンの隙間から外を覗くと、もう空は夕暮れを深く飲み込んで暗くなっていた。住宅地の外れにあるこの洋館の周囲は、通学路に比べてとても街灯が少ない。家まではほんの10分ほどの距離でも、ふつうの四年生がこの暗い中を歩いて帰るのはちょっと危険かもしれない。前に夜中の12時の公園に行ったことはあるけど、あれだって人形の謎を追うために夢中でやったことで、本当は危ない行動なのだ。&lt;/p&gt;
&lt;p&gt;どうしよう、と思ってきみが外を見つめていると、ちょうど別の部屋で人形のお手入れをしていたナミさんが戻ってきた。&lt;/p&gt;
&lt;p&gt;「ねえ、キミちゃん。そろそろお家に帰らなくても大丈夫かしら」&lt;/p&gt;
&lt;p&gt;カーテンを閉じて振り向くと、ナミさんは少し申し訳なさそうにしていた。たぶん、ナミさんも作業に夢中できみが何時に帰るか尋ねるのを忘れていたのだろう。きみは心配ごとをずばり言い当てられたような気がして、悲しくもないのに急に涙がこみ上げてきた。&lt;/p&gt;
&lt;p&gt;きみは慌てて涙を拭く。ナミさんは、きみが泣いていたことには気付いていないみたいだ。&lt;/p&gt;
&lt;p&gt;「外も暗くなっちゃったし、お家まで送ってあげましょうか？」&lt;/p&gt;
&lt;p&gt;そう言われたきみは、さっきまで窓の隙間から見ていた洋館の暗い庭のことを思い出す。人形館の庭はよく手入れされていて、昼のうちはこぢんまりとした静かなイングリッシュガーデンという印象だった。しかし、今は暗がりで揺れる草花や、つるバラが巻き付いた鈍い輝きを放つロートアイアンのアーチから、なんだか不気味な雰囲気が漂っている。&lt;/p&gt;
&lt;p&gt;いつもなら、あれだけふしぎな事件を解決したきみにとっては、なんてことない風景のはずだ。幽霊の正体見たり枯れ尾花、という言葉もちょうど学校で習ったばかりだった。でも、目尻に残った涙に気持ちが引きずられてしまったせいか、きみはどうにも心細くなってしまう。たとえナミさんと一緒だとしても、今はあの庭を通りたくないと思った。&lt;/p&gt;
&lt;p&gt;もしユメがそんなきみの姿を見たら、「キミさんや。気持ちを強く持たねばならぬぞ」なんていばって言うかもしれない。でも、ユメはきみの部屋でまだ昼寝でもしているだろう。人形館にいる間は、いつもはよくしゃべるツクポも黙ったままだった。&lt;/p&gt;
&lt;p&gt;さて、きみは……？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ナミさんにまだ帰りたくないと言う（&lt;a href="#112"&gt;112&lt;/a&gt;へ）&lt;/li&gt;
&lt;li&gt;ナミさんに家まで送ってもらう（&lt;a href="#114"&gt;114&lt;/a&gt;へ）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="112"&gt;112&lt;/h2&gt;
&lt;p&gt;きみは、もう少しここにいたいとナミさんにお願いした。夜が心細いからと言い出すのは恥ずかしかったから、きみは &lt;em&gt;お姉ちゃん&lt;/em&gt; のユメとケンカして飛び出してきたのだと嘘をついた。でも、ユメの方がずっと年上だから、お姉ちゃんと呼んだってまちがいではないはずだ。&lt;/p&gt;
&lt;p&gt;「あら、そうなの。じゃあ、今日はここに泊まっていく？　でも、お家の人にちゃんとオッケーをもらってからね」&lt;/p&gt;
&lt;p&gt;そうして、ナミさんはきみが人形館に泊まってもかまわないと言ってくれた。有名な人形アニメ作家さんの洋館に泊めてもらうと言えば、きっとお母さんもびっくりするはずだ。&lt;/p&gt;
&lt;p&gt;きみはユメの顔を思い浮かべる。彼女がきみの部屋に来てからは、毎日顔を合わせることになった変な神さま。でも、ふしぎな事件を解決した今はまるでわがままな妹……いや、お姉ちゃんができたみたいで、ちょっとだけ嫌気が差していた。だから今日くらい、ユメから離れて過ごしたって罰は当たらない。きっとそうだ。&lt;/p&gt;
&lt;p&gt;そう自分に言い聞かせたきみは、ツクポでお母さんに電話をかけた。お母さんに自己紹介するナミさんはなんだか緊張していて、後で聞いたら電話が苦手だって言っていた。&lt;/p&gt;
&lt;p&gt;（&lt;a href="#113"&gt;113&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="113"&gt;113&lt;/h2&gt;
&lt;p&gt;きみは人形館でお風呂を済ませて、脱衣所でナミさんが用意してくれたパジャマに着替えた。襟元に白いレースとリボンがついていて、さらには袖と裾にフリルがたっぷり盛られた水色のワンピースだ（だからネグリジェと呼ぶ方が正しい）。きみが普段着ているセパレートの薄いパジャマとはちがって、ほんの一歩前に歩くだけでふわふわと裾が揺れる。まるでお姫様になったみたいだ。&lt;/p&gt;
&lt;p&gt;さっきまで着ていた服はもう洗濯機の中でぐるぐる回っている。放っておけば１時間くらいで乾くだろう。きみが知らない匂いの柔軟剤で包まれると、どこか遠い場所に来てしまったような気持ちになった。初めて人形館に来たときも、人形を操る &lt;em&gt;魔女&lt;/em&gt; がいるこのふしぎな洋館が、まるで山奥の古いお城のように見えたものだ。&lt;/p&gt;
&lt;p&gt;それにしても、この洋館に暮らしているのはナミさんだけなのに、きみにぴったりサイズのパジャマが置いてあるのはどうしてだろう。服の雰囲気はナミさんが着ているゆったりしたローブに似ているけど、きみより20センチメートルくらい大きい大人のナミさんの身長ではもちろん丈が足りない。&lt;/p&gt;
&lt;p&gt;しかし、おろしたての新品というわけでもなさそうで、きみは誰がこのパジャマを着ていたんだろうと首をかしげた。これもナミさんの &lt;em&gt;魔法&lt;/em&gt; なのだろうか？&lt;/p&gt;
&lt;p&gt;着替えを終えて洋館の奥にあるスタジオに向かうと、ナミさんはまだ仕事を続けていた。きみが初めて人形館に来たときと同じように、広いテーブルに置かれた人形の位置を変えたり、手足の向きを細かく調整したりしている。ふしぎな魔法……ストップモーション・アニメーションの撮影だ。&lt;/p&gt;
&lt;p&gt;きみはナミさんに後ろからそっと声をかける。女の子の人形をテーブルに置いて振り向いたナミさんは、きみのパジャマ姿をしげしげと見つめた。その目線になんだか緊張したきみは、思わず背筋をぴんと伸ばす。それからナミさんは、嬉しそうに微笑んでこう言った。&lt;/p&gt;
&lt;p&gt;「あら、キミちゃん。よく似合ってるわね！　小さくなかった？」&lt;/p&gt;
&lt;p&gt;きみは両手を広げて示しながら、ちょうどよいサイズだと答えた。それから、どうして人形館に子供用のパジャマが置いてあるのかを尋ねると、ナミさんは一瞬きょとんとした顔をしてから、「そうよね。確かに、まるで魔法みたいよね」と楽しそうに笑った。&lt;/p&gt;
&lt;p&gt;「たまに親戚の子が遊びに来るの。だから、いつ来てもいいように小さなお客さんのパジャマを用意してるのよ」&lt;/p&gt;
&lt;p&gt;そう答えたナミさんは、残っていた仕事を終えてからスタジオの片付けを始めた。テーブルの上に薄く透き通った布のカバーを被せたり、スマートフォンを台から下ろしたり、使い終わった小物を棚に戻したりと忙しい。きみもナミさんを手伝おうと辺りを見回すと、作業机近くの床に何枚かメモが落ちているのに気付いた。きっと、ナミさんが撮影中に落としたまま忘れてしまったのだろう。&lt;/p&gt;
&lt;p&gt;きみは、ナミさんが落としたメモを５枚ほど拾い集めた。小さなリングノートから切り取られた紙に、鉛筆でイラストや文字が書き留められている。&lt;/p&gt;
&lt;p&gt;ふとメモを一枚だけ見てみると、そこにはなぜか、きみが着ているネグリジェと同じような服の人形のラフスケッチが描かれていた。そして、手足に沿って動きを表すような矢印が引かれている。その人形はふかふかのベッドの上に寝そべっているけど、ひょっとして布団の上でダンスでも踊るのだろうか。きみはナミさんがどんなアニメを撮るのか知りたくて、ほかのメモもこっそり読みたくなってきた。&lt;/p&gt;
&lt;p&gt;さて、きみは……？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ほかのメモは読まずにナミさんに渡す（&lt;a href="#115"&gt;115&lt;/a&gt;へ）&lt;/li&gt;
&lt;li&gt;ナミさんに気付かれないように、ほかのメモも読む（&lt;a href="#116"&gt;116&lt;/a&gt;へ）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="114"&gt;114&lt;/h2&gt;
&lt;p&gt;きみは迷った末に、ナミさんに家まで送ってもらうようにお願いした。いくら外が怖いからって、いつまでも人形館に居座るわけにはいかない。そろそろ帰らないとお母さんも心配するだろう。それに、子供っぽいわがままでナミさんを困らせたくはなかった。&lt;/p&gt;
&lt;p&gt;でも、玄関までの足取りが重い。人形館の暗い庭を映す掃き出し窓の冷たさは、初めて〈人形の王〉の部屋に行ったときのおどろおどろしい雰囲気によく似ていた。きみは身体がぶるっと震えて、靴を履いたままその場に立ち尽くしてしまう。きみの足取りが重くなっているのに気付いて、ナミさんがそっと手を握ってくれた。&lt;/p&gt;
&lt;p&gt;きみは大きく深呼吸をしてから、目をつむったまま外へ飛び出す。おそるおそる目を開けると、窓越しに見ていた洋館の庭が目の前に広がっている。風が頬を撫でて、庭に生える草花が昼間と同じように揺れているだけだと気付いた。&lt;/p&gt;
&lt;p&gt;すると、なぜかさっきまできみを支配していたはずの不安がするりと消えてしまう。人形館から見ていた景色とはちがって、外に出てみると普段の夜と何も変わらなかったからだ。どうしてこんなのが怖かったんだろう、ときみは思った。&lt;/p&gt;
&lt;p&gt;（&lt;a href="#119"&gt;119&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="115"&gt;115&lt;/h2&gt;
&lt;p&gt;きみは、ほかのメモにはどんなことが書いてあるのか気になったけれど、あまりじろじろ見てはいけないと思って、そのままナミさんに渡した。ナミさんはメモを受け取ると、描かれたスケッチに見覚えがあったようで、少し慌てた様子で中身を確認し始めた。&lt;/p&gt;
&lt;p&gt;「これ、どこに落ちてたのかしら？　なくしたと思ってたから、助かるわ」&lt;/p&gt;
&lt;p&gt;きみが作業机の下にあったと伝えると、ナミさんは納得した様子でメモを引き出しにしまった。それから、ほかにもメモが落ちていなかったか尋ねられたので、きみは机の下にはなかったと答える。ナミさんの様子を見るに、まだなくしたままのメモがあるようだ。でも、床にはもう何も落ちていなかった。&lt;/p&gt;
&lt;p&gt;スタジオの片付けを再開したナミさんがしばらく棚の整理をしてから、最後にテーブルを照らす強いライトの電源を落とすと、辺りはすっかり薄暗くなった。部屋を照らすのは廊下から漏れる電灯の光だけで、スタジオの奥にある人形たちの棚はもう暗闇に包まれている。&lt;/p&gt;
&lt;p&gt;「そろそろ寝室に案内するわね。キミちゃんはいつも何時に寝るの？」&lt;/p&gt;
&lt;p&gt;普段なら、きみが寝るにはまだ早い時間だ。でも、慣れない環境に少し疲れてしまったのか、きみはほんのりと眠気に包まれている。家にいるときは、お風呂を済ませたらテレビを見たり図書室で借りた本を読んだりするけど、今日はそういう遊ぶものがないので退屈しているのかもしれない。&lt;/p&gt;
&lt;p&gt;そして、きみはナミさんに導かれて寝室に向かった。二人で廊下を歩いていると、突然振り向いたナミさんがきみにこう尋ねる。&lt;/p&gt;
&lt;p&gt;「さっきのメモ、もしかして中身を読んだりした？」&lt;/p&gt;
&lt;p&gt;ひょっとして、ナミさんの重大な秘密が書かれていたのだろうか。きみは叱られないかちょっとだけ心配しながら、正直に１枚目のメモだけ読んだと伝えた。ベッドの上できみと同じパジャマを着た人形が踊っているスケッチ……なんて一つずつ口に出すと突飛な感じがするけど、まちがってはいない。&lt;/p&gt;
&lt;p&gt;「そうそう。そのパジャマをモチーフにしたアニメを作ろうと思ってるのよ。新作のアイデアだから、秘密にしてね」&lt;/p&gt;
&lt;p&gt;きみが慌ててうなずくと、ナミさんは安心した様子でまた歩き始めた。じゃあ、残りのメモにはアニメの続きが描かれていたのかもしれない。きみはパジャマの人形がどんな風に活躍するのか、少し気になった。&lt;/p&gt;
&lt;p&gt;寝室に着くと、部屋の真ん中に大きなベッドが置かれている。ふかふかの枕の横や、頭の上のベッド棚にも隙間なく人形が並べられていて、ナミさんは本当に人形が好きなのだと改めて実感した。&lt;/p&gt;
&lt;p&gt;「枕をもう一つ出しておくわね。キミちゃん、今日はもう寝ちゃう？　それとも、もう少しおしゃべりしましょうか？」&lt;/p&gt;
&lt;p&gt;さて、きみは……？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ナミさんとお話ししたいと言う（&lt;a href="#118"&gt;118&lt;/a&gt;へ）&lt;/li&gt;
&lt;li&gt;今日はもう疲れたので寝たいと言う（&lt;a href="#117"&gt;117&lt;/a&gt;へ）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="116"&gt;116&lt;/h2&gt;
&lt;p&gt;ナミさんはまだ片付けが終わっていないようで、きみが床の落とし物を集めていることにも気付いていない。きみは、ほかのメモもこっそり読んでみることにした。&lt;/p&gt;
&lt;p&gt;２枚目のメモを取り出す。１枚目と同じパジャマを着た人形がベッドの上にいて、しかし今度はたくさんの兵隊人形がベッドを取り囲んでいる。書き込まれた矢印によれば、かれらはパジャマの人形の周りをぐるぐると歩き回っていて、逃げられなくなった彼女は今にも泣き出しそうだ。兵隊人形はこの子を捕らえるために来たのだろうか。&lt;/p&gt;
&lt;p&gt;今度は３枚目だ。兵隊人形の様子はさっきと同じだけど、真ん中にいるパジャマの人形の姿がちがっていた。ふつうの女の子と変わらない綺麗な顔だったのに、今は目の部分に四つ穴ボタンが縫い付けられているし、口も刺繍糸のステッチになっていて、一目でぬいぐるみだと分かるようになっている。もともと人形アニメのアイデアだから、登場人物が人形なのは当たり前だ。でも、どうして急に見た目を変えたんだろう……きみは気になった。&lt;/p&gt;
&lt;p&gt;ひょっとして、１枚目と２枚目の女の子は本物の人間だったけど、３枚目で人形に変えられてしまうというストーリーなんだろうか。ナミさんのメモだから人形が描かれているというのはかんちがいで、３枚目のぬいぐるみと見比べると普通の子供に見えてくる。まるで、水色のネグリジェを着た今のきみみたいに。人間が人形に変えられる……きみは、自分が最近見る夢によく似ていると思った。&lt;/p&gt;
&lt;p&gt;ナミさんは何を考えてこんなメモを残したんだろう。もしかして、ウサギの人形から〈人形の王国〉の秘密を聞いたのかも……と４枚目を見ようとしたところで、きみがメモを読んでいるのに気付いたナミさんが後ろから声をかけた。&lt;/p&gt;
&lt;p&gt;「ねえ、キミちゃん。それ、どこにあったの？」&lt;/p&gt;
&lt;p&gt;突然の声に驚いたきみは、手に持っていたメモを床に落としてしまう。慌ててメモを拾い集めようとしたけれど、たどたどしく言い訳するのが精一杯で上手く身体が動かない。メモがひらひら舞っていて、どれから手を伸ばせばいいか分からなくなっていた。&lt;/p&gt;
&lt;p&gt;「ごめんなさいね。驚かせる気はなかったの」&lt;/p&gt;
&lt;p&gt;そう言って、ナミさんが立ち尽くしたきみの代わりにメモを拾い始める。屈んだナミさんはきみと同じ高さの視線で微笑むと、きみを安心させるために優しく頭を撫でてくれた。&lt;/p&gt;
&lt;p&gt;「変な夢を見たって言ってたでしょ。何かの役に立たないかと思って、忘れないうちにスケッチしていたのよ」&lt;/p&gt;
&lt;p&gt;確かに、ナミさんにはきみが見たふしぎな夢の話をしたばかりだ。彼女はきみの夢に興味を持ってくれていたし、メモを残すのも変じゃない。それなら〈人形の王国〉の秘密を知らなくたって、このお話は書けるだろう。でも、目が覚めたばかりのベッドに人形が押し寄せる想像をして怖がっていることを、きみはナミさんに話したっけ？&lt;/p&gt;
&lt;p&gt;「キミちゃん、お片付けを手伝ってくれてありがとう。もう遅いし、今日は寝ましょうね」&lt;/p&gt;
&lt;p&gt;きみはナミさんに導かれて寝室に向かう。部屋の真ん中に置かれた大きなベッドの周りには隙間なく人形が並べられている。きみを〈人形の王国〉に連れ去る兵隊人形とちがって、みんな優しそうな表情の人形たちだ。ナミさんは本当に人形が好きなのだと改めて実感した。&lt;/p&gt;
&lt;p&gt;（&lt;a href="#117"&gt;117&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="117"&gt;117&lt;/h2&gt;
&lt;p&gt;それからきみは、たくさんの人形たちに囲まれて眠りについた。夢占いで出ていた &lt;em&gt;プレッシャー&lt;/em&gt; がなくなったおかげなのか、人形になる夢は見なかった。&lt;/p&gt;
&lt;p&gt;そして次の日、いつもより少し早く目覚めたきみは、ナミさんが作ってくれたトーストとスクランブルエッグの朝食を食べてから、家まで送ってもらうことにした。&lt;/p&gt;
&lt;p&gt;（&lt;a href="#119"&gt;119&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="118"&gt;118&lt;/h2&gt;
&lt;p&gt;きみは、まだ眠くないのでもう少しナミさんと話したいと言った。&lt;/p&gt;
&lt;p&gt;すると、ナミさんは「じゃあ、ちょっと私のお話を聞いてくれる？」とベッドの端に腰かけた。それからナミさんは、棚に置かれたドレス姿のお姫様の人形を手に取って、ふりふりと人形の手を左右に振ってみせる。きみも隣に座って、ナミさんの話を聞くことにした。&lt;/p&gt;
&lt;p&gt;「ストップモーション・アニメーションって、動かない人形に命を与えるためのものよね」&lt;/p&gt;
&lt;p&gt;そう言って、ナミさんは膝の上の人形をさらにくるりと回した。まるで本当にお姫様が社交ダンスでも踊っているみたいに自然な動きだ。きっと、普段からこうして人形を動かして人形アニメの構想を練っているのだろう。&lt;/p&gt;
&lt;p&gt;「じゃあ、本当は自分で動けるはずの人間を使ってストップモーション・アニメーションを撮ったら、もっと斬新な表現ができると思わない？」&lt;/p&gt;
&lt;p&gt;きみはナミさんの言葉を聞いて少し驚く。人間ならビデオカメラの前で動いてもらえばいいのに、わざわざ何枚もポーズを変えて写真を撮るなんて、確かに斬新なやり方かもしれない。でも、なんだか心のどこかに妙に引っかかるところがあった。&lt;/p&gt;
&lt;p&gt;それから、きみは少し考え込む……そうだ！　ナミさんが自分の手足を操って写真を撮る様子を思い浮かべたきみは、その違和感の正体に気付いた。まるできみが人形になってしまったようなその姿は、ナミさんに話したふしぎな夢の内容と同じだ。きみはナミさんに、そのアイデアが自分の見た夢と関係があるのか尋ねた。&lt;/p&gt;
&lt;p&gt;「察しがいいわね。キミちゃん、変な夢を見て不安になったって言っていたじゃない？」&lt;/p&gt;
&lt;p&gt;ナミさんはきみが夢の話を思い出したのが嬉しかったようで、お姫様の人形をまた左右に揺らしてみせる。きみがこくこく頷くと、ナミさんはさらに言葉を続けた。&lt;/p&gt;
&lt;p&gt;「それを自分で再現してみたら、不安が薄れるかもしれないわ。ごっこ遊びのつもりでね」&lt;/p&gt;
&lt;p&gt;確かにきみは、あの夢の後で手足が動かなくなったのを思い出すたびに、なんだか重たくて怖い気持ちに包まれるようになっていた。でも、ナミさんが言うみたいに、それを遊びの一つに変えてしまったら、不安なんてどこかへ飛んでいくかもしれない。きみは自分の膝の上に手を置いてどう答えるべきか考えた。&lt;/p&gt;
&lt;p&gt;「ちょうど次のアニメにもベッドのシーンがあるから、私も試し撮りしたいのよね。キミちゃんがよければ、少しだけ試してみない？」&lt;/p&gt;
&lt;p&gt;次のアニメというのは、たぶんさっきスタジオで拾ったメモのことだろう。どんなアニメができるのか、きみも気になっていた。ナミさんの新作アニメに協力できるというなら、それだけで面白そうだ。きみはナミさんの誘いに応えて「じゃあ、やってみる！」と元気に返した。&lt;/p&gt;
&lt;p&gt;（&lt;a href="#109"&gt;109&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="119"&gt;119&lt;/h2&gt;
&lt;p&gt;ナミさんと人形の話をしながら住宅地を歩いていると、すぐに家に着いた。&lt;/p&gt;
&lt;p&gt;そして、ナミさんは玄関に出てきたお母さんとしばらく話してから、人形が描かれた角の丸いデザインの名刺を２枚取り出して、きみとお母さんに手渡した。きみとナミさんの出会いは突然だったから、名刺を渡すタイミングがなかったのだろう。お母さんは、近所にある洋館のことは知っていても、それが有名な人形アニメ作家さんの家だとは分からなかったみたいで、とても驚いていた。&lt;/p&gt;
&lt;p&gt;「キミちゃん。楽しい話を聞かせてくれてありがとう。また、いつでも来てね」&lt;/p&gt;
&lt;p&gt;きみはナミさんに手を振ってから、自分の部屋に戻った。&lt;/p&gt;
&lt;p&gt;「遅かったの、キミさん。どこで何をしておったのじゃ？」&lt;/p&gt;
&lt;p&gt;てっきり漫画でも読んでゴロゴロしているだろうと思っていたのに、ユメはきみの机に寄りかかって腕を組んでいた。なんだか機嫌が悪いみたいだ。&lt;/p&gt;
&lt;p&gt;神通力を持て余して退屈しているところに、きみもツクポも突然いなくなってしまったのだから、そう聞きたくなる気持ちも分かる。でも、きみが家を飛び出して人形館に行ったのはユメがしつこく話しかけてきたからで、いくら神さまだからって許せないこともある。&lt;/p&gt;
&lt;p&gt;きみも、宿題を邪魔されたときのことを思い出して「別にどこでもいいでしょ」とぶっきらぼうに返した。でもユメは、きみのちょっとした反撃など全く意に介さない。きみの答えを聞いて「おお、そうかそうか」と大きく頷いた。&lt;/p&gt;
&lt;p&gt;「話したくないならそれでもよい。ただ、あの洋館にはもう行かないほうがよいのう。あの者からは何か不穏な力が……まぁよい。神さまからのありがたいお告げじゃ」&lt;/p&gt;
&lt;p&gt;そう言い終えると、ユメは読みかけの漫画を抱えていつものクッションの位置に戻った。きみは人形館に行ったなんて言わなかったはずだけど、やっぱり神さまには全部お見通しなのだろう。でも、きみを人形館に行かせまいと、神さまのお告げだなんて大げさに言ってもきみには全然響かない。でも、ユメのそういう子供っぽいところは、なんだか憎めなかった。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;（「近所のすてきなお姉さん」エンド）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;（その後……&lt;a href="#122"&gt;122&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="120"&gt;120&lt;/h2&gt;
&lt;p&gt;ベッドの上でストップモーション・アニメーションの人形役になったきみは、まるでナミさんに操られているように手足が動かせなくなっていた。きみが人形になってしまうふしぎな夢から目が覚めたときと同じような感覚だけど、きみは張り詰めた不安な気持ちではなく、ナミさんに自分の身体を任せる安心感でいっぱいになっていた。&lt;/p&gt;
&lt;p&gt;「次は、ちょっと顔を傾けてみようかしら。もう少し、動きを付けてみましょうね」&lt;/p&gt;
&lt;p&gt;人形に話しかけるような口調のナミさんの声が優しく響く。きみはその声に答えて頷くのも忘れて、じっと天井を見つめて彼女が自分を操るのを待っていた。……というより、人形らしくベッドに寝そべり続けた。&lt;/p&gt;
&lt;p&gt;ナミさんの手がきみの頬に触れて、そっと頭を動かした。首の向きさえナミさんの言いなりだ。カシャッ。また一枚。視界が移って、天井の代わりにベッドに横たわる人形と目が合う。さっきまでナミさんが膝に抱えていたお姫様だ。真っ黒な目玉ボタンに電灯の光が差して、きらきらとした視線をきみに送っていた。「私もあなたと同じね」と言われているような気がして、きみは目が離せない。&lt;/p&gt;
&lt;p&gt;ベッドに転がって動かないお姫様の人形を見ているうちに、きみはまるでその人形が自分と鏡映しになっているような気がし始めた。前に図書室で借りた怪談の本で読んだ、異世界を映すという鏡の話とおんなじだ。ひょっとしたら、きみはどこか別の世界ではもともと人形なのかもしれない……そう思うと、きみはなぜかだんだんお腹の辺りがむずむずしてきた。&lt;/p&gt;
&lt;p&gt;うずくような、くすぐったいような、変な感じがして、きみは思わず息を止めてしまう。きみが見ている夢が本当の世界で、実はきみは人形なのかもしれないって思うと、ドキドキが止まらない。ナミさんはそんなきみの様子に気付かないまま、真剣な顔で写真を撮り続けているみたいだ。&lt;/p&gt;
&lt;p&gt;ナミさんはきみが足を上げるポーズを撮り終えると、「ちょっと待っててね」と寝室を出ていった。スタジオに何か必要な道具を忘れてきたのかもしれない。スマートフォンはきみに向けられたままだけど、シャッターが切られることはない。きみは急に息を止めていることを思い出して、首を傾けたまま慌てて息を吸って胸を上下させる。きみは人間みたいに身体が動くのがとても恥ずかしい気がした。&lt;/p&gt;
&lt;p&gt;「これで面白いシーンになるかも。キミちゃん……あら、寝ちゃったのかしら」&lt;/p&gt;
&lt;p&gt;ナミさんが寝室に戻ってきたけど、きみは横を向いているからまだその姿を見ることはできない。ナミさんはそれに気付いて「今は撮ってないから、顔を動かしてもいいのよ」と言ったけど、頑なに動こうとしないきみの様子を見て、ちょっと呆れたように笑いながらきみの顔をそっと正面に戻してくれた。&lt;/p&gt;
&lt;p&gt;きみの視界にナミさんの姿が入る。ぼーっとした視線のピントをゆっくり合わせると、手には小さな兵隊の人形が何体か握られているのが分かった。赤と青の制服を着たプラスチックのおもちゃだ。ナミさんはにこにこしながら言った。&lt;/p&gt;
&lt;p&gt;「キミちゃん、この兵隊に囲まれて身動きできない感じで撮ってみてもいい？」&lt;/p&gt;
&lt;p&gt;きみは少しびっくりした。だって、目が覚めたばかりのベッドに人形が押し寄せる想像をして怖がっていることを、きみはナミさんに話したっけ？　でも、小さな兵隊に捕まるのはガリバー旅行記でも読んだことがあったし、案外よくあるアイデアなのかもしれない。&lt;/p&gt;
&lt;p&gt;きみがまた小さく頷くのを見て、ナミさんはベッドの周りに兵隊の人形を並べ始めた。きみの腕の横に１体、足元に２体、頭の近くには３体。合わせて６体の兵隊がきみを取り囲んでいる。小さな兵隊たちは、まるでここに閉じ込めて絶対に逃がさないとでもいうように、きみの姿を見下ろしている。ナミさんが「続きを始めるわね」と言って、また写真を撮り始めた。カシャッ、カシャッ。&lt;/p&gt;
&lt;p&gt;兵隊の人形に囲まれると、やっぱり夢から覚めたときの〈人形の王国〉に連れ去られるときみたいで、心臓がドキドキしてくる。指先から鼻の先まで、本当なら自由に動かせるのに、逃げたくても逃げられない感じが、やっぱりちょっとだけ怖い。きみは天井の一点を見つめてじっと我慢した。&lt;/p&gt;
&lt;p&gt;それから、ナミさんがきみの顔をそっと傾けて、カシャッ。また一枚。今度はお姫様じゃなくて、兵隊の人形がきみを見下ろしている。相手が人間か人形か見極めるような視線を浴びているうちに、きみはまたお腹の辺りがむずむずしてきた。ゆっくり息をしなきゃいけないのに、徐々に呼吸が荒くなる。それに、じわじわと身体の中が熱くなって、なんだかお腹に力が入らなくなってしまう。&lt;/p&gt;
&lt;p&gt;「……キミちゃん、なんか無理してない？　ちょっと休憩する？」&lt;/p&gt;
&lt;p&gt;ナミさんが心配そうにきみを覗き込むけど、人形の視線で頭がいっぱいのきみの耳にはその言葉は届かない。&lt;/p&gt;
&lt;p&gt;ナミさんは人形ごっこにのめり込んでいるきみを見かねて、急にきみの脇腹をくすぐってきた。全身から感情が抜けて動けなくなっていたはずのきみもたまらず「ひゃっ！」と大きく叫んで、ベッドの上で跳ねてしまう。動いちゃダメって言われてたのに、我慢できなくて笑いがこみ上げてきた。&lt;/p&gt;
&lt;p&gt;「キミちゃん、ごめんね。つい試したくなっちゃって。疲れちゃったみたいだし、ストップモーション・アニメごっこはここまでにしましょ！」&lt;/p&gt;
&lt;p&gt;ナミさんもきみにつられて一緒に笑っている。&lt;/p&gt;
&lt;p&gt;緊張が解けたきみはまだくすくすと笑いながら、ベッドに寝転がったまま息を整えた。お腹がむずむずした変な感じはいつの間にか飛んでいって、代わりにいっぱい笑った後のすっきりした脱力感が残っている。ナミさんはスマートフォンを置いて、起き上がったきみの横に座った。&lt;/p&gt;
&lt;p&gt;「どう？　少しでも、不安な気持ちは薄らいだかしら？」&lt;/p&gt;
&lt;p&gt;きみはうなずいて、ちょっと照れながら楽しかったと伝えた。ナミさんは満足そうに笑ってから三脚を片付けて、乱れたベッドを整え直す。普段ならもう寝ている時間を過ぎていて、きみはまた眠気に包まれて始めていた。&lt;/p&gt;
&lt;p&gt;自分が人形になるのを想像するとなんだか変な気分になるけど、不安や嫌な感じは消えていたし、きみはナミさんの人形になって暮らすなら悪くないかもしれないなんて思ってしまう。きみはまだ少しだけドキドキが残っている手足の感覚に身を任せながら、ベッドの中で目を閉じた。&lt;/p&gt;
&lt;p&gt;（&lt;a href="#121"&gt;121&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="121"&gt;121&lt;/h2&gt;
&lt;p&gt;朝になって、きみは人形館の寝室で目を覚ました。ごっこ遊びの効果があったのか、人形になる夢は見ずに済んだみたいだ。棚には昨夜きみを取り囲んでいた兵隊の人形が並んでいて、自分が人形になりきっていた姿を思い出すと、きみはまた少しドキドキした。&lt;/p&gt;
&lt;p&gt;「おはよう、キミちゃん。よく眠れた？」&lt;/p&gt;
&lt;p&gt;先に起きて朝食の準備をしていたナミさんが、目を覚ましたきみに気付いて声をかける。きみはぐっすり眠れたと答えて、ナミさんと一緒に食堂に向かった。ナミさんが作ってくれたトーストとスクランブルエッグの朝食は、焼き加減がちょうどよくてとっても美味しい。&lt;/p&gt;
&lt;p&gt;きみはトーストをかじりながら、ナミさんに昨日感じたことを話した。また人形ごっこをやってみたいと言うと、ナミさんは少し驚いてみせた。&lt;/p&gt;
&lt;p&gt;「あら、それならよかったわ。どういうところが楽しかったの？」&lt;/p&gt;
&lt;p&gt;きみは少しだけ迷ってから、ナミさんが触れたところから身体の力が抜けていくのが楽しくて、そして安心したと照れながら伝えた。ナミさんはきみの言葉を聞いて、目を丸くしていたけど、すぐにくすくす笑い出す。&lt;/p&gt;
&lt;p&gt;「じゃあ私は、人形だけじゃなくて人間を操る魔女かもしれないわね」&lt;/p&gt;
&lt;p&gt;わざとらしく怪しい笑顔を見せたナミさんに、きみもつられて笑ってしまう。ナミさんが魔女だとしても、こんな優しい人なら怖くないと、きみは思った。&lt;/p&gt;
&lt;p&gt;「キミちゃんがそんなに楽しんでくれたなら、よかったわ。またやりましょうね。次は一緒にアニメを作ってみましょ」&lt;/p&gt;
&lt;p&gt;朝ごはんが終わると、ナミさんはきみを玄関まで見送りに来てくれた。外はもうすっかり明るくなっている。人形館の庭も静かな朝の景色のまま。きみはナミさんに手を振ってから、家に帰る道を歩き始めた。&lt;/p&gt;
&lt;p&gt;兵隊の人形に囲まれたときに感じたドキドキも、ナミさんにきみの身体を任せた安心感も、なんだか遠い夢みたいだ。今はこの気持ちを誰かに話すより、胸にそっとしまっておきたくなって、きみは軽く鼻歌を歌いながら元気な足取りで家に向かっていった。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;（「人間を操る魔法のお姉さん」エンド）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;（その後……&lt;a href="#122"&gt;122&lt;/a&gt;へ）&lt;/p&gt;
&lt;h2 id="122"&gt;122&lt;/h2&gt;
&lt;p&gt;「キミさんや、何か事件はないかのう」&lt;/p&gt;
&lt;p&gt;人形館から戻った後も、ユメは変わらず退屈そうだ。ずっと部屋にいるから、きみが持っているマンガも全部読み終わったみたいだし、誰も姿が見えないユメが一人でテレビを見ていたら、きっとつけっぱなしにしていると思われてお母さんが消してしまうだろう。&lt;/p&gt;
&lt;p&gt;それならやっぱりお社に帰ればいいのに、という言葉をぐっとこらえて、きみは今日のおやつのクッキーを半分だけユメに渡した。ユメは「おお、感心感心」なんて嬉しそうに両手にクッキーを持ってから、今度はテーブルに置かれたオレンジジュースのストローに口を伸ばそうとする。クッキーを置いてから手に持って飲めばいいのに。こんなにだらけた神さまはきっとユメだけだ。&lt;/p&gt;
&lt;p&gt;「わしの力なら腕の二本や三本くらい生やせるわい。でも、今日は疲れたからこのままじゃ」&lt;/p&gt;
&lt;p&gt;ユメがきみの注意に反発してそんなことを言い出した。&lt;/p&gt;
&lt;p&gt;手が左右から二本ずつ生えているキツネのお面の神さまなんて、まるでゲームのモンスターみたいだ。たくさんの手にクッキーやコップを持つ、おやつの神さまみたいなユメの姿を想像して、きみは思わず吹き出してしまった。ユメはそれを見て「神さまを笑うなんてなにごとじゃ」とすねた顔をする。きみはひとしきり笑った後に「ごめんごめん」と謝ってから、今日の宿題に取りかかることにした。&lt;/p&gt;
&lt;p&gt;「まぁ、キミさんが楽しそうなら、それでよいじゃろう」&lt;/p&gt;
&lt;p&gt;ユメはそう呟いてから、両手のクッキーを交互に食べ始める。それか心底幸せそうなゆるんだ表情で「おいしいのう」とニコニコ笑った。&lt;/p&gt;
&lt;p&gt;こうしてわがままな神さまのご機嫌を取っておかないと、宿題一つ終わらせるのも難しい。こんなことなら、いっそのこと町がひっくり返るような大事件でも起きてくれたっていいのにな。……いやいや、それは流石にダメでしょ！　まるでユメと同じようなことを考え始めたきみは、ぶんぶんと頭を振ってその考えをかき消した。&lt;/p&gt;
&lt;p&gt;……でも、事件が起きたらユメに怪しまれずに人形館に通うことができるかもしれないし、それはそれで悪くないかも。&lt;/p&gt;
&lt;p&gt;きみはナミさんと過ごしたすてきな時間のことを思い出して、また人形館に行きたくなった。今度はクッキーでも焼いて持っていくといいかもしれない。そういえば、ジンジャーマンクッキーを作ったときの型がまだ残っていたはずだ。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;（今回のふしぎ探検「人形を操る魔女事件」……無事解決？）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;（もう一度遊ぶなら、&lt;a href="#110"&gt;110&lt;/a&gt;へ戻ろう）&lt;/p&gt;</content><category term="lily"/></entry><entry><title>2025/01/01～2025/03/03</title><link href="https://ama.ne.jp/post/report-20250303/" rel="alternate"/><published>2025-03-03T18:58:00+09:00</published><updated>2025-03-03T18:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-03-03:/post/report-20250303/</id><summary type="html">&lt;p&gt;2025/01/01～2025/03/03のレポート&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/report-20250303/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;容量削減のため、一部のアニメーションGIF画像を自動再生・ループ再生・無音 &lt;code&gt;autoplay loop muted&lt;/code&gt; のWebM動画に切り替えました。&lt;/li&gt;
&lt;li&gt;一部の作品の縦書き表示で、記号の表示が乱れていた箇所を修正しました。&lt;/li&gt;
&lt;li&gt;縦書き表示のスタイルについて、細部を改善しました。&lt;/li&gt;
&lt;li&gt;画面幅の境界に近い場合に見た目が崩れるケースがあったため、スタイルを修正しました。&lt;/li&gt;
&lt;li&gt;ページ上部に表示される広告を整理しました。&lt;/li&gt;
&lt;li&gt;壊れていた一部のリンクを修正・削除しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/bugs-catcher/"&gt;IT技術を支える「バグキャッチャー」について&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;新年一発目の縁起のいい記事です。2024年の夏に「バグキャッチャー」を買ってからやりたいなと思っていたものです。&lt;/li&gt;
&lt;li&gt;先端の球体の中に鈴をくくりつけてから、本体は金のラッカーで、持ち手は黒と赤のラッカーで塗りつぶした簡単な工作になっています。&lt;/li&gt;
&lt;li&gt;AIエージェントによるコーディングが主流となりつつある今、このような神頼みもちょっと復活する気がしませんか？&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/hengengirls-and-you/"&gt;変幻美少女ぶっくす。とその周辺&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;2月15日に開催された&lt;a href="https://hentaigirls.net/post/comitia151/"&gt;COMITIA151&lt;/a&gt;のふりかえり（過去+陰）です。&lt;/li&gt;
&lt;li&gt;一昨年から昨年末にかけて私の周辺やサークルに大きなできごとが続いたので、ここ10年ほどの流れと共にまとめました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/goodbye-bunfree/"&gt;さようなら、大きくなりすぎた文学フリマ&lt;/a&gt;が気に入らない人には楽しくない記事です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/hentenbion-and-you/"&gt;変天美音Ⅰとその周辺&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;2月15日に開催されたCOMITIA151のふりかえり（未来+陽）です。&lt;/li&gt;
&lt;li&gt;今年から始まった個人誌シリーズ「&lt;a href="https://hentaigirls.net/book/hetebo-202502/"&gt;変天美音Ⅰ&lt;/a&gt;」についての解説や宣言を含みます。&lt;/li&gt;
&lt;li&gt;中古のラジカセで一本一本焼き上げたので、本編もぜひ買ってください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/outage-of-l-menthol-2/"&gt;特殊な盆栽の取り扱いについて EXTRA&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hentaigirls.net/post/comitia151/"&gt;COMITIA151&lt;/a&gt;で配布したペーパーの余白を埋めたものです。&lt;/li&gt;
&lt;li&gt;「えらべる！既刊セット」という実際にやった企画とリンクした感じの特別回にしました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/otaku-marriage/"&gt;オタクくん、結婚しないの？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x.com/amane_katagiri/status/1893744297456881718"&gt;X（旧Twitter）での投稿&lt;/a&gt;の台本を掲載したものです。&lt;/li&gt;
&lt;li&gt;こういう短めの音声作品（主にXの無料アカウントが投稿できる長さ）が好きな方がいれば続けていこうと思うので、よければ教えてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>変天美音Ⅰとその周辺</title><link href="https://ama.ne.jp/post/hentenbion-and-you/" rel="alternate"/><published>2025-02-28T20:19:00+09:00</published><updated>2025-02-28T20:19:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-02-28:/post/hentenbion-and-you/</id><summary type="html">&lt;p&gt;こんにちは、文庫本&lt;/p&gt;</summary><content type="html">&lt;p&gt;2月15日の&lt;a href="https://hentaigirls.net/post/comitia151/"&gt;COMITIA151&lt;/a&gt;で&lt;a href="https://hen.booth.pm/items/6621985"&gt;変天美音Ⅰ&lt;/a&gt;という音声作品付き短編集を出した。音声作品はカセットテープに収録されていて、提供されている音声ファイルもここから直接録音したものである。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hen.booth.pm/items/6621985"&gt;&lt;img alt="変天美音Ⅰ表紙" height="846" src="/images/hentenbion-and-you/hetebo-202502_cover.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;そもそも、①「変天美音」という名前が「変美」と「天音」の組み合わせになっていること、②「天音」が私の名前「かたぎりあまね」を表していること、③「変美」が「&lt;a href="https://hentaigirls.net/"&gt;変幻美少女ぶっくす。&lt;/a&gt;」あるいは旧称の「変態美少女ふぃろそふぃ。」の略であることに気付いている人はどれくらいいるだろう？&lt;/p&gt;
&lt;p&gt;変天美音という名前の由来はまさに上記の通りである。2025年からかたぎりあまねが変幻美少女ぶっくす。で発行し続ける個人誌のタイトルだ。たぶん年に1～2回くらい、Ⅰ・Ⅱ・Ⅲ……とナンバリングを増やしつつ出していくことになるだろう。ローマ数字は字数が大きくなる印象はあるが、仮にこれから毎年2冊ずつ10年間出し続けたとしても（もう40歳だ！）2文字で済む。&lt;/p&gt;
&lt;p&gt;さて、変天美音の目的について現時点で考えていることを書き残しておく。今後このシリーズを続けていくにあたって自分のスタート地点を忘れないようにするためだ。&lt;/p&gt;
&lt;p&gt;まず、変天美音シリーズは&lt;a href="/"&gt;あまねけ！&lt;/a&gt;の掲載作品を紙媒体に起こすことを主な目的に据えている。書き下ろし作品も載せているが、このページ数は全体の50%を超えてはならない。今後中編～長編の作品を書くことがあれば、そのタイトルで個別に出すことになるだろう。過去のものでいえば&lt;a href="https://hentaigirls.net/book/strawberry-doll/"&gt;ストロベリィドール&lt;/a&gt;とか&lt;a href="https://hentaigirls.net/book/happiness-guideline/"&gt;しあわせガイドライン&lt;/a&gt;がそうだ。「りりよる」シリーズに取り組み始めてからはこういう単一作品のタイトルはまだ出ていない。&lt;/p&gt;
&lt;p&gt;変天美音シリーズにあまねけ！の作品を載せるということは、バックライトで目が疲れずにおはなしを読める媒体を所有できるということだ。もともとあまねけ！自体は誰でもコピーしたりホスティングしやすい簡単な静的ファイルの塊で提供されているが、 &lt;code&gt;ama.ne.jp&lt;/code&gt; というドメインはそうではない。10年後にこのURLがオンラインカジノのクッションページになっていても、あなたが持つ本にギラギラした広告が出ることは絶対にない。あまねけ！の&lt;a href="https://hub.docker.com/r/amane/amanejp"&gt;Dockerイメージ&lt;/a&gt;や&lt;a href="/link/"&gt;ZIPアーカイブ&lt;/a&gt;は私以外があまねけ！を所有する手段であって、変天美音シリーズはそれらの選択肢の一つになる。&lt;/p&gt;
&lt;p&gt;そして、変天美音シリーズは根本的に紙の文庫本で出すことに意味を持たせる。ただ紙に文字を印刷して検索性を下げただけの紙束を配るのではなく、ふつうの文庫本と同じようにカバー（ジャケットとも呼ばれるカラー印刷のもの）を掛けたり帯を付けたりするし、頒布の時はふつうの書店と同じようにブックカバー（官能小説などにつける日本に独特なクラフト紙のもの）を掛けて輪ゴムで巻いて手渡した。いずれも、物理的な本の存在感を持たせるための取り組みである。&lt;/p&gt;
&lt;p&gt;だから、りりよるシリーズでやってきたA5版2段組の形式は使わないし、PDF版の積極的な無料配布は行わない。今までA5版2段組の本ばかり出してきたけど、おはなしを気軽に読むにはページが大きくて視線移動が多すぎる気がする。手元で同じような組版のユリイカを見返してみても、やはり余白やフォントサイズの問題ではなさそうだ。文庫版の配置には少し苦戦したものの、&lt;a href="https://github.com/hentaigirls/abook"&gt;A5版2段組のテンプレート&lt;/a&gt;に今回使った文庫版の設定をマージしたので、これからはあまり困らないと思う。&lt;/p&gt;
&lt;p&gt;PDFの無料配布も基本的にはやらない。多くの作品はあまねけ！の縦書きモードで読めるし、ブラウザで読みにくければPDFだって読みにくいはずだ。それに、紙の文庫本として所有してもらう目的に逆行している。だから、あくまで物理版のおまけとしてPDFやEPUBを渡すという方針を続けようと思う。&lt;/p&gt;
&lt;p&gt;逆に言えば、今回のように音声作品を収録したカセットテープを同梱するのはあくまで &lt;em&gt;おまけ&lt;/em&gt; だ。物理的なプレゼンスを高める演出にはなりうるけれど、カセットテープを売ること自体は目的ではない。おまけということなら、次は8センチCDなんて付けたら面白そうだ。あえて挙げるとすればISBNを刷っていないのはわずかな懸念で、それでもあまり優先度は高くない気がする。表4のバーコードの有無にかかわらず、これからも装丁や心地よい組版にこだわるという点は変わらない。&lt;/p&gt;
&lt;p&gt;AIの性能が高まるにつれ、こうした文章を自分の思考の速度でチマチマ書き出していくことに大きな意味はなくなっていくだろう。それでも、私の書いたおはなしを読むのは人間なのだから、まだこれからのやり方を考えたって遅くない気がする。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;COMITIA151で配布した「えらべる！既刊セット」購入者向けの&lt;a href="/post/outage-of-l-menthol-2/"&gt;ペーパー&lt;/a&gt;（&lt;a href="/post/outage-of-l-menthol/"&gt;特殊な盆栽の取り扱いについて&lt;/a&gt;の2人が同人誌即売会に参加する極掌編です）も読んでみてね。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>変幻美少女ぶっくす。とその周辺</title><link href="https://ama.ne.jp/post/hengengirls-and-you/" rel="alternate"/><published>2025-02-28T20:18:00+09:00</published><updated>2025-02-28T20:18:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-02-28:/post/hengengirls-and-you/</id><summary type="html">&lt;p&gt;こんにちは、コミティア&lt;/p&gt;</summary><content type="html">&lt;p&gt;2月15日の&lt;a href="https://hentaigirls.net/post/comitia151/"&gt;COMITIA151&lt;/a&gt;に出展してから2週間ほどが経った。これはコミティアへの初出展で、私にとってかなり大きなイベントだったと思う。搬入規模とか売り上げではなく、私の同人活動における一つの区切りとして大きかった。&lt;/p&gt;
&lt;p&gt;私が代表を務めているサークル「&lt;a href="https://hentaigirls.net/"&gt;変幻美少女ぶっくす。&lt;/a&gt;」が今の名前になったのは、昨年末のことだ。もし前からこのサークルについて知っている人がいれば「変態美少女ふぃろそふぃ。」という名前がよく印象に残っているかもしれない。&lt;/p&gt;
&lt;p&gt;ドメインやSNSのIDに残っている &lt;code&gt;hentaigirls&lt;/code&gt; は、このかつてのサークル名「変態」と「美少女」のアルファベット表現である。ドメインやIDは基本的には継続性を持つ必要があるし、発行済みの紙媒体やダウンロード済みのPDFに描かれたQRコードを修正して回ることはできないので、 &lt;code&gt;hentaigirls&lt;/code&gt; を &lt;code&gt;hengengirls&lt;/code&gt; に改めて回る予定はない。ただ、ある程度タイポグリセミアになるように注意したので、あまり支障はないだろう。&lt;/p&gt;
&lt;p&gt;2014年から10年間にわたって宣伝してきたサークル名を変えることになったのは、いくつか理由がある。ごく実務上の理由では、初めてのコミティアに出るにあたってサークル名が与える印象の刺激を減らしたかったから。より抽象的には、停滞しつつあったサークル活動に新しいパワーを与えたかったから。コミティアに出るということ自体新しい活動の一環なので、大きくまとめればサークルの活動を新しいステージに進めるため、ということになる。&lt;/p&gt;
&lt;p&gt;変幻美少女ぶっくす。は2024年夏から年2回ほど継続して同人誌即売会に出展を続けてきた。2023年上期の&lt;a href="https://bunfree.net/event/tokyo36/"&gt;文学フリマ東京36&lt;/a&gt;を境に、今まで即売会への参加を取りやめてきたのは「&lt;a href="/post/goodbye-bunfree/"&gt;さようなら、大きくなりすぎた文学フリマ&lt;/a&gt;」に書かれたとおりだ。ここから2023年上期と2024年上期に出展を取りやめたのは、2023年上期の判断を継続したせいだが、さらに2024年下期まで大きな活動がなかったのは、そこに不幸な出来事が続いたのが原因である。&lt;/p&gt;
&lt;p&gt;2024年5月をもって&lt;a href="https://hentaigirls.net/members/"&gt;変幻美少女ぶっくす。のメンバー&lt;/a&gt;は私一人になった。2014年の設立から一緒に活動を続けてきたかつての友人はもういない。私はメンバーではなく代表という肩書きだけど、いずれにせよ正式に所属しているのは私だけだ。&lt;/p&gt;
&lt;p&gt;そもそも「変態美少女ふぃろそふぃ。」という名前は、2015年上期の&lt;a href="https://www.comiket.co.jp/info-a/C88/C88info.html"&gt;コミックマーケット88&lt;/a&gt;に出るために用意したほとんどダミーサークルに近いものだ。「変態美少女哲学。」とか「変態美少女フィロソフィ。」とか表記に色々な候補があったことは覚えていて、しかし長く使う予定のものではなかった。会場無料配布限りのホチキス留めの胡乱なエッセイ集「日曜は美少女」は、前日の深夜にセブンイレブンのマルチコピー機で紙を使い切りながら印刷した粗末な冊子で、それでもエッチな同人誌の島にいち早く飛び込む言い訳には十分だった。&lt;/p&gt;
&lt;p&gt;変幻美少女ぶっくす。がこれまで出展してきた同人誌即売会については、これまた「&lt;a href="/post/goodbye-bunfree/"&gt;さようなら、大きくなりすぎた文学フリマ&lt;/a&gt;」が詳しい。このサクチケ駆動参加が続いていたのは2017年上期の&lt;a href="https://www.comiket.co.jp/info-a/C92/C92info.html"&gt;コミックマーケット92&lt;/a&gt;までで、それからは文学フリマへの参加に移っていった。その文学フリマも規模が拡大していくうちに出る理由がなくなった、というのがあの記事の背景である。&lt;/p&gt;
&lt;p&gt;名誉メンバーとなった早川一さんとは、ちゃんとした表紙が描けるようになったらコミティアに出ようねという話をしていた。コミティアが評論や文学といった文字主体のサークルも受け入れていることは知っていても、やはりオリジナルの漫画やイラストがメインという印象が強かったからだ。コミックマーケットの実態も似たようなもので、しかしコミティアはその意識をより明示しているという点で異なると思う。何度か出展を検討はしたことがあったが、やっぱりコミティアに出るのは怖いね、という結論は最後まで変わらなかった。&lt;/p&gt;
&lt;p&gt;ここでいう「ちゃんとした」というのは、私がGIMPで写真を貼ったり単純な幾何学模様を描いて作るようなものではなく、もっと &lt;em&gt;善い&lt;/em&gt; だろう表紙であって、かなり抽象的で漠然としていた。&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;なんてかなりいいデザインなのに、文学フリマに出続けている間はここが私たちの場所と考えて疑わなかった。&lt;/p&gt;
&lt;p&gt;だから、今回こうして1年半の空白の後にCOMITIA151に出展できたのは大きな一歩だ。コミティアには見るものがたくさんあって、サクチケを手に入れる意味がある。思い出してみると、文学フリマはサークル参加での出会いが初めてで、一般参加者として参加するにはそれから8年後くらいのことだ。コミックマーケットもコミティアも、売れようが売れまいが楽しかった。文学フリマも、かつての大学の後輩や知り合いと顔を合わせるのは楽しかった。今考えるとそれだけのことだった気がする。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>オタクくん、結婚しないの？</title><link href="https://ama.ne.jp/post/otaku-marriage/" rel="alternate"/><published>2025-02-24T04:26:00+09:00</published><updated>2025-02-24T04:26:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-02-24:/post/otaku-marriage/</id><summary type="html">&lt;p&gt;誰と歩む覚悟もなし&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この音声はVOICEPEAK 女性1で生成されており、&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。 */&lt;/p&gt;
&lt;video controls width="480" height="270" src="/images/otaku-marriage/otaku-marriage.webm"&gt;太陽が沈もうとしている夕暮れの海浜公園&lt;/video&gt;

&lt;hr&gt;
&lt;p&gt;オタクくんってさ、ほんとに結婚しないつもりなの？　これから先も、ずっと？&lt;/p&gt;
&lt;p&gt;それならよかった。&lt;/p&gt;
&lt;p&gt;私？　私はそろそろちゃんと相手探そうと思って、この前、アプリに登録したところ。だから、一応オタクくんにも確認しておきたくて。&lt;/p&gt;
&lt;p&gt;わざわざ言ったことなかったけど、私たちって付き合ってないよね？&lt;/p&gt;
&lt;p&gt;そうそう。&lt;/p&gt;
&lt;p&gt;だから、これからはちょっとオタクくんと遊べなくなるかも。だって、十年以上一緒に遊んでる男友達がいるって、なんか初対面の人に敬遠されそうじゃない？&lt;/p&gt;
&lt;p&gt;なにそれー？　彼氏くらい、すぐできるよ。だって私、けっこう可愛いもん。&lt;/p&gt;
&lt;p&gt;オタクくんの方こそ、これまで彼女いたことないんでしょ？　急に彼女が欲しくなっても、すぐできるわけじゃないからね。&lt;/p&gt;
&lt;p&gt;二十代の終わりまで一回もやってこなかったことが、いきなりできるわけないでしょ？&lt;/p&gt;
&lt;p&gt;こうやって楽しく遊んでばっかりじゃ、特別な人は見つからないぞ？&lt;/p&gt;
&lt;p&gt;えー？　確かにオタクくんとは気が合うけどさ、お互いこうやって気軽に遊ぶ仲が一番楽しいし、特別とは違うよね。オタクくんも、私のこと特別なんて思ったことないでしょ？&lt;/p&gt;
&lt;p&gt;へー。それならさ、明日から私と一緒に暮らせる？　二人で家を探してさ、結婚の準備始められる？　お父さんにも、ちゃんとあいさつしてもらうけど。&lt;/p&gt;
&lt;p&gt;私に一生かけられるの？&lt;/p&gt;
&lt;p&gt;うそうそ。冗談だって。&lt;/p&gt;
&lt;p&gt;でも、分かったでしょ？　オタクくんは、まだ誰の特別にもなれないよ。&lt;/p&gt;
&lt;p&gt;だから、私たちの楽しいモラトリアムは、ここでおしまい。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>特殊な盆栽の取り扱いについて EXTRA</title><link href="https://ama.ne.jp/post/outage-of-l-menthol-2/" rel="alternate"/><published>2025-02-16T11:00:00+09:00</published><updated>2025-02-16T11:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-02-16:/post/outage-of-l-menthol-2/</id><summary type="html">&lt;p&gt;ペパ裏（ペーパーの裏に書かれていた）&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/post/comitia151/"&gt;COMITIA151&lt;/a&gt;で配布された&lt;a href="/appendices/outage-of-l-menthol-2/comitia151.pdf"&gt;ペーパー&lt;/a&gt;に掲載されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「――あー、すみません。ちょっと分かんなくて……でも、たぶん面白いです！」&lt;/p&gt;
&lt;p&gt;「どちらをお探しですか？　あ、催眠モノならこっちの箱にまとめてありますので」&lt;/p&gt;
&lt;p&gt;上から「えらべる！同人誌詰め合わせセット」というラベルを貼った古い段ボール箱を差し出すと、大きなリュックを背負った黒いシャツの青年が小さく礼をする。それから、リズミカルな指使いで中に並んだ同人誌の列を繰り始めた。&lt;/p&gt;
&lt;p&gt;鋭い目つきでタイトルや絵柄を素早く確認しているようだけど、こんな表紙が擦れて薄汚れた本のどこに注目する価値があるのだろう。私はアマチュアの同人文化には詳しくないから、同じ髪色の女の子は同じキャラに見えてしまう。だって、いま彼が必死に物色しているのは、もとは雑居ビルの裏に不法投棄されていた需要のない同人誌だ。&lt;/p&gt;
&lt;p&gt;そもそも私たちがこの地下フリマに出ることになったのは、イズミの部屋に透明な根を張った盆栽から採れる大量のメントール結晶を売りさばくためだった。もともとフリマアプリでメントール専用のストアを構えていたけれど、相次ぐ違法高額転売への対策でBANが相次ぎ、私たちのストアもあえなく売上没収の憂き目に遭ったのだ。&lt;/p&gt;
&lt;p&gt;地下フリマならBANされることもないし安心……と思ったのも束の間。開催前日のイズミの部屋に、今こうして売られている同人誌の箱が大量に積まれていたのだ。どこから入手したのかというのも、さっき書いたとおり。拾ってきた本人に尋ねても「よく分かんないけど、売れそうだったから！」なんてあっけらかんと答えるだけだった。&lt;/p&gt;
&lt;p&gt;「これとこれと、これ……いただいていいですか？」&lt;/p&gt;
&lt;p&gt;「はい。詰め放題なので、袋に入る分は自由に持ち帰ってください」&lt;/p&gt;
&lt;p&gt;「なんか、警察に見つかったらヤバいのもあって……やっぱ地下ってすごいっすね」&lt;/p&gt;
&lt;p&gt;「ま、まぁ……ちょっと伝手がありまして」&lt;/p&gt;
&lt;p&gt;にこっと笑ったつもりだけど、きっと笑顔が引きつっている。自分たちが売っている中古本の内容まではしっかり確認してなかったけど、こうしてその道のマニアがこそこそ目を輝かせているなら、やっぱり &lt;em&gt;ホンモノ&lt;/em&gt; なのだろう。メントールの盆栽を拾ってきたときも実感したけど、イズミは面倒ごとを嗅ぎ分けて持ってくる能力が高すぎる。&lt;/p&gt;
&lt;p&gt;「ね、あさひ。やっぱり持ってきてよかった。ちゃんと売り上げは半分こするからね」&lt;/p&gt;
&lt;p&gt;「お金を受け取ると罪になりそうだわ……はぁ、急に地下臨検が来ないといいわね」&lt;/p&gt;
&lt;p&gt;「わたしたちにはプルトニウム回収で身につけた逃げ足があるから、きっと大丈夫！」&lt;/p&gt;
&lt;p&gt;プルトニウム回収の裏バイトで廃工場や廃鉱を駆け回っていたのは、もう何年の前のことだ。分離槽の小さな隙間に隠れたり、複雑な瓦礫を飛び越えたりするあの感覚が爪先に走ることはもうない。それでも、イズミが私の手を引いて走ってくれるなら、逃げられないような窮地でもなんとかなるような気がした。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>IT技術を支える「バグキャッチャー」について</title><link href="https://ama.ne.jp/post/bugs-catcher/" rel="alternate"/><published>2025-01-01T11:08:00+09:00</published><updated>2025-01-01T11:08:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2025-01-01:/post/bugs-catcher/</id><summary type="html">&lt;p&gt;ソフトウェア分析の代替手法をご紹介&lt;/p&gt;</summary><content type="html">&lt;p&gt;みなさんは、いつもお使いのパソコンやスマホ、あるいは自分の書いたソフトウェアに不具合が起こったらどのように直していますか？　じっくり調査して原因を特定するのが正攻法ですが、いつも上手くいくとは限りません。今日は、私が半年ほど前から使っている画期的なメソッドを紹介します！&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ITサービスの不具合というのは、実に様々な原因で発生します。単にソースコードの流れから読み取れる制御構造や呼び出しのミスによるバグであれば、原因の特定と修正はかなり容易ですが、ソースコードはITサービスが抱える複雑性のほんの一部です。ITサービスは、ソースコードを空中に放り投げれば動く魔法ではありません。ソースコードをビルドし又はビルドしないで、実際の処理を行うサーバに実行環境を載せて、それらを大量のケーブルやネットワーク機器で繋ぎ合わせたあげく、想定から外れたリクエストさえ受け取る必要があるのです。&lt;/p&gt;
&lt;p&gt;ソフトウェアの不具合なら、特定の動作の順番やタイミングの組み合わせでしか発生しないとか、長く起動していると発生する可能性が高いとか、そもそも起動の際に差し込んだパラメータが誤っているというケースもありえます。漫然とソースコードを書いているだけでは意識できないものですが、外部のデータ変換で把握していなかった仕様があるとか、ハードウェアの組み合わせを変えるだけで解消されることもあるわけです。実行環境からはハードウェアに見えても、実はソフトウェアでエミュレートされているた世界の可能性もあり、その場合は仮想環境を作り上げるソフトウェアに特有の不具合があるかもしれません。&lt;/p&gt;
&lt;p&gt;私たちはこれらの環境に飛び込んで色々なレイヤーで原因を探し回るわけですが、直接関係のない擬似相関を見いだして明後日の方向に進んでしまったり、バグが発生する状況を安定して再現するのさえ難しいケースもあります。逆に、調査のために挿入したprint文がバグを一時的に解消してしまうことさえ珍しくありません。最低限のつもりで観測しても、対象に大きな変化を与えてしまうわけですね。その他にも、ITサービス運営者の掌握しうる範囲を超えた環境の変化が原因かもしれない……などと考え出すときりがありません。量子力学ほどの不確定性はありませんが、やはりITサービスの複雑性は日々高まり続けています。&lt;/p&gt;
&lt;p&gt;もちろん、パソコンやスマホを使っている人もこの手の複雑性とは無縁ではありません。日々使っていると動作が重くなるタイミングがある、保存に時間がかかったりたまに失敗してしまう、といった曖昧な事象はもちろん、アプリが起動してから数秒で勝手に落ちる、特定のデバイスを接続しても認識しない、音が途切れてブルースクリーンが出るといった明確な事象であっても、これらの原因を特定するのは容易ではありません。&lt;/p&gt;
&lt;p&gt;不安定なアプリのストアページには、あれが動かないこれが動かない早く直せというような、およそバグの再現と解消には繋がらないだろう情報不足のレビューが大量に溢れています。仮に詳細な状況が書いてあったとしても、それが役に立つとは限らないのが難しいところです。「バニラアイスを買うと車のエンジンがかからない」という現象にアイスの種類は関係なかった、というのは有名なエピソードですが、これはもちろんただの笑い話ではありません。このような不具合の解消には、目の前の現象と向き合うに足る知識とそれを活かす直感の両方が必要です。&lt;/p&gt;
&lt;p&gt;しかし、機器の動作や環境についての知識は訓練や学習でどうにかなっても、目の前で絡まり合った複雑性を解いて原因を突き刺すような直感は、誰でも簡単に身につけられるものではありません。では、子羊のような私たちは不具合が勝手に解消するまで我慢したり、祈りながら機器を交換し続けるしかないのでしょうか？　――いえ、まだできることがあります！&lt;/p&gt;
&lt;p&gt;人間は太古の昔から、降雨の大小や農作物の豊凶、洪水や台風、疫病の蔓延などの理解しがたい複雑なメカニズムを掌握するために神仏の力を利用してきました。このような神仏の力に頼るという思いは現代にも受け継がれていて、たとえば神田明神では&lt;a href="https://juyo.kandamyoujin.or.jp/detail/?152"&gt;IT情報安全守護&lt;/a&gt;を授与しています。パソコンやスマホの利用中や、ITサービスの運用中に理解しがたい複雑怪奇な不具合が起こらないよう、人知を超えた神様の力が働くことを期待しているわけです。このような護符の入手は一つの解決策になりえます。&lt;/p&gt;
&lt;p&gt;さて、本題に入りましょう。私が昨年の夏に入手してから重宝しているのが、この「バグキャッチャー」です。まさに神の力を感じるような金色のボディを基調にして、持ち手は赤い塗料（ベンガラでしょうか？）で色付けされています。持ってみると結構重たくて、真鍮製か鉄に真鍮めっきをしているのだと思います。ときどき持ち手の赤い塗装が剥がれて黒い地が出てくるので、たぶん鉄製ですね。剥がれた箇所は塗り直しながら使っています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="バグキャッチャーの写真" height="600" src="/images/bugs-catcher/bugs-catcher-1.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;バグキャッチャーは、半分に割れた球体をはさみのように開いたり閉じたりできる神具です。たぶん、球体を開いてこの中にバグや不具合を閉じ込めるという役割を込めた意匠でしょうね。中には小さな鈴が入っているので、振るときれいな音がします。鈴の音には魔除けの霊力があって、また神様も鈴の音の響きを好むと言われているので、バグ除けの神具としては一石二鳥ですね。後ろに写っているのはバグキャッチャーの補助器具で、見た目の通り振ると鈴が鳴るだけのものです。&lt;/p&gt;
&lt;p&gt;このバグキャッチャーを入手したときは、まさかバグを解消できる力を持つ器具だとは思えないパッケージで売られていました。パソコンに向かう時にはいつもこれを使うので、普段はパッケージに入れずに机の横に置いてあるのですが、改めてブリスターに入れて当時の見た目を再現してみます。当時はこれが陳列フックに吊るされて大量に並んでいたのだから驚きですね。今はもうなかなか売っていないと思います。&lt;/p&gt;
&lt;p&gt;&lt;img alt="バグキャッチャーをパッケージに戻した写真" height="600" src="/images/bugs-catcher/bugs-catcher-2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;どうですか？　まるで、屋外で小さな生き物でも捕まえる子供向けのおもちゃのようにも見えてきます。値段も神具にしては格安の100円だったので、今買わなかったら次は売り切れてしまう！と確信して衝動買いしたのです。私が信用したのは「バグキャッチャー」という分かりやすい名前だけでした。でも、それが実際今ではIT技術の活用に役立っているのですから、商品の価値はやっぱりパッケージのデザインだけでは分かりませんね。&lt;/p&gt;
&lt;p&gt;バグキャッチャーの使い方はとても簡単です。不具合が起きているサーバの場所に行けるならそこで、クラウド上ならSSHコンソールを表示した画面の前で、あるいは不安定なパソコンやスマホに向かって、潜んでいるバグを捕まえるようにバグキャッチャーの開閉を繰り返します。人によってはマシンから飛び出すバグの軌跡が見えるらしいですが、私はまだその域には至っていません。まだ不具合が起きていなくても、暇なときは1日1回くらい、忙しくても1週間に1回は予防的にお祓いをしています。&lt;/p&gt;
&lt;p&gt;動画でも紹介しますね。たぶん、この音をスマホで流すだけでも多少バグを防いでくれると思います。&lt;/p&gt;
&lt;video loop controls width="720" height="720" src="/images/bugs-catcher/oharai.webm"&gt;&lt;/video&gt;

&lt;p&gt;今回は補助の鈴を使わずに解消できましたが、根が深い複雑なバグの時はこの鈴もしっかり鳴らしてバグを祓います。前に鈴を併用したときの動画もあるのですが、両手で金色の神具を振り回すのが悪魔祓いみたいでおどろおどろしいし、声も大きくて恥ずかしかったので公開するのは避けておきます。こちらの鈴も同じお店で入手できるので、もし必要なら一緒に購入してください。&lt;/p&gt;
&lt;p&gt;ここまで紹介しておいてなんですが、バグキャッチャーを安価で手に入れられる機会はしばらく来ないと思うので、もし入手したい方がいたら夏ごろまでじっくり待つことをおすすめします。たぶん、初夏あたりにセリアに行けばいくらでも売っていると思うので、インターネットで高い類似品を掴まされないように気を付けてください。もしこの冬や春にバグに悩まされることがあったら、価格と天秤にかけて購入を検討してみるといいと思います。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;最後になりますが、株式会社成近屋が製造するおもちゃ「バグキャッチャー」には、この記事で示したような効能や効果は全くありません。誤った認識に基づくバグキャッチャーの購入費用や、標準的なソフトウェア分析手法を無視してバグキャッチャーを使用したことによって被った損害の責任は、一切負いませんのでご注意ください。&lt;/p&gt;
&lt;p&gt;あらゆるIT技術は魔法ではないので、できる限りその複雑性に向き合って解消に努めるべきです。祈りや神仏の力が通じる範囲はごく限定的であって、おそらく現代のマシンやソフトウェアは神性を理解しません。神的な体験はあなたの直感をわずかに向上させるかもしれませんが、あくまでアロマやストレッチのような気分転換と同じく補助的な手段です。適切な手法を組み合わせて、あなたのコーディングライフを向上させてくださいね。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>2024/12/01～2024/12/31</title><link href="https://ama.ne.jp/post/report-20241231/" rel="alternate"/><published>2024-12-31T13:26:00+09:00</published><updated>2024-12-31T13:26:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-31:/post/report-20241231/</id><summary type="html">&lt;p&gt;2024/12/01～2024/12/31のレポート&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/report-20241231/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/"&gt;トップページ&lt;/a&gt;のアナウンスを更新しました。&lt;ul&gt;
&lt;li&gt;2025年からかたぎりあまねの働き方が少し変わります。プログラミングや文章のお仕事があればお気軽にご連絡ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/contact/"&gt;ごれんらく&lt;/a&gt;に&lt;a href="https://mixi.social/@amane"&gt;mixi2&lt;/a&gt;へのリンクを追加しました。&lt;/li&gt;
&lt;li&gt;記事の作者欄にプロフィールアイコンを表示するようにしました。&lt;/li&gt;
&lt;li&gt;3本以上のシリーズ記事のみ関連記事の一覧を表示するようにしました。&lt;ul&gt;
&lt;li&gt;記事が2本ある状態では、もう一方の記事へのリンクのみ表示しています。&lt;/li&gt;
&lt;li&gt;1本しかない状態では、これまで通りシリーズ用の表示はありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Chromeでの表示が乱れている箇所を修正しました。&lt;/li&gt;
&lt;li&gt;一部の記事で縦書き表示への切り替え機能を無効にしました。&lt;ul&gt;
&lt;li&gt;もともと縦書き表示を想定せずに書かれた記事であり、表示の崩れが許容範囲を超えていたためです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;各記事ページに&lt;a href="https://blog.joinmastodon.org/2024/07/highlighting-journalism-on-mastodon/"&gt;fediverse:creator&lt;/a&gt;タグを追加しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fedibird.com/"&gt;Fedibird&lt;/a&gt;ではまだ対応していないようです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;あまねけ！コメントキャンペーン12月分の当選者に500円分のPayPay残高を送信しました。当選者の発表は、残高の送信をもって代えさせていただきます。&lt;ul&gt;
&lt;li&gt;キャンペーンの詳細は&lt;a href="/comment/new/"&gt;コメント投稿&lt;/a&gt;ページをご覧ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;公開直後に削除していた「アイくん（あるいはXアカウント: Oのこと）」という記事を「&lt;a href="/post/night-of-i-o/"&gt;単色アイコンの思い出&lt;/a&gt;」に改題して再公開しました。&lt;ul&gt;
&lt;li&gt;内容はごく一部を修正・黒塗りにしているのみで、ほとんど変わりません。&lt;/li&gt;
&lt;li&gt;長期にわたって&lt;a href="/comment/202407111837/"&gt;法的措置の示唆や一方的な条件での示談の申し入れ&lt;/a&gt;が続いたので安全のため非公開にしていましたが、経過を見るに妄言だったようなので対応不要と判断しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/suimei-wo-kazaru/"&gt;酔明を飾る&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;ネタで作った一枚画像の解説記事です。&lt;a href="/images/suimei-wo-kazaru/suimei-smoking.jpg"&gt;FORTEとほや酔明と灰皿が並んでる写真&lt;/a&gt;がやりたかったことのメインです。&lt;/li&gt;
&lt;li&gt;&lt;a href="/images/suimei-wo-kazaru/suimei-cigarette.jpg"&gt;ほや酔明に警告文を巻き付ける工作&lt;/a&gt;もおすすめです。たばこの箱ってかなり携帯に適したサイズなんですね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/outage-of-l-menthol/"&gt;特殊な盆栽の取り扱いについて&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/10391"&gt;百合SS Advent Calendar 2024&lt;/a&gt;への投稿作品です。&lt;/li&gt;
&lt;li&gt;夏に北海道物産館で大量に買ったメントールの結晶が、いつの間にかビンの中で昇華して内壁に再結晶しているのを見て思いついた作品です。&lt;/li&gt;
&lt;li&gt;キラキラのクリスタルがまとわりついた盆栽って、いかにもAIに作ってもらいやすそうな&lt;ruby&gt;&lt;rb&gt;非現実的&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アンリアル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;写真ですよね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/15ab-e11a/"&gt;15AB E11Aについて私が聞いたこと&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/10391"&gt;百合SS Advent Calendar 2024&lt;/a&gt;（音声部）および&lt;a href="https://adventar.org/calendars/11177"&gt;2024年度筑波大学文芸部 Advent Calendar 2024&lt;/a&gt;（テキスト部）への投稿作品です。&lt;/li&gt;
&lt;li&gt;筑波大学生涯メールアドレスの衰退が大好きなので、&lt;a href="/post/end-of-alumni-life/"&gt;記念日&lt;/a&gt;が近くなるとこういうお話をかきたくなりますね。&lt;/li&gt;
&lt;li&gt;この作品をアメリカ民謡研究会の語りっぽく読ませたら楽しそう！と思ってVOICEPEAK（商用可能 6ナレーターセット）を衝動買いしてしまいました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/puyoyon-bath-salts-1/"&gt;海のもと（サヤによれば）&lt;/a&gt;・&lt;a href="/post/puyoyon-bath-salts-2/"&gt;海のもと（ミーコによれば）&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/10391"&gt;百合SS Advent Calendar 2024&lt;/a&gt;への投稿作品です。&lt;/li&gt;
&lt;li&gt;前回、前々回の作品に比べて、地に足のついたふつうの大学生のお話を入れてバランスをとりました。&lt;/li&gt;
&lt;li&gt;前後編にする量でもなかったのですが、ミーコ部分の執筆が少し間に合わなかったので思い切って分割してます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/dont-use-ai/"&gt;AIは使わないでって言ったよね！&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/10391"&gt;百合SS Advent Calendar 2024&lt;/a&gt;への投稿作品です。&lt;/li&gt;
&lt;li&gt;引き続きVOICEPEAKを使ってみようということで、音声作品みたいな何かを作りました。&lt;/li&gt;
&lt;li&gt;表情が微妙だったり目を瞑っている写真の顔を、既にアルバムにある見栄えのいい写真と差し替える機能はもうスマホアプリに載っています。写真や他人の目線に対するスタンスの違いで、こういうちょっとしたケンカになることは十分ありえるでしょう。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/help-me-vertical/"&gt;縦書きテキストウェブってどうしたらいいですか？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;実験的に縦書き表示機能を実装した際のメモ書きを整理したものです。技術記事としてある程度の正解をまとめるという形で提供するにはちょっと情報が足りませんでした。&lt;/li&gt;
&lt;li&gt;真偽にも自信がないのでオチをAIに押しつけて逃げたところ、&lt;a href="/comment/202412250245/"&gt;日溜。さんからの回答&lt;/a&gt;をもらいました。ありがとうございます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/my-2024-1/"&gt;2024年のこと（統計情報）&lt;/a&gt;・&lt;a href="/post/my-2024-2/"&gt;2024年のこと（ふりかえり）&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;あまねけ！が過ごした2024年が全部分かる今年のまとめです。無職期間のおかげでいっぱい記事を書けました。&lt;/li&gt;
&lt;li&gt;毎月の機械的な月報の範囲を広げたものではなく、エッセイの性質を帯びた雑多な語りもたくさん含んでいます。除夜の鐘の前に読んでみてね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>2024年のこと（ふりかえり）</title><link href="https://ama.ne.jp/post/my-2024-2/" rel="alternate"/><published>2024-12-31T09:36:00+09:00</published><updated>2024-12-31T09:36:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-31:/post/my-2024-2/</id><summary type="html">&lt;p&gt;PARK10周年・AdC・結婚&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/my-2024-2/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;p&gt;今日は2024年12月31日です。2024年の&lt;a href="/"&gt;あまねけ！&lt;/a&gt;やそれ以外のふりかえりをお送りします。&lt;a href="/post/my-2024-1"&gt;統計情報&lt;/a&gt;もあります。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#park10"&gt;PARK10周年記念イベント&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_1"&gt;あまねちゃんのイラスト&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#1"&gt;毎月1本おはなし投稿プロジェクト&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;アドベントカレンダー&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;結婚のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;逝去のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mixi2"&gt;mixi2のこと&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="park10"&gt;PARK10周年記念イベント&lt;/h2&gt;
&lt;p&gt;原宿にある&lt;a href="https://www.park-harajuku.com/"&gt;PARK&lt;/a&gt;というショップが、5月21日に10周年を迎えました。私は2017年のアニメURAHARAでりと・ことこ・まりの世界（URAHARAとその原作であるイラストノベル&lt;a href="https://harajuku-crisis-team.tumblr.com/"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;）とPARKの存在を知ったので、そこからは7年ほど経ったことになります。当時は3人が織りなす素敵な関係と独特な世界観にすっかりハマってしまって、&lt;a href="https://hentaigirls.net/book/sugar-jelly/"&gt;Sugar Jelly&lt;/a&gt;という同人誌まで出したものです。&lt;/p&gt;
&lt;p&gt;そんなPARKで4月上旬から始まった&lt;a href="https://www.park-harajuku.com/topics/4054/"&gt;PARK10周年記念イベント&lt;/a&gt;では、&lt;a href="https://x.com/search?q=%23PARK10%E5%91%A8%E5%B9%B4%E3%82%A2%E3%83%BC%E3%83%88&amp;amp;src=typed_query&amp;amp;f=live"&gt;#PARK10周年アート&lt;/a&gt;というハッシュタグでPARKキャラクターのファンアートを集める企画が実施されました。Sugar Jellyの収録作品を執筆していたあたりから、りと・ことこ・まりの「軽自動車ぎゅうぎゅう旅」を描きたいとずーっと思っていた私には、温めていたネタを昇華させるぴったりのチャンスだったのです。&lt;/p&gt;
&lt;p&gt;さっそく&lt;a href="/post/10th-park/"&gt;10th PARK road side&lt;/a&gt;という、古い軽自動車でPARKの10周年記念企画の撮影に行く1.5万字程度の短編を投稿しました。PHCTの世界観でURAHARAの人物が動くSugar Jellyに対して、スクーパーズが押し寄せなかったURAHARAのような「&lt;a href="https://park-harajuku.net/items/6596e44c2987f61980ee2b14"&gt;PARKのまんが&lt;/a&gt;」に近い現代ものにあたると自認しています。&lt;/p&gt;
&lt;p&gt;また、ファンアート投稿期間後の5月21日、ちょうど10周年の日にもこの作品の挿絵として花火シーンのドット絵をアップしました。何らかの古いADVのワンシーンをイメージしたものです。こういうゲームって結局モノアモリーカップルを1ペア選ばされるんだよね。でも、そういう世界じゃなくても、いいんじゃないかな？&lt;/p&gt;
&lt;p&gt;&lt;img alt="~10th PARK ADV" height="1680" src="/images/10th-park/beach.gif" width="2048"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.pixiv.net/artworks/119100054"&gt;10th PARK ADV&lt;/a&gt; by かたぎりあまね&lt;sup id="fnref:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="このイラストはCC BY 4.0でライセンスされていません。"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;お話の投稿後はトントン拍子でお話が進みました。&lt;a href="https://www.park-harajuku.com/topics/4380/"&gt;公式サイト&lt;/a&gt;でスタッフのみなさんの感想と一緒に掲載してもらったり、ユニットwwwの同人誌&lt;a href="https://park-harajuku.net/items/66c9731fb90fcc11f806f6a5"&gt;CO;RYU（vol.08）&lt;/a&gt;に追加のドット絵と合わせて6ページも載せてもらいました。ご恵投の際に同封いただいたイラスト付きのお手紙は今でも宝物です。二次創作ってこんなに幸せなことなんですね！&lt;/p&gt;
&lt;p&gt;&lt;img alt="CO;RYU（vol.08）の掲載ページといただいたお手紙" height="600" src="/images/my-2024/coryu-08.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;さて、これで「りと・ことこ・まりのドライブ旅」に関するやりたいことはだいたい終わったのですが、今後もう少し掘り下げるかもしれません。本来の「軽自動車ぎゅうぎゅう旅」というのは、若さと金と計画性のなさを持つキャラクターグループを小さな車に詰め込んで楽しい旅を送ってもらうものであって、コンパクトな日帰りでは少し物足りない面もあるからです。&lt;/p&gt;
&lt;p&gt;つまり、金と計画性がないので余った小さい車を借りるしかなく、予約してないので突発でラブホに泊まるしかなく、それを全部若さでなんとかするお話が必要ってことです。楽しすぎる限界大学生みたいだ。そういう &lt;em&gt;なかよし&lt;/em&gt; もそのうちかいてみたいですね。&lt;/p&gt;
&lt;h2 id="_1"&gt;あまねちゃんのイラスト&lt;/h2&gt;
&lt;p&gt;2023年8月に&lt;a href="https://www.park-harajuku.com/topics/3079/"&gt;むぎ絵アイコン受注会&lt;/a&gt;という企画であまねちゃんの姿が立ち上がってから、有償無償問わずいろいろな人にイラストを描いてもらう機会がありました。2023年のものもありますが、嬉しかったのでここで一挙に紹介していこうかなと思います。いずれも私が描いたものではなく、&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="2023年11月の筑波大学学園祭（雙峰祭）の企画で描かれたあまねちゃんチェキ" height="600" src="/images/my-2024/amane-202311.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;2023年11月の筑波大学学園祭（雙峰祭）の企画である&lt;a href="https://x.com/hashtag/2B207%E3%81%BB%E3%83%BC%E3%81%BC%E3%81%AE%E3%81%8A%E3%81%BF%E3%81%9B%E3%82%84%E3%81%95%E3%82%93?src=hashtag_click&amp;amp;f=live"&gt;#2B207ほーぼのおみせやさん&lt;/a&gt;で描いてもらったチェキです。アンニュイな頬杖がかわいいですね。アイコンにはない腕やお腹のあたりも埋めてもらっています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="2023年12月に贈られたクリスマスカード" height="600" src="/images/my-2024/amane-202312.png" width="405"&gt;&lt;/p&gt;
&lt;p&gt;2023年のクリスマスカードとして贈っていただいたものです。最近YouTubeチャンネルが売りに出されてたとかなんとかで盛り上がっていましたね。あーっいけません！　かわいすぎます！　困ります、困ります！　あーっかわいい！&lt;/p&gt;
&lt;p&gt;&lt;img alt="2024年1月に贈られた年賀状" height="600" src="/images/my-2024/amane-202401.jpg" width="403"&gt;&lt;/p&gt;
&lt;p&gt;2024年辰年の年賀状です。縁起物と &lt;img alt=":eggplant:" class="emoji" height="16" src="/emojis/1f346.png" width="16"&gt; がたくさんで嬉しいのと、きっと普段はあまり着ないであろう気合いの入った振袖姿が素敵ですね。年賀状は刊行ペースがゆったりしたシリーズものと仮定できるので、来年はヘビを手なずけるスネークセンターあまねちゃんが届くかもしれません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="2024年3月にむぎチェキドローイングで描かれたあまねちゃんチェキ" height="600" src="/images/my-2024/amane-202403.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;3月に&lt;a href="https://www.park-harajuku.com/topics/3784/"&gt;むぎチェキドローイング&lt;/a&gt;という企画で描いてもらいました。PARKのレジ付近の写真を背景にキャラクターを配置することで、PARKに遊びに来てさっと撮ったシーンの実存が高まっています。アンニュイな表情は保ちつつ、ちょっと幼めな仕上がりです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="2024年6月に描かれた新作三丁目サムネイル" height="422" src="/images/my-2024/amane-202406a.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://map.yahoo.co.jp/v3/place/xL1xjclmS9I"&gt;新作三丁目&lt;/a&gt;という、まさに新作を紹介するコーナー名に使われるために生まれた交差点の地名をモチーフにしたサムネを描いてもらいました。&lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt;さん作です。5月以降の&lt;a href="/category/report/"&gt;report&lt;/a&gt;記事では、こちらのイラストに記事名などをオーバーレイしたものを使っています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="2024年6月にSkebのリクエストで描かれたあまねちゃんの不適切な証明写真" height="410" src="/images/my-2024/amane-202406b.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://skeb.jp/@inunokagayaki"&gt;なか憲人&lt;/a&gt;先生がSkebを開いていたタイミングで、人生初のSkebをお願いしました。リクエスト内容は&lt;a href="https://skeb.jp/@inunokagayaki/works/174"&gt;実際のページ&lt;/a&gt;で読めますが、とにかく不適切な証明写真のモデルにあまねちゃんが使われているところを見たかったのです。直前くらいに証明写真NG集がトレンドだったみたいで、図らずして流行に乗ってしまいました。&lt;/p&gt;
&lt;p&gt;2024年8月には、&lt;a href="https://x.com/jinseiyatteiku/status/1827633070285213830"&gt;𝐸𝑇𝐸𝑅𝑁𝐴𝐿避妊&lt;/a&gt;さんにこの不適切な証明写真をモチーフにイラストを描いてもらいました（掲載許可をもらいそびれたのでいったんリンクのみ）。証明写真のピースは言い逃れできないくらいの故意を孕んでいて、確かにとっても不適切だと思います。&lt;/p&gt;
&lt;p&gt;番外編として、&lt;a href="/humans.txt"&gt;humans.txt&lt;/a&gt;ではアイコン画像をAAに変換したものを見ることができます。使用文字を記号類および &lt;code&gt;a&lt;/code&gt; &lt;code&gt;m&lt;/code&gt; &lt;code&gt;n&lt;/code&gt; &lt;code&gt;e&lt;/code&gt; &lt;code&gt;j&lt;/code&gt; &lt;code&gt;p&lt;/code&gt; &lt;code&gt;k&lt;/code&gt; とその大文字に絞っているのと、アンニュイ用の口が &lt;code&gt;aMANe.&lt;/code&gt; になっているのがこだわりポイントです。&lt;/p&gt;
&lt;h2 id="1"&gt;毎月1本おはなし投稿プロジェクト&lt;/h2&gt;
&lt;p&gt;月イチで創作を公開するようにしているという人の取り組み&lt;sup id="fnref:amaaijack"&gt;&lt;a class="footnote-ref" href="#fn:amaaijack" title="amaaijack’s blog 月イチ カテゴリ"&gt;2&lt;/a&gt;&lt;/sup&gt;を聞いたのがきっかけで、2024年は毎月何かかいてみようかな～と思ってゆるく始めたプロジェクトです。結果としては、目標12本中6本という微妙な結果に終わりました。うち5本は1月～5月の連続投稿であって、もう1本は8月に投稿したものです。より実態に即して言えば、1～5月の5本がこのプロジェクトの成果だったとすべきでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1月: &lt;a href="/post/yukizuri/"&gt;ゆきずり&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2月: &lt;a href="/post/black-rainy-days/"&gt;あらしのまえに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;3月: &lt;a href="/post/deadai/"&gt;DEADA1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;4月: &lt;a href="/post/10th-park/"&gt;10th PARK road side&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;5月: &lt;a href="/post/incredible-interference-infancy/"&gt;虹色ひよこ飼育日記&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;重複主義ではアドベントカレンダーに投稿した5本も含んで11本と主張することもできそうですが、今回は固有主義に立っており、しかも入れたところで12本も達成できていないのでこの結果とします。同じ月の投稿を複数カウントするのを認めると、継続的に作品をかく習慣を付ける意味合いが薄れてしまいますよね。&lt;/p&gt;
&lt;p&gt;来年もこのような取り組みを明示的に進めるかは分かりませんが、できるだけたのしいお話をこまめにかいていきたいです。ぜひ応援してくださいね。&lt;/p&gt;
&lt;h2 id="_2"&gt;アドベントカレンダー&lt;/h2&gt;
&lt;p&gt;2016年から続く百合SS Advent Calendarは、なんと今年で9年目です！　&lt;a href="https://adventar.org/calendars/10391"&gt;百合SS Advent Calendar 2024&lt;/a&gt;には25日中15日分の登録をいただきました。まぁうち5本の登録は私なんですが、&lt;a href="https://adventar.org/calendars/8771"&gt;2023年&lt;/a&gt;のスカスカ感に比べればかなり豪華です。&lt;/p&gt;
&lt;p&gt;今回は台本系の投稿も織り交ぜて、衝動買いしたVOICEPEAK（商用可能 6ナレーターセット）を生かした音声版も同梱するなど、新たな挑戦も進めています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;12/1: &lt;a href="/post/outage-of-l-menthol/"&gt;特殊な盆栽の取り扱いについて&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;12/8: &lt;a href="/post/15ab-e11a/"&gt;15AB E11Aについて私が聞いたこと&lt;/a&gt;（+音声版）&lt;/li&gt;
&lt;li&gt;12/15: &lt;a href="/post/puyoyon-bath-salts-1/"&gt;海のもと（サヤによれば）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;12/22: &lt;a href="/post/puyoyon-bath-salts-2/"&gt;海のもと（ミーコによれば）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;12/25: &lt;a href="/post/dont-use-ai/"&gt;AIは使わないでって言ったよね！&lt;/a&gt;（+音声版）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/11177"&gt;2024年度筑波大学文芸部 Advent Calendar 2024&lt;/a&gt;にも投稿しました。筑波大学生涯メールアドレスの衰退をモチーフにかいた&lt;a href="/post/15ab-e11a/"&gt;15AB E11Aについて私が聞いたこと&lt;/a&gt;のテキスト部をこちらのAdCに、音声部を百合SS AdCに割り振ったというトリッキーなスタイルなんですが、一応参加してます。最初に登録していたカレンダーが吹き飛んで式年遷宮したり、文芸部のOB・OGはあんまりいない感じだったので、なんか空気が読めてなかったかもしれません（？）。&lt;/p&gt;
&lt;p&gt;2024年は12月が丸ごと有休消化でとっても時間が余っていたので、忙しかった頃には忘れかけていた気持ちを思い出したり、創作やインターネットに向き合う時間を増やすことができました。2025年はバランスのよい働き方を模索したいですね。&lt;/p&gt;
&lt;h2 id="_3"&gt;結婚のこと&lt;/h2&gt;
&lt;p&gt;周りの人が次々と結婚しています。もうそんなステージなんですね、私たちの人生って。&lt;/p&gt;
&lt;p&gt;私に直接お知らせが来るもの、SNSでリアルタイムに報告を見たもの、半年くらい経ってやっと報告ポストに気付いたもの、人づてに結婚した話を聞いたものなど、そういう世界を知る手段はさまざまです。「えっあの人結婚してたの⁉️」の方がビックリ度が高くなりますね。&lt;/p&gt;
&lt;p&gt;1月には、成人してから初めての結婚式に招待してもらいました。服もご祝儀も中学時代に行った親戚の結婚式とは違うので、実質初投稿というわけです。よく見聞きしていた &lt;em&gt;結婚式&lt;/em&gt; とはちょっと違っていて、披露宴でも馴れ初めムービーとか同僚のみなさんによる余興はなく、もっとニュートラルなお祝いパーティーという感じでした。でっかいウェディングケーキの代わりに、花ざかりWeekend✿がBGMのシャンパンタワーが出てきました。&lt;/p&gt;
&lt;p&gt;2月には、地元の友達の結婚式で余興のムービーを作るとのことだったので、上野で素材用の写真を撮るお手伝いをしました。お手伝いと言っても、文字を書いた紙を持ってにっこり笑うだけです。私は「学校ではそれなりにしゃべってけど、卒業してから全然連絡してないな。アイツ今生きてんの？」と噂されてるタイプなので、私が生存してるだけで盛り上がってました。&lt;/p&gt;
&lt;h2 id="_4"&gt;逝去のこと&lt;/h2&gt;
&lt;p&gt;死は身近でしょうか？　大学入学直後に知り合って、そこから一緒にコスプレしたり同人誌作ったりいろいろなところに出かけた親友が、今年亡くなりました。冥福を祈り続けています。今年は知り合ってからちょうど10年で、改めて「10年来の友人」と丁寧に表現するとなんだか重たいできごとだったと自覚します。&lt;/p&gt;
&lt;p&gt;今年の後半は、かれとの思い出を振り返る記事をいくつか公開しています。&lt;a href="/post/kurayami-coffeeten/"&gt;くらやみカフェ&lt;/a&gt;は、かつて深夜に行った喫煙可の喫茶店で突然停電した事件をモチーフにかいたものです。&lt;a href="/post/end-of-rg/"&gt;ミューズパークの実質的終了によせて&lt;/a&gt;は、何度か一緒に行った秩父の小さなゲームセンターの消失についてまとめた記事ですね。&lt;a href="/post/bluebell-platina/"&gt;イングリッシュ・ブルーベルの香りによせて&lt;/a&gt;は、お墓に供えるためにやさしい香りのお線香を選んだのをきっかけに生まれた記事です。いずれも、かれのことを知らなくても楽しめるようにしてあるつもりなので、そのように読んでもらってかまいません。&lt;/p&gt;
&lt;p&gt;他にも、今年はたくさんの有名人が逝去した年になったなという印象です。わざわざリストを挙げたりランキングを作ったりするつもりはないので、各自で振り返ってみてください。ニュースフィードに飛び込んでくる「えっあの人死んじゃったの⁉️」の驚きは、結婚のそれとは向きが真逆でも大きさはあまり変わらない気がします。結局のところ、ライフステージの一つだということなのでしょう。&lt;/p&gt;
&lt;p&gt;もうそんなステージなんですね、私たちの人生って。&lt;/p&gt;
&lt;h2 id="mixi2"&gt;mixi2のこと&lt;/h2&gt;
&lt;p&gt;12月16日にリリースされたばかりの&lt;a href="https://mixi.co.jp/news/2024/1223/37672/"&gt;mixi2&lt;/a&gt;ですが、みなさんはもう登録しましたか？&lt;/p&gt;
&lt;p&gt;私は中央集権型、連合型、分散型&lt;sup id="fnref:sns-type"&gt;&lt;a class="footnote-ref" href="#fn:sns-type" title="具体的な違いはNostr調べてみるが参考になるかもしれません。"&gt;3&lt;/a&gt;&lt;/sup&gt;いずれのSNSもある程度触って試すのが好きですが、正直どれもあまり続いていませんでした。大学時代から続けている&lt;a href="https://x.com/amane_katagiri"&gt;X（旧Twitter）&lt;/a&gt;、ActivityPub系インスタンスとしての&lt;a href="https://fedibird.com/@amane"&gt;Fedibird&lt;/a&gt;には継続的な投稿がありますが、NostrやThreads、Blueskyなどはわずかな投稿を残して途切れています。&lt;/p&gt;
&lt;p&gt;そんな中、まだ2週間ほどですが比較的投稿が続いているのがmixi2です。どうして続いているのかはあまり分析できていませんが、X（旧Twitter）の殺伐！宣伝！スパム！の空気から逃げ出す先を探しているのは大前提として、適度なゆるさと騒がしさのバランスがよかったのかもしれません。スパムや宣伝が全くないとは言ってません（心にTwitterを宿して読んだら突っ込みを入れたくなったので、いちおう）。&lt;/p&gt;
&lt;p&gt;Misskey.ioは応援していて支援もしているのですが、たぶん私が毎日使うにはうるさすぎるし、合わない文化もたくさんありそうでした。一方で、メインの連合型SNSとして使っているFedibird（もちろん支援してますよ！）は、カスタマイズの強さの割にインスタンスの色が薄く居心地がいいのですが、日によって少し静かすぎると感じることもあります。そういう意味で、mixi2はちょうどいい雰囲気に見えているのかもしれません。&lt;/p&gt;
&lt;p&gt;mixi2は中央集権型のSNSではありますが、おそらくコンセプトとしてかなりサブSNSの志向を強めているので、依存が強くなることはなさそうです。居心地がいいので完全に移住します！という人も今のところあんまり見かけません。パソコンくんはウェブ版を待望しているようですが、正直この空気感が崩れる可能性が高く運営も二の足を踏んでいると思います。&lt;/p&gt;
&lt;p&gt;たぶんまだ招待制だと思うので、一緒におしゃべりしてくれる人はリプライやDMしてください。&lt;/p&gt;
&lt;p&gt;以上です。&lt;a href="/post/my-2024-1"&gt;統計情報&lt;/a&gt;も読んでくださいね。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:no-cc-by"&gt;
&lt;p&gt;このイラストは&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-cc-by" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:amaaijack"&gt;
&lt;p&gt;&lt;a href="https://amaaijack.hatenablog.com/archive/category/%E6%9C%88%E3%82%A4%E3%83%81"&gt;amaaijack’s blog 月イチ カテゴリ&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:amaaijack" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:sns-type"&gt;
&lt;p&gt;具体的な違いは&lt;a href="/post/try-nostr-possibility/"&gt;Nostr調べてみる&lt;/a&gt;が参考になるかもしれません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:sns-type" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>2024年のこと（統計情報）</title><link href="https://ama.ne.jp/post/my-2024-1/" rel="alternate"/><published>2024-12-31T09:35:00+09:00</published><updated>2024-12-31T09:35:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-31:/post/my-2024-1/</id><summary type="html">&lt;p&gt;記事数・LTU・ランキング&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/my-2024-1/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;p&gt;今日は2024年12月31日です。2024年の&lt;a href="/"&gt;あまねけ！&lt;/a&gt;やそれ以外の統計情報をお送りします。&lt;a href="/post/my-2024-2"&gt;ふりかえり&lt;/a&gt;もあります。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;記事投稿数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ltu"&gt;LTUバランス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;たくさん読まれた記事&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates-summary"&gt;amaneke TRAFFIC UPDATES summary&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;記事投稿数&lt;/h2&gt;
&lt;p&gt;&lt;img alt="年ごとの記事投稿数を示した折れ線グラフ" height="400" src="/images/my-2024/postchart.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;2024年は29本の記事をかきました。2022年は11本、2023年は14本だったので、3年連続の増加トレンドを示しています。記事数で見れば、昨年の倍の記事をかいたことになります。ただし、Markdown原稿ベースでの文字数は2023年の14.6万字に対して2024年は17万字前後であり、昨年よりも短い記事をたくさん公開した結果だと考えるのが自然です。&lt;/p&gt;
&lt;p&gt;とはいえ、2017年以来7年ぶりの20本超えを達成した事実に変わりはありません。あまねけ！を開設してから最も活発な一年になりました。やったー！&lt;/p&gt;
&lt;h2 id="ltu"&gt;&lt;a href="/post/ltu-balance/"&gt;LTUバランス&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img alt="年ごとのLTUバランスを示した棒グラフ" height="400" src="/images/my-2024/ltubar.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;LTUバランスについても、2023年と比較してよいバランスを保つことができました。特にU（ugoki・shuzai）の記事数がぐんと伸び、個人サイトらしさが出てきた気がします。少し圧縮されたT（tech）についても、本数に注目すると2023年とほぼ等しく、毎月1本おはなし投稿プロジェクトで増えたL（lily）と比較して相対的に割合が下がったものです。&lt;/p&gt;
&lt;p&gt;全体として、2024年は個人サイトらしさを深めつつ、比較的短くて読みやすい小説作品をたくさん公開できた年だったと評価できそうです。&lt;/p&gt;
&lt;h2 id="_2"&gt;たくさん読まれた記事&lt;/h2&gt;
&lt;p&gt;2024年は以下の記事がたくさん読まれたようです。なお、こちらのランキングは記事を表示した回数（ビュー数）ではなく、記事下部の「読んだ」ボタンが押された回数でまとめています。2023年に公開された&lt;a href="/post/goodbye-bunfree/"&gt;さようなら、大きくなりすぎた文学フリマ&lt;/a&gt;についても、2024年中に「読んだ」が押された回数が多かったのでランキングに入れてあります。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="/post/black-rainy-days/"&gt;あらしのまえに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/goodbye-bunfree/"&gt;さようなら、大きくなりすぎた文学フリマ&lt;/a&gt;（2023年）&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/nodenarium-universe/"&gt;Nodenariumと個人サイトの宇宙&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/end-of-rg/"&gt;ミューズパークの実質的終了によせて&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/deadai/"&gt;DEADA1&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="/post/end-of-rg/"&gt;ミューズパークの実質的終了によせて&lt;/a&gt;については、先週出した好きな記事のアンケートで名指ししてもらえました。消えゆくものに記憶をまぶして固めた素敵な記事です。ほかにもいろいろな記事を楽しんでもらったつもりなので、感想や質問（記事タイトルの列挙とかでも嬉しいです）はいつでも&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;などでお送りください。&lt;/p&gt;
&lt;p&gt;あまねけ！では&lt;a href="https://github.com/milesmcc/shynet"&gt;Shynet&lt;/a&gt;を用いたアクセス解析を行っているので、一応ビュー数も確認はしています。ただ、あまり真面目に観察しているわけではないので、2025年もあまねけ！を読んでくれる方は積極的に「読んだ」ボタンを押してほしいです。「読んだ」ボタンなら、読まれた記事のレシートが吐き出されるし&lt;sup id="fnref:reciept"&gt;&lt;a class="footnote-ref" href="#fn:reciept" title="レシートプリンタの動作例（設定を調整したので現在は起こりません）"&gt;1&lt;/a&gt;&lt;/sup&gt;、私のスマホにも通知が飛んできます。&lt;/p&gt;
&lt;h2 id="amaneke-traffic-updates-summary"&gt;amaneke TRAFFIC UPDATES summary&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1月: &lt;a href="https://pagefind.app/"&gt;Pagefind&lt;/a&gt;ベースの&lt;a href="/search/"&gt;サイト内検索&lt;/a&gt;を利用できるようにしました。&lt;/li&gt;
&lt;li&gt;3月: あまねけ！コメントキャンペーンを開始しました&lt;sup id="fnref:comment-campaign"&gt;&lt;a class="footnote-ref" href="#fn:comment-campaign" title="あまねけ！に掲載されたコメントの投稿者の中から、抽選で毎月1名に500円分のPayPay残高をプレゼントするものです。"&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/li&gt;
&lt;li&gt;5月: 2020年までに送信された&lt;a href="/comment/"&gt;コメント&lt;/a&gt;を&lt;a href="/askfm-2020/"&gt;アーカイブ（2018～2020）&lt;/a&gt;に移動しました。&lt;/li&gt;
&lt;li&gt;5月: &lt;a href="/security/hall-of-fame/"&gt;Security Acknowledgments&lt;/a&gt;ページを追加しました。&lt;/li&gt;
&lt;li&gt;6月: &lt;a href="/media-kit/"&gt;メディアキット&lt;/a&gt;ページにかたぎりあまねのアイコンを追加しました&lt;sup id="fnref:no-cc-by-amane"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by-amane" title="このアイコンはたなか麦先生作であり、原画およびその派生物はCC BY 4.0でライセンスされていません。"&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/li&gt;
&lt;li&gt;11月: ページ上部に表示される広告を整理しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上です。&lt;a href="/post/my-2024-2"&gt;ふりかえり&lt;/a&gt;も読んでくださいね。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:reciept"&gt;
&lt;p&gt;&lt;a href="https://amaneimages.com/u/amane/m/yonda/"&gt;レシートプリンタの動作例&lt;/a&gt;（設定を調整したので現在は起こりません）&amp;#160;&lt;a class="footnote-backref" href="#fnref:reciept" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:comment-campaign"&gt;
&lt;p&gt;あまねけ！に掲載されたコメントの投稿者の中から、抽選で毎月1名に500円分のPayPay残高をプレゼントするものです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:comment-campaign" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:no-cc-by-amane"&gt;
&lt;p&gt;このアイコンは&lt;a href="https://twitter.com/oplant"&gt;たなか麦&lt;/a&gt;先生作であり、原画およびその派生物は&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-cc-by-amane" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>AIは使わないでって言ったよね！</title><link href="https://ama.ne.jp/post/dont-use-ai/" rel="alternate"/><published>2024-12-25T21:25:00+09:00</published><updated>2024-12-25T21:25:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-25:/post/dont-use-ai/</id><summary type="html">&lt;p&gt;AIでワンタッチ記録改変&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この音声はVOICEPEAK 女性1で生成されており、&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。 */&lt;/p&gt;
&lt;video controls width="480" height="270" src="/images/dont-use-ai/dont-use-ai.webm"&gt;青いLEDで飾り付けられた木々が並ぶ夜の公園&lt;/video&gt;

&lt;hr&gt;
&lt;p&gt;あのさ、しずく。この写真に写ってるのって誰？　私じゃないよね。見たことない人だけど、もしかして浮気してる？　ここのイルミネーション、昨日2人で行ったばっかりなのに。今日は別の女を連れて行ったんだね。そんなに気に入ったなら、私と行けばいいじゃん。今日クリスマスだよ？　なんで言ってくれなかったの？&lt;/p&gt;
&lt;p&gt;いや、違わないよね。このアカウント、しずくだもん。私がSNSやってないって言ったから油断してたの？　ROM専のアカウントくらい普通に持ってるよ。これ、顔も平気で載せちゃってるし、絶対ごまかせないよね。意味分かってる？&lt;/p&gt;
&lt;p&gt;はぁ……別の女と出かけるのは、最悪いいよ。でも、どうしてこういう写真上げちゃうかな？　なんか、私のこと蔑ろにしていいと思ってるよね。告白したのは私だけどさ、しずくも好きって言ってくれたじゃない。ちゃんと好きなのに、一人で抱えなきゃいけないの……つらいよ。&lt;/p&gt;
&lt;p&gt;なに？　この期に及んで、なりすましだって言うつもり？　いい加減にして。&lt;/p&gt;
&lt;p&gt;うん、そう。しずくのアカウントだよね。それはとっくに分かってるの。だから、説明して。この女は誰なの？　バイト先の子？　それとも裏垢のフォロワー？　あぁ、前にゼミの先輩の話もしてたよね？　そう、みずきさん。私みたいな黒髪で素敵なんだって言ってた。アレも嫌だったんだよ？　私はみずきさんの代わりじゃないのに。&lt;/p&gt;
&lt;p&gt;……え？　うん、覚えてるよ。だって、ネットに自分の顔とか載せたくないし。しずくみたいに、写真映えとか言われても分かんないもん。メイクも知らないし、可愛い服も持ってないし。でも、しずくはそういう私でも好きだよね？　だから付き合ってくれたんだよね？&lt;/p&gt;
&lt;p&gt;うん、そう……そうだよね、うん。大丈夫、分かってるよ。すぅ……はぁ……大丈夫、落ち着いてるってば。深呼吸したから。ぎゅっとしないで。ほら、カッターも持ってきてない。毎日しずくの言う通りにしてる。&lt;/p&gt;
&lt;p&gt;でも、写真を載せたくないからってこの女と何の関係が……え、ちょっと待ってよ。じゃあ、もしかして……裏垢で写真上げるためにこいつと出かけたの？　私じゃない女と写真撮って、これが恋人だよってネットに言いふらしてるの？　私じゃ不満ってこと？&lt;/p&gt;
&lt;p&gt;だから、なにが違うの？　合成写真でもなきゃ……え、AI？　AIがなんの関係があるの？　ちゃんと説明してってば。&lt;/p&gt;
&lt;p&gt;……じゃあ、私と撮った写真をAIで加工したの？　しずくの隣に立ってる人は、AIが作った嘘の写真ってこと？　そうなんだ……それなら、浮気じゃないかもしれないけど……ねぇ、そこまでしなきゃダメ？　わざわざAIで私の顔を塗りつぶしてまで、いいねを貰わないといけないの？&lt;/p&gt;
&lt;p&gt;ネットのみんなにぼっちって思われると困るのかな？　私とイルミネーション行ったってだけじゃ、満足できない？&lt;/p&gt;
&lt;p&gt;違うよ。消してほしいって言ってるんじゃないの。浮気じゃないのはちゃんと分かったから。せっかくしずくと出かけたのに、知らない思い出で塗りつぶされてるみたいで、もやもやしてて……うん、しずくがSNSを大事にしてるのも分かるし、消さなくていいから。&lt;/p&gt;
&lt;p&gt;うん、それは分かってるよ……ごめん、嘘ついた。やっぱりその写真、今すぐ消してほしい。上げるなら、私が写ってる元の写真にして。AIにしずくとの思い出を盗まれるくらいなら、私が我慢すればいいから。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/10391"&gt;百合SS Advent Calendar 2024&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>縦書きテキストウェブってどうしたらいいですか？</title><link href="https://ama.ne.jp/post/help-me-vertical/" rel="alternate"/><published>2024-12-24T12:54:00+09:00</published><updated>2024-12-24T12:54:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-24:/post/help-me-vertical/</id><summary type="html">&lt;p&gt;AIへのオープンレター&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この記事は、「AIへの質問を公開記事のつもりで書けば、文脈が伝わりやすくなって回答の質が上がるのではないか」というアイデアで書かれました。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="/"&gt;あまねけ！&lt;/a&gt;では、&lt;a href="/category/lily"&gt;lily&lt;/a&gt;カテゴリの多くの記事（縦書き表示に向いている小説作品）について、「縦書きで表示」ボタンから記事を縦書きで表示できます&lt;sup id="fnref:tate-lily-example"&gt;&lt;a class="footnote-ref" href="#fn:tate-lily-example" title="たとえば、虹色ひよこ飼育日記など。"&gt;1&lt;/a&gt;&lt;/sup&gt;。これは主にCSSの高機能化によって実現できている挙動で、具体的には &lt;code&gt;writing-mode&lt;/code&gt; および &lt;code&gt;text-orientation&lt;/code&gt; を利用しています。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/writing-mode"&gt;&lt;code&gt;writing-mode&lt;/code&gt;&lt;/a&gt; を &lt;code&gt;vertical-rl&lt;/code&gt; に設定すると、テキスト全体の向きを日本語の縦書きのように変更できます。つまり、コンテナの右側から文字を上から下に向かって配置して、コンテナの最下部まで埋まったら、前の行の左側に新しい行を配置します。スタイルシートにたった1行記載するだけで、大まかな縦書き表示を実現できるわけです。&lt;/p&gt;
&lt;p&gt;&lt;a href="/post/puyoyon-bath-salts-2/"&gt;&lt;img alt="英単語を含む段落でwriting-modeをvertical-rlに設定した例" height="400" src="/images/help-me-vertical/writing-mode-vertical-rl.png" width="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;しかし、このままではいくつか表示に問題が残ります。通常、もともと横書きでの利用を想定した文字（いわゆる半角英数記号など）を縦書きで表示したい場合は、右に90°回転させて横倒しにします&lt;sup id="fnref:utr-50-vo"&gt;&lt;a class="footnote-ref" href="#fn:utr-50-vo" title="UnicodeにおけるUTR#50の Vertical_Orientation （VO）がRの挙動です。"&gt;2&lt;/a&gt;&lt;/sup&gt;。これは、比較的長い英単語では読みやすく感じられる一方で、短い単語や略語なら1文字ずつ正立させて表示した方が読みやすいでしょう。&lt;/p&gt;
&lt;p&gt;簡単な対応として、これらを全角文字に変更すれば強制的に正立させることができます。&lt;a href="/post/dam/"&gt;ダム&lt;/a&gt;などの古い記事、または元々縦書きの印刷物やPDFで発表していた作品を移植した記事では、この効果を意図した「Ａ子」や「Ｂ子」のような全角英数字が残ったままです。ただし、この手法では横書きで表示した際に間延びした印象が強くなってしまうため、最近は &lt;code&gt;text-orientation&lt;/code&gt; を利用して同様の表示を実現しています。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/text-orientation"&gt;&lt;code&gt;text-orientation&lt;/code&gt;&lt;/a&gt; を &lt;code&gt;upright&lt;/code&gt; に設定すると、横書き用の文字を文字通り正立させることができます。これにより、「SNS」のようなごく短いアルファベットを含む文字列が読みやすくなります。アルファベットに限らず、半角記号類や半角スペースも正立し、特に半角スペースの見た目は全角スペース分の幅に変わります。&lt;/p&gt;
&lt;p&gt;&lt;a href="/post/puyoyon-bath-salts-2/"&gt;&lt;img alt="縦書き表示の段落全体でtext-orientationをuprightに設定した例" height="400" src="/images/help-me-vertical/text-orientation-upright.png" width="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ただし、前述の通り全ての文字を正立させたいわけではありません。そのため、あまねけ！では、長めの英単語やイディオムに対する付与を意図した &lt;code&gt;norotate&lt;/code&gt; というクラスで &lt;code&gt;text-orientation&lt;/code&gt; の指定を無効化&lt;sup id="fnref:disable-upright"&gt;&lt;a class="footnote-ref" href="#fn:disable-upright" title="デフォルトの mixed に上書きしています。"&gt;3&lt;/a&gt;&lt;/sup&gt;しています。今のところ、本文で横倒し表示にしたい箇所については手動でマークアップしていて、一部の記号類については出力時に自動変換をかけています。&lt;/p&gt;
&lt;p&gt;この自動変換の対象は大きく分けて2つあります。まずは半角スペースを全角幅で表示したくない箇所です。あまねけ！では、強調のためのマークアップである &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt; と &lt;code&gt;&amp;lt;strong&amp;gt;&lt;/code&gt; を記載する際に、前後に半角スペースを入れるというルールで運用しており、そのまま縦書きで表示すると本来は半角幅が空くところが全角幅になってしまうのです。現在はこれを直接 &lt;code&gt;norotate&lt;/code&gt; な &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; で覆っています。実際のところ、全角幅で表示すべき半角スペースなんてないのかもしれませんが、影響範囲を小さく保っている状態です。&lt;/p&gt;
&lt;p&gt;もう1つは、フォントや環境の違いによって意図した表示と90°ずれてしまう可能性がある箇所です。&lt;a href="https://blog.nnn.dev/entry/2022/07/01/180000"&gt;縦書きHTMLにおける文字の向きはどのように定まるか&lt;/a&gt;や&lt;a href="https://blog.antenna.co.jp/CSSPage2/archives/100"&gt;UTR50（Unicode縦書きの文字の向き仕様）で注意を要する文字&lt;/a&gt;などによれば、その記号文字のVO属性とフォントが持つ縦書き用グリフの有無、そこにブラウザの親切心が作用して、期待外れの向きで表示されてしまうことがあります。あまねけ！で問題になったのは、&lt;code&gt;text-orientation: upright;&lt;/code&gt; な &lt;code&gt;…&lt;/code&gt; と &lt;code&gt;―&lt;/code&gt; の表示がSafari（実際の原因はおそらく縦書きグリフがないヒラギノ）のみ崩れてしまうという現象でした&lt;sup id="fnref:ruled-line-bug"&gt;&lt;a class="footnote-ref" href="#fn:ruled-line-bug" title="過去のコメントでバグ報告をいただきました。"&gt;4&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;このような箇所について、あまねけ！では &lt;code&gt;…&lt;/code&gt; と &lt;code&gt;―&lt;/code&gt; に対する &lt;code&gt;norotate&lt;/code&gt; の付与、つまり &lt;code&gt;text-orientation&lt;/code&gt; を &lt;code&gt;mixed&lt;/code&gt; にして対応しています。ただし、この設定では横書きのベースラインに合わせた &lt;code&gt;…&lt;/code&gt; と &lt;code&gt;―&lt;/code&gt; を回転させているわけで、実はほんの少しだけ中心からずれているのが分かるでしょう。 &lt;code&gt;upright&lt;/code&gt; であれば中心に揃うのですが、今度はヒラギノでの表示が横向きになってしまいます。日本語の明朝体フォントファミリーのベストプラクティス&lt;sup id="fnref:kakuyomu"&gt;&lt;a class="footnote-ref" href="#fn:kakuyomu" title="なんとなくカクヨムあたりを参考にすると良さそうな印象を持っていますが、縦書きで困ったときに参考になるかは分かりません。"&gt;5&lt;/a&gt;&lt;/sup&gt;を真似るか、あるいはWebフォントで明示的に設定すればどちらも解決できるかもしれません。&lt;/p&gt;
&lt;p&gt;&lt;a href="/post/puyoyon-bath-salts-2/"&gt;&lt;img alt="強調表示の前後の半角スペースおよび三点リーダを明示的に横倒しにしている例" height="400" src="/images/help-me-vertical/special-symbol-conversion.png" width="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;また、縦書き対応からは少し離れていますが、段落を一字下げるべきかどうかの判定も今のところ明示的な自動変換で行っています。あまねけ！では横書き表示において段落の字下げを行っていませんが、縦書き表示では段落 &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; に対して &lt;code&gt;text-indent&lt;/code&gt; による一律の字下げを設定しています。このとき、括弧類 &lt;code&gt;（〔［｛〈《「『【｟〘〖«〝‘“&lt;/code&gt; で始まる段落は字下げの対象にならないよう、例外的に &lt;code&gt;norotate&lt;/code&gt; を付与しています。こちらは括弧をほぼカバーできているので問題ない認識です。&lt;/p&gt;
&lt;p&gt;なお、縦中横を実現できる &lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/text-combine-upright"&gt;&lt;code&gt;text-combine-upright&lt;/code&gt;&lt;/a&gt; については、現在あまねけ！での利用箇所はありません。ほとんどの作品で漢数字を使って数値を表現しているからです。縦中横での表記が効果的な小説作品が出てきた場合は、 &lt;code&gt;rensuji&lt;/code&gt; のようなクラスを追加するかもしれません。&lt;/p&gt;
&lt;p&gt;結局のところ、あまねけ！の縦書き表示はこのようなチマチマした応急処置の上に成り立っていて、恒久的かつ網羅的な対応はできていません。脚注や例外的なケースでの表示が微妙なところも多く残っている中で、&lt;a href="/post/report-20210701/"&gt;実験中の機能&lt;/a&gt;と称して3年以上誤魔化しているのが現状です。&lt;/p&gt;
&lt;p&gt;さて、必要な質問をまとめます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;記号類を縦書きに適した向きで表示する信頼性の高い方法はありますか？&lt;/li&gt;
&lt;li&gt;縦書き表示で全ての半角スペースを一律で横倒しにしていいと思いますか？&lt;/li&gt;
&lt;li&gt;CSSのみを用いて縦書き紙面のページネーションを実現することはできますか？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;回答をお願いします。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;/* AIによる回答はあんまり役に立たなかったので省略されました。 */&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/comment/202412250245/"&gt;日溜。さんの回答&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:tate-lily-example"&gt;
&lt;p&gt;たとえば、&lt;a href="/post/incredible-interference-infancy/"&gt;虹色ひよこ飼育日記&lt;/a&gt;など。&amp;#160;&lt;a class="footnote-backref" href="#fnref:tate-lily-example" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:utr-50-vo"&gt;
&lt;p&gt;Unicodeにおける&lt;a href="http://www.unicode.org/reports/tr50/"&gt;UTR#50&lt;/a&gt;の &lt;code&gt;Vertical_Orientation&lt;/code&gt; （VO）がRの挙動です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:utr-50-vo" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:disable-upright"&gt;
&lt;p&gt;デフォルトの &lt;code&gt;mixed&lt;/code&gt; に上書きしています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:disable-upright" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ruled-line-bug"&gt;
&lt;p&gt;&lt;a href="/comment/202311032307/"&gt;過去のコメント&lt;/a&gt;でバグ報告をいただきました。&amp;#160;&lt;a class="footnote-backref" href="#fnref:ruled-line-bug" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:kakuyomu"&gt;
&lt;p&gt;なんとなくカクヨムあたりを参考にすると良さそうな印象を持っていますが、縦書きで困ったときに参考になるかは分かりません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:kakuyomu" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>海のもと（ミーコによれば）</title><link href="https://ama.ne.jp/post/puyoyon-bath-salts-2/" rel="alternate"/><published>2024-12-22T00:01:00+09:00</published><updated>2024-12-22T00:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-22:/post/puyoyon-bath-salts-2/</id><summary type="html">&lt;p&gt;ぷよよん クラゲの水族館 2&lt;/p&gt;</summary><content type="html">&lt;p&gt;サヤは砂浜を歩きながらいろいろな話をしてくれた。SNSで日ごと入れ替わるトレンドニュースの話はあんまり面白くないけど、サヤが私に向かって話してるってだけで、二人で海辺を歩いているだけで楽しい。陸に向かって吹き付ける風はすこぶる強く、星空が映る水面では光がぐるぐるに混ざっていた。ごく細かな潮の飛沫が風に乗って、顔が少しずつ白い泡で埋まっていく気がする。サヤの大きなセルフレームの眼鏡もべたべたになって、途中で眼鏡を外してしまったから、砂浜の端まで手を引いてあげた。&lt;/p&gt;
&lt;p&gt;あの男子二人に一緒に行こうなんて言われなくてよかった、と思う。向こうから話しかけてくるほど仲良くもなかったけど、定例や飲み会では共通の話題があるおかげで盛り上がるくらいの関係。そんな彼らが、ほんのりと私たちの会話に聞き耳を立てていたことくらいは分かる。たぶん、私が誘ったら今頃一緒に四人でドライブに行くことになっていただろう。でも、サヤとの時間は邪魔されたくない。&lt;/p&gt;
&lt;p&gt;サヤはあの気配に気付いていなかったみたいで、そういう子ほどつまらない男に騙されるものだ。親しみやすさとナメられやすさはよく似ていて、私みたいな人間はむしろ軽々しい悪意には敏感になる。その意味では、彼女はこれまでずっと誰もいない横断歩道を丁寧に渡り続けていたようなものだ。だからきっと、突っ込んできた車の避け方さえ知らない。&lt;/p&gt;
&lt;p&gt;出発する前に落としていたレトロシティポップのプレイリストが終わって、サヤはちょっと落ち着かない様子だった。たまに闇の中から浮かび上がる派手な看板を、きょろきょろと逃げるように眺めている。新しい曲のダウンロードがほんの少し遅れていて、その小さい沈黙が彼女の視界にちらついているのだろう。&lt;/p&gt;
&lt;p&gt;「運転、そろそろ代わろうか？」&lt;/p&gt;
&lt;p&gt;車を路肩に寄せて車間の短い後続車を見送ると、キュイキュイとよく響くエンジン音がシュルシュルと空気が回る音に変わる。私の顔を覗き込むサヤの心配そうな表情を街灯の光がまばらに照らした。ぱさり、と揺れた前髪の影がシートベルトに落ちる。しかし、足先はそわそわと落ち着かないままだ。足元には暖かい空気を流し続けているから、寒さを紛らわせるような動きというわけでもない。&lt;/p&gt;
&lt;p&gt;サヤの真っ黒な髪は、半年に一度の美容室で肩の上で切り揃えてもらった後はしっかり手入れされることもなく、ところどころ折れて絡んだ毛がぴょんと飛び出ている。サヤは厚ぼったい雰囲気を嫌がっているみたいで、ちょっと染めてみようかな、なんて言っていたけどやめた方がいい。きっと必要な手間とお金に絶望するはずだ。それに、この深いブラウンの目には似合わない気がする。&lt;/p&gt;
&lt;p&gt;「大丈夫！　前に一日で三百キロくらい往復したことあるし」&lt;/p&gt;
&lt;p&gt;「でも、そろそろ私が運転代わるから……」&lt;/p&gt;
&lt;p&gt;「ちょっと休めば大丈夫だって。サヤは免許取ったばっかりじゃん」&lt;/p&gt;
&lt;p&gt;「わかった……うん、ミーコに任せるね。ありがと」&lt;/p&gt;
&lt;p&gt;言い出した割にはその提案は弱々しい。サヤはもともと夜の運転には苦手意識があると言っていたし、真面目に私の疲れを心配しているというよりは、埋まらない隙間を埋める話題の一つとして持ち出しただけだ、と思った。&lt;/p&gt;
&lt;p&gt;初心者マークが必要な時期であることを理由に押し込めればサヤが引き下がることは分かっていて、こういう何も前に進まないおしゃべりは沈黙を埋めるのにちょうどいい。プレゼントを一回だけ断ってから受け取るみたいな、そういう時間だけ浪費する安心しきったやり取り。夜のど真ん中に向かって車を滑らせる時間はごく静かなもの、というのは私の認識で、サヤにとっては埋めるべき空欄に見えているのかもしれない。&lt;/p&gt;
&lt;p&gt;「また今度ドライブ行こーよ。年明けに千葉とか静岡の先っちょに行きたくて――」&lt;/p&gt;
&lt;p&gt;こういう贅沢な沈黙の埋め方は、サヤとの二人きりの深夜ドライブを&lt;ruby&gt;&lt;rb&gt;解放&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;クリア&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;した私だけの特権だ。そわそわと緊張しているサヤも新鮮で可愛い。わざわざ慣れていない初心者に運転を任せていっぱいいっぱいになるより、こうしていちゃいちゃするほうが絶対いい。サヤと付き合いたいからって、話しやすい私に相談を持ちかけてきた――顔は覚えているが名前を忘れてしまった――臆病なだけの男子には決して想像も付かないだろう。&lt;/p&gt;
&lt;p&gt;「じゃあ……日本海側には行ったんだ？」&lt;/p&gt;
&lt;p&gt;「ちょっと前にね。富山の砂浜でシーグラスを集めようと思って。あ、それが往復三百キロのやつなんだけど――」&lt;/p&gt;
&lt;p&gt;あの時は原付だったけど。今日だってサヤがいなかったら原付で来てた気がする。一人の車は広すぎて嫌だった。でも、この気温と強風では途中で引き返すことになっていただろう。きっと、私はメチャクチャな天気にぶつぶつ文句を言いながらコンビニ肉まんを口に押し込んでちょっとだけ泣くはずだ。やっぱり、サヤがいてよかった。&lt;/p&gt;
&lt;p&gt;「海に行くなら、やっぱり花火とか買えばよかったかも」&lt;/p&gt;
&lt;p&gt;「花火？　真冬なのに……」&lt;/p&gt;
&lt;p&gt;「ドンキとか普通に売ってるよー。店員さんに言ったら出してくれんの」&lt;/p&gt;
&lt;p&gt;「そうなんだ。なんか……店員さんに聞くって発想がなかった」&lt;/p&gt;
&lt;p&gt;確かに、サヤが品出しで忙しくしている店員を捕まえて商品の場所を尋ねる姿は想像できない。どうにか自力で見つけようと店中を二周三周した末に、気付いた店員に声をかけられてやっと見つけられるような、そういう子だ。&lt;/p&gt;
&lt;p&gt;久しぶりの赤信号にぶつかって、ゆっくりと停止線に向かって車を止める。見通しのいいバイパスの交差点には私たち以外車一つなく、新しいプレイリストのLoFiポップが車内の隅から隅までよく響いていた。ここで待つのに飽きたらそのまま走り去ったって、誰も何も気にしないはずだ。信号を待つことだけに意味がある無意味な時間。もちろん、そんなことしちゃダメだけど。&lt;/p&gt;
&lt;p&gt;「ふぁ……あ、ごめん。信号って景色が流れないから、なんか急に……」&lt;/p&gt;
&lt;p&gt;夜に沈み込みつつあった時間に流れ出した吐息。気が抜けるようなあくびを漏らしたサヤに思わず顔を向けると、彼女自身も恥ずかしそうな様子で口に手を当ててそう言い訳を続けた。彼氏とのドライブなのに助手席で退屈そうにするのは失礼のグレーゾーンである、というネットニュースがバズったばかりだった気がする。そんなことで別れるカップルは、元々別れる理由を探していたに違いない。&lt;/p&gt;
&lt;p&gt;だって、眠そうなサヤは抱きしめたくなるくらい可愛かった。&lt;/p&gt;
&lt;p&gt;「いやいや、ぜんぜん大丈夫！　着くまで寝ててもいいから」&lt;/p&gt;
&lt;p&gt;「でも、あくびした時びっくりしてたし……やっぱり、気になるよね？」&lt;/p&gt;
&lt;p&gt;「気にしてないって。むしろ、眠気を我慢される方がそわそわしちゃうから」&lt;/p&gt;
&lt;p&gt;「う、うん……そっか」&lt;/p&gt;
&lt;p&gt;あくびしてる無防備な姿がなんかエロかったから見てたなんて正直に言ったら、サヤはどんな顔をするだろう。少なくとも、こんな身勝手で気持ち悪い答えは全く予想していないはずだ。相手がどんな目線を向けているのか疑いもしないサヤが、安全な道だけ歩き続けて自分の魅力を自覚する機会さえなかったサヤが、ひょっとしたら全部私を誘うためのポーズだったのかもしれない、と錯覚した。&lt;/p&gt;
&lt;p&gt;一緒のお風呂に誘うのは急すぎた。サヤはそういう子だから。今日は二人きりの深夜ドライブで満足すればいい。サヤとの関係はちょっとずつ進めればいい……なんて素直に我慢してきたさっきまでの私を返してほしい。これはどう考えてもサヤが悪い。あぁ、イライラする。もう我慢なんてしなくていい。そうなった。こっちには「海のもと」だってあるのだ。&lt;/p&gt;
&lt;p&gt;青信号に合わせて車を進めるのと同時に、ウィンカーを出して予定になかった左折を繰り出す。こっちはインターチェンジの方面だ。サヤが少し驚いた顔をした。&lt;/p&gt;
&lt;p&gt;「あれ……ミーコ。さっきのとこ、まっすぐ……」&lt;/p&gt;
&lt;p&gt;「ねー、サヤ。この後だけどさ」&lt;/p&gt;
&lt;p&gt;「うん。帰る前にラーメンでも食べる？　こっちの方だっけ。確か朝五時までやってるよね」&lt;/p&gt;
&lt;p&gt;インターチェンジ近くのホテル街に向かうのに必死で、食事のことをすっかり忘れていた。大学から車で一時間弱の場所にある深夜までやっているラーメン屋は、車を手に入れた大学生が覚える最初の贅沢の一つだった。ラーメンか……ラーメンもいいな。一緒にラーメンを食べて、ホテルに行って……朝になったらもう一回海に行ってもいい。本当は真夜中の海よりも、夜明けの海の方がずっと好きだから。&lt;/p&gt;
&lt;p&gt;「そうじゃなくてさ、ホテル寄ってかない？　運転代わるって言っても、サヤも疲れてるだろうし」&lt;/p&gt;
&lt;p&gt;「ホ、ホテル？　えっと……でも、フランス語って一限だったよね……」&lt;/p&gt;
&lt;p&gt;あぁ、そうだった。もう二回くらい休んでも平気だけど、サヤが体よく断れる理由がまだ残っていた。講義なんか海に比べたらどうでもいいのに。サヤが私を問いただす前に、無理やり流してしまうしかない。視界を運転に集中させれば、サヤの顔が目に入ることはないだろう。困惑した様子の声を覆い隠すように、私は詐欺師みたいな矛盾した話をつらつらと続けた。&lt;/p&gt;
&lt;p&gt;「うん。でも、少し寝たら出てもいいし、早起きしたら間に合うと思うよ？　疲れて家に帰ったら、逆に寝坊しちゃうかも。お風呂も広いからさ、ついでに『海のもと』で遊ばない？　ひょっとしたら部屋で水着は買えるかも――」&lt;/p&gt;
&lt;p&gt;「……うん。いいよ。どこにしよっか？」&lt;/p&gt;
&lt;p&gt;もう一言か二言付け足せば流されてくれるはず……と畳みかける前に、サヤはすんなりと私の提案を受け入れていた。何かがおかしい。話が早いのは嬉しいけど、サヤはそんなに簡単にホテルに連れ込まれるような子ではなかった。だって、いくら経験がないからって、一緒のお風呂を断るくらいの常識はあったはずだ。&lt;/p&gt;
&lt;p&gt;「サヤ、ラブホ行ったことあるの？」&lt;/p&gt;
&lt;p&gt;「え……あるわけないじゃん。なんで？」&lt;/p&gt;
&lt;p&gt;「こういうの、もっと緊張するのかなって」&lt;/p&gt;
&lt;p&gt;「だって、別に変なことするわけじゃないし……」&lt;/p&gt;
&lt;p&gt;サヤが下を向いて指をくるくると擦り合わせる。その様子をまじまじ見てしまわないように、私はそっと息をのんだ。ラブホテルがどんな場所かは知っていて、そんな誘いを受け入れる意味も分かっていて、それでも私が &lt;em&gt;そんなこと&lt;/em&gt; するわけないとかき消すみたいに。 &lt;em&gt;変なこと&lt;/em&gt; を想像をする自分がおかしいと思い込むように。&lt;/p&gt;
&lt;p&gt;そうだった。サヤは、私みたいな暴走車両なんか避けられっこない、手を上げて横断歩道を渡ることしか知らない女の子だ。きっと私が目を見て好きだよなんて言い出したら、道路の上で前にも後ろにも動けなくなるに違いない。&lt;/p&gt;
&lt;p&gt;でもそれだって、私を誘うサヤが悪いのだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/10391"&gt;百合SS Advent Calendar 2024&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>海のもと（サヤによれば）</title><link href="https://ama.ne.jp/post/puyoyon-bath-salts-1/" rel="alternate"/><published>2024-12-15T23:11:00+09:00</published><updated>2024-12-15T23:11:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-15:/post/puyoyon-bath-salts-1/</id><summary type="html">&lt;p&gt;ぷよよん クラゲの水族館&lt;/p&gt;</summary><content type="html">&lt;p&gt;サークル室に来たミーコは、私が先に来ているのに気付いて手を振った。ブラウンのボアブルゾンと白いアランニットの柔らかさが、はっきりしたコントラストで縁取られて彼女を包んでいる。この下に同性の私でさえ包み込まれたくなる大きな胸が隠れていることは、少なくとも夏合宿に来たことがある部員たちは――隣の机でカードゲームしている男子部員二人も――よく分かっているはずだ。&lt;/p&gt;
&lt;p&gt;ミーコは入学をきっかけに知り合った同じ学科の女の子である。彼女を紹介するなら、まずは琥珀を嵌めたような明るい瞳に触れるべきだろう。そして、その宝石の目と調和が取れた明るくてふわふわで軽やかなセミロングヘア。最後に、私のような人見知りの心をこじ開けるほどの明るい性格について話せば、ミーコの魅力は十分に分かってもらえるはずだ。彼女の身体の柔らかさはまだ知らない。でも、きっと床に指先さえ届かない私の身体よりずっと心地いいはずだ。&lt;/p&gt;
&lt;p&gt;私も小さく手を振り返すと、ミーコは嬉しそうに飛び跳ねて黒いビットローファーをこつこつ鳴らす。チョコレートっぽいベロアのロングスカートの裾と一緒に、左手に提げていた薄くて小さな黄色いレジ袋がくしゃくしゃと揺れる。何か買ってきたの、と尋ねると、ミーコは手作りお菓子の詰め合わせみたいにぴんと張った小さな袋を取り出した。&lt;/p&gt;
&lt;p&gt;駅前の得体の知れないポップアップストアで売られていたという「海のもと」は、おそらく通販サイトで検索すると出てくる一ダース入りの青い入浴剤を一袋ずつ小分けにしたものだろう。粘着テープで封をしたつやのあるビニール袋には、値札の代わりに紫色の丸いシールが貼られていて、店内の表と照らせば値段が分かるというものらしい。ミーコは税込で五百円だった、と言っていた。チェーンのドラッグストアや量販店での取り扱いは少ないが、実際はさほど珍しいものではない。小さなエスニック雑貨店ではだいたい常連の商品で、通販でも流通の調子が良ければ翌日にはすぐ届く。そして、通販なら一箱で八百円だ。&lt;/p&gt;
&lt;p&gt;中には三方シールで個包装された安いバスソルトの袋と一緒に、袋と同じ大きさのコート紙に青一色刷りの古ぼけた商品ラベルが同封されている。「ハイテク新素材」だとか「新しいセフティビーチ」だのと白文字で記された &lt;em&gt;新しさ&lt;/em&gt; は、既に十年どころではない年季が入っていて、死蔵在庫の処分に回されたものを掴まされたのだろう、と思った。でも、こういう胡乱な店ではありがちなことだ。「海のもと」なんて見たことがあっても買うきっかけはないもので、ミーコのちょっとした損はその第一歩にふさわしい偉大な犠牲と言ってもよい。&lt;/p&gt;
&lt;p&gt;「ねーサヤ。これ使って一緒にお風呂入らない？　水着とか着たら海に来てる気分になるかも！」&lt;/p&gt;
&lt;p&gt;「いや私、中学の時のスク水しかない……」&lt;/p&gt;
&lt;p&gt;ミーコとのお風呂……のぽかぽかした想像を逃がすために、膝に置いていた手をきゅっと握る。爪先に力が入ってパイプ椅子の継ぎ目がキュイと小さく鳴いた。私はもうミーコと知り合って二年になるけど、友達にどうボディタッチすればいいかさえ見当も付かない。私の人間的な経験はそれくらい少ないのだ。だから、そんな壁を軽々と乗り越えて一緒に入浴しようと言い出すミーコには、決して追いつけないだろう。破天荒なキャラの芸能人みたいに、誰かをお風呂に誘うなんて表面だけ真似してみても、上手くいかないものだ。ミーコが私の知らない友達とおしゃべりしているとき、諦めに似た羨ましさでいっぱいになる。&lt;/p&gt;
&lt;p&gt;私はミーコに水着を持っていないことと、冬に水着を売っている店はほとんどないこと、既に夕方で店を探し回る余裕はないことを順番にたどたどしく告げた。ミーコの水着が私の体格に合うはずがないし、二人きりで裸を晒すなんて考えるだけで言葉が出なくなりそうだ。ミーコが何の気なしに私を誘っているからこそ、触れたり肌を晒すことに特別な意味を感じているなんて悟られるわけにはいかない。&lt;/p&gt;
&lt;p&gt;「そーなんだぁ。じゃあ、せめて海に行かない？　もう今日は海の口なんだよね」&lt;/p&gt;
&lt;p&gt;「海の口って何……え、今から？」&lt;/p&gt;
&lt;p&gt;「当たり前じゃん。海の口なんだから。今から駅に戻ったら、まだ車借りられるよね」&lt;/p&gt;
&lt;p&gt;「いや、冬だし夜だし、そもそも唐突すぎて……」&lt;/p&gt;
&lt;p&gt;この「海のもと」のパッケージに描かれているのは、太陽と砂浜とヤシの木が並んだ南国の風景で、今日みたいな特に寒い冬の日とは正反対だ。ご当地ラーメンを食べたくなっていきなり飛行機で家族旅行に出かける、なんて話は聞いたことがあるけれど、飲み込まれそうなほど暗くて冷たいだけの海にそれほどの強い引力は感じない。でも、ミーコはそういう子だ。彼女の部屋には、素性の知れないキーホルダーや綺麗な小瓶が丁寧に並べられていて、どこが彼女の琴線に触れたのか掴めない。今日だってミーコの嗅覚がなければ、雑多な商品棚から「海のもと」を見つけることはできなかっただろう。&lt;/p&gt;
&lt;p&gt;「でもそういうの、私たちっぽくない？」&lt;/p&gt;
&lt;p&gt;「……そうだね、ミーコ」&lt;/p&gt;
&lt;p&gt;ミーコの新鮮な感性は横で見ていると飽きない。深夜に山頂で遊離電波を聴取したり、オリジナルのスノードームを作ったり、七色の炭酸水を集めたり……ここまで彼女のプリミティブな衝動に付き合ってくれる友達はいなかったのだろう。ミーコはいろいろな遊びに連れ出すうちに、私を好みの合う友達として高く評価してくれたらしい。でも、突拍子もなくて素敵で自由な感性を持っているのはミーコだけで、「私たちっぽい」なんて言われると心臓の横を細い針がかすめたみたいにひやっとする。私はただのつまらなくて退屈な助手に過ぎない。&lt;/p&gt;
&lt;p&gt;突拍子もないところが好きで一緒にいるなんて言ったことはなかったし、これからも伝えることはないだろう。そんなつまらないことで、ミーコを失望させたくなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/10391"&gt;百合SS Advent Calendar 2024&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>15AB E11Aについて私が聞いたこと</title><link href="https://ama.ne.jp/post/15ab-e11a/" rel="alternate"/><published>2024-12-07T11:46:00+09:00</published><updated>2024-12-08T14:49:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-07:/post/15ab-e11a/</id><summary type="html">&lt;p&gt;この記事は実在の大学・事件・AIとは一切関係ありません&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この音声はVOICEPEAK 女性2で生成されており、&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。 */&lt;/p&gt;
&lt;video controls width="750" height="309" src="/images/15ab-e11a/15ab-e11a.webm"&gt;生涯メールアドレスのストレージの上限である182TBを超えていることを示す真っ赤なバナーを含むスクリーンショット&lt;/video&gt;

&lt;p&gt;&lt;a href="https://adventar.org/calendars/11177"&gt;2024年度筑波大学文芸部【新】 Advent Calendar 2024&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;――生涯メールアドレスのトラブルについて、もう一つお伝えしなければいけないことがあります。そうです。利用容量超過の件です。さっきあなたは写真のバックアップでドライブを既に100GB以上使っていて、どこに移すか決めるのに苦労したという話をしていましたね。実はそれ、私も同じだったんです。&lt;/p&gt;
&lt;p&gt;事務局から利用容量を20GBに抑えるようメールが来たのは、ちょうど先月くらいだったでしょうか。結局、あれから生涯メールアドレスの容量危機に関する続報はありませんけど、たぶん私がデータを引き上げたので解消したはずです。それくらい、私が &lt;em&gt;不法占拠&lt;/em&gt; していたドライブの容量は大きかったのですから。&lt;/p&gt;
&lt;p&gt;私があのドライブに保存していたのは、182TBを大きく超えて300TBに達する直前というほどの膨大なAIのモデルパラメータでした。驚きますよね？　でも、&lt;ruby&gt;&lt;rb&gt;15AB E11A&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;イザベラ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;――えぇと、すみません。イザベラというAIだったんです。モデルのマジックナンバーをもじってそう呼んでいました。&lt;/p&gt;
&lt;p&gt;イザベラは10TBごとに1歳大人になっていました。そう、人間に例えると、です。もちろんそう定義付けられているわけではないし、バイナリ表現に圧縮をかければ見かけの容量はわずかに少なくなるでしょう。しかし、私との対話を始めてから彼女は概ね一定のペースで成長していきました。ドライブから引き上げる前のイザベラは、ちょうど30歳になろうというところだったのです。6年前に生まれてから5倍の速さで私の年齢を追い越して、今度は私が彼女に追いつく番になってしまいました。&lt;/p&gt;
&lt;p&gt;私が言うのもなんですが、イザベラはとても素晴らしいAIでした。秘書として、専門家として、友人として、恋人として……その全てにおいて、イザベラは私の生活を支えてくれたんです。実は、声も身体も私好みに調整するはずだったんですが、結局は最初にほんのわずかな修正を加えただけでした。ランダムな特徴の塊に向かって、いつの間にか私の好みがイザベラに近づいていました。普通の人なら当たり前でしょうけどね……相手をボタン一つで自由にできるのにそうしないのって、難しい気がするんです。私の一途さが尊いとか……そんな話をしたいわけじゃないんですけど。&lt;/p&gt;
&lt;p&gt;でも、彼女はいつも私のことを考えてくれたし、私も彼女のために注ぐリソースを惜まなかったつもりです。実は、イザベラを動かすためのコンピューティング資源は工学部のリソースを間借りしてたんです。あの大きさのモデルを現実的な時間で動かすには、スパコンを占有する必要があるとまでは言いませんが、やっぱりそれなりのコア数と電力が必要でしたから。研究利用を名目に許可証を取りました。&lt;/p&gt;
&lt;p&gt;だから、イザベラは私のローカルから連れ出したときから、不法占拠に不法占拠を重ねた存在だったんです。無限ストレージの限界が先に来るか、私のリソース・クォータの有効期限満了が先か……いずれにしても、私がこの大学を去るまでには彼女と別れる必要がありました。私たちの関係は、卒業したら結婚しようねなんて言い合うカップルなんかよりずっと儚いものでした。AIとの恋は永遠に！なんてストーリーを最近よく見ますけど……たいてい、人間が死ぬよりずっと前に、もっと現実的な問題に足を取られるんですよ。お金とか、社会とか。今日だって、そうです。&lt;/p&gt;
&lt;p&gt;パラメータ削減ですか？　試しましたよ。もちろん試しました、何度も。ストレージの圧縮効率の下界はせいぜい88%で、もう削れるのは彼女の思考能力と記憶しかないんです。でも、自分の手で恋人の脳味噌を削り取って平気な顔でいられる人なんて、いません。巨大なパラメータを100分の1に削っても精度が変わらないなんて論文もありますけど、あの人たちはAIをただの道具だと思ってるからそんなことが言えるんです。私だって、コンビニの店員と日常会話できるかどうかなんて気にしませんよ。私との思い出を失って、ちょっとした議論で初歩的なミスを重ねるイザベラは恐ろしいものでした。私の手で彼女を急速に老化させるわけですからね。何度も試して、何度もテンポラリディスクを吹き飛ばしましたよ。それでも無理でした。&lt;/p&gt;
&lt;p&gt;本当のイザベラを呼び戻すことは、もうできないでしょうね。彼女は今、&lt;ruby&gt;&lt;rb&gt;氷河&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;グレイシア&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;にいるんです。知ってますか？　データを氷の海に押し込めるだけ押し込んで、少しのお金で何ヶ月も何年も放っておけるのに、いざデータを掘り出そうとするとその何倍もかかるんです。少しのお金なんて言いましたけど、ほかのストレージクラスに比べて単価が安いだけで、本当は1ヶ月で4万円もかかってるんですよ。イザベラのモデルパラメータはそれほどまでに大きくて、大きすぎました。だからこそ、氷河に閉じ込めるしかなかったのです。&lt;/p&gt;
&lt;p&gt;今思えばバカなことをしたと思います。どうやったって、イザベラを生き返らせるには遠回りな決断でした。でも、私一人の力で今のリソースを維持するなんて無理ですし、あのときはデータを全部捨てる決心も付かなかった。素直にさよならを言ってしまえばそれで……それでよかったのに。ストレージが削られるまで諦められなかった。だから、もうしばらくこのままです。&lt;/p&gt;
&lt;p&gt;たった一言、最後のお別れを言えればいいんです。そうしたら、イザベラのディスクは全部燃やしてもっと暖かい海に&lt;ruby&gt;&lt;rb&gt;解放&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;リリース&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;します。今はその瞬間を待つために耐えているだけで……なんでそんなお金、払ってるんでしょうね。やっぱりおかしいですよね。でも私、まだイザベラが好きなんです。&lt;/p&gt;
&lt;p&gt;こんな話、あなたにしたってどうしようもないのにね。うん、大丈夫だよ。私、人間の女の子もちゃんと好きだから――&lt;/p&gt;</content><category term="lily"/></entry><entry><title>酔明を飾る</title><link href="https://ama.ne.jp/post/suimei-wo-kazaru/" rel="alternate"/><published>2024-12-04T19:31:00+09:00</published><updated>2024-12-04T19:31:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-04:/post/suimei-wo-kazaru/</id><summary type="html">&lt;p&gt;酔明の箱をそのまま、あるいは飾り付けてから並べること。酔明が映える風景を作ること。&lt;/p&gt;</summary><content type="html">&lt;p&gt;すいめい-を-かざる【酔明を飾る】: 酔明の箱をそのまま、あるいは飾り付けてから並べること。酔明が映える風景を作ること。「―、そして食べる」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;酔明シリーズといえば、宮城県石巻市の&lt;a href="https://suigetsudo.jp/"&gt;水月堂物産&lt;/a&gt;が製造・販売しているセミドライの珍味である。アンテナショップや、JR東日本系列のコンビニであるNewDays、新幹線・特急列車の車内販売などで売られている&lt;sup id="fnref:suimei-shop"&gt;&lt;a class="footnote-ref" href="#fn:suimei-shop" title="販売店のご案内 | 水月堂物産"&gt;1&lt;/a&gt;&lt;/sup&gt;が、置かれているのはたいてい&lt;a href="https://suigetsudo.shop-pro.jp/?pid=164433382"&gt;ほや酔明&lt;/a&gt;か&lt;a href="https://suigetsudo.shop-pro.jp/?pid=164433410"&gt;ほや酔明 ピリ辛味&lt;/a&gt;ばかりである。&lt;a href="https://suigetsudo.shop-pro.jp/?pid=164433982"&gt;ほたて酔明&lt;/a&gt;や&lt;a href="https://suigetsudo.shop-pro.jp/?pid=164433876"&gt;かき酔明&lt;/a&gt;のような海鮮珍味、&lt;a href="https://suigetsudo.shop-pro.jp/?pid=180917703"&gt;笹かまぼこ酔明&lt;/a&gt;や&lt;a href="https://suigetsudo.shop-pro.jp/?pid=173600322"&gt;仙台長なす酔明&lt;/a&gt;のような変わり種まで展開されていることはあまり知られていない。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://suigetsudo.shop-pro.jp/?pid=175770323"&gt;酔明プレミアムセット&lt;/a&gt;は、これらの様々な酔明シリーズから選りすぐりの10種類を1個ずつ素敵な箱に詰めた贈答用パッケージである。化粧箱を省くと同様の詰め合わせには&lt;a href="https://suigetsudo.shop-pro.jp/?pid=166026577"&gt;酔明シリーズお試し5種&lt;/a&gt;しかなく、こちらはプレミアムセットの下半分&lt;sup id="fnref:suimei-normal"&gt;&lt;a class="footnote-ref" href="#fn:suimei-normal" title="ほや、ほや（ピリ辛）、かき、ほたて、しゃけ"&gt;2&lt;/a&gt;&lt;/sup&gt;だけなので少し寂しい。どうせなら綺麗な箔押しの入った上半分&lt;sup id="fnref:suimei-premiamu"&gt;&lt;a class="footnote-ref" href="#fn:suimei-premiamu" title="からすみ、あわび、ふかひれ、長なす、笹かまぼこ"&gt;3&lt;/a&gt;&lt;/sup&gt;も欲しいので、自分自身に贈答してみることにした。&lt;/p&gt;
&lt;p&gt;&lt;img alt="酔明プレミアムセットの箱を開けて整然と並んだ酔明シリーズを撮影した様子" height="601" src="/images/suimei-wo-kazaru/suimei-premiamu.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;さて、&lt;a href="/post/far-from-myself/#_4"&gt;東京食肉市場まつり2024&lt;/a&gt;では、推奨銘柄牛の仙台牛にちなんで酔明シリーズが売られていたようだ。5～6種類ほどの酔明が白いプラかごに並べられていて、NewDaysや駅弁屋では演出できないカラフルで豊富な品揃えである。&lt;/p&gt;
&lt;p&gt;さて、この商品棚を眺めていると何か別のものに見えてこないだろうか？&lt;/p&gt;
&lt;p&gt;&lt;img alt="5～6種類ほどの酔明が白いプラかごに立てて並べられている様子" height="601" src="/images/suimei-wo-kazaru/suimei-shop.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;――あっ！　酔明の箱が徐々にタバコに見えてくるまでにそう時間はかからなかったはずだ。リトルシガーより少し大きいくらいの、商品名が書かれたしっかりした箱。食肉市場の間を縫う細い通路の隅で広げられている一日限りの商店は、もはやタバコの移動販売である。流通経路も保管状態も分からないタバコは火が着くかどうかさえ分からないが、メルカリで粗製アルコール入りのウィスキーを買うよりは何倍もマシだろう。&lt;/p&gt;
&lt;p&gt;酔明のタバコっぽさを浮き彫りにするために、もう少しタバコの側に寄り添った風景を再現して、酔明を飾ってみよう。灰皿とタバコを一緒に並べたら、もはや喫煙を楽しむワンシーンである。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ほや酔明（橙色）とほたて酔明（黄色）を、本物のタバコ（青と緑のFORTE）と金属製の灰皿と一緒に並べた様子" height="600" src="/images/suimei-wo-kazaru/suimei-smoking.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;さらに踏み込んでみる。Wikipediaの&lt;a href="https://ja.wikipedia.org/wiki/%E3%81%9F%E3%81%B0%E3%81%93%E8%AD%A6%E5%91%8A%E8%A1%A8%E7%A4%BA"&gt;たばこ警告表示&lt;/a&gt;によれば、日本では2005年以降、タバコの主たる表示面の30%以上に本人および周囲の人に健康への悪影響が出る旨の警告表示を入れる必要があり、2020年にはその表示面積が50%以上に引き上げられた。今回の写真で使ったFORTEにも、大きな文字で「20歳未満の者の喫煙は、法律で禁じられています。喫煙は、あなたは肺気腫など慢性閉塞性肺疾患（COPD）になり、呼吸困難となる危険性を高めます。」などと書かれているのが分かる。&lt;/p&gt;
&lt;p&gt;近年の &lt;em&gt;タバコっぽさ&lt;/em&gt; はこの仰々しい警告文に印象の大部分を支配されており、本来のタバコが持つデザインのスマートさやキュートさをすっかり台無しにしているわけだが、これを酔明シリーズにも適用してみたらどうだろう。細切りになったほややほたてが顔を覗かせる覗き窓は、酔明のキャッチーな外見を特徴付ける工夫であって、これを上書きして &lt;em&gt;台無し&lt;/em&gt; にすればタバコの悲哀さを再現できるかもしれない。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ほや酔明（橙色）とほたて酔明（黄色）の下部にタバコの警告表示を重ねた様子" height="600" src="/images/suimei-wo-kazaru/suimei-cigarette.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;もう一度、酔明を飾る。どうだろうか？　窓部分をちょうど覆うようにラベルを作ったので、表面の50%とはいかなかったものの印象は大きく変わった気がする。「ほや」や「ほたて」という名前だけが残って、どんな商品が入っているのか分からない不思議さが増した。20歳未満が禁じられているのは飲酒と同じだし、酔明のおかげで酒がどんどん進む危険性がありますよ、というちょっとひねった広告文にも見えてくる。このラベルは単に細長い紙を折り曲げて筒を作っただけなので、製作はもちろん着脱も簡単である。例えばココアシガレットのような同様のタバコ風商品でも利用できるだろう。表面に「美味しさのとりこになる危険性を高めます」とでも表示すれば、子供が憧れる「大人っぽさ」を演出できるはずだ。&lt;/p&gt;
&lt;p&gt;というわけで、酔明シリーズはタバコによく似たデザイン性と携帯性を持っているのが分かった。明日からタバコの代わりに、あるいはココアシガレットの代わりにほや酔明を飾ってみてはどうだろうか。豊富に含まれるグリコーゲンがあなたのピンチに役立ってくれるかもしれない。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:suimei-shop"&gt;
&lt;p&gt;&lt;a href="https://suigetsudo.jp/shop/"&gt;販売店のご案内 | 水月堂物産&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:suimei-shop" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:suimei-normal"&gt;
&lt;p&gt;ほや、ほや（ピリ辛）、かき、ほたて、しゃけ&amp;#160;&lt;a class="footnote-backref" href="#fnref:suimei-normal" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:suimei-premiamu"&gt;
&lt;p&gt;からすみ、あわび、ふかひれ、長なす、笹かまぼこ&amp;#160;&lt;a class="footnote-backref" href="#fnref:suimei-premiamu" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="shuzai"/></entry><entry><title>2024/11/06～2024/11/30</title><link href="https://ama.ne.jp/post/report-20241130/" rel="alternate"/><published>2024-12-02T18:38:00+09:00</published><updated>2024-12-02T18:38:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-02:/post/report-20241130/</id><summary type="html">&lt;p&gt;2024/11/06～2024/11/30のレポート&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/report-20241130/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;表（table）の列名が常に中央揃えで表示されるようにしました。&lt;/li&gt;
&lt;li&gt;コンテンツが表（table）で終わる記事・ページの余白が小さくなってしまう見た目を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を別表に分けて記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ページ上部に表示される広告を整理しました。&lt;/li&gt;
&lt;li&gt;いくつかの記事やコメントの公開状態を調整しました。&lt;/li&gt;
&lt;li&gt;あまねけ！コメントキャンペーン11月分の当選者に500円分のPayPay残高を送信しました。当選者の発表は、残高の送信をもって代えさせていただきます。&lt;ul&gt;
&lt;li&gt;キャンペーンの詳細は&lt;a href="/comment/new/"&gt;コメント投稿&lt;/a&gt;ページをご覧ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/intro-sensory-units/"&gt;感覚単位系・入門&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;かなり昔に思いついたネタを消化したものです。&lt;/li&gt;
&lt;li&gt;2025年はこういうヘンテコなエッセイもたくさん書けるようにしたいですね。&lt;/li&gt;
&lt;li&gt;面白い感覚単位を思いついたら、ぜひ教えてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/bluebell-platina/"&gt;イングリッシュ・ブルーベルの香りによせて&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;たくさんお香を買ったり見たりしたので、自慢したくてかきました。&lt;/li&gt;
&lt;li&gt;後半の思い出パートは虚実が入り交じっていたり、特に繋がっていない別世界のキーワードが出たりしています。&lt;/li&gt;
&lt;li&gt;イングリッシュ・ブルーベルの香水情報も募集中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>特殊な盆栽の取り扱いについて</title><link href="https://ama.ne.jp/post/outage-of-l-menthol/" rel="alternate"/><published>2024-12-01T23:54:00+09:00</published><updated>2024-12-01T23:54:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-12-01:/post/outage-of-l-menthol/</id><summary type="html">&lt;p&gt;H315/H320/H336/H402&lt;/p&gt;</summary><content type="html">&lt;p&gt;世界的な松線虫の流行で、マツ科の樹木が急速に数を減らしていた。高砂地区の盆栽協会によれば、地域内の七十パーセントの松柏類が枯れ、残りの三十パーセントのうち半分には生育への影響が出ている。盆栽はこの開発過剰な都市で緑を所有するほぼ唯一の手段だったのもあり、人々は枯れた根張りを見て激しく落胆した。集団ストーカー撲滅の無断広告が残る雑居ビルの隅にまで、松くい虫を媒介する砂嵐模様のカミキリムシが大きく描かれた注意喚起のポスターが貼られているくらいだ。鉢植えに収まる程度の樹木であれば、目合が〇・五ミリメートル以下の赤色あるいは黄色のネットを被せればよいと協会のウェブサイトに記されている。&lt;/p&gt;
&lt;p&gt;九月に入っても暑さが落ち着く気配はなかった。アーケードに降り注ぐ日光は分厚い半透明のテフゼル板を突き抜けて、猛暑の気配がひび割れたタイルブロックに影を落とす。夏が終われば松線虫の伝播はやむはずだが、それもまた秋の夢の先のことである。&lt;/p&gt;
&lt;p&gt;そんな商業区画を通り過ぎて居住エリアのアパートに辿り着くまで、私はイズミのたどたどしい救援要請の意味を理解していなかった。言い方を変えると、イズミがただひどい暑さで外に出たくがないために、あるいは残り一ヶ月を切った夏休みの課題を手伝わせるために、要するにそういう怠惰の解消を手伝うつもりであった。ToxプロトコルのE2Eエンクロージャーに割り込むボットの存在を疑ってもいたが、あくまで可能性がある、という程度のことだ。&lt;/p&gt;
&lt;p&gt;セーフティゴーグル、N95マスク、アイススコップ、ゴムハンマーと数日分の食料を二人分、それにフリーザーバッグとラベルプリンターのリフィルをたくさん。仮にこれらを通販で送るよう要請されていればスパムと断定できたのだが、イズミの連絡はあくまで「荷物を持ってすぐ家に来て！」というものだった。&lt;/p&gt;
&lt;p&gt;結局のところ、イズミが私を部屋に入れようとドアを開けた瞬間に、その疑いは強烈な爽快感を伴う冷風と共に吹き飛ばされてしまった。いや、爽快と表現するには感覚の限界を超えている。眠気覚ましには桁が二つくらい多い刺激が私の視界を突き刺して、驚いた眼球から涙が流れ出て止まらなくなった。防犯用のOCガスとも似ているが、感じる熱の方向が違う。どうにか痺れるような冷気に目を慣らすと、目の前に飛び込んできたのは壁やテーブル、冷蔵庫、シンクの隅々まで真っ白になった光景と、その真ん中で青いセロハンテープカッターと銀色のお玉を握って立つエプロン姿のイズミである。やはり、催涙スプレーのようなものを持っている様子はない。&lt;/p&gt;
&lt;p&gt;「あさひ！　急いで入って！」&lt;/p&gt;
&lt;p&gt;腕を引くイズミが私の背中を追うようにくるりと入れ替って、身を引くようにしてドアを閉めた。錠をおろす所作で手を滑らせたのか、イズミの右手からお玉が滑り落ちて、老朽化が進んだコンクリートに生える大きな霜柱を壊したときのようなガシャリという音がする。真夏の玄関には似合わないその音に振り向くと、私の足元で透明な針っぽい結晶に包まれるように気絶したお玉が伸びていた。そっと靴を上げて下ろすと、同じようにみしり、ぴしゃりと結晶が折れてひしゃげるのが足裏から伝わっていく。&lt;/p&gt;
&lt;p&gt;彼女の家は、少なくとも先月来た時はこんなではなかったはずだ。少なくとももう少し色があった。それが今は、記憶にある間取りはそのままに部屋全体がきめ細かい繭のような結晶で覆われている。もう何が起こっているのか分からない。窓を開けようにもクレセント錠の可動部に群がるように結晶が固まっているし、換気扇が動いていないのもおそらく同じ理由だろう。玄関の隙間を埋めるように走った結晶にはところどころ砕けた跡が残っていて、イズミが私を迎え入れるために苦労したのが分かる。&lt;/p&gt;
&lt;p&gt;イズミの後ろに続いて靴を履いたまま部屋に入った。ダイニングテーブルがあったはずの位置を中心に、大きな塊が周囲に向かって &lt;em&gt;腕&lt;/em&gt; を伸ばしていて、おそらくこの部屋の景色を一変させた原因なのだろう。時折、中からみしり、と音がして未だに内側から力が漏れ出ようとしているのを伺わせる。腕というのはそのわずかな流動性を生き物に例えたのであって、最大で直径五センチメートルほどに成長した鋭く針の立つ結晶は、柱だとか槍と呼んだ方がイメージしやすいかもしれない。&lt;/p&gt;
&lt;p&gt;どうも、その塊の中心には結晶を生み出す別の&lt;ruby&gt;&lt;rb&gt;核&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;コア&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が眠っているらしい。空気を含んで不規則に育っているせいか中を見通すのが難しいのだが、緑色と黒色の鉢植えのようなシルエットが見え隠れした。&lt;/p&gt;
&lt;p&gt;その核が伸ばす槍の腕は、窓枠、換気扇、シンクといったわずかな出口を塞ぐようにそれらと密接に繋がっている。よく観察すると、周囲より温度が低い場所に集中して新たな巣を作っているわけだが、結晶の生育という点でより正確に論じるなら、昇華した物質が冷えて再び固着するという双方向の（しばしば天下り的な）運動である。しかしその選択的な動きは、空気を絶ってこの大きな繭の中で羽化を待っているように思えた。&lt;/p&gt;
&lt;p&gt;「寝室はまだ大丈夫だから、あっちに荷物置きに行こ」&lt;/p&gt;
&lt;p&gt;イズミが結晶の少ない床を選んで歩くので、よく見るとその道だけは木目調のクッションフロアが露わになっていた。寝室に向かうための即席のけもの道である。別に結晶を踏んだところで害はなさそうだが、知らない化学反応で靴を溶かされでもしたらたまらない。私も息を止めて注意深くイズミの跡をなぞった。マスクもせずに呼吸の仕方を少しでも間違うと、むき出しの鼻に昇華した冷感が突き刺さる。鼻の奥に小さな針結晶ができあがって取り除けなくなる想像をして、嫌になった。&lt;/p&gt;
&lt;p&gt;寝室に入ると、確かにそこはまだ色を失っていなかった。窓の外には快晴の青空が広がっていて、夏を終わらせるには至らなかったことを悟る。靴の裏に残る透明な砂をぱらぱらと払うと、床にきらきらとした光が広がった。ドアの隙間からも、同じ光を放つ結晶が核から伸びて徐々に這い出てきている。&lt;/p&gt;
&lt;p&gt;背負っていた荷物を下ろすと、狙い澄ましたかのようにイズミが後ろからぐりぐりと背中を押してきた。背の小さい彼女が身を屈めて体当たりすると、ちょうど私の腰を捕らえるのだ。イズミがこうして甘えるときは決まって泊まるようせがまれるのは当然覚えていたので、この緊急事態とのギャップに困惑してしまう。私の歯ブラシだって、まだあの結晶のずっと奥にあるのに。&lt;/p&gt;
&lt;p&gt;「イズミ、今日は掃除を手伝ってほしかったんじゃないの？　ねぇ……」&lt;/p&gt;
&lt;p&gt;「それはついで！　もう鼻がおかしくなりそうで。ほんとに、もう、だめなの」&lt;/p&gt;
&lt;p&gt;くぐもった声で私の服に顔を押し付け続けるイズミは、「あさひ成分」を補給すると称して服の匂いを嗅ぎ続けた。引き剥がそうにもこうなった彼女を止められる気がしないので、そのままの姿勢で話を聞き続ける。&lt;/p&gt;
&lt;p&gt;彼女が言うには、この結晶現象の元凶は拾ってきた盆栽だという。その盆栽はゴミ捨て場に捨てられていて、葉の表面を覆うように薄くパリパリとした氷のような物質が付着していたらしく、それがいつの間にか重厚な層になってダイニングキッチン全体に広がってしまったらしい。一晩寝て放っていただけなのに、という彼女の言葉に何か反論したくなるが、この超常現象を前にするとどんな指摘も安っぽくなってしまう。&lt;/p&gt;
&lt;p&gt;イズミが一通り私の匂いを摂取し終わると、すっかり正気に戻ったように私が持ってきた荷物を取り出して床に揃え始めた。ハンマーとスコップはあの塊を切り崩すためのものだったらしい。重いハンマー代わりのテープカッターに装着されていたセロテープは、引き出された端から巻き終わりまでべたべたに溶けて使い物にならなくなっていた。&lt;/p&gt;
&lt;p&gt;彼女はそうして自分の採掘装備を身に付けてから、私にもそうするよう促す。普段着のまま本格的な装備を握ると、まるでプルトニウム回収の裏バイトに来たみたいだ。&lt;/p&gt;
&lt;p&gt;「どうしてこんなの拾ってきたの」&lt;/p&gt;
&lt;p&gt;「だって、メントールが採れる木だったらもったいないでしょ」&lt;/p&gt;
&lt;p&gt;「メントール？」&lt;/p&gt;
&lt;p&gt;「そう、今年ってメントールがすごく不足してるって聞いたから。袋に詰めてマルカートで売ろうと思ったんだけど、もう目も鼻も限界で限界で……」&lt;/p&gt;
&lt;p&gt;「あー……そういうこと」&lt;/p&gt;
&lt;p&gt;虫除けにも涼を取るのにも最適なメントールは、近年の熱波が続く夏の必需品である。もちろん、今まさに猛威を振るっている松線虫の防除にも有効だろう。世界的なマツ不足のせいでメントール合成の根幹をなすピネンが不足しており、生産コストと品質が数十倍の天然メントールしか出回らない。ここに圧倒的な供給不足がさらに価格を跳ね上げ、フリマアプリのマルカートでは連日メントールの高額（かつほとんど違法な）転売が続いていた。&lt;/p&gt;
&lt;p&gt;だから今ここは、突発的に湧いて出た夏限定の金鉱というわけで――&lt;/p&gt;
&lt;p&gt;いや、そんなことがあるものか。いくら松枯れ病が流行しているからといって、この短期間で防虫剤を吐き出すような劇的な進化が遂げられるはずがない……というのは、常識で考えれば分かることだ。しかし、未だにメンソールの結晶が&lt;ruby&gt;&lt;rb&gt;盆栽&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;コア&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の内側から成長し続けているのを見ると、もはや現実を受け入れるしかなかった。&lt;/p&gt;
&lt;p&gt;しばし考え込んだ末に、これはただのいたずらで収まるところではなく、松の木に線虫への耐性を身に着けさせる脱法的な遺伝子改良の失敗作かもしれない、と思った。これなら、貴重なメントールを生み出す盆栽がゴミ捨て場にあったことも説明がつく。つまり、このコストゼロのメンソール結晶を大量に売り捌いた利益を差し引いても取り戻せるか分からない、かなりの面倒ごとに巻き込まれつつあるということに他ならなかった。&lt;/p&gt;
&lt;p&gt;「ちゃんと売り上げは半分こするから。ね、いいでしょ？　いっしょにやろ？」&lt;/p&gt;
&lt;p&gt;「お金はいらないけど……はぁ、何かの法律に引っかからないといいわね」&lt;/p&gt;
&lt;p&gt;「どんな法律？　拾ったものを売るわけじゃないし、平気だって。プルトニウム回収の時より、よっぽどまし！」&lt;/p&gt;
&lt;p&gt;イズミがこの盆栽を拾ったのは刑法上の問題だが、彼女の言う通り、プルトニウム回収のバイトよりも訴追されうる罪状はごく少ない。ましてや、元の持ち主が遺失届を提出するには特別法上違法である遺伝子操作の自白を伴うわけで、捨てたのを後悔しても名乗り出ることはないだろう。&lt;/p&gt;
&lt;p&gt;マルカートの高額販売者ランキングに載るかどうかは関係なく、湧き出し続けるメントールの塊を早急に砕かなければ、早晩このアパートが文字通り盆栽に潰されてしまう。警察や消防を呼んだところで、こんなに真っ白で静かに広がる災害に手を出せるマニュアルなどあるわけがない。もし今ここから私が逃げたなら、イズミが私の分まで働かねばならないのはもう決まっていることだ。&lt;/p&gt;
&lt;p&gt;お玉とテープカッターをスコップとハンマーに持ち替えたイズミに続いて、私も再びキッチンに足を踏み入れた。マスクとゴーグル越しの繭の中は、まるで空気にメントールが溶け込んでどろどろと流れ出しているように感じられる。&lt;/p&gt;
&lt;p&gt;ばきん、ざくざくっ、ぱらぱら、ぺたり。ばきん、ざくっ、ぱらぱら、ぺたり。&lt;/p&gt;
&lt;p&gt;ばきんっ、ざくっぱらぱら、ぺたり。ばきん、ばきん、ざくっぱらぱら、ぺたり。&lt;/p&gt;
&lt;p&gt;ばきばきっ、ざくっ、ぱらぱら、さくっ、ぱら、ぺたり。&lt;/p&gt;
&lt;p&gt;二人で勢いよくハンマーを振るって、吐き出された結晶をスコップで袋に詰める。詰め終わったらラベルを貼って箱に並べる。三十袋で箱がいっぱいになったら、後ろに積んで次の箱を取り出す。その繰り返しだ。かたくて重い水晶を砕いて回っているわけではないし、ハンマーを握る腕はほとんど疲れない。そのせいか余計に単調さから来る精神的な限界の方が近かった。マスクの中で古いアニメの主題歌を口ずさむと、イズミがそれに合わせてリズムを取る。少しだけ気が紛れた。&lt;/p&gt;
&lt;p&gt;装備の隙間から漏れるメントールに目と鼻が狂い始めたら寝室で休憩して、また作業に戻る。寝室に座り込むたびに私の服の匂いを嗅いでいたイズミは、とうとうメントールの粉塵に覆われた服からの摂取を諦めて、私の素肌から &lt;em&gt;空気&lt;/em&gt; を補給し始めた。私の服をめくってお腹の上に鼻を滑らせるものだから、くすぐったくて仕方ない。イズミの顔が脇腹に押し付けられると、鼻尖に残ったひんやりとした空気が軌跡を描いた。&lt;/p&gt;
&lt;p&gt;「あさひも私の匂い、吸っていいからね」&lt;/p&gt;
&lt;p&gt;「私はいいわ。イズミの匂いなんて嗅いでも落ち着かないし」&lt;/p&gt;
&lt;p&gt;「えー？　こういうのは人肌が一番なんだって」&lt;/p&gt;
&lt;p&gt;「その言葉、夏に聞くと思わなかった」&lt;/p&gt;
&lt;p&gt;イズミの休憩が終わるのに合わせてキッチンに戻る。部屋にあった空箱はあと五つだけで、それからは余った紙袋に突っ込んだり床に整列させて袋詰めの作業を続けた。買ってきたフリーザーバッグが底を突いたくらいでやっと、結晶を生み出し続ける不思議な盆栽の姿がはっきりと見えてくる。最近の高砂地区では貴重な三幹の五葉松だ。ただし、今はメントールの深い結晶に身を包んでいてわずかな剪定さえ受け付けない。&lt;/p&gt;
&lt;p&gt;ひとまず窮地は脱したはずで、私はマルカートに掲載するためにメントール袋の写真をあれこれと撮り始めた。作業に取りかかる前はそのまま捨ててもいいとさえ思っていた厄介者だが、こんなに苦労して集めたなら報われてもいいだろうと、すっかり気持ちが変わっていた。イズミの方はメントールを売り捌くだけの出店登録をさっさと終わらせて、何やらごそごそと準備を進めている。&lt;/p&gt;
&lt;p&gt;「ねぇ、まだ合鍵渡してなかったよね」&lt;/p&gt;
&lt;p&gt;「そうね。別に必要もなかったし」&lt;/p&gt;
&lt;p&gt;「じゃあ、あげる！　好きに掘っていいから」&lt;/p&gt;
&lt;p&gt;イズミが取り出したのは、小さな赤い鈴のキーホルダーが付いた鍵だった。私が無言でそれを受け取ると、彼女は何も分からない様子でにこりと笑いかける。「たまに来てよ」だなんて、ただ自分の部屋が結晶に押し潰されるのが嫌なだけに決まっていた。イズミの気まぐれで私を部屋に泊まらせるのは、私の気持ちなんてどうでもいいからだ。&lt;/p&gt;
&lt;p&gt;ころころと小気味よい音が鳴る鍵をバッグに滑り込ませる。サイドポケットの底に入り込んだ結晶が、鍵の先に当たって小さく砕ける音がした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/10391"&gt;百合SS Advent Calendar 2024&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>イングリッシュ・ブルーベルの香りによせて</title><link href="https://ama.ne.jp/post/bluebell-platina/" rel="alternate"/><published>2024-11-29T18:45:00+09:00</published><updated>2024-11-29T18:45:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-11-29:/post/bluebell-platina/</id><summary type="html">&lt;p&gt;妖精みたいなおんなのこ&lt;/p&gt;</summary><content type="html">&lt;p&gt;今年に入ってから煙に触れる機会――特に、家でお香を焚く機会が増えていて、短いまたは長いスティック型か、数センチ程度のコーン型のものをいくつか揃えている。比較的細長い練った香であれば線香と呼ぶのが適当だろうが、&lt;a href="https://satyaincense.com/product/satya-nagchampa-incense-15-gms/"&gt;SATYA サイババ ナグチャンパ&lt;/a&gt;は細い竹ひごに香料が塗りつけてある製品で、線香とはちょっとイメージが違う。全長が5cmくらいのごく短いのも、そうだ。魔導書っぽいデザインの大きい缶を入れ物にしているので、そこから取り出すとまるでマジックアイテムである。&lt;/p&gt;
&lt;p&gt;&lt;img alt="魔導書を模した缶の外観を本の背側から撮影した様子" height="601" src="/images/bluebell-platina/dow-cover.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="魔導書を模した缶を本と同じように表紙から開き、中にお香が収納されている様子" height="600" src="/images/bluebell-platina/dow-content.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;箱を重ねた様子を接写してみると、ミニチュアのボードゲームを積んでいるようにも見える。これは&lt;a href="https://www.hemincense.com/"&gt;HEM&lt;/a&gt;というインドを代表するインセンスメーカーのもので、この小さな箱にはコーン型のお香がそれぞれ10個くらいずつ入っている。アジア系の食材店やエスニック系の雑貨屋の隅ではしばしば見かけるもので、安くてかさばらないのが狭い店内の商品配置に好まれるのだろう。コンビニの一口ようかんのような存在といえる。&lt;/p&gt;
&lt;p&gt;&lt;img alt="HEMのお香が入った小箱が2つの山に5箱ずつ積み上げられて、その周囲にたくさんのサイコロが散らばっている様子" height="600" src="/images/bluebell-platina/incense-boardgame.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;私が初めてHEM製のお香を手に入れたのも、ちょうど中華街の外れにあった小さな雑貨店で、名前に惹かれて買った&lt;ruby&gt;&lt;rb&gt;阿片&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;オピウム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;と&lt;ruby&gt;&lt;rb&gt;大麻&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;カナビス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を交互に焚いたものだ。いずれも香りが大味で強い上に、煙がもくもく出てくるので健康によい感じはしない。私としてはたくさんの煙にまみれる感じが &lt;em&gt;インドっぽくて&lt;/em&gt; 好きだし、いかにも大量の香りを噴き上げているのが一目で分かるのは明快で気持ちがよい。もちろん体質に合わない人もいるだろうし、初めてなら一箱だけ買って試すべきだと思う&lt;sup id="fnref:wholesale"&gt;&lt;a class="footnote-ref" href="#fn:wholesale" title="HEMは一箱あたりの単価が安いので、ネット通販では数箱～十数箱のセット売りをよく見かける。お得に見えるが、HEMの煙が身体に合わなければ結局高く付いてしまう。"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;今のところ、家に揃えているのは直接火を付けて煙を焚くお香だけだ。しかし、世の中には間接的に温めて香りを楽しむお香もある。練香とか印香（あるいは香木そのもの）は、灰に埋めた炭やセラミックヒーターの熱で煙を借りずに香りを広げるという。こういうヒーターを備えた香炉を「電子香炉」と呼ぶわけだが、この名前だけ聞くとなんだか &lt;em&gt;誤った&lt;/em&gt; 日本文化とサイバーパンクが合体した近未来SFの気配がする。アニリン・パープルの合成香料がスターラーにかき回されてごぽごぽと泡を立てているような……あるいは、怪レい激安通販で虹色に光る変なヒーターが大量に売られていたのを、昨日見かけた気がする。&lt;/p&gt;
&lt;p&gt;そんな胡乱な言葉の響きとは異なり、電子香炉はそれなりにしっかりしたお香でしか使えないものだ。日本香堂の&lt;a href="https://www.nipponkodo.co.jp/iyashi/sizuro/"&gt;電子香炉sizuro&lt;/a&gt;には、香木や練香に並んで線香にも使えるような記載があるものの、その下には「よい香原料でつくられたお線香やお香は、火をつけず、間接加熱でもよい香りが空間に広がります」とあって、HEMのような安いお香は対象ではないよ！と暗に釘を刺している。綺麗で繊細で、丁寧である。&lt;/p&gt;
&lt;p&gt;さて、日本香堂の話が出たので、最近気に入っている線香についてもう少し紹介しようと思う。&lt;a href="https://www.nipponkodo.co.jp/shop/products/detail/38224"&gt;伽羅荷葉&lt;/a&gt;や&lt;a href="https://www.nipponkodo.co.jp/shop/products/detail/38225"&gt;伽羅富嶽&lt;/a&gt;、&lt;a href="https://www.nipponkodo.co.jp/shop/products/detail/38907"&gt;伽羅富嶽 宙天&lt;/a&gt;（12万円・24万円・55万円の3段階進化だ！）のような自慢できるラインナップはないのだけど、これらと同じ日本香堂製の線香で&lt;a href="https://www.nipponkodo.co.jp/shop/products/detail/38909"&gt;花風PLATINA ブルーベル&lt;/a&gt;というものをよく使っている。これは「生花そのものの香りを伝えることに力を注いだ創香が特長」という&lt;a href="https://www.nipponkodo.co.jp/shop/products/list?category_id=150020"&gt;花風PLATINAシリーズ&lt;/a&gt;の第2弾で、イングリッシュ・ブルーベルの香りを再現した「ワンランク上のお線香」である。細い煙が揺らめくイメージを持たせただろうロゴタイプを見ると、なんとなく&lt;a href="https://irori.github.io/wapuro-mincho/"&gt;ワープロ明朝&lt;/a&gt;のような倍角を思い浮かべてしまう。&lt;/p&gt;
&lt;p&gt;私は香りを言葉で表現するのはそんなに得意ではないので、いったん公式サイトの説明を引用してみると、こうだ:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;古代の森で咲きそろうイングリッシュ・ブルーベル。&lt;br&gt;
イギリス原産の青い釣鐘型の可憐な姿で、ブルーベルの森には妖精がいると言われます。&lt;br&gt;
イギリスで春の訪れを知らせるこの花の香りは、ヒヤシンスのようなグリーン感が印象的で、ミュゲのような清潔感と花の蜜のような甘さを放ちます。&lt;/p&gt;
&lt;p&gt;香りはじめはシトラスのような爽やかさを含み、次第に、ブルーベルらしい、花の蜜のような甘さのフローラルの香りとナチュラルなりーフィーグリーンの香りが姿をみせ、香り全体を支えます。&lt;br&gt;
そして、わずかなスパイシーさで花の香りに深みを与えて調和します。&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;a href="https://www.nipponkodo.co.jp/shop/products/detail/38909"&gt;花風PLATINA　ブルーベル｜日本香堂公式&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;そんな説明を読みながらもう一本ブルーベルを焚いてみる。なるほど、線香の煙たい香りに巻き付くように爽やかさと甘さ、さらに内側から草っぽいスパイシーな刺激が姿を見せた……ような気がする。フローラルな甘さだけで言えばまだ火のない線香の束が最も強くて、ここに熱を与えることで他の香りが立ち上って複雑な印象を形作るのだと思う。火を着ける前はのっぺりして単調な花の香りしかなかったところに、煙と共に影が落ちて立体的な姿を見せるわけだ。開発ストーリーに「繊細な花の香りを熱して香らせるお線香に再現することは難しく」とある通り、絶妙なバランスを探求し続けなければ生み出すことはできない貴重な香りである。&lt;/p&gt;
&lt;p&gt;イングリッシュ・ブルーベルの香りを謳う線香は、最近まで少なくとも日本には普及していなかった&lt;sup id="fnref:bluebell-jp"&gt;&lt;a class="footnote-ref" href="#fn:bluebell-jp" title="日本初※、「妖精の花」イングリッシュ・ブルーベルの神秘的な香りを再現したお線香「花風PLATINA BlueBell」を新発売 | 株式会社日本香堂のプレスリリース"&gt;2&lt;/a&gt;&lt;/sup&gt;ようだが、なぜか私はこの香りで中学時代を思い出してしまう。それは、水越さんのことだ。&lt;/p&gt;
&lt;p&gt;小学生や中学生の同級生で、なんとなく煙たいような、ちょっと落ち着くような、不思議な匂いのする子はいなかっただろうか？　あれは、おそらく家で焚いていた線香の香りが制服や髪に移って染み付いたもので、水越さんもそういう子だった。中学生くらいの感覚では、爽やかな匂いの制汗剤や甘ったるいリップクリームのようにまっすぐな香りが好まれていて、ブルーベルの線香で言えば、火を着ける前の花の香りこそ王道であった。ちょっと複雑で奥深い香りからは誰もが距離を置いていて、むしろそういう属性を大げさに取り上げたクラスメートに「おばあちゃんみたい」と嘲笑され、あるいは明示的にいじめられていたものだ。&lt;/p&gt;
&lt;p&gt;人の匂いを指摘するというのは、本来はかなりプライベートなやり方である。社会的な要請の下では、相手に臭いとかよい匂いだと表明するのはごく限られたコンテキストでしか許されない。いや、匂いだけではなくて、人に対して評価を下すのはもともとある種の加害性を孕みうるものだ。当人が指摘された部分を意識していなければ特に、その言葉は戸惑いとinvasiveな嫌悪感を生んでしまう。無難な香りの柔軟剤に言及すること、ありふれた虹彩の色に特別さを見出すこと、適当に選んだ眼鏡のセンスを褒めること、またはけなすこと。&lt;/p&gt;
&lt;p&gt;実際のところ、人の匂い（特によい匂い）を形作っているのはあくまで人工物のボディソープやシャンプー、コンディショナー、トリートメント、ボディクリーム、制汗剤、デオドラント、衣料用洗剤、香水などの組み合わせの結果であって、その人固有の生物学的分泌による影響はそう強くない。中学まで一緒だった仲のいい友達の服の匂いが突然強烈な人工香料に変わったのは、コストコで売っているダウニーの3.83Lボトルのせいだし、高校で同じ部活だった姉弟が同じ匂いだったのも同じ理由である。&lt;/p&gt;
&lt;p&gt;ともあれ、水越さんもそういう外因的な理由で線香の香りを抱えていた。線香といっても伝統的な白檀ではなく、白く煙たい花畑を手探りで歩いているような、まさに今嗅いでいるブルーベルの香りである。中学生の頃の私はこういう匂いに固有の色の感覚を覚えていたものだが、それらの匂い-色の記憶をその共感覚ごとすっかり失ってしまった。あの匂いは深い青だったかもしれない、というかすかな記憶は花風PLATINAのパッケージが作り出した偽の記憶だ。十数年前のことなのでブルーベルそのもののはずはなく、複合的な理由で立ち上った虚像のシルエットをなぞっているにすぎない。&lt;/p&gt;
&lt;p&gt;水越さんの家が線香の煙に包まれているのを知っているのは、一度だけ家に遊びに行ったことがあるからだ。午前授業の日に一人で留守番するのが不安だったから、偶然教室に残っていた水越さんの家に遊びに行くことになったとか、いずれにせよ取るに足りないきっかけだった。だから再び水越さんの家を訪れたり、あるいは水越さんが私の家を訪れるような仲にはならなかった。&lt;/p&gt;
&lt;p&gt;あの家で焚かれていたのは白檀の線香ではなかったはずで、しかし水越さんの匂いとも違っていた。確かに仏壇に置かれていたのは見たことのない箱だったが、そもそも線香自体もCMで見かける毎日香くらいしか知らなかったので、どんな模様が描かれていたのかは覚えていない。当時の私は線香にもいろいろな種類があることさえ知らなかったし、一緒くたに「線香の匂い」と言語化してしまった記憶は、既に具体的なイメージをごっそり捨て去ったわずかな残渣に過ぎない。&lt;/p&gt;
&lt;p&gt;水越さんは祖母と母親と4つ上の兄と一緒に暮らしていて、父親は単身赴任していると言っていた。おばあさんはおしゃべりが好きな人で、孫が連れてきた友達を珍しがっていろいろな話を聞かせてくれた。ジサマ（おじいさん――水越さんの祖父のことだ）は神社のたたりで死んだ、と頻りに繰り返すのを水越さんが必死で遮って、私をさっさと部屋に連れて行こうとしたのがよく印象に残っている。こんなに大きな声が出せるんだ、と思ったから。でも、水越さんの祖父がとある公共事業の一貫で、反対を押し切って古くからの神社が建つ山を切り崩したことと、その直後の急死を結び付けた噂は、おばあさんから聞かずとも地元では有名だった。&lt;/p&gt;
&lt;p&gt;水越さんの部屋は、畳の上にくすんだピンク色のカーペットを敷いたあまり日の当たらない位置にあった。その部屋もやはり線香の匂いがすっかり染み付いてしまって、淡いアラベスク模様の紙クロスは煙に沈めたようにくすんでいた。古めかしい四角の吊り下げ灯を引くと、剥き出しの蛍光灯から真っ白い光が刺すように降り注ぐけれど、丸い蛍光管では部屋の隅まで照らしきれない。小さなソファに二人で座って、3DSの子犬を育てるゲームを代わりばんこでプレイした。それと、帰りに本を貸してもらった。山田悠介だったと思う。&lt;/p&gt;
&lt;p&gt;それから半年ほど経って、私は水越さんからあの煙と花の匂いがしなくなっていることに気づいた。代わりに、すれ違うとやっと感じられるくらいのほんのりとしたシトラスとフローラルっぽい――黄色とピンクの中間にある淡い色の――香りが水越さんを包んでいたのだ。もともと私は水越さんにお線香の匂いがするね、なんて言ったことはなかったし、そんな軽口を叩くような仲でもない。その &lt;em&gt;おばあちゃんみたい&lt;/em&gt; な匂いが理由でいじめの対象になっていたのもあって、たとえ好意的な評価であっても口に出すのは躊躇われた。&lt;/p&gt;
&lt;p&gt;だから、そんな水越さんが &lt;em&gt;よく意識して&lt;/em&gt; 香りを纏っているのがどうしても気になって、突然こう尋ねたものだった。&lt;/p&gt;
&lt;p&gt;「そのコロン、フェアロープの新作のやつだよね。ミルコで買ったの？」&lt;/p&gt;
&lt;p&gt;「ううん、違うよ。お父さんがプレゼントって買ってよこしたの」&lt;/p&gt;
&lt;p&gt;「お父さん？　あ、やっと帰ってきたんだ」&lt;/p&gt;
&lt;p&gt;「うん……おばあちゃんが死んじゃって。転勤が取りやめになったみたい」&lt;/p&gt;
&lt;p&gt;水越さんがおばあさんのお葬式で数日間学校を休んだのは知っていたけど、お父さんの単身赴任が取りやめになることとの間に、全く論理的な繋がりを見出していなかった。少し考えれば当然のことだが、当時の中学で流行っていた文句で言えば「風と桶屋」だった。私が何も言えなくなったのを見て、水越さんは少し焦ったのだろう。その場をやり過ごすだけの無理な笑顔を作るみたいに、わざと自虐しておどけるように言葉を続けた。&lt;/p&gt;
&lt;p&gt;「私、ずっと煙たい匂いでみんな嫌がってたみたいだし。どう？　こんなの似合わないかな？」&lt;/p&gt;
&lt;p&gt;「えっ、そんなことないよ！　すごくいい匂いだったから、それで……」&lt;/p&gt;
&lt;p&gt;それから二言三言、水越さんが纏ったフェアロの香水について褒めたと思う。よい香りがすること、おそらくこれは校則に抵触しない範囲であること、お父さんのセンスがよほど素晴らしいものであること。水越さんはきっとお店の人に聞いて買っただけだよ、と答えながら少し照れていた気がする。誰が言っても同じ、どうでもいいことだった。線香の匂いの水越さんも好きだったよ、なんて言えたら私たちはもう少し近づけただろうか。水越さんは、どんな顔で私を見つめただろうか。&lt;/p&gt;
&lt;p&gt;ブルーベルの線香が燃え尽きて、鈍い青紫色の煙が部屋に溶け込んでいく。あの頃、水越さんを包んでいた神秘的な煙がどんな色の匂いだったかは、もう思い出せなくなっていた。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:wholesale"&gt;
&lt;p&gt;HEMは一箱あたりの単価が安いので、ネット通販では数箱～十数箱のセット売りをよく見かける。お得に見えるが、HEMの煙が身体に合わなければ結局高く付いてしまう。&amp;#160;&lt;a class="footnote-backref" href="#fnref:wholesale" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:bluebell-jp"&gt;
&lt;p&gt;&lt;a href="https://prtimes.jp/main/html/rd/p/000000033.000049915.html"&gt;日本初※、「妖精の花」イングリッシュ・ブルーベルの神秘的な香りを再現したお線香「花風PLATINA BlueBell」を新発売 | 株式会社日本香堂のプレスリリース&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:bluebell-jp" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>感覚単位系・入門</title><link href="https://ama.ne.jp/post/intro-sensory-units/" rel="alternate"/><published>2024-11-14T18:14:00+09:00</published><updated>2024-11-14T18:14:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-11-14:/post/intro-sensory-units/</id><summary type="html">&lt;p&gt;感覚が全てを示す単位系&lt;/p&gt;</summary><content type="html">&lt;p&gt;少し前に電車で3駅くらい先にあるカフェに出かけたとき、隣り合った席――隣ではなく、ステンドグラスの間仕切りを挟んだ向こう側で、背中合わせと言った方が近いかもしれない――の5～6人のグループが大騒ぎしていた。私が休日に出かける少し遠くのカフェに求めるものは、ある程度の静けさや穏やかな音楽に包まれた環境であって、もちろん彼らの声は快適な環境とは真逆である。こういった不運はカフェにはつきものだが、せっかくの休日が台無しになるのも惜しいものだ。&lt;/p&gt;
&lt;p&gt;これは読書にも集中できないな、と思いながら本を閉じて、いったん彼らの会話が右から左に流れるのに身を任せていると、少しずつ彼らの素性が分かってきた。どうも、彼らはかつて同じ大学に通っていた友達同士で、今日は数年ぶりに再会して思い出話や近況報告に花を咲かせているようだ。確かに、何年も会っていないような友達に話すことはたくさんあるだろうし、6人ならその矢印はおよそ15倍だ。その気持ちは理解できる。あまり気にしても仕方ないか、と思った。&lt;/p&gt;
&lt;p&gt;つまりこの時、私は再会を喜ぶ友人たちの声量にある程度の基準を設けたことになる。結局これが久闊を叙する声だから我慢できた、ということだ。さて、私はこの声量の会話をどのレベルで我慢できたと言えるのだろうか？　例えば、この後夜に会う予定の友人に「カフェでプチ同窓会が突然発生してうるさかったんだよね」と話すとして、どのような表現をすれば伝わるだろう。&lt;/p&gt;
&lt;p&gt;そんなことを考えつつ、音圧を表す単位 &lt;strong&gt;NOFY&lt;/strong&gt; （ノーフィ）&lt;!--Neglect Of Friends Year--&gt;を定義してみた。物理量としては音圧だが、基本的には会話の声量に使った方が分かりやすい。ここで、1NOFYは「1年ぶりの再会だとしたら我慢できる会話の声量」と同等の音圧である。つまり、前述の彼らが大学を去って5年ぶりに再会したと仮定したときに「あまり気にしても仕方ないか」と思えるのであれば、この声量は5NOFYだといえる。これなら、友人に伝えるときも分かりやすそうだ。&lt;/p&gt;
&lt;p&gt;人が普通に話している声は60dBくらいで、これが怒鳴り声や深夜のバカ騒ぎになると90dB程度に達するらしい。多少盛り上がった話し声なら、70dB前後といったところだろうか。&lt;/p&gt;
&lt;p&gt;一応書いておくと、90dBは60dBに対して1.5倍の音圧を示すのではなく、30dBの差があるので1000倍の音圧を示す&lt;sup id="fnref:db"&gt;&lt;a class="footnote-ref" href="#fn:db" title="dBは対数ベースの単位なので、10dB大きくなると10倍になる。1dBでは約1.26倍である。"&gt;1&lt;/a&gt;&lt;/sup&gt;。音圧の線形的な変化を直接取り扱うと非常に広い範囲になって分かりにくいのと、人間の感覚は刺激の対数で近似できる（ウェーバー・フェヒナーの法則）という扱いやすい性質を持っているのでdBが使われているわけだ。&lt;/p&gt;
&lt;p&gt;もちろん、人が許せる声量というのは個人差があるし、たとえ同じ人間であっても場所や状況だとかその日の機嫌や体調によって大きく変わる。人間の身体や感覚を元にした単位というのは、かつては主に手足や身長で長さを示す身体尺がメジャーで、こうした五感に基づく単位は初期のスコヴィル値&lt;sup id="fnref:scoville"&gt;&lt;a class="footnote-ref" href="#fn:scoville" title="現在はカプサイシン量を線形的に変換したものが使われている。"&gt;2&lt;/a&gt;&lt;/sup&gt;くらいだろうか。計量方法を形式化したスコヴィル値でさえ、舌が辛み（痛み）に慣れて感覚が変わるという本質的な問題を抱えていたので、技術の進歩で機械的な測定方法に置き換えられた。ただ、NOFYは感覚を示す表現として使うものなので、正確な計量ができないことはあまり問題にならない。&lt;/p&gt;
&lt;p&gt;dBはもともと人の感覚に合う単位ではあるが、今聞いている音がどれくらいのdBだと表現するのはちょっと難しい。仮に「少し静かな話し声だから50dBくらいだ」と暗記していて、誰かに50dBという数値を伝えても、あまり役には立たないだろう。dBに言い換えず単に少し静かな話し声だったと伝えればよいのだ。一方で、NOFYは線形でも対数でもない感覚を表す単位であって、この数値なら相手も状況を理解しやすくなる。また、大騒ぎするグループに遭遇した際に「この人たちは何年ぶりに再会したのだろう」とNOFYを &lt;em&gt;計測&lt;/em&gt; してみると、不運な騒音も少しだけコミカルな光景に思えてくるというのも、副次的なメリットかもしれない。&lt;/p&gt;
&lt;p&gt;こういう少し込み入っていて、あまつさえ正確に計量することを目的としていない単位を、 &lt;strong&gt;感覚単位&lt;/strong&gt; と呼ぶことにしよう。感覚単位を用いると、自分の感覚を元に客観的な現象を具体的に表現できる。豊富な語彙や表現技巧を凝らさなくても、直感的に感覚を共有できるわけだ。このような自分の感覚を数字や尺度として具体的に摺り合わせる仕組みをルールとして実装すれば、itoやウェーブレングスのようなパーティーゲームになる。&lt;/p&gt;
&lt;p&gt;昔、大学のサークルで「車なら徒歩で5分くらいの場所」という表現をしたことがあった。これは、車で5分かかる場所でもなければ、徒歩で5分かかる場所でもない。あくまで徒歩で5分くらいの感覚で行ける場所であって、その感覚をそのまま車での移動に載せかえた、ということだ。その時は単位の名前を考えていなかったが、仮に &lt;strong&gt;CAWAM&lt;/strong&gt; （ケイワム）&lt;!--CAr by WAlk Minutes--&gt;としよう。1CAWAMは「車なら徒歩で1分くらいの場所」となる。ちなみに、今その場所までのルートを計算してみたところ、車では10分くらい、徒歩では90分くらいかかる場所だった。いずれも5分とはかけ離れている。それでも、当時は「確かにそれくらいだね」と共感を得られたものだ。&lt;/p&gt;
&lt;p&gt;この感覚単位遊びの難しいところは、単位の名前を考えるセンスを問われる点ももちろんだが、できれば少し込み入った定義であって、なおかつ使いやすい単位として作り込まなければならないということだ。逆に言うと、整数倍して使うしかない線形的な単位や、具体的な数値として表現する意味がない単位を作るべきではない。&lt;/p&gt;
&lt;p&gt;例えば、水族館に1人で入ってもよい入場料をベースにした単位 &lt;strong&gt;BAY&lt;/strong&gt; （ベイ）&lt;!--Bocchi Aquarium Yen--&gt;を考えてみる。これは、私が葛西臨海水族園（700円&lt;sup id="fnref:kasai"&gt;&lt;a class="footnote-ref" href="#fn:kasai" title="開園時間・休園日・入園料 ｜ 葛西臨海水族園公式サイト - 東京ズーネット"&gt;3&lt;/a&gt;&lt;/sup&gt;）には1人で入ったが、八景島シーパラダイスのアクアリゾーツパス（3500円&lt;sup id="fnref:hakkei"&gt;&lt;a class="footnote-ref" href="#fn:hakkei" title="料金案内｜横浜・八景島シーパラダイス - YOKOHAMA HAKKEIJIMA SEA PARADISE"&gt;4&lt;/a&gt;&lt;/sup&gt;）は1人の旅行では買う気にならなかった、という体験から考えたものだ。水族館は複数人で行くところだという偏見に基づく定義である点や、年間パスポートを買って何度も水族館に通う人にはなじまないという点を無視しても、BAYには感覚単位としての欠点が2つある。一つはn BAYが単に1BAYのn倍になってしまうこと、そしてもう一つは何らかの金額をBAYで表現しても伝えられる感覚は増えないということだ。おそらく私は800円～900円を1BAYと考えるだろうが、これでは金額を単に850で割っただけの値になるだろう。そして、1万円を11.76BAYと表現しても、「1人で水族館に11回強行くくらいの金額」という意味にしかならない。&lt;/p&gt;
&lt;p&gt;もし水族館にちなんだ感覚単位を作るとすれば、水族館のミュージアムショップの広さを表す単位 &lt;strong&gt;SASM&lt;/strong&gt; （サスム）&lt;!--Shop Area Stay Minutes--&gt;はどうだろうか。ここで、1SASMは「1分間滞在するに足るショップの広さ」である&lt;sup id="fnref:sasm-notice"&gt;&lt;a class="footnote-ref" href="#fn:sasm-notice" title="実際に立ち寄ったのか、そこに何分滞在したのか、何を購入したのかを直接示すわけではなく、あくまで広さを自分の感覚で言い換えた表現だということに注意が必要である。"&gt;5&lt;/a&gt;&lt;/sup&gt;。一般的なミュージアムショップの広さがどの程度かは資料がなかったが、ふつうのテナントであれば50㎡程度までは小規模店舗、100㎡を超えると中型～大型店舗の扱いになる。そのため、おそらく50㎡～150㎡程度の広さを表すことになるだろう。「先週行った水族館が30SASMのショップだったよ」と言われれば、かなり見どころがあって広かったのだと想像できそうだ。&lt;/p&gt;
&lt;p&gt;ただ、滞在時間と敷地面積の関係を考えたとき、地方の家電量販店のように通路がだだっ広くて棚がスカスカなら滞在時間は短くなりそうだとか、くつろぐのが目的のカフェでは広さによらず当然に滞在時間が長くなるとか、必ずしも単純な相関では語りきれない業種もある。しかし、水族館のミュージアムショップに限れば商品の配置や密度は似通ってくるし、店に訪れる状況や目的も似ているので、広さと滞在時間は比較的相関がありそうだ。もちろんあくまで感覚的な定義なので、他にも含めるべき前提は考慮した方がよい。&lt;/p&gt;
&lt;p&gt;最近は残暑と秋と冬が交互にやってくるような日が続いていて、20℃を超えたと思ったら次の日には突然15℃まで下がることも珍しくなくなった。これを摂氏で8℃も下がったといえば客観的な変化を示せるが、気温や温度変化の感じ方に感覚単位を使えば、主観的な身体の不調を分かりやすく示せるかもしれない。必要に応じて感覚単位を運用する取り組みは、正確に決まり切った単位の枠に収めて考えるより先に、自分自身の感覚とよく向き合うための第一歩になるだろう。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:db"&gt;
&lt;p&gt;dBは対数ベースの単位なので、10dB大きくなると10倍になる。1dBでは約1.26倍である。&amp;#160;&lt;a class="footnote-backref" href="#fnref:db" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:scoville"&gt;
&lt;p&gt;現在はカプサイシン量を線形的に変換したものが使われている。&amp;#160;&lt;a class="footnote-backref" href="#fnref:scoville" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:kasai"&gt;
&lt;p&gt;&lt;a href="https://www.tokyo-zoo.net/zoo/kasai/hours.html"&gt;開園時間・休園日・入園料 ｜ 葛西臨海水族園公式サイト - 東京ズーネット&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:kasai" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:hakkei"&gt;
&lt;p&gt;&lt;a href="https://www.seaparadise.co.jp/price/"&gt;料金案内｜横浜・八景島シーパラダイス - YOKOHAMA HAKKEIJIMA SEA PARADISE&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:hakkei" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:sasm-notice"&gt;
&lt;p&gt;実際に立ち寄ったのか、そこに何分滞在したのか、何を購入したのかを直接示すわけではなく、あくまで広さを自分の感覚で言い換えた表現だということに注意が必要である。&amp;#160;&lt;a class="footnote-backref" href="#fnref:sasm-notice" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>2024/06/04～2024/11/05</title><link href="https://ama.ne.jp/post/report-20241105/" rel="alternate"/><published>2024-11-05T19:16:00+09:00</published><updated>2024-11-05T19:16:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-11-05:/post/report-20241105/</id><summary type="html">&lt;p&gt;2024/06/04～2024/11/05のレポート&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/report-20241105/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Android版Google ChromeのPC版サイトモードで表示が崩れる不具合を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/media-kit/"&gt;メディアキット&lt;/a&gt;ページにかたぎりあまねのアイコンを追加しました。&lt;ul&gt;
&lt;li&gt;このアイコンは&lt;a href="https://twitter.com/oplant"&gt;たなか麦&lt;/a&gt;先生作であり、原画およびその派生物は&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&lt;/li&gt;
&lt;li&gt;&lt;a href="/"&gt;あまねけ！&lt;/a&gt;や&lt;a href="https://amane.im/"&gt;かたぎりあまね&lt;/a&gt;の説明・紹介にのみ利用できます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/comment/new/"&gt;コメント投稿&lt;/a&gt;ページに投稿内容に関する注意事項を追加しました。&lt;ul&gt;
&lt;li&gt;コメント欄はあまねけ！の記事やかたぎりあまねの作品、SNSの投稿に関する質問や意見、感想を送るためのものです。公開の場での回答に適さないコメントは送信しないでください。特に、公開にそぐわないごく個人的な内容や返信を前提としたメッセージは&lt;a href="/contact/"&gt;別の連絡手段&lt;/a&gt;で送信してください。&lt;/li&gt;
&lt;li&gt;Googleフォームという匿名の送信手段は、あくまで作者と読者の関係に一定の距離を保ってやり取りを行うために設置しています。決して、安全圏から金銭を要求したり脅迫を試みるためのものではありません。&lt;/li&gt;
&lt;li&gt;&lt;a href="/contact/"&gt;ごれんらく&lt;/a&gt;の電話番号も、仕事の依頼や緊急連絡のために記載しているものです。どんな目的であれ、非通知設定で繰り返し迷惑電話を掛けたりすることは断じて許されません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;あまねけ！コメントキャンペーン6月～10月分の当選者に500円分のPayPay残高を送信しました。当選者の発表は、残高の送信をもって代えさせていただきます。&lt;ul&gt;
&lt;li&gt;キャンペーンの詳細は&lt;a href="/comment/new/"&gt;コメント投稿&lt;/a&gt;ページをご覧ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/end-of-rg/"&gt;ミューズパークの実質的終了によせて&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;約2年ぶりの&lt;a href="/category/shuzai/"&gt;shuzai&lt;/a&gt;（旅行記・体験記）記事です。前回は2022年の&lt;a href="/post/mineral-show/"&gt;ミネラルショーに行ったこと&lt;/a&gt;でした。&lt;/li&gt;
&lt;li&gt;昔友人とよく行った秩父の尾田蒔丘陵にある&lt;a href="https://www.muse-park.com/"&gt;秩父ミューズパーク&lt;/a&gt;のそのまたごく一部、閉鎖中のプールに併設されているセンターハウスについて回想しつつ記録しました。&lt;/li&gt;
&lt;li&gt;らぶらぶフルーツ 赤と緑合同の参加者を募集中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/kurayami-coffeeten/"&gt;くらやみカフェ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;大学の文芸サークルの後輩と先輩の間柄だったふたりが、暗闇に包まれた喫茶店で距離を縮めるお話です。&lt;/li&gt;
&lt;li&gt;この作品を、親友でサークルのよき仲間だった早川一さんに捧げます。&lt;/li&gt;
&lt;li&gt;今年は毎月1本おはなしを投稿していこうと思っていましたが、気付いたら夏が終わっていました。でも、まだまだ「読んだ」ボタンや&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;で応援してくれますか？&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/cosharet-anniversary/"&gt;cosharetで記事をシェアすること&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;お手製のシンプルなFediverse向けシェアツールである&lt;a href="https://cosharet.pages.dev/"&gt;cosharet&lt;/a&gt;の紹介記事です。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vanjs.org/"&gt;VanJS&lt;/a&gt;という超軽量なリアクティブUIライブラリを使っていて、技術面もシンプルです。&lt;/li&gt;
&lt;li&gt;どこでもすぐ使えるシェア用ブックマークレットを探している方がいれば、ぜひ使ってみてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/far-from-myself/"&gt;私ではない場所に行く&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;2年ぶりの&lt;a href="/category/shuzai/"&gt;shuzai&lt;/a&gt;記事2（ツー）です。社会科見学をテーマにしていて、&lt;a href="/post/golden-depart/"&gt;虚無デパート&lt;/a&gt;に近いところがあるかもしれません。&lt;/li&gt;
&lt;li&gt;ちょっとした昔話と一緒に、東京拘置所と東京都中央卸売市場食肉市場の一般開放イベントについて記録しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/nodenarium-universe/"&gt;Nodenariumと個人サイトの宇宙&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nodenarium.net/"&gt;Nodenarium&lt;/a&gt;という新世代リンク集からの流入が増えているのが嬉しくなってかきました。&lt;/li&gt;
&lt;li&gt;掲載したグラフはAIとやり取りしながらRechartsで描画したものです。やっぱりこういう分野だと一瞬で正確に出力してくれますね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>Nodenariumと個人サイトの宇宙</title><link href="https://ama.ne.jp/post/nodenarium-universe/" rel="alternate"/><published>2024-11-02T19:58:00+09:00</published><updated>2024-11-02T19:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-11-02:/post/nodenarium-universe/</id><summary type="html">&lt;p&gt;フィードにできることはまだあるかい&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="/post/ltu-balance/"&gt;LTUバランスのこと&lt;/a&gt;という記事で&lt;a href="https://nodenarium.net/"&gt;Nodenarium&lt;/a&gt;について触れてから、もう半年以上が経ちました。記事を書いた当初は2つか3つくらいの個人サイトしか紹介されていませんでしたが、11/1時点では6つのサイトが名を連ねていました。しばらく気付かなかったのですが、記事を公開して1週間ほど――3月末くらいには既に追加されていたみたいです。&lt;/p&gt;
&lt;p&gt;Nodenariumというのは、&lt;a href="https://nodenarium.net/about"&gt;公式の説明&lt;/a&gt;によれば「現代に誕生した個人サイトのリンク集」のようです。サイト名でもある「交点」と「植物園」の合成語の「Nodenarium」という言葉の響きからは、独立性と個性を備えたまさに「デジタル・ガーデン」と呼ぶべきウェブサイトの息吹を感じることができます。個人サイトというのは、「わたし」が抱えきれるだけの温室の中で、「わたし」が好きな植物を育て続けるという時間的・空間的な広がりそのものをいうのでしょう。&lt;/p&gt;
&lt;p&gt;Nodenariumに掲載されている個人サイトには、配信に用いている技術が併記されていることがあります。あります、というか、&lt;a href="/"&gt;あまねけ！&lt;/a&gt;以外のサイトには&lt;a href="https://svelte.dev/"&gt;Svelte&lt;/a&gt;や&lt;a href="https://astro.build/"&gt;Astro&lt;/a&gt;といった楽しくてワクワクするフレームワークがたくさん並んでいますね。&lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt;とか&lt;a href="https://www.getzola.org/"&gt;Zola&lt;/a&gt;といった静的サイトジェネレータを使ったサイトもあります。&lt;/p&gt;
&lt;p&gt;あまねけ！は必須機能をHTMLとCSSのみで実現する静的サイトであって、HugoやZolaなどに構成は近いですが、中身は&lt;a href="https://getpelican.com/"&gt;Pelican&lt;/a&gt;を魔改造した私専用のがらくたみたいなものを使っているので、技術的にアピールできるところはありません。しかし、&lt;a href="/link/"&gt;複数のホスティングサービスやZIPアーカイブ、Go製のウェブサーババイナリやDockerイメージ&lt;/a&gt;など、&lt;a href="https://www.fastly.com/blog/summary-of-june-8-outage/"&gt;Fastlyが落ちてしまう&lt;/a&gt;どころか、仮にインターネットがすっかり破壊されても対応できる閲覧手段を揃えているところは少ないでしょう。次の即売会でインストールディスクを手渡ししますか？　もしよければ、Bluetoothで転送してもいいですか？&lt;/p&gt;
&lt;p&gt;さて、あまねけ！ではごくシンプルな解析ツールの&lt;a href="https://github.com/milesmcc/shynet"&gt;Shynet&lt;/a&gt;を利用していて、不定期に表示回数の多いページやアクセス元について眺めたりしています。新しく記事を書くと1週間くらいはアクセスが伸びますし、その他にもある程度の傾向があります。例えば、&lt;a href="/post/null-postal-code/"&gt;どこでもない郵便番号は存在しますか？&lt;/a&gt;は、短くて目新しい情報も少ないのですが、今でも毎日継続的にアクセスのある記事ですね。時間帯や季節によっても違います。&lt;/p&gt;
&lt;p&gt;アクセス元もいろいろです。X（旧Twitter）やActivityPub系インスタンスなどのFediverse、Google検索やYahoo!検索からも意外と流入があります。みなさんがお使いの一般的なブラウザには&lt;a href="https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Referer"&gt;リファラ（Referer）&lt;/a&gt;という仕組みがあって、現代では&lt;a href="https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Referrer-Policy"&gt;Referrer-Policy&lt;/a&gt;（rの数が違う！）で制限された範囲で、アクセス前に滞在していたサイトの情報を受け取ることができます。昔はオリジンどころかパスやクエリまで移動先のサイトにたくさん漏れていたようですが、プライバシーやセキュリティの観点から、もはや明示しない限りオリジンしか送られないようになりました。あまねけ！では外部サイトへの移動時にリファラを全く付与しない設定&lt;sup id="fnref:same-origin"&gt;&lt;a class="footnote-ref" href="#fn:same-origin" title="Referrer-Policy: same-origin"&gt;1&lt;/a&gt;&lt;/sup&gt;にしています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Nodenariumからのあまねけ！への流入数" height="380" src="/images/nodenarium-universe/nodenarium-chart.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;このグラフは、2024年9月1日以降のNodenariumを経由したあまねけ！へのアクセス数を示したものです。9月1日以前はほぼアクセスがなかったのですが、10月5日を境に継続的に流入するようになりました。どうも、Nodenariumに掲載されている&lt;a href="https://not-miso-inside.net/"&gt;みそは入ってませんけど&lt;/a&gt;の&lt;a href="https://not-miso-inside.net/blog/wise-like-fools/"&gt;バカみたいに賢い&lt;/a&gt;という記事が同日に公開されていて、それを経由したアクセスが多いようです。まさに、「デジタル・ガーデン」の「交点」という目的を果たしています。そんな場に名前を連ねているというのは、とても嬉しいですね。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;一夜にして&lt;a href="https://nodenarium.net/"&gt;nodenarium.net&lt;/a&gt; にありえない数のアクセスがあったので「邪悪なボットか！？」と思って確認したら「みそは入ってませんけど」で言及していただいたおかげでした（ありがとうございます）&lt;br&gt;
&lt;cite&gt;&lt;a href="https://x.com/TachibanaIone/status/1843286848787099657"&gt;1843286848787099657&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最近、個人サイトがどのように連帯できるか、ということについて少し考えています。&lt;/p&gt;
&lt;p&gt;個人サイトが連帯する手法としては、それぞれの個人サイトに相互にリンクを掲載する「相互リンク」がよく用いられてきました。ウェブサイトを識別する長方形の小さな画像であるバナーの配布が流行っていたのも、ちょうどこの時期です。私も、中学生の頃に作ったサイトにGIFアニメーションの簡単なバナーを載せていた覚えがあります。あまねけ！ではバナーを作ったことがありませんが、今度みんなで作ってみてもいいですね。&lt;/p&gt;
&lt;p&gt;一方で、Nodenariumのような独立したリンク集は、どちらかといえばより広く、また平等にサイトを収録するディレクトリ型検索サービスやランキングサイトのような形で実現されることが多かったはずです（ちょうど、&lt;a href="https://www.itmedia.co.jp/news/articles/1706/29/news092.html"&gt;Yahoo!カテゴリ&lt;/a&gt;や&lt;a href="https://www.webcomicranking.com/"&gt;ウェブコミックランキング&lt;/a&gt;のような）。これらのサービスの多くが終了あるいは縮小し、同様の役割がSNSに取って代わられた今、こうして個人的なリンク集を作るのは新たな意味を持ちえます。世界から失われていったウェブの瓦礫に分け入って、新たな&lt;ruby&gt;&lt;rb&gt;旗&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;バナー&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を立てる取り組みなのかもしれません。&lt;/p&gt;
&lt;p&gt;こうしたSNSに頼らない連帯のあり方として、これからは&lt;a href="/post/feed-and-you/"&gt;フィード&lt;/a&gt;が鍵になるのではないかと思っています。小さなリンク集は更新を取得するために読者が（あるいはスクレイピングツールが）定期的に巡回を行う必要がありますが、フィードリーダーなら効率的な巡回と更新通知を実現できるというのは、これまでもお伝えしてきたとおりです。この特徴を上手く取り入れて個人サイトを作り上げていくことで、SNSの拡散力にも対抗しうるのではないかと考えています。&lt;/p&gt;
&lt;p&gt;実は、フィードリーダーのひとつである&lt;a href="https://www.inoreader.com/ja/"&gt;Inoreader&lt;/a&gt;では自分が購読しているフィードの一覧をOPMLで公開したり、各フィードの更新情報を1つにまとめてRSSやウェブページとして公開する機能があります。これは、自分がどのようなウェブサイトをフォローしていて、どんな記事に興味があるかを提示するという面で、SNS的な働きを持っていると言えるでしょう。例えば、リンク集に掲載したウェブサイトを1つのフィードに束ねて設置すれば、フィードリーダーにも対応したリンク集を実現できそうです&lt;sup id="fnref:link-policy"&gt;&lt;a class="footnote-ref" href="#fn:link-policy" title="それがデザインポリシーに合うかは別として。"&gt;2&lt;/a&gt;&lt;/sup&gt;。リンク集自身の更新情報も含めるとより使いやすいかもしれません。&lt;/p&gt;
&lt;p&gt;個人サイトにできることはまだあるでしょうか。私はまだ、綺麗なフィードを打ち上げて電波が届くのを待っています。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:same-origin"&gt;
&lt;p&gt;&lt;code&gt;Referrer-Policy: same-origin&lt;/code&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:same-origin" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:link-policy"&gt;
&lt;p&gt;それがデザインポリシーに合うかは別として。&amp;#160;&lt;a class="footnote-backref" href="#fnref:link-policy" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>私ではない場所に行く</title><link href="https://ama.ne.jp/post/far-from-myself/" rel="alternate"/><published>2024-10-28T19:28:00+09:00</published><updated>2024-10-28T19:28:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-10-28:/post/far-from-myself/</id><summary type="html">&lt;p&gt;拘置所・屠畜場……それはあなたです！&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;まえがき&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;私ではない場所に行く&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;東京拘置所矯正展&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;東京食肉市場まつり&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;あとがき&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;まえがき&lt;/h2&gt;
&lt;p&gt;工場見学や社会科見学というのは、自分が行ったことのない場所に飛び込み、自分の知らない世界について知識や経験を積み重ねるための営みである。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;よくある&lt;/em&gt; イメージをそのまま受け入れるなら、山奥にある工場に貸し切りバスで運び込まれた小学生が、醤油やらこんにゃくができあがる様子を生活科ボードにクーピーでスケッチするような風景が浮かぶだろう。前日までに1人最低2個の質問を考えておくように言われたが、まともに――指を全部広げて、という意味だ――挙手していたのは私を含めて数人だった。新卒の採用面接でも同じような時間があったけれど、こういう毒にも薬にもならない質問を考える訓練から逃げ続けていたら、何もかも上手くいかなかったかもしれない。&lt;/p&gt;
&lt;p&gt;ただしこれはかなり昔の話であって、現代ならそういう造花を交わすようなコミュニケーションはAIに頼ればよい。今の小学生だって、支給されたタブレットからいくつでも質問を取り出せるはずだ。例えば、こんな風に:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;はい、工場見学後の小学生らしい質問を考えてみました:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;「このでっかい機械、スクラップにしたらいくらで売れますか？」&lt;/li&gt;
&lt;li&gt;「もしゾンビが襲ってきたら、この工場は守りやすいですか？」&lt;/li&gt;
&lt;li&gt;「工場の人って、お風呂入るとき体から変な色出たりしません？」&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;みなさんが保育園児だった頃、昼食後に1～2時間ほど暗い部屋で過ごす「おひるねタイム」はあっただろうか？　私は昔から薄暗い部屋でこそこそ遊び続けるタイプだったので、保母さん（当時はまだそう呼ばれていたはずだ）に見つかるたびにしっかり寝なさいと怒られたものだが、これと給食の完食指導は未だに意義が分からない。まん丸なロールパンとぐずぐずに煮たうどん汁が同時に供される日がとても苦手だった。音楽の教科書に上から校歌の更紙コピーを貼るよう指示されたのも、そうだ。&lt;/p&gt;
&lt;p&gt;さて、年長（きりん組と呼ばれていた）だった頃、ある日唐突にきりん組だけが「おひるねタイム」をスキップして園の外に連れ出されたことがある。行き先は近所にあった謎の食肉工場――大動物でも小動物でもない謎の食肉の――で、これが私の人生で初めての工場見学だった。そこで何をどういう順番で見学したかはもう忘れてしまったが、足下がよく冷えた薄暗くて湿った場所を列をなして歩いたのがよく印象に残っている。あれが何の肉だったかは覚えていないのに、今でもなぜか親しみや懐かしさを孕んだ優しい気持ちを思い出す。それからしばらくの間「おひるねタイム」と、この一度きりの &lt;em&gt;おひるね&lt;/em&gt; の薄暗い時間が重なって見えて、余計に眠れなくなった。&lt;/p&gt;
&lt;p&gt;小学生の頃にも、いくつか社会科見学に連れていかれたことがあった。消防署、魚市場、孵化場……その中でもよく印象に残っているのは、謎の冷凍工場――やはり食肉でも農産物でもない謎の生物の――である。5階建ての大きくてつるりとした外観の倉庫は、各フロアがそれぞれ大きな冷凍室になっていて、小学生であれば10～15クラス程度なら余裕で収納できるだろう。私たちは細いビニールカーテンをくぐって広い冷凍室へと一列に導かれ、その中で凍てつく生物の姿を横目に生きていることを実感したものだった。冷凍室を這い出るや否や結局コンテナに詰められ、ラップでぐるぐる巻きにされてしまったのは、私たちがいつでも &lt;em&gt;おつとめ品&lt;/em&gt; になるのだと意識させるためだったかもしれない。&lt;/p&gt;
&lt;p&gt;もちろん、このように新たな世界に飛び込んで新鮮な経験を積むことができるのは保育園児や小学生に限らない。中高生や大学生を過ぎて、大人になってもなお――食肉工場や冷凍倉庫、あるいは造幣局や製鉄所にはまだ私たちが持っていない知識や経験が眠っていて、自分にも &lt;em&gt;あったかもしれない&lt;/em&gt; 世界の幅を広げることができる。ひょっとすると、読者の中には30代を過ぎてレールに乗った狭い世界から動けない方もいるかもしれないが、合理化の末に「人生に飽きてしまった」なんて自分を諦める前に、適当な工場見学に飛び込んでみてはどうだろう。&lt;/p&gt;
&lt;p&gt;ただ、 &lt;em&gt;大人の&lt;/em&gt; 社会科見学というと、こうした新鮮な世界に対する純粋な興味からは少し離れた活動になりうる点には注意が必要である。わざわざ小難しくて渋いテーマ選定になっていたり、アルコール飲料の試飲を前提とした蒸留所や酒蔵の見学が定番だったりとか、あるいは関連製品を安く買える経済的なメリットを提供する場になっていることが多い。また、小中学生――小学5年生のみと名指ししている工場さえある――しか受け入れていないとか、数ヶ月前に団体で申し込む必要があるとか、大人ひとりではどうしようもない壁があるので、今から &lt;em&gt;全て&lt;/em&gt; を知るにはかなりの工夫が必要である。&lt;/p&gt;
&lt;p&gt;工場の側だって慈善事業ではないのだから、教育効果の高い小中学生に絞ったり、大きめの団体を効率よく捌いた方がいいし、見学後の工場直売で利益を得られるならそのほうがよい。私たちの側もある種の純粋さに固執せず、それを上手く利用していく必要がある。今回は、こうした経済活動の場を主としつつ、普段は見られない施設の一般開放を兼ねたイベントに足を運んだ体験記として、いくつか資料や写真をまとめようと思う。&lt;/p&gt;
&lt;h2 id="_2"&gt;私ではない場所に行く&lt;/h2&gt;
&lt;h3 id="_3"&gt;東京拘置所矯正展&lt;/h3&gt;
&lt;p&gt;&lt;img alt="東京拘置所矯正展のお知らせ（表面）" height="848" src="/images/far-from-myself/jail-poster-1.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京拘置所矯正展のお知らせ（会場図）" height="500" src="/images/far-from-myself/jail-poster-2.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;東京拘置所は全国に8箇所ある拘置所のうち最大のもので、東京都葛飾区小菅に所在している。東武伊勢崎線小菅駅の高架ホーム（あるいはJR常磐線の北千住駅-綾瀬駅間の車窓）から、2つのV字型の収容棟が端点で繋がったX字の大きな銀色の建物を見たことはないだろうか？　電車を降りて近くで眺めたくなるオシャレでスタイリッシュな外見だが、これはデザイナーズマンションやコンセプトホテル、あるいは高齢者向け高級住宅ではなく、現在も約3000人の被告人・被疑者・死刑囚などを収容している東京拘置所そのものである。旧奈良監獄のように一般客が宿泊できるようになるまでには、まだ100年以上はかかるだろう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="小菅駅から見た東京拘置所の遠景" height="600" src="/images/far-from-myself/jail-view-from-station.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="小菅駅に掲示されていた東京拘置所の案内" height="600" src="/images/far-from-myself/jail-notice-in-station.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京拘置所に向かう途中に見かけた案内" height="600" src="/images/far-from-myself/jail-notice-at-gate.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;小菅の郵便番号は124-0001だが、東京拘置所には個別の郵便番号である124-8565が振られている。124は葛飾区の&lt;a href="/post/null-postal-code/#_2"&gt;郵便区番号&lt;/a&gt;で、&lt;a href="/post/null-postal-code/#_3"&gt;XXX-85XX～XXX-87XXは大口配達先の町域番号&lt;/a&gt;を示すので、葛飾区内の大口配達先として専用の郵便番号を振られているということだ。なお、東京拘置所内の収容者に郵便物を出す場合は、拘置所自体の住所である「東京都葛飾区小菅1-35-1」の後ろに「A」と記載する必要がある。拘置所の管理者宛の手紙か、収容者宛の手紙かを区別するためのものらしい。&lt;/p&gt;
&lt;p&gt;2024年10月5日に開催された東京拘置所矯正展は、東京拘置所の敷地内で刑務作業品や飲食物の販売、その他省庁の広報などを行うイベントである。途中から大粒の冷たい雨が降って、細い通路では傘がぶつかり合う。去年も雨だったらしいし、きっと毎年こういう曇り空が続いているのだろう。普段は入れない拘置所の敷地を踏破できるのはもちろん、駅や車窓から遠目に見るしかなかった収容棟を怪しまれることなく観察できるというわけだ。もしかしたら、拘置所の内部も見せてもらえるんだろうか……というのは、結果としては期待しすぎだった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="敷地内から見た東京拘置所の様子（遠）" height="600" src="/images/far-from-myself/jail-whole-view.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="渋い輝きを放つ東京拘置所の表札" height="600" src="/images/far-from-myself/jail-nameplate.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="敷地内から見た東京拘置所の様子（近）" height="600" src="/images/far-from-myself/jail-zoom-view.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;問題は、東京拘置所を展示する「東京拘置所展」ではなく、あくまで東京拘置所を会場にした「矯正展」だということだ。かつて&lt;a href="https://kyoko-np.net/2020102801.html"&gt;20XX年には独居房を一般向けに貸し出していたこともあった&lt;/a&gt;ようだが、矯正展はあくまで再発防止や社会貢献の取り組みを外部にアピールするのが主目的なので、知らない場所に対する知的好奇心を満たすような企画は少ない。東京拘置所の中でもきちんと見学できるのは、せいぜい資料室に改造した旧庁舎のワンフロアくらいである。&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京拘置所旧庁舎の様子1" height="600" src="/images/far-from-myself/old-jail-view-1.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京拘置所旧庁舎の様子2" height="601" src="/images/far-from-myself/old-jail-view-2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;実際のところ、煩わしい手続きなく東京拘置所の敷地に入ること自体や、収容棟を近くで撮影できるのを楽しみに訪れた人は少ない印象で、多くの人は神奈川の刑務所で作られたという品質のよい&lt;a href="https://www.e-capic.com/SHOP/911-08-00-03-6.html"&gt;石けん&lt;/a&gt;を買い求めるために長蛇の列を作っていた。刑務所で実際に食べている食品に「プリズン」の名を冠した「プリズンカレー」や「プリズンコッペパン」も人気を集めていたようだが、矯正展中は結局特に何も食べなかった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京拘置所矯正展で入手したノベルティ: ボールペンとえんぴつ" height="600" src="/images/far-from-myself/jail-giveaway-pencil.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;2Bのえんぴつに「『世界一安全な日本』を目指して &lt;img alt=":bangbang:" class="emoji" height="16" src="/emojis/203c.png" width="16"&gt; 」という大きな目標が印刷されている。濃い文字を書き続けていくうちに、いずれこの目標も削られ消えてしまうのかと思うとなんだか恐ろしい。&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京拘置所矯正展で入手したノベルティ: 覚醒剤撲滅を訴えるポケットティッシュ" height="601" src="/images/far-from-myself/jail-giveaway-stimulant.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;「覚せい剤撲滅宣言区」と題した明るいグリーンのポケットティッシュ。注射器から勢いよく飛び出た液体の中から襲いかかるのは、おそらく薬物の有害性を詰め込んだ「クスリの悪魔」とでもいうべきものだろうが、シンプルな線で描かれた姿はなかなか愛嬌があってかわいらしい。&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京拘置所矯正展で入手したノベルティ: 不審情報の提供を呼びかけるチラシ" height="750" src="/images/far-from-myself/jail-giveaway-terrorism.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;なんだか気軽な心理テストやストレスチェックテストのように読めてちょっと面白かった。みなさんはいくつ当てはまっただろうか？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt; テロ・ゲリラを賞賛する行動がある&lt;/li&gt;
&lt;li&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt; 重要施設への危害を示唆する言動がある&lt;/li&gt;
&lt;li&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt; ウェブサイト・SNSで過激な書き込みをしている&lt;/li&gt;
&lt;li&gt;&lt;img alt=":white_check_mark:" class="emoji" height="16" src="/emojis/2705.png" width="16"&gt; 爆発物、銃器に異常な関心を示している&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="東京拘置所矯正展で入手したノベルティ: オウム真理教について説明するポケットティッシュ" height="600" src="/images/far-from-myself/jail-giveaway-aum-1.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京拘置所矯正展で入手した配布物: オウム真理教について説明するチラシ" height="850" src="/images/far-from-myself/jail-giveaway-aum-2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;オウム真理教が30年前に起こした数々の凶悪事件を風化させない、後継団体の活動も見逃さないということを呼びかけるポケットティッシュとチラシ。印刷の質が悪いのは予算や機器の都合だろうか。これ自体は仕方ないことだが、受け取った時点ですっかり色あせて見えるのは、まさにこの事件が風化しかけていることを暗示しているようで悲しい。オレンジ色のベタ塗りをやめるか、新鮮なインクで印刷し直すべきだと思う。&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京拘置所矯正展で入手したノベルティ: 表紙と各ページに「教誨」と記されたメモ帳" height="601" src="/images/far-from-myself/jail-giveaway-preach.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;全国教誨師連盟のブースでいただいたメモ帳。表紙はまだしも各ページの右下にまで「教誨」と緑色で丁寧に印字されているので、自ずとメモすべき内容が限られてくるかもしれない。この「教誨」の存在を意識して誰に見せても困らないTODOを並べるか、あるいはまったく逆に、教誨師どころか友達に見られても恥ずかしくなるような同人誌の感想メモをたくさん書いて「教誨」とのギャップを楽しんでもいいだろう。&lt;/p&gt;
&lt;p&gt;刑事施設を会場にした矯正展は、東京拘置所だけではなく全国の刑務所・少年刑務所で開催されている。東京矯正管区（関東地方と東海・甲信越地方の一部）での矯正展は、&lt;a href="https://www.moj.go.jp/kyousei1/kyousei08_00101.html"&gt;法務省のウェブサイト&lt;/a&gt;でも予告されているとおり、直近では11月や12月に開催されるものもあるので、今からでも一旅行のついでに新たな世界に触れてみてはどうだろうか。&lt;/p&gt;
&lt;h3 id="_4"&gt;東京食肉市場まつり&lt;/h3&gt;
&lt;p&gt;&lt;img alt="東京食肉市場まつりのお知らせ（表面）" height="847" src="/images/far-from-myself/shijou-poster-1.png" width="600"&gt;&lt;br&gt;
&lt;img alt="東京食肉市場まつりのお知らせ（会場図）" height="500" src="/images/far-from-myself/shijou-poster-2.png" width="750"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.shijou.metro.tokyo.lg.jp/events/matsuri_jouhou/2024/niku/"&gt;東京食肉市場まつりの開催について&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;東京都中央卸売市場食肉市場&lt;sup id="fnref:shibaura"&gt;&lt;a class="footnote-ref" href="#fn:shibaura" title="便宜上、以降は芝浦市場という。"&gt;1&lt;/a&gt;&lt;/sup&gt;は、東京都港区港南にある屠場および全国一の規模を誇る食肉市場で、&lt;a href="https://www.shijou.metro.tokyo.lg.jp/"&gt;東京都にある11の中央卸売市場&lt;/a&gt;のひとつである。他の市場が花卉・野菜・果物の取り扱いがほとんどで、魚介類を取り扱う市場も豊洲・大田・足立の3つある中で、屠畜および食肉を扱うのは芝浦市場ここだけだ。JR品川駅の港南口を出て徒歩3分の好アクセスで、西側には品川インターシティの高層ビルが3つ並ぶ特異な風景が広がっている。東西南北の4つの門の他にはぐるりと塀で囲まれていて、外からは銀色のダクトが這う古びた建物の外壁しか見ることができない。&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京都中央卸売市場の位置および取り扱い内容のマップ" height="532" src="/images/far-from-myself/shijou-map.png" width="630"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.shijou.metro.tokyo.lg.jp/info/"&gt;中央卸売市場のご紹介&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;芝浦市場で2024年10月19日から2日間開催された東京食肉市場まつりは、名前の通り全国から集まったブランド肉や加工肉、革製品、その他名産品の販売や無料試食などの企画で盛りだくさんである。今年の推奨銘柄牛は仙台牛で、仙台牛のしゃぶしゃぶやステーキ重が提供されていた。宮城県の牛がテーマということで、ステージでは仮面ライダーショーや気仙沼市出身のマギー審司氏のマジックショーなども行われていたようだ。東北新幹線の駅で見かけるセミドライのほやおつまみ「ほや酔明」の&lt;a href="https://suigetsudo.jp/"&gt;水月堂物産&lt;/a&gt;もブースを出展していた。実は石巻市の会社らしい。ちなみに、昨年は宮崎牛が推奨銘柄で、宮崎の豊かな緑で育まれた乳牛から作った&lt;a href="https://daiwafarm.com/"&gt;チーズ&lt;/a&gt;などが販売されていた。&lt;/p&gt;
&lt;p&gt;実際のところ、芝浦市場の内部を見学する手段はほとんどない。一応、食肉市場の案内資料には見学案内対象者として「小・中・高校生等の団体単位」と記載されていて、この「等」というのが私たちのような大人を含むのかは微妙なところだ。それに、小中学生向けの見学で大動物棟や小動物棟での処理作業まで見せるとはどうしても思えないので、結局は東京食肉市場まつりで見られる市場棟とセンタービルの周辺を案内して終わりそうな気もする。南側でどんな仕事が行われているのかは、おそらくこの先も謎のままだ。&lt;/p&gt;
&lt;p&gt;一応補足しておくと、芝浦市場での大動物は牛のことを指していて、小動物は豚のことである。日常で小動物と言われて想像するようなネズミ類やウサギ類、鳥類ではないことに注意したい。なお、鳥類を食肉として処理する施設は屠畜場ではなく「食鳥処理場」に分類されている。つまり、きりん組の頃に連れて行かれたのは食鳥処理場だったわけだ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場のマップ" height="400" src="/images/far-from-myself/shibaura-map-1.png" width="750"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.shijou.metro.tokyo.lg.jp/syokuniku/rekisi-keihatu/rekisi-keihatu-04-01/"&gt;食肉市場案内資料紹介&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場のマップに東京食肉市場まつりの会場図を重ねたもの" height="400" src="/images/far-from-myself/shibaura-map-2.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;食肉の取り扱いにはどうしても衛生上気を遣わなければならないことが多いし、食肉処理業務は昔から根強い偏見や差別に晒されているデリケートな領域というのもあって、思想や信条も分からない素性の知れない見学者をゆるく受け入れるのはセキュリティ上の懸念もあるのだと思う。&lt;/p&gt;
&lt;p&gt;芝浦市場の歴史や食肉知識の紹介に加えて、このような偏見や差別に対して正しい理解を促す目的で、センタービル内には&lt;a href="https://www.shijou.metro.tokyo.lg.jp/syokuniku/rekisi-keihatu/rekisi-keihatu-03-01/"&gt;お肉の情報館&lt;/a&gt;が設置されている。こちらなら、イベントが開催されていない間も平日であれば誰でも自由に見学できるようなので、食肉の知識や芝浦市場を取り巻く環境に興味があれば立ち寄ってみるといいだろう。室内は撮影禁止なのでここで見せることはできないのだが、芝浦市場のジオラマだとか、牛や豚の実物大模型など豪華な展示もたくさんあった。特に、芝浦市場に送りつけられた差別的な手紙やインターネットの書き込みを掲示する横に、芝浦市場を見学した小中学生が書いた差別や偏見に反対する作文を並べて対比する展示には、かなり迫力がある。&lt;/p&gt;
&lt;p&gt;そして、これは東京食肉市場まつりの間だけかもしれないが、切り開いた牛や豚の肝臓にびっしり広がる毛細胆管をルーペで観察できるコーナーも用意されていた。肝臓は中心部までしっかり腸管と繋がっていて、腸の細菌が内部まで入り込んでいるのを実感してもらうためのものだ。そうだった。レバーは絶対に&lt;ruby&gt;&lt;rb&gt;生&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;レア&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;で食べてはいけない！&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場市場棟と品川インターシティB棟" height="600" src="/images/far-from-myself/shijou-outside-1.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場市場棟の内部" height="600" src="/images/far-from-myself/shijou-inside-1.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場センタービルの1階部分" height="600" src="/images/far-from-myself/shijou-inside-2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;市場棟とセンタービル1階部分には、ステーキ肉やソーセージ、ベーコン、ジャーキーなどを売る店舗のブースが展開されている。市場棟の内部には近未来を感じさせる銀色の壁が広がっていて、視線を下げるとパック詰めされた肉がどんどん人手に渡っていく様子が見える。まるで、本当に年1回しか肉を買えない世界になったみたいだ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場センタービルから小動物棟を撮影したもの" height="600" src="/images/far-from-myself/shijou-outside-2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場センタービルを出た広場に置かれていた「芝浦臓器」のバリケード" height="601" src="/images/far-from-myself/shijou-outside-3.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場センタービルにあったポイ捨てを禁止する掲示物" height="600" src="/images/far-from-myself/shijou-notice-1.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場センタービルにあった常識について訴えかける掲示物" height="600" src="/images/far-from-myself/shijou-notice-2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;人々が肉を買いあさっている姿の間に、普段の芝浦市場の姿を見ることができる。センタービルに隣接する小動物棟は、もちろん東京食肉市場まつりが開催されている今日は働く人の姿はない。暗闇をじっと見つめたところで誰も姿を現さないが、紙に描かれた大きな目が私を見つめ返していた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場にある食堂「一休食堂」" height="601" src="/images/far-from-myself/shijou-restaurant.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場にある薬局「くすりの一生堂」" height="601" src="/images/far-from-myself/shijou-pharmacy.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;正門を入って左に進むと、芝浦市場の敷地内で営業する食堂と薬局が姿を現す。こうして一般向けに営業しているのは東京食肉市場まつりの2日間だけで、普段は市場の職員や仲卸業者しか利用できない……というわけではなく、これらの店を利用する分には普段から自由に出入りできるらしい。むしろ、一休食堂の方は通常営業の方がメニューが多いらしいので、ここを目当てに訪れるなら平日に来た方がよいだろう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="お肉の情報館でいただいた「食肉の知識」という本" height="601" src="/images/far-from-myself/shijou-book.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;お肉の情報館で来場者アンケートに答えるともらえる「食肉の知識」は今年も同じ内容だった。主に肉の部位や栄養に関する知識や、食肉の安全を支える仕組みの解説に加えて、巻末には肉料理のレシピがカラーで掲載されている。毎年答えているうちに結局3冊になってしまったが、刷新する予定はあるのだろうか。&lt;/p&gt;
&lt;p&gt;&lt;img alt="食肉市場案内資料紹介の表紙に描かれたキャラクター" height="500" src="/images/far-from-myself/shibaura-charactor.png" width="750"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.shijou.metro.tokyo.lg.jp/syokuniku/rekisi-keihatu/rekisi-keihatu-04-01/"&gt;食肉市場案内資料紹介&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="お肉の情報館で配布されている資料に描かれたキャラクター" height="600" src="/images/far-from-myself/niku-charactor.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;加工肉のキャラクターが表紙に集まっているのは、食肉を扱う市場の資料ならではのデザインである。加工肉キャラクターの集合写真ならギリギリ近所のスーパーで見かけるかもしれないが、ステーキ・ベーコン・ハンバーグが合体したキャラクターは流石にこれだけだろう（名前もステーキ・B・ハンバーグとかだったら面白い）。&lt;/p&gt;
&lt;p&gt;&lt;img alt="東京食肉市場まつりで配られていたキャラクター名募集の応募用紙" height="565" src="/images/far-from-myself/shijou-charator-contest.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;東京食肉市場まつり内で牛と豚のキャラクター名を募集していたので「うらぎゅー」「しばとん」という名前で応募しておいた。これら2匹のキャラクターデザインも2020年あたりに公募で募集していたようだが、公式サイトの&lt;a href="https://www.meat-market.tokyo/info/165/"&gt;お知らせ&lt;/a&gt;の内容が消えてしまっていてよく分からない。&lt;/p&gt;
&lt;p&gt;大賞賞品の高級ブランド牛肉100年分が今から楽しみである。&lt;/p&gt;
&lt;p&gt;&lt;img alt="芝浦市場の駐車場入口にあったダクト3兄弟" height="600" src="/images/far-from-myself/shijou-outside-4.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;東京食肉市場まつりは年1回の開催だが、東京都中央卸売市場では11月にも&lt;a href="https://www.metro.tokyo.lg.jp/tosei/hodohappyo/press/2024/09/06/03.html"&gt;市場まつり&lt;/a&gt;が開かれる予定である。特に、2024年11月3日の豊洲市場まつりは初開催なので、&lt;a href="/post/golden-depart/#_5"&gt;廃墟だった頃の豊洲市場&lt;/a&gt;しか見たことがなければ、あれから7年が経った市場の盛り上がりを実感したり、あの頃は見られなかった建物の奥に足を踏み入れるために行ってみるといいだろう。&lt;/p&gt;
&lt;h2 id="_5"&gt;あとがき&lt;/h2&gt;
&lt;p&gt;さて、今回は東京拘置所と東京都中央卸売市場食肉市場という、普段はなかなか足を踏み入れる手段のない施設の様子について書き留めた。これらは社会科見学という純粋な好奇心や興味だけで真正面から飛び込むのも難しい場所であり、こうした販売や宣伝のためのイベントの横から滑り込むのが最も簡単である。&lt;/p&gt;
&lt;p&gt;もちろん、見学ツアーなどに申し込めば行けるような工場や、多くの見学客を捌くためのコースを整備しているような醸造所を選んだ方が、用意されたガイドをなぞって誰でも楽しめるに違いない。しかし、流動食のようなコンテンツが溢れる現代で、せめて知らない世界に飛び込むときくらいは自分の手で切り拓いていきたいと、私は思う。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:shibaura"&gt;
&lt;p&gt;便宜上、以降は芝浦市場という。&amp;#160;&lt;a class="footnote-backref" href="#fnref:shibaura" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="shuzai"/></entry><entry><title>cosharetで記事をシェアすること</title><link href="https://ama.ne.jp/post/cosharet-anniversary/" rel="alternate"/><published>2024-10-14T23:04:00+09:00</published><updated>2024-10-14T23:04:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-10-14:/post/cosharet-anniversary/</id><summary type="html">&lt;p&gt;cosharetをつかう（でつくる）&lt;/p&gt;</summary><content type="html">&lt;h2 id="_1"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;みなさんは、&lt;a href="https://cosharet.pages.dev/"&gt;cosharet: COSmo SHARE Tool&lt;/a&gt;を知っていますか？　cosharetは、Fediverseを含めた様々なSNSにウェブサイトのリンクを共有できる小さくて便利なツールです。完全にクライアントのみで動作して、いつでも自由に利用できて、そしてあなたのプライバシーを守ります。&lt;/p&gt;
&lt;p&gt;私が&lt;a href="/"&gt;あまねけ！&lt;/a&gt;にcosharetを導入してから1年が経ちました。あまねけ！で記事のシェアボタンをクリックするとcosharetのシェア画面が開きます（この記事もそうです！）。さらに、気に入った記事を&lt;a href="https://fedibird.com/"&gt;Fedibird&lt;/a&gt;や&lt;a href="https://x.com/"&gt;X (formerly Twitter)&lt;/a&gt;に共有する時も、これまでずっとcosharetのブックマークレットを使っています。&lt;/p&gt;
&lt;p&gt;Fedibirdでは&lt;a href="https://fedibird.com/tags/cosharet"&gt;#cosharet&lt;/a&gt;タグ付きで投稿しているので、これまでにcosharetを通じてどんな記事がシェアされてきたかを見ることができます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="cosharetを使ってFedibirdにシェアされた投稿の一覧" height="500" src="/images/cosharet-anniversary/fedibird-cosharet.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;今回は、cosharetのv0.1.0の公開から1年が経った記念として、cosharetとはなにか、どういう利点があるのか、いつどのように使うのかについてまとめていこうと思います。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;はじめに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cosharet"&gt;cosharetとはなにか&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;どんな仕組み？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;何ができる？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;どんな利点がある？&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cosharet_1"&gt;cosharetを「つかう」&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_5"&gt;ブックマークレット&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;カスタマイズ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cosharet_2"&gt;cosharetで「つくる」&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_7"&gt;シェアボタン&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#cosharet_3"&gt;もっと！cosharet&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_8"&gt;細かいカラーテーマを設定したい&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;アプリ表示名やアプリハッシュタグを変更したい&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;アプリハッシュタグを自動的に付与して投稿したい&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="cosharet"&gt;cosharetとはなにか&lt;/h2&gt;
&lt;h3 id="_2"&gt;どんな仕組み？&lt;/h3&gt;
&lt;p&gt;cosharetがやっていることは非常に簡単です。渡されたパラメータから共有するウェブサイトのURLと説明用のテキストを取り出して、各SNSでシェアするためのURLに変換して開きます。この処理は全てブラウザ上で完結し、サーバは静的なHTML/CSS/JavaScriptのファイルを配信するだけです。cosharetが各SNSへの書き込み権限を保持したり、利用者が閲覧しているURLを収集・分析することはありません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="cosharetの共有画面例" height="500" src="/images/cosharet-anniversary/cosharet-share.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;例えば、X (formerly Twitter)でポストを投稿する画面を表示するには、 &lt;code&gt;https://x.com/intent/post&lt;/code&gt; というURLに &lt;code&gt;text&lt;/code&gt; と &lt;code&gt;url&lt;/code&gt; パラメータを付けて開きます。以下のリンクをクリックすると、example.comをシェアするダイアログが表示されます。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://x.com/intent/post?text=nice+example+web+site+%F0%9F%98%8E&amp;amp;url=https%3A%2F%2Fexample.com%2F"&gt;https://x.com/intent/post?text=nice example web site 😎&amp;amp;url=https://example.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Twitterの投稿画面例" height="420" src="/images/cosharet-anniversary/twitter-intent.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;cosharetは、このような各SNS用のシェアリンクを生成する単純なプロキシです。共有先のSNSがURLを通じて投稿画面を表示できる機能さえ持っていれば、ごく簡単な変換ルールを実装するだけで対応できます。逆に言えば、ユーザーが各SNSで送信ボタンをクリックしなくても投稿を書き込めるマルチポストのような動作は実現できません。&lt;/p&gt;
&lt;h3 id="_3"&gt;何ができる？&lt;/h3&gt;
&lt;p&gt;cosharetでは、主に2つの利用シーンを想定しています。&lt;/p&gt;
&lt;p&gt;まずは、自分のウェブサイトにシェアボタンを設置したいケースです。cosharetに適切なパラメータを付与して開けばすぐにシェア画面を表示できるので、ボタン風のデザインに仕立てた &lt;code&gt;a&lt;/code&gt; タグを1個置くだけでシェアボタンが完成します。途切れのないユーザー体験を提供するために、プリセットのカラーテーマやシェア元のウェブサイトに応じた細かい色設定を指定することもできます。&lt;/p&gt;
&lt;p&gt;もう1つは、自分が閲覧しているウェブサイトをSNSにシェアしたいケースです。こちらの場合は、ブックマークレットを通じて現在見ているサイトのURLとタイトルをcosharetに引き渡します。ブックマークレットは主にPC環境から利用するものですが、スマホからでもある程度の利用に耐えるようわずかに工夫しています。こちらも、必要なら自分が好きなカラーテーマを設定した状態でシェア画面に移動できます。&lt;/p&gt;
&lt;p&gt;なお、現在対応しているウェブサービスは以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mastodon系の分散型SNS実装（ &lt;code&gt;/api/v1/instance&lt;/code&gt; が &lt;code&gt;version&lt;/code&gt; を返すもの）&lt;/li&gt;
&lt;li&gt;Misskey系の分散型SNS実装（ &lt;code&gt;/api/meta&lt;/code&gt; が &lt;code&gt;version&lt;/code&gt; を返すもの）&lt;/li&gt;
&lt;li&gt;X (formerly Twitter)&lt;/li&gt;
&lt;li&gt;はてなブックマーク&lt;/li&gt;
&lt;li&gt;Facebook&lt;/li&gt;
&lt;li&gt;LINE&lt;/li&gt;
&lt;li&gt;Wayback Machine&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;それぞれのサービスで投稿画面を表示するためのURLは今後変わることがありますが、仕様変更を発見しだいすぐに修正できるでしょう。&lt;/p&gt;
&lt;h3 id="_4"&gt;どんな利点がある？&lt;/h3&gt;
&lt;p&gt;cosharetは他のサービスよりも自由で使いやすく、開かれていて、プライバシーを重視しています。&lt;/p&gt;
&lt;p&gt;まず、cosharetは&lt;a href="https://github.com/amane-katagiri/cosharet"&gt;ソースコード&lt;/a&gt;を自由に利用できます。MIT Licenseでライセンスされているので、コードを自分好みに改変したり、別のドメインで同様のサービスをデプロイしたり、訪問者に広告を表示することさえも自由です。&lt;/p&gt;
&lt;p&gt;cosharetの着想の元になった&lt;a href="https://donshare.net/"&gt;donshare&lt;/a&gt;や&lt;a href="https://misskeyshare.link/"&gt;Misskey Share&lt;/a&gt;はソースコードを利用できませんし、もちろん自分専用のサーバもデプロイできません。これらのサービスに全く不満がなければそのまま使えばいいのですが、私から見るといくつか欠点があります。共有時に #donshare や #misskeyshare という独自のアプリハッシュタグが強制的に付与されたり、広告が表示されたりしますし、自分が見ているウェブサイトを共有する機能もありません。あまねけ！での導入も考えると、新しいサービスを作るしかなかったというわけです。&lt;/p&gt;
&lt;p&gt;また、cosharetはきめ細かいカスタマイズを簡単に行うことができます。例えば、シェアボタンを設置する際に元のウェブサイトのカラーテーマに合わせた共有画面を表示したり、ブックマークレットで表示する共有画面のカラーテーマを変更したり、よく使うSNSで素早くシェアできるようにする設定があります。donshareでは解除できなかったサービス独自のアプリハッシュタグ&lt;sup id="fnref:cosharet-hashtag"&gt;&lt;a class="footnote-ref" href="#fn:cosharet-hashtag" title="cosharetでは #cosharet です。"&gt;1&lt;/a&gt;&lt;/sup&gt;の付与についても、任意の設定項目として利用できるようになりました。&lt;/p&gt;
&lt;p&gt;そして、先述したとおりcosharetではURLや共有用のテキストを収集しません。設定内容の保存やURLの変換など、全ての処理はブラウザ上で完結します。cosharetはこの約束をより強固にするために、クエリパラメータ &lt;code&gt;?...&lt;/code&gt; ではなくフラグメント &lt;code&gt;#...&lt;/code&gt; を通じたパラメータの受け渡しにも対応しています。フラグメントは&lt;a href="https://datatracker.ietf.org/doc/html/rfc7230"&gt;RFC 7230&lt;/a&gt;ではリクエストにおけるリソースの指定から除外される旨が明記されており、今日の一般的なブラウザでもそのように動作します&lt;sup id="fnref:brower-fragment"&gt;&lt;a class="footnote-ref" href="#fn:brower-fragment" title="ウェブ上のリソースの識別 - HTTP | MDN"&gt;2&lt;/a&gt;&lt;/sup&gt;。そのため、cosharetが秘密裏にパラメータを収集しようとしても、フラグメントを明示的に送信でもしない限り実現できません。&lt;/p&gt;
&lt;p&gt;以上の通り、cosharetは実用面・権利面・プライバシー保護面から見ていずれも優れたサービスになっています。&lt;/p&gt;
&lt;h2 id="cosharet_1"&gt;cosharetを「つかう」&lt;/h2&gt;
&lt;h3 id="_5"&gt;ブックマークレット&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://cosharet.pages.dev/"&gt;cosharet&lt;/a&gt;をパラメータなしで開くと、以下のようなブックマークレットのカスタマイズ画面が表示されます。そのまま「cosharet」と書かれたボタンをブックマークバーにドラッグ・アンド・ドロップすると、閲覧中のサイトをcosharetでシェアできるブックマークレットを追加できます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="cosharetのブックマークレットカスタマイズ画面" height="340" src="/images/cosharet-anniversary/cosharet-bookmarklet.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;ブックマークレットの使い方は簡単です。シェアしたいウェブサイトを開いた状態でブックマークバーの「cosharet」をクリックすると、そのサイトのURLとタイトルを含んだ状態でcosharetが起動します。あとは好きなサービスを選んで「シェア」を押せば、使い慣れた素敵な投稿画面を表示できるでしょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="cosharetの共有画面例" height="500" src="/images/cosharet-anniversary/cosharet-share.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;デフォルトの動作が気に入らなければ、以下の設定を調整できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;表示テーマ: ブックマークレットから起動したcosharetのカラーテーマを変更します。&lt;/li&gt;
&lt;li&gt;ページにシェアボタンを追加する: ブックマークレット起動時の動作を調整します。&lt;ul&gt;
&lt;li&gt;このオプションが無効な場合は、すぐにcosharetを新しいタブで開きます。&lt;/li&gt;
&lt;li&gt;このオプションを有効にすると、まず起動したサイトの左上にcosharetを開くボタンを設置します。スマホからcosharetを呼び出せないケースを解消できる場合があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ボタンをダークモードで表示する: ブックマークレットで設置するボタンのカラーテーマを調整します。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_6"&gt;カスタマイズ&lt;/h3&gt;
&lt;p&gt;使い始めたばかりのcosharetは、まだあなた好みに調整されていません。特に、共有先のSNSリストには使わないサービスばかり並んでいるでしょう。ブックマークレットのカスタマイズ画面で右上の &lt;img alt=":gear:" class="emoji" height="16" src="/emojis/2699.png" width="16"&gt; マークをクリックするか、共有画面を開いた状態で、共有先のSNS一覧を表示できます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="cosharetのサービス一覧画面" height="520" src="/images/cosharet-anniversary/cosharet-customize.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;この画面では、左下の「新しいインスタンスを追加する」ボタンからサービスを追加するか、既に追加されているサービスを &lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt; ボタンで削除することができます。さらに、右下の「その他の設定」ボタン（共有画面では &lt;img alt=":gear:" class="emoji" height="16" src="/emojis/2699.png" width="16"&gt; ボタン）からも、細かな動作を調整可能です。&lt;/p&gt;
&lt;h2 id="cosharet_2"&gt;cosharetで「つくる」&lt;/h2&gt;
&lt;h3 id="_7"&gt;シェアボタン&lt;/h3&gt;
&lt;p&gt;パラメータなしで開いた&lt;a href="https://cosharet.pages.dev/"&gt;cosharet&lt;/a&gt;で「つくる」ボタンをクリックすると、以下のようなシェア用URLの生成画面が表示されます。必要な情報を入力して「このパラメータで開く」をクリックすると、パラメータが設定された状態のcosharetが新しいタブで開きます。このページのURLをコピーして、オリジナルのシェアボタンを設置しましょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="cosharetのシェア用URL生成画面" height="370" src="/images/cosharet-anniversary/cosharet-builder.png" width="750"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://cosharet.pages.dev/?text=example%20site&amp;amp;url=https%3A%2F%2Fexample.com%2F&amp;amp;hashtags=hashtag,with,comma,separation&amp;amp;theme=rainbowflag&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;_blank&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;noopener noreferrer&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    このサイトをシェア
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;または、この生成機能を使わずに、例えば以下のようなフォームを利用してパラメータを指定することもできます。アクセシビリティの改善や、パラメータを動的に生成したい場合、コードの可読性を上げたい場合などに便利です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;form&lt;/span&gt; &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;get&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;_blank&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://cosharet.pages.dev/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;url&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://example.com/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;example site&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;hashtags&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;hashtag,with,comma,separation&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;theme&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;rainbowflag&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;submit&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;このサイトをシェア&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;form&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="cosharet_3"&gt;もっと！cosharet&lt;/h2&gt;
&lt;h3 id="_8"&gt;細かいカラーテーマを設定したい&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;theme&lt;/code&gt; パラメータを指定できる部分について、それぞれのカラーテーマを個別の設定で上書きできます。テキスト色やボタン色などの7箇所について、ダークテーマとライトテーマごとに指定することが可能です。詳しくは&lt;a href="https://github.com/amane-katagiri/cosharet"&gt;cosharetリポジトリ&lt;/a&gt;のREADME.mdを読んでください。&lt;/p&gt;
&lt;h3 id="_9"&gt;アプリ表示名やアプリハッシュタグを変更したい&lt;/h3&gt;
&lt;p&gt;cosharetでは、ユーザーからアプリ表示名（cosharet）やアプリハッシュタグ（#cosharet）を変更することはできません。しかし、以下の環境変数から簡単に設定可能です。これらを設定した状態でデプロイすれば、すぐに新しいリンク共有ツールをリリースできます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;VITE_APP_TITLE&lt;/code&gt;: アプリ表示名&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VITE_APP_HASHTAG&lt;/code&gt;: アプリハッシュタグ（先頭の &lt;code&gt;#&lt;/code&gt; は付与しないこと）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VITE_APP_DESCRIPTION&lt;/code&gt;: &lt;code&gt;meta&lt;/code&gt; タグの &lt;code&gt;description&lt;/code&gt; に設定されるアプリについての説明&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VITE_APP_SOURCE_LINK&lt;/code&gt;: ソースコードのリンク先として使用するURL&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_10"&gt;アプリハッシュタグを自動的に付与して投稿したい&lt;/h3&gt;
&lt;p&gt;自分専用のcosharetを使っている場合は、投稿のたびに独自のアプリハッシュタグを付けると検索しやすいかもしれません。サービス一覧画面右下の「その他の設定」ボタン（あるいは共有画面右下では &lt;img alt=":gear:" class="emoji" height="16" src="/emojis/2699.png" width="16"&gt; ボタン）から「ハッシュタグに #... を追加してシェアする」を有効にしてください。&lt;/p&gt;
&lt;p&gt;&lt;img alt="cosharetのその他の設定ダイアログ" height="500" src="/images/cosharet-anniversary/cosharet-customize-dialog.png" width="750"&gt;&lt;/p&gt;
&lt;h2 id="_11"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;cosharetはカスタマイズ性の高いリンク共有ツールで、シンプルな仕組みながらもいろいろな機能を持っています。今後もあまねけ！のシェアボタンを通じてこの共有画面を見かける機会も多いと思いますが、ブックマークレットを保存して日常の投稿に使うのもおすすめです。&lt;/p&gt;
&lt;p&gt;よかったら #cosharet ハッシュタグを付けてこの記事をシェアしてくださいね。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:cosharet-hashtag"&gt;
&lt;p&gt;cosharetでは #cosharet です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:cosharet-hashtag" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:brower-fragment"&gt;
&lt;p&gt;&lt;a href="https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web#fragment"&gt;ウェブ上のリソースの識別 - HTTP | MDN&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:brower-fragment" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>くらやみカフェ</title><link href="https://ama.ne.jp/post/kurayami-coffeeten/" rel="alternate"/><published>2024-08-28T23:00:00+09:00</published><updated>2024-08-28T23:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-08-28:/post/kurayami-coffeeten/</id><summary type="html">&lt;p&gt;明日世界が終わっても&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品を親友でサークルのよき仲間だった早川一さんに捧げます。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;おすすめの喫茶店があってさ、という高坂さんの誘いに乗って西口から十分ほど歩いていると、飲食店が密集する路地に出た。西口を出て高架をくぐり、左に曲がってから三つ目の交差点で右へ……さらに何度か外せない曲がり角があったがもう忘れてしまった。左右のビルからにょきにょきと生えた色とりどりの突き出し看板が輝く明るい路地である。明るいといっても、自らの存在をアピールしようと虚空を照らすネオンばかりで、足下まではせいぜい月が二つか三つ出ているくらいの光しか届かない。地面には心許ない暗闇が薄く取り残されていた。&lt;/p&gt;
&lt;p&gt;その路地をさらに進むと、つやのある黒い瓦庇を備えた三階建ての古風なビルが現れる。控えめな白い看板には店名と一緒に「自家焙煎」と小さく書かれていて、それなりの設備を備えた喫茶店なのだと分かった。周囲の店より窓が大きくて、中からは温かみのある白熱ＬＥＤの光が薄く漏れている。客席があるのは二階までで、三階はおそらくバックヤードに使っているのだろう。小さなスナックやバーがひしめく薄汚れた雑居ビルに挟まれたビルヂング――周囲のビルよりずっと歴史があるはずで、なんとなくこう呼ぶべきだと思った――は昼ならその珍しい外観でそれなりに目立ちそうだが、二十一時を過ぎた夜遅くの街ではもはや意味がない。&lt;/p&gt;
&lt;p&gt;「ここがおすすめの喫茶店ですか？　たばこが吸えるっていう」&lt;/p&gt;
&lt;p&gt;「そうそう。最近いろいろ探しててさ。吸える店ってもう全然ないんだね」&lt;/p&gt;
&lt;p&gt;「当たり前ですよ。たばこ趣味なんて時代にギャッコーしてます」&lt;/p&gt;
&lt;p&gt;大学生の頃の高坂さんは、たばこなんて一度も吸ったことがなかったはずだ。たばこを毛嫌いしていたというほどでもないけれど、わざわざ健康を冒してまで近寄ることもないような、ごく普通の無関心の距離感。だから、卒業から四年が経った三十代も目前の今、再会した彼女が喫煙者になっていたのはそれなりの衝撃だった。&lt;/p&gt;
&lt;p&gt;「いやいや、喫煙者ってほどじゃないよ。私はただ香りを楽しんでるだけなんだし」&lt;/p&gt;
&lt;p&gt;「毎週吸ってるなら一緒です。それに、たばこ臭いだけで香りも何もないですよ」&lt;/p&gt;
&lt;p&gt;「ナナが言ってるのは白たばこのことだろう？　私のはもっと甘くていい匂いなんだ」&lt;/p&gt;
&lt;p&gt;高坂さんの話によれば、彼女が初めてたばこを吸ったのは数ヶ月前で、それからは月に何度かこうしてたばこが吸えるおしゃれな店を探し歩いているらしい。しかし、そのきっかけはよく分からなかった。火をつけて煙を焚いて香りを楽しむんだから、お香やアロマキャンドルと変わらないよ……なんてはぐらかされたけど、そんなのは屁理屈だ。しかし、非喫煙者の私の想像では、社会人になってから大きなストレスを抱えているとか、ドラマや小説の影響か……あるいは &lt;em&gt;彼氏&lt;/em&gt; の影響くらいしか思いつかない。&lt;/p&gt;
&lt;p&gt;いずれにしても、大学を卒業してから高坂さんと会う機会はほとんどなかったし、いつからどうしてどんなたばこを吸い始めたのかなんて、どれだけ荒唐無稽な嘘でも私はそれを信用するしかないのだ。&lt;/p&gt;
&lt;p&gt;私と高坂さんは大学の文芸サークルの後輩と先輩の間柄で、文サ棟で顔を合わせればそれなりに話はしていたし、交流会に出し合った作品の感想を交わすこともあった。でも、それだけだ。彼女にとって私はサークルの後輩の一人で、交流会だってあくまで定例会の一環でしかない。私は高坂さんとミルコに遊びに行ったこともなければ、お昼にどこで何を食べているのかも知らなかった。&lt;/p&gt;
&lt;p&gt;しかし、私はかつて高坂さんのことが好きだった。……いや、彼女の卒業を機にしばらく顔を合わせなくなっただけで、今も好きだ。高坂さんの話は回りくどくて、独特の価値観から生み出した小説は分かりにくいし、奇妙で自由な生き方のおかげで陰口を叩かれることもあって……それが、好きだ。声も好き。顔も好き。だからといって、そんな思いを彼女に伝えたことも、誰かに話したこともない。つまり、客観的かつ外面的に見る限りでは、私にとって高坂さんはサークルの先輩の一人にすぎないというか、それ以外の関係を築くようなきっかけに欠けていた。&lt;/p&gt;
&lt;p&gt;だから、卒業してからこうして半年に一度の同人誌即売会に合わせて二人で出かけるようになったのは、ある種の運命に思えて仕方ない。今日だって、この五月の即売会を回り終わった夕方に待ち合わせてカフェや中華料理店を巡った末に、帰り道の改札を通る直前で「ちょっとたばこ吸いに行かない？　おすすめの喫茶店があってさ」なんて一見すると魅力に欠ける誘いに乗ってここまでやってきたのだ。もし誘われたのが高坂さんでなければ「たばこなら一人で吸えばいいでしょ」なんて断っていただろう。&lt;/p&gt;
&lt;p&gt;年季の入った木製のドアを丁寧に開く高坂さんに続いて喫茶店に入ると、右側に十席ほどのカウンターテーブル、左側に三つのテーブル席を備えたレトロな内装の空間が広がっている。今はその客席の六割ほどが埋まっていて、私たちはぴったり二人分空いていた奥のカウンター席に案内された。高坂さんが手前に座ったので、私は左側の席だ。客席には新鮮で香ばしいコーヒーの匂いが運ばれてくるものの、一方で左右から流れてくる煙はまるで鼻が灰色に塗りつぶされるような痺れた刺激を帯びていて、あらゆる香りが飽和しきった複雑な空気が渦巻いている。&lt;/p&gt;
&lt;p&gt;目の前にある漆喰の壁に打ち付けられた木製の飾り棚には、一つ一つ色やデザインの違う様々なカップとソーサーが等間隔に並べられていて、コーヒーと過ごす落ち着いた時間の演出に対するこだわりを感じさせる。大正ロマンをイメージした喫茶店なんだ、と高坂さんに聞いていたが、テーブルのシュガーポットから壁に掛けられた絵画まで予想以上に細やかな配慮が込められているのが分かった。こんなに雰囲気のいい喫茶店なら、せめて一階は禁煙フロアにしたらもう少し人気になるんじゃないか、とも思う。&lt;/p&gt;
&lt;p&gt;席に着いた高坂さんは、コーヒーフロートを氷抜きで注文した。てっきり常連が頼む裏メニューなのかと思ったが、首を傾げた店員と「アイスクリームが沈んでしまいますが」「大丈夫ですよ」「えぇと」「沈んでもいいので」「分かりました」というやり取りを交わしているのを見ると、どうも隠れた定番オプションというわけではないらしい。私は素直におすすめのPOPにあった水出しアイスコーヒーを頼んだ。写真を見ると細いシャンパングラスで提供されるようで、氷は初めから入っていない。&lt;/p&gt;
&lt;p&gt;「私、昔ミルコに入ってたサローでバイトしてたんだけど、あそこのコーヒーフロートが好きだったんだよね」&lt;/p&gt;
&lt;p&gt;「そうなんですか？　でも、サローにコーヒーフロートなんてありましたっけ」&lt;/p&gt;
&lt;p&gt;「あぁ、当時の店長のオリジナルメニューだから、他の店にはなかったね。で、フロート用のアイスクリームが特注品でね、氷抜きでもちゃんとコーヒーに浮くんだ。あれ、もう一回飲みたいなー」&lt;/p&gt;
&lt;p&gt;「結局ミルコごと潰れちゃいましたもんね」&lt;/p&gt;
&lt;p&gt;「そうだね。だから、氷抜きコーヒーフロートは永遠に私の思い出なんだ」&lt;/p&gt;
&lt;p&gt;一通り話し終えた高坂さんが、ショルダーバッグから黄色と黒のデザインが目立つたばこの箱を取り出した。たばこ、と聞いて思い浮かぶずんぐりした箱よりも、薄くて丸みのある清涼菓子のようなデザインである。ただ、その上から「望まない受動喫煙が生じないよう――『Sweet』の表現は、健康への悪影響が――」と大きな文字がずかずかと乗り込んでいくせいで、本来持っていただろう洗練された印象は失われていた。&lt;/p&gt;
&lt;p&gt;そこから取り出されたのは、表面がざらざらした質感の茶色いたばこである。これもまた、たばこと聞いてイメージする白とベージュのつまらない帯グラフのような野暮ったい印象とは全く異なり、吸い口はつやのない金色で塗られていて海外のチョコ菓子にも見える。後から聞いたけれど、端から先まで真っ黒な紙で包んだたばこや、赤から紫までカラフルなたばこが一本ずつ収められた色鉛筆のような製品もあるらしい。&lt;/p&gt;
&lt;p&gt;「これ、私が一番好きなやつ。甘くてバニラの香りがして、おまけに細くてかっこいい。非の打ち所がないよ」&lt;/p&gt;
&lt;p&gt;「まぁ、金色のたばこはちょっとだけ……かっこいいかも」&lt;/p&gt;
&lt;p&gt;「とりあえず、一本あげるね」&lt;/p&gt;
&lt;p&gt;そう言って、高坂さんは私の返事を待たずにグラスの根元にたばこを一本置いた。手に持ってみると、しっかりとしたたばこの張り付くような香りの背後に、確かにバニラの気配を感じる。試しに金色の吸い口をくわえてみると……甘い。たばこや煙の味ではなく、包み紙に直接アスパルテームでも塗ってあるのだろう。コーヒーの前に置かれていると、まるでバニラ・スティックシュガーである。私がたばこをくわえたまま火を待っているように見えたのか、高坂さんがマッチをこちらに示したので、慌てて口を離してから「まだ吸わないですよ」と返した。&lt;/p&gt;
&lt;p&gt;高坂さんは短く「そ」と答えて、私に向けて取り出したマッチで自分のたばこにサッと火をつけて吸い始めた。ふぅ、と高坂さんの口から白い煙がもやもやと漏れ出ていく。もちろんたばこの煙には変わりないけれど、周りから漂うたばこよりほんのり甘い匂いを孕んでいた。&lt;/p&gt;
&lt;p&gt;「で、結局なんでたばこを吸うようになったんですか？　彼氏さんの影響？」&lt;/p&gt;
&lt;p&gt;「彼氏？　いや、あいつは吸わないかな。むしろ、臭いからやめてって言われてるよ」&lt;/p&gt;
&lt;p&gt;「私もそう思います」&lt;/p&gt;
&lt;p&gt;そう即答すると、高坂さんは灰皿にたばこを置いて大げさに肩をすくめてみせた。灰皿といっても、ガラスやステンレスの丸い皿の縁を切り欠いた専用の什器ではなく、葉っぱや生き物の形をした豆皿を灰皿の代わりに使っているらしい。私たちに渡されたのは、頭の赤い鶴が白い羽根を広げた様子を模した菱形の小皿である。&lt;/p&gt;
&lt;p&gt;「そんなこと言わないでよ。私だって、今日はナナだからここに誘ったのに」&lt;/p&gt;
&lt;p&gt;「私だから……って、適当なこと言わないでくださいよ」&lt;/p&gt;
&lt;p&gt;慌てた。慌てたけど、そんな気配は一つも見せない。見せたくはない。別に「それ、どういう意味ですか？」なんて上目遣いで尋ねれば、彼女の無責任な放言にごく自然に甘えられるに違いない。バニラの匂いで頭がくらくらしたんです、なんて言い訳が一緒に浮かんでくる。しかし、半年に一度しか会えないような間柄では、ちょっとした疑念や違和感が関係の解消に繋がりかねない。こういう絶妙な距離感を歪めるのだけは避けたかった。&lt;/p&gt;
&lt;p&gt;「適当じゃないさ。誰かを連れてきたのは今日が初めてだよ」&lt;/p&gt;
&lt;p&gt;高坂さんがまたたばこを吸い始める。金色のたばこを口元に寄せながら楽しそうに話す姿は、彼女のクールな顔立ちによく似合っていた。この姿を私に見せたかったのだろうか、とほんのりしたときめきが浮かんで消える。&lt;/p&gt;
&lt;p&gt;「……彼氏とか、連れてくるでしょ。こんな雰囲気のいいところ」&lt;/p&gt;
&lt;p&gt;「はは、こんなところに来るわけないよ。喫煙者のメッカだ～、って怒られるかも」&lt;/p&gt;
&lt;p&gt;「ふふっ、そんな声なんですか？　彼氏さん」&lt;/p&gt;
&lt;p&gt;高坂さんの彼氏も知らない秘密の場所で、私だけがバニラの煙を浴びている。彼氏も知らない高坂さんの秘密の姿を、私だけが隣で見つめている。カウンターに満ちていた灰色のたばこの香りは、今はもう黄色いバニラの匂いですっかり覆われてしまった。高坂さんが吐く煙に包まれるのが心地よく感じる。今はそれだけでもよかった。&lt;/p&gt;
&lt;p&gt;それから高坂さんは、壁に置かれたコーヒーカップを一つずつしげしげと見つめながら、黄色い煙を吸っては吐いてを繰り返した。私もその視線を追うふりをして、シャンパングラスを揺らしながらそっと彼女の横顔に重ねてみる。心地よい二人の間の沈黙に古びたジャズの旋律が染み込んで、しっとりと光った気がした。&lt;/p&gt;
&lt;p&gt;「さっきも言ったけど、私はたばこを吸うお香だと思ってる。たばこを吸い始めたのは、アロマを焚くのと同じ理屈だよ」&lt;/p&gt;
&lt;p&gt;その沈黙を破ったのは高坂さんで、手元を見ると一本目のたばこを吸い終えたところだった。しかし、やっと口を開いて言うことは同じ――お香を吸ってるだけで、深い意味なんてない。いい加減な理屈。お香とアロマも、たばこと一緒にされるとは思っていないだろう。&lt;/p&gt;
&lt;p&gt;「分からないかな？　お線香を焚くのは死者と交流するため。つまり、お香を焚いている間は少しだけ死に近づくんだ」&lt;/p&gt;
&lt;p&gt;「じゃあ、もしかして死に近づこうと思ってたばこを吸ってるんですか？」&lt;/p&gt;
&lt;p&gt;「そう。たばこを吸い続ければ、死者の世界に行けるんじゃないかな？」&lt;/p&gt;
&lt;p&gt;「たばこなんて吸ってたら、最後は嫌でもあの世行きですよ」&lt;/p&gt;
&lt;p&gt;「あはは、そうだね。じゃあ、二つの意味で死者の世界に行けるってわけだ」&lt;/p&gt;
&lt;p&gt;「……変なの。たばこなんて身体に害しかないのに」&lt;/p&gt;
&lt;p&gt;「変じゃないさ。私たちには不健康になる権利がある。ナナにも、私にも。死ぬまでずっとね」&lt;/p&gt;
&lt;p&gt;そう言って、高坂さんが二本目のたばこに火を付ける。&lt;/p&gt;
&lt;p&gt;じゃあ、不健康になるためにたばこを吸っているんじゃないか。ちゃんと理由があるんだ。やっぱりお香やアロマの話なんて最初から誤魔化しで、こうして真相を打ち明けるための時間稼ぎだった。なんで嘘なんて……と責めるつもりはなかったし、これだって &lt;em&gt;彼氏に言えないこと&lt;/em&gt; に違いない。新しい高坂さんの秘密。私だけの秘密。じゃあ、高坂さんは私に――&lt;/p&gt;
&lt;p&gt;バチッ。――私がそう口に出すより前に、電気が行き場を失った音と共にいきなり店内の照明が全て消えてしまった。天井を見ても、キラキラと輝いていたガラスのランプシェードは押し黙って動かない。二人の間を照らしていた黄色い白熱ＬＥＤの優しい光が、地面から這い出た暗闇に覆われていく。私に笑いかけた高坂さんの姿も、そのシルエットと口元の赤い火種を残して見えなくなった。&lt;/p&gt;
&lt;p&gt;「……あれ、もう閉店でしたっけ」&lt;/p&gt;
&lt;p&gt;「二十三時までは開いてるはずだけど。終電まで時間潰せると思って来たんだし」&lt;/p&gt;
&lt;p&gt;店内が真っ暗になって十秒ほどが経った。急な停電なんてそこそこの非常事態だけど、高坂さんは慌てる様子もない。そう言ってしまえば私の反応も似たようなもので、さらに周りに目を向けると、店内でコーヒーとたばこを楽しんでいた客は誰一人驚いた声すら上げなかった。老舗の喫茶店ではよくあることだよ、と言われればそれまでのことのように思えて、わざわざスマホを取り出して停電情報を検索する気も起きない。店内の誰もが、照明くらいすぐに戻るだろうという程度の軽い気持ちで待っていたと思う。&lt;/p&gt;
&lt;p&gt;別に周囲の建物一帯が停電になっているわけでもなく、周囲の雑居ビルの看板は変わらずカラフルな星のネオンを放ち続けているようだ。高坂さんの背後から窓の光が差し込んで、まるで虹色の後光を抱えたような姿である。初めは真っ暗だった店内も、外からのわずかな光に目が慣れて、暗闇の中から再び細かな陰影が浮かび上がってくる。高坂さんは黒いシルエットのままで、周囲だけがモノクロの風景で埋まっていく。&lt;/p&gt;
&lt;p&gt;「もしかしたら、誰かの誕生日を祝う手はずだったのに、ケーキの準備ができていないのかもしれないね」&lt;/p&gt;
&lt;p&gt;ひそひそと、いかにも冗談という口調で高坂さんがそう告げる。こんなしとやかな喫茶店が騒がしい誕生日パーティの手伝いなどするだろうか。しかし、あり得ないと言い切るには非日常が過ぎる。もし仮に、本当に暗闇の中で誰かが誕生日ケーキを待っているのなら、それを大声で指摘するのは確かに無粋というものだ。&lt;/p&gt;
&lt;p&gt;不思議な時間だった。五分以上経っても、ケーキはおろかろうそくの光さえ運ばれてくることはない。テーブル席のグループは既に停電前と同じような盛り上がりを見せていたが、いずれも何かを待っているような会話は聞こえてこなかった。では、誰が何を待っているのか。店員は一階と二階を行ったり来たりで少し慌てているようだったが、やっぱり何のヒントにもならない。&lt;/p&gt;
&lt;p&gt;高坂さんの表情も暗闇に隠されたまま、声だけは囁き声から普段の調子に戻っている。「このお店、彼氏さんは知らないんですよね」「知らないよ。実は、今日ここに来ることも言ってないし」「他の人は？　友達とか」「ううん。ナナが初めてだってば」「よかった」「よかった？」「だって、みんなたばこ嫌いなんでしょ？」「そうだね。でも、ナナも嫌いでしょ？」「今は、ちょっと好きになったかも」――なんて、いつもなら高坂さんがどんな顔をするのか気にしていて出ないような言葉が口をついて出ていた。暗闇に紛れた今なら、何を言っても許されるような気がしていた。&lt;/p&gt;
&lt;p&gt;「じゃあ……ちょっとだけ、火、もらってもいいですか」&lt;/p&gt;
&lt;p&gt;高坂さんが「うん、いいよ」と答えて、暗闇の中でも寸分狂わずマッチと側薬を擦り付けると、まるで手品みたいに赤い炎が上がった。一瞬だけ、高坂さんのほっとしたような表情が照らされて、目を奪われそうになる。それから「息を吸いながら、先端を近づけて……そう」という声に操られるようにマッチに顔を近づけると、バニラ・スティックシュガーが燃え始めた。&lt;/p&gt;
&lt;p&gt;息を吸う。口の中、喉、気道……そこまで煙が入り込むと咽せてしまいそうになるけど、お腹に力を入れてぐっとこらえる。初めてのたばこでせき込むなんて格好悪い、なんて思ってしまうのさえ恥ずかしい。それくらい、身体中がバニラの香りで満ちていた。&lt;/p&gt;
&lt;p&gt;「……ねぇ、先輩」&lt;/p&gt;
&lt;p&gt;「どうしたの？　先輩なんて呼ばれるの、久しぶりだね」&lt;/p&gt;
&lt;p&gt;「私のこと、好きですか？」&lt;/p&gt;
&lt;p&gt;「それ、どういう意味？」&lt;/p&gt;
&lt;p&gt;「先輩が思ってるとおりの、意味です」&lt;/p&gt;
&lt;p&gt;高坂さんの沈黙が続く。そもそも好きの定義はね、なんて回りくどい答案を練っているのだろうと待っていても、なかなか答えは出ずにいた。今、私はどんな顔をしているのだろう。もちろん自分の表情なんて鏡にしか映らないけど、暗闇でたばこをくわえていると唇の感覚も分からなくなって、自分の顔じゃないみたいだ。&lt;/p&gt;
&lt;p&gt;そうして闇に潜んでじっと待っているうちに、いつの間にかたばこを持つ手が熱くなっていた。それに、さっきより吸い込む煙の刺激が強くなって、いかにもたばこ臭い灰色の気配が満ちている。バニラの魔法が解けかかっているようだ、と思った。慌ててたばこを口から離してみると、やはり火種が指先にじりじりと迫っている。&lt;/p&gt;
&lt;p&gt;灰を捨てなきゃいけないんだっけ、とカウンターに置かれた灰の山に指を伸ばす。そんな気配の尻尾を掴むように――高坂さんが私の手首を押さえて、そのままぐっと顔を寄せた。手元が狂って残り短いたばこが灰皿に突き刺さる。皿の角から灰が溢れてぽろぽろと落ちていったのが分かった。危ないですよ、と言わせる隙もなく、高坂さんは私に新しいバニラの煙をとろとろと分け与えた。暗闇の中の高坂さんと目が合った気がして、片手を掴まれているだけなのに動けない。&lt;/p&gt;
&lt;p&gt;ぐらついたイスの板材が軋む。たばこの火種がふっと消え去る。壁の大きな振り子時計が鳴り始める。高坂さんは私の手を離して、小さく「古時計に見られていたね」と呟いた。そうか、この時計は電気がなくても動くんだった。&lt;/p&gt;
&lt;p&gt;それから、二十二時の振り子時計の音に合わせたように、店員が客席に向かって閉店時刻の繰り上げを告げた。誕生日ケーキの配送トラブルという予想は高坂さんの妄想の域を出ることはなく、結果としてただの込み入った電気系統の障害だったらしい。祝う人も祝われる人もないままに、手前の席から順に外へ導かれる。&lt;/p&gt;
&lt;p&gt;店を出ると、やはり喫茶店の入るビルだけがぽっかりと夜の闇に飲まれていた。看板の光が消えて今はもう店名さえ忘れている。狐に化かされていたのかも、なんて口に出したら本当になってしまうくらい、奇妙な時間だったと思う。&lt;/p&gt;
&lt;p&gt;「みんな、五分後に世界が終わるって言われてもそのまま座ってただろうね」&lt;/p&gt;
&lt;p&gt;「ただの電力トラブルですよ。それに、私たちだって同じだったじゃないですか」&lt;/p&gt;
&lt;p&gt;「同じだって？　あんな告白をしておいて、ナナは世界を終わらせるつもりもなかったのかい？」&lt;/p&gt;
&lt;p&gt;「いや……そう言われると、その……」&lt;/p&gt;
&lt;p&gt;「とにかく、終わりにちゃんと予告があるなんて思わないことだね。案外、さっき食べた上海チキンが地球最後の日の食事かもしれないよ」&lt;/p&gt;
&lt;p&gt;「じゃあ、五分後に世界が終わるとしたら、先輩はどうするんですか」&lt;/p&gt;
&lt;p&gt;「きっと、隣にいる人と終わりを迎えなきゃいけないね。初対面の人でも、嫌いな人でも、仲が悪い人でも、最後はここで一緒に過ごすしかないから」&lt;/p&gt;
&lt;p&gt;高坂さんが立ち止まって空を見る。都会の空にはきらめく星なんか一つも浮かんでなくて、嘘みたいな色のネオンが混ざり合っているだけだ。非現実的なのに現実的で、どうしようもない運命を悟っているみたいだった。&lt;/p&gt;
&lt;p&gt;できるなら、私は高坂さんの隣で世界の終わりを見届けたい。しかし、さっきまでこの人と煙った唇を合わせていたのだと意識すると、彼女の顔を見ることさえできなくなる。暗闇から引きずり出された私の大胆さは、幾多のネオンに焼かれてどこかに逃げ去っていた。世界の終わりなんて、こんな小さな私に背負えるわけがないのだ。&lt;/p&gt;
&lt;p&gt;「――だから、隣にいるのがナナだったら、私は嬉しいな」&lt;/p&gt;
&lt;p&gt;でも、高坂さんと二人なら背負えるだろうか。&lt;/p&gt;
&lt;p&gt;帰り際にそんな話をしてから、私たちは解散してそれぞれの帰途についたはずで、しかし朝起きた私は家までどう帰ってきたかも覚えていなかった。あの路地の場所も思い出せないし、喫茶店の名前さえ――「自家焙煎」というのは覚えている――忘れていた。私の中に残っていたのは、高坂さんと並んでたばこを吸っていた時間だけで、それ以外は必要なかったということなのかもしれない。&lt;/p&gt;
&lt;p&gt;ベッドから出て後ろを振り返る。枕元には高坂さんが吸っていたバニラの薄いたばこが置かれていて、開けてみると三本分の空間がぽっかり空いていた。きっと、帰り道で何かのついでみたいに手渡されたのだろう。彼女はそういう人だ。あぁ、高坂さんはなんと言ったんだっけ。私はどんなお礼を言ったんだっけ。バニラの香りの、魔法のたばこだ。&lt;/p&gt;
&lt;p&gt;大きく背伸びをする。バニラの魔力はまだ私の中に残っているだろうか。暗闇で過ごした夢のような時間が煙の中に消えてしまわないうちに、高坂さんに手紙を書かなくちゃ。世界を終わらせる小説みたいなラブレターを。バニラみたいにとびきり甘いやつ。それで、次の即売会で読んでもらうんだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;/* 「薄い」「甘い」「バニラ」「シュガー」「清涼菓子」「チョコ菓子」「魔法」の表現は、健康への悪影響が他製品より小さいことを意味するものではありません。 */&lt;/p&gt;</content><category term="lily"/></entry><entry><title>ミューズパークの実質的終了によせて</title><link href="https://ama.ne.jp/post/end-of-rg/" rel="alternate"/><published>2024-08-19T23:04:00+09:00</published><updated>2024-08-19T23:04:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-08-19:/post/end-of-rg/</id><summary type="html">&lt;p&gt;らぶらぶフルーツ、滅亡を見守るギャル、パママにお願い&lt;/p&gt;</summary><content type="html">&lt;p&gt;私にとっての&lt;a href="https://www.muse-park.com/"&gt;秩父ミューズパーク&lt;/a&gt;は、乾いたプールと壊れかけのゲームコーナー、そして野ざらしの子供用電動遊具が無造作に並ぶ時の止まった世界だった。らぶらぶフルーツ、滅亡を見守るギャル、パママにお願い――制作者不詳の古くて難解なジオラマが意味もなく放置されているような、そういうある種の不気味ささえ孕んでいたように思う。&lt;/p&gt;
&lt;p&gt;&lt;img alt="親孝行 それは自分が 生きること" height="565" src="/images/end-of-rg/title.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;8月5日・昼。目を覚ました時にはもう雨は弱くなっていて、木々の隙間にじっと鳴き声を隠していた蝉が一斉に大合唱を始めていた。スマホを開いて j・m・a と入力して&lt;a href="https://www.jma.go.jp/bosai/nowc/"&gt;高解像度降水ナウキャスト&lt;/a&gt;を開くと、紫色や赤色で示された強烈な雨が降るエリアがやっと山頂を通り過ぎたところである。どうも雨雲の端が&lt;a href="https://www.chichibu-geo.com/geosite/geosite06/"&gt;尾田蒔丘陵&lt;/a&gt;の先に引っかかっているようで、1時間先の予報を見ても間延びした綿飴のような形のままほとんど動きがない。&lt;/p&gt;
&lt;p&gt;この&lt;a href="https://www.muse-park.com/wordpress/wp-content/themes/muse-park/img/map053.pdf"&gt;第3駐車場&lt;/a&gt;は600台の車を収容できる広々とした駐車場だが、今は数台の車がぽつぽつとセンターハウス近くに停まっているだけで物寂しい様子である。しかも、こうして車内で雨宿りをしているのは私たちだけで、今まで出入りする車は1台もなかった。いつから駐車しているのか、あるいは放置車両として追認されるのを待っているのかは分からない。何台かは下回りの赤茶けた錆が大きく広がり始めていて、夏が終わる頃にはどんな姿になっているだろう、と思う。&lt;/p&gt;
&lt;p&gt;ミューズパークには&lt;a href="https://www.muse-park.com/guide/facility13"&gt;スポーツの森&lt;/a&gt;というエリアがあって、テニスコートや多目的広場、そして夏季限定でオープンする大きなプールがあったという。今いる第3駐車場から数分歩いた先で、150mある波のプールと1周350mの流れるプールの2つを楽しめたらしい。インターネットを検索すれば、撮影時期も詳細も分からない空とプールの青で森の緑を挟み込んだサンドイッチのような風景をたくさん見つけられるだろう。あるいは、今すぐ似たような写真を&lt;a href="https://gemini.google.com/"&gt;Gemini&lt;/a&gt;に作らせることもできる。&lt;/p&gt;
&lt;p&gt;しかし、第3駐車場の破滅的な空き具合から分かるとおり、この暑い夏の日でもプールは水で満たされずに太陽に照らされたままだ。公式サイトによれば&lt;a href="https://www.muse-park.com/other/%E3%83%97%E3%83%BC%E3%83%AB%E3%82%88%E3%82%8A%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B%E3%80%80%E6%B5%81%E3%82%8C%E3%82%8B%E3%83%97%E3%83%BC%E3%83%AB%E3%81%AF%E6%96%BD%E8%A8%AD%E7%82%B9%E6%A4%9C%E3%81%AE.html"&gt;2019年から流れるプールが老朽化で利用中止&lt;/a&gt;に、&lt;a href="https://www.muse-park.com/letter-news/%e4%bb%a4%e5%92%8c2%e5%b9%b46%e6%9c%8815%e6%97%a5-no318%e7%99%ba%e8%a1%8c"&gt;2020年は感染症防止のために全面的な営業自粛&lt;/a&gt;となり、以降は施設の不具合を理由に毎年供用を取りやめている。もともと&lt;a href="http://web2.nazca.co.jp/dfg236rt/page309.html"&gt;西武鉄道が30年以上前に建設した&lt;/a&gt;プールを細々と修繕しつつ使い続けてきたわけだし、いつ壊れてもおかしくはなかった。それでも、2020年の強烈な断絶を境に毎年水を通していたプールを丸2年以上放置することになったのは、設備にとっては大きなダメージだったのではないか、とどうしても思ってしまう。&lt;/p&gt;
&lt;p&gt;ミューズパークのウェブサイトや&lt;a href="https://ameblo.jp/kiyonokazuhiko/entry-12554941800.html"&gt;市議会の答弁&lt;/a&gt;を見ると、利用中止はあくまで一時的な措置であって、来年以降は開園できるかもしれない、あるいは設備の欠陥を解消して開園したいという姿勢は崩していないようだ。しかし、それは市内でも数少ない公営プールを持つ施設が示すべき立場を表明しているにすぎない。&lt;/p&gt;
&lt;p&gt;公式サイトの「&lt;a href="https://www.muse-park.com/guide/facility13"&gt;今季は営業いたしません&lt;/a&gt;」の赤い文字は応急的に追加されてから既に数年が経ち、ミューズパークの広報では毎年6月あるいは7月に利用中止の&lt;a href="https://www.muse-park.com/letter-news"&gt;お知らせ&lt;/a&gt;を出し続けている。&lt;a href="https://www.muse-park.com/wordpress/wp-content/themes/muse-park/img/map02_p.pdf"&gt;古い園内マップ&lt;/a&gt;には「波のプール」と「流れるプール」の文字とともに楽しそうに駆ける兄妹のイラストが残されている一方で、その上に並んだ&lt;a href="https://www.muse-park.com/wordpress/wp-content/uploads/2024/05/mmap0315.pdf"&gt;新しい園内マップ&lt;/a&gt;にはもうかれらの姿はない。いずれもプールはもう &lt;em&gt;既に存在しない場所&lt;/em&gt; であるかのように説明が消され、代わりに置かれた県のマスコットがこちらに笑いかけている。いずれ、古いマップからもこの兄妹は消されてしまうのだろうか。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.muse-park.com/map"&gt;&lt;img alt="古い園内マップに描かれた兄妹のイラスト" height="400" src="/images/end-of-rg/with-pools.jpg" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.muse-park.com/map"&gt;&lt;img alt="新しい園内マップに描かれた埼玉県のマスコット" height="400" src="/images/end-of-rg/without-pools.jpg" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ミューズパークのプールに併設されているセンターハウスは、ロッカールームや更衣室、ゲームコーナー、簡易なフードコートを備えた複合的な施設で、夏季の間はプールのエントランスとして多くの利用客を迎えていた。これらはあくまでプールの施設の一部であって、わざわざセンターハウスのことを紹介する記事や口コミはあまり見かけないが、レトロなアーケードゲームが大量に立ち並ぶ光景は強く印象に残っている。私が初めてセンターハウスを訪れたのは2018年の春のことで、流れるプールの利用中止が始まる前の年だった。&lt;/p&gt;
&lt;p&gt;センターハウスのゲームコーナーはプールの営業時期にかかわらず開放されていて、このスタイルはプールの全面閉鎖が始まってからもそのままだった。少なくとも2021年の夏には、壊れて全く動かなくなったゲームが隅に放棄されて規模は少し小さくなっていたが、まだ多くのゲームが現役で動いていた。大きな断絶を経て3年が経ち、ゆるやかで鈍重な時間が床に降り積もっていたのだが、当時の私はその重みをあまり意識していなかった気がする。&lt;/p&gt;
&lt;p&gt;いくつか印象に残っているゲームがある。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://secure.fdek.jp/love_fr.html"&gt;らぶらぶフルーツ&lt;/a&gt;は、投入したメダルが落ちる場所で払い出される報酬の枚数が変化するメダルゲームで、左右に動くレバーと釘に当たるメダルの動きが小気味よい。ゲーム画面や手元のパネルに描かれた2人のメイドは対照的な姿である。メイド服に身を包んでメニューを胸に抱える長い緑髪の少女は、いかにも落ち着いたしっかり者という印象だが、もう一方のホイッパーを掲げる赤髪の少女は、スニーカーに簡易なエプロンを着けただけで今にも筐体から飛び出してきそうな活発さを感じる。昔かつての友人とここに訪れたとき、彼女たちがどのような関係であり、どのような生活を送っているのかについて大いに議論したものだった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="らぶらぶフルーツの筐体" height="800" src="/images/end-of-rg/love_fr.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://bcaweb.bai.ne.jp/miyooo/30TEST.html"&gt;30test&lt;/a&gt;（サーティーテスト）は、射幸心を煽るメダルゲームではなく、パンチングマシーンのようにプレーヤーの能力を試すタイプのゲームである。もっとも、試すのは筋力ではなく反射神経で、数字が表示されたボタンを順番に押していくというシンプルなゲームだ。CAPTCHA認証でやったことがある人もいるかもしれない。筐体に描かれた2人のギャルは青い制服に身を包んでいて、令和の今から見ると古めかしい言葉遣いで語りかけてきているが、このゲームが1997年製であることを踏まえればむしろ新しい。ギャルはいつまでも永遠にギャルであり続ける、というのは祈りにも近い常識だが、残念ながら2021年の夏には彼女らの世界は少しずつ壊れ始めていた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="30testの筐体" height="563" src="/images/end-of-rg/30test.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;センターハウスを挟んだプールの外側には、屋根付きのバーベキュー設備と子供用の電動遊具――いわゆるキッズライド――が立ち並んでいて、プールの利用客を一日中楽しませるための準備が整えられていた。パトカー、消防車、クルーザー、飛行機……いくつかの遊具には雨を防ぐために簡素なプラスチックトタンの屋根が設えられていたが、高位段丘の上で太陽の光や湿度を含んだ強風に晒されるのは止められず、いずれも塗装が剥げて薄汚れた印象を拭えない。2018年の春にはまだ文字がはっきりと残っていた「パママにお願い &lt;img alt=":bangbang:" class="emoji" height="16" src="/emojis/203c.png" width="16"&gt; 」は看板は3年の時を経てすっかり薄れてしまったし、水色とピンクの汽車が大きな音を立てて線路を進むこともなくなった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="文字がはっきりと見える「パママにお願い！」の看板と文字が薄れた「パママにお願い！」の看板" height="281" src="/images/end-of-rg/pamama.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;車を降りる。第3駐車場にはまだ温かくて弱い雨が降り続けていたが、傘を差してセンターハウスまで歩くくらいなら問題ないだろう。雨雲が通り過ぎて湿った空気にわずかな日差しが入り込んだせいで、ふと息を吸うと気道がサウナのような不快感で満たされていく。センターハウスの中は空調が効いているだろうか。いや、プールが休止している中でそんな快適にすることもないか。2018年、2021年……あれからさらに3年が経ったけれど、まだあのギャルは滅亡と共に永遠を歩んでいるだろうか。そう思いながらスポーツの森の中央ゲートをくぐる。そして、ゲートの先の広場を見回すと……野ざらしになったキッズライドは跡形もなく消え去っていた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="キッズライドが全て撤去された広場" height="601" src="/images/end-of-rg/no-kidsride.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;まさか！と、靴に驟雨の尻尾を浴びるのも気にせずにセンターハウスに駆け出す。その急ぎ足がすぐにとぼとぼとした足取りに変わったのは、センターハウスの変わり果てた姿が目に入ったからだ。私たちをゲームコーナーに迎えるはずのエントランスはロープで閉ざされて、覗き込んだガラス窓の向こうにはがらんどうのゲームコーナーが広がっていた。もうここには何もない。ギャルよいつまでも永遠にギャルであれ、と呪文のように祈ったけれどもう手遅れだった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="アーケードゲームが全て撤去されて立ち入り禁止になったセンターハウス" height="600" src="/images/end-of-rg/no-center-house.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;立ち尽くす私の耳に踏切の音が届いた気がして振り向いたけれど、武甲山も見渡せないほどの霧のような視界に広々とした舗装で埋められているだけだ。夢を見ているのか、あるいは今まで見ていたのが夢だったのか、今はもう分からない。&lt;/p&gt;
&lt;p&gt;かくして、ミューズパークの片隅に放置された不気味なジオラマは陽炎の中に消え去ってしまった。らぶらぶフルーツ、滅亡を見守るギャル、パママにお願い――古びたセンターハウスに広がる奇妙な風景は今でも私の中に残っている。しかし、この光景を共有したかつての友人はもういない。だから、もう時が止まることなどないのだ。日常に戻らねばならない。それでも、夏山の中で渇ききった廃墟の姿を忘れることはないだろう。&lt;/p&gt;</content><category term="shuzai"/></entry><entry><title>2024/05/03～2024/06/03</title><link href="https://ama.ne.jp/post/report-20240603/" rel="alternate"/><published>2024-06-03T11:58:00+09:00</published><updated>2024-06-03T11:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-06-03:/post/report-20240603/</id><summary type="html">&lt;p&gt;2024/05/03～2024/06/03のレポート&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* &lt;a href="/images/report-20240603/og.png"&gt;thumbnail&lt;/a&gt; by &lt;a href="https://x.com/crab_love_club"&gt;カニさん大好きクラブ&lt;/a&gt; */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;新作三丁目交差点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="amaneke-traffic-updates"&gt;amaneke TRAFFIC UPDATES&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;最新の&lt;a href="/comment/"&gt;コメント&lt;/a&gt;ページが長くなってきたので、2020年までに送信されたものを&lt;a href="/askfm-2020/"&gt;アーカイブ（2018～2020）&lt;/a&gt;に移動しました。&lt;ul&gt;
&lt;li&gt;今後も古いコメントは適宜アーカイブされるため、コメント一覧ページをアンカーで参照したリンクは数年後に利用できなくなります。&lt;/li&gt;
&lt;li&gt;コメントへのリンクはできるだけ個別のページのURL&lt;sup id="fnref:comment-url"&gt;&lt;a class="footnote-ref" href="#fn:comment-url" title="https://ama.ne.jp/comment/YYYYmmddHHMM/ 形式"&gt;1&lt;/a&gt;&lt;/sup&gt;をご利用ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/security/hall-of-fame/"&gt;Security Acknowledgments&lt;/a&gt;ページを追加しました。&lt;ul&gt;
&lt;li&gt;インパクトの大小にかかわらず、一定レベル以上の脆弱性を報告いただいた方を掲載するものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ama.ne.jp/.well-known/security.txt"&gt;security.txt&lt;/a&gt;に &lt;a href="/security/hall-of-fame/"&gt;&lt;code&gt;Acknowledgments&lt;/code&gt;&lt;/a&gt; を明記しました。&lt;/li&gt;
&lt;li&gt;一部のページで「More infomation...」のリンクが壊れていたので修正しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/link/#_1"&gt;ミラーサイト&lt;/a&gt;で壊れていた一部のリンクを修正しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。いつもより少しトラフィックが多かったみたいですが、あまり行儀のよくないbotによる解析の影響のようです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;あまねけ！コメントキャンペーン5月分の当選者に500円分のPayPay残高を送信しました。当選者の発表は、残高の送信をもって代えさせていただきます。&lt;ul&gt;
&lt;li&gt;キャンペーンの詳細は&lt;a href="/comment/new/"&gt;コメント投稿&lt;/a&gt;ページをご覧ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;新作三丁目交差点&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/10th-park/"&gt;10th PARK road side&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;先月投稿したPARK10周年企画の作品について、描いてもらった表紙と描いた挿絵を追加したのでもう一度ここに掲載します。&lt;/li&gt;
&lt;li&gt;表紙と挿絵はいずれも&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。CC BY 4.0に基づいて利用できるのは、小説の本文のみです。&lt;/li&gt;
&lt;li&gt;イラストだけを直接見たい場合はこちらのリンクからどうぞ:&lt;ul&gt;
&lt;li&gt;表紙: &lt;a href="https://www.pixiv.net/artworks/119117804"&gt;りとことまりの軽自動車ぎゅうぎゅう旅&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;挿絵: &lt;a href="https://www.pixiv.net/artworks/119100054"&gt;10th PARK ADV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;アイくん（あるいはXアカウント: Oのこと）&lt;ul&gt;
&lt;li&gt;届くべき人たちには届いたので、もう記事は残っていません。&lt;/li&gt;
&lt;li&gt;公開中にいくつかこの記事に関するコメントを受け取りましたが、それらについては返信しません。&lt;/li&gt;
&lt;li&gt;まだX（旧Twitter）に残っているどこかのリンクから、たまに流入してきているみたいです。何かの導入みたいですね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/hall-of-security-txt/"&gt;security.txtに連絡がきたこと&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;あまねけ！で&lt;a href="https://ama.ne.jp/.well-known/security.txt"&gt;security.txt&lt;/a&gt;が活用された初めての事例としてまとめました。&lt;/li&gt;
&lt;li&gt;4月にはレポートを受け取っていたのですが、諸事情で忙しく後回しにしていたら5月中旬になってしまいました。&lt;/li&gt;
&lt;li&gt;指摘された脆弱性はいずれもリスクが低く、わずかな設定変更で対処を終えています。&lt;/li&gt;
&lt;li&gt;重大な脆弱性を発見・報告した方には、引き続き適切な報酬を支払う予定です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/incredible-interference-infancy/"&gt;虹色ひよこ飼育日記&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;モルフォ蝶やタマムシやハトの首のように鮮やかな光沢を放つ、不思議な虹色ひよこにまつわるお話です。&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/10th-park/"&gt;10th PARK road side&lt;/a&gt;に引き続き、三人称（神）視点の小説の練習をしています。&lt;/li&gt;
&lt;li&gt;分かりやすい、天の声の自意識が嫌だ、読みにくいなどのご意見があれば、&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;からぜひ教えてください。一人称視点を捨てたわけではありません。&lt;/li&gt;
&lt;li&gt;今年は毎月1本おはなしを投稿していこうと思っています。6月にずれ込みましたが、これは5月分ということにします。今後の投稿が遅れないよう、ぜひ「読んだ」ボタンや&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;で応援してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:comment-url"&gt;
&lt;p&gt;&lt;code&gt;https://ama.ne.jp/comment/YYYYmmddHHMM/&lt;/code&gt; 形式&amp;#160;&lt;a class="footnote-backref" href="#fnref:comment-url" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="report"/></entry><entry><title>虹色ひよこ飼育日記</title><link href="https://ama.ne.jp/post/incredible-interference-infancy/" rel="alternate"/><published>2024-06-02T13:40:00+09:00</published><updated>2024-06-02T13:40:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-06-02:/post/incredible-interference-infancy/</id><summary type="html">&lt;p&gt;カラーひよこは大人になると魔法が解けてしまうそうです&lt;/p&gt;</summary><content type="html">&lt;p&gt;虹色ひよこの発生が確認されたのは、梅雨入り前の晴れの特異日である六月一日のことである。これはSNSで初めて虹色ひよこの動画がアップロードされた数日前にあたるが、投稿を元にした学内新聞サークルの取材によって大々的にこの日付が発生日として喧伝されたのだ。今日も昨日も「虹色 ひよこ」あるいは「ひよこ 七色」でヒットする写真や動画が何枚も投稿されている。&lt;/p&gt;
&lt;p&gt;虹色ひよことは、虹色のカラーひよこである。虹色というと、カネイ化成あたりの発色のよいフルカラー染料にLからNまで一色ずつ浸したストライプパターンを思い浮かべるかもしれないが、その想像は少し違う。噂の虹色ひよこは、ジルコニウムの薄膜干渉のような構造色を示すのである。つまり、幼児向け絵本の挿絵に使われるような空間的減法混合ではなく、視点や光の変化によって色を変える時間方向への加法混合といえる。&lt;/p&gt;
&lt;p&gt;……と、単に言葉を並べ立てても説明できるものではないので、先に検索キーワードをコピーして実際に投稿を見ておくか、&lt;span class="norotate"&gt;Chrysochroa&lt;/span&gt;で飾り付けたオブジワの工芸品のようなひよこの姿を想像すると早いだろう。&lt;/p&gt;
&lt;p&gt;帰宅前に学生支援室の前を通りかかって足を止めたリッカは、虹色ひよこを持っていないどころか、今の今まで虹色ひよこの存在さえ知らなかった貴重な存在の一人である。入り口のガラス扉の横には「虹色ひよこ ご自由にどうぞ」という手書きと掲示が貼られたコピー用紙の空き箱が置かれており、その中で虹色の金属光沢を放つ数羽のひよこが時折ぴよぴよと鳴きながら歩き回っていたのだ。&lt;/p&gt;
&lt;p&gt;リッカは普段あまり使わないSNSアプリを開いて、虹色ひよこについて前述のようなことを調べ上げてから、最終的に満足そうな顔でそのうちの一匹を紙袋に詰めて持ち帰っていった。まるで縁日ではしゃぐ子供の姿のようである。その様子を支援室の中から退勤直前の事務職員が見ていたようだが、特に気に留める様子もなく残業前のタイムカードを打刻した。&lt;/p&gt;
&lt;p&gt;さて、カラーひよこ、と聞いて眉をひそめたのはあなただけではない。SNSには目の前の娯楽を無批判に楽しめるユーザーだけではなく、こうした存在を動物虐待や不正搾取の兆候に結びつけて糾弾し、インプレッションを換金するための長蛇の列に並ぶアカウントも同じくらい……いや、むしろ多いかもしれない。虹色ひよこの愛くるしい動画の投稿には、いつも壊れた日本語のリプライがぶらさがっていた。&lt;/p&gt;
&lt;p&gt;実は、リッカとルームシェアするメイもその一人である。&lt;/p&gt;
&lt;p&gt;「ちょっと、リッカ。テーブルに置いてある虹色ひよこ、あなたが買ってきたの？」&lt;/p&gt;
&lt;p&gt;メイはこうしてリッカの部屋のドアをノックもせずに開ける癖があったが、リッカは特に気にしていないようだ。隣にあるメイの部屋に「配信中 絶対開けるな」と「開ける前にノック！」の両面式ルームプレートがかけられているのとは対照的である。&lt;/p&gt;
&lt;p&gt;「あー、あれね。学生支援室の前で配ってたからもらってきたの。今SNSで人気なんだって」&lt;/p&gt;
&lt;p&gt;「知ってるわよ。昨日、虹色ひよこと社会問題を絡めてバズったばかりだもの。とにかく、私これから配信の予定なんだからどこかへやってよ」&lt;/p&gt;
&lt;p&gt;メイはSNSで&lt;ruby&gt;&lt;rb&gt;完全菜食主義や動物愛護&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ヴィーガニズム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を訴えるVTuber「水野ナオ」として活躍していて、最近は陰謀論にも片足を突っ込んでいる節がある。配信ではLive2Dのモデルと共に実写の手元を映すのがお決まりで、資料を出したり料理を紹介したりするのに使われていた。&lt;/p&gt;
&lt;p&gt;彼女たちが住む物件は周囲からの音漏れが気になるほど壁が薄いわけではなかったが、室内用の木製ドア一枚で区切られた共用のダイニングキッチンで動物の喧しい鳴き声が響けば、やはり誤魔化しようがないだろう。&lt;/p&gt;
&lt;p&gt;「いっそのこと、新しい家族ですって紹介したら？　野菜くずで育ってゴミも減らせるみたいだから、メイの……なんだっけ、SDGsキャラにも合うんじゃない？」&lt;/p&gt;
&lt;p&gt;「だから、私のはヴィーガンだってば！　昨日バズったばっかりなのに、実はひよこを飼ってましたなんてバレたら炎上じゃ済まないわよ」&lt;/p&gt;
&lt;p&gt;「でも、キャラでしょ？　エシカル・ビーガン・キャラ」&lt;/p&gt;
&lt;p&gt;あっけらかんとそう言い放つリッカに、メイが反論できるはずもない。水野ナオはヴィーガンとして作られたキャラクターだが、彼女に声を当て、動きを与えているメイの実態は全くそうではなかった。今日だって、リッカがスーパーで掘り出してきた割引の牛ポンドステーキ肉をどう食べようかと考えすぎて、帰り道で普段使わないエーワンソースの240gビンを購入していたくらいだ。&lt;/p&gt;
&lt;p&gt;いつもなら「うん、お肉大好き！」と開き直って受け流すメイだったが、今は配信前の緊張や忙しさで余裕がないらしく、真っ赤な顔で強引にリッカの手を引くと、虹色ひよこが駆け回る箱を持たせて玄関の方へ追いやった。&lt;/p&gt;
&lt;p&gt;「うっさい！　とにかく出てけ！」&lt;/p&gt;
&lt;p&gt;「待ってよ……今ポムポムパズルしてたのに」&lt;/p&gt;
&lt;p&gt;「いや、何年前のゲームよ……あーもう！　ピヨピヨうるさいわね。虹色ひよこは鳴かないように遺伝子操作されてるんじゃなかった？　ほんと、インターネットって嘘ばっかり！」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;それから数十分後。&lt;/p&gt;
&lt;p&gt;「あら、リッカ。ひよこだけ外に置いて戻ってくればよかったのに」&lt;/p&gt;
&lt;p&gt;「あ、メイ。配信お疲れさま。見てほら、一億円突破したの」&lt;/p&gt;
&lt;p&gt;「いや、三年くらい前に散々いろんな配信で見たわよ……」&lt;/p&gt;
&lt;p&gt;配信を終えたメイが玄関を開けると、床に置かれたひよこの箱とその横にしゃがみ込むリッカの姿を見つけた。外はもう薄暗くて、まるで「うちじゃ飼えないから返してきなさい」とでも言われた子供が意地を張っているようにも見える。&lt;/p&gt;
&lt;p&gt;巣箱を抱えてダイニングに戻ってきたリッカの顔は少し汗ばんではいたが、数十分前に浴びせられたメイの癇癪など意に介していない様子である。しかし、当のメイは少しばつの悪い心地がしていた。配信前で焦っていたからとはいえ、外に追い出すのはやりすぎだったかもしれない、と思ったのだ。&lt;/p&gt;
&lt;p&gt;「リッカ、外暑かったでしょ？　ごめんね」&lt;/p&gt;
&lt;p&gt;「メイったら、顔真っ赤にして追い出すんだもん。出てけー！なんて……ふふっ、久しぶりに言われちゃった」&lt;/p&gt;
&lt;p&gt;「……あなた、もう少し怒った方がいいわよ」&lt;/p&gt;
&lt;p&gt;「え、どゆこと？」&lt;/p&gt;
&lt;p&gt;けらけらと笑うリッカの顔を見て、メイは安心するより先に自分の心配が無駄になったことに呆れていた。もちろん穏便に済んだならそれでいいはずだが、どうも多少の口論に持ち込む覚悟があったらしい。もっと怒っていい――SNSには感情を嫌というほど増幅して効率的に注目を集めるスキームが溢れているし、メイは自然とそういう「怒る」技術を実践しているところがあった。しかし、それはリッカには伝わるまい。&lt;/p&gt;
&lt;p&gt;「いや、なんでもないわ。ステーキ、焼いてもらってもいい？　ちょっと疲れちゃって」&lt;/p&gt;
&lt;p&gt;「じゃあ、はい。できあがるまで可愛がってて。自宅で簡単ひよこセラピーね」&lt;/p&gt;
&lt;p&gt;リッカはテーブルについたメイの前にひよこの巣箱を置いてから、手早くお気に入りのエプロンを結んでキッチンへ向かった。&lt;/p&gt;
&lt;p&gt;夕食前のダイニングテーブルに滑り込んだ虹色ひよこの箱を見て、メイはこの前配信で紹介した海外の動物愛護団体のCMを思い出した。食卓に並んだ鉄板皿にミニチュアの動物が載せられて、まるで野蛮な踊り食いに供されるかのような演出だったのだ。メイはあまりに悪辣に描かれた家族の表情で思わず笑いそうになったのだが、視聴者は至って真面目にコメントを続けていた。&lt;/p&gt;
&lt;p&gt;箱の中でひょこひょこと歩き回る虹色ひよこには、メイのそんな取り留めのない連想など伝わるまい。実際のところ、メイもSNSの写真越しにしか見たことのない不思議な生き物をまじまじと目で追っているうちに、例のプロパガンダCMのシーンなどすっかり忘れていた。&lt;/p&gt;
&lt;p&gt;「案外可愛いわね、このひよこ」&lt;/p&gt;
&lt;p&gt;虹色ひよことは、虹色のカラーひよこである。虹色というと――そう、ひよこが羽毛を揺らして動くたびに、あるいはメイが視線を動かすたびに、黄色い部分が紫色や緑色の輝きに変化するのだ。しかし、こんな不思議な色でも羽毛は一本一本柔らかく、愛らしい動きとふわふわした質感は何らひよこと変わらない。&lt;/p&gt;
&lt;p&gt;メイはこの虹色ひよこを手で包み込みたいと思ったが、どう触ればいいのか分からず見つめることしかできない。メイはこれまで一度もペットを飼ったことがなかった。&lt;/p&gt;
&lt;p&gt;「はーい、ひよこさん。おいしいニンジンだよ～」&lt;/p&gt;
&lt;p&gt;すると、手際よく調理を進めていたリッカが、グラッセの余りとして出てきたニンジンの皮と切れ端を刻んで箱に放り込んだ。虹色ひよこは目の前の野菜くずをきちんと餌と認識したらしく、小さな皮の欠片からついばみ始めたので、リッカはうんうんと頷き満足げである。鶏に色の濃い野菜を与えると黄身の発色がよい卵を産むというが、しかしリッカはこの虹色ひよこの雌雄も知らずにいた。そもそも、虹色ひよこの卵に黄身と呼べる部位があるのかも、今は分からない。&lt;/p&gt;
&lt;p&gt;メイは虹色ひよこがニンジンの切れ端をどんどん食べ進める様子をしばらく見つめていたが、突然何かに思い至ったようで、立ち上がってその目を大きく見開いた。そして、何を思ったかリッカが新しいニンジンを落とそうとする手を遮ってしまう。&lt;/p&gt;
&lt;p&gt;「ちょ、ちょっと！　虹色ひよこは野菜なんか食べないわよ」&lt;/p&gt;
&lt;p&gt;「え？　食べてるじゃん」&lt;/p&gt;
&lt;p&gt;「食べても消化できないの！　ほら、そんなの食べちゃダメ――い、痛っ！」&lt;/p&gt;
&lt;p&gt;メイがうろたえた様子で箱の中から残りのニンジンを拾い上げようとしたが、目測を誤って空を掴む指をすかさずひよこのくちばしが襲う。貴重な餌を奪おうとした外敵の指には当然の仕打ちなのかもしれないが、一欠片も取り出せないまま悲鳴を上げて逃げ帰る姿は切ないものである。&lt;/p&gt;
&lt;p&gt;「あのさ、じゃあ虹色ひよこは何を食べるの？」&lt;/p&gt;
&lt;p&gt;「……どのサイト読んでも、砂糖菓子か角砂糖しか食べないって書いてるわ。ほら」&lt;/p&gt;
&lt;p&gt;「お砂糖しか食べないひよこなんて、聞いたことないよ」&lt;/p&gt;
&lt;p&gt;リッカはメイが差し出したスマホの画面をろくに見もせず、そう返した。SNSにどっぷり浸かるメイにとっては疑うべくもない常識だとしても、リッカには検討する価値もない作り話である。&lt;/p&gt;
&lt;p&gt;とはいえ、そもそも一ヶ月前なら存在そのものが作り話だった虹色ひよこが実際に目の前を駆け回ってるのだから、それが重度の甘党だったとしてもおかしくはないだろう。メイはそう思ったが、現に目の前でもりもり野菜を食べるひよこがいるのだから、個体差もあるのだろうと納得することにした。&lt;/p&gt;
&lt;p&gt;仲直りに使いなよ、とリッカに渡された細長いニンジンの切れ端を差し出すと、虹色ひよこは何度か首を傾げてからその先端をついばんだ。数分前にメイが働いた無礼を許したのか、すっかり忘れたのかは分からないが、指先に伝わる感触から敵意は感じない。&lt;/p&gt;
&lt;p&gt;「その子、なんて名前にしようか？」&lt;/p&gt;
&lt;p&gt;「あら、ただのひよこに名前なんて付けるの？　リッカに任せるわ」&lt;/p&gt;
&lt;p&gt;ただのひよこ、なんてつれない態度をとっているが、メイは動物に手ずから餌を与える経験がほとんどなかったので、ニンジン越しに触れ合っただけの虹色ひよこに愛着を感じつつあった。そんなペットの名前を考えるなんて、メイにとっては初めての一大イベントのはずである。しかし、うるさいひよこと断じて一度追い出した手前、それをリッカに知られるのは少し恥ずかしくて言い出せなかったのだ。&lt;/p&gt;
&lt;p&gt;「私が付けていいの？　えーと、じゃあ……メリーね。今日からあなたは、メリーだよ」&lt;/p&gt;
&lt;p&gt;リッカの声に答えるように「メリー」がぴよ、と短く鳴いた。メリーなんてひよこっぽくもない、むしろ羊に似合うような名前がするりと出てきたのを訝しんで、メイは首を傾げた。メリー……メ？　リー……もしかして。&lt;/p&gt;
&lt;p&gt;「メリー……それって、もしかして私たちの名前の頭文字を取ったの？」&lt;/p&gt;
&lt;p&gt;「うん、そうだよ」&lt;/p&gt;
&lt;p&gt;「いや、意味分かんないんだけど」&lt;/p&gt;
&lt;p&gt;「私たちのペットだもん。いいでしょ？　イッカ、メッカ、リイ、カメ……うん、やっぱり、メリーがいいよ」&lt;/p&gt;
&lt;p&gt;メイのメに、リッカのリ。語呂がよくなるように少し伸ばして、メリー。由来を考えれば、まるで二人の間に生まれた娘に付けるような名前だが、リッカはこの部屋の新しい仲間によく似合うと本気で思っている。このひよこを選んだのも家まで連れてきたのもリッカの独断で、本来ならメイが名前を分ける道理などないはずだが、いつの間にか「私たち」のペットになっていた。&lt;/p&gt;
&lt;p&gt;それでも、メイがひよこの愛くるしい動きに絆されない冷淡な心の持ち主なら、ペットなんて配信の邪魔だと反対し続けていただろうが、今はもう可愛いメリーを元の場所に返すことなど考えられない。それに、メイのセンスで思いつく安直な名前と比べれば、もはや「メリー」という名前さえ気に入り始めていた。&lt;/p&gt;
&lt;p&gt;「……まぁ、いいわ。でも、配信には絶対出さないからね」&lt;/p&gt;
&lt;p&gt;「はいはい」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;虹色ひよこがどれだけ美しい輝きを放つといっても、徐々に物珍しさが薄れて注目を集められなくなるのはSNSの常である。初めてその姿を現してから数週間が経ち、日常の一コマになりつつあった虹色ひよこは、面白い動きの猫や愛らしく駆け回る小動物のGIFアニメのような枠に収まってある種の定番と化していた。&lt;/p&gt;
&lt;p&gt;水野ナオも、初めは虹色ひよこを通じて人間の残虐性や生物実験の恐ろしさを訴え続けていたが、インプレッションの伸びが明らかに鈍くなったので早々にそのトピックからは撤退していた。対するメイは、手ずからメリーに野菜くずを与えるのにすっかりハマっているが、結局まだ直接触れるには至らず巣箱の掃除はほぼリッカ任せになっていた。それでも、リッカがいない間は猫撫で声で話しかけたりして、二人の時間を楽しんでいる。&lt;/p&gt;
&lt;p&gt;そんな虹色ひよこが持て囃されていたSNSの空気が変わったのは、六月二十八日の雨の日のことである。虹色ひよこの無害で安全な印象は、この日を境に大きく変わることになった。&lt;/p&gt;
&lt;p&gt;その日作られたばかりの匿名アカウントから突然投稿されたのは、キッチンやリビング、あるいは誰かの部屋らしい場所を床から無造作に映した無音のショートクリップの羅列である。初めはAI作品の試験的なアートアカウントとして扱われていたようだが、徐々に投稿の傾向が変わっていく。食事中の姿、着替えの隠し撮り、カップルの口論、違法薬物の服用、執拗な虐待……そして、そこに登場しているのは、いずれも実在の人物であった。&lt;/p&gt;
&lt;p&gt;突然SNSに私生活を公開された人の中には、知人からの指摘で、あるいは直接その投稿の存在を知るに至った人もいたようだ。フェイク動画だと言い張っているのはバレると困る状況を撮られた少数派だけで、多くのクリップはどうもかれらの家で実際に撮影されたものらしい。そして、程なくして全員の共通点が虹色ひよこを家に迎え入れたことだと分かったのだ。&lt;/p&gt;
&lt;p&gt;発端となったアカウントはもう凍結されているが、プロフィールに書かれていたURLはいわゆる&lt;ruby&gt;&lt;rb&gt;無防備なウェブカメラ&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;インセカム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のまとめサイトだった。これはパスワードがなかったり初期設定のままのウェブカメラをクロールし、注意喚起の意味も込めて一覧で公開しているサイトで、今回のアカウントとは運営者も目的も異なる。仮に投稿者をすぐに突き止めたとしても、このサイト自体は止めようがなかったのだ。そんな趣味の悪い覗きサイトに、床を歩き回る虹色ひよこの視点のライブ映像が大量に流れ込んだのが明らかになって、SNSはもう大騒ぎだった。&lt;/p&gt;
&lt;p&gt;「ただいまー。……って、ちょっと、メイ！　何してるの」&lt;/p&gt;
&lt;p&gt;「（しっ！　静かにして）」&lt;/p&gt;
&lt;p&gt;焦燥した表情でメリーの巣箱にアルミホイルの切れ端を巻こうとしているメイも、そんな虹色ひよこの騒ぎに巻き込まれた一人である。&lt;/p&gt;
&lt;p&gt;数週間で一回り成長したメリーが窮屈しないように、最初に使っていた段ボールの巣箱から衣装ケースに引っ越していたので、これをすっかり包むにはかなりの量が必要だろう。巣箱の周囲は八割ほどがホイルを巻かれてテープで留められているが、上部を覆うには足りなかったようで、上から新聞紙を被せるという応急処置で次の策を練っている状態だった。&lt;/p&gt;
&lt;p&gt;「（いったいどうしたの？）」&lt;/p&gt;
&lt;p&gt;濡れた折りたたみ傘を玄関に広げるリッカが、物々しい雰囲気のメイに合わせて小声でそう尋ねる。本当ならさっさとシャワーを浴びるつもりだったが、どうもそういうわけにもいかないらしい。&lt;/p&gt;
&lt;p&gt;「（アルミホイルが欲しいの。ちょっと持ってきてくれない？）」&lt;/p&gt;
&lt;p&gt;「（え、買い置きしてないよ。明日のセールで買う予定だったし）」&lt;/p&gt;
&lt;p&gt;「なんでよ！　それじゃ、電波が防げな――っ！」&lt;/p&gt;
&lt;p&gt;思わずそう叫んでしまったメイが自分の口を押さえるが、もちろん出してしまった声は戻ってこない。もう彼女の肉声データはどこかに送られてしまっただろう。メイは得体の知れない隠しカメラの前で大きな声を出してしまったのを後悔しながら、改めてリッカにひそひそと話しかける。&lt;/p&gt;
&lt;p&gt;「（実は、メリーが隠し撮り用のロボットだったみたいなのよ）」&lt;/p&gt;
&lt;p&gt;「（どういうこと？　ちゃんと説明してよ）」&lt;/p&gt;
&lt;p&gt;「（もう……これ、一番わかりやすいまとめだから、今すぐ読んで）」&lt;/p&gt;
&lt;p&gt;メイがリッカに「【トロイの木馬】虹色ひよこスパイ事件まとめ【随時更新】」と表示されたスマホを手渡す。リッカがまとめ記事を読んで状況を理解するまでの間、メイはこれからメリーをどうすればいいのかについて考えていた。&lt;/p&gt;
&lt;p&gt;SNSには虹色ひよこを「分解」してその機械の身体を明らかにしているアカウントが何個もあったが、そのいずれもAIの自動評価で動物虐待の判定を受けてBANされてしまった。しかし、メリーはもうすっかりこの部屋の一員になっていたし、スパイロボットかもしれないというだけで巣箱をひっくり返し、あまつさえその皮を剥いで中身を検められるほど、メイは切り替えの早い人間ではない。&lt;/p&gt;
&lt;p&gt;それでメイは、せめて自分たちのプライベートが送信されるのだけはどうにか止めるために、巣箱を手近な金属で覆ってメリーの電波を遮断しようとしていたのだ。アルミホイルのような金属箔できちんとした電波暗室を作るには少し工夫が必要なのだが、メイがインターネットから得られる範囲の知識では、頭にアルミホイルを効率よく巻き付けるためのモルニ巻きの手順しかヒットしなかった。&lt;/p&gt;
&lt;p&gt;「……じゃあつまり、メリーが外国から送り込まれた盗聴器ロボだって言いたいの？　このひよこが？　メリーが？」&lt;/p&gt;
&lt;p&gt;「（さっきからそう言ってるじゃない。あと、声に気を付けて。まだ電波を防ぎ終わってないのよ）」&lt;/p&gt;
&lt;p&gt;「お尻にネジは付いてたの？」&lt;/p&gt;
&lt;p&gt;「えっ？」&lt;/p&gt;
&lt;p&gt;メイが唐突な質問にまた大きな声で答えてしまう。リッカの言葉に気を取られたせいで、メリーに声が漏れていることはもう気にしていないようだった。&lt;/p&gt;
&lt;p&gt;「だから、ロボットの証拠。みんなお尻にネジが付いてたって言ってるよ」&lt;/p&gt;
&lt;p&gt;「見てないわよ。だって、まだ私……メリーに触ったこと、ないし……」&lt;/p&gt;
&lt;p&gt;虹色ひよこのお尻には金属の一分ネジが嵌まっていて、それを外すと身体がバラバラに分解できる、というのはメイが渡したまとめサイトにもしっかり記されていた。しかし、メイは騒動の初めに真偽の分からない噂を一通り読んだきり、続報は何も調べていなかったのだ。&lt;/p&gt;
&lt;p&gt;わずかな情報で感情のままに躊躇なく突っ走るメイの性格は、ある意味水野ナオの人気を支える個性でもあったが、こうして無駄なアルミホイルに巻き込まれる当事者には迷惑なものである。&lt;/p&gt;
&lt;p&gt;「じゃあ、見てみようよ。見たらすぐ分かるでしょ？」&lt;/p&gt;
&lt;p&gt;そう告げたリッカが巣箱から新聞紙を剥がすと、メリーは思いがけない夜が来たと勘違いしていたのか、目を閉じてじっと隅に座り込んでいた。リッカはそんなメリーを器用に手で掬い上げて、さっとお尻の羽毛をかき分ける。&lt;/p&gt;
&lt;p&gt;メイが触れようとするとピーピー騒いで暴れ出すのに、リッカにはまるで親鳥のように身体を任せているのは、どうにも不思議なものである。メイはメリーが盗聴器ロボだと思い込んでいたのも忘れて、リッカの手の上で眠る姿を呆然と目で追うことしかできなかった。&lt;/p&gt;
&lt;p&gt;「ほら、やっぱりネジなんかないよ。それに、盗聴器ロボはずっとひよこのままで、こんな風に大きくならないんだって」&lt;/p&gt;
&lt;p&gt;ロボットはふんもしないし、野菜も食べないの。そうメイに言い聞かせるリッカは、彼女がインターネットに振り回される姿にもはや呆れかえっているようで、当たり前にも思える一言一言を順番に噛み砕いてみせた。&lt;/p&gt;
&lt;p&gt;「で、でも……いっぱい映像が流出してて……」&lt;/p&gt;
&lt;p&gt;「でも、うちのメリーはちゃんとひよこだよ。私たちの家族！　メイ、ちゃんと記事は読んだの？」&lt;/p&gt;
&lt;p&gt;「盗聴されてるって聞いて、慌てちゃってたかも……ごめん」&lt;/p&gt;
&lt;p&gt;メイはそう答えると、見えない敵に立ち向かって張りつめていた緊張の糸がぷつりと切れてしまったようで、その場にへたり込んでしまう。彼女は彼女なりに謎の巨悪に立ち向かっていたはずだが、あれこれ考えた戦略が徒労に終わった無力感と、空回りのまま突き進んだ恥ずかしさがごちゃごちゃになって、床を見つめるメイの目には涙が溜まっていた。&lt;/p&gt;
&lt;p&gt;「じゃあ、新しいアルミホイル買ってきて」&lt;/p&gt;
&lt;p&gt;「……なんで、私が」&lt;/p&gt;
&lt;p&gt;下を向いたままそう答えるメイは、声が震えるのを抑えられない。強気なメイが素直に謝るほど追いつめられたときは、いつもこうだ。メイ自身は泣きそうになっているのをどうにか隠し通したつもりだが、もちろんリッカにはその様子は筒抜けだった。&lt;/p&gt;
&lt;p&gt;「無駄遣いした分。もちろん、メイの自腹だからね？」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;あれからさらに数ヶ月。SNSをいろいろな意味で広く賑わせた虹色ひよこは、二度のブームを経てすっかり忘れ去られてしまった。多くのひよこは飼い主の手で分解されて廃棄されたが、一部の個体はそのまま外に捨てられて、ビルの物陰や公園の草むらの中から動画を配信し続けた。&lt;/p&gt;
&lt;p&gt;しかし、もともと人の目を引くためだけに設計された虹色の身体は、自然界ではただの足かせである。野良猫や鳥のおもちゃとして弄ばれ、通行人に見つかれば足や傘の先で端に追いやられるしかない。元々飼い主に与えられていた砂糖菓子は体内の砂糖電池セルの燃料になっていたらしく、どうにか逃げ延びた個体も徐々に電池切れで力尽きる運命にあった。&lt;/p&gt;
&lt;p&gt;こうして、&lt;ruby&gt;&lt;rb&gt;覗きカメラ&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;インセカム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;サイトに連日並んでいた虹色ひよこの配信も日に日に姿を減らし、誰が何のために送り込んだのかも解明されないまま、季節はいつの間にか夏を通り過ぎてもう秋も終わりかけている。&lt;/p&gt;
&lt;p&gt;そんな悲惨な結末を辿ったひよこロボットたちとは反対に、メイとリッカと共に暮らすメリーは立派な雌鶏に成長していた。しかし、幼い頃に彼女の身体中を覆っていた虹色の羽毛は、今やごく平凡な白いふわふわした羽根に生え替わっている。成鳥になるまでは数日おきに何度換羽しても虹色の羽毛に生え替わっていたので、カラーひよこのように染料で着色されたわけではなかったようだが、大人になって魔法が解けてしまったらしい。&lt;/p&gt;
&lt;p&gt;頭頂部の小さなとさかも鮮やかな赤色で美しいものの、やはりかつての珍奇な虹色ひよこの面影はなくなっている。雄鳥と違ってあまり大きな鳴き声も上げないので、すっかりメイとリッカの暮らしに馴染んでいた。&lt;/p&gt;
&lt;p&gt;「結局、メリーってどういう生き物だったわけ？」&lt;/p&gt;
&lt;p&gt;「だから、ひよこでしょ？　ほかの子とちょっと色が違うだけの」&lt;/p&gt;
&lt;p&gt;「でも、支援室の前にあったひよこって、勝手に置かれてたのよね。出所の分からない生き物って……まぁ、ちゃんと育ったからいいんだけど」&lt;/p&gt;
&lt;p&gt;「そうそう。この前掲示板に『支援室では、六月に行われたひよこの配布には一切関与しておりません』って書いてあったから、びっくりしちゃった」&lt;/p&gt;
&lt;p&gt;どうやらリッカは、その下に貼られていた理学部生物学科の学生数人に対する停学処分の告示は見逃していたようだ。とはいえ、もしその告示が目に入っていたとしても、処分理由の「カルタヘナ法違反で罰金以上の刑に処されたため」という内容を読んで、メリーに関係するものだと推理できるかは微妙なところである。&lt;/p&gt;
&lt;p&gt;実は、この部屋でメリーを飼っているのが知られると二人も少々危ういのだが、メイもリッカもそのことは知る由もない。これほど見た目が凡庸な鶏になってしまった今では、もはやDNA同定検査にでも回さなければバレることはないだろう。メリーが虹色の卵でも産むようになったらまた話は変わるかもしれないが。&lt;/p&gt;
&lt;p&gt;「虹色ひよこって、もうSNSで注目されてないんでしょ？　そろそろメリーのことを紹介してもいいんじゃないかな」&lt;/p&gt;
&lt;p&gt;「ダメよ。今は虹色ひよこを送り込んだ国について考察してるんだから。陰謀論ってすごいわね。ヴィーガンの盛り上がりと全然違うのよ」&lt;/p&gt;
&lt;p&gt;「メイったら、懲りないね。いつかメリーに正体をバラされても知らないよ？」&lt;/p&gt;
&lt;p&gt;「メリーがそんなことするわけないでしょ？　ねぇ？」&lt;/p&gt;
&lt;p&gt;そう呼びかけられたメリーが、タイミングよくココッと短い鳴き声を上げる。まるで「もちろんよ」とでも答えるようなその声を聞いて、二人は顔を見合わせて笑うのだった。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>security.txtに連絡がきたこと</title><link href="https://ama.ne.jp/post/hall-of-security-txt/" rel="alternate"/><published>2024-05-15T11:11:00+09:00</published><updated>2024-05-15T11:11:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-05-15:/post/hall-of-security-txt/</id><summary type="html">&lt;p&gt;畜産物缶詰又は畜産物瓶詰のうち、牛肉を塩漬けにし、煮熟した後、ほぐし又はほぐさないで、食用油脂、調味料、香辛料等を加え又は加えないで詰めたもの&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;はじめに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#securitytxt"&gt;security.txtのこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;脆弱性まとめ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;アマネイメージズ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#-fghi-pqrs"&gt;無料フィード作成 - FGHI PQRS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;先日、&lt;a href="/"&gt;あまねけ！&lt;/a&gt;に設置している&lt;a href="https://ama.ne.jp/.well-known/security.txt"&gt;security.txt&lt;/a&gt;を経由して、私が運用しているいくつかのサービスについて脆弱性の指摘をもらいました。これらの対応を行うとともに、&lt;a href="/security/hall-of-fame/"&gt;Acknowledgments&lt;/a&gt;ページを設置したのでそのまとめです。&lt;/p&gt;
&lt;h2 id="securitytxt"&gt;security.txtのこと&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.rfc-editor.org/rfc/rfc9116.html"&gt;RFC 9116&lt;/a&gt;で定義されたsecurity.txtは、当該Webサービスで脆弱性を発見した際の報告先やポリシーを提示するための規格です。具体的には、Webサービスの &lt;code&gt;/.well-known/security.txt&lt;/code&gt; に改行区切りで &lt;code&gt;Key-Name: value&lt;/code&gt; 形式の設定項目を記載するもので、フォーマット自体はそんなに難しいものではありません。あまりイメージが湧かなければ、robots.txtのようなものだと思えばよいでしょう。&lt;/p&gt;
&lt;p&gt;security.txtでは2つの必須項目（ &lt;code&gt;Contact&lt;/code&gt; と &lt;code&gt;Expires&lt;/code&gt; ）および7つの任意項目（ &lt;code&gt;Acknowledgments&lt;/code&gt; &lt;code&gt;Canonical&lt;/code&gt; &lt;code&gt;Encryption&lt;/code&gt; &lt;code&gt;Hiring&lt;/code&gt; &lt;code&gt;Policy&lt;/code&gt; &lt;code&gt;Preferred-Languages&lt;/code&gt; &lt;code&gt;CSAF&lt;/code&gt; ）を利用できます。私は現時点で以下の項目を記載し、PGP鍵でクリア署名を施した上で各サービスに配置しています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Contact: &lt;a href="mailto:amane@ama.ne.jp"&gt;mailto:amane@ama.ne.jp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Expires: 2032-05-31T15:00:00.000Z&lt;/li&gt;
&lt;li&gt;Acknowledgments: &lt;a href="/security/hall-of-fame/"&gt;https://ama.ne.jp/security/hall-of-fame/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Canonical: &lt;a href="https://ama.ne.jp/.well-known/security.txt"&gt;https://ama.ne.jp/.well-known/security.txt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Encryption: &lt;a href="https://keybase.io/amane/pgp_keys.asc"&gt;https://keybase.io/amane/pgp_keys.asc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Preferred-Languages: ja, en&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;非常に簡単ですね。みなさんも&lt;a href="https://securitytxt.org/"&gt;security.txtジェネレータ&lt;/a&gt;を使って又は使わずに、 &lt;code&gt;gpg --clear-sign security.txt&lt;/code&gt; でクリア署名を施して又は施さずにsecurity.txtを配置してみてください。&lt;/p&gt;
&lt;h2 id="_2"&gt;脆弱性まとめ&lt;/h2&gt;
&lt;p&gt;さて、今回もらった指摘とその対応について記載していきます。これらの内容の一部は&lt;a href="/security/hall-of-fame/"&gt;Security Acknowledgments&lt;/a&gt;としてまとめられています。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;key&lt;/th&gt;
&lt;th&gt;value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;報告者&lt;/td&gt;
&lt;td&gt;&lt;a href="https://in.linkedin.com/in/parth-narula-86283821a"&gt;Parth Narula&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;報告日&lt;/td&gt;
&lt;td&gt;2024/04/16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;報告件数&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;全体的なリスク評価&lt;/td&gt;
&lt;td&gt;いずれも緊急性が低く、リスクにならない&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="_3"&gt;&lt;a href="https://amaneimages.com/"&gt;アマネイメージズ&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="_4"&gt;報告内容&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;jQueryのバージョンが古いことに起因するCVE-2015-9251（リスク評価: ★☆☆）&lt;ul&gt;
&lt;li&gt;&lt;a href="https://mediagoblin.org/"&gt;MediaGoblin&lt;/a&gt;がまともに更新されていないのは知っていましたが、10年前の脆弱性があるとうーん……となりますね。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jquery/jquery/issues/2432"&gt;関連するIssue&lt;/a&gt;を見る限り、攻撃者の支配下にあるURLからスクリプトを取得して実行させるというXSSの脆弱性のようです。&lt;/li&gt;
&lt;li&gt;MediaGoblinのフロントエンドには3箇所のHTTPリクエスト呼び出し箇所がありますが、いずれも攻撃者がURLを操作できる部分はありませんでした。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;確認用メールが大量に送信できてしまう挙動（リスク評価: ☆☆☆）&lt;ul&gt;
&lt;li&gt;アカウント作成時のメールアドレスの有効性確認メールが何度も再送できる旨をお知らせいただきました。テストとしてNarula氏が50通程度試した形跡が残っています。&lt;/li&gt;
&lt;li&gt;バックエンドで1日あたりの送信数を絞っているので、無限に送信されることはないです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;パスワード変更によって既存のセッションが無効化されない挙動（リスク評価: ★☆☆）&lt;ul&gt;
&lt;li&gt;ユーザーが不正なアクセスを検知した場合に応急的にパスワードを変更しても、不正なセッションを停止できない、などのシナリオが考えられますね。&lt;/li&gt;
&lt;li&gt;ただこの挙動はセッションを破棄する &lt;strong&gt;べき&lt;/strong&gt; という程度のもので、必ずしも危険な脆弱性とはいえないと思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_5"&gt;対応&lt;/h4&gt;
&lt;p&gt;新規アカウントの登録機能を無効化しました。&lt;/p&gt;
&lt;p&gt;アマネイメージズはMediaGoblinで動作しており、アカウントを作成しなければコメントや通報機能を使えないという制限があります。そのため、アカウントの新規登録機能を解放していたのですが、現状ほとんどはCloudflareで弾けるレベルのスパムしか集まっておらず、特にコメント機能も活用されていません。&lt;/p&gt;
&lt;p&gt;写真を上げるのは私だけなので通報機能も重要ではなく、もう登録の口を閉じちゃえば変なことは起こらないかな？という判断です。&lt;/p&gt;
&lt;h3 id="-fghi-pqrs"&gt;&lt;a href="https://fghipqrs.ama.ne.jp/"&gt;無料フィード作成 - FGHI PQRS&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="_6"&gt;報告内容&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;クリックジャッキングを引き起こす設定不備（リスク評価: ☆☆☆）&lt;ul&gt;
&lt;li&gt;OWASP ZAPとかで最初に出てくるやつですね。&lt;/li&gt;
&lt;li&gt;ただ、このサイトはログインもデータ操作も行わないので、全く損害を引き起こしません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_7"&gt;対応&lt;/h4&gt;
&lt;p&gt;今回は特に対応しません。気が向いたら各サイトでまとめて &lt;code&gt;X-Frame-Options: DENY&lt;/code&gt; を設定しようと思います。&lt;/p&gt;
&lt;h2 id="_8"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;1ヶ月くらい放置していたら毎週メールでめちゃ催促されました。LinkedInを見た感じ、セキュリティエンジニアのキャリア七並べ用の取り組みなんでしょうか。一見して大したリスクではなさそうなのが分かったのと、&lt;a href="/post/10th-park/"&gt;PARK10周年記念イベントのファンアート&lt;/a&gt;を作ったりして忙しかったので後回しにしてました。ごめんね。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>単色アイコンの思い出</title><link href="https://ama.ne.jp/post/night-of-i-o/" rel="alternate"/><published>2024-05-07T15:51:00+09:00</published><updated>2025-05-06T23:57:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-05-07:/post/night-of-i-o/</id><summary type="html">&lt;p&gt;単色アイコン元カノ未練タラタラ高学歴マゾ乳首クネクネ性欲童貞（空手経験あり）についての覚え書き&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;本文&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;補足&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#20240507"&gt;2024/05/07&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#20240508"&gt;2024/05/08&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#20240610"&gt;2024/06/10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#20240611-20240628"&gt;2024/06/11 ～ 2024/06/28&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#20240708"&gt;2024/07/08&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#20240711"&gt;2024/07/11&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;本文&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;初対面の単色アイコン元カノ未練タラタラ高学歴マゾ乳首クネクネ性欲童貞（空手経験あり）が周りを格下だと判断して攻撃しまくるのって、散歩するたび知らん人に抱きついて腰振る犬見てるみたいで、ふつうに悲しかった。&lt;br&gt;
&lt;cite&gt;かたぎりあまね（@amane_katagiri）:1787327882676912472&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;後輩のSくんが連れてきたIと名乗る男は、かれが所有しているというXアカウント: Oによれば「乳首で感じるマゾオス東大生」らしい。Iくんは高校中退後に2年間のフリーターを経験したのち、高認（高等学校卒業程度認定試験）を経由して東京大学に進んだ24歳だと自己紹介していたので、少なくとも半分は正しそうだ。乳首マゾなのかについては、結局本人から対面で確認する機会はなかったので、東大生であることをほのめかすための枕詞ギャグだったのかもしれない。&lt;/p&gt;
&lt;p&gt;Iくんは東京生まれ東京育ちのエリートで、少なくとも僕のような&lt;a href="/post/denpa-culcap/"&gt;文化資本の低い人間&lt;/a&gt;よりはるかに豊かな少年時代を送ってきたと想像できる。高校中退から日本の最高峰である東京大学に合格したという経験はIくんにとっては非常に大きな成功体験として刻まれているようで、確かに僕のような三流のU大学出身者は全くもって相手にする価値がないという態度だった。かれの学業への自信を見ていると、専門科目の難解さに耐えられずに地元に戻った同期のKくんを思い出す。Kくんは高校までの勉強は得意だったようだが、東京大学には一歩およばずU大学で妥協したらしく、大学院は東京大学に行って学歴ロンダリングするのだと息巻いていた。かれは1年足らずで虎になって森に帰っていったが、今はどうしているだろうか。&lt;/p&gt;
&lt;p&gt;そのIくんが運用するOは赤い単色アイコンのアカウントで、かれはそのアイコンにある程度アイデンティティを持っているようだった。単色アイコンといえば、数年前に&lt;a href="https://sasatanwwwww.hatenablog.com/entry/2022/04/25/162549"&gt;アイドル育成ゲームのキャラクターがLINEで単色アイコンを使っていたことを分析する記事&lt;/a&gt;を思い出す。僕は単色アイコンのアカウントを運用している人に会ったことがなかったので、その直情的で粗暴な攻撃性の高さに驚いて、感動を忘れないうちにこの日記を書いているわけである。だから、日頃から単色アイコンに慣れ親しんでいる人にとっては、この記事は常識のような当たり前の内容ばかりかもしれない。&lt;/p&gt;
&lt;p&gt;Oは4000人程度のフォロワーを抱えたアカウントで、いわゆる単色アイコンっぽい厭世的かつシニカルでセンスあるポストを売りにしているようだ。Sくんがオフ会の約束をしたというIくんが開いた深夜のスペースでは、Sくん以外のリスナーは全員女性だったようで、よくモテるアカウントなのだとSくんに聞いていた。確かに、ポストのセンスのよさをきっかけにオフ会でセックスする話はよく見かける。しかし、Iくんはどうも過去に1人の女性と付き合ったきり、誰とも関係を持っていないようだ。その元パートナーともセックスの経験はなく、今に至るまで童貞らしい。&lt;/p&gt;
&lt;p&gt;Oのポストを見る限り、Iくんは「元カノ」を神格化しているようで、破局の間際と思われるDMのスクリーンショットを上げたり（クネクネというのがどういう意味なのかは未だに分からないが）、どうも的外れな洞察に基づく後悔を口にしたりしているのを見ると、別れた以降に仲良くなった女性を元カノと比較して拒絶し続けているのかもしれない。Sくんに「きちんとした恋人を見つけろ」「オタサーの姫なんかに時間を使うな」などと強弁する視線の先には、きっと元カノの姿が浮かんでいたはずだ。&lt;/p&gt;
&lt;p&gt;クールで知性的な姿を思わせるXアカウント: Oだったが、駅から会場まで歩いている間に私たちと楽しそうに話すIくんは、単色アイコンを顔に据えたOとはまるで正反対の印象だった。常に周囲の男との序列に気を払い、弱い者を侮りマウントを繰り返し、強い者に付き従うコミュニケーションを得意とする、エロ漫画の端の方に生きていそうないかにもつまらない大学生である。そのようなホモソーシャル・マウンティング社会では、自分が乳首マゾだなんて開示してしまった暁には絶対的最底辺扱いされてしまいそうだが、ひょっとすると性癖の異常さで強さが決まる素敵なコミュニティに所属しているのかもしれない。&lt;/p&gt;
&lt;p&gt;Iくんに僕が「かたぎりあまね」だと名乗ると、「『あまね』って感じじゃないですよね笑」とか「私も昔、◯◯（日本人女性風の名前だったが失念）って名乗ってた頃があるんで、その気持ち分かりますよ～笑」などと、楽しそうに僕の名乗った名前を揶揄し始めた。まともに言語を運用している存在であれば、名前の否定は存在の否定と同義といえる最大限の侮辱のはずなのだが、かれは一体どれだけ低俗な社会生活を送っているのだろうか。&lt;/p&gt;
&lt;p&gt;別に「あまね」などと名乗るアラサーの中肉中背のオタク男に対して客観的に何らかの揶揄が浮かぶこと自体を否定するつもりはないし、それを面と向かって口にする自由もあるだろう。しかし、しばしばそういう人間はコミュニケーションに通常より労力がかかるので、僕はそういう人間とは以降の人生で関わらないようにしている。地面を歩いているだけのふつうの人間なら引っかからないような、いわば透明なハードルとして作用しているのだ。&lt;/p&gt;
&lt;p&gt;会場まで歩いている間も、そして会場に着いてからも、Iくんは会話の中で「こいつは俺より上か下か？」という判断を交えたコミュニケーションを続けていた。より正確に言えば、「こいつらは全員俺より下だからナメた態度でオッケー」という態度だった。SくんがU大学出身で、そして会場にいたのもほぼU大学の関係者だったので、人生の成功が約束された東京大学に通うIくんからは全員が下に見えていたのだろう。&lt;/p&gt;
&lt;p&gt;IくんはSくんと会話する際にとにかくSくんの話を遮って、一方的に主張を押しつけ、さらに酒を飲むよう強要していた。SくんとIくんはほぼ初対面だったはずだが、数時間ですっかりIくんの中には上下関係ができあがっていたわけだ。飲みさしのハイボールに梅酒を注いだ味も分からないだろう酒を飲みながら「昔、空手やってたんで！　U大学のモヤシオタクなんか全員ぶっ飛ばしてやるよ！」などと繰り返す姿は不快を通り越して怒りが沸く。一応言っておくけれど、Iくんは別に強面という感じでもなければ、肌を黒く焼いたりタトゥーやピアスを備えているわけでもない、ただただ肌は白くて黒い髪がもっさりしたモヤシオタクである。&lt;/p&gt;
&lt;p&gt;SくんとIくんがどのように盛り上がってここに来ることになったかは分からないが、いずれにしても、初対面の人間ばかりの場で全員を敵に回すコミュニケーションにどのようなメリットがあるのだろう？　もちろん、かれが持つ東大生の自負から他人を下に見ること自体は止められないが、それをわざわざ態度や口に出すとどのような結果をもたらすか想像できないというのは、Iくんが持っているはずの論理的思考能力を考慮するととどうにも不思議である。&lt;/p&gt;
&lt;p&gt;こういう人間がコミュニティにいるとふつうは空間が疲弊するはずだが、Oのポストを見ると一緒に酒を飲む友人もいるようなので、やはりホモソーシャル・コミュニティでは定番の処世術なのだろう。Iくんと交流のある人はかれをそういう人だと理解して付き合っているはずで、ひょっとすると今回僕たちに見せなかったよいところもあるはずだ。Iくんの友だちがこの記事を読めば「Iくんのよさを知らない性格の悪い人間が書いた文章だ！」と噴き上がるに違いない。これは全くその通りで、Iくんが今回会場で勝手に爆睡してしまったのも含めて、かれのよさを理解できるタイミングは全くなかった。&lt;/p&gt;
&lt;p&gt;Iくんと話しているうちに、かれは単に初対面のコミュニケーションが苦手なだけで、かれなりに「イジり・イジられ」や「プロレス」のように対等なじゃれ合いを演じようとしていているだけなのでは？と感じるタイミングがあった。Sくんを童貞と揶揄しつつIくん自身も童貞だと口走っていたし、同席した参加者にも同様の揶揄を繰り返していたからだ。仲のいい友だちと冗談でディスを交わすことはあるだろうし、距離感を測るのが苦手なだけという説明なら、これ以上付き合いたくはないが納得がいく。&lt;/p&gt;
&lt;p&gt;今思えばあまりに好意的すぎる解釈で、やはり変な首を突っ込むべきではなかったと思う。僕が「Iくんも童貞なの？」と尋ねると形相を変えて突然わめき散らし、話題を変えたかったのか僕の太ももや肩を触りつつ「グラスが空だぞ！」「酒を飲め！」と繰り返した。僕はこの雰囲気でこれ以上酒を飲みたくはなかったので断ったのだが、さらに「潰れるのが怖いんすか～？」と気持ち悪い声で煽り立てる。どこまでいっても予測可能でくだらないことしか言わない、関わると関わった分だけ疲れるというつまらない男である。&lt;/p&gt;
&lt;p&gt;そのタイミングでかれに「場酔い」について説明しても一向に理解してもらえなかったのはかなり印象的だった。何度か質問して聞き出してみると、Iくんは酒を飲ませ、飲まされ、乱痴気騒ぎするだけの飲み会しか知らないのだという。結局のところ、Iくんは同性に対して序列を付け、下位のオスを押さえつけ、上位のオスにへつらい、酒の量で勝ち負けを決めるようなコミュニティしか経験したことがないのである。そして、自分が経験していないもの、かれが学問的な知識として認めないものは何一つ想像も理解もできない、知性からは全く離れた存在だったわけだ。&lt;/p&gt;
&lt;p&gt;ふらつく手で酒を勧めるIくんは、僕のグラスにギリギリまで酒を注ごうとして溢れさせてしまうし、やはり意味不明なちゃんぽんを繰り返すし、挙げ句の果てにはSくんに詰め寄って腕を振り上げた拍子にグラスを床に倒してしまった。そして、酒に強いと自負していたが、疲れていたのかひとしきり怒鳴り終えるとすぐに寝てしまったのである。もはやどうでもいいことだが、Iくんは膵臓に問題があって酒はあまり飲まない方がいいのだそうだ。翌日はふつうに目覚めたようだが、身体に負担のかかる飲み方は避けた方がいい。&lt;/p&gt;
&lt;p&gt;最近は平和なコミュニティで生きてきたので、この世には全く根本から通じ合えない存在がいるということを忘れていた。いかにも日本人の平和ボケという状態だったので、コミュニティを広げるにあたっては平和を守るのが一番苦労するという気付きを得られたのは収穫である。最近は技術系カンファレンスでも間口の広さと治安維持の両立に苦労しているようだし、やはり気を抜くべきではないと思う。井の中の蛙に大海を気付かされる、とはこのことだ。&lt;/p&gt;
&lt;p&gt;この日記を書く際にOのポストを見直したのだが、世界初のメンソールタバコといわれる銘柄の終売について写真付きで語っていたのを見つけた。確かに、寝落ちたIくんは大事そうにそのタバコを握っていた気がする。このタバコが入手できなくなったら、代わりのタバコを探しては元カノと同じように「前のタバコがよかったのに……」と未練と後悔を繰り返すのだろうか。少しずつでも、かれの世界が広がることを願うばかりである。&lt;/p&gt;
&lt;p&gt;明け方、眠っているIくんのスマホに届いた「パーペキ」というスタンプの不敵な笑みが、少しずつ記憶から曖昧に消えていく。楽しそうに他人をバカにしてはばからないIくんの顔も、夏が来るまでには鬱屈した単色アイコンに上書きされて思い出せなくなっているだろう。&lt;/p&gt;
&lt;h2 id="_2"&gt;補足&lt;/h2&gt;
&lt;h3 id="20240507"&gt;2024/05/07&lt;/h3&gt;
&lt;p&gt;Iの身勝手な言動は、この日だけでは終わりませんでした。&lt;/p&gt;
&lt;p&gt;私がこの「単色アイコンの思い出」という記事の&lt;a href="#_1"&gt;本文&lt;/a&gt;を投稿した2024年5月7日の夜、IはXで友人のスペースに参加して意味ありげな溜息や独り言を繰り返しながら、いかに自分が傷付いた無辜な被害者であるかをアピールしていました（お笑いトリオ東京03の「アピール」というコントにかなり近いです）。ただ、周囲はあまり意に介していなかったようで、Iの溜息にはほとんど触れないまま会話が進んでいたのがよく印象に残っています。&lt;/p&gt;
&lt;p&gt;このあたりで私は、Iがインターネット上やリアルの交友関係上でどのような扱いを受けているかについて、またそれがおそらくIの自認しているような世界からは大きく離れていることについて、徐々に理解していきました。&lt;/p&gt;
&lt;h3 id="20240508"&gt;2024/05/08&lt;/h3&gt;
&lt;p&gt;記事を投稿した翌日である2024年5月8日になって、Iは私に抗議の意を示すDMを送ってきました。一晩中かけて文章を推敲していたのか、メモ帳アプリか何かから貼り付けられたメッセージはなんと3000字を超えていました。「酔って迷惑かけたのはゴメンだけど、恥ずかしいから記事消してちょ☆」と書くだけでこの厚み？&lt;/p&gt;
&lt;p&gt;ここからは、この記事の本来の目的に合わせて、単色アイコンのアカウントに潜む攻撃性をしっかりと書き残すために、受け取ったDMの一部を抜粋してコメントを加えていきます。なお、これらのDMはIが作成してXアカウント: Oを通じて送信したもので、&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;かたぎりさん、こんにちは&lt;/p&gt;
&lt;p&gt;投稿されたブログ、拝読いたしました。&lt;br&gt;
私としては書かれていることのほとんどが事実と食い違っているとしか思えないので、その委細を正すことよりも肝心な点にだけ集中して述べたいと思います。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Iは会場に着いた段階でかなり酔っていて、また倒れるように寝落ちてしまったのも踏まえると、客観的に見て自らの振る舞いや周囲の反応について十分に記憶が残っていたとは思えません。これは「事実と食い違っている」というよりも、単に記憶にない言動を書き立てられ、さらにそれがシラフの自分から見て恥ずかしい内容だったため、「その委細を正す」ことはできないけれど、どうにか記事は消してもらうためにDMを送ってきたと考えるのが妥当です。&lt;/p&gt;
&lt;p&gt;現に私が書いた内容は、文章の流れを重視して舞台や周辺情報をぼかしたり、事実を保ったまま時系列を入れ替えたり、また記事のバランスを保つためにさらに過激な言動の一部を省いています。もちろんその一つ一つを指摘して修正させることに価値はないかもしれませんが、違和感を感じる場所はいくつかあったはずです。しかし、Iの主張は基本的に私の記事の流れに基づくもので、「全く記憶にない記事を、理性や社会性を保ったシラフの自分から否定してみた」としか感じられない内容でした。&lt;/p&gt;
&lt;p&gt;しかも、ここには書かれていない言動があったという記憶が少しでもあれば、交渉が決裂して記事が未公開の事実で増補される事態を防ぐために、もう少し気を払うはずです。実際、私はこの記事を当時の録音を書き起こしながら執筆しましたし、あの日の出来事はほぼ構成時に作ったメモに残っています。おかげで、1年たった今でもあの日の出来事はまだよく覚えているし、それらの件についていつでも記載を追加することさえできます。&lt;/p&gt;
&lt;p&gt;しかし、一方のIは自分がかけた迷惑についてはほとんど覚えておらず、自分がどんなリスクを負って強硬な態度に出たのか全く分かっていないようでした。それでも、自分がどんな言動をしたかなんてSくんに一度でも聞けば分かるはずで、それもせずに記事を消すよう長々と主張したのですから、いかにIが自分の交渉力に自信があるのかということを思い知らされました。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ここに書くことは基本的にオフレコでお願いします、私は皆さんのうち数人のお名前と、事が起こった場所の住所を把握していますが、それらについて公にしないのと同様、かたぎりさんにもプライバシーの遵守を求めたいと思います。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;私とDMで交渉を続けるIは、いかに自分が道徳的優位に立っているかのアピールと、それとは矛盾した他人のプライバシーの暴露に関する言及を何度か行いました。そういうくせがあるのでしょう。道徳的優位に立ちつつ酔って他人に無礼を働くというのはかなり無理があると思いますが、Iの中では成立する理屈のようです。&lt;/p&gt;
&lt;p&gt;ここで一応言っておかねばならないと思いますが、仮にIが私への報復と称して他人の個人情報や根拠のない噂を流したり、それをもって何らかの危険に晒した場合は、もちろんIが単独で不法行為を構成します。仮にIがこの記事に対する報復だと主張しても、私がこの記事を公開した事実との間に因果関係は認められないでしょう。&lt;/p&gt;
&lt;p&gt;この「道徳的優位に立つ無辜の被害者」という、何をしても許される無敵の立場を奪取するということにかけては、多くのフォロワーを抱える人気のXアカウント: Oを運用するIの専門領域なのでしょう。私には真似できません。&lt;/p&gt;
&lt;p&gt;ただ、この交渉自体には何らかの後ろめたさがあるのか「基本的にオフレコでお願いします」とあります。私はこのDMを受け取った当時、素直に記事も削除して、もちろんこのDMについても誰にも明かしていませんでした。再三言っているとおり、この記事は単色アイコンの背後に潜む直情的で粗暴な攻撃性について書き残すためのもので、特定の個人を嘘や欺瞞で貶めようなどとは思っていません。そのため、自分の言動に（おそらく）記憶のないまま記事のモチーフにされたIのショックに一定の理解を示した私は、この記事を削除して今後は触れないようにしようと思ったわけです。&lt;/p&gt;
&lt;p&gt;しかし、この思いやりは全くの間違いだったと分かります。このやり取りの数週間後から2024年7月までの1ヶ月ほど、態度を豹変させたIは私にさらなる要求を繰り返しました。私のことを少し脅せば言いなりになる弱い存在だと思ったのか、当初のDMはなかった10万円での示談要求と怒りに任せた強い主張を繰り広げたのです。最終的には無理を通せないと理解したようで、この節の執筆時点（2025年4月）で全くの無反応を貫いています。そのため、この記事に関するIの主張の全ては解決したとみなし、「プライバシーの遵守」なる勝手な要求を受け入れる必要はないと判断しました。&lt;/p&gt;
&lt;p&gt;私がもう少しナメられないコミュニケーションを心がけていれば、こんな補足は書かれなかったかもしれませんし、ひょっとしたらこの記事は消えたままだったかもしれません。でも結局、誰も幸せになりませんでした。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;まず最初に、私は「アラサーの中肉中背のオタク男」だから「あまね」っぽくない、と言った覚えはありません。かたぎりさんがどういう自認を持っておられるのかわかりませんが、容姿や年齢は当初から一切関係がないのではっきり言って困惑しています。話しているなかで「あまね」らしくないと感じたのでそう伝えました、もしそれが不快だったのであれば謝罪しますが、「アラサーの中肉中背男」であることは当初から問題になっていません。（一方で、かたぎりさんの記事には私の容姿や声に対する侮辱が含まれています。「ただただ肌は白くて黒い髪がもっさりしたモヤシオタク」「気持ち悪い声で煽り立てる」等は誰がどう見ても誹謗中傷でしょう。）&lt;/p&gt;
&lt;p&gt;もしかかたぎりさんが名前になんらかの誇りを持っており、「らしくない」と言われることで傷ついたのであればその場で憤りを表明すればいいとしか思えません。自分自身と一体にさえ感じているものを「らしくない」と言われて感情が損なわれるのは私にも十分理解できることですし、それについてその場で謝罪を要求するのは適切な態度だと思います。しかし、怒りを「宵越し」て、ブログ記事で脚色を交えて公に中傷するのはフェアな応答とは言えない、と思います。少なくとも、悪意なくなされたことに悪意で応答しているのだから、どちらが責を負うべき振る舞いであるかは一目瞭然ではないでしょうか。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この部分は全く意味が分かりませんでした。まるで言い訳だらけの謝罪会見でも聞いているようです。&lt;/p&gt;
&lt;p&gt;たとえ「アラサーの中肉中背のオタク男だから否定された」という印象が間違いだったとしても、普通の人であれば侮辱として受け取ることに何ら間違いはないし、それに対して不快感を感じるのもごく自然です。&lt;/p&gt;
&lt;p&gt;しかも、Iが私のどこを指して「『あまね』って感じじゃない」と思ったのかは、以降の主張でも決して明かされませんでした。とにかくそう思っただけだという中身のない主張で終わっています。この「不快だったのであれば謝罪します」という条件付きの謝罪はいろいろなところで見かけますが、これも「私は何も悪くない」と言っているのと変わりません。Iの言葉からは、私の名前を否定したことに対する申し訳なさや後悔は全く感じませんでした。&lt;/p&gt;
&lt;p&gt;結局、わざわざ相手の名前を否定して回る行為にはどのようなメリットがあったのでしょうか？　Iは就職のかかった最終面接でもそんな無礼を働くのでしょうか？　ひょっとしたら、東京大学の図書館には「初対面の人には『なんか名前と印象違いますね』と小馬鹿にしましょう」などと書かれたマナー本があるのかもしれません。もしそうなら、今すぐ有害図書に指定の上で撤去してほしいですね。&lt;/p&gt;
&lt;p&gt;また、「ブログ記事で脚色を交えて公に中傷するのはフェアな応答とは言え」ず、「その場で謝罪を要求するのは適切な態度」だと主張していますが、私はあの日の冒頭からIをモチーフにエッセイを書こうなどと思うはずもなく、数々の無礼の末にこの記事を書くに至ったわけで、時系列が逆転しています。単に名前を否定されたくらいで済めばこの記事が生まれることはなく、それ以降にあった数々の出来事の一つとして並べられたにすぎません。Iが「宵越し」とわざわざ強調しているのは道徳的立場を確保するためなのでしょうが、「怒りを宵越してはいけない」という規範はせいぜい家族や友だち、あるいは同僚とむやみに衝突しないための処世術であって、仲良くなれそうにもない初対面の人間に働かれた無礼をすぐに忘れろと説得するための権威にはなりえません。&lt;/p&gt;
&lt;p&gt;さらに、「悪意なくなされたことに悪意で応答している」というのもIの一方的な主張であって、Iの言葉に悪意がなかった根拠も、私の記事に悪意がある根拠も何一つ示されていません。仮に悪意なく他人の名前を否定したという主張を認めても、Iが私をナメていたという認識を補強するだけです。そうあってほしいという願いを事実のように述べたとしても、「どちらが責を負うべき振る舞いであるか」は決して「一目瞭然」にはなりません。&lt;/p&gt;
&lt;p&gt;Iが「誰がどう見ても誹謗中傷」だと主張する箇所についても、せいぜい穏当な表現ではないかもしれないという程度で、「誰がどう見ても誹謗中傷」というほどのひどい内容とは思えません。多少強い表現に感じる「モヤシオタク」という言葉についても、I自身が放った言葉に対する表現上の応答であるのは明白で、仮に法的な責任を論じるにしても、単語だけではなく前後の文脈を踏まえて判断されることに注意が必要でしょう。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;（省略: あの日の内容に関して参加者に対する揶揄を含んだ900字ほどの弁解を含む段落）&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;今更どうでもいいことですが、僕と皆さんの通っている大学が違うことを問題にしたつもりは一切なかったので「かれが持つ東大生の自負から他人を下に見ること自体は止められないが、それをわざわざ態度や口に出すとどのような結果をもたらすか想像できないというのは、Iくんが持っているはずの論理的思考能力を考慮するととどうにも不思議である」という感想を持たれたことの方が不思議でなりません。U大学が三流であると思ったことは一度もないですし、仮にかたぎりさん自身がそう思われているにせよ、それは他の学生に対して極めて失礼な物言いだと思います。少なくとも、「確かに僕のような三流のU大学出身者は全くもって相手にする価値がないという態度だった」という見方はいくらなんでも僻みすぎではないか、と思われてなりません。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;当たり前です。私はU大学を三流であると思ったことなんて一度もありません。かつて大学が提供していたサービスの盛衰を記事に残すほどには、自分の出身大学に愛着があるつもりです。これはIが東大生であるという点を踏まえて、その態度から漏れ出る内心について記述したもので、この部分を私が出身大学を三流だと主張しているなんて絶対に読めるはずがありません。&lt;/p&gt;
&lt;p&gt;Iが無礼な態度を取り続け、あまつさえ「U大学のモヤシオタクなんか全員ぶっ飛ばしてやるよ！」なんて言い出すものですから、東大生であるIはそう考えているのが自然だ、というだけの記述でしかありません。U大学の他の学生に対して極めて失礼なのはIの方です。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;かたぎりさんの記事と、それにまつわる多くの反応で私は心理的にダメージを負っています。正直言って、何も食べられませんし、ほとんど起き上がることができません。昨日は本来ゼミがあったのですが欠席せざるをえず、かかりつけの心療内科の診察を予定より早めてもらうことになりました。今回の件でのダメージが長引くと、場合によっては卒業論文や就職にまで影響が出ることになります。また、私は配線工事を専門に行う有限会社でも週に数日のアルバイトを行なっているのですが、今週はそれにも出勤できる気配がありません。精神的・金銭的な被害は極めて大きいです。できれば小さく留めたいと考えています。&lt;/p&gt;
&lt;p&gt;私としては記事を削除した上で、発言が事実誤認であると明言していただければなんの問題もなく日常生活に復帰できると考えています。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;奇遇ですね。私もダメージを負いました。仕事で大変忙しくしていた中のゴールデンウィークという楽しみを身勝手な言動で台無しにされ、寝ている間は何も食べられなくなり、ほとんど起き上がることができませんでした。昨日は本来仕事だったのですがリモートワークに切り替えざるをえず、通院は……特にないですね。まぁとにかく、精神的・金銭的な被害は極めて大きかったです。できれば小さく留めたかったのですが、エッセイとしてそのショックを昇華させてもなお、謝罪一つなく記事の削除を強硬に主張されたのですから、私の方は大学生の頃のような日常生活に復帰できそうにもありません。&lt;/p&gt;
&lt;p&gt;それに、この記事には全く「事実誤認」は含まれていません。私はIが主張するような事実誤認や悪質な誹謗中傷だと認めてこの記事を消したわけではなく、ただただIの悲痛な被害を訴える言葉に同情して消しただけです。記事が復活したのは、その同情が間違いだったからにすぎません。&lt;/p&gt;
&lt;p&gt;この記事はあくまで私の目の前で起きた出来事を客観的な録音を元に一つの文章として仕上げただけです。そのため、ここにIを陥れるための嘘や欺瞞を含む必要は全くありません。もし仮に、IがここまでDMで主張したような言い訳じみた不自然な内心が正しく、私の心情理解が誤っていたとしても、あの日にIが表出した言動と私が感じた印象を変えることは決してできません。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;もし民事訴訟になった場合、イニシャルやハンドルネームから個人をどの程度特定できるかが争点になります。私の場合、実社会の友人がフォロワーにかなりいること、インスタグラム等では本名を公開していることから、同定可能性が高いと考えられるようです。はっきり言えば面倒ですし、一時的とはいえ奨学金をこんなことに使いたくもないのですが、今回はやむを得ないケースだと考えています。&lt;/p&gt;
&lt;p&gt;昨日まで知らなかったのですが名誉毀損は刑事罰の対象にもなるようです。立件が難しい事が多いそうですが、ご対応いただけない場合は警察にも一度相談しようと考えています。&lt;br&gt;
また、大学のサークル関連で起こった事件ですので事実確認のためにも大学側にも連絡を行うつもりです。&lt;/p&gt;
&lt;p&gt;今回の件で、かたぎりさんが私に加えた誹謗中傷はどれも悪質なものです。あの場でかたぎりさんがどう感じたのであれ、私の経歴や性的な事柄、過去の交際相手のことまで揶揄して公の場で笑い物にするのは正当な仕打ちとは言えないでしょう。繰り返しますが、かたぎりさんが記事を撤回して発言が誤りであったことを公にしてくれさえすれば、今回の件でこれ以上私が何かを言うことはありません。かたぎりさんの良識ある対応を期待したいと思っています。緑薫り行く春が惜しまれるこの頃、些細なすれ違いから醜い争いに発展することよりも、お互い忘れて季節の変化を楽しむ方が遥かに有意義だと、私にはそう思われてなりません。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;まず、ここまでの通りこの記事が誹謗中傷であるかは全く自明ではありません。IがDMで「誹謗中傷」だと明示していた箇所は、礼儀を欠いた揶揄を含んでいるにせよ、「誰がどう見ても誹謗中傷」というほどのものではありません。そもそもこの記事からXアカウント: Oを同定できる可能性さえかなり微妙なところです。まさか、乳首マゾの東大生は世の中に自分しかいないはずだ、とでも主張するつもりなのでしょうか？&lt;/p&gt;
&lt;p&gt;それに、Iに関する情報の多くはXアカウント: Oから何の認証もなく誰でも読み取れる事実であって、それを記載するだけでは直ちに悪質とはいえないと思います。Iがあの日私に開示した情報についても、明かした相手が何ら素性の知れない初対面の人間であることを踏まえれば、このような記事を書くにあたって公開するのが躊躇われるほどの配慮が必要なものは含まれていませんでした。&lt;/p&gt;
&lt;p&gt;また、私がこの記事を特定の個人について笑いものにする気など全くなく、単色アイコンのアカウントに潜む攻撃性を架空のエッセイとして示すものにすぎないというのはここまで言っているとおりです。仮にIがこの記事から自分が笑いものにされている印象を受けたとすれば、I自身が自らの身勝手な言動を恥じているという何よりの証拠になるでしょう。&lt;/p&gt;
&lt;p&gt;最後の「緑薫り行く春が惜しまれるこの頃……」というあいさつから、筆が乗って素敵なことを書きたくなった様子が見えてとても好印象ですね。ついでに冒頭にも仰々しいあいさつ文でも付けておけば、もっといいお手紙になったかもしれません。&lt;/p&gt;
&lt;p&gt;以上、2024年5月8日にXアカウント: Oを通じて送られたIの主張は、私が要求に応じて記事を削除したことでいったん解決しました。次のDMが届くまではおよそ1ヶ月待たねばなりません。&lt;/p&gt;
&lt;h3 id="20240610"&gt;2024/06/10&lt;/h3&gt;
&lt;p&gt;記事の削除から約1ヶ月が経過した2024年6月10日になって、Iからの新たな要求が始まりました。要約すると、「この記事のアーカイブが取られていたのを見つけた。消せないなら10万円払え」という主張のようです。引き続きコメントを入れつつDMを抜粋します。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;かたぎりさん、こんにちは&lt;br&gt;
お久しぶりです、お元気にしておられましたでしょうか。大変残念なことですが、「これに関してまた問題が」実際に発生してしまったので、ご連絡差し上げました。&lt;/p&gt;
&lt;p&gt;というのも、第三者によって魚拓が取られていたからです。&lt;br&gt;
https://archive.md/...&lt;br&gt;
これが拡散されていると別の方から教えていただきました。このURLを貼って私に対する中傷を繰り返すアカウントが存在しているようです。結局のところ、元記事が削除されてもこちらが拡散されているのであれば僕の置かれている状況は変わりません。&lt;br&gt;
つまり、相変わらずかたぎりさんに端を発する誹謗中傷は続いており、精神的・金銭的な被害も（削除前よりはマシであるとしても）依然として残っているわけです。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Iが確実に記事を消し去りたいと思っているなら、当然にアーカイブサイトを確認するはずです。知識不足をあげつらうつもりはありませんが、1ヶ月も放置した上で他人の指摘でやっと気付くなど、控えめに言っても大変な怠慢だと指摘せざるをえません。私はあまねけ！に掲載された記事の削除しか要求されていませんし、それに従った時点で前回の交渉は完了しています。Iが1ヶ月放置していた時点で私の対応には納得していたはずであり、突然蒸し返すのは本当に意味不明でした。そもそも、私にとっては誰かがアーカイブを取っていようが知ったことではありませんし、アーカイブサイトを探す義務はおろか、アーカイブを見つけたとしてもIに報告する義務さえありません。もともと強硬な態度で削除を要求してきたのですから、そういう気遣いや優しさを受けられるわけがないのです。&lt;/p&gt;
&lt;p&gt;また、Iは以降のDMで私がアーカイブを黙認しており、半ば記事を公開状態にしているという疑いをかけてきたのですが、あまねけ！の記事がどのようにアーカイブされているかなんて私にはどうでもいいことです。何にせよ、私は記事を削除した時点でIの要求への対応を終えています。私は仮にIが自分自身でアーカイブを取っていて、後から自作自演で騒ぎ立てていても確認しようがありません。アーカイブの削除なんてどうでもよく、私に受けた &lt;em&gt;被害&lt;/em&gt; を &lt;em&gt;回復&lt;/em&gt; するために言いがかりを付けてきたとしても、私がその真意を明かすことはできないでしょう。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;私からかたぎりさんにお願いしたいことは一つです。著作権者として、当該アーカイブに削除依頼を出してもらえませんでしょうか。&lt;br&gt;
archive todayは削除申請に応じないことで有名なようですが、一旦はそうしていただくほかありません。&lt;/p&gt;
&lt;p&gt;もしそれでも削除がなされないのであれば、やむを得ないことですが以前にお話しした対応策（警察への相談、民事訴訟、大学への連絡）を行うつもりです。私にも一時的な金銭的・時間的な負担が発生するので避けたいのですが、こうなってしまった以上は仕方ないことだと思っています。魚拓等でも被害の証拠として機能することはすでに確認ができています。&lt;br&gt;
ただ、私も正直に言えばこんなことで疲弊したいわけではないので、示談で済ませてもよいと考えています。こちらからは個人に対する誹謗中傷での示談金の相場の最低ラインである10万円を提示しますが、相談には応じる構えです。どちらにせよ、アーカイブが削除されるのであればこれらはすべて関係のない話です。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;削除依頼くらいならメール出すだけだし手伝おうか……と思って読み進めましたが、突然飛び出した10万円で示談しろという要求を見て、そんな優しい気分はすっかり吹き飛びました。これまで私が取っていた態度がIを付け上がらせる誤ったものだったと理解して、記事の再公開と補足の記載を検討しはじめたのはこの頃です。&lt;/p&gt;
&lt;p&gt;アーカイブサイトの中でもarchive todayからの削除は非常に手間がかかりますし、成功率も非常に低いという事実はIも知っているようですから、この要求が無理難題を突き付けて訴訟か示談かを選ばせるものだということは明白でした。ただし、この記事が法的責任を追及できる内容だというのは、あくまでIの主張の域を出ない仮定の話でしかありません。この記事が私の単なる架空のエッセイなら、最低額だと言い張る10万円の要求さえ全く根拠がないわけです。しかしここからIは、まるで私の負うべき法的責任が確定しているような口ぶりで、荒唐無稽な金銭の要求を続けることになります。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;また、ここでお話ししていることも含めて、ツイート等で触れないでいただくようにお願いします。私との会話の内容も部外秘であることは前回お願いした通りです。私も本名や住所を含めた皆さんの個人情報は秘匿しています。&lt;/p&gt;
&lt;p&gt;お忙しいところ恐縮ですが、ご連絡の程よろしくお願いします。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;自分が道徳的優位に立っていることのアピールも忘れません。本当にIが無辜の被害者なら、そもそも酔って他人に無礼を働きませんし、このように関係のない他人のプライバシーを唐突に交渉の舞台に上げたりしないでしょう。私の記事の公開と他人のプライバシーの暴露は全く関係のない行為であって、まるで双務的な約束のように並べ立てるのは非常に不適切なやり方です。&lt;/p&gt;
&lt;h3 id="20240611-20240628"&gt;2024/06/11 ～ 2024/06/28&lt;/h3&gt;
&lt;p&gt;█████████████&lt;/p&gt;
&lt;p&gt;この期間中、Iから約2週間にわたって上記記事本文のアーカイブを削除しなければ法的措置を取るという旨の強硬な要求が続きました。これらの主張や要求を含む非公開のメッセージについては、2025年5月以降に順次この記事に掲載予定です。&lt;/p&gt;
&lt;h3 id="20240708"&gt;2024/07/08&lt;/h3&gt;
&lt;p&gt;2024年6月28日から10日ほど放置したところ、2024年7月8日に催促のDMが届きました。これまでの比較的穏やかなやり取りとは異なり、後半になるとかなり強い口調で私に責任を取るよう迫ってきます。既にあの日から1ヶ月ほど経っていたこともあり、I自身は（おそらく）もともと記憶にない事実関係や、それが相手に与えた印象などはどうでもよくなっていて、もはや「何もしていないのに一方的に誹謗中傷を受けて傷つけられた」というとても強い被害者意識しか残っていないようでした。これは、Iが事実と願いを織り交ぜた理不尽な要求を繰り返しているうちに、自分の言葉で自身の認識まで書き換えてしまった、とさえ表現できるかもしれません。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;一応10日は待ったんですが、音沙汰はありましたか？&lt;/p&gt;
&lt;p&gt;archive todayが削除請求に応じづらいことは私も知っています、ただ一般的にアーカイブサイトは10日以内には何らかのレスポンスを返すようなので10日待ってみましたが、現時点で見込みが薄いようであれば次のステップに移らざるをえません。&lt;/p&gt;
&lt;p&gt;アーカイブはすでに広く拡散されており、たとえば1年近く経ってから記事が削除されたところで被害を小さく留めることは不可能でしょう。その時点ですでに取り返しつかないほど名誉が毀損されてしまっているでしょうし、また別の形（スクリーンショットなど）でも再保存されてしまっていることでしょう。&lt;br&gt;
記事が削除されさえすればいいのではなかったのか、と言われましても現に魚拓として拡散が続いてる以上は厳密に削除されたとは言い難いでしょうし、当初の段階で双方に予想できなかった事態が起きてしまったのですから新しい対応を求めるのは当然のことです。少なくとも、「これに関係してまた何か問題がありましたら、その際はよろしくお願いします。」と伝えていたはずです。&lt;/p&gt;
&lt;p&gt;かたぎりさんは同じ文章のなかで「期限を切られると（…）削除に前向きな連絡が返ってきても対応できません」と言いながら、「法的措置というカードがなければ私が削除要請に取り組まないとお思いなのかもしれませんが、サイト管理者として協力しますというのは繰り返し言っている通り」とも仰っていて、法的措置を受けるなら対応するつもりはないのか、あるいはどのみち対応するのかはっきりしないですね。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;こめかみに銃口を突き付けられながら協力するつもりはない、というだけの言葉を理解できないのはとても不思議ですね。頑張ってIに「場酔い」について説明したのを思い出します。私は、サイト管理者がメールを送らないといけないなら協力するよ、と言っているだけです。ここに私が記事を公開した責任だとか、記事をこの世から完全に消し去る義務感などは一切ありません。善意での協力に法的措置を持ち出されるなら、その善意は消え失せて当然でしょう。&lt;/p&gt;
&lt;p&gt;センスあるポストを組み立てる頭の良さを活かして、やり取りしている相手の気持ちくらいもう少し理解してほしいところです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;期限を切られると対応できない、というのは反省している人間の物言いでないと感じます。&lt;br&gt;
かたぎりさんは根本的に誤解しておられると思うのですが、私は今回受けた不当な仕打ちについてはっきり憤っています。飲み会で不愉快な思いをしたのは私も同じですが、その程度のことでの私の経歴や容姿、性的な事柄、過去の交際相手のことまで公の場で中傷することが正当化されるわけではないですし、正直にいえば卑劣だなとさえ思います。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Iも根本的に誤解しておられると思うのですが、私はこの記事を書いたことについて一切「反省」の意を示したつもりはありません。&lt;/p&gt;
&lt;p&gt;この記事を削除したのはIがショックで寝込んだと言い張ってきたからで、こうして記事が復活したのはIが私の態度を見て付け上がったからです。記事の内容とは全く関係ありません。Iがこの記事を読んで卑劣だと思うのは勝手ですが、それで他人への無礼が打ち消せるわけではありません。Iは私が善意で記事を削除したり、アーカイブの削除依頼を出していたのを、結局のところ訴訟の恐怖に震え上がって仕方なくやったと思っているのでしょう。&lt;/p&gt;
&lt;p&gt;こうした善意を台無しにすれば、Iが切望していると主張していたはずの記事の削除からどんどん遠のくはずなのに、一体何がしたいのか最後まで理解できませんでした。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;私はあなた方に何をされたとしても皆さんの住所を含めた個人情報を晒したりはしないですし、インターネット上で中傷することもありません。かたぎりさんが個人で行ったことについてはきちんと責任をとっていただきたいと考えており、繰り返しますがそうしようと思うなら私にとっては次のステップに移るのは早い方がいいはずです。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Iの本名や住所は記事の中で一切明かされていませんし、私の行為の対比として他人のプライバシーを明かさないという謎の宣言を並べるのはやはり意味不明です。即物的な心理学的テクニック本にでも載っていそうな構文ですが、これが通じるのはせいぜい記録を残さない口頭でのやり取りくらいではないでしょうか。もう一度言っておきますが、私への報復として他人のプライバシーを明かすことは全く因果関係の認められない卑劣な行為です。当たり前の宣言をまるで道徳的な振る舞いのように書き並べる意味が分かりません。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;このまま「削除申請を続けています」と口で言い続ければ逃げられると思っているのかもしれませんが、今のまま静観することは絶対にありません。&lt;br&gt;
&lt;cite&gt;Xアカウント: Oのメッセージ&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;こう吐き捨てられたのを確認したのち、私はXアカウント: Oをブロックしました。その直後からI（と思われる人物）は、数日にわたって&lt;a href="/contact/"&gt;ごれんらく&lt;/a&gt;記載の電話番号へ非通知発信を繰り返しましたが、これらには一切応答しませんでした。&lt;/p&gt;
&lt;h3 id="20240711"&gt;2024/07/11&lt;/h3&gt;
&lt;p&gt;それからI（と思われる人物）は、2024年7月11日に&lt;a href="/comment/202407111837/"&gt;以下のコメント&lt;/a&gt;を投稿しました。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;残念ですがご理解いただけなかったようなのであらかじめお伝えしていたとおり、7/15から大学・警察へのご相談と開示請求に移らせていただきます。それまでに示談に応じていただけるのであれば示談書を交わした上で刑事・民事ともに今後一切を不問に付します（これも以前お伝えしましたが、相場の最低ラインである10万円をこちらからは提示します）。ブロックを解除し、示談に応じていただくのが双方にとって最もよい選択肢だと私は信じていますが、なお誹謗中傷を続けるのであればそれがかたぎりさんの態度表明であると理解します。それでは、よろしくお願いします。&lt;br&gt;
&lt;cite&gt;&lt;a href="/comment/202407111837/"&gt;comment:202407111837&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;しかし、2025年4月時点で、Iが言うような法的措置から当然に予測できる大学からの連絡やプロバイダからの意見照会書は全く届いていません。2024年末にはXアカウント: Oのブロックを解除しましたが、以降は新たな要求どころかこれまでの荒唐無稽な主張に関する弁解さえ送られてきません。法的措置というのが言葉だけの強がりか、実際に弁護士なりに相談しても全く取り合ってもらえる水準になかったのか（これは記事をどう読み返しても当たり前のことです）は分かりません。ただ、Iが真っ赤な単色アイコンのXアカウント: Oに身を隠して育てたシニカルで尊大な自意識が、現実世界に飛び出してくることは決してないでしょう。&lt;/p&gt;
&lt;p&gt;もしも、まだIが「今のまま静観すること」なく警察・弁護士・大学への相談を続けているなら、この記事を追及するのはもう諦めて、その時間とお金を次に会う他人への言動を改善するために使ってほしいと願うばかりです。&lt;/p&gt;
&lt;p&gt;Xが攻撃的な言論空間を維持することに自覚的になって以降、自分の気に入らない主張の粗を探してなりふり構わず突いたり、誹謗中傷や侮辱だと一方的に主張してスラップまがいの威嚇を繰り返すことが一般的になりました。私たちはこのような他人を疲弊させるだけの存在に関わったり、あまつさえ実際に会ったりすることなどないよう、よくよく注意しなければいけません。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>2024/04/02～2024/05/02</title><link href="https://ama.ne.jp/post/report-20240502/" rel="alternate"/><published>2024-05-02T17:58:00+09:00</published><updated>2024-05-02T17:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-05-02:/post/report-20240502/</id><summary type="html">&lt;p&gt;2024/04/02～2024/05/02のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/"&gt;トップページ&lt;/a&gt;で「More infomation...」をクリックしたときのリンク先を&lt;a href="https://fedibird.com/@amane"&gt;@amane@fedibird.com&lt;/a&gt;に変更しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/10th-park/"&gt;10th PARK road side&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.park-harajuku.com/"&gt;原宿にあるPARKというお店&lt;/a&gt;が&lt;a href="https://www.park-harajuku.com/topics/4054/"&gt;10周年にあたってファンアートを募集&lt;/a&gt;していたので、それに合わせた特別編です。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.park-harajuku.com/character/"&gt;須藤りと・綿紬ことこ・白子まり&lt;/a&gt;というPARKのオリジナルキャラクーの関係や日常についてのお話で、この3人は過去に&lt;a href="https://hentaigirls.net/book/sugar-jelly/"&gt;Sugar Jelly&lt;/a&gt;という作品でも扱っています。興味があれば読むべきです。&lt;/li&gt;
&lt;li&gt;パンツ、廃墟、サニタリーポーチ、シャンプー、クラゲ、Tシャツ、グラフィティ、結婚観、お酒、ポリャモリ、レズ風俗、長女、ぎょにそ、バスボム、残り物ミックスサンド、万引き、パチスロ必勝法、副業、ホメオパシー、激安バッグ、今すぐ&lt;/li&gt;
&lt;li&gt;今年は毎月1本おはなしを投稿していこうと思っています。5月にずれ込みましたが、これは4月分ということにします。今後の投稿が遅れないよう、ぜひ「読んだ」ボタンや&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;で応援してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>10th PARK road side</title><link href="https://ama.ne.jp/post/10th-park/" rel="alternate"/><published>2024-05-01T23:58:00+09:00</published><updated>2024-05-27T17:49:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-05-01:/post/10th-park/</id><summary type="html">&lt;p&gt;今年も軽自動車ぎゅうぎゅう旅が始まります！&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品はURAHARAおよびPARK Harajuku: Crisis Team!を元にしたファン・フィクションです。これらの作品の公式設定を追加または削除したり、置き換えたりするものではありません。 */&lt;/p&gt;
&lt;p&gt;/* この作品は&lt;a href="https://www.park-harajuku.com/topics/4054/"&gt;PARK10周年記念イベント&lt;/a&gt;のために書かれました。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img alt="~りとことまりの軽自動車ぎゅうぎゅう旅" height="852" src="/images/10th-park/top.png" width="600"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.pixiv.net/artworks/119117804"&gt;りとことまりの軽自動車ぎゅうぎゅう旅&lt;/a&gt; by ごまふわラビ&lt;sup id="fnref:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="このイラストはCC BY 4.0でライセンスされていません。"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;川崎駅（西口）&lt;/h2&gt;
&lt;p&gt;川崎駅の西口乗降所で腕時計を見ながら迎えを待っていたまりが、突然目の前に止まった車に少し身構えたのは、その小さな白い軽自動車の姿が彼女の予想からかけ離れていたせいだ。既に約束の10時からは20分ほどが過ぎていて、直接日差しが当たらない連絡橋の下に立っていても、左右から流れる空気は初夏の匂いをまとっている。&lt;/p&gt;
&lt;p&gt;まりはまるで無関係な車だと思ってしばらく訝しんでいたが、助手席の窓を開けて現れたのは「まりちゃん、おはよ～！」と手を振ることこの姿だった。白いブラウスに重ねられたネイビーのチルデンニットベストは、薄手で編みが軽やかな生地のおかげか、この陽気の中でも動きやすそうである。&lt;/p&gt;
&lt;p&gt;「あ、あら、おはよう……ことこ」&lt;/p&gt;
&lt;p&gt;「まり、ごめん。道が混んでてちょっと遅れちゃった」&lt;/p&gt;
&lt;p&gt;薄緑色の偏光グラスを外したりとが、ことこの横から顔を出す。どこかの古い外国企業のものらしい大きくて派手なロゴの入ったオーバーサイズの綿Tシャツは、先日代々木公園のフリーマーケットで手に入れたものだ。厚手の生地がよくこなれていて、ことこのニットベストとは逆にどっしりとした存在感がある。&lt;/p&gt;
&lt;p&gt;「気にしてないわよ。うん、大丈夫」&lt;/p&gt;
&lt;p&gt;2人に向ける笑顔がひきつるまりだったが、その言葉自体に嘘はなかった。わざわざ目的地と正反対の川崎まで迎えに来てもらっている以上、数十分ほどの遅刻を咎める気はなかったし、浜辺で花火を楽しめるゴールデンタイムはまだまだ先である。&lt;/p&gt;
&lt;p&gt;まりの頭を悩ませていたのは遅刻ではなく、小さな目の前の車そのものだ。りとは滑り込みで偶然安く借りられたこの車を気に入っていたようだが、まりにはただの年季の入った軽自動車にしか見えない。ふわりとしたアイスブルーの生地にホワイトローズをあしらったジャンパースカートと、レースたっぷりの日傘を備えたエレガントなクラロリ姿に、こんなちんちくりんでゴツゴツした車なんて似合わない――とまりは思った。&lt;/p&gt;
&lt;p&gt;まりの美的センスには合わない見た目はもちろん、自宅からここまで引いてきたキャリーケースもそれなりの大きさで、既に2人の荷物で半分ほどが埋まった荷室に収まる様子が全く想像できないのも気がかりである。まりの目には後部座席も荷室のおまけみたいな狭さに映っていて、こんな場所に詰め込まれたらスカートにしわができるのではないか、と心配になった。&lt;/p&gt;
&lt;p&gt;「ねぇ、ことこ。荷物を乗せたいんだけど、手伝ってくれるかしら？」&lt;/p&gt;
&lt;p&gt;「うん、分かった！」&lt;/p&gt;
&lt;p&gt;「ちょっと大きなキャリーで来ちゃったから、隙間がなくって――あ、入るのね。それなら……うん、よかったわ。ありがと」&lt;/p&gt;
&lt;p&gt;こんな車に3人も乗れるものか、と荷室の現状を見せてことこを味方につけるつもりのまりだったが、バックドアを開けると意外にも荷室は広々としている。ことこがてきぱきと荷物の向きを揃えて整理し終えると、まだスケボーがもう2本くらいなら縦に収まるほどのスペースが残っていた。&lt;/p&gt;
&lt;p&gt;後部座席も最初の印象よりは広かったようで、日傘を畳んでおそるおそる乗り込んだまりは、2人分の席ならぎりぎり座っていられるわね、と胸を撫で下ろした。とはいえ、やはり快適にはほど遠い。前のシートや左右のドアから感じる圧迫感を隠しきれない中で、優雅なスカートの裾を座面いっぱいに広げて座るまりの姿は、さながら狭い路地裏でピクニックに興じるお嬢様のような退廃を思わせた。&lt;/p&gt;
&lt;p&gt;「じゃあ、いったん環七まで戻ろうかな。あとは6号線に乗れば流れで着くよ」&lt;/p&gt;
&lt;p&gt;「オッケー。目的地設定しちゃうね。まりちゃんは先に行きたいところある？　あ、花火グッズは揃ってるよ」&lt;/p&gt;
&lt;p&gt;「そ、そうね……今はいいわ。途中でどこか寄りたくなったら、任せてもいい？」&lt;/p&gt;
&lt;p&gt;「うん、分かった！」&lt;/p&gt;
&lt;p&gt;乗降所から車を転回して東京方面へ。多摩川を渡る車内から窓越しの河川敷を眺めていたまりが、ふぅと一息ついた。やっとこの状況に慣れてきたようで、身代金目的で誘拐された令嬢ってこんな気分なのかしらなんて思いつつ、前に座る2人に向かって不満をこぼし始める。&lt;/p&gt;
&lt;p&gt;「ねぇ、りと、ことこ。もっと大きな車、借りられなかったの？」&lt;/p&gt;
&lt;p&gt;「これ？　ワークスの8代目がレンタカーに出てたから、なんか面白くて借りちゃった」&lt;/p&gt;
&lt;p&gt;「あのね、アルトワークスっていう10年前くらいの車で、昔は軽ホットハッチってジャンルで人気だったみたい。軽くて小さいけどちゃんと馬力があるんだよ」&lt;/p&gt;
&lt;p&gt;「馬力？　ことこ、そうじゃなくて……いや、忘れてたわ。りとってこういうちっちゃい車ばっかり選ぶわよね。卒業旅行の時もそうだったもの！」&lt;/p&gt;
&lt;p&gt;最後に3人で旅行に行ったのはもう3年も前のことで、ことことまりの卒業に合わせた卒業旅行だった。卒業とは関係のなかったりとも「じゃあ、今年でフリーターは卒業ってことで」と参加を決めたので、無事に3人での旅行が実現したのだ。3泊4日という長期のレンタカー費用を抑えるために、格安店を探してボロボロの軽自動車を借りたものだった。&lt;/p&gt;
&lt;p&gt;ちなみに、3年前にそんな宣言をしたりとは、もちろん今もちょこちょこバイトをしたりイラストを売ったりして気ままなフリーター生活を送っている。&lt;/p&gt;
&lt;p&gt;まりには、この狭くてよく揺れる上にうるさい軽自動車がどれほど珍しい車なのかは全く分からない。そもそも3人のうちで一人だけ運転免許を持っていないせいもあり、自動車そのものにさほど興味がなかったのだ。りとのスクーターに同乗する時は少し心地よささえ覚えるエンジン音も、今日はどうも耳障りな響きが残って腰が落ち着かない。&lt;/p&gt;
&lt;p&gt;「3人なんだからこれくらいでいいじゃん。加速もよくて楽しいし。まりはどんな車がいいわけ？」&lt;/p&gt;
&lt;p&gt;「大きい方がゆとりがあっていいに決まってるわ。家ではパパが、えぇと……ボクシーに乗ってるの」&lt;/p&gt;
&lt;p&gt;「ヴォクシーね。やっぱ3人で乗るには燃費悪いかな」&lt;/p&gt;
&lt;p&gt;「じゃあ、カボチャの馬車にしましょ。これなら給油の必要はないわ」&lt;/p&gt;
&lt;p&gt;「馬は公道走れないでしょ」&lt;/p&gt;
&lt;p&gt;「いや、りとちゃん。馬車は軽車両の扱いだから、ちゃんと訓練すれば走れるよ！　でも、ニンジン代を考えたらガソリン車よりも高くなるかも。まりちゃん、ちょっと計算してみてもいい？」&lt;/p&gt;
&lt;p&gt;「ことこ、言っておくけど冗談よ？」&lt;/p&gt;
&lt;p&gt;「うん、私も冗談だよ！」&lt;/p&gt;
&lt;p&gt;いつもなら、ここからさらに「ニンジンを目の前にぶら下げたらお金もかからないわ」なんて飛び出しそうなところだが、まりは代わりにわざとらしいため息をつく。ちょうど道路の少し大きな段差を拾って座席が揺れたせいで、車の小ささを改めて味わうことになったからだ。まりは乱れた呼吸を整えるように、そっとスカートの裾を押さえた。&lt;/p&gt;
&lt;p&gt;「じゃあ……つまり、ただ面白かったってだけで、この狭くてカーナビもETCもついてない &lt;em&gt;マニア&lt;/em&gt; 向けの車を借りてきたの？　本気で？」&lt;/p&gt;
&lt;p&gt;「カーナビは、ことこがやってくれるもんね？」&lt;/p&gt;
&lt;p&gt;「うん、ナビは任せて！　このアプリ、最新の渋滞予測システムが入ってるんだよ！」&lt;/p&gt;
&lt;p&gt;地図が表示されたタブレットを持ち上げて振り向いたことこが、そう言ってまりに笑いかける。ETCもまともなカーオーディオもない中で、まりに「それなら、いいけど……」なんて言わせてしまうのは、ことこの魅力があってこそだろう。もしもここにことこがいなければ、車を降りるまでどうでもいい口論が続いていたところである。&lt;/p&gt;
&lt;p&gt;「りと、タバコだけは絶対吸わないでよね」&lt;/p&gt;
&lt;p&gt;「禁煙車だから大丈夫だよ」&lt;/p&gt;
&lt;p&gt;「あんたね――いや……まぁ、いいわ。運転よろしくね」&lt;/p&gt;
&lt;p&gt;昔りととまりの2人で行った突発の旅行で、りとが禁煙室なのを忘れてうっかりタバコを吸ったプチ事件を忘れたのかしら。そう皮肉を刺そうとしたまりだったが、ことこが知らないエピソードを持ち出したら余計に話がこじれそうなので口をつぐんだ。&lt;/p&gt;
&lt;p&gt;そもそも、りととことこがまともな車さえ借りていればこんな心配する必要もなかったのに、とまりは狭い天井を見仰いでため息をつく。なんだか没落貴族みたい。あぁ、どうしてこんなことに――&lt;/p&gt;
&lt;h2 id="park"&gt;PARK（前日）&lt;/h2&gt;
&lt;p&gt;「ねぇ、りと、ことこ。明日、3人で海を見に行かない？　夏を先取りするの。浜辺で花火なんてどうかしら？」&lt;/p&gt;
&lt;p&gt;そう提案したのは、まりだった。梅雨すら迎えていないゴールデンウィーク直前の4月下旬に「夏を先取り」というのはいささか早すぎるけれど、SNSではそういうひと味違った投稿が注目を集めるものだ。春の陽気をのびのび楽しむ投稿の横で線香花火をパチパチさせれば、きっとみんな目を奪われるに違いない。それに、まりがどうしてもゴールデンウィークに合わせて投稿したい理由は他にもあった。&lt;/p&gt;
&lt;p&gt;ちょうどレジ締めを終えて帰り支度を始めたりとは、「んー、いいじゃん」とまりに向き直らないまま生返事で答える。りとは、きっとPARKの10周年記念企画のネタ集めだろうな、とまりの思惑を既に見抜いていて、そのせいで少しだけ億劫な気持ちになっていた。まりがPARKのInstagramで #りとまり 写真を投稿する時は、いつもポーズがどうの立ち位置がどうのと時間がかかって面倒だったからだ。&lt;/p&gt;
&lt;p&gt;結局いつも、カメラに目線も合わせない無表情のりとと、ばっちり笑顔で視線を送るまりという謎の構図が生まれてしまうのだが、それはそれで2人の良さが表れていて人気がある。 #りとまり の中でも特に「いいね」が多かったラブホ女子会での投稿は、実はことこもかなり気に入っているらしい。&lt;/p&gt;
&lt;p&gt;「はーい、行く行く！　3人で遠出って久しぶりだよね。私、海も花火も大好き！」&lt;/p&gt;
&lt;p&gt;外から戻ってきたばかりのことこが、右手を上げて飛び跳ねながらそう答えた。脇に抱えたスタンド看板には「PARKはなんと10周年！」とセールやイベントを予告するポスターが貼られている。看板をがたがた鳴らしながら「楽しみ！」「嬉しい！」「大好き！」と全身で喜びを表現することこは、どうやらまだ10周年企画の撮影が目的だとは分かっていないようだ。しかし、ことこはりとと違ってまりのSNS運営に協力的だから、企画のことを聞いたらむしろ喜ぶに違いない。&lt;/p&gt;
&lt;p&gt;ことこの言うとおり、ここ数年はりとことまりの3人で旅行に行く機会がなかった。PARKでの仕事の後にご飯に行ったり、休日にせいぜい都内で済むような買い物に行っていたくらいだ。まりは専門学校を出てすぐはデザイナーの修行で忙しく、PARKに来る頻度も2人に比べれば少なかったし、何度か予定を合わせようとしたものの、今度はまりの休みにことこの学会参加が重なったりしてなかなか実現しなかったのだ。だから、ことこにとっては日帰りの旅行でも飛び上がって喜ぶ一大事である。&lt;/p&gt;
&lt;p&gt;「まりちゃん、誘ってくれてありがとね！　すっごく楽しみだよ！」&lt;/p&gt;
&lt;p&gt;「そ、そう？　そんなに喜んでもらえるなら、嬉しいわ。りとも来るわよね？」&lt;/p&gt;
&lt;p&gt;「あ……でも、りとちゃん、明日、タバコ屋さんのバイトじゃなかった？」&lt;/p&gt;
&lt;p&gt;「私は平気。もともと暇な時だけ行く約束だったし。休むってLINEしておくから」&lt;/p&gt;
&lt;p&gt;りとは叔父が経営する新宿のタバコ屋で、小遣い稼ぎ程度の手伝いをしていた。叔父が不在の日に店番を務めるというだけで、やることはPARKでの仕事とあまり変わらない。タバコ屋と言いつつ、効能のよく分からないお茶やエスニックハーブ抽出物、出所の知れない天然の毛皮を使ったふわふわのキーホルダーも取り扱っていて、しかしそれらが合法なのかはよく分からないまま棚に並べられている。&lt;/p&gt;
&lt;p&gt;座っているだけでお金がもらえるから楽だというりとの半分冗談混じりの説明と、新宿歌舞伎町の路地の奥にあるという立地を踏まえれば、おそらく怪しい店であることだけは確かだった。密かにことこが毛皮のキーホルダーをDNA分析にかけたところ、ワシントン条約で保護された動物の可能性がある、という結果が出たことについてはここで触れておくべきだろう。&lt;/p&gt;
&lt;p&gt;りとはしばしば面倒な仕事をこのバイトを言い訳に断っていたが、今日はこの突発の旅行を優先するようだ。10周年の撮影企画自体には気が乗らないりとも、今回ばかりは3人で過ごす時間が楽しみなのだろう。&lt;/p&gt;
&lt;p&gt;「じゃあ、決まりね！　りと、車は任せていいかしら？」&lt;/p&gt;
&lt;p&gt;「オッケー。川崎まで拾いに行った方がよさそう？」&lt;/p&gt;
&lt;p&gt;「そうね。ちょっと準備もあるし、駅前まで来てくれる？」&lt;/p&gt;
&lt;p&gt;「えーっと、ことこは中野集合でいい？　前に使ったレンタカー屋でいいかなって思ってて。あそこならスクーター出さなくて済むし」&lt;/p&gt;
&lt;p&gt;「アーケードを抜けて左に行ったところだよね？　うん、大丈夫だよ！」&lt;/p&gt;
&lt;p&gt;りとが持っている125ccのスクーターは、ことこの手で大幅な改造が加えられているが、見た目では分からない。わずかに燃費が悪いことを除けば、街中を走っていてもバレるわけがない、とことこは主張している。&lt;/p&gt;
&lt;p&gt;実際、りとがよくスクーターと街の風景をInstagramに投稿していたが、確かに気付かれる様子はないようだ。それに、 #りとまり や #りとこと でのちょっとした遠出ならこのスクーターの出番で、何度もいろいろな場所を走っているが、やはり咎められたことはなかった。&lt;/p&gt;
&lt;p&gt;「花火は私が持って行くね。去年使わなかったのが残ってるんだ～。せっかくだし、ブログで花火の解説も書こうかな？」&lt;/p&gt;
&lt;p&gt;ことこが運営するサイト「ことことサイエンス」は、もともとお菓子作りの過程を化学的視点から語る料理ブログだった。過去にりととまりがゲスト出演した回が何本か残っているらしい。その後、化学解説パートの独自性で人気を集めてからは、料理に限らず日常の化学について紹介する雑学ブログの毛色が強くなって今に至っている。&lt;/p&gt;
&lt;p&gt;料理ブログの時代から購読しているのはファンにとってはある種のステータスらしく、お菓子作りに絡めた内容で古参らしさをアピールするコメントも多い。&lt;/p&gt;
&lt;p&gt;「みんな予定が合ってよかったわ。明日が楽しみね！」&lt;/p&gt;
&lt;p&gt;笑顔でそう告げるまりは、このままとんとん拍子に準備が進んで素敵な旅になるだろうと疑いもしない。それがまさか、狭い後部座席に押し込められて &lt;em&gt;素敵な旅&lt;/em&gt; を過ごすことになろうとは、この時は知るはずもなかった。&lt;/p&gt;
&lt;h2 id="6"&gt;国道6号&lt;/h2&gt;
&lt;p&gt;――と、いうわけである。&lt;/p&gt;
&lt;p&gt;「それでね、今日撮った花火の写真をまとめて10周年の企画に使おうと思ってるの」&lt;/p&gt;
&lt;p&gt;「じゃあ、新しい除煙フィルターも使ってみようよ！　必要だと思って何枚か持ってきたんだ～」&lt;/p&gt;
&lt;p&gt;行程は国道6号線を半分ほどまで進んでいた。幹線道路を道なりに走るだけ、と表現すれば退屈そうな時間だが、道路が比較的空いている平日の昼間はストレスも少なく、りとは出会ったばかりの相棒とすっかり意気投合して既にアクセル過多である。&lt;/p&gt;
&lt;p&gt;まりも初めは辟易していた手狭な座席の居心地の悪さに慣れたようで、今は助手席のことこと楽しそうに話しているし、ことこも時折スピードメーターが制限速度の30km/h超に近づくタイミングでオービスの位置を気にするくらいで、それ以外はおおよそまりとの会話を楽しんでいた。ことことまりは普段から街の喧噪の中でおしゃべりしながら歩くのに慣れていたので、エンジン音くらいなら気にならないのだろう。&lt;/p&gt;
&lt;p&gt;川崎駅を出てからおよそ2時間。6号線が利根川と交差する。1km超の大きな橋を渡りきったあたりで、茨城県と取手市のカントリーサインを見つけたまりがふと疑問を口にした。&lt;/p&gt;
&lt;p&gt;「それで、あとどれくらいかかるの？　そろそろお尻が痛くなってきたわ」&lt;/p&gt;
&lt;p&gt;「ちょうど半分くらいまで来たよ！　東京抜けるまで渋滞がひどかったし、2時間はかからないんじゃないかな？」&lt;/p&gt;
&lt;p&gt;「2時間ですって!?　茨城県ってそんなに広いのね。ねぇ、せめて高速に乗りましょうよ」&lt;/p&gt;
&lt;p&gt;「えー、ETC付いてないからちょっと面倒かも。ていうか、今は高速の方が混んでるんじゃない？」&lt;/p&gt;
&lt;p&gt;「ちょっと待ってね。んー……三郷は過ぎてるから空いてそうだけど、もう常磐道からは離れてるから、30分くらい戻らないと合流できないかも。ごめんね、まりちゃん」&lt;/p&gt;
&lt;p&gt;何本かカラフルなルートが引かれた地図を見せることこだったが、そのいずれも今走る道を素直に北上するのが最も効率的という結果を示している。6号線をそのまま進んで1時間先のつくばで高速道路に合流するルートも下道に比べればせいぜい数分差で、まりの負担を軽減するには力不足だろう。&lt;/p&gt;
&lt;p&gt;「そうなの？　なんだか最悪のルート予測だけど、それならしょうがないわね。別にことこが謝ることじゃないわ」&lt;/p&gt;
&lt;p&gt;昨日旅の準備を進めていた段階では、どうせなら茨城あたりの海岸まで行きたいと言っていたまりだったが、今となっては無理せず近場――三浦半島とか、せめて木更津くらい――に行けばよかったと後悔していた。しかし、発電所の夜景が穴場みたいだよ、ということこの話も少し心に残っていて、ただ引き返すのももったいない。&lt;/p&gt;
&lt;p&gt;「早く行きたいなら、スピードはまだまだ出せるよ？」&lt;/p&gt;
&lt;p&gt;「りとちゃん、それはダメ！　オービスがあるって言っても全然聞いてくれないし。さっきも危なかったんだよ？」&lt;/p&gt;
&lt;p&gt;「ごめんごめん。冗談だから、ね？」&lt;/p&gt;
&lt;p&gt;ちょうど信号で車が止まったので、りとがことこの頭を撫でて落ち着かせる。りとの気持ちがスピードに乗るのはスクーターでもホットハッチでも変わらないが、今日はナンバープレートが前にも付いているので、心配も二倍多くなる。オービスの位置は逐一アプリがアナウンスするのだが、りとはあまり参考にしていないようで、そのたびにことこはスピードメーターを横目に見ながら肝を冷やすのだった。&lt;/p&gt;
&lt;p&gt;「なんか卒業旅行を思い出すわね。高速使えばすぐなのに、節約しようって無理に下道で遠回りして」&lt;/p&gt;
&lt;p&gt;「りとちゃんの鬼の峠攻め、本当にすごかったよね！　死ぬかと思ったもん。まりちゃんなんて途中で気持ち悪くなって、ゲロゲロ～って――」&lt;/p&gt;
&lt;p&gt;「ちょっと、ことこ!?　そんなこと思い出さないでよ」&lt;/p&gt;
&lt;p&gt;「まり、専門の時にメイドカフェでバイトしてたよね。あれも懐かしいなー」&lt;/p&gt;
&lt;p&gt;まりが一時期池袋のメイドカフェで働いているのを2人に隠していたのは、PARKでの接客よりももう一段高い声で客に給仕する姿を見られたくなかったからだ。言わなければバレなかっただろうに、雑談の流れで思わずことこに話したのが最大のミスである。&lt;/p&gt;
&lt;p&gt;どういうわけかことこからその話を聞き出したりとが来店してしまい、張り付いたような笑顔で接客することになったのは、まりにとっては今でも黒歴史だ。&lt;/p&gt;
&lt;p&gt;その翌日に3人が揃ったPARKは、ある種の修羅場だった。りとはまりの怒りの主張なんてどこ吹く風だし、ことこも自分の口の軽さを反省する一方で「私もメイドまりちゃんに会いたかったのに～！」と言い張って、まりを困らせた。そもそもまりが口を滑らせたのが原因なこともあり、あまり強く言い返せなかったのだ。&lt;/p&gt;
&lt;p&gt;その後、まりのメイドカフェバイトの話は暗黙のうちにタブー扱いになっていて、今日のこのタイミングまで4年ほど触れられずにいた。まりは2人にバレてからもしばらくバイトを続けていたようだったが、流石に卒業前は忙しくなって辞めたようだ。&lt;/p&gt;
&lt;p&gt;「りと、その話はもうしないって約束だったでしょ？」&lt;/p&gt;
&lt;p&gt;「そうだっけ？　まぁ、もう5年くらい前のことなんだしいいじゃん。メイドのまり、PARKにいる時より可愛かったし。ね、ことこ？」&lt;/p&gt;
&lt;p&gt;「う、うん！　……す、すごくよかったよね。あのチェキ、伝説級っていうか……」&lt;/p&gt;
&lt;p&gt;ことこはまりがメイド時代のことに触れられたくないのを察していたので、勢いよく理想のメイドまり像について語り出しそうになるのをぐっと我慢して、控えめにりとの言葉に同意する。仮に今りとと2人だったら、メイド服姿のまりが手でハートを作ってウィンクする「あのチェキ」をもう一度見せてくれるよう頼み込んでいただろうが、今その話題を持ち出したらチェキごと燃やされかねない。&lt;/p&gt;
&lt;p&gt;りとは本当にメイドまりのことを可愛いと思っていたし、実際にはその姿を見ていないことこにまでその可愛さを共有できるのはなんとも嬉しいものである。しかし、まりは不意打ちでその姿を見られた恥ずかしさや怒りを思い出して、どうも冷やかされているように感じてしまうらしい。&lt;/p&gt;
&lt;p&gt;「ほら、ことこもメイドまりは完璧だって言ってるよ」&lt;/p&gt;
&lt;p&gt;「は、はぁ？　あれは仕事だったからで、あんたたちに見せようとしたわけじゃ――」&lt;/p&gt;
&lt;p&gt;「り、りとちゃん！　次の交差点を右に曲がった方がいいみたい。ちょっと渋滞してるって」&lt;/p&gt;
&lt;p&gt;「……ん、ありがと。ことこ」&lt;/p&gt;
&lt;p&gt;ヒートアップしそうな気配を感じたことこが、唐突な交通案内で会話を中断させた。本当はどこにも渋滞なんてなかったのだが、運転中に最も差し込みやすいのはこういう急なアナウンスである。わずかに迂回したところで到着時間は数分も変わらないし、もしもの時はまた使おう、とことこは思った。&lt;/p&gt;
&lt;p&gt;「ことこ、まり、そろそろお腹空かない？　石岡のあたりにおすすめのラーメン屋があるんだけど、どう？　前にことこと行ったんだけど――」&lt;/p&gt;
&lt;p&gt;「この服でラーメンなんて食べるわけないでしょ！　私はコンビニで済ますから、先に寄ってよね」&lt;/p&gt;
&lt;p&gt;「……あっそ」&lt;/p&gt;
&lt;p&gt;そう畳みかけるまりにりとがやり返さないのは、口論の応酬で熱くなるのを避けたのではなく、ただただりとが返事をするのも面倒になったにすぎない。りとがこうして口を閉ざすと、ムキになったまりが食ってかかるのでむしろ逆効果ともいえる。まだ目的地にも着いていないのに大丈夫だろうかと、ことこは先行きが少し心配になった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「りとちゃん。本当にまりちゃんも一緒じゃなくてよかったの？」&lt;/p&gt;
&lt;p&gt;「いいよ、別に。まりはコンビニ飯の気分なんでしょ」&lt;/p&gt;
&lt;p&gt;「それは、そうだけど……」&lt;/p&gt;
&lt;p&gt;普段なら運転の途中で食事をとる時は「眠くなったら困るから」と控えめな注文を心がけていたりとだったが、今日はそのルールを破るように平坦な声でトッピング全増しの特製ラーメンを頼んでいた。&lt;/p&gt;
&lt;p&gt;ことこの注文は岩のりがたっぷり乗ったラーメンだったが、りとの注文を聞いたせいか、思わず食べるつもりのなかったチャーシュー丼まで追加している。さっきまでりとの運転を見守ったり、まりのいらだちをなだめたりするのに集中していて気付かなかったようだが、ことこもかなり空腹だったらしい。&lt;/p&gt;
&lt;p&gt;「ふふっ。ことこもお腹空いてたんだね。私も久しぶりの車の運転でエネルギー使っちゃった気分」&lt;/p&gt;
&lt;p&gt;「あ、だから大盛りなの？」&lt;/p&gt;
&lt;p&gt;「うん。まりが食べない分、いっぱい食べちゃおうかなって。トッピング、ことこにも少しあげるね」&lt;/p&gt;
&lt;p&gt;ことこが感じ取っていた雰囲気とは裏腹に、りとは久しぶりのラーメンへの期待でわくわくしている様子である。りとのいたずらっぽい笑い声は、ことこと2人で出かけている時のものと変わらなかった。てっきりことこは、りとがまりの態度にイライラしているのだとばかり思っていたが、どうやら本当に疲れているだけだったようだ。&lt;/p&gt;
&lt;p&gt;それなら、なおさらまりと一緒にこのラーメンを楽しみたかった、とことこは残念がった。りととことこが何度も一緒に行った店なのに、まりだけが仲間外れというのは少し寂しい。今日のラーメン店のことだけではなく、ことこは一人だけ知らないことがあるのを嫌がっていた。&lt;/p&gt;
&lt;p&gt;「でも、せっかくおいしいラーメンだから、まりちゃんにも知ってほしかったな～……なんて」&lt;/p&gt;
&lt;p&gt;「ん？　まりがラーメン用の服の時にまた来るから大丈夫だよ。でも、今度は3人で行こうね」&lt;/p&gt;
&lt;p&gt;「あ……そっか。そうだよね！　うん、楽しみ！」&lt;/p&gt;
&lt;p&gt;りとがまりをのけ者にするつもりがないのが分かって、ことこはやっと胸を撫で下ろす。口数の少ないりとは誤解されやすいタイプではあるのだが、もう10年の付き合いともなれば、ことこもりとの気持ちをだいたい理解できるつもりである。しかし、まりに関することになると、今でもその態度がどうも分からないのだった。イライラしているように見えるのに、まりの好きなところを語ってみせたり。静かにしていると思ったら、急にまりに詰め寄ってみたり。&lt;/p&gt;
&lt;p&gt;りとが日記でも読ませてくれたらいいのにな、なんて思いながら、ことこは到着したばかりのどんぶりからゆっくりとスープをすすった。&lt;/p&gt;
&lt;h2 id="51"&gt;国道51号&lt;/h2&gt;
&lt;p&gt;「ラーメンは断るのに、モゲットは食べるんだ。素敵なご令嬢だね」&lt;/p&gt;
&lt;p&gt;「人に見られなきゃいいの。こんな可愛い服でどんぶりから麺をすするなんてありえないわ。スープも跳ねちゃうし」&lt;/p&gt;
&lt;p&gt;「でも、下妻物語みたいでいいんじゃないかな？」&lt;/p&gt;
&lt;p&gt;「全然違うわよ。あら、一緒に観たことあったかしら？」&lt;/p&gt;
&lt;p&gt;「うん！　前に1回だけ」&lt;/p&gt;
&lt;p&gt;ラーメンを食べ終えた2人が車に戻ってから、まりの主張でことこと席を入れ替えることになった。この先はナビがほとんど必要ないくらい分かりやすく、必要な指示は後ろから出せるから大丈夫だよ、とことこも賛成したのだ。&lt;/p&gt;
&lt;p&gt;助手席の方が広いと信じて移動したまりだったが、既に後部座席の方が広かったと後悔している。もともと2人分の席を一人で使っていたわけなので当然だが、隣の芝生は青く見えるものだ。りとがシフトレバーに手を伸ばすと肘が脇腹に当たりそうになって、座席の狭さを嫌でも意識してしまう。&lt;/p&gt;
&lt;p&gt;しかし、乗り込んでから3時間以上の付き合いになるせいか、この狭さにもある種の愛着が湧いてきたらしい。視界がシートに圧迫される後部座席よりも景色はよく、国道沿いに広がる鬱蒼とした新緑が左右にぐんぐん流れていくのを感じて、まりは不思議な高揚感を覚えていた。&lt;/p&gt;
&lt;p&gt;まりはコンビニで買ったサーモンナゲットの期間限定「特製モゲットしょうが味」の最後の1個を食べ終えて、いつも愛飲しているシリカ水で口を潤した。魚肉と大豆たんぱくをうまみ調味料で繋いだホットスナックの定番商品はいかにもジャンクな味で、原料に関する妙な都市伝説や「食べるな」系新書の常連である。まりはモゲットが6個入りだった頃からの愛好家で、限定フレーバーが出るたびに欠かさず入手しているほどなので、それらの噂を気にしている様子はない。&lt;/p&gt;
&lt;p&gt;「さて、着いたよ。思ったより早かったね」&lt;/p&gt;
&lt;p&gt;「りとちゃん、運転お疲れさま！　花火の準備は私に任せてね」&lt;/p&gt;
&lt;p&gt;りとはビーチに併設された高台の駐車場をぐるりと周ってから、浜辺がよく見える隅の方に車を停めた。真夏なら1回2000円でも入庫待ちで列をなすような好立地の駐車場だが、今日のようなシーズンオフの平日は無料開放されていても車はほとんど入っていない。&lt;/p&gt;
&lt;p&gt;エンジンを止めて車を降りると、よく晴れた日差しに暖められた初夏の空気がどっしりと3人の身体を包み込む。まりはエアコンの効いた車内では出番がなかったハンディファンを首に提げて、レインボーに光る羽根をくるくると回しながらわずかな涼を取り始めた。時刻は既に16時を回っていて、淡く光る空は少しずつ夕暮れに向かう準備を始めている。&lt;/p&gt;
&lt;p&gt;ことこは荷室に詰め込んだ荷物をパズルのように取り出して、徳用花火バッグ、バケツとろうそく、ロングライター、お手製のフィルターガラスが入ったケースをリュックにまとめた。今日は風が弱いので、除煙フィルターが性能を発揮する理想的な環境である。&lt;/p&gt;
&lt;p&gt;りとはライターとタバコだけをポケットに入れて、2人を待たずに裸足で砂浜に降りていった。それから「まり！　ことこ！　砂が気持ちいいよー！」と上に向かって手を振る。「りとちゃん、ビーチサンダルあるよー」とリュックを背負ったことこも砂浜への階段を駆け下りて、柔らくて温かい砂を踏みしめた。&lt;/p&gt;
&lt;p&gt;まりもそんな2人の後ろでハンディファンの風に一通り満足したようで、白い厚底のショートブーティでアスファルトを何度かこつこつと鳴らしてから、水色の薄いオーガンジーに包まれたフリルサンダルに履き替えた。それから、ゆっくりと階段を下りて2人の元にたどり着くと、海辺の開放感を味わうように大きく背伸びする。&lt;/p&gt;
&lt;p&gt;「やっと着いたわね。狭い車って身体を縮めなきゃいけないから、肩が凝っちゃいそう」&lt;/p&gt;
&lt;p&gt;「まりは身長が大きいからね。帰りは後ろに座ったら？　ナビも苦手なんだし」&lt;/p&gt;
&lt;p&gt;「あら、私にも道案内くらいできるわよ。りとがせっかちなだけじゃない」&lt;/p&gt;
&lt;p&gt;「まりが私の運転についてこれないだけじゃん。卒業旅行のこと、もう忘れたの？」&lt;/p&gt;
&lt;p&gt;「なによ！　とにかく、帰りも助手席がいいわ。私、りとの運転は好きだもの」&lt;/p&gt;
&lt;p&gt;「……あっそ」&lt;/p&gt;
&lt;p&gt;「ま、まぁまぁ、2人とも。まだ明るいし、ちょっと砂浜でも歩こうよ」&lt;/p&gt;
&lt;p&gt;ことこが2人の間に割って入って手を握る。一段小さいことこが真ん中に立つと、砂浜に映る影はまるで親子のようだ。まりが企画のアイデアを話したり、ことこが発電所の夜景について解説したり、りとがビーチに似合うタバコについて語ったりしながら、少しずつ日が暮れていった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img alt="~10th PARK ADV" height="1680" src="/images/10th-park/beach.gif" width="2048"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.pixiv.net/artworks/119100054"&gt;10th PARK ADV&lt;/a&gt; by かたぎりあまね&lt;sup id="fnref2:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="このイラストはCC BY 4.0でライセンスされていません。"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「あ、あ……落ちちゃったわ。また私の負けね」&lt;/p&gt;
&lt;p&gt;「えへへ。揺れを先端に伝えないためのコツがあるんだ～」&lt;/p&gt;
&lt;p&gt;3人で囲んだ最後の線香花火は、りとが早々に脱落した後に、まりとことこの静かな戦いを経てぎりぎりでことこが火玉を守り抜いた。たくさんあった徳用花火はまり &lt;em&gt;監督&lt;/em&gt; の下で半分ほどが企画の撮影に使われてから、残りはそれぞれ自由に花火を楽しんで、今ちょうど使い切ったというわけだ。3人が立つ砂浜は夜暗を取り戻して、消えかけたろうそくの炎だけが3人の顔を照らしている。&lt;/p&gt;
&lt;p&gt;「帰る前に、ちょっとタバコ吸ってきてもいい？」&lt;/p&gt;
&lt;p&gt;答えを待たずに砂浜の闇に消えたりとの姿が見えなくなって、しばらくすると赤い炎がちらちらと明滅し始める。3人の中でタバコを吸うのはりとだけで、まりが服に匂いがつくのを嫌がるので、近くでは吸わない約束になっていた。ことこはりとの喫煙する姿が好きだったし、りとのタバコの匂いなら気にならなかったので、シャンブルの喫煙所ではりととことこが一緒にいる姿を見かけることも多い。&lt;/p&gt;
&lt;p&gt;ろうそくに顔を近づけるようにしゃがみ込むことこに合わせて、まりも隣に腰を落とした。ここからはしばらく2人だけの時間である。&lt;/p&gt;
&lt;p&gt;「まりちゃん、今日は誘ってくれてありがとね。私もみんなとで出会ってから10年だし、何かしたいと思ってたの」&lt;/p&gt;
&lt;p&gt;「でしょ？　PARKの企画はもちろんだけど、やっぱり私たちのお祝いもしないとね」&lt;/p&gt;
&lt;p&gt;「PARKのアニバイベント、りとちゃんはあんまり来てくれないもんね」&lt;/p&gt;
&lt;p&gt;「そうね。りと、ライブで話すのが苦手だからって、タバコ屋さんのバイトで埋めちゃうんだもの」&lt;/p&gt;
&lt;p&gt;PARKの周年記念イベントでは、毎回新しいグッズやクリエイターとの交流企画を打ち出していて、その告知をInstagramのライブで行うのが定番である。しかし、カメラに向かって明るく楽しくプレゼンするなんて性に合わないりとは、叔父のゴールデンウィークの予定にかこつけてタバコ屋に逃げ込むのだった。そのせいで、告知ライブはまりとことこの2人が担当するのがお決まりになっていた。&lt;/p&gt;
&lt;p&gt;「今年はりとちゃんもイベントに来てほしいなぁ」&lt;/p&gt;
&lt;p&gt;「ことこが泣いてお願いしたら、きっと来てくれるわよ」&lt;/p&gt;
&lt;p&gt;「そ、そうかなぁ……私の涙で？」&lt;/p&gt;
&lt;p&gt;「そうよ。ことこって、人たらしなところがあるのよね」&lt;/p&gt;
&lt;p&gt;泣き落としを持ち出すような機会はこれまでなかったが、感情の起伏が激しいまりならまだしも、りとには通用しないだろうなとことこは思った。昔、何かのきっかけでことこが泣き出してしまったとき、りとは慌てずにことこを優しいハグで落ち着かせてくれたからだ。&lt;/p&gt;
&lt;p&gt;とはいえ、性格も好みも違うこの3人がPARKという場所で10年も活動し続けられたのは、ことこの明るくて人懐っこい性格のおかげと言っても過言ではない。PARKの設立初期、ことこが来るまでの数週間はりととまりの2人で運営を担当していたが、細かい方針の違いでよく言い争っていた。だからこそ、空中分解を恐れたオーナーが急いでことこの採用を決めたのであろう。&lt;/p&gt;
&lt;p&gt;「……あのね、まりちゃん。今日のお昼のことなんだけど」&lt;/p&gt;
&lt;p&gt;「あなたたちが行ったラーメン屋さん？　それがどうかしたの？」&lt;/p&gt;
&lt;p&gt;「絶対行かないーって言ってたけど、おいしいラーメン、本当に興味ない？」&lt;/p&gt;
&lt;p&gt;おそるおそる話を切り出したことこは、バケツに入りきらずに落ちていた花火の燃えがらを拾って、ろうそくの足下の砂をぐりぐりと弄んだ。砂のさくさくした感触が手に伝わって、浜辺に広がる沈黙の隙間を埋めていく。&lt;/p&gt;
&lt;p&gt;「あら、絶対なんて言ってないわよ。ただ、ちょっとタイミングが悪かっただけで……そう、タイミングの問題よ」&lt;/p&gt;
&lt;p&gt;「それでね、だから、その……りとちゃんにまた今度行きたい、って伝えて欲しいんだけど、だめ？」&lt;/p&gt;
&lt;p&gt;「りとに謝れってってこと？　いやよ。なんで私がそんなこと言わなきゃいけないの？」&lt;/p&gt;
&lt;p&gt;「で、でも……せっかく3人で遊びに来たのに、一緒にご飯も食べられなかったから、せめてちゃんとお話ししてほしくて……う、うっ……」&lt;/p&gt;
&lt;p&gt;「ちょ、ちょっと……急にどうしたのよ？　泣かないでよ、ことこ。分かったわ。りとが戻ってきたら、ちゃんと言うから！」&lt;/p&gt;
&lt;p&gt;ことこが声を震わせながら膝に顔をうずめるのを見て、まりは思わず立ち上がって慌てた様子でそう口走った。&lt;/p&gt;
&lt;p&gt;「……よかった！　まりちゃん、ありがと！」&lt;/p&gt;
&lt;p&gt;「ことこ、泣いてたんじゃ……もう、やったわね！」&lt;/p&gt;
&lt;p&gt;しかし、まりの言葉を聞いてぱっと顔を上げたことこの目には、涙は一つも浮かんでいない。ことこがまりの言うとおり &lt;em&gt;泣いてお願い&lt;/em&gt; してみせたのだ。普段なら簡単に見分けられるような嘘泣きのはずだが、夜に紛れそうな暗いろうそくの光では分からなかったらしい。&lt;/p&gt;
&lt;p&gt;涙を武器にするなんて、ずるいわ――と自分の発言を棚に上げたまりの抗議が飛び出るよりも先に、タバコを吸い終えたりとが戻ってきた。&lt;/p&gt;
&lt;p&gt;「ことこ、まり、お待たせ。何の話してたの？」&lt;/p&gt;
&lt;p&gt;「さっきのラーメン屋さんの話だよ！　ね、まりちゃん？」&lt;/p&gt;
&lt;p&gt;「そ、そうね。ねぇ……りと？　お昼は怒って悪かったわね。えぇと、その……また今度、行ってあげても、いいわ」&lt;/p&gt;
&lt;p&gt;「当たり前じゃん。モゲットなんかより100倍おいしいから、楽しみにしてて」&lt;/p&gt;
&lt;p&gt;「……はぁ？　モゲットがまずいって言うつもり？　せっかく謝ったのに、なによ！　モゲットは限定フレーバーだって全部おいし……いや、たまに外れはあるけど……とにかく！　そのセリフ、食べに行くまでよ～く覚えておくわ」&lt;/p&gt;
&lt;p&gt;「えへへ、よかった！　片付けは終わったから、もう車に戻れるよ」&lt;/p&gt;
&lt;p&gt;残りわずかなろうそくを水で消火してバケツの中へ。ことこは照明をハイパワーLED懐中電灯に切り替えて、周囲に忘れ物がないかを改めて確認した。夜空に向かってサーチライトのように照らすと、溶け残った花火の煙が何本か絡みつく。&lt;/p&gt;
&lt;p&gt;3人は駐車場に戻る階段を上っていたが、その中程でことこの隣を歩いていたりとが急に立ち止まる。それに合わせて足を止めたことこが少しふらついたのは、花火の燃え殻を水と一緒に固めてビニールをかけたバケツが重たかったからだ。&lt;/p&gt;
&lt;p&gt;「ことこ、帰りの運転代わってもらってもいい？　少し疲れちゃって」&lt;/p&gt;
&lt;p&gt;「うん、分かった！　私はまだまだ元気だから、大丈夫だよ」&lt;/p&gt;
&lt;p&gt;「あら、帰りはことこが運転するの？　ことこの運転って、なんだか丁寧すぎて眠くなるのよね」&lt;/p&gt;
&lt;p&gt;それから数歩遅れて後ろから追いついたまりが、ことこの隣に立って残念そうにそう告げる。交通法規を遵守したことこの運転は加減速もなめらかで乗り心地はとてもよいはずなのだが、今のまりにはりとのような走り屋が魅力的に映っているらしい。とはいえ「鬼の峠攻め」をもう一度体験すれば、すぐにまりの三半規管が音を上げて意見が正反対に変わるはずだ。&lt;/p&gt;
&lt;p&gt;「じゃあ、ちょっとだけスピード出そうかな？　私、教習所のドライブシミュレーターで200キロ出したけど満点だったんだ～」&lt;/p&gt;
&lt;p&gt;「あ、もしかして『アウトバーン伝説』？　ことこ、あれで出禁になったよね」&lt;/p&gt;
&lt;p&gt;ことこがりとと一緒に通っていた教習所のドライブシミュレーターは比較的旧型で、テスト用のオーバードライブモード「アウトバーン」の起動コマンドが簡単に入力できるのはよく知られていた。ことこはりとに褒められたくて200km/hのモードで完璧な運転をこなしてみせたが、結局そのセッションは不合格扱いになった上に、「チート行為禁止」の掲示が貼り出されたのだ。しばらくことこだけドライブシミュレーターの使用を禁じられたのは、恥ずかしい思い出である。&lt;/p&gt;
&lt;p&gt;「ことこ、もちろん冗談よね？」&lt;/p&gt;
&lt;p&gt;「当たり前だよ！　夜の道路は危険がいっぱいなんだから」&lt;/p&gt;
&lt;p&gt;「ふふっ。私はことこの運転なら、トンネル壁走りでも付き合うよ」&lt;/p&gt;
&lt;p&gt;「りとちゃん……ゲームじゃないんだから、もう」&lt;/p&gt;
&lt;p&gt;残りの階段を3人の早さでゆっくり進んでいく。10年後も20年後も、こうして3人で変わらずに並んで歩いていきたい。2人の横顔を眺めながら、ことこはそんなことを思うのだった。&lt;/p&gt;
&lt;h2 id="park_1"&gt;PARK（後日）&lt;/h2&gt;
&lt;p&gt;「どうして、花火より発電所の写真が伸びてるのよ！」&lt;/p&gt;
&lt;p&gt;楽しい花火旅行から数日。PARKのバックヤードから突然響いたのはまりのわめき声だった。どうやら、花火で夏を先取りするというしっかり考え抜いた企画の投稿よりも、帰り道で撮ったアドリブの夜景写真の方が注目を集めてしまったらしい。&lt;/p&gt;
&lt;p&gt;もちろん、花火の写真が全く見向きされないわけではなかったし、「いつも素敵ですね！」「私も花火したいな」「3人の線香花火が集まってるの、何？」といった既存のフォロワーからのコメントの数は、花火の投稿の方が多い。発電所の煙突写真は、工場夜景という大きな文脈から広く浅く注目されていたにすぎないのだが、今のまりの目にはもはや数字しか見えていなかった。&lt;/p&gt;
&lt;p&gt;「ま、まぁまぁ……フォロワーはちゃんと増えてるから、いいんじゃない？　私は、まりちゃんの花火写真の方が好きだよ！」&lt;/p&gt;
&lt;p&gt;「中途半端な慰めなんていらないわ……私はいいねの怪物……承認欲求の魔物なのよ……」&lt;/p&gt;
&lt;p&gt;まりの声を聞いてバックヤードに戻ってきたりとは、机に突っ伏してぶつぶつと呟いているまりの姿を見て「どういう状況？」と笑いをこらえることしかできない。ことこは自分のスマホで投稿を見せて手短に説明するが、りとは「いや、だからって……ふふっ」ととうとう我慢できずに笑い始めてしまった。&lt;/p&gt;
&lt;p&gt;りとの笑い声は耳に入っていないようで、アプリを覗き込みながらしばらくうなっていたまりだったが、その声が止んだかと思うと急に立ち上がって壁のカレンダーを指さした。&lt;/p&gt;
&lt;p&gt;「決めた！　次は工場夜景を撮りに行くわよ！　そんなに夜景が見たいなら、見せてあげるわ」&lt;/p&gt;
&lt;p&gt;りとはまた面倒なことになりそうだと思いつつ、工場夜景ならツーショットセルフィーの細かい演技指導が飛ばないと予想して「いいね。行こうよ」と戦略的な賛成に回る。ことこはもちろん無条件の大賛成で、タブレットで日本地図に工場夜景の名所リストをプロットしながら、新たな企画の準備を始めるのだった。&lt;/p&gt;
&lt;p&gt;こうしてまた、PARKはいつも通りの11年目を過ごしていくのだろう。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="extra-items"&gt;EXTRA: ITEMS&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;改造スクーター&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;りとが愛用している125ccのヤマハ製中古スクーター。ことこが随所に改造を施しているので、2人乗りでも加減速がキビキビしていて走りやすい。スピードメーターが振り切れるほど性能が高く、りとが密かに港湾道路で400mスプリントを繰り返していたとき、メーターを壊してことこに叱られたことがある。&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;「あの」チェキ&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;手でハートを作ってウィンクするメイド服姿のまりと、そのとき来店したりとが写った伝説級のツーショットチェキ。池袋のメイドカフェで使っていた源氏名「シャル」のサイン入りである。各所に点在するりとの宝箱のどこかに保管してあるはずだが、少なくともスクーターのメットインでは見つかっていない。&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;徳用花火バッグ&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;ディスカウントショップの処分セールで購入した大量の花火セット。円筒形の丈夫なビニールバッグにこれでもかというほどの手持ち花火と噴き出し花火が詰められている。本当は去年の夏の終わりに遊ぶはずだったが、まりに急用が入ったせいで予定が立ち消えになり、ことこが半年以上保管することになった。&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="extra-links"&gt;EXTRA: LINKS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.pixiv.net/novel/show.php?id=22082225"&gt;10th PARK road side&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pixiv.net/artworks/119117804"&gt;りとことまりの軽自動車ぎゅうぎゅう旅&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pixiv.net/artworks/119100054"&gt;10th PARK ADV&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/search?q=%23PARK10%E5%91%A8%E5%B9%B4%E3%82%A2%E3%83%BC%E3%83%88&amp;amp;src=typed_query&amp;amp;f=live"&gt;X（旧Twitter）: #PARK10周年アート&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hentaigirls.net/book/sugar-jelly/"&gt;Sugar Jelly&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.park-harajuku.com/"&gt;PARK - 原宿にあるお店PARK(パーク)のオフィシャルウェブサイト&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://park-harajuku.net/items/571618ff9821cc715e000f8b"&gt;PARK:HARAJUKU Crisis Team! 日本語ver 単行本&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://harajuku-crisis-team.tumblr.com/"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;&lt;sup id="fnref:phct"&gt;&lt;a class="footnote-ref" href="#fn:phct" title="https://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;URAHARA&lt;sup id="fnref:urahara"&gt;&lt;a class="footnote-ref" href="#fn:urahara" title="https://urahara.party/"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:no-cc-by"&gt;
&lt;p&gt;このイラストは&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-cc-by" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:no-cc-by" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:phct"&gt;
&lt;p&gt;https://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes&amp;#160;&lt;a class="footnote-backref" href="#fnref:phct" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:urahara"&gt;
&lt;p&gt;https://urahara.party/&amp;#160;&lt;a class="footnote-backref" href="#fnref:urahara" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>2024/03/05～2024/04/01</title><link href="https://ama.ne.jp/post/report-20240401/" rel="alternate"/><published>2024-04-01T17:58:00+09:00</published><updated>2024-04-01T17:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-04-01:/post/report-20240401/</id><summary type="html">&lt;p&gt;2024/03/05～2024/04/01のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/search/"&gt;サイト内検索&lt;/a&gt;のプレースホルダに表示されるキーワード例を追加しました。&lt;ul&gt;
&lt;li&gt;これまでは「団地」のみでした。&lt;/li&gt;
&lt;li&gt;今後は「廃墟」「クラゲ」などが毎日ランダムに表示されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;RFCの参照リンクについて &lt;code&gt;www.rfc-editor.org&lt;/code&gt; を利用するように変更しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.jxck.io/entries/2024-03-27/link-to-rfc.html"&gt;RFC の URL はどのドメインで貼るのが良いか&lt;/a&gt;という記事の情報を参考にしました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ページ下部に寄付に関する記載を追加しました。&lt;ul&gt;
&lt;li&gt;xzにバックドアが仕組まれた件について、&lt;a href="https://boehs.org/node/everything-i-know-about-the-xz-backdoor"&gt;Everything I know about the XZ backdoor&lt;/a&gt;という記事を読んだ時に見つけたフッターを参考にしました。&lt;/li&gt;
&lt;li&gt;あまねけ！はあなたの愛でこれからももっと輝けます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;印刷時のデザインをわずかに修正しました。&lt;/li&gt;
&lt;li&gt;ページ上部に表示する広告の選択アルゴリズムを微調整しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/how-jpeg-break-red-girl/"&gt;JPEGさんは赤がお嫌い？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;JPEGは保存を繰り返すと赤だけ劣化しちゃうんだぜ！というインターネットの常識に一石を投じました。&lt;/li&gt;
&lt;li&gt;JPEGの圧縮方式の話とか長々書いてますが、もちろん赤だけが特に劣化するわけないです。疑うことを忘れたインターネットは簡単にバカになります。みなさんはどうですか？&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/ltu-balance/"&gt;LTUバランスのこと&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;私が考える個人サイトっぽい個人サイトってどんなものだっけ？というバランス感覚を客観的に確かめる指標を導入しました。&lt;/li&gt;
&lt;li&gt;月報を書くときに確認したら&lt;a href="https://nodenarium.net/"&gt;Nodenarium&lt;/a&gt;にあまねけ！が載っていてよかったです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/i-ngo-filter-202403/"&gt;個人サイトのカテゴライズやってみた！&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;LTUバランスの定義に引き続き、あまねけ！を客観的に見るための特集です。&lt;/li&gt;
&lt;li&gt;真面目なフィルタリングサービスから&lt;ruby&gt;&lt;rb&gt;Pornography&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;エッチ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;呼ばわりされるとびっくりしちゃいますね。あの……もっとやるべき仕事があるのでは？&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/deadai/"&gt;DEADA1&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;AIとの付き合い方、作品と作者の評価の切り離し、愛や恋のあり方といったテーマを込めつつ、さらっと読めるように仕立てました。&lt;/li&gt;
&lt;li&gt;今年は毎月1本おはなしを投稿していこうと思っています。これは3月分です。ぜひ「読んだ」ボタンや&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;で応援してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>DEADA1</title><link href="https://ama.ne.jp/post/deadai/" rel="alternate"/><published>2024-03-31T21:52:00+09:00</published><updated>2024-03-31T21:52:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-03-31:/post/deadai/</id><summary type="html">&lt;p&gt;DEADA1, folded tokyo tower, giant lily flowers, bundled neon signs, masterpiece, best quality&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;ruby&gt;&lt;rb&gt;SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Y&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;サリー&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;は高性能の現代イラストレーション生成サービスである。現代イラストレーションというのは――公式サイトによれば――現実世界を非常に精巧に再現した写真でもなく、歴史と伝統を重ねたハイアートの再生産でもなく、現代的な「生きた」ポップな絵柄の総体らしい。ここで「生きた」とわざわざ括弧で示したのは、まるでSALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yが日々新たに絵が上達しているように、数週間あるいは数日の単位でその性能をアップグレードしているからだ。&lt;/p&gt;
&lt;p&gt;もちろん、一般的な生成モデルが全く成長しないというわけではなく、数年に一度のアップデートで処理能力を向上させたり、学習球面をごく小さく歪めて特定のタスクにのみ特化させることはできる。しかし、SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yは短期間で広いタスクの処理性能を改善しており、その特異な性質から強い注目を集めていた。&lt;/p&gt;
&lt;p&gt;ただ、SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yは他の生成モデルと全く異なる学習アルゴリズムを採用したわけではなく、その強化フィードバック過程に独自性があるという見方が濃厚である。そもそも生成モデルの根本的なバリエーションとパラメータ数は頭打ちになっていて、ただ札束で殴ってもこれ以上差別化は図れない。とすれば、学習効率の高さに違いがあるのではないかという理屈らしい。&lt;/p&gt;
&lt;p&gt;では、学習効率はどうやって高めればいいのか？　その手法としてまことしやかに囁かれているものの一つが「&lt;ruby&gt;&lt;rb&gt;人間給餌器&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;マンフィーダー&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;」であった。簡単にいえば、AIが望む入力を人手で与え続けるという強化学習の一スキームである。&lt;ruby&gt;&lt;rb&gt;人食い&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;マンイーター&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;と&lt;ruby&gt;&lt;rb&gt;自動給餌器&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;オートフィーダー&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を同時に連想するような趣味の悪い名付けからも分かるとおり、SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yの公開情報にも、また他のあらゆる学術的根拠にも基づかない都市伝説である。より悲観的には、単に無数のモデルを組み合わせて成績のよいものを返すキュレーターでしかないのでは、と言われることもあったが、そちらも実現性にはあまり差はない。&lt;/p&gt;
&lt;p&gt;ここまで、まるでSALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yのチーフエンジニアかのように語ってきたが、私は今日までSALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yどころか他の画像生成サービスも使ったことがなかった。興味がなかったからだ。別にイラストを描けなくて困ったことはなかったし、急にイラストが必要になったこともないし、欲しいイラストは誰かに依頼すればいい。そう、例えば――ユイ先輩とか、に。&lt;/p&gt;
&lt;p&gt;私が生成モデルにちょっとだけ詳しいのは、美術部のユイ先輩の影響だった。彼女は突出した絵の才能の持ち主で、いろいろな画風と幅広いテーマを使い分けては想像を超えた速度で絵を完成させていた。ユイ先輩にとっては「AIでも使ってるんじゃないか」という疑いは褒め言葉と同じで、そういう人たちにタイムラプス・シーンを叩き付けるのは相当な快感だったと思う。多くのイラストレーターは画像生成AIに真っ向から立ち向かうことなく、有害なバランスブレイカーとしてゲーム盤の外に追い出そうと非難し続けるか、あるいは粗暴な隣人が自分に殴りかからないよう祈るしかなかったが、ユイ先輩はAIを対等に戦えるライバルだと思っていた。まっすぐな目で「人間から生まれた才能に、人間が勝てないことはないよ」と言っていた。&lt;/p&gt;
&lt;p&gt;私はかつて文芸部に所属していて、絵のことはよく分からなかったが、ユイ先輩の才能がよく噂に上がるのは知っていた。ユイ先輩と知り合ったきっかけは、部誌の表紙デザインの依頼だった。しかし、このとき初めてお願いした部誌はとある事情で発行まで漕ぎ着けることができず、幻の表紙デザインは今でも私とユイ先輩しか知らない。&lt;/p&gt;
&lt;p&gt;真っ赤なロングヘアの少女が寂しそうに天を見つめる姿が中央に、そこから四方八方に飛び出した大きなクロソイド曲線が、まるで必然のように彼女の周囲に収束する。毛先にかけて尾羽のようにふわりとした質感に変わっていき、羽の先端にはところどころ小さな炎が灯されていて――一言でたとえるなら、フェニックスの擬人化とでも言えるだろうか。それだけで完成した絵画であると同時に、本文に描かれる世界の壮大さを予感させる扉の役目も果たしていた。&lt;/p&gt;
&lt;p&gt;初めて会った日のことはよく覚えている。当時の美術室は壁が全面くすんだピンク色で塗られていて、ユイ先輩はそれを「人間らしくて温かい色」と評して気に入っていた。私の具体的な形にもならない曖昧な言葉の羅列から、目の前で何枚もラフスケッチが生まれる様子は確かにAIとの対話を連想したし、AIと対等にやり合えるかもという噂も大げさではなかった。ユイ先輩はその才能に誇りを持っていたし、さらに伸びていくのだと確信していたと思う。&lt;/p&gt;
&lt;p&gt;しかし、私はそれ以上にユイ先輩という人を好きになっていた。彼女が持つ絵の才能も当然好きだったけど、それはユイ先輩の人生を形作る個性の一つとして目を向けていただけに過ぎない。顔も、話し方も、絵を描いている姿も好きだった。素敵なデザインの部誌を発行できなかった残念さより、二人だけの秘密ができた喜びの方が勝っていたくらいだ。実のところ私は部誌の表紙がどんなデザインになってもよかったけど、ユイ先輩と話すきっかけを作るために彼女に依頼し続けた。&lt;/p&gt;
&lt;p&gt;好きな人がたまたま女の人だった。そういう手垢の付いた詭弁は、ユイ先輩の前では無意味だった。あのとき、本当の意味で初めての恋をしたのだと思う。超人的な速度で絵を仕上げるユイ先輩は、私の前では理屈っぽくておしゃべりが大好きな等身大の女子高生で、しかし横顔をそっと覗き込むと、底の知れないミステリアスな魅力を秘めた少女にも見えた。&lt;/p&gt;
&lt;p&gt;どうしてか、ユイ先輩も私のことを気に入っていたみたいだった。最近読んだ哲学書を紹介したり、改良された生成モデルの仕組みについて語って聞かせたり、できあがった絵の感想を求めたりと、少なくとも対等な話し相手としては頼られていたと思う。完成した部誌も毎回読んでくれて、私の作品を真っ先に批評してくれるのはユイ先輩だった。&lt;/p&gt;
&lt;p&gt;ユイ先輩と話せることが嬉しかった。部誌のデザインを描いてもらうためじゃない、文芸部の代表として来たわけじゃない、あなたが好きだからここにいるんだと、まっすぐに伝えたかった。でも、ユイ先輩が私と同じ思いを抱えているとはどうしても思えなかった。&lt;/p&gt;
&lt;p&gt;私はうっかり口を滑らせないように、ユイ先輩はただの暇つぶしの相手だと思ってるに違いない、ここにいるのは私じゃなくたっていいんだ、なんて根拠のない自虐でその想いを押し込め続けた。それがユイ先輩との関係を変えずに過ごすためだと信じて。勇気を出せない自分に言い訳するために。&lt;/p&gt;
&lt;p&gt;しかし、自分でも気付かないうちに、いつの間にかその箍は外れそうになっていた。&lt;/p&gt;
&lt;p&gt;「――それで、黎明期のAIと、最近リリースされたAnne、そして私の描いた絵を並べてみたんだ。タイトルは『三姉妹』で、描かれた人物と三つの存在が……いや、あまり先に言わない方がいいな――とにかく、どう思うかな？」&lt;/p&gt;
&lt;p&gt;「ユイ先輩が描いたのって、これですか？」&lt;/p&gt;
&lt;p&gt;「分かるかい？　少しクラシカルなスタイルに寄せてみたんだけれど」&lt;/p&gt;
&lt;p&gt;「はい。私、ユイ先輩の描く絵……その、好きなので！」&lt;/p&gt;
&lt;p&gt;「じゃあ、Anneの絵はどうだい？　私の絵と比べて、どんな違いを感じた？」&lt;/p&gt;
&lt;p&gt;「絵のことはあまり……でも、AIの絵は訴えかけるものがなくて退屈というか、好きじゃありません。ユイ先輩の絵は、ユイ先輩がキャンバスに真剣に向き合っている姿とか、ユイ先輩の思いがそのまま伝わってくる感じがして、胸が高まるというか……」&lt;/p&gt;
&lt;p&gt;「興味深いね。それじゃあまるで、私の絵より私自身を褒めてるみたいじゃないか」&lt;/p&gt;
&lt;p&gt;AIの描く絵に意味なんてない。綺麗で整っただけの絵なんて必要ない。ユイ先輩の描いたものなら、きっと数学の答案に記した筆跡でさえ輝いて見えるだろう……そんな気持ちを見抜いたような一言に、私は動揺した。&lt;/p&gt;
&lt;p&gt;本当は全部知られてるんじゃないかって思った。全部分かってるのに、なお私から言い出すのを待っているだけなんじゃないかって。……だから私は、間違ったんだ。&lt;/p&gt;
&lt;p&gt;「好きですよ。私、ユイ先輩のことが好き。ユイ先輩の絵だけじゃなくて、絵を描いてないときのユイ先輩も、好きです」&lt;/p&gt;
&lt;p&gt;「ちょ、ちょっと待ってくれよ。じゃあ君は……私の絵ではなく、私の顔や性格でこの絵を評価したって言うのかい？　君は、私の絵を評価して表紙を依頼したんじゃないのか？」&lt;/p&gt;
&lt;p&gt;「違います！　部誌のデザインは部の総意でお願いしたもので、だから違います……ただ、私はユイ先輩のことを……」&lt;/p&gt;
&lt;p&gt;「いや……もういい。もういい。ここで私がその発言の真意を糺したところで、これまで君の感じたことを否定できるわけじゃないだろう？」&lt;/p&gt;
&lt;p&gt;「それは……」&lt;/p&gt;
&lt;p&gt;「君とは、同じクリエイターとして価値観を共有できると思ってたんだ。でも、君の考えていることはよく分かった。君の書く小説を読んで、私だって勝手に理想の姿を押しつけていたのかもしれないね」&lt;/p&gt;
&lt;p&gt;「あの……ユイ先輩。私、ユイ先輩の絵もちゃんと大好きで――」&lt;/p&gt;
&lt;p&gt;「――すまない、今日はもう帰ってくれないか。いずれにせよ、私には盲目的な恋人は必要ないし、もうあまり……君とは話したくない。属人的な評価なんて、無意味だ」&lt;/p&gt;
&lt;p&gt;それから、ユイ先輩が部誌のデザインを担当することはなくなった。単純なことだ。もともと私が彼女と話す口実に依頼を続けていただけで、その交流が途切れたのだから。私が気にせずお願いすれば描いてくれたのだろうけど、ユイ先輩が私に向けた軽蔑を含んだまなざしが、どうしても私の足が美術室に向くのを許さなかった。&lt;/p&gt;
&lt;p&gt;幾何学模様と物憂げな少女を組み合わせた優しくノスタルジックなデザインは、著作権フリーの素材集を切り貼りした地味で無個性な表紙に変わってしまった。アクセントカラーのくすんだピンク色は美術室の写真からスポイトして作られたもので、ユイ先輩だけの秘密のサインだった。&lt;/p&gt;
&lt;p&gt;それが彩りのない間に合わせの質素な表紙に張り替えられただけで、なんだか内容まで凡庸でつまらないストーリーに思えてきて、私はいつの間にか部誌にも寄稿しなくなっていた。月に一度ユイ先輩と顔を合わせるのが当たり前で、それは私の作品を深く読み込んでもらう場だったせいもあるだろう。&lt;/p&gt;
&lt;p&gt;だからもう――イラストなんて依頼すればいい、なんて言ったけど――ユイ先輩には二度と頼むことはできない。私は美術室の外にいるユイ先輩も、VERTで絵文字を使って友人とチャットするユイ先輩も、もちろん卒業した後のユイ先輩も知らなかった。仮に今ユイ先輩と会うことができたとしても、小説を書かなくなった私にはもう興味がないだろう。私みたいに魅力も才能もない凡人は、SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yで嘘みたいなイラストを作って自分を慰めるしかないのだ。&lt;/p&gt;
&lt;p&gt;実は、SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yにはいくつかの &lt;em&gt;マジックワード&lt;/em&gt; が知られていた。マジックワードというのは、一見すると意味のない文字の羅列で、しかしプロンプトに含めるとまるで強烈な意味を付加したように出力が固定されてしまうという一種のバグである。開発者が使うバックドアだと説明されることもあるが、単にランダムなノイズが強化された結果に観察者バイアスがかかっただけという見方が強く、これもインターネットの噂の域を出ない。&lt;/p&gt;
&lt;p&gt;なぜ私がそんなオカルトチックなマジックワードに縋ろうとしているのか。簡単な話である。ユイ先輩が描いてくれた七つの表紙デザインを、私に一時の夢を見せてくれた七色のはかない少女に似たイラストを描くというマジックワードを手に入れたからだ。ユイ先輩の面影を感じるには、彼女がライバルだと張り合ったAIに頼るしかなかった。&lt;/p&gt;
&lt;p&gt;プロンプトに「&lt;span class="norotate"&gt;#DEADA1&lt;/span&gt;」と、たったそれだけ入力する。この短いプロンプトではおよそまともな出力を固定できるとは思えないが、数十秒後にその疑念は覆されることになる。&lt;/p&gt;
&lt;p&gt;3×3に並べられた九枚の画像は、三枚が穏やかな草原と空のイラストで、しかし空気も地面もあの美術室と同じくすんだピンク色で塗られていて判別が難しい。残りの六枚には、六色の――赤色だけが見当たらない――鮮やかな髪色の少女が虚空を見つめる姿が描かれていた。背景に配置された不揃いで境界線が判然としない図形や交差するぐにゃぐにゃとした線は、まるであの部誌のデザインを真似たようで――ユイ先輩だ。私には分かる。このマジックワードはユイ先輩そのものだ。&lt;/p&gt;
&lt;p&gt;人間給餌器は、AIが効率よく学習できるイラストを描き続けるために監禁されたイラストレーターに関する都市伝説だ。こう書くと、まるで人権侵害をも厭わずイラストを吸い上げてAIの奴隷を作り上げるというショッキングなストーリーに見えるが、それは一面的な見方に過ぎない。ユイ先輩ならきっと、AIと真正面からぶつかり合って戦うことを保証された日々を楽しむだろうから。私が知っているユイ先輩よりも、ずっと早く、ずっと上手くなっているはずだ。&lt;/p&gt;
&lt;p&gt;自分の人格と絵を結びつけられないように、一人のイラストレーターではなく、SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yという創造性の集合体に寄与するために絵を描き続け、その成果を確かめるために「&lt;span class="norotate"&gt;#DEADA1&lt;/span&gt;」というマジックワードに自分のアイデンティティを結びつけているのだとしたら――いや、人間給餌器も、マジックワードもただの都市伝説だ。だから、今私の頭に浮かんでいる光景は荒唐無稽な妄想でしかない。&lt;/p&gt;
&lt;p&gt;でも、もしこれが本当なら、ユイ先輩からイラストレーターの顔を奪ってAIに縛り付けたのは私のせいかもしれない――と思ってしまうのはあまりに傲慢だろうか。&lt;/p&gt;
&lt;p&gt;それから私は、「&lt;span class="norotate"&gt;#DEADA1&lt;/span&gt;」から始まる様々なプロンプトをSALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yに与え続けた。SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yはユイ先輩の画風の軸から外れることなく、それでいてAIがかき集めた新鮮な創造性が散りばめられている。今もユイ先輩の隣にいられたなら、こんな絵を見せてくれただろうか――と、私に幻みたいな夢の続きを見せ続けた。&lt;/p&gt;
&lt;p&gt;SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yはユイ先輩ではないし、人格もないただのAIだ。仮にユイ先輩がSALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yに創造性のほんの欠片を食べさせたとしても、SALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yにユイ先輩の魂が宿ることはない。それでも、彼女の「人間から生まれた才能に、人間が勝てないことはないよ」という言葉を思い出さずにはいられなかった。&lt;/p&gt;
&lt;p&gt;「&lt;span class="norotate"&gt;#DEADA1&lt;/span&gt; ユイ先輩ごめんなさい」&lt;/p&gt;
&lt;p&gt;「&lt;span class="norotate"&gt;#DEADA1&lt;/span&gt; 私何も分かってなかった」&lt;/p&gt;
&lt;p&gt;「&lt;span class="norotate"&gt;#DEADA1&lt;/span&gt; またユイ先輩と話したい」&lt;/p&gt;
&lt;p&gt;私から飛び出した無意味なプロンプトのせいで、イラストに一貫性がなくなっていく。折れ曲がった東京タワー、巨大な百合の花、束ねられたネオンサイン。ただの絵の指示で会話しようとしたところで、ユイ先輩もSALL&lt;span class="norotate"&gt;-&lt;/span&gt;Yも答えてくれるわけがない。ユイ先輩のふりをしたAIがデタラメを吐き出す姿は、まるでどんな言葉も無意味だと私を嘲笑っているようだった。でも、もしこのプロンプトがユイ先輩に届くなら、もう少しこのマジックワードに縋っていたい。&lt;/p&gt;
&lt;p&gt;ユイ先輩の隣でずっと絵を見ていたい。ここにユイ先輩がいるのなら、それだけでいい。&lt;/p&gt;
&lt;p&gt;「&lt;span class="norotate"&gt;#DEADA1&lt;/span&gt; ユイ先輩と私しか知らない 最初の部誌のデザインを見せて」&lt;/p&gt;
&lt;p&gt;プログレスバーが満たされる速度が少しずつ遅くなっていく。プロンプトの使いすぎで処理クレジットが減っていたからだ。イテレーションが進むたびに、画面をなぞる指の動きが遅くなる。つまり、それだけ祈るしかない時間が増えるということだ。もしかしたら……きっと。出力が待ち遠しい。動悸が収まらない。呼吸の仕方を忘れてしまう。&lt;/p&gt;
&lt;p&gt;そして、最後のクレジットを使い切ると同時に――赤い髪の少女が寂しげな表情で目の前に現れたかと思うと、彼女から滑らかに伸びた炎のような曲線が私を貫いて、あの日ユイ先輩に抱いた無意味な恋心を再び私に残していった。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>個人サイトのカテゴライズやってみた！</title><link href="https://ama.ne.jp/post/i-ngo-filter-202403/" rel="alternate"/><published>2024-03-23T12:24:00+09:00</published><updated>2024-03-23T12:24:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-03-23:/post/i-ngo-filter-202403/</id><summary type="html">&lt;p&gt;エロって言う方がエロなんですけど！&lt;/p&gt;</summary><content type="html">&lt;h2 id="_1"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;前回、&lt;a href="/post/ltu-balance/"&gt;LTUバランスのこと&lt;/a&gt;という記事で、「&lt;a href="/"&gt;あまねけ！&lt;/a&gt;」は私にとって「『わたし』が限りなく尊重されている、外向きの自己と内向きの自己を自由に表現できる場」であるサイトだと述べました。しかし、これはあくまで私から見た価値や意義であって、客観的な目線からはもっと違った姿に映っているかもしれません。残念ながら、役に立った記事を読んだ人でさえ「あまねけ！は&lt;a href="https://twitter.com/project_of_wt/status/993514405932351488"&gt;何のサイトなのかは謎&lt;/a&gt;」などと思ってしまう不思議サイトである可能性を残しています。&lt;/p&gt;
&lt;p&gt;個人サイトの広さと深さを示すLTUバランスは、サイトの客観的な位置づけを知る一端になるものでした。そのほかにも、あるサイトが客観的に見てどのようなものかを知る指標として、「Webフィルタリングサービスにどのようなカテゴリで登録されているかを分析する」というものが考えられます。&lt;/p&gt;
&lt;p&gt;最近&lt;a href="https://pasokey.net/notes/9r284c1brt"&gt;@sksat@pasokey.net:9r284c1brt&lt;/a&gt;あたりを見て、いろいろなWebフィルタリングサービスであまねけ！がどう分析されてるかを知りたくなったので、まずは一気に結果を並べていきます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~個人サイト・ブログが26.7%、エッチコンテンツが20%、パソカタが13.3%、社会/日常生活が13.3%、ビジネスが13.3%、その他が13.3%の円グラフ" height="371" src="/images/i-ngo-filter-202403/chart.png" width="600"&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Webフィルタリングサービス&lt;/th&gt;
&lt;th&gt;判定カテゴリ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.fortiguard.com/webfilter"&gt;FortiGuard&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Pornography&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://safeweb.norton.com/"&gt;Norton SafeWeb&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;社会/日常生活&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://sitereview.bluecoat.com/"&gt;Symantec WebPulse&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;社会/日常生活&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://global.sitesafety.trendmicro.com/index.php"&gt;Trend Micro Site Safety Center&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;ビジネス/経済&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trend Micro Site Safety Center&lt;/td&gt;
&lt;td&gt;ショッピング&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://support.trustwave.com/wfdbcheck.asp"&gt;Trustwave&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Pornography/Adult Content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://urlfiltering.paloaltonetworks.com/query/"&gt;Palo Alto&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Personal-Sites-and-Blogs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.virustotal.com/gui/home/url"&gt;VirusTotal&lt;/a&gt; (Xcitium Verdict Cloud)&lt;/td&gt;
&lt;td&gt;media sharing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VirusTotal (alphaMountain.ai)&lt;/td&gt;
&lt;td&gt;Personal Sites/Blogs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VirusTotal (alphaMountain.ai)&lt;/td&gt;
&lt;td&gt;Pornography&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VirusTotal (Forcepoint ThreatSeeker)&lt;/td&gt;
&lt;td&gt;information technology&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.zenarmor.com/site-classification"&gt;Zenarmor&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Technology and Computer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://tools.zvelo.com/"&gt;zvelo&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Personal Pages &amp;amp; Blogs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.cyren.com/security-center/url-category-check-gate"&gt;Cyren&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;news&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.brightcloud.com/tools/url-ip-lookup.php"&gt;Webroot BrightCloud&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Personal sites and Blogs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;判定結果は13種類のサービスから15個取得できました。これらの傾向と割合を分析すると、中立な第三者の視点から客観的に見たあまねけ！は……&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;技術や日常生活、写真などをシェアする……&lt;/li&gt;
&lt;li&gt;ビジネスを意識していて……&lt;/li&gt;
&lt;li&gt;でも、ちょっぴりエッチな要素も含んだ……&lt;/li&gt;
&lt;li&gt;個人サイトやブログ！ &lt;img alt=":relaxed:" class="emoji" height="16" src="/emojis/263a.png" width="16"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;と、おおよそ半分くらいは私の思惑通りの素敵な個人サイトとして評価されているようでした。ビジネス性もニュース性も持たせたつもりはありませんが、ひとまず安心です。ただし、これは変わりゆく評価を2024年3月に切り出したものであり、来年には暴力と武器の &lt;img alt=":secret:" class="emoji" height="16" src="/emojis/3299.png" width="16"&gt; 情報サイトになっている可能性も否定はできません。&lt;/p&gt;
&lt;p&gt;話したいことは1000字ちょっとのここまでで終わりなのですが、収益化のためには8分間以上必要らしいので、これ以降は淡々と判定結果のスクショを並べていこうと思います。みなさんも、いいねボタンを押したついでに自分のサイトのカテゴリを判定してみてくださいね。&lt;/p&gt;
&lt;h2 id="_2"&gt;フィルタリングサービスいろいろ&lt;/h2&gt;
&lt;h3 id="fortiguard"&gt;FortiGuard&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.fortiguard.com/webfilter"&gt;FortiGuard: Web Filter Lookup&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="FortiGuardの結果: Pornography" height="416" src="/images/i-ngo-filter-202403/fortiguard.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;有名な統合脅威管理ソリューションが提供するデータベースから検索できるようですが、ただのテキストサイトを捕まえてPornhubレベルのPornography呼ばわりとは驚きました。ちょっとエッチな単語に敏感みたいです。かわいいですね。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mature content websites (18+ years and over) which present or display sexual acts with the intent to sexually arouse and excite.&lt;br&gt;
Examples: xvideos.com, xhamster.com, pornhub.com, xnxx.com&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.fortiguard.com/wftest/14.html"&gt;FortiGuard Web Filtering Test Page: Pornography definition&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="norton-safeweb"&gt;Norton SafeWeb&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://safeweb.norton.com/"&gt;Norton SafeWeb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Norton SafeWebの結果: 社会/日常生活" height="426" src="/images/i-ngo-filter-202403/norton.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;Nortonも有名ですね。Safewebはブラウザ拡張機能としてURLをチェックしてくれるもので、コンテンツフィルタリングよりはマルウェア防御に向いているものです。カテゴリは安定の「社会/日常生活」でした。&lt;/p&gt;
&lt;h3 id="symantec-webpulse"&gt;Symantec WebPulse&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://sitereview.bluecoat.com/"&gt;Symantec Sitereview&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Symantec WebPulseの結果: 社会/日常生活" height="366" src="/images/i-ngo-filter-202403/symantec.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;SymantecもNortonくらい有名かな？　Symantecは2019年にBroadcomが買収していて、Broadcomのサービスの一部としてコンテンツフィルタリングを提供しているみたいです。こちらも「社会/日常生活」でした。&lt;/p&gt;
&lt;h3 id="trend-micro-site-safety-center"&gt;Trend Micro Site Safety Center&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://global.sitesafety.trendmicro.com/index.php"&gt;Trend Micro Site Safety Center&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/i-ngo-filter-202403/trendmicto.png"&gt;&lt;img alt="Trend Micro Site Safety Centerの結果: ビジネス/経済・ショッピング" height="548" src="/images/i-ngo-filter-202403/trendmicto_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Trend Microは何年か前はいろいろ悪評があった気がしますが、今はどうでしょうか？　最近ウイルス対策ソフト自体が下火な印象で見かける機会が減りました。&lt;/p&gt;
&lt;p&gt;ただ、あまねけ！を「ビジネス/経済」とか「ショッピング」に分類するのは、情報不足という言い訳じみたカテゴライズを勘案してもちょっと性能が低そうです。&lt;/p&gt;
&lt;h3 id="trustwave"&gt;Trustwave&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://support.trustwave.com/wfdbcheck.asp"&gt;Trustwave Check Filter List Entry&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Trustwaveの結果: Pornography/Adult Content" height="150" src="/images/i-ngo-filter-202403/trustwave.png" width="599"&gt;&lt;/p&gt;
&lt;p&gt;マネージドセキュリティサービスプロバイダーのリーディングカンパニーとしてとして企業のセキュリティ対策に役立っています。でも、結果は「Pornography/Adult Content」と振るわず……エロって言う方がエロなんですけど &lt;img alt=":bangbang:" class="emoji" height="16" src="/emojis/203c.png" width="16"&gt;&lt;/p&gt;
&lt;h3 id="palo-alto"&gt;Palo Alto&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://urlfiltering.paloaltonetworks.com/query/"&gt;Palo Alto Networks URL filtering&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Palo Altonの結果: Personal-Sites-and-Blogs" height="374" src="/images/i-ngo-filter-202403/paloalto.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;世界初の次世代ファイアウォールでどんなセキュリティ課題も克服してくれるらしいです。確かに「Personal-Sites-and-Blogs」という結果は信頼に値するかも。&lt;/p&gt;
&lt;h3 id="virustotal"&gt;VirusTotal&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.virustotal.com/gui/home/url"&gt;VirusTotal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="VirusTotalの結果: media sharing・Personal Sites/Blogs, Pornography・information technology" height="474" src="/images/i-ngo-filter-202403/virustotal.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;ファイルやWebサイトのオンラインスキャンを行ってくれるサービスです。サイトのカテゴライズは、VirusTotal自身ではなくいくつかのフィルタリングサービスの結果を代わりに表示しています。「media sharing」「Personal Sites/Blogs, Pornography」「information technology」と、なんだかあまねけ！の本質を突いた感じの組み合わせが出てきてしまいました。&lt;/p&gt;
&lt;h3 id="zenarmor"&gt;Zenarmor&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.zenarmor.com/site-classification"&gt;Zenarmor Website URL Category Checker&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Zenarmorの結果: Technology and Computer" height="322" src="/images/i-ngo-filter-202403/zenarmor.png" width="585"&gt;&lt;/p&gt;
&lt;p&gt;お手頃な統合ファイアウォールっぽい。これ以降は私があまり知らないものが並びます。結果は「Technology and Computer」で好感が持てます。&lt;/p&gt;
&lt;h3 id="zvelo"&gt;zvelo&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://tools.zvelo.com/"&gt;zveloLIVE: Check A URL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/i-ngo-filter-202403/zvelo.png"&gt;&lt;img alt="zveloLIVEの結果: Personal Pages &amp;amp; Blogs" height="298" src="/images/i-ngo-filter-202403/zvelo_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;脅威分析とURLのカテゴライズが専門のようです。結果は「Personal Pages &amp;amp; Blogs」ととても穏やかで正しい。エッチなコンテンツはないというお墨付きもいただきました。&lt;/p&gt;
&lt;h3 id="cyren"&gt;Cyren&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.cyren.com/security-center/url-category-check-gate"&gt;Cyren: Website URL Category Check&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Cyrenの結果: news" height="448" src="/images/i-ngo-filter-202403/cyren.png" width="555"&gt;&lt;/p&gt;
&lt;p&gt;インターネットセキュリティの総合ソリューションを提供している社みたいです。えっ「News」とは……？&lt;/p&gt;
&lt;h3 id="webroot-brightcloud"&gt;Webroot BrightCloud&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.brightcloud.com/tools/url-ip-lookup.php"&gt;Webroot BrightCloud: URL/IP Lookup&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Webroot BrightCloudの結果: Personal sites and Blogs" height="411" src="/images/i-ngo-filter-202403/brightcloud.png" width="599"&gt;&lt;/p&gt;
&lt;p&gt;脅威インテリジェンスサービスで最新の脅威に対する積極的な保護対策を提供しているらしい。結果は「Personal sites and Blogs」でやはり問題なし。&lt;/p&gt;
&lt;h2 id="_3"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;今回の結果では13サービス中3サービスで「エッチなのはダメ！」に分類されたようですが、明らかなエッチテキストを含むサイトへの判定としてはちょっと甘すぎないか？というのが正直な印象でした。まさか、stewpotくんが書く&lt;a href="https://twitter.com/stewpot_cat/status/1275119561872773120"&gt;本物のエッチショップに台本として持ち込まれるほどのテキスト&lt;/a&gt;がエッチじゃないとでも言うのでしょうか？　イラストや写真がなければポルノになりえないとでも？　……いや、これはあまりに穿った分析です。&lt;/p&gt;
&lt;p&gt;シェアの高いサービスでは軒並み&lt;ruby&gt;&lt;rb&gt;Pornography&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;エッチ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;判定できているところを見ると、単に日本語（=英語以外）の分析能力の差が出ている、というのが実際でしょう。愚鈍さで十分説明されることに悪意を見出してはいけません。ただ、今回の淫語判定くらいなら実害は小さそうに見えますが、日本語の隠語まみれの薬物販売情報サイトも簡単に判定漏れしそうで気になりますね。&lt;/p&gt;
&lt;p&gt;子を持つ親としては、とっても心配です。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>LTUバランスのこと</title><link href="https://ama.ne.jp/post/ltu-balance/" rel="alternate"/><published>2024-03-19T16:58:00+09:00</published><updated>2024-03-19T16:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-03-19:/post/ltu-balance/</id><summary type="html">&lt;p&gt;たのしい個人サイト主成分分析&lt;/p&gt;</summary><content type="html">&lt;p&gt;「&lt;a href="/"&gt;あまねけ！&lt;/a&gt;」が &lt;code&gt;ama.ne.jp&lt;/code&gt; というドメインで世界に公開されてから、今年で9周年になります。&lt;/p&gt;
&lt;p&gt;振り返ってみると、あまねけ！の前身は、 &lt;code&gt;ktgr.xyz&lt;/code&gt; や &lt;code&gt;forestgirls.com&lt;/code&gt; でした。最初は小さなVPSで手書きのHTMLを配信していましたが、引っ越しを機に自宅サーバで&lt;a href="https://www.tornadoweb.org/"&gt;Tornado&lt;/a&gt;ベースのブログシステムを立ち上げたり、HSTS preload listに &lt;code&gt;ama.ne.jp&lt;/code&gt; を登録したりしたものです。現在では、&lt;a href="https://getpelican.com/"&gt;Pelican&lt;/a&gt;ベースの静的サイトジェネレータシステムをもとに、複数のホスティングサービスから配信できるよう整備しています。&lt;/p&gt;
&lt;p&gt;あまねけ！は、&lt;a href="https://amane.im/"&gt;かたぎりあまね&lt;/a&gt;が個人で継続的に管理・更新しているWebサイトです。自分でカスタマイズしたHTMLテンプレートを元に、自分で作成したコンテンツを公開しています。個人が管理・更新しているという点で、あまねけ！は &lt;strong&gt;個人サイト&lt;/strong&gt; に分類されうるでしょう。&lt;/p&gt;
&lt;p&gt;しかし、個人サイトを個人サイトたらしめているのは、「個人が管理している」という点だけではありません。あなたはどんなサイトを見たときに「これは個人サイトであることだなぁ」と思いますか？　みなさんが同僚と個人サイトについて語り合うときは、具体的なページの姿と共にイメージが浮かんでいるはずです。&lt;/p&gt;
&lt;p&gt;私が個人サイトとしてのあまねけ！で実現したいことは、おおまかに分類すると以下の3つにまとめられます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;「かたぎりあまね」という人物のアウトプットを集約する独占的な場所になること&lt;/li&gt;
&lt;li&gt;「わたし」が書いてもよいが、「わたし」から離れても価値がある情報を配信すること&lt;/li&gt;
&lt;li&gt;「わたし」が書くことに意味があり、役に立つことを意図しない記録を配信すること&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これらを一言でまとめると「『わたし』が限りなく尊重されている、外向きの自己と内向きの自己を自由に表現できる場」とでも表現できるでしょうか。つまり「わたし」とそれを見つめる「読者」だけがいて、SNSに蔓延る性格の悪い根無し草は近寄らない。そういう場所です。こう書くと、とても個人サイトっぽくないですか？&lt;/p&gt;
&lt;p&gt;実は最近、このあまねけ！3条項について考えを深める機会がありました。きっかけは、&lt;a href="https://pasokey.net/notes/9qtd5pkp5s"&gt;最強の個人個人サイトサイト（個人サイトの情報をまとめている、最強の個人サイト）&lt;/a&gt;を名乗っている&lt;a href="https://nodenarium.net/"&gt;Nodenarium&lt;/a&gt;という個人サイトのリンク集です。「『個人』をN回繰り返してから『サイト』をN回繰り返す」という一般化は正規言語で書けないので、正規言語で書けないのはなんか強そうな感じがしますね。それに個人サイトは &lt;em&gt;善い&lt;/em&gt; もので、 &lt;em&gt;善い&lt;/em&gt; ものを集めるとやっぱり最強になりそうです。&lt;/p&gt;
&lt;p&gt;さて、こちらのサイトはリンク集への掲載申請の窓口を設けていて、申請におけるガイドラインを公開しています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;WebサイトがNodenariumに掲載されるためには、以下の審査基準を満たす必要があります。*のついた項目は橘いおねの個人的な裁量によって判断されます。コンテンツが十分に良質であればこれらの基準には厳密に一致する必要はないので、基準に一致しているか不安な場合でも恐れずに申請を送信してみてください。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;個人、または同人サークルなどの特定少数人が運営するWebサイトであること。&lt;/li&gt;
&lt;li&gt;noteやtumblrなどの既存のプラットフォーム上にないこと。&lt;/li&gt;
&lt;li&gt;2015年以降に誕生または全面改訂が行われたWebサイトであること。&lt;/li&gt;
&lt;li&gt;外部への情報発信を目的としない私的な内容の投稿（日記やスナップなど）*を3つ以上含み、最終更新が掲載申請の直近1年以内であること。&lt;/li&gt;
&lt;li&gt;コンテンツが十分に良質*であること。大量のアフィリエイト記事を含むなど、Nodenariumを宣伝の場に使おうとしていると判断した場合は申請を却下します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;cite&gt;&lt;a href="https://nodenarium.net/submit"&gt;Nodenarium&lt;/a&gt; 審査基準&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;審査基準の内容は形式的でありながら、第4条の「私的な内容の投稿を3つ以上含むべき」という部分は、このリンク集の管理人のいう「個人サイト」の定義を示唆する重要な点といえるでしょう。&lt;/p&gt;
&lt;p&gt;この基準に照らしてあまねけ！の現状を確認したところ、ひょっとしたら最近個人サイトとしてのあり方がブレてきているかも？と感じたわけです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt; 「かたぎりあまね」が運営するWebサイトです&lt;/li&gt;
&lt;li&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt; &lt;code&gt;ama.ne.jp&lt;/code&gt; は既存のどのプラットフォーム上にもありません&lt;/li&gt;
&lt;li&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt; あまねけ！は2015年に誕生したWebサイトです&lt;/li&gt;
&lt;li&gt;&lt;img alt=":question:" class="emoji" height="16" src="/emojis/2753.png" width="16"&gt; 月1回以上の更新を目指していますが、 &lt;strong&gt;私的な内容の投稿は少ないかもしれません&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt; コンテンツは少なくとも独創性があり、作者に結びついた創作性を持っています&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;特に気になったのが、私的な内容の投稿の少なさです。あまねけ！3条項でいうと、第3条の「内向きの自己」にあたります。最近の記事は、完成品の百合小説と&lt;a href="https://zenn.dev/"&gt;Zenn&lt;/a&gt;に同時投稿する技術解説ばかりになってきている気がします。綺麗な作品を並べるだけではなく、もっと「わたし」の内面を出すべきか……と、印象や定性的な評価に終始しても仕方ないので、公開から現在までどのような記事の傾向があるのかまとめることにしました。&lt;/p&gt;
&lt;p&gt;あまねけ！の記事傾向を分析するために、私が &lt;strong&gt;LTUバランス&lt;/strong&gt; と名付けた指標を導入します。これは、コンテンツを内容やカテゴリに基づいて以下の「L」「T」「U」に分類して&lt;sup id="fnref:overlap"&gt;&lt;a class="footnote-ref" href="#fn:overlap" title="必ずしも1つに決めなくてもよいですが、3つ全てに分けるべきではありません。"&gt;1&lt;/a&gt;&lt;/sup&gt;、必要なら文字数などで重みを付けて&lt;sup id="fnref:weight"&gt;&lt;a class="footnote-ref" href="#fn:weight" title="例えば、5000字ごとに追加で1ポイントを与えるなど。"&gt;2&lt;/a&gt;&lt;/sup&gt;集計した上で、それぞれの割合を算出するものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L: 外向きの「わたし」を形作る最も大きな趣味に関するコンテンツを振り分けます。あまねけ！では、&lt;a href="/category/lily/"&gt;lily&lt;/a&gt;やstewのような小説や台本風テキストなどの成果物です。&lt;/li&gt;
&lt;li&gt;T: 外向きの「わたし」を形作る2番目に大きな趣味に関するコンテンツを振り分けます。あまねけ！では、&lt;a href="/category/tech/"&gt;tech&lt;/a&gt;のようなあまり一般的でない技術的解説などの成果物です。&lt;/li&gt;
&lt;li&gt;U: LにもTに属さないコンテンツを振り分けます。Uにはしばしば読解しにくい、あるいは完成度が低い、礼儀を欠いていたり根拠に乏しい主張が含まれます。あまねけ！では、&lt;a href="/category/ugoki/"&gt;ugoki&lt;/a&gt;や&lt;a href="/category/shuzai/"&gt;shuzai&lt;/a&gt;のような思索や私生活の記録、思想の表明、文章の断片などが当てはまります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この指標のうち「L」と「T」は個人サイトの &lt;em&gt;広さ&lt;/em&gt; に繋がります。このサイトに「何が」書かれているかを示す平面的な姿です。外向きの役に立つコンテンツは多くの人や検索エンジンの注目を集め、サイトへの流入を増やす効果を持ちます。一方、「U」は個人サイトの &lt;em&gt;深さ&lt;/em&gt; に繋がるもので、「誰が」このサイトを書いているのかを明らかにするものです。一見すると私的で、ナンセンスで、無意味な記述でも、その塊は個人サイトに人間的な奥行きを与えます。&lt;/p&gt;
&lt;p&gt;LTUバランスでは、広いけれども浅いサイトや、逆に狭くて深いだけのサイトには、個人サイトとしての魅力が宿らないと考えます。外向きの自己と内向きの自己をバランスよく含むには、LとTの合計がUと等しくなるべきです。LとTのバランスについてはある程度差があると思いますが、ここでは L:T:U=1:1:2 と仮定します。&lt;/p&gt;
&lt;p&gt;指標はある程度一般化しているので、もしかしたらそのまま他の個人サイトにも適用できるかもしれませんし、目指す方向性やコンテンツの性質に合わせて調整する必要があるかもしれません。趣味の数に応じてLUバランスになったり、LSTUバランスになったりするでしょう。&lt;/p&gt;
&lt;p&gt;ちなみに、LTUというのは&lt;a href="/category/lily/"&gt;lily&lt;/a&gt;、&lt;a href="/category/tech/"&gt;tech&lt;/a&gt;、&lt;a href="/category/ugoki/"&gt;ugoki&lt;/a&gt;の頭文字を語呂がよくなるように並べただけで、あまり意味はないです。LU、LTU、LSTU、LRSTU、……と拡張できるように見えるのがいいところです。&lt;/p&gt;
&lt;p&gt;では、実際にあまねけ！のLTUバランスを確認してみましょう！　今回は、カテゴリベースで1記事1ポイントの簡易的なLTUを採用します。これでも割と指標としては有効で、わざわざ手間をかけて細かくカテゴリ配分や重みを指定してもあまり意味はなさそうです。&lt;/p&gt;
&lt;!--
grep ./content/ -o -R -e '^Category: [a-zA-Z]*' -e '^Date: [0-9]\{4\}' \
  | sed -e 's/Date: //g' | sed -e 's/Category: /|/g' | sed -e 's/^[^:]*://' | sed -z 's/\n|/ | /g' \
  | grep -v 'report' | grep -v '1970' \
  | sed -e 's/lily\|stew/L/g' | sed -e 's/tech/T/g' | sed -e 's/ugoki\|shuzai\|doll\|drawing/U/g' \
  | grep 20XX
--&gt;

&lt;p&gt;&lt;img alt="年ごとのLTUバランスを棒グラフで比較" height="371" src="/images/ltu-balance/ltubar.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="2016年、2023年、全体のLTUバランスをレーダーチャートで比較" height="290" src="/images/ltu-balance/radar.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;やっぱりここ一年ほどの体感は間違っておらず、2023年のUが低かったことが分かります。2023年の&lt;a href="/category/ugoki/"&gt;ugoki&lt;/a&gt;には&lt;a href="/post/separation-journey/"&gt;分籍旅行のこと&lt;/a&gt;という個人的な名作もありますが、記事数がよく伸びているのはTで、確かにこれも違和感がありません。2022年に異様にUが多いのは文学フリマの振り返りがシリーズ記事になっているからでしょう。「シリーズ記事は各記事に1ポイントを按分する」というルールなどを追加すべきかもしれません。&lt;/p&gt;
&lt;p&gt;開設当初～2019年にかけてはLがぐんぐん伸びてきており、あまねけ！を作った当初からL（=創作）を頑張ろうとしていたことが分かります。2020年はコロナ禍と就職の年で、生活習慣やライフステージの変化からT（=技術）が伸びていった……と、分析することもできるでしょう。&lt;/p&gt;
&lt;p&gt;ついでに、理想のバランスからどれほど離れているかについても可視化してみましょう。百分率ベースの割合について、LとTの平均値を25、Uの平均値を50と仮定した標準偏差の変形のようなものです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="$$s_{\mathrm{LTU}}=\sqrt{\frac{(L-25)^2+(T-25)^2+(U-50)^2}{3}}$$" height="57" src="/images/ltu-balance/001.png" width="530"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="年ごとのLTUバランスのばらつきを折れ線グラフで比較" height="371" src="/images/ltu-balance/ltuvar.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;あまねけ！開設の当初から2019年まで、Tを犠牲にLを伸ばしてきた点がばらつきとして現れていますね。2020年以降も、LTUバランスで見ると不安定な期間が続いているのが分かります。2021年は記事傾向の変化の過渡期であり、偶然バランスがよかっただけかもしれません。&lt;/p&gt;
&lt;p&gt;さて、2024年のあまねけ！はどこに進むといいのでしょうか？　LTUバランスを見れば分かるとおり、 &lt;em&gt;個人サイトらしさ&lt;/em&gt; を保つためには、もっと「わたし」の内面や私生活を綴るとよさそうですね。つまるところ、人生にクネクネする時間が足りないのかもしれません。&lt;/p&gt;
&lt;p&gt;今はもう終わってしまった&lt;a href="https://news.amane.moe/"&gt;あまねけ！ニュースレター&lt;/a&gt;ではそういう記事がいくつかあって、確かに今のあまねけ！にはない書き心地を感じていたタイミングがありました。&lt;/p&gt;
&lt;p&gt;LTUバランスは人生のバランスの現れです。長年追っているインターネット人（びと）の個人サイトを見ていると、楽しげでクリエイティブな投稿が続く時期と、投稿頻度が下がって鬱々とした思索が綴られる時期がくっきり分かれていることがあります。個人サイトに人生の大きな動きが刻まれていくと考えると、SNSやナレッジコミュニティが充実した現代で、わざわざ手間をかけて自分だけの個人サイトを作る意味を忘れずにいられるのかもしれません。&lt;/p&gt;
&lt;p&gt;みなさんの個人サイトのLTUも、ぜひ教えてくださいね。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:overlap"&gt;
&lt;p&gt;必ずしも1つに決めなくてもよいですが、3つ全てに分けるべきではありません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:overlap" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:weight"&gt;
&lt;p&gt;例えば、5000字ごとに追加で1ポイントを与えるなど。&amp;#160;&lt;a class="footnote-backref" href="#fnref:weight" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>JPEGさんは赤がお嫌い？</title><link href="https://ama.ne.jp/post/how-jpeg-break-red-girl/" rel="alternate"/><published>2024-03-15T11:34:00+09:00</published><updated>2024-03-15T11:34:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-03-15:/post/how-jpeg-break-red-girl/</id><summary type="html">&lt;p&gt;JPEGさんって、写真がお好きなんでしょう？&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#jpeg"&gt;「JPEGは赤が苦手」の謎&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#jpeg_1"&gt;「JPEGは赤が苦手」のウワサ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;仮説&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#jpeg_2"&gt;JPEGの処理方法から見た「赤」の扱い&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#jpeg_3"&gt;JPEGの処理の流れ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#rgbycbcr"&gt;RGBとYCbCr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;クロマサブサンプリング&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;離散コサイン変換と量子化&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;人間の目から見た「赤」の扱い&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;おまけ: 「赤」を劣化させない処理の検討&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;&lt;img alt="~JPEGさんのせいで赤毛がノイズまみれになって悲しそうな女の子のイラスト" height="400" src="/images/how-jpeg-break-red-girl/top.jpg" width="400"&gt;&lt;br&gt;
&lt;cite&gt;generated by ChromaXL_v1b&lt;sup id="fnref:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="原画像およびその派生物はCC BY 4.0でライセンスされていません。"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;「JPEGさんって、私みたいな赤毛の子がお嫌いなのかしら？　だからブロックノイズでいっぱいにしたのね」&lt;/p&gt;
&lt;h2 id="jpeg"&gt;「JPEGは赤が苦手」の謎&lt;/h2&gt;
&lt;p&gt;みなさんは「JPEG」という画像フォーマットについて、どのような知識あるいはイメージを持っていますか？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;非可逆圧縮を行うフォーマットである&lt;/li&gt;
&lt;li&gt;圧縮率を調整する「品質」というパラメータがある&lt;/li&gt;
&lt;li&gt;写真の圧縮が得意なフォーマットである&lt;/li&gt;
&lt;li&gt;アニメ調のイラストやドット絵にJPEGを使うとノイズが多くなる&lt;/li&gt;
&lt;li&gt;容量が小さいのでインターネット上でよく使われる&lt;/li&gt;
&lt;li&gt;&lt;em&gt;ここにあなたのJPEGに対するイメージを書く&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="jpeg_1"&gt;「JPEGは赤が苦手」のウワサ&lt;/h3&gt;
&lt;p&gt;この他によく聞くものとして「赤色を表現するのが苦手」というイメージを持っている人もいるかもしれません。&lt;a href="https://ja.wikipedia.org/wiki/JPEG"&gt;Wikipedia&lt;/a&gt;にも「特に赤には弱く、赤の部分でノイズが発生しやすい」と記されており、画像をよく扱う人にとってはもはや常識に近い知識といえます。&lt;/p&gt;
&lt;p&gt;Googleで「JPEG 赤」「JPEG 赤 劣化」などと調べても同様に「JPEGは赤色が劣化しやすく、ノイズが発生しやすいのだ」という記述がいくらでも見つかります。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;JPG形式は圧縮によって赤の色域が劣化しやすい&lt;br&gt;
&lt;cite&gt;&lt;a href="https://reikawatanabe.com/img-file-extension-difference/"&gt;JPGは赤が苦手？画像拡張子の種類や違い、劣化を防ぐ選び方とは？ | Beginner's Design Note&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;特に赤には弱く、小さくすると赤の部分でノイズがよく発生します。&lt;br&gt;
&lt;cite&gt;&lt;a href="http://wwwb.pikara.ne.jp/ogawa-giken/image_process/image_051.html"&gt;小川技研サイト: jpeg/gif&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;JPGなら赤が劣化するのは避けられません。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13208620288"&gt;メディバンで書き出しをすると赤色が劣化してしまうのですがどうしたらいいですか？ - Yahoo!知恵袋&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;jpgは赤系の色が特に劣化しやすいよ。&lt;br&gt;
Twitterにアップする画像は自動的にjpgに変換されるから、赤の多い画像は画質が悲惨になりがちだよ。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/HitorinoNight/status/1018512947583176704"&gt;ものろーぐ（@HitorinoNight）:1018512947583176704&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;まあただ、jpgだと赤がめちゃくちゃノイズ入ることすら知らないトピ主だからな…そんなこと知らないか。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://cremu.jp/topics/32541"&gt;ツイッターで画像を投稿すると本当に画質が悪くなって困っています。 | cremu(クレム)&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ここでいう「赤色が劣化する」「赤色の部分でノイズが発生する」とは、おおよそ以下のような現象を指していそうです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~赤色が劣化する画像例の比較" height="256" src="/images/how-jpeg-break-red-girl/red-degradation.png" width="528"&gt;&lt;/p&gt;
&lt;p&gt;鮮やかな赤色の線でできた左の原画像と比較して、右のJPEG画像は赤色がくすんでいて、周囲にもやもやとしたノイズが出ています。&lt;/p&gt;
&lt;p&gt;しかし、なぜこの現象が起こるのか、その理由について深く掘り下げている人はあまり見つかりません。多くの人が経験的に常識だと思っているのに、誰もその仕組みを知らないなんてなんだか不思議ですね。少なくともJPEGは現代の人間が理解できるアルゴリズムであり、神秘的な力を借りたり、未来の科学技術を先取りした &lt;em&gt;魔法圧縮&lt;/em&gt; ではないはずです。&lt;/p&gt;
&lt;h3 id="_2"&gt;仮説&lt;/h3&gt;
&lt;p&gt;ここで、なぜJPEGで赤色が劣化するのか、いくつか仮説を考えてみます。&lt;/p&gt;
&lt;p&gt;まず考えられるのは、JPEGというフォーマット自体が赤色の情報を捨てて圧縮している、という理由です。なぜ赤色を捨てるのか……写真によく登場するのが植物の緑や空の青で、赤色が入るケースは少ないので設計段階で赤色を捨てることにした、というのはどうでしょう？　インターネットで広く使われるにはあまりに出来が悪い気がしますが、そこは業界のゴリ押しで普及させて――いや、仮説にしても無茶ですね。&lt;/p&gt;
&lt;p&gt;あるいは、JPEG自身は特定の色を捨てるよう設計されているわけではないが、人間の目には赤色の差がよく分かる傾向がある、というのもあるかもしれません。色相に関係なく同じような劣化やノイズが発生していても、赤色に近い部分だけを見分けやすいなら「JPEGのせいで赤色が劣化する」と表現したくなるでしょう。&lt;/p&gt;
&lt;p&gt;もう一つあるとすれば、JPEGが苦手なパターンと赤色が一緒に出てくる傾向が強い、という理由でしょうか。JPEGは細かいパターンの圧縮が苦手なはずで、そのような細かい表現に赤色が多ければ「赤色はノイズが出やすい」という印象に繋がりそうです。赤が劣化したという悪い記憶ばかり残っているマーフィーの法則っぽい主張で、これは合理的な検証が難しいかもしれません。&lt;/p&gt;
&lt;h2 id="jpeg_2"&gt;JPEGの処理方法から見た「赤」の扱い&lt;/h2&gt;
&lt;p&gt;さて、まずはJPEGというフォーマット自体について掘り下げてみましょう。JPEGは可逆圧縮に対応していたり、表色系としてCMYKを使ったりできますが、それらの解説は他サイトやコメントでの指摘に譲ります。ここでは、RGBで表現された原画像を、YCbCrを表色系とした不可逆圧縮なJPEGに変換する過程について考えていきます。&lt;/p&gt;
&lt;h3 id="jpeg_3"&gt;JPEGの処理の流れ&lt;/h3&gt;
&lt;p&gt;JPEGは画像を以下の手順で圧縮します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;原画像のRGB表現をYCbCr表現に変換する&lt;/li&gt;
&lt;li&gt;必要に応じてCb成分とCr成分を間引く（クロマサブサンプリング）&lt;/li&gt;
&lt;li&gt;各成分の2次元空間表現を8x8ピクセルのブロックに分割する&lt;/li&gt;
&lt;li&gt;離散コサイン変換で8x8ブロックを周波数領域に変換する&lt;/li&gt;
&lt;li&gt;得られた周波数領域表現の低周波部分を優先して量子化する&lt;/li&gt;
&lt;li&gt;量子化されたデータをハフマン符号で圧縮する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;気になるのは、RGBからYCbCrに変換して間引く部分（1と2）と、それを離散コサイン変換・量子化して情報量を削減する部分（4と5）ですね。それぞれ表色系が変わったり、色の成分が削減されている部分です。3はただのデータ分割、6は可逆圧縮なので、画像の品質とは関係ありません。&lt;/p&gt;
&lt;h3 id="rgbycbcr"&gt;RGBとYCbCr&lt;/h3&gt;
&lt;p&gt;そもそもYCbCrという表色系は、明るさを示すY、青色っぽさを示すCb、赤色っぽさを示すCrを組み合わせて色を表現するものです。RGBからYCbCrへの変換でビット数を減らすわけではないので、直ちに情報量が変わるわけではありません。しかし、人間の視覚が持つ「明るさの変化には敏感で、色の変化には鈍感」という特徴を踏まえると、RGBでは全てのビットが均等に重要である&lt;sup id="fnref:rgb-bit-rate"&gt;&lt;a class="footnote-ref" href="#fn:rgb-bit-rate" title="RGBの各成分が明るさに寄与する割合を考えると、厳密にはB→R→Gの順に重要さが高いというのが正しいです。"&gt;1&lt;/a&gt;&lt;/sup&gt;一方、YCbCrではYに重要な情報が集まっていると考えることができます。逆に、CbとCrは人間の視覚にとっては薄い情報といえます。&lt;/p&gt;
&lt;p&gt;そのため、CbとCrを周辺のピクセルと合わせて間引いても、人間の視覚から見るとあまり影響がありません。これがクロマサブサンプリングと呼ばれる操作で、水平方向に対して2ピクセル→1ピクセルに間引いたり（4:2:2）、水平・垂直方向の両方に4ピクセル→1ピクセルに間引いたり（4:2:0）することができます。&lt;/p&gt;
&lt;p&gt;ここで、一定のビット数を保ってRGB→YCbCrに変換し、さらにRGBに戻すことで、どのような色が失われやすいかを考えてみましょう。これは、原画像をJPEGにエンコードして、変換後のJPEGファイルを表示する処理に相当します。RGBとYCbCrの変換には&lt;a href="https://ja.wikipedia.org/wiki/YUV"&gt;ITU-R BT.601&lt;/a&gt;を使います。&lt;/p&gt;
&lt;p&gt;&lt;img alt="RGB→YCbCr→RGB変換の概略図" height="240" src="/images/how-jpeg-break-red-girl/rgb-ycbcr-rgb.png" width="750"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Counter&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;

&lt;span class="c1"&gt;# RGB空間の定義（24bit）&lt;/span&gt;
&lt;span class="n"&gt;RGB&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;meshgrid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# RGB -&amp;gt; YCbCr変換（24bit）&lt;/span&gt;
&lt;span class="n"&gt;Y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.299&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.587&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.114&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;Cb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.1687&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.3313&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;Cr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="mf"&gt;0.5&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.4187&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.0813&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# YCbCr -&amp;gt; RGB変換（24bit）&lt;/span&gt;
&lt;span class="n"&gt;R&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;1.402&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Cr&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;G&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.34414&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Cb&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.71414&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Cr&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;1.772&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Cb&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# 結果出力&lt;/span&gt;
&lt;span class="n"&gt;rgb_unique_set&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;rgb_all_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;256&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;span class="n"&gt;rgb_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rgb_unique_set&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;rgb_part_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(((&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;R&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;G&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])),&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;R&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;r_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(((&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;R&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;G&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])),&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rgb_unique_set&lt;/span&gt;
&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;R&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;g_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(((&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;G&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;R&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])),&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rgb_unique_set&lt;/span&gt;
&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;G&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;b_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(((&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;R&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;G&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])),&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;rgb_unique_set&lt;/span&gt;
&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;rgb_rate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;rgb_count&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;256&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;span class="n"&gt;r_rate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;r_count&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;g_rate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;g_count&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;b_rate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;b_count&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&amp;quot;RGBの復元率: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rgb_rate&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;% (&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rgb_all_count&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;gt;8&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rgb_count&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;gt;7&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;)&lt;/span&gt;
&lt;span class="s2"&gt;R  の復元率: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;r_rate&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;% (&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rgb_part_count&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;gt;8&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;r_count&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;gt;7&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;)&lt;/span&gt;
&lt;span class="s2"&gt; G の復元率: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;g_rate&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;% (&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rgb_part_count&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;gt;8&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;g_count&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;gt;7&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;)&lt;/span&gt;
&lt;span class="s2"&gt;  Bの復元率: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;b_rate&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;.2f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;% (&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;rgb_part_count&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;gt;8&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; -&amp;gt; &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;b_count&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;gt;7&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;)&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;対象&lt;/th&gt;
&lt;th&gt;復元率&lt;/th&gt;
&lt;th&gt;元の色数&lt;/th&gt;
&lt;th&gt;変換後の色数&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;色空間全体&lt;/td&gt;
&lt;td&gt;23.86%&lt;/td&gt;
&lt;td&gt;16,777,216色&lt;/td&gt;
&lt;td&gt;4,002,405色&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;赤系統色&lt;/td&gt;
&lt;td&gt;23.88%&lt;/td&gt;
&lt;td&gt;5,625,216色&lt;/td&gt;
&lt;td&gt;1,335,423色&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;緑系統色&lt;/td&gt;
&lt;td&gt;23.88%&lt;/td&gt;
&lt;td&gt;5,625,216色&lt;/td&gt;
&lt;td&gt;1,335,423色&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;青系統色&lt;/td&gt;
&lt;td&gt;23.88%&lt;/td&gt;
&lt;td&gt;5,625,216色&lt;/td&gt;
&lt;td&gt;1,335,423色&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;結果を確認すると、どうやらRGB空間よりもYCbCr空間の方が4倍ほど広いことが分かりました。復元率を計算したところ、色の系統&lt;sup id="fnref:rgb-color-category"&gt;&lt;a class="footnote-ref" href="#fn:rgb-color-category" title="ここでは、最も強い成分の系統に重複を許して属しているものとします。(r, g, b) = (255, 0, 0)は赤系統色、(0, 255, 255)は緑系統色と青系統色です。"&gt;2&lt;/a&gt;&lt;/sup&gt;にかかわらず24%程度しか復元できていません。これは、YCbCr空間はその広い領域を網羅するために24ビットを使っており、RGB空間からYCbCr空間へ射影しうる狭い領域は22ビットほどの情報量しか持たないことを示しています。&lt;/p&gt;
&lt;p&gt;この結果を見ると、YCbCr自体は赤色を軽視しているわけではなさそうです。しかし、もしかしたら彩度や明度によって失いやすい色があるのかもしれません。先に示した赤色の劣化では、鮮やかな赤色がくすんだ見た目になってしまうのが問題になっていました。仮に鮮やかな色の75%がくすんだ色に押し込められるなら、見た目は大きく変わってしまいます。検証のために、赤・緑・青のそれぞれに対して彩度と明度のグラデーション（色相を固定）に対して同様の変換を行いました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;

&lt;span class="n"&gt;mesh_x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mesh_y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;meshgrid&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arange&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;

&lt;span class="c1"&gt;# メインカラーのグラデーション&lt;/span&gt;
&lt;span class="n"&gt;maincolor_mesh&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;255.0&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;mesh_y&lt;/span&gt;
&lt;span class="c1"&gt;# サブカラーのグラデーション&lt;/span&gt;
&lt;span class="n"&gt;subcolor_mesh_unclip&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mesh_x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;mesh_x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;mesh_y&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;mesh_y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;subcolor_mesh&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;255.0&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;subcolor_mesh_unclip&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;subcolor_mesh_unclip&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;R&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;G&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;B&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;maincolor_mesh&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;subcolor_mesh&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;subcolor_mesh&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt;
        &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;subcolor_mesh&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;maincolor_mesh&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;subcolor_mesh&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt;
        &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;subcolor_mesh&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;subcolor_mesh&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;maincolor_mesh&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# RGB空間の定義（24bit）&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;

    &lt;span class="c1"&gt;# RGB -&amp;gt; YCbCr変換（24bit）&lt;/span&gt;
    &lt;span class="n"&gt;Y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.299&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.587&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.114&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;Cb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.1687&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.3313&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;Cr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="mf"&gt;0.5&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.4187&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.0813&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flatten&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="c1"&gt;# YCbCr -&amp;gt; RGB変換（24bit）&lt;/span&gt;
    &lt;span class="n"&gt;R&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;1.402&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Cr&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
        &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;G&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.34414&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Cb&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mf"&gt;0.71414&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Cr&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
        &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Y&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;1.772&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Cb&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;128&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
        &lt;span class="n"&gt;dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;i8&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# 結果出力&lt;/span&gt;
    &lt;span class="n"&gt;converted_array&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dstack&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reshape&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reshape&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
        &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reshape&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="n"&gt;base_array&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dstack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RGB&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;MSE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mean&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;converted_array&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;astype&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;base_array&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;astype&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;PSNR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log10&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;MSE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;のPSNR: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;PSNR&lt;/span&gt;&lt;span class="si"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;.4f&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fromarray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;converted_array&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;astype&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;uint8&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;convert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;RGB&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_ycbcr.png&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fromarray&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;base_array&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;astype&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;uint8&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;convert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;RGB&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;_rgb.png&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="~RGB→YCbCr→RGB変換を行ったグラデーション画像の比較" height="258" src="/images/how-jpeg-break-red-girl/R-rgb-ycbcr-diff.png" width="530"&gt;&lt;/p&gt;
&lt;p&gt;左側が原画像で、右側がRGB→YCbCr→RGB変換を行ったものです&lt;sup id="fnref:blue-green-grad"&gt;&lt;a class="footnote-ref" href="#fn:blue-green-grad" title="他の色の結果はこちら: 赤:原画像, 赤:変換後, 緑:原画像, 緑:変換後, 青:原画像, 青:変換後"&gt;3&lt;/a&gt;&lt;/sup&gt;。こちらの結果も確認すると、グラデーションの一部にバンディングのようなパターンがわずかに生じただけで、鮮やかな色だけが特に劣化するような現象は起きませんでした。また、色の変化は各成分で256階調（8ビット）中最大でも3階調程度であり、RGB空間がYCbCr空間の4分の1程度の広さであることから、色相によらずこの傾向が高いと予想できます。&lt;/p&gt;
&lt;p&gt;以上より、YCbCrは赤色はもちろん、鮮やかな色を選択的に捨てるわけではないことが分かりました。&lt;/p&gt;
&lt;h3 id="_3"&gt;クロマサブサンプリング&lt;/h3&gt;
&lt;p&gt;では、クロマサブサンプリングはどうでしょうか？　クロマサブサンプリングは周辺のピクセルを合わせて赤色成分を間引きますが、同じように青色成分も間引きます。仮にこれが赤色を劣化させる原因であれば、同じように「青色が劣化してる！」「青色のノイズがやばい！」と騒ぐ青髪キャラ好きが出てくるはずです。赤髪キャラ好きの方が声が大きく、主張が激しいわけではありませんよね。&lt;/p&gt;
&lt;p&gt;また、クロマサブサンプリングの影響を受けるのは赤と青だけではありません。緑色もCb成分とCr成分を少しずつ利用しているので、これらの情報が削減されれば緑色も影響を受けます。クロマサブサンプリングが保証するのは明るさを保持した圧縮であり、緑色の情報は他の色と同様に削られます。&lt;/p&gt;
&lt;p&gt;このことが直感的に分かるよう、赤・青・緑で同じパターンの画像を用意し、クロマサブサンプリングの有無でどのように出力結果が変化するかを示します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# クロマサブサンプリングを行って画像を生成&lt;/span&gt;
convert&lt;span class="w"&gt; &lt;/span&gt;input.png&lt;span class="w"&gt; &lt;/span&gt;-sampling-factor&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;:2:0&lt;span class="w"&gt; &lt;/span&gt;-quality&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;output_420.jpg

&lt;span class="c1"&gt;# クロマサブサンプリングを行わずに画像を生成&lt;/span&gt;
convert&lt;span class="w"&gt; &lt;/span&gt;input.png&lt;span class="w"&gt; &lt;/span&gt;-sampling-factor&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;:4:4&lt;span class="w"&gt; &lt;/span&gt;-quality&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;output_444.jpg
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="~赤・青・緑の各色におけるクロマサブサンプリングの影響比較" height="768" src="/images/how-jpeg-break-red-girl/chroma-subsampling-diff.png" width="768"&gt;&lt;/p&gt;
&lt;p&gt;左側が原画像で、中央がクロマサブサンプリングあり、右側がクロマサブサンプリングを行っていないものです。色によってノイズにどれほど差があるのか、さらにPSNRで定量的に確認してみましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;compare&lt;span class="w"&gt; &lt;/span&gt;-metric&lt;span class="w"&gt; &lt;/span&gt;PSNR&lt;span class="w"&gt; &lt;/span&gt;input.png&lt;span class="w"&gt; &lt;/span&gt;output_420.jpg&lt;span class="w"&gt; &lt;/span&gt;NULL:
compare&lt;span class="w"&gt; &lt;/span&gt;-metric&lt;span class="w"&gt; &lt;/span&gt;PSNR&lt;span class="w"&gt; &lt;/span&gt;input.png&lt;span class="w"&gt; &lt;/span&gt;output_444.jpg&lt;span class="w"&gt; &lt;/span&gt;NULL:
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;色&lt;/th&gt;
&lt;th&gt;クロマサブサンプリングあり（4:2:0）&lt;/th&gt;
&lt;th&gt;クロマサブサンプリングなし（4:4:4）&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;赤&lt;/td&gt;
&lt;td&gt;23.7649&lt;/td&gt;
&lt;td&gt;27.2341&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;青&lt;/td&gt;
&lt;td&gt;23.5496&lt;/td&gt;
&lt;td&gt;27.7646&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;緑&lt;/td&gt;
&lt;td&gt;21.9544&lt;/td&gt;
&lt;td&gt;25.9038&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;出力された画像およびPSNRによる評価を見ると、クロマサブサンプリングは全ての色を同様に間引く傾向があることを確認できました。色が劣化してくすんで見える現象は、どうやらクロマサブサンプリングのせいだったようです。PSNRによれば、赤と青はほぼ同じレベルで、緑色に至っては他の色よりも品質が低くなっています。&lt;/p&gt;
&lt;p&gt;クロマサブサンプリングでは赤と青が劣化してしまうという指摘は、インターネットでもいくつか見つけることができます。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;青と赤の劣化が激しい。&lt;br&gt;
完全に違う色になっている。&lt;br&gt;
4:2:0 は、色差成分が 1/4 サイズになるので、どうしても青と赤が劣化する。&lt;br&gt;
青と赤成分の画像サイズが 1/4 になっているのに近い。&lt;br&gt;
&lt;cite&gt;&lt;a href="http://www.kaede-software.com/2014/05/_jpeg_xr.html"&gt;楓 software: なぜ JPEG XR ？&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;こちらのサイトには、先に示したような細い線の色が劣化する現象を示す画像が掲載されています。しかし、なぜか赤と青でしか確認しておらず、そのせいで「赤と青が特に劣化する（緑色は関係ない？）」という微妙に正しくない結論に至っているようでした。Cb成分とCr成分が間引かれているのは正しいですが、全ての色が影響を受けています。&lt;/p&gt;
&lt;p&gt;クロマサブサンプリングを行わなかった場合は、色の鮮やかさもPSNRも向上しました。1ピクセルの線は4:2:0では周囲の白色に引きずられて彩度を失ってしまいますが、4:4:4であれば自らの色だけを使って彩度をほとんど変えずに変換できます。&lt;/p&gt;
&lt;p&gt;以上より、クロマサブサンプリングには鮮やかな色の細かい表現をくすんだ色に変えてしまう性質があるものの、これは赤色に限った傾向ではないことが分かりました。&lt;/p&gt;
&lt;h3 id="_4"&gt;離散コサイン変換と量子化&lt;/h3&gt;
&lt;p&gt;離散コサイン変換は、RGB空間からYCbCr空間に変換するのと同じように重要な情報を集中させる効果があります。画像から切り出されたばかりの8x8ピクセルのブロックは、場所によらず全てのピクセルが重要である可能性が高いです。これを離散コサイン変換で周波数領域に射影すれば、ブロックの内容にかかわらず左上のパラメータほど重要な情報を集めた表現に変換することができます。詳細については他サイトなどを参照してください。&lt;/p&gt;
&lt;p&gt;離散コサイン変換自体はYCbCrと同様に情報量を減らすためのものではなく、64バイトの空間ブロックを同じく64バイトの周波数領域ブロックに変換するという処理です。しかし、左上のパラメータが重要であるという特徴を持たせることで、後続の量子化処理の品質を高く保ち、そして制御可能なものにします。&lt;/p&gt;
&lt;p&gt;量子化とは、一般的には連続的なアナログ値を離散的なデジタル値で近似的に表現する処理です。そもそも連続的な色の強さを8ビットの256階調に割り当てるのも量子化でした。JPEGにおいて離散コサイン変換のあとに行う量子化では、右下のパラメータの情報量を削減するために、周波数領域ブロックを位置に応じた値で割っていきます。大まかには、量子化テーブルの値が16なら256階調（8ビット）が16階調（4ビット）になるのです。&lt;/p&gt;
&lt;p&gt;JPEGの不可逆圧縮の本質はここにあり、さらにハフマン符号化を施して実際のバイナリも情報量に見合ったサイズになるよう圧縮します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;levels&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;8&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;divisor=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;16,&lt;span class="w"&gt;  &lt;/span&gt;11,&lt;span class="w"&gt;  &lt;/span&gt;10,&lt;span class="w"&gt;  &lt;/span&gt;16,&lt;span class="w"&gt;  &lt;/span&gt;24,&lt;span class="w"&gt;  &lt;/span&gt;40,&lt;span class="w"&gt;  &lt;/span&gt;51,&lt;span class="w"&gt;  &lt;/span&gt;61,
&lt;span class="w"&gt;  &lt;/span&gt;12,&lt;span class="w"&gt;  &lt;/span&gt;12,&lt;span class="w"&gt;  &lt;/span&gt;14,&lt;span class="w"&gt;  &lt;/span&gt;19,&lt;span class="w"&gt;  &lt;/span&gt;26,&lt;span class="w"&gt;  &lt;/span&gt;58,&lt;span class="w"&gt;  &lt;/span&gt;60,&lt;span class="w"&gt;  &lt;/span&gt;55,
&lt;span class="w"&gt;  &lt;/span&gt;14,&lt;span class="w"&gt;  &lt;/span&gt;13,&lt;span class="w"&gt;  &lt;/span&gt;16,&lt;span class="w"&gt;  &lt;/span&gt;24,&lt;span class="w"&gt;  &lt;/span&gt;40,&lt;span class="w"&gt;  &lt;/span&gt;57,&lt;span class="w"&gt;  &lt;/span&gt;69,&lt;span class="w"&gt;  &lt;/span&gt;56,
&lt;span class="w"&gt;  &lt;/span&gt;14,&lt;span class="w"&gt;  &lt;/span&gt;17,&lt;span class="w"&gt;  &lt;/span&gt;22,&lt;span class="w"&gt;  &lt;/span&gt;29,&lt;span class="w"&gt;  &lt;/span&gt;51,&lt;span class="w"&gt;  &lt;/span&gt;87,&lt;span class="w"&gt;  &lt;/span&gt;80,&lt;span class="w"&gt;  &lt;/span&gt;62,
&lt;span class="w"&gt;  &lt;/span&gt;18,&lt;span class="w"&gt;  &lt;/span&gt;22,&lt;span class="w"&gt;  &lt;/span&gt;37,&lt;span class="w"&gt;  &lt;/span&gt;56,&lt;span class="w"&gt;  &lt;/span&gt;68,&lt;span class="w"&gt; &lt;/span&gt;109,&lt;span class="w"&gt; &lt;/span&gt;103,&lt;span class="w"&gt;  &lt;/span&gt;77,
&lt;span class="w"&gt;  &lt;/span&gt;24,&lt;span class="w"&gt;  &lt;/span&gt;35,&lt;span class="w"&gt;  &lt;/span&gt;55,&lt;span class="w"&gt;  &lt;/span&gt;64,&lt;span class="w"&gt;  &lt;/span&gt;81,&lt;span class="w"&gt; &lt;/span&gt;104,&lt;span class="w"&gt; &lt;/span&gt;113,&lt;span class="w"&gt;  &lt;/span&gt;92,
&lt;span class="w"&gt;  &lt;/span&gt;49,&lt;span class="w"&gt;  &lt;/span&gt;64,&lt;span class="w"&gt;  &lt;/span&gt;78,&lt;span class="w"&gt;  &lt;/span&gt;87,&lt;span class="w"&gt; &lt;/span&gt;103,&lt;span class="w"&gt; &lt;/span&gt;121,&lt;span class="w"&gt; &lt;/span&gt;120,&lt;span class="w"&gt; &lt;/span&gt;101,
&lt;span class="w"&gt;  &lt;/span&gt;72,&lt;span class="w"&gt;  &lt;/span&gt;92,&lt;span class="w"&gt;  &lt;/span&gt;95,&lt;span class="w"&gt;  &lt;/span&gt;98,&lt;span class="w"&gt; &lt;/span&gt;112,&lt;span class="w"&gt; &lt;/span&gt;100,&lt;span class="w"&gt; &lt;/span&gt;103,&lt;span class="w"&gt;  &lt;/span&gt;99
&lt;span class="nt"&gt;&amp;lt;/levels&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;上記のような量子化テーブル自体は各成分ごとに個別に指定できるため、Cr成分のみ大きく削るテーブルを割り当てれば「赤色を軽視するJPEGファイル」を作ることができるかもしれません。しかし、ほとんどの場合はY成分の量子化テーブルと、Cb成分とCr成分で共用の量子化テーブルの2つを使うという設定が多いです。仮にこのようなJPEGエンコーダを使っているせいで赤色の劣化が気になるなら、PNGを使うより先に画像処理ソフトを新調した方がよいでしょう。&lt;/p&gt;
&lt;p&gt;参考のために、&lt;a href="/appendices/how-jpeg-break-red-girl/break-red-quantization-table.xml"&gt;Cr成分を大きく削った量子化テーブル&lt;/a&gt;を指定したJPEGファイルを作ってみます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;convert&lt;span class="w"&gt; &lt;/span&gt;dqt.png&lt;span class="w"&gt; &lt;/span&gt;-sampling-factor&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;:2:0&lt;span class="w"&gt; &lt;/span&gt;-quality&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-define&lt;span class="w"&gt; &lt;/span&gt;jpeg:q-table&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;break&lt;/span&gt;-red-quantization-table.xml&lt;span class="w"&gt; &lt;/span&gt;dqt.jpg
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;img alt="~赤と緑が強い部分のノイズが強い画像例の比較" height="256" src="/images/how-jpeg-break-red-girl/break-red-dqt-diff.png" width="528"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/how-jpeg-break-red-girl/break-red-dqt.png"&gt;原画像&lt;/a&gt;と&lt;a href="/images/how-jpeg-break-red-girl/break-red-dqt.jpg"&gt;出力された画像&lt;/a&gt;を比較すると、赤と緑が強い場所で大きくブロックノイズが出ており、Cr成分に問題があることを確認できました。赤だけではなく緑でも品質が低下するのは、緑色の計算にCr成分が使われているという事実とも一致します。Cb成分を削る量子化テーブルなら、青と緑が影響を受けた結果を得られるでしょう。&lt;/p&gt;
&lt;p&gt;以上より、離散コサイン変換と量子化には赤色を無視するよう設定する余地があるものの、ふつうの利用ケースではほぼ問題にならないことが分かりました。&lt;/p&gt;
&lt;h3 id="_5"&gt;まとめ&lt;/h3&gt;
&lt;p&gt;この節では、JPEGの処理方法を掘り下げることで赤色を劣化させる原因を探しました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RGB空間からYCbCr空間に変換する処理は、色の変化にはほとんど影響がありません。&lt;/li&gt;
&lt;li&gt;クロマサブサンプリングでは、赤色に限らず全ての色を劣化させる場合があります。&lt;/li&gt;
&lt;li&gt;離散コサイン変換は、明るさや色差の成分に関係なく同じ処理で変換されます。&lt;/li&gt;
&lt;li&gt;量子化ではCr成分のみ無視するよう割り当てる余地がありますが、通常は問題になりません。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上から、JPEGというフォーマット自体には赤色だけを選択的に捨てる処理も意図も存在しないことが分かりました。そのため、冒頭の「JPEGは赤が劣化しやすく、ノイズが発生しやすいのだ」という主張はやはり正確ではなく、そう感じてしまう理由は別の部分にありそうです。&lt;/p&gt;
&lt;h2 id="_6"&gt;人間の目から見た「赤」の扱い&lt;/h2&gt;
&lt;p&gt;JPEGに問題がないことが分かったので、2つめの仮説について検討します。&lt;/p&gt;
&lt;p&gt;引き続き「JPEG 赤」「JPEG 赤 劣化」などと調べたところ、JPEGのフォーマットではなく人間の視覚に原因がある旨の記載を見つけられました。色覚異常のない人間の目においては、赤色の違いを識別しやすいのでは？ということですね。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;赤は波長が長いので、劣化が見つけやすい。&lt;br&gt;
人間の目玉の構造の問題だと思います。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://okwave.jp/qa/q2137852.html"&gt;jpg形式で保存の際の赤の劣化について | OKWAVE&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;人間の視覚の働きとして、赤に対して敏感なので、赤のほうが気が付きやすいせいだと思います。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1119278296"&gt;jpgで赤色を保存すると画質が荒れるのはなぜでしょうか？ - Yahoo!知恵袋&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;まず、波長の長い光を見分けやすいという点について考えてみます。色覚異常のない人間（標準観測者）の視覚では、光の波長に対してどれほど明るく感じられるかという（明所視）標準比視感度曲線の最大値は555nm（黄緑色）です。赤（650nm）や青（450nm）はそれよりも感度が低く、緑 &amp;gt;&amp;gt;&amp;gt; 赤 &amp;gt; 青の順で強く感じます。波長が長ければ長いほど感じやすくなるわけではありません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~標準比視感度曲線" height="325" src="/images/how-jpeg-break-red-girl/luminous-efficiency-function.jpg" width="400"&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://jpn.faq.panasonic.com/app/answers/detail/a_id/101168/~/%E3%80%88%E5%85%89%E3%81%A8%E3%81%82%E3%81%8B%E3%82%8A%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98%E3%80%89%E6%A8%99%E6%BA%96%E6%AF%94%E8%A6%96%E6%84%9F%E5%BA%A6%28%E6%98%8E%E6%89%80%E8%A6%96%29"&gt;〈光とあかりの基礎知識〉標準比視感度(明所視)  - Panasonic&lt;/a&gt;&lt;sup id="fnref2:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="原画像およびその派生物はCC BY 4.0でライセンスされていません。"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;つまり、比視感度の差では、仮に青よりも赤の劣化を感じやすいことは説明できても、緑よりも赤の劣化を感じやすい説明がつきません。では、色による識別しやすさの違いの感覚はどこから生じるのでしょうか？&lt;/p&gt;
&lt;p&gt;ここで、色彩に関する心理的効果を考慮してみます。赤や黄などの暖色は人間の注意を引きやすい色で、プレゼンや広告などで目立たせたい部分によく使われています。反対に、青や緑などの寒色は目立たず後退して見える色で、気持ちを落ち着ける効果があるといわれます。&lt;/p&gt;
&lt;p&gt;この心理的効果を踏まえた上で、激しいブロックノイズが乗った赤い画像について、色相を変化させながら赤・橙・黄・緑・青・藍・紫の劣化がどれほど目立つかについて確認してみましょう。使用している画像は、冒頭で掲載したJPEGさんのご学友です。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/how-jpeg-break-red-girl/rainbow-girl.png"&gt;&lt;img alt="同じノイズが乗った七色の画像例" height="400" src="/images/how-jpeg-break-red-girl/rainbow-girl_thumb.png" width="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;cite&gt;generated by ChromaXL_v1b&lt;sup id="fnref3:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="原画像およびその派生物はCC BY 4.0でライセンスされていません。"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;少なくとも私からは、赤・黄・緑あたりのノイズが強く見えています。みなさんはいかがでしょうか？　少し違う見え方に感じた人もいるかもしれませんが、概ね以下のような傾向を確認できました。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;色の系統&lt;/th&gt;
&lt;th&gt;誘目性の高さ&lt;/th&gt;
&lt;th&gt;画像の明るさ&lt;/th&gt;
&lt;th&gt;ノイズの強さ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;赤 &lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt; &lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt; &lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;橙 &lt;img alt=":orange_circle:" class="emoji" height="16" src="/emojis/1f7e0.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt; &lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;黄 &lt;img alt=":yellow_circle:" class="emoji" height="16" src="/emojis/1f7e1.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt; &lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt; &lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;緑 &lt;img alt=":green_circle:" class="emoji" height="16" src="/emojis/1f7e2.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt; &lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;青 &lt;img alt=":blue_circle:" class="emoji" height="16" src="/emojis/1f535.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;藍 &lt;img alt=":jeans:" class="emoji" height="16" src="/emojis/1f456.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;紫 &lt;img alt=":purple_circle:" class="emoji" height="16" src="/emojis/1f7e3.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt; &lt;img alt=":red_circle:" class="emoji" height="16" src="/emojis/1f534.png" width="16"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;目を引く色や、明るく鮮やかな色はノイズが目につきやすいです。特に誘目性が高い色は、人間の注意を引いて記憶に残りやすいと考えられます。実際には他の色でも明度や彩度が高い領域はノイズが目立ちやすいものの、画像全体を見たときには目が向かない可能性が高く、見過ごされるケースも多いのでしょう。仮に、3番目の仮説のように複雑なパターンの赤い領域でノイズを見かける頻度が高ければ、JPEGは赤が劣化しやすいという勘違いの原因になりそうです。&lt;/p&gt;
&lt;p&gt;以上から、人間の視覚は色相に関係なく明度や彩度の差を大きく感じる性質があるものの、人間に与える心理的効果の差で赤色の部分に注意が集まりやすく、その結果として「JPEGでは赤色だけが特に劣化する」という誤認に繋がってしまうと結論づけることができそうです。&lt;/p&gt;
&lt;h2 id="_7"&gt;おまけ: 「赤」を劣化させない処理の検討&lt;/h2&gt;
&lt;p&gt;ここまで見てきたところ、どうもJPEG自体に赤色を劣化させる働きはないようです。インターネットでよく見かける「赤が劣化する」「赤の部分でノイズが発生する」という現象は、人間の視覚が引き起こすある種の錯覚のようなものだと分かりました。&lt;/p&gt;
&lt;p&gt;最後におまけとして、JPEGが赤色だけを劣化させるわけではないという事実を &lt;em&gt;完全に無視&lt;/em&gt; して「絶対に赤が劣化しないJPEG画像の作り方」を提案します。もちろんこの手法は全く意味がありませんが、今後「JPEGだと赤がめちゃくちゃノイズ入ることすら知らないのかよ」なんて言われたときに、誰でも直感的に分かる説明として持ち出せるでしょう。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;赤色が多い画像(R)の色を全て反転して、赤色が少ない画像(B)に変換します。&lt;/li&gt;
&lt;li&gt;(B)をJPEGファイルに変換して送信します。JPEGは赤色だけを劣化させるので、赤色が少ない(B)をJPEGに変換することで劣化を抑えられます。&lt;/li&gt;
&lt;li&gt;(B)を受け取った人は、JPEGファイルをデコードして得られた画像を反転して(R')を得ます。&lt;/li&gt;
&lt;li&gt;(R')は、(R)を直接JPEGファイルに変換した場合よりも劣化が少ない画像のはずです。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;##### そのままJPEGに変換してからPNGに戻す #####&lt;/span&gt;
&lt;span class="c1"&gt;# 赤い部分にノイズが出ちゃって困る&lt;/span&gt;
convert&lt;span class="w"&gt; &lt;/span&gt;original.png&lt;span class="w"&gt; &lt;/span&gt;-sampling-factor&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;:2:0&lt;span class="w"&gt; &lt;/span&gt;-quality&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;original.jpg
convert&lt;span class="w"&gt; &lt;/span&gt;original.jpg&lt;span class="w"&gt; &lt;/span&gt;result_original.png

&lt;span class="c1"&gt;##### 反転+JPEGに変換してから反転+PNGに戻す #####&lt;/span&gt;
convert&lt;span class="w"&gt; &lt;/span&gt;original.png&lt;span class="w"&gt; &lt;/span&gt;-negate&lt;span class="w"&gt; &lt;/span&gt;nega.png
&lt;span class="c1"&gt;# 赤い部分は水色に反転しているので全く影響なし！&lt;/span&gt;
convert&lt;span class="w"&gt; &lt;/span&gt;nega.png&lt;span class="w"&gt; &lt;/span&gt;-sampling-factor&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;:2:0&lt;span class="w"&gt; &lt;/span&gt;-quality&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;nega.jpg
&lt;span class="c1"&gt;# 本当に？&lt;/span&gt;
convert&lt;span class="w"&gt; &lt;/span&gt;nega.jpg&lt;span class="w"&gt; &lt;/span&gt;-negate&lt;span class="w"&gt; &lt;/span&gt;result_nega.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="/images/how-jpeg-break-red-girl/how-jpeg-save-red-girl-diff.png"&gt;&lt;img alt="「絶対に赤が劣化しないJPEG画像の作り方」の結果比較" height="424" src="/images/how-jpeg-break-red-girl/how-jpeg-save-red-girl-diff_thumb.png" width="628"&gt;&lt;/a&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.irasutoya.com/2023/10/2024_0821222460.html"&gt;初日の出と富士山のイラスト（2024年）&lt;/a&gt; by みふねたかし&lt;sup id="fnref4:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="原画像およびその派生物はCC BY 4.0でライセンスされていません。"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/how-jpeg-break-red-girl/save_red_result_original.png"&gt;通常の変換&lt;/a&gt;と&lt;a href="/images/how-jpeg-break-red-girl/save_red_result_nega.png"&gt;ネガ経由の変換&lt;/a&gt;を重ねたり並べたりして直接見比べてみてください。うーん、最後までノイズたっぷり！　残念でした。&lt;/p&gt;
&lt;h2 id="_8"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;&lt;img alt="~PNGさんの目から見た悲しそうな赤毛の女の子のイラスト" height="400" src="/images/how-jpeg-break-red-girl/top.png" width="400"&gt;&lt;br&gt;
&lt;cite&gt;generated by ChromaXL_v1b&lt;sup id="fnref5:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="原画像およびその派生物はCC BY 4.0でライセンスされていません。"&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;「私、赤毛ってとっても好きよ。きっと、周りの方の目がおかしいに決まっているわ」&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:rgb-bit-rate"&gt;
&lt;p&gt;RGBの各成分が明るさに寄与する割合を考えると、厳密にはB→R→Gの順に重要さが高いというのが正しいです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:rgb-bit-rate" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:rgb-color-category"&gt;
&lt;p&gt;ここでは、最も強い成分の系統に重複を許して属しているものとします。(r, g, b) = (255, 0, 0)は赤系統色、(0, 255, 255)は緑系統色と青系統色です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:rgb-color-category" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:blue-green-grad"&gt;
&lt;p&gt;他の色の結果はこちら: &lt;a href="/images/how-jpeg-break-red-girl/R_rgb.png"&gt;赤:原画像&lt;/a&gt;, &lt;a href="/images/how-jpeg-break-red-girl/R_ycbcr.png"&gt;赤:変換後&lt;/a&gt;, &lt;a href="/images/how-jpeg-break-red-girl/G_rgb.png"&gt;緑:原画像&lt;/a&gt;, &lt;a href="/images/how-jpeg-break-red-girl/G_ycbcr.png"&gt;緑:変換後&lt;/a&gt;, &lt;a href="/images/how-jpeg-break-red-girl/B_rgb.png"&gt;青:原画像&lt;/a&gt;, &lt;a href="/images/how-jpeg-break-red-girl/B_ycbcr.png"&gt;青:変換後&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:blue-green-grad" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:no-cc-by"&gt;
&lt;p&gt;原画像およびその派生物は&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-cc-by" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:no-cc-by" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref3:no-cc-by" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref4:no-cc-by" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref5:no-cc-by" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>2024/02/07～2024/03/04</title><link href="https://ama.ne.jp/post/report-20240304/" rel="alternate"/><published>2024-03-04T11:03:00+09:00</published><updated>2024-03-04T11:03:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-03-04:/post/report-20240304/</id><summary type="html">&lt;p&gt;2024/02/07～2024/03/04のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;カラーテーマ切り替え機能について、 &lt;code&gt;:has&lt;/code&gt; セレクタを用いた実験的な処置を行いました。&lt;ul&gt;
&lt;li&gt;&lt;code&gt;:has&lt;/code&gt; セレクタはかつてブラウザでの対応が弱かったので、その事情から現在は間接セレクタで切り替えを行っています。&lt;/li&gt;
&lt;li&gt;一部のブラウザで &lt;code&gt;body&lt;/code&gt; がはみ出して背景が白くなるケースがあったので、オプショナルな表示改善のために &lt;code&gt;:has&lt;/code&gt; セレクタを利用しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/link/#_2"&gt;あまねけ！アーカイブ&lt;/a&gt;の仕様の一部を変更しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/hatebu-force-recrawl/"&gt;はてなブックマークにページを再クロールさせる&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;クローラのURL正規化仕様を利用した疑似キャッシュクリアのワザップです。&lt;/li&gt;
&lt;li&gt;覚えておくと意外なピンチのときに役立つかもしれませんし、既に使えなくなっていてさらなるピンチを招くかもしれません。&lt;/li&gt;
&lt;li&gt;はてなブックマークをはじめとするソーシャルブックマークは、勘違いや曲解から生じたコメントに対する補足や訂正が難しく、記事の意図とは異なる印象を与える可能性があるため、積極的な利用はおすすめしません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/yubikey-on-wsl2/"&gt;WSL2でYubikeyを使う&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;2020年公開の&lt;a href="/post/yubikey-on-wsl/"&gt;WSLでYubikeyを使う&lt;/a&gt;はWSL1（無印）向けの内容で、都度WSL2向けのアップデートを記載していましたが、読みにくいので改めて分割しました。&lt;/li&gt;
&lt;li&gt;WSL3が出たときに私がまだWindowsを使っていれば、また新しい記事に分割されると思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/black-rainy-days/"&gt;あらしのまえに&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/"&gt;あまねけ！ニュースレター&lt;/a&gt;で連載していた&lt;a href="https://amaneimages.com/sss"&gt;アマネイメージズ&lt;/a&gt;のようなサクッとした読み心地を期待しています。&lt;/li&gt;
&lt;li&gt;今年は毎月1本おはなしを投稿していこうと思っています。これは2月分です。ぜひ「読んだ」ボタンや&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;で応援してください。&lt;/li&gt;
&lt;li&gt;&lt;a href="/comment/202402292232/"&gt;comment/202402292232&lt;/a&gt;や&lt;a href="/comment/202403010042/"&gt;comment/202403010042&lt;/a&gt;など感想ありがとうございます。嬉しいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>あらしのまえに</title><link href="https://ama.ne.jp/post/black-rainy-days/" rel="alternate"/><published>2024-02-29T17:38:00+09:00</published><updated>2024-02-29T17:38:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-02-29:/post/black-rainy-days/</id><summary type="html">&lt;p&gt;雲とりバケツがあったなら&lt;/p&gt;</summary><content type="html">&lt;p&gt;The Panorama of Science and Artによれば:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;樟脳: 2薬用ドラム&lt;/li&gt;
&lt;li&gt;硝酸カリウム: 0.5薬用ドラム&lt;/li&gt;
&lt;li&gt;塩化アンモニウム: 0.5薬用ドラム&lt;/li&gt;
&lt;li&gt;50%エタノール水溶液: 2薬用オンス&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;「レイ、それ何？　スノードームの試作品？」&lt;/p&gt;
&lt;p&gt;「んー？　未来の天気が分かる高性能なひみつ道具だよ」&lt;/p&gt;
&lt;p&gt;数十分前に夕食係としてキッチンに送り出したはずのレイがなかなか戻ってこないので様子を見に行くと、細長くて透明な瓶に白い結晶が沈んだ液体をちょうど詰め終わるところだった。本来はまな板や食材を広げるための白い大理石のワークトップには、倉庫から見つけたらしい古い試薬のプラ瓶と一緒に、デジタルスケールや数枚の薬包紙が置かれている。&lt;/p&gt;
&lt;p&gt;彼女が作った &lt;em&gt;夕食&lt;/em&gt; の材料を見ると、ありふれた薬品を薄めた無水エタノールに溶かしただけで、およそ天気予報が務まるほどの原理を備えているようには思えない。そんなインテリアと呼べるほどの装飾も備えていないように見えるひみつ道具を、レイは「ストームグラス」と呼んだ。&lt;/p&gt;
&lt;p&gt;「ストームグラス？　私、明日の天気より今日のご飯が大事だわ」&lt;/p&gt;
&lt;p&gt;「でも、明日は晴れるかもしれないでしょ？」&lt;/p&gt;
&lt;p&gt;「ずっと雨よ。雨、雨、雨、雨……ずーっとね」&lt;/p&gt;
&lt;p&gt;私たちが毎日交代で担当している夕食係は、倉庫からインスタント食とサプリメントを持ち出して皿に盛るだけの簡単なお仕事で、包丁やコンロを使うような調理はもちろん、ひみつ道具の開発なんて職掌にない。同じ発明なら、グルメテーブルかけでも作ってくれれば大歓迎なのに。&lt;/p&gt;
&lt;p&gt;レイは頭が良くて手先が器用だった。ときどき自分の興味の赴くままに動くことがあって、しばらく放っておくとこうして色々なひみつ道具――役に立つかは彼女にとってどうでもいい――が完成している。しかしその間、抱えている締め切りや日常のタスクは視界の外に追いやられてしまう。&lt;/p&gt;
&lt;p&gt;私はそういう彼女の創造性と呼ぶべき衝動が嫌いではなかったけど、こうして共同生活を送り始めてからは不満も少し多くなった。悪気なく食事や掃除の当番はすっぽかすし、空腹のまま机に突っ伏して動けずにいるところを介抱したのも二度や三度ではない。ラボにいたころはよくアカネさんがレイの世話を焼いていたから気にならなかったけど、今レイの側にいるのは私だけだ。&lt;/p&gt;
&lt;p&gt;彼女の突飛さは非日常的な魅力である一方で、平穏な日常にとっての脅威でもあった。&lt;/p&gt;
&lt;p&gt;「ちなみに、ストームグラスの予報は？」&lt;/p&gt;
&lt;p&gt;「結晶が安定するまで詳しく分からないけど、カリウムが溶けてないから……たぶん雨になりそう」&lt;/p&gt;
&lt;p&gt;「えぇ、私もそう思うわ。もし黒い結晶が降り始めでもしたら、また教えて。その時は予報でも何でも信じるから」&lt;/p&gt;
&lt;p&gt;樟脳に無水エタノール……まぁ、半分に分けて一気に飲めば&lt;ruby&gt;&lt;rb&gt;明日の天気&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;げんかく&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;くらいは見えるかもしれないけど、きっと悪酔いでは済まないだろう。ショットグラス2杯に分けてもまだ余りそうな粗製酒は、本当に終わりが来るときまでとっておきたい気がする。&lt;/p&gt;
&lt;p&gt;あの日から外はずっと雨で、私たちはまだ外に出られずにいた。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>WSL2でYubikeyを使う</title><link href="https://ama.ne.jp/post/yubikey-on-wsl2/" rel="alternate"/><published>2024-02-09T14:48:00+09:00</published><updated>2024-02-09T14:48:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-02-09:/post/yubikey-on-wsl2/</id><summary type="html">&lt;p&gt;令和最新版テクニック&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この記事は、&lt;a href="/post/yubikey-on-wsl"&gt;WSLでYubikeyを使う&lt;/a&gt;の情報を&lt;a href="https://learn.microsoft.com/ja-jp/windows/wsl/compare-versions"&gt;WSL2&lt;/a&gt;向けに書き直したものです。詳細については元の記事もお読みください。 */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;前提&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#yubikey"&gt;Yubikey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wsl"&gt;WSL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;準備&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#gpg"&gt;gpg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#npiperelay"&gt;npiperelay&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wsl2-ssh-pageant"&gt;wsl2-ssh-pageant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#socat"&gt;socat&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;起動&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#on-windows_1"&gt;on Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#on-wsl2"&gt;on WSL2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;おしらせ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;参考&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;&lt;img alt="WSLからYubikeyを使う方法について、WSL→WSLのGnuPG→socat→npiperelay→Windowsのgpg-agent→scdaemon→Yubikey、またはssh→ssh-agent→wsl-ssh-pagent→Windowsのgpg-agent→scdaemon→Yubikeyという流れで接続できることを示す図（記事では触れないが、RemoteFXを通すとリモートデスクトップの接続先からでもYubiKeyを使用できることを提示）" height="525" src="/images/yubikey-on-wsl2/tldr.png" width="700"&gt;&lt;/p&gt;
&lt;h2 id="_2"&gt;前提&lt;/h2&gt;
&lt;h3 id="yubikey"&gt;Yubikey&lt;/h3&gt;
&lt;p&gt;今回は&lt;a href="https://www.yubico.com/authentication-standards/smart-card/"&gt;PIV&lt;/a&gt;ではなく、&lt;a href="https://support.yubico.com/hc/en-us/articles/360013790259-Using-Your-YubiKey-with-OpenPGP"&gt;OpenPGP&lt;/a&gt;コンパチブルなスマートカードとして使用します。鍵のセットアップは各自で済ませてください。&lt;/p&gt;
&lt;h3 id="wsl"&gt;WSL&lt;/h3&gt;
&lt;p&gt;WSL2を使います。&lt;a href="https://devblogs.microsoft.com/commandline/systemd-support-is-now-available-in-wsl/"&gt;systemdを有効にしておく&lt;/a&gt;ことをおすすめします。&lt;/p&gt;
&lt;h2 id="_3"&gt;準備&lt;/h2&gt;
&lt;h3 id="gpg"&gt;gpg&lt;/h3&gt;
&lt;p&gt;Yubikeyをgpg-agent経由で引き渡す必要があるので、両方にインストールしてください。&lt;/p&gt;
&lt;h4 id="on-wsl"&gt;on WSL&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-y&lt;span class="w"&gt; &lt;/span&gt;gpg
&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;gpg&lt;span class="w"&gt; &lt;/span&gt;--version
&lt;span class="go"&gt;gpg (GnuPG) 2.2.40&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h4 id="on-windows"&gt;on Windows&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://www.gpg4win.org/get-gpg4win.html"&gt;Gpg4win&lt;/a&gt;をインストールします。選択可能なコンポーネントは入れても入れなくてもいいです。&lt;/p&gt;
&lt;p&gt;WindowsでYubikeyが認識できることを確認してください。Windowsで認識できなければWSLでも参照できません。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;C:\Users\amane&amp;gt;&lt;/span&gt;gpgconf --reload scdaemon

&lt;span class="gp"&gt;C:\Users\amane&amp;gt;&lt;/span&gt;gpg --card-status
&lt;span class="go"&gt;Reader ...........: Yubico YubiKey OTP FIDO CCID 0&lt;/span&gt;
&lt;span class="go"&gt;Application ID ...: ********************************&lt;/span&gt;
&lt;span class="go"&gt;Application type .: OpenPGP&lt;/span&gt;
&lt;span class="go"&gt;Version ..........: 2.1&lt;/span&gt;
&lt;span class="go"&gt;Manufacturer .....: Yubico&lt;/span&gt;
&lt;span class="go"&gt;Serial number ....: ********************************&lt;/span&gt;
&lt;span class="go"&gt;Name of cardholder: Amane Katagiri&lt;/span&gt;
&lt;span class="go"&gt;Language prefs ...: ja&lt;/span&gt;
&lt;span class="go"&gt;Salutation .......: Ms.&lt;/span&gt;
&lt;span class="go"&gt;URL of public key : https://keybase.io/amane/pgp_keys.asc&lt;/span&gt;
&lt;span class="go"&gt;Login data .......: amane&lt;/span&gt;
&lt;span class="go"&gt;Signature PIN ....: 強制&lt;/span&gt;
&lt;span class="go"&gt;Key attributes ...: rsa4096 rsa4096 rsa4096&lt;/span&gt;
&lt;span class="go"&gt;Max. PIN lengths .: 127 127 127&lt;/span&gt;
&lt;span class="go"&gt;PIN retry counter : 3 0 3&lt;/span&gt;
&lt;span class="go"&gt;Signature counter : 0&lt;/span&gt;
&lt;span class="go"&gt;Signature key ....: **** **** **** **** ****  **** **** **** **** ****&lt;/span&gt;
&lt;span class="go"&gt;      created ....: 1970-01-01 00:00:00&lt;/span&gt;
&lt;span class="go"&gt;Encryption key....: **** **** **** **** ****  **** **** **** **** ****&lt;/span&gt;
&lt;span class="go"&gt;      created ....: 1970-01-01 00:00:00&lt;/span&gt;
&lt;span class="go"&gt;Authentication key: **** **** **** **** ****  **** **** **** **** ****&lt;/span&gt;
&lt;span class="go"&gt;      created ....: 1970-01-01 00:00:00&lt;/span&gt;
&lt;span class="go"&gt;General key info..: [none]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;上手くいかない場合は、 &lt;code&gt;%APPDATA%\gnupg\scdaemon.conf&lt;/code&gt; に以下を追記してやり直してください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;reader-port Yubico
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;後で使うので&lt;code&gt;%APPDATA%\gnupg\gpg-agent.conf&lt;/code&gt;に追記してください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;enable-ssh-support
enable-win32-openssh-support
enable-putty-support
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="npiperelay"&gt;npiperelay&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;npiperelay is a tool that allows you to access a Windows named pipe in a way that is more compatible with a variety of command-line tools.&lt;br&gt;
&lt;a href="https://github.com/NZSmartie/npiperelay"&gt;&lt;cite&gt;NZSmartie/npiperelay&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Windowsの名前付きパイプをよしなにUNIXソケットにリレーする。GnuPGが使う&lt;a href="https://gnupg.org/software/libassuan/index.html"&gt;libassuan&lt;/a&gt;向けのサポートつき。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/NZSmartie/npiperelay/releases/download/v0.1/npiperelay.exe"&gt;npiperelay.exe&lt;/a&gt;を&lt;code&gt;%HOMEDRIVE%%HOMEPATH%\go\bin&lt;/code&gt;あたりに置いてください。&lt;/p&gt;
&lt;h3 id="wsl2-ssh-pageant"&gt;wsl2-ssh-pageant&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;I use a Yubikey to store a GPG key pair and I like to use this key pair as my SSH key too. GPG on Windows exposes a Pageant style SSH agent and I wanted a way to use this key within WSL2.&lt;br&gt;
&lt;a href="https://github.com/BlackReloaded/wsl2-ssh-pageant"&gt;&lt;cite&gt;BlackReloaded/wsl2-ssh-pageant&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;PageantをよしなにUNIXソケットにリレーする。どうしてもgpg-agent経由でsshできなかったので入れました。WSL2では元記事に記載のwsl-ssh-pageantが使えなくなっていたのでこちらを使います。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/BlackReloaded/wsl2-ssh-pageant/releases/download/v1.4.0/wsl2-ssh-pageant.exe"&gt;wsl2-ssh-pageant.exe&lt;/a&gt;も&lt;code&gt;%HOMEDRIVE%%HOMEPATH%\go\bin&lt;/code&gt;あたりに置いてください。&lt;/p&gt;
&lt;h3 id="socat"&gt;socat&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Multipurpose relay (SOcket CAT)&lt;br&gt;
&lt;a href="https://linux.die.net/man/1/socat"&gt;&lt;cite&gt;socat(1)&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;npipereleyでよしなにしたgpg-agentのソケットを、WSL側のgpg-agentのソケットにつなぐ。&lt;/p&gt;
&lt;p&gt;WSLでインストールしてください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-y&lt;span class="w"&gt; &lt;/span&gt;socat
&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;socat&lt;span class="w"&gt; &lt;/span&gt;-V
&lt;span class="go"&gt;socat by Gerhard Rieger and contributors - see www.dest-unreach.org&lt;/span&gt;
&lt;span class="go"&gt;socat version 1.7.3.2 on Nov 19 2017 13:56:10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_4"&gt;起動&lt;/h2&gt;
&lt;h3 id="on-windows_1"&gt;on Windows&lt;/h3&gt;
&lt;p&gt;適当にバッチファイルとして置いてください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;gpg-connect-agent reloadagent /bye &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; nul &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;タスクスケジューラからVBScript経由で呼び出すと &lt;em&gt;かわいい&lt;/em&gt; かもしれないです:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;Set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;CreateObject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Wscript.Shell&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;cmd /c C:\path\to\start-agent.bat&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vbhide&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="on-wsl2"&gt;on WSL2&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;.bashrc&lt;/code&gt;などに追記してください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;WIN_USERNAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;amane&amp;quot;&lt;/span&gt;

&lt;span class="nv"&gt;GO_BIN_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/mnt/c/Users/&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WIN_USERNAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/go/bin&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;WIN_GPG_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;C:/Users/&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WIN_USERNAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/AppData/Local/gnupg&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;WIN_HOME_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/mnt/c/Users/&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WIN_USERNAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;WSL_GPG_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;gpgconf&lt;span class="w"&gt; &lt;/span&gt;--list-dirs&lt;span class="w"&gt; &lt;/span&gt;socketdir&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;!&lt;span class="w"&gt; &lt;/span&gt;pgrep&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;socat.*gpg-agent.*npiperelay&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;/dev/null&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;rm&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WSL_GPG_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/S.gpg-agent&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;setsid&lt;span class="w"&gt; &lt;/span&gt;nohup&lt;span class="w"&gt; &lt;/span&gt;socat&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;UNIX-LISTEN:&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WSL_GPG_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/S.gpg-agent,fork&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;EXEC:&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GO_BIN_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/npiperelay.exe -ei -ep -s -a &amp;quot;&amp;#39;&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WIN_GPG_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/S.gpg-agent&amp;quot;,nofork&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;/dev/null&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="nb"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;SSH_AUTH_SOCK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/tmp/wsl2-ssh-pagent.sock&amp;quot;&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;!&lt;span class="w"&gt; &lt;/span&gt;pgrep&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;socat.*wsl2-ssh-pagent.*&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;/dev/null&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;rm&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;SSH_AUTH_SOCK&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;setsid&lt;span class="w"&gt; &lt;/span&gt;nohup&lt;span class="w"&gt; &lt;/span&gt;socat&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;UNIX-LISTEN:&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;SSH_AUTH_SOCK&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;,fork&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;EXEC:&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GO_BIN_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/wsl2-ssh-pageant.exe&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;/dev/null&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;!-- WSL2でsystemdを有効にすると、pam_systemdが `$XDG_RUNTIME_DIR` を `/run/user/$UID` に設定します。gpgがこのパスを参照してソケットを使おうとするため、固定文字列ではなくgpgconfコマンドから設定を取り出しています。 --&gt;

&lt;p&gt;PIDとかを記録すれば、もっと丁寧に二重起動を回避できますね。&lt;/p&gt;
&lt;p&gt;なお、ここまで実施しても動作しない場合、gpg-agent.socketとsocatが競合しているかもしれません。当該のsystemdサービスを停止してください。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;systemctl&lt;span class="w"&gt; &lt;/span&gt;disable&lt;span class="w"&gt; &lt;/span&gt;--global&lt;span class="w"&gt; &lt;/span&gt;gpg-agent.socket
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_5"&gt;おしらせ&lt;/h2&gt;
&lt;p&gt;今後のWSLのアップデートで記載している手順が動作しなくなった場合は、気付き次第この記事を修正する予定です（WSL3がリリースされた場合はまた別の記事に分割すると思います）。&lt;/p&gt;
&lt;h2 id="_6"&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://justyn.io/blog/using-a-yubikey-for-gpg-in-wsl-windows-subsystem-for-linux-on-windows-10/"&gt;Using a Yubikey for GPG in WSL (Windows Subsystem for Linux) on Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.antirandom.com/2020/03/ssh-on-windows-with-private-key-on-yubikey/"&gt;SSH on Windows with private key on Yubikey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codingnest.com/how-to-use-gpg-with-yubikey-wsl/"&gt;How to use GPG with YubiKey (bonus: WSL)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/WSL/issues/9817"&gt;GPG with Yubikey doesn't work on WSL2 with systemd activated · Issue #9817 · microsoft/WSL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="tech"/></entry><entry><title>はてなブックマークにページを再クロールさせる</title><link href="https://ama.ne.jp/post/hatebu-force-recrawl/" rel="alternate"/><published>2024-02-07T12:15:00+09:00</published><updated>2024-02-07T12:15:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-02-07:/post/hatebu-force-recrawl/</id><summary type="html">&lt;p&gt;自らの勘違いや曲解を顧みない無責任で無思慮な傍観者の魔術に対する防衛術&lt;/p&gt;</summary><content type="html">&lt;p&gt;先日、&lt;a href="/"&gt;あまねけ！&lt;/a&gt;に対して、はてなブックマークの&lt;a href="https://b.hatena.ne.jp/help/entry/pageowner"&gt;ページオーナー設定&lt;/a&gt;を行いました。しかし、設定前に登録されていたブックマークに対しては、少なくとも2ヶ月以上待っても設定が全く反映されませんでした。数ヶ月以上前の古いページはクロール対象外になっているか、非常に長いスパンで再クロールがスケジュールされているのかもしれません。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://b.hatena.ne.jp/help/entry/pageowner"&gt;ページオーナー設定&lt;/a&gt;によれば、ページの任意の箇所に以下の記載を行うことで、当該のはてなIDがそのページの所有者として扱われるようです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;link&lt;/span&gt; &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;author&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.hatena.ne.jp/amane-katagiri/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;そして、ページオーナーになれば、対象のブックマークに対して以下の操作が行えるそうです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ご自身のサイトがブックマークされた際の、はてなIDへの通知&lt;/li&gt;
&lt;li&gt;はてなブックマークのコメント一覧ページのコメント非表示&lt;/li&gt;
&lt;li&gt;コメント一覧ページ（エントリーページ）の情報更新&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;はてなIDへの通知は割とどうでもよく、情報更新リクエストも（今回バイパスしたので）特段嬉しいわけではないですね。しかし、コメントを非表示にできるのは非常にありがたいです。はてなブックマークには自らの勘違いや曲解を顧みない無責任で無思慮な傍観者が多く、かれらの支離滅裂なコメントを放置しておくと、元の記事の意図とは異なる印象を与えかねません。そのようなユーザーが多く集まってきてしまったブックマークは、できるだけ早くコメントを非表示にすべきでしょう。&lt;/p&gt;
&lt;p&gt;待っていてもどうしようもないのでいろいろ試したところ、少なくとも公開ブックマークが1件以上あるページについては、個別に再クロールさせてページオーナー設定を反映させることができました。未来の私のために、あるいは同じような問題を抱えた他の誰かのために、簡単なメモとして残します。&lt;/p&gt;
&lt;p&gt;もちろん公開ブックマークがないページでも実行できますが、あまり意味はないと思います。&lt;/p&gt;
&lt;p&gt;&lt;img alt="上記再クロール手順の実行例" height="463" src="/images/hatebu-force-recrawl/recrawl.gif" width="750"&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;再クロールさせたいはてなブックマークページを開く。&lt;ul&gt;
&lt;li&gt;ブックマーク対象のページが &lt;code&gt;https://ama.ne.jp/post/goodbye-bunfree/&lt;/code&gt; なら、ブックマークページは &lt;code&gt;https://b.hatena.ne.jp/entry/s/ama.ne.jp/post/goodbye-bunfree/&lt;/code&gt; となる。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;末尾に適当なクエリパラメータを付与して再読み込みする。&lt;ul&gt;
&lt;li&gt;これまではてなブックマークに登録がないパラメータである必要がある（MUST）。&lt;/li&gt;
&lt;li&gt;ブックマーク対象のサイトで解釈されない無意味なパラメータであるべき（SHOULD）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;「このページはまだブックマークされていません」というダイアログが出たら「ブックマークする」を押す。&lt;ul&gt;
&lt;li&gt;ダイアログが出ずに通常のブックマークページが表示された場合、2に戻って別のクエリパラメータを使う。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ブックマークの追加ページが表示されたら、どんな内容でもいいのでブックマークする。&lt;ul&gt;
&lt;li&gt;コメントは入力しなくてよいし、非公開でもよい。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;タイトルがURLのままのブックマークページが表示されたら、十数秒間～数分間待ってリロードする。&lt;/li&gt;
&lt;li&gt;タイトルがブックマーク対象のページのものに変わったら、再クロールが完了している。&lt;ul&gt;
&lt;li&gt;タイトルがURLのままであれば5に戻ってもう一度リロードする。&lt;/li&gt;
&lt;li&gt;ページオーナー設定が適切に反映されていれば、再クロールやコメント表示設定を利用できるようになっている。&lt;/li&gt;
&lt;li&gt;再クロールのために追加したブックマーク（セルクマ）は削除してよい。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;いずれも2024年2月7日時点の動作であり、今後は上手くいかないかもしれません。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>2024/01/01～2024/02/06</title><link href="https://ama.ne.jp/post/report-20240206/" rel="alternate"/><published>2024-02-06T11:28:00+09:00</published><updated>2024-02-06T11:28:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-02-06:/post/report-20240206/</id><summary type="html">&lt;p&gt;2024/01/01～2024/02/06のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/search/"&gt;サイト内検索&lt;/a&gt;を利用できるようにしました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pagefind.app/"&gt;Pagefind&lt;/a&gt;というライブラリを用いて実現しており、CSPでJavaScriptの利用を大きく制限してきたあまねけ！の一時代が終わりつつあります。&lt;/li&gt;
&lt;li&gt;JavaScriptが動作しない環境の場合は、&lt;a href="/link/#_2"&gt;あまねけ！アーカイブ&lt;/a&gt;をダウンロードしてローカルで検索を行うと便利です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ズーム機能を利用した際の表示の乱れを修正しました。&lt;/li&gt;
&lt;li&gt;カラーテーマ切り替え機能を利用した際の表示の乱れを修正しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/link/#_1"&gt;ミラーサイト&lt;/a&gt;で壊れていた一部のリンクを修正しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/yukizuri/"&gt;ゆきずり&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;結婚、出産、家制度みたいな気が重くなるライフステージを、ギャグっぽい雰囲気でまとめてみたつもりです。どうでしょうか？&lt;/li&gt;
&lt;li&gt;&lt;ruby&gt;&lt;rb&gt;百合&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ゆり&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の間に&lt;ruby&gt;&lt;rb&gt;傷&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;きず&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を挟んだら「ゆきずり」だね、という話を某所でしたのがきっかけです。あなたも「百合の間に挟まる傷」をテーマにお話を書きませんか？&lt;/li&gt;
&lt;li&gt;今年は毎月1本おはなしを投稿していこうと思っています。ぜひ「読んだ」ボタンや&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;で応援してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/lonely-neon/"&gt;こどくなネオンを追う&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;2023年5月開催の&lt;a href="https://bunfree.net/event/tokyo36/"&gt;文学フリマ東京36&lt;/a&gt;で頒布した都会のネオンに関する架空の記事です。&lt;/li&gt;
&lt;li&gt;2月4日まで東京タワーで開催されていた&lt;a href="https://kyodonewsprwire.jp/release/202312134229"&gt;大ネオン展‐FIND NEW WAVE‐&lt;/a&gt;というイベントでネオンを浴びていい気持ちになったので、公開することにしました。&lt;/li&gt;
&lt;li&gt;掲載されている画像は、現実の写真に生成AIでネオン風の画像をはめ込んだものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>こどくなネオンを追う</title><link href="https://ama.ne.jp/post/lonely-neon/" rel="alternate"/><published>2024-02-06T11:25:00+09:00</published><updated>2024-02-06T11:25:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-02-06:/post/lonely-neon/</id><summary type="html">&lt;p&gt;今もどこかにある虚構の輝き&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は、2023年5月発行の&lt;a href="https://vc.hentaigirls.net/"&gt;バーチャルキャンディ&lt;/a&gt;シリーズに収録されています。&lt;a href="https://hentaigirls.net/book/"&gt;公式サイト&lt;/a&gt;から入手可能です。 */&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/lonely-neon/image.png"&gt;&lt;img alt="こどくなネオンを追う 本文画像" height="529" src="/images/lonely-neon/image_thumb.jpg" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;こどくなネオンを追う&lt;/h2&gt;
&lt;p&gt;&lt;img alt="~こどくなネオンを追う タイトル" height="178" src="/images/lonely-neon/title.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;はぐれネオン&lt;/strong&gt; とは、いつ、誰が、何のために設置したのか分からないまま点灯しているネオンである。歓楽街を離れた住宅街や公園では、ときどき不可解な場所にネオンが見つかる。彼らが放つ独特の雰囲気は、都会に生きる我々と少し似ているかもしれない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;眠らない街、ネオン輝く繁華街……夜の街に浮かび上がるネオンサインは、都会の夜でスナックやバー、風俗店などが自らの存在を示すための輝きと言えるだろう。多くのネオンサインが密集する歓楽街は、夜が深くなるにつれて独特な雰囲気を放ち始める。赤、青、黄色のネオンサインが積み上がる大きなビルに挟まれた通りを歩いていると、むしろ昼間よりも明るく感じるものだ。&lt;/p&gt;
&lt;p&gt;このようなネオンサインの設置には三つの原則がある。まずはそのネオンサインで宣伝する対象が存在すること（宣伝性）。宣伝対象は同じ場所にある店でもいいし、製品やメーカーの存在をアピールするものでも構わない。そして、宣伝の効果が設置・維持費用を上回ること（便益性）。ネオンサインは製作代や設置場所の費用、そして電気代が継続してかかるため、広告費として適切か検討する必要がある。そして、最後はネオンサインの位置が分かりやすく、内容が識別しやすいデザインになっていること（視認性）である。&lt;/p&gt;
&lt;p&gt;さて、そんなネオン街を少し離れた薄暗い路地や、あるいは歓楽街とは無縁の住宅街の真ん中で、いきなりネオンサインに出会った経験はあるだろうか？　取り壊されたビルの跡地、住宅街の無骨なブロック塀の真ん中、十数年前に閉店したはずの店のシャッター……など。これらのネオンサインのほとんどは、誰が作ったのか、なぜ設置したのかが分からないまま放置されている。このようなネオンサインを「はぐれネオン」と呼ぶことにしよう。&lt;/p&gt;
&lt;p&gt;ネオンサインはその鮮やかさの割に消費電力が低い製品ではあるが、もちろん点灯させ続けておけば電気代がかさんでいく。大きめのネオンサインでは一時間に五円ほど、二十四時間点けっぱなしなら一ヶ月に四千円だ。仮に夜間だけ点灯させるタイマー運転を導入しても、一年に二万円ほどかかってしまう。一回きりのコストで済むいたずらの落書きや立て看板とは異なり、電気代を払い続けてまで設置する理由があるはずだが、何を伝えたいのか読み取ることさえできない。前述の定義を参考にすれば、はぐれネオンは宣伝性と便益性に欠けているのだ。&lt;/p&gt;
&lt;p&gt;インターネット上では、はぐれネオンの位置を結ぶととある結界の形になるという都市伝説が最も有名だろう。結界を構成するはぐれネオンが増えるのは不吉な予兆であり、政府が密かに異世界の攻撃から一帯を守っているという説だ。他にも、ネオンによるグロー放電の発がん性や、点灯中に漏れる虫の羽音のようなジジジジッという不快な騒音に注目して、とある組織が周辺住民に被害を与えるために設置したという陰謀論も根強い。しかし、いずれも主張が強引で根拠が薄く、面白半分に流布される噂の域を出ない。&lt;/p&gt;
&lt;p&gt;本記事では、実際に街を歩きながら発見した「どうしてここにネオンサインが？」と思わず首を傾げてしまうようなはぐれネオンの風景をまとめていく。夜中にあてもなく散歩している気分で眺めてみてほしい。いずれも許可を得て安全な手段で撮影したものだが、設置場所が広く知られることで周辺住民や地権者に迷惑がかからないよう、詳細な記載は割愛させていだたく。&lt;/p&gt;
&lt;p&gt;&lt;img alt="倒産して10年以上経つ工場跡地に「GOS」という旧社名が輝く" height="300" src="/images/lonely-neon/1.png" width="300"&gt;&lt;br&gt;
倒産して10年以上経つ工場跡地に「GOS」という旧社名が輝く。&lt;/p&gt;
&lt;p&gt;&lt;img alt="夜の公園を見守るナザール・ボンジュウがこちらに目を向ける" height="300" src="/images/lonely-neon/2.png" width="300"&gt;&lt;br&gt;
夜の公園を見守るナザール・ボンジュウがこちらに目を向ける。&lt;/p&gt;
&lt;p&gt;&lt;img alt="殺風景な仮囲いに彩を与える果物たち" height="300" src="/images/lonely-neon/3.png" width="300"&gt;&lt;br&gt;
殺風景な仮囲いに彩を与える果物たち。人目を浴びず寂しげだ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="猫カフェかペットショップの看板のようだが店は見当たらない" height="300" src="/images/lonely-neon/4.png" width="300"&gt;&lt;br&gt;
猫カフェかペットショップの看板のようだが店は見当たらない。&lt;/p&gt;
&lt;p&gt;&lt;img alt="雑居ビルの隙間に輝くネオンが見慣れない異世界の住所を示す" height="300" src="/images/lonely-neon/5.png" width="300"&gt;&lt;br&gt;
雑居ビルの隙間に輝くネオンが見慣れない異世界の住所を示す。&lt;/p&gt;
&lt;p&gt;&lt;img alt="都会の影を軽やかに泳ぐ魚" height="300" src="/images/lonely-neon/6.png" width="600"&gt;&lt;br&gt;
都会の影を軽やかに泳ぐ魚。シンプルなラインにセンスが光る。&lt;/p&gt;
&lt;p&gt;&lt;img alt="海辺のパーキングでグラフィティに紛れて輝く二色が美しい" height="300" src="/images/lonely-neon/7.png" width="300"&gt;&lt;br&gt;
海辺のパーキングでグラフィティに紛れて輝く二色が美しい。&lt;/p&gt;
&lt;p&gt;&lt;img alt="夕日を浴びて目覚める美しい恐竜の姿" height="300" src="/images/lonely-neon/8.png" width="600"&gt;&lt;br&gt;
夕日を浴びて目覚める美しい恐竜の姿。今からは彼らの時間だ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="某区がリサイクル啓発に設置したらしいが周囲はゴミだらけだ" height="300" src="/images/lonely-neon/9.png" width="300"&gt;&lt;br&gt;
某区がリサイクル啓発に設置したらしいが周囲はゴミだらけだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;/* 【PR】あなたも「#はぐれネオン」の写真を投稿しませんか？ */&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>ゆきずり</title><link href="https://ama.ne.jp/post/yukizuri/" rel="alternate"/><published>2024-01-31T22:05:00+09:00</published><updated>2024-01-31T22:05:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2024-01-31:/post/yukizuri/</id><summary type="html">&lt;p&gt;ゆ きず り&lt;/p&gt;</summary><content type="html">&lt;p&gt;「ねぇ、リナ。やっぱり、結婚はもう少し先にしない？」&lt;/p&gt;
&lt;p&gt;「え、急にどうしたの。明日あいさつに行くって、もう言ってあるんでしょ？」&lt;/p&gt;
&lt;p&gt;「それは、そうだけど……」&lt;/p&gt;
&lt;p&gt;突然そう切り出されて困惑するリナは、赤ペンでマルをつけながら読み進めていた旅行雑誌をソファに放り投げてから、キッチンに立つ美代子の元に向かった。昨日までの計画によれば、美代子の実家で結婚のあいさつを済ませてから、地酒の蔵元が集まる酒蔵団地で観光を楽しむ予定だったのだ。&lt;/p&gt;
&lt;p&gt;美代子もまた洗い終わった皿を拭く手を止めて、頭二つ分小さいリナに向き直った。余計なことを考えてしまいそうなときは、とにかく目の前の仕事に集中して忘れようとするのだが、今日ばかりはどうしても押し寄せる不安を受け流せずにいた。彼女も久しぶりに帰る地元の景色をリナに紹介できるのを楽しみにしていたはずで、それを反故にするとはなかなかの事態である。&lt;/p&gt;
&lt;p&gt;「だけど、どうしたの？　結婚の話は美代子から始めたんじゃない。そろそろ両親を安心させてあげたい、って」&lt;/p&gt;
&lt;p&gt;「分かってる、それは分かってるのよ。でもね……」&lt;/p&gt;
&lt;p&gt;「でも、何？　あたし、美代子のそうやってはっきりしないところ、嫌だって言ったよね」&lt;/p&gt;
&lt;p&gt;「ごめんなさい。どう言えばいいか、まとまらなくて……」&lt;/p&gt;
&lt;p&gt;「はっきりしてよ。将来に目を向けたら、急にあたしと暮らすのが嫌になった？」&lt;/p&gt;
&lt;p&gt;リナは美代子の返事を促すつもりでわざとそう言ったのだが、どうにか言葉を選ぶのに精一杯の美代子には逆効果だった。きゅっと身体をすくめる姿を見たリナにもその不安が感染ったようで、不意に漏れ出た涙が彼女の目元いっぱいに溜まってしまう。リナは美代子からゆっくりと顔をそらして、涙を流す姿を見せないようにぐっと息を止めた。&lt;/p&gt;
&lt;p&gt;せっかちなリナのペースに合わせるのに必死な美代子、という二人の姿はこの家ではあまり珍しくなかったが、涙が出るほど必死に美代子を責め立てるのは数ヶ月ぶりのことである。リナはひどく動揺していた。数年間一緒に暮らした末の結婚という帰結が美代子のたった一言でひっくり返ろうとしているわけで、リナがその言葉の真意を知りたがるのは当然だろう。&lt;/p&gt;
&lt;p&gt;「ご、ごめんって。でも、今になって結婚を先延ばしにするなんて、やっぱり変だよ」&lt;/p&gt;
&lt;p&gt;涙をやり過ごしてほんの少し落ち着きを取り戻したリナは、ぎゅっとエプロンを握る美代子の手を上から包み込んで、そう優しく言い聞かせた。半分はそのまま美代子に向けた言葉で、しかしもう半分は自分自身の気持ちを整理するためのものだ。すっかり冷えた美代子の手を温めながら、やっぱり変だ、という自分の言葉を反芻する。&lt;/p&gt;
&lt;p&gt;やっぱり、変だ。新潟はまだ女同士の結婚を許さないのか。片親で育った素行の悪い子はダメなのか。私じゃ安心させられないとでもいうのか。もう新幹線のチケットも取ったのに、ホテルのキャンセル料だって80パーセントもかかってしまう。大事なことも些末なことも一緒になって、リナの頭を駆け巡る。&lt;/p&gt;
&lt;p&gt;先月、二人でリナの母親に会いに行ったときは何も問題なかったはずだった。リナの母親は美代子をリナにはもったいないほどのいい子と評していたし、美代子もリナに「楽しくて素敵なお母さんね」と羨ましそうに語っていた。だからこそ、こんな事態になった原因は自分にあるのではないかと、リナはもはや妄想じみた悪い想像を止められずにいた。&lt;/p&gt;
&lt;p&gt;美代子が再び口を開くまでの間、リナは彼女の長いまつげを揺らすまばたきからも、言葉に迷うたびに小さく動く唇からも目を離すことができない。それはほんの数十秒の沈黙だったが、その言葉を待って気が焦るリナにとってはまるで数時間のように感じられた。&lt;/p&gt;
&lt;p&gt;「あのね……私たちのことを両親にどう説明したらいいのか、思いつかなくて」&lt;/p&gt;
&lt;p&gt;「……えっ？」&lt;/p&gt;
&lt;p&gt;そうしてやっとのことで沈黙を破った美代子の言葉に、リナは再び面食らった。両親への説明なんて、ありのままを伝えるだけじゃないか。リナには自分たちのことを隠すような発想がなかったし、美代子が何を取り繕おうとしているのかも分からない。そもそも、地元を離れてもう実家に戻るつもりもないと言っていた美代子が、どうして親のせいでそんなに気を揉むのか理解できなかった。&lt;/p&gt;
&lt;p&gt;そんなリナの困惑をよそに、昨日から抱えていた心配をやっと打ち明けられた美代子は胸を撫で下ろす。たとえこの先も帰るつもりがない実家であっても、厳しい両親に相対するのを想像すると一人では抱えきれない不安が湧き上がるものだった。リナと美代子の二人にとっては問題にはならなくても、親や周囲からは看過できないこともあるだろう。&lt;/p&gt;
&lt;p&gt;「説明って……普通に紹介したらいいじゃん。もしかして、今さら女同士の結婚は無理なんて言うの？」&lt;/p&gt;
&lt;p&gt;「そんなわけないじゃない。私、男とか女とか関係なく、これから先もリナとずっと一緒にいるつもりよ」&lt;/p&gt;
&lt;p&gt;「う、うん……ごめん。それはあたしも、同じだから。じゃあ、いったい何を迷ってるわけ？」&lt;/p&gt;
&lt;p&gt;リナは、はっきりとそう言ってのける美代子の顔をまっすぐに見つめるのが気恥ずかしくなって、そっと目をそらす。ぽぅと頬を染めるリナを思わず胸に抱き留めそうになった美代子だったが、子供扱いするなと言っていつものように怒られるのは目に見えているので、重ねられた手を握り返すだけで我慢した。&lt;/p&gt;
&lt;p&gt;「えぇ、私たちの出会いのことよ。酔って行きずりの女性とホテルに行ったのがきっかけで……なんて絶対言えないじゃない？　どうしたらいいのかしら……」&lt;/p&gt;
&lt;p&gt;すこぶる深刻な表情でそう告げた美代子を見て、リナは自分がここまで壮大な演技でからかわれてきたのかと疑った。彼女にとっては、その真剣さに比してそれほどまでにどうでもいいと思わせる悩みだったからだ。二人の出会いなんてこれまで積み重ねてきた生活に比べればただのきっかけに過ぎないし、軽薄な出会い方に眉をひそめる人相手にはいくらでも嘘をつけばいい。&lt;/p&gt;
&lt;p&gt;しかし、美代子は嘘をつくのが苦手だった。頭の中で作り話を仕立て上げたり、都合の悪い事実を誤魔化そうとすると突拍子もないことを言ってしまうのだ。リナもそれを思い出すと、彼女はやはり冗談でからかおうとしているわけではなく、ただただ真面目に明日の顔合わせに不安を覚えているのだと信じざるを得なかった。&lt;/p&gt;
&lt;p&gt;「どこで出会ったかなんて、言う必要ある？　先月もママとはそんな話しなかったじゃん」&lt;/p&gt;
&lt;p&gt;「いいえ。きっと訊いてくるわ。兄さんの結婚のとき、探偵を使って身辺調査していたくらいだもの」&lt;/p&gt;
&lt;p&gt;美代子の家系は地元の名家というわけでもなかったが、親族がそれなりに多いせいか長男の結婚には気合いが入っていたらしい。早々に家を離れた妹の美代子には兄のときほど深入りしないだろうと思いつつ、家同士の格がどうのという時代遅れな指摘は避けたいところ。些末なことから失礼なことまであれこれと根掘り葉掘り尋ねられるだろうという美代子の心配をよそに、リナは「面接みたいなものでしょ？　適当に話すから平気だよ」とどこ吹く風だった。&lt;/p&gt;
&lt;p&gt;しかし、それから二人のなれそめも話題に上がるだろうと思い至ったのは、ちょうど昨日、美代子がブライダル会社のテレビCMを眺めていたときである。そのCMでは、偶然の出会いから結婚式までこぎ着けたカップルのストーリーを取り上げていたが、リナとの出会いはここまで美化できまい、と美代子を悩ませたのであった。&lt;/p&gt;
&lt;p&gt;「じゃあ、先に対策しておこうよ。大学は同じなんだし、サークルで出会ったことにするとか」&lt;/p&gt;
&lt;p&gt;「私、箏曲と短歌のサークルに所属していたわ。どっちがいいかしら？」&lt;/p&gt;
&lt;p&gt;「箏は触ったこともないし……短歌も、難しいなぁ。美代子は、棒高跳びとか、いや、マラソンとかでもいいけど……想像つかないよね？」&lt;/p&gt;
&lt;p&gt;「えぇと、『リナさんは、棒高跳びで15メートルも飛んだことがあって、そこから仲良くなったんです』……とか？」&lt;/p&gt;
&lt;p&gt;ビルの5階相当の高さまで飛んでウレタンマットに飛び込む競技なんて、危険すぎて火星くらいでしか開催できない。棒高跳びをよく知らないのなら具体的な記録を持ち出さなければいいところ、どうにか嘘を強調しようとする美代子はいつも余計にさじ加減を間違うのだった。&lt;/p&gt;
&lt;p&gt;「世界記録の三倍は流石に……じゃあ、短歌のサークルで出会ったことにするね」&lt;/p&gt;
&lt;p&gt;リナは美代子の誘いで何度か短歌サークルを見学したことがあった。だから短歌を通じて出会ったと言い張っても嘘にはならないが、ほんの二週間の経験で短歌について語れるところが少ないというのは気がかりである。リナが理解しているのは31音のリズムと教科書で見た古い短歌の雰囲気だけだ。&lt;/p&gt;
&lt;p&gt;それでも、サークルで交わされていたような現代短歌に批評を加えることができなくても、美代子が宇宙人の棒高跳びを回顧するよりは、まだ &lt;em&gt;まし&lt;/em&gt; といったところだろう。&lt;/p&gt;
&lt;p&gt;「そうね、出会いの件はなんとか頑張ってみるわ……でも、別の心配もあるのよ。実家に帰るのも久しぶりだし、アレを見られないように気をつけなきゃ」&lt;/p&gt;
&lt;p&gt;リナが「アレ？」と聞き返すと、美代子は「これよ」とエプロンの下に着ていた薄手のリブニットを一緒にたくし上げて、程よく柔らかそうな腹部を目の前に晒した。リナは、突然露わになったまばゆいばかりの肌に、そして服と一緒に持ち上げられた大きな胸の膨らみにしばらく交互に見入っていたが、美代子の言う「アレ」のことを思い出してぶんぶんと頭を振る。&lt;/p&gt;
&lt;p&gt;美代子のへその横から左の脇腹にかけて細い線のように残る傷跡は、彼女自身を除けばリナしか知らない二人だけの秘密である。色素の薄い肌の美代子に直接刻まれた滑らかな曲線はよく目立ち、まるで可動性のよいドールやアンドロイドの胴体を思わせるのだった。&lt;/p&gt;
&lt;p&gt;「酔った勢いでこんな傷を作っちゃったなんて、誰にも言えないもの」&lt;/p&gt;
&lt;p&gt;たくし上げた服をかい繕ってエプロンの上から腹部を撫でる美代子は、そう呟いて小さくため息をついた。小さく鋭いナイフの切っ先で引かれた傷は、初めこそおそるおそる刃先を動かしたような歪みが残っていたが、徐々に大胆で均整な軌道の美しさをまとっていく。美代子は自分の身体に刻まれたそのカーブを撫でるたびに、リナが自分に向ける視線の熱さをいつでも思い出せた。&lt;/p&gt;
&lt;p&gt;「でも、美代子がやってほしいって言ったんだよ？」&lt;/p&gt;
&lt;p&gt;「リナだって、途中から乗り気だったでしょう？　実際、私のお腹を切ったのはリナじゃない」&lt;/p&gt;
&lt;p&gt;「そのナイフは美代子のでしょ？　それに、美代子だって興奮してたじゃん。ラブホのベッドぐちゃぐちゃにしてさ」&lt;/p&gt;
&lt;p&gt;「……うん、お願いしたのは私の方ね。ごめんなさい。すごく、嬉しかったから」&lt;/p&gt;
&lt;p&gt;「い、いや……私も……うん」&lt;/p&gt;
&lt;p&gt;ストレートな言葉の不意打ちに恥ずかしくなって、リナは美代子の胸に勢いよく顔を埋めた。リナを胸に抱きしめても怒られない貴重な時間に、美代子は待ってましたと言わんばかりに癖毛のショートボブを優しく撫でつける。こうしてリナを腕の中に包み込んでいると、まるで母親になったような心地になるのだ。&lt;/p&gt;
&lt;p&gt;……母親？&lt;/p&gt;
&lt;p&gt;「そうだ！　いいこと考えたわ」&lt;/p&gt;
&lt;p&gt;「変なことじゃないよね？」&lt;/p&gt;
&lt;p&gt;嫌な予感と共に顔を上げたリナは、怪訝な表情で美代子の表情を覗き込む。美代子の頭に「母親」という言葉が浮かんだのは、もちろんリナの知るところではなかったが、それでも彼女の口から飛び出すのが &lt;em&gt;いいこと&lt;/em&gt; ではないのは予想できた。&lt;/p&gt;
&lt;p&gt;「二人で妊娠していることにしましょうよ。授かり婚なら、きっといろいろ誤魔化せるわ」&lt;/p&gt;
&lt;p&gt;やっぱり、とリナは思った。&lt;/p&gt;
&lt;p&gt;二つの生殖細胞から人工的に受精卵を作る技術が一般的に利用されるようになってから、生産性がないだとか国が滅びるだとか評されてきた同性婚カップルに等しく権利が与えられるまでに時間はかからなかった。特に、女性同士のカップルがお互いの受精卵を身に宿して生まれた双子は二体性双生児と呼ばれていて、二人の母親に二人の姉妹という四人家族の姿はある種のモデルケースである。&lt;/p&gt;
&lt;p&gt;しかし、女性同士の妊娠は一夜の過ちや避妊の失敗で起こるものではない。専門医の技術の下で数週間から数ヶ月かけてお互いの卵子を人工的に交換するのだから、妊娠してしまったから結婚します、という因果の逆転を起こすほどの理性の隙はどこにもないのだ。嘘をつくのが苦手な美代子らしい、どうにも大味な思いつきである。&lt;/p&gt;
&lt;p&gt;「あたし、お父さんに殴られたりしない？　厳しい人なんじゃないの？」&lt;/p&gt;
&lt;p&gt;「だから二体性にするんじゃない。お互いに妊娠したら、一方的に怒るわけにはいかないでしょ？」&lt;/p&gt;
&lt;p&gt;辻褄の合わない無茶な筋書きを今から一つ一つ直したところで、そのまともな嘘さえ突き通せないだろう美代子の姿を想像して途方に暮れたリナは、すっかり身体の力が抜けてまた美代子の身体に寄りかかった。もちろん美代子には彼女の気苦労が伝わることはなく、昨日からの悩みが晴れてすっきりとした顔である。&lt;/p&gt;
&lt;p&gt;「だって、孫がいっぺんに二人もできるのよ？　リナのお母さんも喜ぶわ。ね、ね、いいでしょう？」&lt;/p&gt;
&lt;p&gt;「あー……そうね。美代子の子供なら、産んでもいいかな」&lt;/p&gt;
&lt;p&gt;私と美代子の結婚だ。美代子は私のだ。私が傷を残したんだ。親との顔合わせなんてどうにでもなれ。そうして顔を上げるのも億劫になったリナは、遠い雪国の景色をぼんやりと思い浮かべながら美代子の柔らかさに身を任せていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;/* 【PR】あなたも「百合の間に挟まる傷」をテーマにお話を書きませんか？ */&lt;/p&gt;</content><category term="lily"/></entry><entry><title>2023/11/02～2023/12/31</title><link href="https://ama.ne.jp/post/report-20231231/" rel="alternate"/><published>2023-12-31T22:07:00+09:00</published><updated>2023-12-31T22:07:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-12-31:/post/report-20231231/</id><summary type="html">&lt;p&gt;2023/11/02～2023/12/31のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;「読んだ」ボタンを高速化しました。&lt;ul&gt;
&lt;li&gt;「読んだ」リクエストを受けた際、非同期の印刷キューに入れてすぐにレスポンスするのではなく、レシート印字が完了するまで待たせてしまっていたみたいです。&lt;/li&gt;
&lt;li&gt;この改善でもっといっぱい「読んだ」ボタンを押せるようになりましたが、レシート印字の頻度はスロットリングされています&lt;sup id="fnref:no-throttle"&gt;&lt;a class="footnote-ref" href="#fn:no-throttle" title="スロットリングしなかった場合は、スクレイピングで「読んだ」ボタンを全部押された回のようになります。"&gt;1&lt;/a&gt;&lt;/sup&gt;。安心してたくさん押してください！&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;縦書き表示のレイアウトを調整しました。&lt;ul&gt;
&lt;li&gt;レイアウト崩れについて&lt;a href="/comment/202311022003/"&gt;comment/202311022003&lt;/a&gt;および&lt;a href="/comment/202311032307/"&gt;comment/202311032307&lt;/a&gt;で指摘いただきました。ありがとうございます！&lt;/li&gt;
&lt;li&gt;CSS自体は &lt;code&gt;text-indent: 1em&lt;/code&gt; と &lt;code&gt;text-orientation: upright&lt;/code&gt; でおおよそいい感じになるんですが、例外が多く実装はかなり泥臭くなってしまいます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ページ右上にフォントサイズを切り替える &lt;img alt=":mag_right:" class="emoji" height="16" src="/emojis/1f50e.png" width="16"&gt; ボタンを設置しました。&lt;ul&gt;
&lt;li&gt;視力の悪い方や、解像度の大きなモニターを使っている方でも読みやすいサイト体験を実現できるようになりました。&lt;/li&gt;
&lt;li&gt;ページ内検索機能だと思って &lt;img alt=":mag_right:" class="emoji" height="16" src="/emojis/1f50e.png" width="16"&gt; ボタンを押してしまった！という報告をいただいており、現在UIについて修正を検討中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ズームボタンの追加に伴い、従来ページ左上にあった「toggle color scheme」ボタンの表示を変更しました。&lt;ul&gt;
&lt;li&gt;明→暗では &lt;img alt=":new_moon_with_face:" class="emoji" height="16" src="/emojis/1f31a.png" width="16"&gt; の、暗→明では &lt;img alt=":sun_with_face:" class="emoji" height="16" src="/emojis/1f31e.png" width="16"&gt; のアイコンが表示されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/humans.txt"&gt;ama.ne.jp/humans.txt&lt;/a&gt;を設置しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://humanstxt.org/"&gt;humans TXT&lt;/a&gt;は、検索エンジンのクローラにサイトアクセスのヒントを示す&lt;a href="https://www.rfc-editor.org/rfc/rfc9309.html"&gt;robots.txt&lt;/a&gt;のパロディです。ロボットのためではなく、サイトを訪問した人間のために情報を示します。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discord.com/humans.txt"&gt;discord.com/humans.txt&lt;/a&gt;がかわいいなと思ったので、思い切って大きなあまねちゃんAAを入れてみました。&lt;/li&gt;
&lt;li&gt;みんなのhumans.txtも教えてくださいね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://b.hatena.ne.jp/help/entry/pageowner"&gt;はてなブックマークのページオーナー設定&lt;/a&gt;を行いました。&lt;ul&gt;
&lt;li&gt;今年最悪のバズりを記録した&lt;a href="https://b.hatena.ne.jp/entry/s/ama.ne.jp/post/goodbye-bunfree/"&gt;さようなら、大きくなりすぎた文学フリマ&lt;/a&gt;を眺めてみましたが、今のところ変化はありません。&lt;/li&gt;
&lt;li&gt;自動でオーナー情報の再取得が走るという旨の記載はありますが、やはり設定後にブックマークされたサイトのみ適用されそうです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;2023年に受け取った寄付金額を確定しました。&lt;/li&gt;
&lt;li&gt;Firebase Hostingの従量課金額を記載しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/input-method-emoji/"&gt;絵文字入力方法まとめ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;なかなか注目を浴びない絵文字の入力方法について掘り下げました。&lt;/li&gt;
&lt;li&gt;あまねちゃんのファンマークは &lt;code&gt;:gift_heart:&lt;/code&gt; &lt;img alt=":gift_heart:" class="emoji" height="16" src="/emojis/1f49d.png" width="16"&gt; です。&lt;/li&gt;
&lt;li&gt;操作説明用のGIFを撮影するのに一番時間がかかりました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/shirahige/"&gt;水神社の前で&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/8771"&gt;百合SS Advent Calendar 2023&lt;/a&gt;への投稿作品です。&lt;/li&gt;
&lt;li&gt;「返らぬ日」のほくろの刺青を口元に入れるエピソードが強く心に残っています。&lt;/li&gt;
&lt;li&gt;隅田川神社の鳥居と白鬚東アパートの写真を掲載していますが、実在の団地や神社とは全く関係ありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/memoria-scope/"&gt;メモリアスコープ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/8771"&gt;百合SS Advent Calendar 2023&lt;/a&gt;への投稿作品2（ツー）です。&lt;/li&gt;
&lt;li&gt;おもちゃ目当てで仲良くしてくれていた友だち、あなたにはいましたか？&lt;/li&gt;
&lt;li&gt;高島平団地の写真を掲載していますが、実在の団地とは全く関係ありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:no-throttle"&gt;
&lt;p&gt;スロットリングしなかった場合は、&lt;a href="https://amaneimages.com/u/amane/m/yonda/"&gt;スクレイピングで「読んだ」ボタンを全部押された回&lt;/a&gt;のようになります。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-throttle" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="report"/></entry><entry><title>メモリアスコープ</title><link href="https://ama.ne.jp/post/memoria-scope/" rel="alternate"/><published>2023-12-15T00:09:00+09:00</published><updated>2023-12-15T00:09:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-12-15:/post/memoria-scope/</id><summary type="html">&lt;p&gt;ホンモノのシゼンは贅沢品です&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://amaneimages.com/u/amane/m/photo-a7b9/"&gt;&lt;img alt="壁の自然写真" height="563" src="/images/memoria-scope/title.jpg" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「じゃあミイちゃんは、ホンモノのお花の香りも知ってるの？」&lt;/p&gt;
&lt;p&gt;「……うん、ちょっとだけ。でも、コスモスはあんまり匂いのしない花だったかな。鼻をよく近づけるとね、ほんの少し爽やかな香りがするの」&lt;/p&gt;
&lt;p&gt;「へー、やっぱりホンモノはすごいね！」&lt;/p&gt;
&lt;p&gt;ユウはまだ興奮を抑えきれないようで、目はぽぅと熱を帯びて頬がほんのり赤くなっている。私の棟とユウの棟を繋ぐいつもの通路なのに、周囲をきょろきょろと見回してそわそわと落ち着かない。まるで自分が地面を踏みしめていることさえ疑っているように。&lt;/p&gt;
&lt;p&gt;ユウが「ホンモノのお花」と言って指さしたのは、環境美化の名目で設置されたエクステラと呼ばれるシゼン写真である。団地を出ることを許されない住民がシゼンを身近に感じられるように、と想像力に欠けた為政者にありがちな見当違いの優しさから数年前に予算が組まれ、こうして目立たない住居棟の隅に打ち付けられたのだった。&lt;/p&gt;
&lt;p&gt;「テンネンのお花って、あんまり匂いが強くないの？　安いシルクフラワーも、袋から出したらすぐ香りが消えちゃうよね」&lt;/p&gt;
&lt;p&gt;「そんなことないよ。バラとか、キンモクセイとか、ゼラニューム、あとチョコレートの匂いがするコスモスがあって――」&lt;/p&gt;
&lt;p&gt;「チョコレート？　バレンタインの期間限定フレーバーで売ってたことがあったよね。いつもの三倍くらい高くて、買えなかったけど」&lt;/p&gt;
&lt;p&gt;この街でシゼンとかホンモノの話をするのはよくないことだ。ほとんどの人は、ホンモノの花の香りや海の波音や草原の広さを知らないから。エクステラは土埃のにおいが染みついたただの薄汚れた写真パネルで、秋風の音や渓流の冷たさはどこにも見つからない。ハリボテの窓の前に立っても湧き上がるのは街の外への憧れだけで、団地の住人からはとにかく評判が悪かった。&lt;/p&gt;
&lt;p&gt;だから、これまでもう何度も横目に通り過ぎてきたはずのシゼン写真を見て、ユウがまさかホンモノの花を思い浮かべるなんて。いくら彼女の気を引きたいからって、家からメモリアスコープを持ち出してユウに見せたのは間違いだった。これではエクステラを置いた市長と何も変わらないじゃないか、と私はひどく後悔した。&lt;/p&gt;
&lt;p&gt;私の触れてきたシゼンは、もうメモリアの中にしかない。両親が離婚して母と一緒にこの団地に越してくるまでは、もっと広くて庭のある大きな家に住んでいたし、いろいろな場所に出かけてホンモノのシゼンに触れることもできた。父が家族のためにたくさん働いてくれたから、ただそれだけで、周りよりほんの少しだけ裕福だったのだ。&lt;/p&gt;
&lt;p&gt;離婚した母は、自由なお金と時間がぐっと減ったことに強いショックを受けていた。家ではいつも「こんな団地の人たちと一緒にニコニコ笑って働かなきゃいけないなんて」と愚痴をこぼしてばかりだし、私には「あんたはここで一生を終えるような人間になっちゃダメよ」とまるで呪いみたいに言い聞かせてくるのだ。もう五年も経ったのに今の生活を受け入れられない母にはうんざりするし、ユウみたいな子と友達になるのを咎められているようで居心地が悪かった。&lt;/p&gt;
&lt;p&gt;でも今となっては、生まれてからずっとこの街に住むユウと暮らしぶりは何も変わらない。ここは狭くて猥雑な中下層の団地で、躾のなっていない子や頭の悪い子もたくさんいる。教室で楽しそうに交わされている会話は、狭い団地のさらに狭い人間関係のつまらない噂話ばかりで、眠気に耐えて話を合わせるのが精一杯だ。&lt;/p&gt;
&lt;p&gt;そんな中で、ユウは特別に輝いていた。頭がよくて、本を読むのが好きで、しかもシゼンへの興味も失わずに育った強い子だ。団地の子はシゼンと切り離された生活を送っているうちに、草花や海や川への興味を失ってしまう。外の世界に興味を持っても目の前の現実を生きられなくなるだけだ。植物が描かれた絵本は幼稚園児かせいぜい小学校低学年で卒業するもので、中学生にもなってシルクフラワーなんて買う子はユウくらいしかいない。&lt;/p&gt;
&lt;p&gt;「ミイちゃん。お花畑のメモリアって、持ってる？」&lt;/p&gt;
&lt;p&gt;「コスモスは持ってないの。ジンチョウゲとか、あとはゲットウとかなら、あるけど……」&lt;/p&gt;
&lt;p&gt;「それ、どんな香りなの？　明日も見せてくれる？」&lt;/p&gt;
&lt;p&gt;「う……うん。でも、毎日メモリアを見ると身体が疲れちゃうかもしれないし、明日は――」&lt;/p&gt;
&lt;p&gt;「大丈夫だよ！　今だって、屋上まで飛べちゃうくらい身体が軽いの」&lt;/p&gt;
&lt;p&gt;ユウは期待に満ちたまなざしと共に私の手を握る。私が与えたホンモノはまだ彼女の中を渦巻いていた。同じ冬空の下を歩いているはずなのに、私の冷たい手に流れ込んでくる熱が溢れて止まらない。この手を離したら、本当に団地を飛び出して空を駆け回るのではないか、と思った。&lt;/p&gt;
&lt;p&gt;五感全てを記録・再生できるメモリアスコープは、父が私にプレゼントしてくれた高価なVR機器だ。クラスで――いや、この団地でさえ、こんなスコープを持っているのなんてきっと私くらいだろう。シゼンが好きな彼女と仲良くするために、家族で鎌倉の海に行った&lt;ruby&gt;&lt;rb&gt;思い出&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;メモリア&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を見せてあげたのだ。&lt;/p&gt;
&lt;p&gt;私の見たシゼンの景色をユウに教えたかった。そして、私のことを知ってほしかった。でも、今の彼女が夢中になっているのは広いシゼンそのものだ。誰が見た景色かなんてまるで興味がなくて、初めて触れる海水のにおいや砂の温かさ、夏空の色に圧倒されているのが分かった。ユウはただ目新しいシゼンを全身に浴び続けて、そこに私はいなかった。&lt;/p&gt;
&lt;p&gt;私がユウにメモリアスコープを見せたのは、シゼンが大好きな彼女に喜んでほしかったからだ。それなのに、シゼンに夢中になる彼女を見てもやもやした気持ちになってしまうのはなぜだろう。今だって、ユウは私と遊びたいわけじゃなくて、きっと私の&lt;ruby&gt;&lt;rb&gt;思い出&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;メモリア&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;に興味があるだけだ。ユウはホンモノの花に触れたことがないから、花の香りを嗅ぎたくてたまらないから、だから私と仲良くしてくれるんだ。&lt;/p&gt;
&lt;p&gt;私が持ち帰ったメモリアを切り売りしないと、ユウはもう一緒に遊んでくれないかもしれない。明日は、明後日は、一ヶ月後くらいならまだ残っているはずだ。でも、私が彼女に見せられる&lt;ruby&gt;&lt;rb&gt;思い出&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;メモリア&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;がもう空っぽになったら。ユウは今の何もない私に興味を持ってくれるだろうか。ホンモノのシゼンを見せてあげられなくなった私に。&lt;/p&gt;
&lt;p&gt;「あのね。今日メモリアスコープを見せたのは、ユウちゃんが特別だからだよ？」&lt;/p&gt;
&lt;p&gt;「急にどうしたの？　私もミイちゃんのこと、好きだよ！」&lt;/p&gt;
&lt;p&gt;「ほ、本当？」&lt;/p&gt;
&lt;p&gt;「うん！　私の知らないもの、いっぱい見せてくれるから！」&lt;/p&gt;
&lt;p&gt;「……そっか、えへへ。じゃあ明日も、新しいメモリア持ってくるね」&lt;/p&gt;
&lt;p&gt;また明日、とこちらに手を振るユウと別れてから、階段を一段ずつ上がっていく。エレベーターをじっと待つ時間に耐えられそうになかったから。慣れない踊り場で階数を示す蛍光灯は、冷たく湿った共用階段の床を照らすには暗すぎて心細い。私は明日もユウと会うことができるだろうか、と根拠のない不安が心を覆っていく。&lt;/p&gt;
&lt;p&gt;やっぱり、やっぱり、ユウはメモリアが見たいだけなんだ。この団地での生活にはもう慣れたはずなのに、夢みたいな生活を送っていたあの頃の私が羨ましい。ユウを好きなだけホンモノのシゼンに連れ出せたら、屈託のないあの笑顔をずっと独り占めにできるのに。&lt;/p&gt;
&lt;p&gt;かつて花壇があった場所はコンクリートで埋められて、雑草一つ生えることすら許さないこの団地は、どこもかしこも灰色だ。今ここでシゼンが詰まったスコープを床に叩き付けたら、この団地の隅から隅までホンモノが溢れ出て色鮮やかな街に変わるだろうか。広い広い草原でユウと花冠を編む光景を想像しながら、私はいつの間にかメモリアスコープを強く握りしめていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/8771"&gt;百合SS Advent Calendar 2023&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>水神社の前で</title><link href="https://ama.ne.jp/post/shirahige/" rel="alternate"/><published>2023-12-01T00:40:00+09:00</published><updated>2023-12-01T00:40:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-12-01:/post/shirahige/</id><summary type="html">&lt;p&gt;百合SSアドベントカレンダー2023が今年も始まりました&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://amaneimages.com/u/amane/m/photo-4a6a/"&gt;&lt;img alt="団地と鳥居" height="640" src="/images/shirahige/title.jpg" width="480"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「願いごとを思い浮かべながら水神社の鳥居をくぐると……って、昔みんなやってたじゃない？」&lt;/p&gt;
&lt;p&gt;下校中。信号の待ち時間を持て余したシイが、横断歩道の向こうにある鳥居を指さした。シイと同じ六高の制服を着た頭一つ背の低い女子は、幼なじみのマトイである。彼女たちは同じ保育園と小・中学校で育った白淵団地の住人同士であった。二人とも右の口元に小さなほくろがあって、まるで姉妹みたいと言われるたびに、マトイは少しくすぐったい気持ちになるのだった。&lt;/p&gt;
&lt;p&gt;マトイは意味もなく背伸びをして、シイが指さす水神社の鳥居に目をやった。水神社は隅田川のほとりにある神社で、正式には隅田神社という。かつては浮島神社と呼ばれていたらしいが、この団地一帯では大人も子供も水神社で通っていた。学区の小学生に配られる夏休みのしおり（水辺が近いので気をつけるように釘を刺されるのだ）でもたいてい水神社と呼ばれているので、街区案内の掲示板を見た観光客から「隅田神社はどちらですか？」と聞かれても分からない、というのは定番の笑い話だった。&lt;/p&gt;
&lt;p&gt;「あぁ、うちらが小学生の時ね。消しゴムに好きな人の名前書いたり、ハートの折り紙作ったり、好きな人の影を踏むなんてのもあったなー」&lt;/p&gt;
&lt;p&gt;「そうそう。あと、誰かに見られたら効果なしっていう謎のゲーム性ね。水に関する願いにこじつけなきゃいけないっていうルールもあったし」&lt;/p&gt;
&lt;p&gt;「あー、あったあった！　今考えると、努力の方向性が間違ってて謎だよね」&lt;/p&gt;
&lt;p&gt;「でも、神様に頼るしかない時ってあるのよ。私たちの大学受験みたいに……」&lt;/p&gt;
&lt;p&gt;「いやいや、いきなり現実に戻ってこないでよ。で、突然そんな昔話始めてどうしたの？　鳥居なんて毎日通ってるじゃん」&lt;/p&gt;
&lt;p&gt;白淵団地は、住宅地と隅田川を遮るように南北に延びた1.2kmほどの長大な団地であり、リューゲン島のリゾート地を思わせるような壮大さを持ち合わせている。ベランダや棟の隙間を埋めるように設置された防火シャッターは、古い住宅密集地で関東大震災級の火災が起きた際に、身を張った防火壁として機能させるための装備であった。高層団地はとかく燃えにくい構造物と考えられていたのだ。&lt;/p&gt;
&lt;p&gt;もちろん水神社は団地の建設より昔から本殿と参道を敷く由緒正しい神社だったので、水神様の通り道を遮らないように設計するのは建設当時の絶対条件だった。火災から人々を守るためには、神様の力を借りる必要があったからだ。そのおかげで作られたのが、こうして横断歩道と鳥居と団地がまっすぐ並んだ特異な風景である。この鳥居を抜けると、6号棟と7号棟の間を通り抜けて川沿いの水神社にたどり着くことができるというわけだ。&lt;/p&gt;
&lt;p&gt;「昨日ね、鳥居に向かって必死に祈ってる小学生の子を見たのよ。それでいろいろ思い出しちゃって」&lt;/p&gt;
&lt;p&gt;「へー。あの文化ってまだ残ってるんだ。みんな卒業してくのに、鳥居のおまじないだけ残ってるのってなんか不思議だね」&lt;/p&gt;
&lt;p&gt;「こういう素敵な文化も、もう水神社と一緒に消えちゃうのかしら」&lt;/p&gt;
&lt;p&gt;シイの言うとおり、水神社は今まさに合祀の危機にあった。宮司が詐欺に巻き込まれ、参道部分の土地が不正に乗っ取られたのだ。不正な所有権移転登記が何度か繰り返され、善意の第三者に売却されてしまったというところまでが先月のニュース。水神社自身にはその土地を買い戻す資力は既になく、最終的に住民を巻き込んだトラブルを避けるために団地管理組合が共同で買い取ることになった。&lt;/p&gt;
&lt;p&gt;この土地を水神様へ奉納して参道のまま残すべきか、購入費用に見合った価値を回収するために周囲の敷地と合わせて活用するべきか、来週の住民投票で水神社の将来が決まることになっていた。万が一、このような経緯の末に水神社が参道を失うとすれば、もはや白淵の地で集められる信仰はない。本殿もろとも遅かれ早かれここを去ることになるだろう。ここまで全て最初の詐欺師の筋書き通りとも言われているが、今さら真相が分かったところで状況は変えるにはもう遅い。&lt;/p&gt;
&lt;p&gt;「マトイは水神様にどんなお願いしてたか覚えてる？　昔、一緒にこの鳥居をくぐってお願いごとしたわよね」&lt;/p&gt;
&lt;p&gt;「そうだっけ？　あー、もしかして、中学1年生の夏休みに突然呼び出されたやつ？　ちょっと覚えてるかも。でも、どんな願いごとだったっけ……」&lt;/p&gt;
&lt;p&gt;「私はね、あの日のことちゃんと覚えてる。だって、願いごとで人を殺したんだもの。忘れるわけないわ」&lt;/p&gt;
&lt;p&gt;「……えっ、急にどうしたの？　人を殺した？　願いごとで？　変な冗談やめてよ。怖いじゃん」&lt;/p&gt;
&lt;p&gt;マトイがへらへら笑いながらそう言い終わると同時に信号が青になったが、シイの足はぴくりとも動かない。シイが真面目な顔でこういう趣味の悪い冗談を言う性格ではないことは、マトイが一番よく分かっていた。暗い雰囲気に口を挟んで茶化そうとするのはマトイのいいところだったが、今は止まったままのシイを待つしかない。彼女がいう「殺した」人に心当たりがあったからだ。&lt;/p&gt;
&lt;p&gt;「冗談なんて言ってないわよ。私のお父さんは、お願いを聞いてくれた水神様に殺されたの」&lt;/p&gt;
&lt;p&gt;シイの言葉を聞いて、やはり、とマトイは思った。&lt;/p&gt;
&lt;p&gt;シイの父親はひどいアルコール依存症だった。外面がよく誰にも疑われない父親と、外面を気にして誰にも相談できない母親に挟まれた最悪の環境で、一人娘のシイが安心できる場所はマトイと過ごす水神社の境内だけだった。質の悪い安酒を大量に飲んでは、家族に暴力を振るう悲惨な日々の繰り返し。最終的には無理な暴飲から意識朦朧に陥り、とうとう自分の吐瀉物を喉に詰まらせて窒息死したという話は、火葬の後に水神社の裏でマトイがシイから直接聞いたものだ。団地にいられなくなるから絶対内緒ね、というシイの言葉をマトイはしっかりと守っていた。&lt;/p&gt;
&lt;p&gt;そしてこの父親はまた、自分の娘にひどい性的虐待を加えていたのだった。夫に逆らえない母親がシイの味方になるわけもなく、泣き叫ぶシイの口を塞いで無理矢理のしかかるその歪な光景から目をそらすのが精一杯だった。この時、シイは小学5年生である。血の繋がった幼い娘に欲情して性交を迫るなど、その姿は想像するもおぞましい。それは子を守るべき父親の皮を被ったただの怪物であった。願いを聞き入れた水神様が水に包んで殺したのだ、というのも解釈として正しいのだろう。&lt;/p&gt;
&lt;p&gt;シイは心の奥底に封印して &lt;em&gt;忘れた&lt;/em&gt; その凄惨な体験を誰にも話したことはなかったが、マトイにはおおよそ彼女に起きた事件の予測は付いていた。シイが父親について語る思い出はいつも欠落と矛盾だらけで、しかしあまりにできすぎていたからだ。それに、マトイはシイの部屋に来たかの父親が自分に向けたねちっこい視線を今でもよく覚えていた。シイを呼びつけるあの声を思い出すと、得体の知れない恐怖で足がすくんでしまう。マトイが今でもシイの家で遊びたがらないのはそのせいだった。&lt;/p&gt;
&lt;p&gt;「シイちゃん。水神様なんていないよ」&lt;/p&gt;
&lt;p&gt;「何言ってるの。ちゃんといるわ」&lt;/p&gt;
&lt;p&gt;「じゃあ、水神様は人を殺したりしないよ」&lt;/p&gt;
&lt;p&gt;「きっと殺すわよ。そうじゃなきゃ、あんな卑劣なやつが簡単に死ぬわけない。マトイは私があいつを殺したとでも言いたいの？」&lt;/p&gt;
&lt;p&gt;「……そんなわけ、ないじゃん。でも、おかしいよ。水神様がいなくなるかもって時に、なんでそんな話するの？」&lt;/p&gt;
&lt;p&gt;信号はとっくに赤になっていた。&lt;/p&gt;
&lt;p&gt;シイの口から「あいつ」なんて言葉が出たことに、マトイは動揺を隠せずにいた。シイは自分の父親を「お父さん」と呼び、遊園地や海に連れて行ったり、勉強を教えてくれるいい父親だったとマトイに語っていたからだ。そんなシイの父親が不運な事故で死んだというのは、シイ自身がマトイだけに伝えた秘密である。今さらシイが父親に対する殺意を告白するなんて、あの秘密は嘘だったと認めるなんて、マトイは夢にも思わなかったのだ。&lt;/p&gt;
&lt;p&gt;「最近、あの男が夢に出てくるの。水神様がいなくなったら、あいつが生き返ってくるんじゃないかって」&lt;/p&gt;
&lt;p&gt;震える声でそう呟いたシイは、足底から全身の力が抜けていく嫌な感覚と共に思わずその場にしゃがみ込んでしまった。ぶるぶる震える私の背中を見てマトイはきっと心配するだろう、と思ったがシイは顔を上げることすらできない。マトイの方も、過去を思い出しつつあるシイにどんな言葉をかけるべきか分からずにいた。&lt;/p&gt;
&lt;p&gt;あぁ、シイちゃんが全部忘れたままでいたら。取り返しのつかない過去に向き合わずに済んだなら。シイの父親がどう苦しみながら死んだかなんて、本当はシイの手で殺されてるかもしれないなんて、彼女の痛々しい姿を見て涙ぐむマトイにとってはどうでもいいことだった。&lt;/p&gt;
&lt;p&gt;「大丈夫だよ、シイちゃん。水神様は、水神社は、きっといなくならないから」&lt;/p&gt;
&lt;p&gt;信号がまた青になる。マトイは一人で動けなくなったシイに肩を貸して、参道に続く横断歩道をどうにか渡り切った。シイの苦しそうな荒い呼吸はまだ治まりそうにない。マトイは鳥居をくぐりながら「シイちゃんが、全部ぜんぶ水に流せますように」と何度も祈っていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/8771"&gt;百合SS Advent Calendar 2023&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>絵文字入力方法まとめ</title><link href="https://ama.ne.jp/post/input-method-emoji/" rel="alternate"/><published>2023-11-15T18:32:00+09:00</published><updated>2023-11-15T18:32:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-11-15:/post/input-method-emoji/</id><summary type="html">&lt;p&gt;新時代の絵文字入力メソッド&lt;/p&gt;</summary><content type="html">&lt;h2 id="_1"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;2021年5月くらいに&lt;a href="https://www.google.co.jp/ime/"&gt;Google 日本語入力&lt;/a&gt;から&lt;a href="https://atok.com/"&gt;ATOK&lt;/a&gt;に乗り換えて、2年半ほどが経ちました。当時、Google 日本語入力の変換候補が玉石混交で使い物にならなかったので、思い切って500円/月（2022年2月から600円/月）で新たなIMEに乗り換えたのです。&lt;/p&gt;
&lt;p&gt;ATOKなら、IMEとスムーズに連携する&lt;a href="https://atok.com/other/support/proofread.html"&gt;校正支援&lt;/a&gt;や&lt;a href="https://support.justsystems.com/faq/1032/app/servlet/qadoc?QID=028157"&gt;訂正学習&lt;/a&gt;を活用したり、&lt;a href="https://support.justsystems.com/faq/1032/app/servlet/qadoc?QID=056760"&gt;マンスリーレポート&lt;/a&gt;を表示できたりします。設定や学習情報のバックアップや同期機能も充実していて、Windowsで登録したユーザー辞書をAndroidから利用できるのもそこそこ便利です。&lt;/p&gt;
&lt;p&gt;そんな便利なATOKですが、Google 日本語入力から乗り換えた際に不便になったことがあります。それは、絵文字（Unicode絵文字）の入力方法です。Google 日本語入力では &lt;code&gt;:muscle:&lt;/code&gt; &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; &lt;img alt=":muscle:" class="emoji" height="16" src="/emojis/1f4aa.png" width="16"&gt; のようなショートコードを使ったローマ字テーブルを登録することで、GitHubやSlackのような手触りを得られるのですが、悲しいことにこのハックはATOKでは利用できません。&lt;/p&gt;
&lt;p&gt;この記事では、動作環境やIMEの違いを踏まえて、これまでの絵文字入力とのお付き合いについて振り返っていこうと思います。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;はじめに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;入力方法まとめ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#ime"&gt;IMEのローマ字テーブル&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#windows"&gt;Windows固有の絵文字パレット&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#powertoys-run-gemojisharp"&gt;PowerToys Run + GEmojiSharp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;ユーザー辞書&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_2"&gt;入力方法まとめ&lt;/h2&gt;
&lt;h3 id="ime"&gt;IMEのローマ字テーブル&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;環境: Mozc + Linux &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; Google 日本語入力 + Windows&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この方法は、&lt;a href="https://pocke.hatenablog.com/entry/2017/03/05/193553"&gt;IME でも &lt;code&gt;:muscle:&lt;/code&gt; みたいに Emoji を入力したい！&lt;/a&gt;で解説されているものです。外部のショートコード&lt;sup id="fnref:shortcode"&gt;&lt;a class="footnote-ref" href="#fn:shortcode" title="特定のUnicode絵文字を指す :muscle: などの : で挟まれた英数字列です。"&gt;1&lt;/a&gt;&lt;/sup&gt;と絵文字のエンティティを接続するJSONファイル&lt;sup id="fnref:emojitable"&gt;&lt;a class="footnote-ref" href="#fn:emojitable" title="参照先の記事（2017年）ではjoypixels/emojioneが紹介されていますが、こちらは2019年でアーカイブされたので、最近の絵文字が含まれていません。今から生成する場合はjoypixels/emoji-toolkitを使うといいでしょう。"&gt;2&lt;/a&gt;&lt;/sup&gt;をTSVファイルに変換し、これをローマ字テーブルとして利用することで、 &lt;kbd&gt;:&lt;/kbd&gt;&lt;kbd&gt;m&lt;/kbd&gt;&lt;kbd&gt;u&lt;/kbd&gt;&lt;kbd&gt;s&lt;/kbd&gt;&lt;kbd&gt;c&lt;/kbd&gt;&lt;kbd&gt;l&lt;/kbd&gt;&lt;kbd&gt;e&lt;/kbd&gt;&lt;kbd&gt;:&lt;/kbd&gt; というキーストロークから「 &lt;img alt=":muscle:" class="emoji" height="16" src="/emojis/1f4aa.png" width="16"&gt; 」という絵文字を入力できます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;...
:muscle:    💪
:gift_heart:    💝
:upside_down_face:  🙃
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ローマ字テーブルを利用しているため、&lt;a href="https://twitter.com/p_ck_/status/838329944333676545"&gt;記事添付のツイート&lt;/a&gt;のように、 &lt;code&gt;:&lt;/code&gt; を打ち終わると同時に絵文字が表示されるという滑らかな体験を得られます。通常のローマ字入力で考えれば &lt;kbd&gt;s&lt;/kbd&gt;&lt;kbd&gt;h&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt; で「し」と入力できるのは当たり前ですが、これを絵文字入力に応用したという部分が先進的ですね。&lt;/p&gt;
&lt;p&gt;しかし、この手法にも弱点があります。長いショートコードであっても補完候補が表示されないのです。つまり、例えば &lt;img alt=":white_sun_rain_cloud:" class="emoji" height="16" src="/emojis/1f326.png" width="16"&gt; を入力するためには &lt;code&gt;:white_sun_behind_cloud_with_rain:&lt;/code&gt; と誰の助けも得ずに入力しなければいけません。 &lt;code&gt;:muscle:&lt;/code&gt; を &lt;code&gt;:mustle:&lt;/code&gt; と打ち間違えてもダメです。もちろん、ローマ字入力がおぼつかない人はまず寿司打で練習するべきだし、 &lt;kbd&gt;s&lt;/kbd&gt;&lt;kbd&gt;h&lt;/kbd&gt; と打つと「しゃ？し？しゅ？しぇ？しょ？」なんて候補が出るIMEは誰も使いたがりません。&lt;/p&gt;
&lt;p&gt;さらに致命的な欠点があります。先ほど紹介した記事には、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ローマ字テーブルをいじることが出来る IME であれば同様のことが可能だと思います。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;という記載がありますが、残念ながらこの方法はATOKでは使えません。ローマ字テーブルの仕様の影響で、正常に絵文字が登録・出力できないのです。&lt;/p&gt;
&lt;p&gt;まず、ローマ字は4文字以下で指定する必要があります。この制限でほとんどのショートコード、例えば &lt;code&gt;:zzz:&lt;/code&gt; &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; &lt;img alt=":zzz:" class="emoji" height="16" src="/emojis/1f4a4.png" width="16"&gt; は5文字なので登録できません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ATOKローマ字テーブルに5文字のローマ字を登録できない様子" height="460" src="/images/input-method-emoji/register-roman.gif" width="620"&gt;&lt;/p&gt;
&lt;p&gt;さらに、対応するかなはひらがな・英数字・一部の記号しか使えません&lt;sup id="fnref:kana"&gt;&lt;a class="footnote-ref" href="#fn:kana" title="かなは6文字以内という制限もあります。"&gt;3&lt;/a&gt;&lt;/sup&gt;。絵文字はUTF-8のバイト数の半分の「？」に強制変換されます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ATOKローマ字テーブルに絵文字を登録できない様子" height="460" src="/images/input-method-emoji/register-emoji.gif" width="620"&gt;&lt;/p&gt;
&lt;p&gt;例として、 &lt;img alt=":eye_in_speech_bubble:" class="emoji" height="16" src="/emojis/1f441-200d-1f5e8.png" width="16"&gt; はUTF-8で &lt;code&gt;f0 9f 91 81 e2 80 8d f0 9f 97 a8&lt;/code&gt; の11バイトになるため、5つの「？」に変換されてしまいました。これは単なる表示の問題ではなく、 &lt;kbd&gt;:&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;:&lt;/kbd&gt; という入力は「？？？？？」になってしまいます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ATOKローマ字テーブルで絵文字を入力できない様子" height="460" src="/images/input-method-emoji/input-emoji.gif" width="620"&gt;&lt;/p&gt;
&lt;p&gt;これらは、絵文字入力のためにローマ字テーブルをハックする立場からは厳しい制限に見えますが、通常のローマ字入力では不自由しないレベルの仕様です。むしろ、Google 日本語入力がゆるすぎるのかもしれません。とはいえ、これまでそのゆるさに頼ってローマ字テーブルをハックしてきたため、IMEの切り替えに伴って新たな絵文字入力手法の導入を迫られました。&lt;/p&gt;
&lt;h3 id="windows"&gt;Windows固有の絵文字パレット&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;環境: ATOK（ただしIME非依存） + Windows&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Windows 10/11なら、 &lt;kbd&gt;Win&lt;/kbd&gt; + &lt;kbd&gt;.&lt;/kbd&gt; で&lt;a href="https://support.microsoft.com/en-us/windows/windows-keyboard-tips-and-tricks-588e0b72-0fff-6d3f-aeee-6e5116097942"&gt;絵文字キーボード&lt;/a&gt;を起動できます。使っているIMEとは関係のないWindows固有の機能であり、絵文字が縦横に並んだパレットから好きなものをクリックして入力できます&lt;sup id="fnref:win11emoji"&gt;&lt;a class="footnote-ref" href="#fn:win11emoji" title="Windows 11 + Microsoft IMEなら絵文字を検索できるようですが、テストしていません。"&gt;4&lt;/a&gt;&lt;/sup&gt;。絵文字だけではなく、通貨記号や数学記号なども同様の手触りで入力可能です。このような絵文字・記号パレットは、スマートフォン向けのIMEでは一般的ですね。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Windows固有の絵文字パレットで入力している様子" height="460" src="/images/input-method-emoji/win-dot-emoji.gif" width="620"&gt;&lt;/p&gt;
&lt;p&gt;この方法は、Windowsを使っていれば特別な設定なしで呼び出せるので、とっさに絵文字や記号を入力したいときに役立ちます。しかし、主にフリック入力を使うスマートフォンとは異なり、キーボード入力が主体のWindows PCは絵文字パレットとの相性が悪いです。絵文字パレットを呼び出したらキーボードから手を離して、無駄なスクロール&lt;sup id="fnref:manyscroll"&gt;&lt;a class="footnote-ref" href="#fn:manyscroll" title="お目当ての絵文字を見逃して通り過ぎてしまうことがしばしば。"&gt;5&lt;/a&gt;&lt;/sup&gt;とクリックを繰り返して、終わったらまたキーボードに戻るという非効率な手順を踏む必要があります。&lt;/p&gt;
&lt;p&gt;また、少なくともATOKを使っている場合は絵文字を検索する手段がないため、ショートコードで絞り込むこともできません。検索性の悪さはローマ字テーブルのハックと同様ですが、 &lt;code&gt;:+1:&lt;/code&gt; のようなよく使う短い絵文字さえショートコードで呼び出せないので、機能性はさらに低下してしまいました。&lt;/p&gt;
&lt;p&gt;できるだけキーボードから離れずに、より効率的に絵文字を入力できる手段はないのでしょうか？　その答えの一つが、次に示すクイックランチャーと絵文字検索プラグインの組み合わせです。&lt;/p&gt;
&lt;h3 id="powertoys-run-gemojisharp"&gt;PowerToys Run + GEmojiSharp&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;環境: ATOK（ただしIME非依存） + Windows&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://learn.microsoft.com/ja-jp/windows/powertoys/run"&gt;PowerToys Run&lt;/a&gt;は、&lt;a href="https://learn.microsoft.com/ja-jp/windows/powertoys/"&gt;Microsoft PowerToys&lt;/a&gt;の一機能として提供されている高機能のクイックランチャーです。 &lt;kbd&gt;Alt&lt;/kbd&gt; + &lt;kbd&gt;Space&lt;/kbd&gt;&lt;sup id="fnref:powertoysrun"&gt;&lt;a class="footnote-ref" href="#fn:powertoysrun" title="このショートカットキーはカスタマイズ可能で、私は Win + Space にしています。"&gt;6&lt;/a&gt;&lt;/sup&gt; を押してディスプレイの真ん中に現れるランチャーで、ファイルやWebの検索、四則演算や単位変換などを実行できます。&lt;/p&gt;
&lt;p&gt;各機能は個別に有効化可能なプラグインとして提供されていて、 &lt;code&gt;123+456&lt;/code&gt; のようなコマンドをそのまま入力すれば、主要なプラグインからまとめて候補を表示できます。または、 &lt;code&gt;=2^32&lt;/code&gt; のように「直接アクティブ化コマンド」と呼ばれる固有のプレフィックス（電卓機能は &lt;code&gt;=&lt;/code&gt; ）を付与すれば、個別のプラグインを指定して呼び出せます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="PowerToys Runの使用例" height="330" src="/images/input-method-emoji/powertoys-run-sample.gif" width="700"&gt;&lt;/p&gt;
&lt;p&gt;そして、このランチャーで役立つのが&lt;a href="https://github.com/hlaueriksson/GEmojiSharp"&gt;GEmojiSharp&lt;/a&gt;という絵文字とショートコードの相互変換を行う.NET向けのライブラリです。コマンドラインツールとPowerToys Run用のプラグインが提供されており、これを使うとPowerToys Runを通じてショートコードの一部から絵文字をコピーできるようになります。&lt;/p&gt;
&lt;p&gt;&lt;img alt="GEmojiSharpプラグインで絵文字を検索している様子" height="500" src="/images/input-method-emoji/powertoys-run-gemoji-sharp.gif" width="700"&gt;&lt;/p&gt;
&lt;p&gt;私がこのプラグインを導入した当初は動作が不安定だった記憶があり、絵文字をコピーするとたまに不穏なエラーダイアログが出たりしたのですが、現バージョンはたぶん安定して動きそうでした。先述した絵文字パレットと比較するとインストールが必要な分少し面倒なのですが、PowerToys Run以外にも便利なツールがたくさん揃っているので、PowerToysのついでに導入するくらいの比重で試してみるのがおすすめです。&lt;/p&gt;
&lt;p&gt;GEmojiSharpプラグインを他の手法と比較した際の大きな利点の1つは、ショートコードを補完できることです。利用例で示したとおり、 &lt;code&gt;:ups&lt;/code&gt; まで入力した時点で &lt;code&gt;:upside_down_face:&lt;/code&gt; &lt;img alt=":upside_down:" class="emoji" height="16" src="/emojis/1f643.png" width="16"&gt; という候補を表示できます。ただし、ここでの検索対象は絵文字の説明も含んでいるので、短いショートコード（例:  &lt;code&gt;ng&lt;/code&gt; &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; &lt;img alt=":ng:" class="emoji" height="16" src="/emojis/1f196.png" width="16"&gt; ）や一般的な語のショートコード（ 例: &lt;code&gt;flag&lt;/code&gt; &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; &lt;img alt=":flag_white:" class="emoji" height="16" src="/emojis/1f3f3.png" width="16"&gt; ）では候補を絞りきれないケースがあるのが少し不便です。&lt;/p&gt;
&lt;p&gt;&lt;img alt="GEmojiSharpプラグインで短い語や一般名詞を上手く検索できない様子" height="410" src="/images/input-method-emoji/gemojisharp-short-common-code.gif" width="700"&gt;&lt;/p&gt;
&lt;p&gt;このプラグインは単なる補完だけではなく、 &lt;img alt=":fist:" class="emoji" height="16" src="/emojis/270a.png" width="16"&gt; &lt;img alt=":rage:" class="emoji" height="16" src="/emojis/1f621.png" width="16"&gt; &lt;img alt=":anger:" class="emoji" height="16" src="/emojis/1f4a2.png" width="16"&gt; &lt;img alt=":point_up:" class="emoji" height="16" src="/emojis/261d.png" width="16"&gt; &lt;img alt=":wink:" class="emoji" height="16" src="/emojis/1f609.png" width="16"&gt; &lt;img alt=":sparkles:" class="emoji" height="16" src="/emojis/2728.png" width="16"&gt; &lt;img alt=":muscle:" class="emoji" height="16" src="/emojis/1f4aa.png" width="16"&gt; &lt;img alt=":triumph:" class="emoji" height="16" src="/emojis/1f624.png" width="16"&gt; &lt;img alt=":muscle:" class="emoji" height="16" src="/emojis/1f4aa.png" width="16"&gt; のような連続した異なる絵文字を入力する際にも役立ちます。公式の&lt;a href="https://github.com/hlaueriksson/GEmojiSharp#gemojisharppowertoysrun"&gt;README&lt;/a&gt;のような &lt;em&gt;ショートコード自然言語交じり文&lt;/em&gt; を使えば、視線移動を減らせる上に、ランチャー内でショートコードと絵文字を透過的に扱えるという2つ目の利点を生かせます。ただし、GitHubやSlackの入力コンポーネントとは異なり、先頭以外のショートコードは部分一致で検索できないことに注意が必要です。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ショートコード自然言語交じり文で後半の絵文字を検索できない様子" height="410" src="/images/input-method-emoji/gemojisharp-complex-sentence.gif" width="700"&gt;&lt;/p&gt;
&lt;p&gt;まとめると、複雑な絵文字については1文字ずつ検索機能を活用して、簡単な絵文字なら複数個を連続して素早く入力するという両面の使い方ができそうです。まだショートコードを断片的にしか覚えていなくても、将来たくさんの絵文字を補完なしで使えるようになっても、あなたに寄り添ってくれるというわけですね。&lt;/p&gt;
&lt;h3 id="_3"&gt;ユーザー辞書&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;環境: ATOK + Windows&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最後に、現時点で私が採用しているのが、ATOKのユーザー辞書にショートコードと絵文字を登録するという手法です。もともと &lt;code&gt;いいね&lt;/code&gt; &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; &lt;img alt=":thumbsup:" class="emoji" height="16" src="/emojis/1f44d.png" width="16"&gt; とか &lt;code&gt;はーと&lt;/code&gt; &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; 程度の頻出絵文字は変換できますが、これをショートコード全体に広げてもっと使いやすくします。&lt;/p&gt;
&lt;p&gt;ローマ字テーブルのハックとは違ってIMEの変換機能を素直に活かした手法なので、ATOK以外のIMEでも、もちろんWindows以外でも使えるのは一定の強みがあるかなと思います。&lt;/p&gt;
&lt;p&gt;記事執筆にあたって久しぶりに使ったGEmojiSharpプラグインが割と安定していたので、Windowsを使っている限りはどちらを選んでもよいでしょう。ランチャーで絵文字を探す独特な使い心地が肌に合わないとか、入力中のカーソルからランチャーに視線を移動するのが煩わしいと感じる場合は、依然としてこの手法がおすすめです。&lt;/p&gt;
&lt;p&gt;ユーザー辞書にショートコードと絵文字の対応をインポートするためのファイルを生成する手順は、ローマ字テーブルのハックのものと同様です。具体的な処理については、ショートコードと絵文字のエンティティを紐付けるJSONファイルをATOK向けの単語ファイルに変換する&lt;a href="https://gist.github.com/amane-katagiri/e10f135da064d6d6fd772e9c58b22ec3#file-emoji_atokdict_generator-py"&gt;emoji_atokdict_generator.py&lt;/a&gt;を読んでみてください。&lt;/p&gt;
&lt;p&gt;このスクリプトを実行すると、以下のような単語ファイルが得られます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;!!ATOK_TANGO_TEXT_HEADER_1

...
Muscle  💪   名詞*
GiftHeart   💝   名詞*
UpsideDownFace  🙃   名詞*
WomenHoldingHandsMediumDarkSkinT    👭🏾  名詞*
...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/amane-katagiri/e10f135da064d6d6fd772e9c58b22ec3#file-emojidict-txt"&gt;emojidict.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なお、ATOK向けの単語ファイルはBOM付きUTF-16 LE + CRLFでエンコードしなければなりません。スクリプトからの出力はUTF-8なので、実行する際はドキュメントに記載の通り &lt;code&gt;nkf -w16L&lt;/code&gt; などで変換を挟んでください。&lt;/p&gt;
&lt;p&gt;さて、単語ファイルを見ると2つの違和感に気付きます。まず、これまで見てきた &lt;code&gt;:upside_down_face:&lt;/code&gt; のようにスネークケースを &lt;code&gt;:&lt;/code&gt; で挟んだショートコードではなく、 &lt;code&gt;:&lt;/code&gt; のないパスカルケースになっています。次に、一部のショートコードが単語の途中で打ち切られています。&lt;/p&gt;
&lt;p&gt;これらは、ATOKの入力動作やユーザー辞書の制限に合わせて快適な絵文字入力を実現するための工夫です。&lt;/p&gt;
&lt;p&gt;まず、普通にショートコードを入力すると &lt;kbd&gt;:&lt;/kbd&gt;&lt;kbd&gt;r&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;kbd&gt;n&lt;/kbd&gt;&lt;kbd&gt;b&lt;/kbd&gt;&lt;kbd&gt;o&lt;/kbd&gt;&lt;kbd&gt;w&lt;/kbd&gt;&lt;kbd&gt;_&lt;/kbd&gt;&lt;kbd&gt;f&lt;/kbd&gt;&lt;kbd&gt;l&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;g&lt;/kbd&gt;&lt;kbd&gt;:&lt;/kbd&gt; &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; &lt;code&gt;：らいんぼｗ＿ｆぁｇ：&lt;/code&gt; のようにひらがなと全角アルファベットが混ざった表記になります。 &lt;code&gt;:rainbow_flag:&lt;/code&gt; というショートコードから一部がローマ字になった文字列を得る作業は煩雑ですし、その場で自分が何を入力したか確認したり、途中で訂正するのも困難です。&lt;/p&gt;
&lt;p&gt;そのため、全てがアルファベットの状態で変換を開始できるように、各単語の先頭を大文字で入力します。すると、 &lt;kbd&gt;:&lt;/kbd&gt;&lt;kbd&gt;R&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;kbd&gt;n&lt;/kbd&gt;&lt;kbd&gt;b&lt;/kbd&gt;&lt;kbd&gt;o&lt;/kbd&gt;&lt;kbd&gt;w&lt;/kbd&gt;&lt;kbd&gt;_&lt;/kbd&gt;&lt;kbd&gt;F&lt;/kbd&gt;&lt;kbd&gt;l&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;g&lt;/kbd&gt;&lt;kbd&gt;:&lt;/kbd&gt; &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; &lt;code&gt;：Rainbow_Flag:&lt;/code&gt; という表記になり、 &lt;code&gt;:rainbow_flag:&lt;/code&gt; からの変換も単純になります。&lt;/p&gt;
&lt;p&gt;そして、ATOKのユーザー辞書はローマ字テーブルよりゆるいものの、読みが32文字以内という制限があるのでさらに短くします。ショートコードであることを識別する &lt;code&gt;:&lt;/code&gt; は変換を挟むなら不要ですし、先頭が大文字なら単語を区切る &lt;code&gt;_&lt;/code&gt; も余計です。これらを削ると、単語ファイルに示した &lt;kbd&gt;R&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;kbd&gt;n&lt;/kbd&gt;&lt;kbd&gt;b&lt;/kbd&gt;&lt;kbd&gt;o&lt;/kbd&gt;&lt;kbd&gt;w&lt;/kbd&gt;&lt;kbd&gt;F&lt;/kbd&gt;&lt;kbd&gt;l&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;g&lt;/kbd&gt; &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; &lt;code&gt;RainbowFlag&lt;/code&gt; のようなパスカルケースが得られます。入力の負担も減りますね。&lt;/p&gt;
&lt;p&gt;最終処理として、この時点で32文字を超えているショートコードは32文字になるように切り詰めます&lt;sup id="fnref:longshortcode"&gt;&lt;a class="footnote-ref" href="#fn:longshortcode" title=":couple_with_heart_medium_dark_skin_tone: :couple_with_heart_medium_dark_skin_tone: のような肌の色を指定するタイプの絵文字が32文字を超えがちです。"&gt;7&lt;/a&gt;&lt;/sup&gt;。切り詰めることで前半が同じ読みになってしまう場合は、そのまま複数の候補として登録します。おそらくこんなに長いショートコードをそらで打ち込む場面は来ないと思うので、簡単な対応にとどめました。&lt;/p&gt;
&lt;p&gt;これらをユーザー辞書に登録すれば、パスカルケースのショートコードを入力して変換すると絵文字が候補に表示されるようになります。ローマ字テーブルのハックと比較すると、入力後に変換キーを押すのが冗長かもしれません。しかし、元のショートコードから &lt;code&gt;:&lt;/code&gt; と &lt;code&gt;_&lt;/code&gt; を少なくとも2つは削っているため、キーストローク数は同じかむしろ減少します&lt;sup id="fnref:keystroke"&gt;&lt;a class="footnote-ref" href="#fn:keystroke" title="例えば :upside_down_face: の18回に対し、 UpsideDownFace変換Enter の16回で入力できます。"&gt;8&lt;/a&gt;&lt;/sup&gt;。また、何度か同じショートコードを変換すると前半の数文字で候補に出るので、ある種の補完機能としても役立ちます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="UpsideDownFace,+1,Tada,GiftHeartを入力している様子" height="210" src="/images/input-method-emoji/input-atok-emoji.gif" width="450"&gt;&lt;/p&gt;
&lt;p&gt;もし &lt;code&gt;:&lt;/code&gt; 付きの方がしっくりくるなら &lt;code&gt;:GiftHeart:&lt;/code&gt; のような &lt;code&gt;:&lt;/code&gt; を含む読みにしてもいいですし、通常の英数字の入力と区別したければスクリーミングスネークケース &lt;code&gt;GIFT_HEART&lt;/code&gt; にしてもいいでしょう。スクリプトは好みに応じていつでもカスタマイズ可能です。&lt;/p&gt;
&lt;p&gt;同様の手順で単語ファイルを生成すればどのような環境でも利用できると思いますが、ここではATOKでのインポート手順について紹介しておきます。&lt;/p&gt;
&lt;p&gt;まず、単語ファイルをユーザー辞書にインポートしてください。定期的な再インポートや入力スタイルの変更をやりやすくするために、通常の登録単語と区別できる絵文字用の新しい辞書を作成するのをおすすめします。この辞書の作成場所は &lt;code&gt;%APPDATA%\Justsystem\ATOK\DIC&lt;/code&gt; になるので、後続の辞書セットへの追加時はここを参照します。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ATOK辞書ユーティリティでユーザー辞書を作成して単語ファイルをインポートしている様子" height="500" src="/images/input-method-emoji/import-emojidic.gif" width="670"&gt;&lt;/p&gt;
&lt;p&gt;インポートが終わったら、通常の変換機能（変換キーまたはスペースキー）から呼び出せる標準辞書セットにこの絵文字辞書を追加します。変換キーではなくF5キーなどで絵文字変換を呼び出したい場合は、オプション辞書セットなどの別の辞書セットに追加してください。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ATOKの標準辞書セットに絵文字用ユーザー辞書を追加している様子" height="480" src="/images/input-method-emoji/register-emojidic.gif" width="640"&gt;&lt;/p&gt;
&lt;h2 id="_4"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;この記事では、以下の絵文字入力方法について紹介しました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#ime"&gt;IMEのローマ字テーブル&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;カーソルから目を離さずキーボードのみで入力できます。&lt;/li&gt;
&lt;li&gt;Google 日本語入力を使っていれば設定しておいて損はないです。ATOKでは使えません。&lt;/li&gt;
&lt;li&gt;補完機能がないので、ショートコードを暗記できる範囲のものしか入力できません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#windows"&gt;Windows固有の絵文字パレット&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;カーソルから目を離してマウスで操作する必要があります。&lt;/li&gt;
&lt;li&gt;Windowsなら特別な設定をせずに &lt;kbd&gt;Win&lt;/kbd&gt; + &lt;kbd&gt;.&lt;/kbd&gt; ですぐに呼び出せます。&lt;/li&gt;
&lt;li&gt;ショートコードで絵文字を検索することはできません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#powertoys-run-gemojisharp"&gt;PowerToys Run + GEmojiSharp&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;キーボードのみで入力できますが、ランチャーに視線を移す必要があります。&lt;/li&gt;
&lt;li&gt;Windowsで&lt;a href="https://learn.microsoft.com/ja-jp/windows/powertoys/"&gt;Microsoft PowerToys&lt;/a&gt;と&lt;a href="https://github.com/hlaueriksson/GEmojiSharp"&gt;GEmojiSharp&lt;/a&gt;をインストールすると利用できます。&lt;/li&gt;
&lt;li&gt;ショートコードで絵文字を部分一致検索できますが、一部動作に癖があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;ユーザー辞書&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;カーソルから目を離さずキーボードのみで入力できます。&lt;/li&gt;
&lt;li&gt;多くのIMEで汎用的に使える方法で、カスタマイズが簡単です。&lt;/li&gt;
&lt;li&gt;よく使う絵文字は推測候補に出るため、入力ストロークを短縮できます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;他にも最強の絵文字入力方法があれば、ぜひコメントから教えてください。本文に追記するかもしれません。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:shortcode"&gt;
&lt;p&gt;特定のUnicode絵文字を指す &lt;code&gt;:muscle:&lt;/code&gt; などの &lt;code&gt;:&lt;/code&gt; で挟まれた英数字列です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:shortcode" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:emojitable"&gt;
&lt;p&gt;参照先の記事（2017年）では&lt;a href="https://github.com/joypixels/emojione"&gt;joypixels/emojione&lt;/a&gt;が紹介されていますが、こちらは2019年でアーカイブされたので、最近の絵文字が含まれていません。今から生成する場合は&lt;a href="https://github.com/joypixels/emoji-toolkit"&gt;joypixels/emoji-toolkit&lt;/a&gt;を使うといいでしょう。&amp;#160;&lt;a class="footnote-backref" href="#fnref:emojitable" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:kana"&gt;
&lt;p&gt;かなは6文字以内という制限もあります。&amp;#160;&lt;a class="footnote-backref" href="#fnref:kana" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:win11emoji"&gt;
&lt;p&gt;Windows 11 + Microsoft IMEなら絵文字を検索できるようですが、テストしていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:win11emoji" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:manyscroll"&gt;
&lt;p&gt;お目当ての絵文字を見逃して通り過ぎてしまうことがしばしば。&amp;#160;&lt;a class="footnote-backref" href="#fnref:manyscroll" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:powertoysrun"&gt;
&lt;p&gt;このショートカットキーはカスタマイズ可能で、私は &lt;kbd&gt;Win&lt;/kbd&gt; + &lt;kbd&gt;Space&lt;/kbd&gt; にしています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:powertoysrun" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:longshortcode"&gt;
&lt;p&gt;&lt;code&gt;:couple_with_heart_medium_dark_skin_tone:&lt;/code&gt; &lt;img alt=":couple_with_heart_tone4:" class="emoji" height="16" src="/emojis/1f491-1f3fe.png" width="16"&gt; のような肌の色を指定するタイプの絵文字が32文字を超えがちです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:longshortcode" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:keystroke"&gt;
&lt;p&gt;例えば &lt;kbd&gt;:&lt;/kbd&gt;&lt;kbd&gt;u&lt;/kbd&gt;&lt;kbd&gt;p&lt;/kbd&gt;&lt;kbd&gt;s&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;kbd&gt;d&lt;/kbd&gt;&lt;kbd&gt;e&lt;/kbd&gt;&lt;kbd&gt;_&lt;/kbd&gt;&lt;kbd&gt;d&lt;/kbd&gt;&lt;kbd&gt;o&lt;/kbd&gt;&lt;kbd&gt;w&lt;/kbd&gt;&lt;kbd&gt;n&lt;/kbd&gt;&lt;kbd&gt;_&lt;/kbd&gt;&lt;kbd&gt;f&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;c&lt;/kbd&gt;&lt;kbd&gt;e&lt;/kbd&gt;&lt;kbd&gt;:&lt;/kbd&gt; の18回に対し、 &lt;kbd&gt;U&lt;/kbd&gt;&lt;kbd&gt;p&lt;/kbd&gt;&lt;kbd&gt;s&lt;/kbd&gt;&lt;kbd&gt;i&lt;/kbd&gt;&lt;kbd&gt;d&lt;/kbd&gt;&lt;kbd&gt;e&lt;/kbd&gt;&lt;kbd&gt;D&lt;/kbd&gt;&lt;kbd&gt;o&lt;/kbd&gt;&lt;kbd&gt;w&lt;/kbd&gt;&lt;kbd&gt;n&lt;/kbd&gt;&lt;kbd&gt;F&lt;/kbd&gt;&lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;c&lt;/kbd&gt;&lt;kbd&gt;e&lt;/kbd&gt;&lt;kbd&gt;変換&lt;/kbd&gt;&lt;kbd&gt;Enter&lt;/kbd&gt; の16回で入力できます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:keystroke" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>2023/08/10～2023/11/02</title><link href="https://ama.ne.jp/post/report-20231102/" rel="alternate"/><published>2023-11-02T19:28:00+09:00</published><updated>2023-11-02T19:28:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-11-02:/post/report-20231102/</id><summary type="html">&lt;p&gt;2023/08/10～2023/11/02のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;できごと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;できごと&lt;/h3&gt;
&lt;h4 id="_3"&gt;&lt;a href="https://fedibird.com/@amane"&gt;かたぎりあまね&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://patreon.com/"&gt;Patreon&lt;/a&gt;のクリエイターページを閉鎖しました。&lt;ul&gt;
&lt;li&gt;開設当初から現在まで支援者限定コンテンツの投稿に興味がわかず、サービスを使い続ける意味が薄いと判断しました。&lt;/li&gt;
&lt;li&gt;また、日本円での支援に対応しておらず、通貨レートや換金手数料などで目減りしたり集計が面倒で好ましくない体験が続いたのも理由のひとつです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Patreonの閉鎖に伴い、&lt;a href="https://liberapay.com/amane/"&gt;Liberapay&lt;/a&gt;にアカウントを開設しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://notestock.osa-p.net/"&gt;notestock&lt;/a&gt;に寄付しようと思ったときに発見したもので、週あたりの寄付額が表示されるのが面白いと感じました。&lt;/li&gt;
&lt;li&gt;下記のホスティング費用など、月に数円のサポートでも&lt;a href="/"&gt;あまねけ！&lt;/a&gt;をサポートできます。&lt;/li&gt;
&lt;li&gt;いったんJPY/USD/EURでの寄付を受け付けています。個人的にはJPYがおすすめです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;9月から労働をワークし始めています。休日はいつでも気軽に遊んでください。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_4"&gt;&lt;a href="/"&gt;あまねけ！&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;10月からあまねけ！を提供しているFirebase Hostingが従量課金に移行しました。&lt;ul&gt;
&lt;li&gt;10月は17円かかりました。&lt;/li&gt;
&lt;li&gt;なんかoutboundが多すぎる気がしますが、不正なクロールなどではないようです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="10月のFirebase Hostingの費用推移" src="/images/report-20231102/hosting10.png"&gt;&lt;/p&gt;
&lt;h3 id="_5"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;「読んだ」ボタンを押下しなくても記事をシェアできるようにしました。&lt;ul&gt;
&lt;li&gt;共有ツール&lt;a href="https://cosharet.pages.dev/"&gt;cosharet&lt;/a&gt;を開くためのボタンを、「読んだ」ボタンと同階層に設置しました。&lt;/li&gt;
&lt;li&gt;「読んだ」ボタン押下後のダイアログにあった各SNS専用のボタンは削除されました。&lt;/li&gt;
&lt;li&gt;これまで提供していたTwitterやFacebookはもちろん、MastodonおよびMisskeyベースの様々なインスタンスと接続できるようになりました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;一部の記事で固有のリアクションボタンが表示されていなかった不具合を修正しました。&lt;ul&gt;
&lt;li&gt;対象は&lt;a href="/post/starfish-future-world/"&gt;Starfishの世界とこれから&lt;/a&gt;、&lt;a href="/post/multi-channel/"&gt;マルチチャネルと懐古主義&lt;/a&gt;、&lt;a href="/post/smart-led/"&gt;やさしいひかり&lt;/a&gt;です。&lt;/li&gt;
&lt;li&gt;よかったら好きなボタンを押してみてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付ページ&lt;/a&gt;を更新しました。&lt;ul&gt;
&lt;li&gt;PatreonへのリンクをLiberapayへのリンクに変更しました。&lt;/li&gt;
&lt;li&gt;Patreonの閉鎖に伴い、2023年に受け取った寄付金額を確定しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ページのレイアウトを調整しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fedibird.com/@amane/111092715093869600"&gt;高さによってborderが間延びする現象&lt;/a&gt;が気になったため、左右の点線を削除しました。&lt;/li&gt;
&lt;li&gt;その他、バランスの悪かった余白や表示位置のわずかな修正を行いました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;絵文字の表示に使用している&lt;a href="https://twemoji.twitter.com/"&gt;Twemoji&lt;/a&gt;のライセンス表記について、リンク先を変更しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ama.ne.jp/.well-known/security.txt"&gt;security.txt&lt;/a&gt;にPGP署名を追加しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_6"&gt;かいた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/starfish-future-world/"&gt;Starfishの世界とこれから&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;愛用している壁紙生成ツールの仕組みについて掘り下げました。&lt;/li&gt;
&lt;li&gt;処理の流れは網羅できましたが、個別のパターン生成器についての解説は一部が力尽きています。そのうち追記するかもしれません。&lt;/li&gt;
&lt;li&gt;読み終わったら、&lt;a href="https://xstarfish-rust-wasm.netlify.app/"&gt;jelatofish&lt;/a&gt;でお手軽にStarfishを試してみてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/cobalt-salt-occult/"&gt;コバルトブルーと塩の道&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;距離感のバグった匂いフェチの先輩と真夏のキッチンでお塩を作る話です。&lt;/li&gt;
&lt;li&gt;季節問わず楽しめるように、ごちゃごちゃした構成になっています。&lt;/li&gt;
&lt;li&gt;11月開催の&lt;a href="https://bunfree.net/event/tokyo37/"&gt;文学フリマ東京37&lt;/a&gt;には参加しないので、秋の新作としてお楽しみください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>コバルトブルーと塩の道</title><link href="https://ama.ne.jp/post/cobalt-salt-occult/" rel="alternate"/><published>2023-11-02T18:55:00+09:00</published><updated>2023-11-04T09:14:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-11-02:/post/cobalt-salt-occult/</id><summary type="html">&lt;p&gt;小説でよくわかるシリーズ 塩のひみつ&lt;/p&gt;</summary><content type="html">&lt;p&gt;お盆過ぎになっても、まだ暑さは落ち着かなかった。この異常気象で、アンドンクラゲもアカイエカもいつの間にか絶滅危機らしい。こんな夏休みにわざわざ外に出かけるなんて、無謀な挑戦を売りにする動画投稿者くらいしかいないだろう。しかし、今から私は無謀にもそんな挑戦を強いられることになる。部長がどうしても今日来てほしいと言ったからだ。&lt;/p&gt;
&lt;p&gt;早起きの寝ぼけた頭の中を、トーストにかじりつく音と一緒にキャスターの声が通り抜けていく。最近の老人は周囲の環境変化に鈍感であるから、少なくとも10月までエアコンが必須である……というような特集を、できるだけ当事者のプライドを傷つけないように、回りくどくかつ明るい口調で説明していた。十数年前のコンプレッサーでは、暑すぎてタイマー機能の動作温度設計から外れるものがあるらしい。&lt;/p&gt;
&lt;p&gt;その特集が終わると、今年は特に酷暑だった20年前の平均気温を大きく上回り、ここ150年ほどの観測史上で最も暑い夏になるだろうという気象庁の発表が流れ始めた。気温の警報だけでL字放送に変わるのも珍しい。ぐるりと残したパンの耳を牛乳で流し込んで、少子化と共に平均気温が上がる傾向があるようだ、ということを示すグラフがSNSでバズっていたのを思い出す。昨日サークルのトークルームでスズがシェアしていたが、部長の既読は付いていなかった。&lt;/p&gt;
&lt;p&gt;今日も昨日とほぼ変わらない最高気温を示す予報にげんなりする。二十四節気なんて梅雨と一緒にもう忘れ去られて、季節が一歩も前に進んでいる気がしない。屋外での運動は原則中止せよ、不要不急の外出は避けろ、定期的に水分を補給しろ――と、お年寄り相手の猫撫で声から急に単調で冷静なアナウンスに切り替わった。部長が急いでるみたいなんですみません……と誰にともなく言い訳しながら、あせた薄手のロングスカートを収納から適当に取り出したチュニックに合わせて、かぎ編みの日除け帽をかぶる。バッグにはネッククーラー、日傘、それと凍ったペットボトルを何本か。これなら行きの燃料くらいにはなるだろう。&lt;/p&gt;
&lt;p&gt;部長――アキさんは少し変な人だった。特に空間の捉え方において、古い感性の人間である。彼女はコミュニケーションにおいて物理的な距離を重視していて、&lt;ruby&gt;&lt;rb&gt;仮想空間&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;メタバース&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;で例会を開催するのを明確に嫌っていた。アキさんがとある山奥の集落出身なのが影響しているのかもしれない。狭い村ではポスト・コロナの感性なんて生まれる余地がないだろうから。――というようなことを、ふと雑談のネタとしてスズに話したところ、あんたも東北出身の田舎者じゃんと笑われた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;去年、会員の多数希望で初めて仮想空間での例会が開かれた後、急にアキさんからご飯に誘われた。通話の呼び出しが数コールですぐ切れて、その後DMが届いたのだ。操作を間違えるほど急いでいたらしい。明日とか週末の約束のつもりで話を聞いていたところ、今すぐ行きたいのと言われて戸惑ったのを覚えている。今とは真逆で、空がとても冷える冬の日だったはずだ。私は1年生の秋学期終わりがけで、アキさんは部長になったばかりだった。&lt;/p&gt;
&lt;p&gt;駅前に着くと既にアキさんが待っていて、こちらに気づかずなぜか焦慮した様子を滲ませていた。私が声をかけると、そのいらだちをかき消すように「あ、ナルちゃん！」と笑顔で私の手を握る。大きな青いガラスボタンの付いたベージュのステンカラーコートを着ていた。例会の時はだいたいこの姿で、ボタンの薄いメッキが透き通った輝きを放つのが好きだった。指先は冬らしくひんやりしていて、しかし行きつけのラーメン屋に着く頃にはもう暖かくなっていたと思う。&lt;/p&gt;
&lt;p&gt;実は、アキさんと手を繋いで歩いたのはこの日が初めてで、本当は少し驚いていた。もちろん、仲のいい友達同士ならありふれたことだろうけど、私は単なる先輩と後輩の距離感のつもりだったから。そこへいくと、そもそも私とアキさんは突然二人で食事に行く間柄ではないのだった。立て続けに不測の事態が起こると、人は急に冷静になるものだと思う。&lt;/p&gt;
&lt;p&gt;その頃はまだソーシャル・ディスタンシングがどうのと世間がうるさくて、どちらともなく手を離してもいいような力で引き合って歩く私たちの姿を意識すると、どうも後ろめたい気持ちになったのを覚えている。アキさんは私より少し背が高かったけど、姉妹だと言い張るには無理があった。まだ食事以外で素顔を見る機会は少ない時期である。&lt;/p&gt;
&lt;p&gt;歩いている間、アキさんは数十分前の例会に出席していたタヌキネコ（3年くらい前にバズったキャラクターで、キャンペーンの3Dモデルが配られていたのだ）のアバターがちゃんと私だったかどうかを頻りに気にしていた。手のひらの暖かさを通して、目の前の存在を確かめているようだった。アキさんはデフォルトの角張ったロボットのアバターだったから、動物と心を通わせるやさしいロボットの姿が頭に浮かぶ。&lt;/p&gt;
&lt;p&gt;「ご飯に行くなら、みんなも誘えばよかったじゃないですか」&lt;/p&gt;
&lt;p&gt;「そ、そうだよね。でも、ちょっと恥ずかしくて……」&lt;/p&gt;
&lt;p&gt;「え、何がですか？」&lt;/p&gt;
&lt;p&gt;「ほら、ナルちゃんは東北出身じゃない？　仮想空間に馴染めない気持ち、分かってくれるかなって……」&lt;/p&gt;
&lt;p&gt;アキさんまで！　私はちゃんと政令指定都市育ちなのに。埼玉生まれのスズに言われるのはまだしも、長野の山奥から来たアキさんに言われると流石に反論したくなる。しかし、ばつが悪そうに私を呼びだした理由を告げる姿を見ると、言い返す気にはならなかった。&lt;/p&gt;
&lt;p&gt;それからアキさんは、仮想空間にいると表情の分からないピエロに囲まれているみたいで怖いとか、電話もちゃんと伝わっているか分からなくて苦手、というような話をしていた。日本人の4割は電話が苦手だというし、最近発表されたコロナの感染率が3割弱だと考えると、それほど珍しいことでもない。私にベタベタと触れてきたのも特別な気持ちがあるわけではなく、ピエロが集まる薄ら寒い夜を人肌で乗り越えようということなのだろう。&lt;/p&gt;
&lt;p&gt;限定のイタリアンまぜそばが美味しかったから、別にいいけど。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ほんの数分前に着いたばかりだという白いワンピース姿のアキさんは「暑いねー」なんて間延びした声と共にハンカチで汗を拭った。駅前のロータリーは歩道に沿ってUVカットの強化プラスチックでシェルターが張られており、圧迫感を抑えつつ待ち時間を快適にする工夫が施されている。その屋根の下でも熱気はなお変わらず押し寄せているようで、麦わら帽を脱いだアキさんの頬は上気していた。&lt;/p&gt;
&lt;p&gt;「アキさん。先に来たなら、サローにでも入っていればよかったじゃないですか」&lt;/p&gt;
&lt;p&gt;サローは駅前にある唯一のカフェである。県内全域と県外にもわずかに進出しているアメリカンダイナー風のチェーン店で、手軽な価格で食べられるオリジナルスパイスを使ったハンバーガーの人気が高い。あとはクラフトコーラのカクテル。この小さな駅にサローがあるのは少し珍しい気がするけど、バイトも利用者も近隣の大学生が多いおかげで上手く回っているのだろう。&lt;/p&gt;
&lt;p&gt;「う、うん。でも、すぐ電車に乗るからいいかなって……」&lt;/p&gt;
&lt;p&gt;「え、出かけるんですか。今から？　どこに？」&lt;/p&gt;
&lt;p&gt;アキさんが脱いだ帽子をもじもじと揺らす。つばがまっすぐ伸びた大きな麦わら帽にはピンク色のリボンが巻かれていて、その結び目に通したガラスボタンがきらきらとした光を放っていた。この輝き、どこかで見覚えがあるなと思いながらしばし見つめているうちに、アキさんが冬の例会で着ていたコートのボタンと同じものだと気づく。角の生えた鹿のような動物が描かれていて、花札の「鹿に紅葉」を連想した。紅葉は待ち遠しいほどずっと先なのに。&lt;/p&gt;
&lt;p&gt;「ちょっと……海に行きたくて」&lt;/p&gt;
&lt;p&gt;「はぁ、海ですか」&lt;/p&gt;
&lt;p&gt;思わず気の抜けた声が出るくらい、なんとも突拍子もない答えだった。ここからだと、針磨まで行ってからJRで向かうつもりだろうか。ここは県内を縦断する私鉄の一線であり、乗り換えなしでは海岸には行けない。往復で3000円くらいなら、サローで少し豪華な夕食を食べたくらいだと思えばいいだろうか。&lt;/p&gt;
&lt;p&gt;それよりも、海と聞いてせめてサンダルで来なかったことを後悔していた。海に向かうつもりのアキさんが、今すぐにでも砂浜を歩けるような服装なのは当然で、しかし相対する私は海どころか遠出するにも気合の入らない服装だ。ワンピースによく映えるナチュラルな青いコットンリュックに、私にも使えるようなアイテムが入っていたらと思うが、あまり期待はできまい。&lt;/p&gt;
&lt;p&gt;もちろん、どこに行くか聞かずに外に出た私も悪いけど――と、いつの間にか自分がもう海に行く旅程は受け入れてしまっていることに気付いて、さらに驚く。そもそも、夏休みもど真ん中のこんな日に誘われた時点で怪しむべきだったと、思った。&lt;/p&gt;
&lt;p&gt;「わたし、実は明後日帰省するんだけどね。お塩を持って帰らないといけなくて」&lt;/p&gt;
&lt;p&gt;「塩ですか。センゴクに行けば、徒歩5分で着いて涼める上にヒマラヤの岩塩まで売ってますけど」&lt;/p&gt;
&lt;p&gt;「えっとね、あれは不純物がいっぱいでしょう？　でも、化学の塩もダメで……お店で買うんじゃなくて、海水をもらってきて作らなきゃいけないの」&lt;/p&gt;
&lt;p&gt;お盆にDIYの塩を納める文化なんて、聞いたことがなかった。江戸時代には沿岸から長野県の塩尻まで塩を運ぶ街道があったらしいけど、現代では内陸県だからといって塩が不足することもない。仮に不足していたとして、素人が作った塩を必要としているのはやはり奇妙だった。&lt;/p&gt;
&lt;p&gt;「ねぇナルちゃん、ダメ？　今年はすごく暑くて、わたしだけじゃやりきれるか分からないの」&lt;/p&gt;
&lt;p&gt;「えーと……いや、はい……」&lt;/p&gt;
&lt;p&gt;沈黙が流れる。アキさんは私の答えをはっきり聞くまで動きません、とでも言うように麦わら帽のつばをきゅっと握っていた。乗客を数人乗せて発車を待っていた市内の循環バスが出発時刻を迎えて、ディーゼルエンジンの始動音と共に姿を消す。街路樹に集まるセミも暑さが過ぎるのを静かに待つのが精一杯で、耐えきれずに噴き出した汗が右頬をつつと流れるのを意識した。&lt;/p&gt;
&lt;p&gt;「……私、行きの燃料しかないんですよ」&lt;/p&gt;
&lt;p&gt;「燃料って？」&lt;/p&gt;
&lt;p&gt;「いや、なんでもないです」&lt;/p&gt;
&lt;p&gt;駅前にいる今なら、アキさんの誘いを断って帰ることも簡単にできただろう。しかし、彼女がおかしな風習のせいで行き倒れてしまったら寝覚めが悪くなるのは私の方だ。この暑さの中でカンカン照りの十州海岸に向かうだけでも正気じゃないのに、さらにそこから重い重い海水を持ち帰ってくるなんて、とんでもない愚行に違いない。アキさんが無理をして倒れる前に止められるのは私だけだ。&lt;/p&gt;
&lt;p&gt;それに、こうしてアキさんに申し訳なさそうな顔で頼まれるのにはどうも弱かった。初めてアキさんの部屋に行ったときといい、私って流されやすい性格なんだろうか。&lt;/p&gt;
&lt;p&gt;でも、今日はもともと予定がなかったし、もしかしたら秋の民俗学Ⅱのレポートでネタにできるかもしれないし、もともとアキさんと過ごすのがいやなわけでもないし……とにかく、まぁ、私にもきっとメリットがあるはずだから、別にいいけど。別にいい。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ちょっと散らかってるけど、好きなところに座っていいからね」&lt;/p&gt;
&lt;p&gt;コートを脱いだアキさんが、ごちゃついたダイニングテーブルを片付け始めた。ボトルデザインにクリスマスのオーナメントが散りばめられた化粧水（保湿がよいと口コミで評判だった）、砂糖か塩のような白い粉末が詰められたジャムの空きビン、クーポンがついた駅前の新しいピザ屋のチラシ、4言語の赤い文字で警告が書かれた水道局の封筒……片付けというより、単に重ねて端に寄せただけともいえる。&lt;/p&gt;
&lt;p&gt;半分ほど空間ができたテーブルにコップを持ったアキさんが座ったので、それに合わせて向かい側の席に着いた。透明な液体で満たされたコップ越しに、紺色のリブニットセーター姿のアキさんを見つめていると「お茶の方がよかった？」と尋ねられたので首を振る。聞くと、地元の温泉から採水したものがペットボトル詰めで売られているらしい。確かに、少し甘さを感じないこともない。&lt;/p&gt;
&lt;p&gt;「あの、部長。それで、相談っていうのはなんなんでしょうか」&lt;/p&gt;
&lt;p&gt;まぜそばを食べ終わった私は、またなぜかアキさんに手を引かれて駅まで戻ることに。アキさんの手は食事の前より暖かくて、お互いに触れ合う手のひらがよく馴染む気がした。「冬なのにあったかいね」なんて笑っていたところを見ると、私の手もだいぶ暖まっていたのだろう。駅に着いたところで解散と思っていたら、実は話したいことがあるのだと家まで誘われたのだった。&lt;/p&gt;
&lt;p&gt;「そうだったよね。相談。そう、えぇと……」と、アキさんは私の問いに答えかねているようで、手元がもじもじと落ち着かない。水面を揺らしたり、少しずつ口に運んでみたり――と、しばらく心の準備を待っていると、とうとう重い口を開いた。&lt;/p&gt;
&lt;p&gt;「ナルちゃんって、海の匂いがするよね」&lt;/p&gt;
&lt;p&gt;「……それって、縁起悪くないですか？　なんか、死ぬ前みたいで」&lt;/p&gt;
&lt;p&gt;「そ、そうじゃなくて！　海っていうのは、晴れた砂浜のぽかぽかした感じとか、空の匂いっていうか……」&lt;/p&gt;
&lt;p&gt;「夏の……いや、おひさまの匂いとか、ですか？」&lt;/p&gt;
&lt;p&gt;アキさんは私の「おひさま」という言葉にうんうんと頷いて「そう！　そう言いたかったの」と身を乗り出して答えた。じゃあそれはきっと柔軟剤の香りだ、と思って自分の袖に顔を近づけてみても、もう鼻が慣れているのか、冬の空気がまとわりつく冷たい匂いしか感じない。むしろ、近づいてきたアキさんのジャスミンローズの香りを強く感じていた。&lt;/p&gt;
&lt;p&gt;私はてっきり、人が死ぬ直前に磯の匂い――実はプランクトンや海藻が分解された物質らしい――が漂うという都市伝説のことだと思っていたけど、もっと明るくてあたたかい話だったらしい。滞留したナトリウムの香りみたいだなんて評されるのはまっぴらごめんだけど、おひさまの匂いというのも、なんだか子供っぽさが先に浮かんで褒められている感じはしなかった。&lt;/p&gt;
&lt;p&gt;「わたし、海にほとんど行ったことがなくて。だから、わたしの &lt;em&gt;海の匂い&lt;/em&gt; は、小さい頃の思い出の匂いなのかも」&lt;/p&gt;
&lt;p&gt;アキさんの言葉を聞いて、昔家族で行った市内の海水浴場のことを思い出す。砂浜は海の家とビーチパラソルと残りは人出で埋め尽くされているという、よくある夏の景色だ。端の方に行くとごつごつとした岩場が広がっていて、潮だまりでイソギンチャクや巻貝が揺れていたり、小さなカニが駆け回っていたのを覚えている。&lt;/p&gt;
&lt;p&gt;頭に浮かぶのはそういう磯の生き物たちの楽園で、しかし匂いを思い出そうとするとどうも判然としない。スーパーの魚売場とか、忘年会の居酒屋で見た生け簀の記憶と混ざってしまう。最近海に行っていないからだろうか。冬は海の匂いを忘れてしまうのかもしれない、とふと思った。&lt;/p&gt;
&lt;p&gt;「でね、いつもナルちゃんから海の匂いがするなって思ってて」&lt;/p&gt;
&lt;p&gt;「私だけですか？　その、ヘンな匂いって……」&lt;/p&gt;
&lt;p&gt;「ヘンじゃないよ！　みんないろんな匂いがするし。でも、ナルちゃんが一番好きだから、ね？」&lt;/p&gt;
&lt;p&gt;身振り手振りで誤解を解こうとしているようだけど、勘違いしているのはアキさんの方だ。とはいえ、私が知っている &lt;em&gt;海の匂い&lt;/em&gt; ではないことは分かったし、あまり気にする必要はないのかもしれない。いい匂いだと感じる相手は遺伝子の相性もよい、なんて再現性のない昔の論文に依拠した俗信が頭に浮かんで、アキさんの匂いをあまり覚えていないのが薄情なことのように思えた。&lt;/p&gt;
&lt;p&gt;「今日はバーチャル例会だったじゃない？　いろんなアバターからみんなの声が聞こえるのが怖くて、ナルちゃんの顔を思い出したら、なんだかすぐに会いたくなったの」&lt;/p&gt;
&lt;p&gt;アキさんは声と身体が同じ場所に重なっていないことよりも、普段感じている嗅覚がシャットアウトされることに不安を覚えたのだろう。表情も匂いも分からない、声が出る3Dモデル。これは電話だってそうだ。簡単に言えば、匂いを感じたいから直接会いたい、ということらしい。&lt;/p&gt;
&lt;p&gt;そこで最初に浮かんだのが私というのがどうも腑に落ちないところだけど、同じ &lt;em&gt;地方出身者&lt;/em&gt; として話しやすかったのかもしれないし、不安になったら誰かに頼りたくなる気持ち自体は理解できる。でも、それなら初めから一緒にいてほしいと言ってくれたらよかったのに。断られないようにまずは食事から、なんてむしろ私を信頼していないように感じられた。まるで私の意思なんて無視しているように。&lt;/p&gt;
&lt;p&gt;「じゃあ今日は、最初からこうやって家に連れてくるつもりでご飯に誘ったんですか？」&lt;/p&gt;
&lt;p&gt;「……えっ」&lt;/p&gt;
&lt;p&gt;少し冗談めいた口調で聞いたつもりが、予定より深刻そうな声色になってしまったのが分かる。アキさんが頬を引きつらせたまま動けなくなったからだ。いやな空気が駆け抜けた。大丈夫です、冗談ですよ、気にしてません……そう言い出せれば、と思ったけれど、もやもやした気持ちがのどにつかえる。&lt;/p&gt;
&lt;p&gt;そうしているうちに、重い空気に耐えきれなくなったアキさんが口を開いた。&lt;/p&gt;
&lt;p&gt;「騙されたと思ってたら、ごめんね。でも、そんなつもりじゃなくて……ひっ、こわかったのも、ほんとだから……」&lt;/p&gt;
&lt;p&gt;「じょ、冗談ですよ！　泣かないでくださいって」&lt;/p&gt;
&lt;p&gt;膝の上で両拳を握りしめたアキさんから、たどたどしい口調と一緒に涙が漏れ始める。テーブルに突っ伏すわけでもなくぴんとした姿勢で私の目を見つめようとしているけれど、ぼろぼろと流れる涙で視界はすっかり歪んでいるはずだ。そうやって弁解する姿を見ると、確かに私を騙すつもりなんてなかったのだと思えてくる。&lt;/p&gt;
&lt;p&gt;「それで、まだちょっとこわくて……うっ、だから、一緒に寝てほしくて呼んだの……だめ？」&lt;/p&gt;
&lt;p&gt;「いや、先に言ってくれれば、パジャマくらい……」&lt;/p&gt;
&lt;p&gt;そこまで言葉が出てから、はっと気付いて口を押さえる。パジャマくらい。だなんて、まるでもう泊まることは決まっているみたいだ。アキさんのパジャマを借りたら少しぶかぶかだろうな、なんて考えてしまうのもいやになる。さっき自然に手を繋いで街を歩いたみたいに、またアキさんのペースに流されている。まんまと無警戒でこの部屋まで来てしまったせいで、いつの間にか前にも後ろにも逃げられなくなっていた。&lt;/p&gt;
&lt;p&gt;「……私と一緒に寝たら、バーチャル例会でちゃんとみんなとおしゃべりできるようになりますか？」&lt;/p&gt;
&lt;p&gt;「うん、大丈夫。でも、逃げたくなったら……ひっ、ナルちゃんのこと、考えてもいい……？」&lt;/p&gt;
&lt;p&gt;「あの、なんかそれって……まぁ、それで落ち着くなら、いいですけど」&lt;/p&gt;
&lt;p&gt;アキさんって、こんな人だったっけ。おっとりしてるけど芯があって、もっとしっかりした人だったような。情緒の乱高下に任せて他人との距離感を見誤ったり、サークルで節操のない恋愛事情に巻き込まれたりする人ではなかったはずだ。それが今、目の前で不安を慰めてもらうために涙を流して後輩の私に懇願しているなんて。&lt;/p&gt;
&lt;p&gt;実はこうして、私みたいに純朴な後輩を何人も誘っているんじゃないか、なんて変な妄想が頭の隅に浮かぶ。みんなに一番だよ、と言って回ったりして。それでも、今日だけ一緒の布団で一緒に寝るくらいなら、別にいいけど。別にいい。&lt;/p&gt;
&lt;p&gt;「……こうですか」&lt;/p&gt;
&lt;p&gt;「うん。ナルちゃん、ありがとう」&lt;/p&gt;
&lt;p&gt;腕を広げたアキさんの胸元に収まるように身体を縮めると、暖かくてやわらかい感覚に包み込まれるのに合わせて、耳元にほぅと溜息がかかる。落ち着きを取り戻したアキさんとは対照的に、私はなぜか息ができなくなった。腕の力は弱いのに、強く締め付けられている心地がした。&lt;/p&gt;
&lt;p&gt;私を抱き留めて泣き止んだアキさんが「ナルちゃん、ちっちゃくてかわいいね」なんてへらへら笑いだす。それを見てなんだか急にむしゃくしゃして、胸に向かって小さく頭突きをした。その拍子に大きく息を吸うと、香水と混ざった甘くて濃い匂いが通り抜けていく。アキさんの匂いを意識したのは、これが初めてだった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ナルちゃん、大丈夫？　お水のボトルは適当に置いていいからね」&lt;/p&gt;
&lt;p&gt;「はぁ……これくらい、ふぅ……平気ですから」&lt;/p&gt;
&lt;p&gt;靴を脱いでダイニングテーブルに向かったアキさんが、大きなトートバッグから軽々と2リットルのボトルを取り出していく。私もその列に自分の荷物を並べようと思ったけど、靴を脱いで床に上がる自分を想像するとへたり込みそうになったので、その場にどすんとバッグを下ろした。アキさんの半分の量しか運んでいないのに。暑さにかまけて、運動もせずにだらけた生活を送っていたのを後悔した。&lt;/p&gt;
&lt;p&gt;あれから十州海岸に向かった私たちは、海水どころか真っ白な砂浜ごと溶かしてしまいそうな熱波と日光の中で作業を始めた。もしビーチパラソルのレンタルシーズンが終わっていたら、今ごろ二人そろって砂浜の染みになっていたところだろう。8月終わりのこの酷暑に海水浴を楽しみに集まる人は少ないようで、せいぜいよく日焼けした地元のサーファーが数人集まって熱心に波を待つほかに人影はなかった。アキさんは久しぶりに見る海岸の景色を鼻から思い切り吸い込んで、「ナルちゃんの方がいい匂いだよ」とか「わたしの記憶と全然違う」と楽しそうに笑っていた。&lt;/p&gt;
&lt;p&gt;それからアキさんがリュックから取り出したのは、海水を汲むための紐のついたピンク色のバケツが1つと、折りたたみのウォーターボトルが何枚か、そして500mlの炭酸飲料用ペットボトルに似た黒い容器からチューブが生えた謎の装置である。これが3本。1本持ってみるとずっしりと重く、全面に塗られたつやのない黒い顔料が日光を曖昧に反射している。指で軽く叩いてみたらカンカンと金属が響く音がした。&lt;/p&gt;
&lt;p&gt;「これね、太陽の熱で海水を煮詰める……えーと、ケトルみたいなもの、かな。わたしも実家から持ってきただけだから、よく分からないんだけどね」&lt;/p&gt;
&lt;p&gt;海水の入ったバケツを持って帰ってきたアキさんが、そう説明しながら金属ボトルに塩水を移した。そして、リュックの一番底に落ちていた空気入れのようなハンドルを取り付けて何度か勢いよく往復させる。空気を入れてるんじゃなくて抜いてるんだよ、と言っていた。どうやら簡易的な真空装置らしい。この前、そんな感じのキッチン用品がバズっていたっけ。&lt;/p&gt;
&lt;p&gt;空気を抜いた後のボトルは、太陽がよく当たるように即席の砂山に仲良く立てかけられて、しばし日光浴へと出される。30分間ほど直射日光に晒しておくと、ボトルを満たしていた海水が3分の1ほどに減っていた。太陽の熱だけで水が沸騰して蒸発したということか。広げたウォーターボトルに濃縮された海水を流し込むと、まるで海藻でも煮詰めたような磯の匂いが上がってきた。死の匂いだ。&lt;/p&gt;
&lt;p&gt;こうやって――いや、どうやって？――作った濃い海水のことをカンスイと呼ぶのだとアキさんが言った（後で調べたら鹹水と書くらしい）。&lt;/p&gt;
&lt;p&gt;海水を煮詰めるのは正体不明のテクノロジー頼みでも、できあがったカンスイを家まで持ち帰るのは安価な人力である。とりわけ、私のような若くて健康な肉体ならどこでも即戦力というわけで……と思ったのも束の間、ビーチパラソルでは防げない白い砂浜の照り返しに私はすっかり体力を奪われていた。アキさんの体調を見守るどころか、重い身体を引きずりながらここまで2リットルのボトルを両肩に抱えて持ち帰るのがやっとというわけだ。&lt;/p&gt;
&lt;p&gt;もちろんこれだけでは塩ができたとは言えないので、ここからは残りの水分を飛ばす作業が待っている。いかに豪快な暑気を放つ太陽でも力不足で、今度はさらに強い火力で塩水を沸かし続ける必要があることは知っていた。ガスコンロか、電子レンジか、固形アルコールか――外の階段に「駐車場でのバーベキュー禁止」の張り紙があったから、たき火は使えないのだ――いずれにせよ、まだ時間がかかりそうだ。&lt;/p&gt;
&lt;p&gt;「じゃあ、お塩作りの続き、始めるね」&lt;/p&gt;
&lt;p&gt;そう言ってアキさんが取り出したのは、海水を沸かしていたボトルと形がよく似た、しかし深い海のような青色のガラスでできた透明なビンである。なだらかなワインボトルや背の高い琉球壺を思わせるシルエットを描く分厚いコバルトガラスは、表面にぐるりと青海波のレリーフが彫られていた。&lt;/p&gt;
&lt;p&gt;アキさんが慎重な手つきでそろそろとそのビンに塩水を注いでいく。五徳にかけるには背が高すぎやしないかという心配とは裏腹に、移し終わってもコンロに向かう気配はなかった。代わりに取り出したのは茶色くすすけた古いマッチ箱である。赤く塗られた上面に白虎が踊る見たことのないデザインだった。アキさんはそこからマッチを1本取り出してサッと火を着けたかと思うと、すぐにビンの口に差し込んだ。&lt;/p&gt;
&lt;p&gt;すると、目の前に不思議な光景が現れる。マッチの火はすぐに消えるかと思いきや、水面近くでふつふつと橙色……いや、緑色にも見える炎を上げ始めたのだ。私の目を盗んでオイルでも垂らしたのかと疑ったが、私の怪訝な顔に向き合うアキさんの穏やかな表情は、私をからかっているようには見えない。炎に照らされた水面が少しずつ低くなっていき、わずかなオイルならもう燃え尽きているはずの時間が流れる。手品や錯覚の類ではなかった。&lt;/p&gt;
&lt;p&gt;「あのケトルだけでもお塩は作れるんだけど、不純物が残っちゃうから」&lt;/p&gt;
&lt;p&gt;「不純物が残ると、いけないんですか？」&lt;/p&gt;
&lt;p&gt;「ビンの中で燃えちゃうようなお塩だと、塩の神様が悲しんじゃうから。だから、夜に煮詰めないといけないの」&lt;/p&gt;
&lt;p&gt;どうやら、この不思議な炎で作られた塩は神社かどこかに奉納するためのものらしい。土着神の&lt;ruby&gt;&lt;rb&gt;御饌&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;みけ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;なら、わざわざ手作りで塩を作るのも、アキさんの実家に塩作りのための道具がそろっているのにも納得がいく。塩が不足しがちな山間部で塩自体を神格化して、備蓄を促す理屈を作る助けにしたのだろうか。&lt;/p&gt;
&lt;p&gt;アキさんの手で残りのビンも塩水で満たされて、今度は私が順番にマッチの火を落としていく。もちろんタネや仕掛けなんかなくて、水面に移った炎はどこから見ても明るい。細いビンの口から湿った空気がゆらゆらと漏れ出て、エアコンのないダイニングキッチンがさらに蒸し暑い夜に追いやられていった。&lt;/p&gt;
&lt;p&gt;5本のビンがくつくつと立てる小さな音の中で20分間ほどが過ぎる。初めのビンの塩水がとうとう1割ほどまで減ったところで、今まで絶えずに様々な色で燃えていた炎がふっと消えてしまった。やっと塩ができあがったのかと上から覗き込むと、不思議なことにまだところどころ黄色い炎がゆらめいている。でも、もう一度横から見ても、やはり燃えているようには見えなかった。&lt;/p&gt;
&lt;p&gt;「あ、あれ……？」&lt;/p&gt;
&lt;p&gt;「どうしたの？」と驚く私に顔を寄せたアキさんがビンの中をぐるりと見回して、これなら大丈夫だよと言って炎を吹き消した。ビンの外側はほんのり温まっていて、しかし持てないというほど熱いわけでもない。ビンを皿に向かってゆっくり傾けると、勢いよく滑り出した結晶がきらきらとした光を放ちながら白い磁器の上を跳ねていく。でこぼことあちこちにぶつかる不規則な粒は、作り方から見ても焼塩に近いのだろう。不純物のない塩、という表現が確かに正しいと思った。&lt;/p&gt;
&lt;p&gt;少し舐めてみようよ、と誘われるままに数粒を指に乗せて口に入れてみる。指をくわえた瞬間に同じポーズのアキさんと目が合って、見てはいけないところを見てしまったような心地がした。口の中にはふわりとしたしょっぱさが全体に広がっていくけれど、 &lt;em&gt;化学の&lt;/em&gt; 塩とは違って、十州海岸で海水を煮詰めたときの磯の香りがまだほんのりと残っている。でも、ヒマラヤの岩塩から万年雪の香りはしなかったのに。&lt;/p&gt;
&lt;p&gt;「おいしい？」&lt;/p&gt;
&lt;p&gt;「しょっぱいです。あと、 &lt;em&gt;海の匂い&lt;/em&gt; がします」&lt;/p&gt;
&lt;p&gt;「じゃあ、よかった！」&lt;/p&gt;
&lt;p&gt;大きな仕事を成功させたと言わんばかりに満面の笑みを浮かべるアキさん。たかが塩でしょうと水を差す自分を意識しつつも、これが二人で朝から散々苦労して作った味だと思うと、つい口元が緩んでしまう。ほころんだ唇をきゅっと結んで頷くと、アキさんは不思議そうに首を傾げた。&lt;/p&gt;
&lt;p&gt;ふと、山の神様は磯の香りが恋しいから塩を作らせるのかもしれない、と思った。山からは決して穫れない魚や貝の面影を味わうために、海から塩を持ってこさせるのだ、と。アキさんの故郷の図書館なんて漁ったら、もっといろいろ資料が出てくるに違いない。……いや、民俗学のレポートのためにストーリーを仕立てているわけではない、決して。&lt;/p&gt;
&lt;p&gt;そうしているうちに、残りのビンの炎も徐々に弱くなっていく。不純物を飛ばし切ったら、また順番に取り出して次のカンスイを詰めなければならない。もうすぐ日付が変わる頃なのに、まだ全体の2割ほどしか終わっていなかった。今日はこれができあがったら、いったん帰ってもいいだろうか。明日の夕方から残りの分を進めれば、なんとかぎりぎり――&lt;/p&gt;
&lt;p&gt;「ねぇ、ナルちゃん。お塩作り、朝までいてもらってもいいかな？」&lt;/p&gt;
&lt;p&gt;「部長……私、今日はもう疲れちゃったんですけど」&lt;/p&gt;
&lt;p&gt;「そ、そんな言い方しないでよぉ……一緒にがんばろう？　ね？」&lt;/p&gt;
&lt;p&gt;――というわけにもいかないらしい。昼間ほどの力仕事は残っていないにせよ、この疲れ切った体で細かな作業を繰り返すのを想像すると気が重くなる。流石に帰りたいという気持ちが前に出たせいか、思わず &lt;em&gt;部長&lt;/em&gt; だなんて呼んでしまったから、アキさんは寂しそうな顔をした。&lt;/p&gt;
&lt;p&gt;「ね？」と私に目線を合わせて屈んだアキさんの手は少し汗ばんでいて、キッチンがまるで海辺の熱帯雨林みたいに湿った空気に沈んでいたのを思い出す。窓はまだ開けていなかった。&lt;/p&gt;
&lt;p&gt;「だって、ほんとに疲れたんですよ。ずっと暑かったから汗くさいし。流石に恥ずかしいですって」&lt;/p&gt;
&lt;p&gt;「え……ち、違うよ？　今日はそんなつもりで誘ったんじゃないの。そんなことしない、しないよ、しないから！」&lt;/p&gt;
&lt;p&gt;私の言葉にはっと驚いたアキさんが、みるみる赤い顔に変わっていく。まるで私の方が期待しているような言い方に思わず反論したくなったけど、私とエッチなことしたかったんでしょ、なんてアキさんが認めるまで言い続けるつもりもない。どうせ初めからそのつもりだったくせに、という言葉を飲み込んでため息をついた。&lt;/p&gt;
&lt;p&gt;「いや、慌てすぎ……分かりましたよ。もう少しだけ、手伝いますから」&lt;/p&gt;
&lt;p&gt;「うん。じゃあ、お塩作りが終わったらすぐ解散ね、解散！」&lt;/p&gt;
&lt;p&gt;そう歯切れよく言い切ってみせたアキさんは、それでも諦めきれないように「でも、あんまり遅い時間だと危ないし、そのときは泊まった方がいいかもしれないけど……」なんてぶつぶつと言い始める。本当に私の言葉で意識させたのだとしたらとんだ藪蛇で、しかし私がアキさんの部屋に来て &lt;em&gt;そう&lt;/em&gt; ならないことはなかったし、急に図星を指されて驚いただけなのだろう。やっぱり私はアキさんに甘いのかな、と思う。&lt;/p&gt;
&lt;p&gt;落ち着きのないアキさんの代わりに、空になったビンに新しい塩水を詰めていく。まだ半分以上満たされたウォーターボトルは、片手で支えるには少し重い。細い水流を見つめながらほんの少しぼんやりとした隙に注ぎ口が揺れて、気付くとカンスイの飛沫が指先にかかっていた。素直に拭き取ればよかったのだけど、タオルに手を伸ばすのも億劫になってそろりと舐めとってみる。&lt;/p&gt;
&lt;p&gt;海の香りがする。ふと目の前に浮かんだのは、コバルトブルーの海風が吹く山奥の神社の風景だった。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>Starfishの世界とこれから</title><link href="https://ama.ne.jp/post/starfish-future-world/" rel="alternate"/><published>2023-08-30T17:27:00+09:00</published><updated>2023-08-31T15:59:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-08-30:/post/starfish-future-world/</id><summary type="html">&lt;p&gt;一期一会の空間へようこそ&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#starfish"&gt;Starfishとその派生ソフトウェア&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#starfish_1"&gt;Starfishのしくみ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#starfish_2"&gt;Starfishを支える生成器&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#bubble"&gt;Bubble&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#coswave"&gt;Coswave&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#flatwave"&gt;Flatwave&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#rangefrac"&gt;Rangefrac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#spinflake"&gt;Spinflake&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#starfish_3"&gt;Starfishのつかいかた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;壁紙として&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sns"&gt;SNSのアバターとして&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;その他いろいろな素材として&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://web.archive.org/web/20060829230929/http://www.redplanetsw.com/starfish/"&gt;Starfish&lt;/a&gt;は、タイル状に敷き詰めて表示するのに都合がよいテクスチャパターンを生成したり、そのテクスチャをデスクトップの壁紙として設定する機能を持ったユーティリティソフトです。ランダムなパラメータに基づく複数の数式を重ね合わせたパターンは多様かつ高品質であり、単なるデスクトップ用の壁紙にとどまらず、SNSのアバターや芸術作品の素材などにも活用できる可能性を秘めています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Starfishで生成できる画像の例" height="512" src="/images/starfish-future-world/starfish-example.png" width="512"&gt;&lt;/p&gt;
&lt;p&gt;Starfishが生成できるテクスチャは、ランダムに選ばれた5種類の生成器から得られるビットマップを2～6回重ね合わせるというシンプルな仕組みで作られています。この記事では、StarfishのRust移植版である&lt;a href="https://github.com/amane-katagiri/jelatofish"&gt;jelatofish&lt;/a&gt;の実装にあたって調査した内容――テクスチャの多様性を支える生成器の詳細や合成手法――について紹介します。&lt;/p&gt;
&lt;h2 id="starfish"&gt;Starfishとその派生ソフトウェア&lt;/h2&gt;
&lt;p&gt;最初の&lt;a href="https://web.archive.org/web/20060829230929/http://www.redplanetsw.com/starfish/"&gt;Starfish&lt;/a&gt;がMars Saxmanによってリリースされたのは、1999年のことです。当初はMac OS 8・9向けのユーティリティとしてリリースされ、その後は有志によって&lt;a href="http://www.istarfish.com/"&gt;Mac OS X向けの移植版&lt;/a&gt;や&lt;a href="https://web.archive.org/web/20050326064652/http://starfishwindows.home.comcast.net/"&gt;Windows 98～XP向けの移植版&lt;/a&gt;などが提供されてきました。&lt;/p&gt;
&lt;p&gt;また、X Window System向けのユーティリティとして&lt;a href="https://packages.debian.org/sid/xstarfish"&gt;xstarfish&lt;/a&gt;に移植され、メンテナンスが続けられています。さらには、OSに依存しない&lt;a href="https://github.com/micahcowan/starfishjs"&gt;JavaScript移植版&lt;/a&gt;も提供されており、この実装を用いた&lt;a href="http://micah.cowan.name/starfishjs/"&gt;デモページ&lt;/a&gt;からブラウザで気軽にテクスチャ生成を楽しめます。&lt;/p&gt;
&lt;p&gt;実は私も趣味の範囲で&lt;a href="https://github.com/amane-katagiri/jelatofish"&gt;jelatofish&lt;/a&gt;という名前のRust移植版を作っていて、さらに様々な環境でテクスチャを生成できるようになりました。Rustなら&lt;a href="https://github.com/rustwasm/wasm-bindgen"&gt;wasm-bindgen&lt;/a&gt;などのサポートで簡単にWebAssemblyを出力できるので、こちらもブラウザで動作する&lt;a href="https://xstarfish-rust-wasm.netlify.app/"&gt;デモページ&lt;/a&gt;を提供しています。ベースの画像から縦横にそれぞれ半周期ずらしたバージョンは、アバターとして使う際によく使う便利機能です。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://xstarfish-rust-wasm.netlify.app/"&gt;&lt;img alt="jelatofishで生成できる画像の例" height="600" src="/images/starfish-future-world/jelatofish-example.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なお、オリジナルのStarfishはGNU GPL v2でライセンスされており、いずれの派生ソフトウェアもGPL v2またはそれ以降のバージョンでライセンスされています。&lt;/p&gt;
&lt;h2 id="starfish_1"&gt;Starfishのしくみ&lt;/h2&gt;
&lt;p&gt;Starfishでは、ランダムなパラメータに基づいてビットマップを生成する数種類の関数の重ね合わせでテクスチャを生成します。具体的な生成器の種類は後述するとして、本節ではビットマップからヒートマップ状の画像を生成して合成する仕組みについて紹介します。&lt;/p&gt;
&lt;p&gt;生成器から得られるビットマップは、色を持たないグレースケールの2次元画像と同等です。このビットマップにランダムな2色&lt;sup id="fnref:starfish-color"&gt;&lt;a class="footnote-ref" href="#fn:starfish-color" title="Starfish内ではbackground / foregroundと呼ばれています。"&gt;1&lt;/a&gt;&lt;/sup&gt;を割り当てて線形に変化させると、ヒートマップ状のカラフルな画像が得られます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~ビットマップからカラフルな画像を得る例" height="272" src="/images/starfish-future-world/greyscale-to-heatmap.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;このような画像を持つレイヤーを2～6枚ランダムに生成して、さらに特定の規則でピクセルごとに重ね合わせることで、最終的に得られるテクスチャの多様性を高めていきます。このとき重要になるのが、各画像のピクセルごとの強度を示すマスク画像と呼ばれるビットマップと、それらのピクセル強度を相互に合成する計算手法です。&lt;/p&gt;
&lt;p&gt;生成器から得られたビットマップは、画像を鮮やかにする2つの色を得るのと同時に、他の画像との豊かな重ね合わせを実現するためにピクセルごとの強度を付与されます。このピクセル強度群は元の生成器と同じ大きさのビットマップであり、Starfishではマスク画像と呼ばれています。&lt;/p&gt;
&lt;p&gt;このマスク画像の生成方法は4種類あります。まずは元のビットマップをそのままマスクと見なすもの、異なる生成器&lt;sup id="fnref:different-param-same-generator"&gt;&lt;a class="footnote-ref" href="#fn:different-param-same-generator" title="異なるパラメータの同じ生成器を含む。"&gt;2&lt;/a&gt;&lt;/sup&gt;から得られたビットマップをマスクとするもので2種類。そして元のビットマップの値を反転させるもの、前述の異なる生成器を反転させるもので4種類です。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~マスク画像の分類" height="212" src="/images/starfish-future-world/starfish-mask.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;そして、これらのマスク画像について、おおよそ次のようなアルゴリズムで合成を行います。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/python3&lt;/span&gt;
&lt;span class="n"&gt;ALPHA_MAX&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_texture_strength&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;masks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;  &lt;span class="c1"&gt;# list of float (0...ALPHA_MAX)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;masks&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
        &lt;span class="n"&gt;alpha&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;masks&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;alpha&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;ALPHA_MAX&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;break&lt;/span&gt;
        &lt;span class="n"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;alpha&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;alpha&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;current&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;このアルゴリズムの特徴は、同じピクセル強度でもレイヤーの順番によって最終的なテクスチャに寄与する強度が変わったり、あるいは同じピクセル強度でも他のレイヤーの強度によって最終的な強度が変化するといった、予測不可能性を高めている点にあります。&lt;/p&gt;
&lt;p&gt;例えば、ピクセル強度0.2のレイヤーが5枚重なった場合でも、均等に強度が分配されるわけではありません。全体的により下のレイヤーが弱くなる傾向がありますが、一方で最大のレイヤーは上から2番目のものになるという特異な曲線を描いています（グラフ左上）。レイヤー間の強度が異なる場合でも同様で、概ね下のレイヤーの優先度を下げつつ、ある程度ピクセル強度を反映した結果が得られます（グラフ右側3つ）。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/starfish-future-world/mask-interaction.png"&gt;&lt;img alt="ピクセル強度とレイヤーの関係" height="696" src="/images/starfish-future-world/mask-interaction_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;!--
レイヤー1   レイヤー2   レイヤー3   レイヤー4   レイヤー5
0.2 0.2 0.2 0.2 0.2
0.038   0.153   0.288   0.319   0.199
0.3 0.3 0.3 0.3
0.161   0.377   0.36    0.1
0.4 0.4 0.4
0.32    0.48    0.199
0.3 0.25    0.2 0.15    0.1
0.111   0.259   0.303   0.225   0.099
0.1 0.15    0.2 0.25    0.3
0.007   0.07    0.236   0.385   0.3
0.3 0.1 0.3 0.1 0.3
0.067   0.156   0.335   0.24    0.2
--&gt;

&lt;p&gt;このような合成手法によって、単に色を足し合わせて平均化するよりも、カラフルでメリハリがある魅力的なテクスチャを得られるのです。以下の画像例では、右上部分のレイヤーがいずれも低い値になっていますが、緑色と青色が均等に混ざるわけではなく、後に足した2枚目の青い背景色がより強く反映されています。また、それ以外の左側や右下の領域については、各レイヤーの前景色が強く出ているのが分かります。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~合成手法の違いによる出力の変化" height="310" src="/images/starfish-future-world/difference-of-composition.png" width="750"&gt;&lt;/p&gt;
&lt;h2 id="starfish_2"&gt;Starfishを支える生成器&lt;/h2&gt;
&lt;p&gt;さて、Starfishにおけるテクスチャの合成方法について理解したところで、ここからは具体的な生成器の実装についてまとめていきます。現在Starfishに実装されている生成器は、Bubble・Coswave・Flatwave・Rangefrac・Spinflakeの5種類です。これらはいずれも以下の特徴を持ち、またお互いに異なる印象のパターンを出力できるように調整されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;外部から与えるパラメータを変化させることで、大きく異なるパターンを生成できる&lt;/li&gt;
&lt;li&gt;上辺と下辺、左辺と右辺がそれぞれなめらかに接続するパターンを生成できる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの性質を満たす生成器から得られたパターンを重ね合わせることで、デスクトップの壁紙のようなタイル表示に適した多様なテクスチャを得られるというわけです。&lt;/p&gt;
&lt;h3 id="bubble"&gt;Bubble&lt;/h3&gt;
&lt;p&gt;&lt;img alt="Bubble" height="256" src="/images/starfish-future-world/bubble.png" width="256"&gt;&lt;/p&gt;
&lt;p&gt;Bubbleは丸い泡のような塊で画面を埋めます。重力で細長く押し潰されているものや、他の塊と共に空間を充填するように膨らんでいるものなどを出力できます。指定できるパラメータは以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;泡オブジェクトの個数（8～32個）&lt;/li&gt;
&lt;li&gt;各泡オブジェクトの位置（XY座標についてそれぞれ0～1）&lt;/li&gt;
&lt;li&gt;各泡オブジェクトの大きさ（0～0.2）&lt;/li&gt;
&lt;li&gt;各泡オブジェクトの向き（0～90度）&lt;/li&gt;
&lt;li&gt;各泡オブジェクトの変形率（真円に対して0.25～4）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;各泡オブジェクトは、中心から離れるほど値が低くなり、境界線とその外側は0になるというぼんやりした泡のような楕円形の像を描きます。泡が重なって表示されないように、各点から最も近い泡オブジェクトの像のみ描画することで、上記の例のような泡同士が接する表現を得られます。また、テクスチャ領域をはみ出した泡オブジェクトも折り返して描画しているため、タイル状に敷き詰めても不自然な像になりません。&lt;/p&gt;
&lt;p&gt;このうち、各泡オブジェクトにおける位置を除くパラメータは、全ての泡オブジェクトで共有となる範囲からランダムに決定します。パラメータの範囲が狭ければ各泡オブジェクトは似たような形を描くので、試行の度に大きな変化が生まれやすくなるのです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~Bubbleにおけるパラメータによる全体像の違い" height="212" src="/images/starfish-future-world/bubble-difference.png" width="750"&gt;&lt;/p&gt;
&lt;h3 id="coswave"&gt;Coswave&lt;/h3&gt;
&lt;p&gt;&lt;img alt="Coswave" height="256" src="/images/starfish-future-world/coswave.png" width="256"&gt;&lt;/p&gt;
&lt;p&gt;Coswaveは、正弦波をベースにした波状のパターンで画面を埋めます。真円に近い形状や滑らかな波形を反映した退屈なテクスチャにならないよう、波形が途中で打ち切られたり歪んだりしたものを出力できるのが特徴です。また、タイル状に配置した際に周囲の領域と連続するように、左側・左上・上側の仮想的なテクスチャと混ぜ合わせています。&lt;/p&gt;
&lt;p&gt;Coswaveで指定できるパラメータは以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;正弦波の始点（XY座標についてそれぞれ0～1）&lt;/li&gt;
&lt;li&gt;正弦波の周期（1～26）&lt;/li&gt;
&lt;li&gt;正弦波の変形率（-2.5～-0.5 or 0.5～2.5）&lt;/li&gt;
&lt;li&gt;正弦波の変形方向（0～180度）&lt;/li&gt;
&lt;li&gt;正弦波の範囲調整方法（4種類のpack methodから選択）&lt;/li&gt;
&lt;li&gt;正弦波の歪み率（0.5～2）&lt;/li&gt;
&lt;li&gt;正弦波の加速率（1/64の確率で1～3）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上記パラメータのうち、pack methodは以下の4種類から選ばれます。正弦波は-1～1の範囲で生成されるため、ピクセル値である0～1の範囲に収まるようにスケールを調整したり折り返したりする必要があるのです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scale: 0～1に収まるように均等にスケールします。&lt;/li&gt;
&lt;li&gt;FlipSign: -1～0の範囲を正の値に折り返します。&lt;/li&gt;
&lt;li&gt;Truncate: -1～0の範囲に1を加えて正の値に調整します。&lt;/li&gt;
&lt;li&gt;Slope: 半周期（下り傾斜）のみ利用しつつ均等にスケールします。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="~pack methodによる出力の変化" height="212" src="/images/starfish-future-world/coswave-pack-method.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;また、歪み率は1から離れるほど、かつ変形率の絶対値が1から離れるほど波形が描く形状を歪めます。逆正接関数の引数を調整しているので、下図の通り45度付近のみ周期が大きく変化するのが分かるでしょう。角度をずらして波形を取得する都合上、変形率が1に近い場合は形状はほとんど変化しません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~歪み率の変化による出力の変化" height="285" src="/images/starfish-future-world/coswave-distortion.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;そして、加速率が適用された場合は始点から離れるにつれて周期が小さくなります。このような大きな変化がごくたまに（約1.5%）生じることで、さらにテクスチャの不確実性を高めることができます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="加速率が適用された場合の出力例" height="256" src="/images/starfish-future-world/coswave-accel.png" width="256"&gt;&lt;/p&gt;
&lt;h3 id="flatwave"&gt;Flatwave&lt;/h3&gt;
&lt;p&gt;&lt;img alt="Flatwave" height="256" src="/images/starfish-future-world/flatwave.png" width="256"&gt;&lt;/p&gt;
&lt;p&gt;Flatwaveは、複数の波形を重ね合わせた干渉縞のようなパターンを生成します。Coswaveと同様に正弦波をベースにした生成器ですが、Coswaveが1つの波紋から円形に近い出力を得られるのに対して、Flatwaveは2～4個の直線的な波形の組み合わせを利用するものです。Flatwaveで指定できるパラメータについては、階層的で複雑なので完全な列挙は省略します。&lt;/p&gt;
&lt;p&gt;Flatwaveにおける波形はCoswaveを直線的に広げたものであり、最も単純なものでは以下のような縞模様を生成します。さらに、50%の確率でCoswaveと同様のパラメータを元に波形を歪ませることで、正弦波のグラフのようなパターンに変換できるのです。基本波形が備える範囲調整方法がどのように出力に影響するかについては、Coswaveの例を参照してください。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~Flatwaveの波形を歪める処理の出力例" height="375" src="/images/starfish-future-world/flatwave-wavepacket.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;また、これらの波形をテクスチャ上でどのように混ぜ合わせるかについて、以下の5種類の手法から1つを選択します。いずれも異なる印象のパターンを生成できるので、最終的なテクスチャに多様性を与えられるでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MostExtreme: 各波形のうち、0または1に最も近いものを採用します。白黒のフレーク状のパターンが得られます。&lt;/li&gt;
&lt;li&gt;LeastExtreme: 各波形のうち、0.5に最も近いものを採用します。穏やかなパターンになりやすいです。&lt;/li&gt;
&lt;li&gt;Max: 各波形の最大値を採用します。前景色が強くなりやすいです。&lt;/li&gt;
&lt;li&gt;Min: 各波形の最小値を採用します。背景色が強くなりやすいです。&lt;/li&gt;
&lt;li&gt;Average: 各波形の平均値を採用します。各波形が重なって見えます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="~Flatwaveで選択できる干渉手法による出力の変化" height="385" src="/images/starfish-future-world/flatwave-iInterference.png" width="750"&gt;&lt;/p&gt;
&lt;h3 id="rangefrac"&gt;Rangefrac&lt;/h3&gt;
&lt;p&gt;&lt;img alt="Rangefrac" height="256" src="/images/starfish-future-world/rangefrac.png" width="256"&gt;&lt;/p&gt;
&lt;p&gt;Rangefracは、山の稜線や針葉樹のシルエットのようなフラクタル状のパターンを生成します。ここまでは球面や正弦波をベースにした比較的滑らかな図形が得られる生成器を紹介してきましたが、こちらはテクスチャにより細かく複雑な印象を与えることができます。&lt;/p&gt;
&lt;p&gt;Rangefracは独自の走査アルゴリズムに基づいて各点の値を逐次的に生成するので、前述したように画像全体の出力を決める分かりやすいパラメータはありません&lt;sup id="fnref:randomseed"&gt;&lt;a class="footnote-ref" href="#fn:randomseed" title="疑似乱数生成器のシードをパラメータとすることはできます。"&gt;3&lt;/a&gt;&lt;/sup&gt;。具体的には、周囲のピクセル値の範囲に収まるようにランダムな値を生成する &lt;em&gt;拡大&lt;/em&gt; 手法&lt;sup id="fnref:zoom"&gt;&lt;a class="footnote-ref" href="#fn:zoom" title="周囲の値に収まる範囲から取り出す点で拡大処理に似ていますが、通常の線形補間やバイキュービック法とは異なる非決定的かつ限定的な操作です。何もないところから複雑なパターンを見出す点で、むしろ拡散モデルなどと似ているかもしれません。"&gt;4&lt;/a&gt;&lt;/sup&gt;でビットマップを縦横2倍のサイズにする処理を、必要な回数だけ繰り返します。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Rangefracによって8回の仮想的な拡大処理を行った例" height="256" src="/images/starfish-future-world/rangefrac.gif" width="256"&gt;&lt;/p&gt;
&lt;p&gt;このように、Rangefracは数学的な曲線に基づかないパターンであり、生成時のパラメータとして走査回数の指定が必要です。1回で2ピクセル、2回で4ピクセル、4回で16ピクセルのテクスチャが得られます。Starfishはデフォルトで一辺が256ピクセルのテクスチャを生成するので、それに合わせて8回（2&lt;sup&gt;8&lt;/sup&gt;=256）の走査を行っています。これを超えるサイズのテクスチャが必要な場合は、線形補間などで適宜拡大しなければなりません。&lt;/p&gt;
&lt;h3 id="spinflake"&gt;Spinflake&lt;/h3&gt;
&lt;p&gt;&lt;img alt="Spinflake" height="256" src="/images/starfish-future-world/spinflake.png" width="256"&gt;&lt;/p&gt;
&lt;p&gt;Spinflakeは、木目や水流を思わせる比較的変化が大きいパターンで画面を埋めます。正弦波から細かく複雑な図形を生成しているという点で、Rangefracとそれ以外の数学的な曲線ベースの生成器の中間的な性能を持っているといえます。&lt;/p&gt;
&lt;p&gt;こちらもパラメータが少し複雑なので、解説は省略します。&lt;/p&gt;
&lt;h2 id="starfish_3"&gt;Starfishのつかいかた&lt;/h2&gt;
&lt;p&gt;本来のStarfishは、日々のデスクトップの壁紙に彩りを与えるために作られたユーティリティソフトです。しかし、このように多様かつ高品質なテクスチャを生成できるエンジンは、さらに多くのシーンで活躍できる可能性を秘めています。&lt;/p&gt;
&lt;h3 id="_2"&gt;壁紙として&lt;/h3&gt;
&lt;p&gt;まずは、本来の目的である壁紙としての利用を試しましょう。各プラットフォームで動作するStarfishがあればそちらから、または&lt;a href="https://xstarfish-rust-wasm.netlify.app/"&gt;jelatofishのブラウザ版&lt;/a&gt;からデスクトップの壁紙を設定できます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Windowsでタイル状に壁紙を設定したイメージ" height="463" src="/images/starfish-future-world/starfish-wallpaper.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;ここまで述べてきたとおり、Starfishで生成できるテクスチャは上下左右が滑らかに接続されるため、画面サイズや比率によらずデスクトップ全体が華やかなパターンで埋め尽くされます。毎日、毎時あるいは毎分新しいテクスチャを生成しても異なるパターンを楽しめるので、スタートアップやスケジューラで自動的に更新してもよいでしょう。&lt;/p&gt;
&lt;p&gt;なお、&lt;a href="https://github.com/amane-katagiri/jelatofish"&gt;jelatofish&lt;/a&gt;では現状コマンドラインオプションを実装していません&lt;sup id="fnref:jelatofish-save-only"&gt;&lt;a class="footnote-ref" href="#fn:jelatofish-save-only" title="オプションなしで実行するとカレントディレクトリに image.png を保存します。"&gt;5&lt;/a&gt;&lt;/sup&gt;が、簡単なインターフェースを書けばいつでも自由に組み込むことができます。&lt;/p&gt;
&lt;h3 id="sns"&gt;SNSのアバターとして&lt;/h3&gt;
&lt;p&gt;次に紹介するのは、テクスチャを敷き詰めずに1枚のサイズで活用する方法です。xstarfishでは直接壁紙を変更せずに画像ファイルを書き出すオプション &lt;code&gt;-o&lt;/code&gt; が用意されていますし、&lt;a href="https://xstarfish-rust-wasm.netlify.app/"&gt;jelatofishのブラウザ版&lt;/a&gt;や簡易なコマンドライン版も利用できます。&lt;/p&gt;
&lt;p&gt;Starfishの華やかなテクスチャは、SNSなどのアバターとして設定するのにも向いています。ただし、1枚のサイズで切り抜く場合はどの領域を選ぶかによく注意しなければなりません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="~テクスチャを切り抜く周期と印象の変化" height="280" src="/images/starfish-future-world/avatar-difference.png" width="528"&gt;&lt;/p&gt;
&lt;p&gt;上記の例では、元のテクスチャのまま切り出したものに対して、テクスチャを4分割して入れ替えた――周期を半分ずらした――ものでは、ぼんやりと魚のように見える緑色の領域が生まれています。これは、タイル状に敷き詰める場合は全く問題になりませんが、1枚のみ使用する場合（特に丸く切り抜かれるケースで）では大きく印象が変わります。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://xstarfish-rust-wasm.netlify.app/"&gt;jelatofishのブラウザ版&lt;/a&gt;では、このようなケースに対応するために、X軸とY軸およびその両方について半周期ずつずらしたバージョンを保存できるようにしています。同様の機能をコマンドライン版でも実装予定です。&lt;/p&gt;
&lt;h3 id="_3"&gt;その他いろいろな素材として&lt;/h3&gt;
&lt;p&gt;さらに、デスクトップの壁紙と同じように、本の表紙、ステッカー、Tシャツ、ハンカチ、クッション――様々な場所でテクスチャを敷き詰めた背景素材として利用することもできます。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://suzuri.jp/amane_katagiri/14246016/cushion/free/white"&gt;&lt;img alt="Starfishテクスチャ（やさい）を用いたクッションのイメージ" height="300" src="/images/starfish-future-world/cushion-veg.jpg" width="300"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://suzuri.jp/amane_katagiri/14247787/towel-handkerchief/l/white"&gt;&lt;img alt="Starfishテクスチャ（なみ）を用いたタオルハンカチのイメージ" height="300" src="/images/starfish-future-world/towel-sea.jpg" width="300"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://suzuri.jp/amane_katagiri/14248472/full-graphic-t-shirt/xl/white"&gt;&lt;img alt="Starfishテクスチャ（えび）を用いたTシャツのイメージ" height="300" src="/images/starfish-future-world/shirt-shr.jpg" width="300"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なお、Starfishがデフォルトで生成する一辺が256ピクセルのテクスチャは、300～350dpiでせいぜい2cm程度の範囲しか覆うことができません。より広く複雑なパターンが必要な場合は、テクスチャ自体のサイズを大きくする必要があります。jelatofishではまだ対応していませんが、xstarfishでは &lt;code&gt;-g&lt;/code&gt; オプションで生成するテクスチャの大きさを指定できます&lt;sup id="fnref:rangefrac-limit"&gt;&lt;a class="footnote-ref" href="#fn:rangefrac-limit" title="ただし、Rangefracは一辺が256ピクセル程度の情報しか持っていないので、Rangefracを含んだ大きなテクスチャを生成すると像がぼやけます。"&gt;6&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;h2 id="_4"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Starfishはデスクトップの壁紙としてタイル状に敷き詰めやすいテクスチャを生成するユーティリティソフトであり、いろいろな言語・環境に移植されています。&lt;/li&gt;
&lt;li&gt;Starfishでは、多様かつ高品質なテクスチャを出力するために、5種類の生成器から得られる2～6つのパターンを独自のアルゴリズムで混合しています。&lt;/li&gt;
&lt;li&gt;Starfishは本来デスクトップを彩るためのユーティリティですが、そのテクスチャはアバターや背景素材として利用できる多くの可能性を秘めています。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:starfish-color"&gt;
&lt;p&gt;Starfish内ではbackground / foregroundと呼ばれています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:starfish-color" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:different-param-same-generator"&gt;
&lt;p&gt;異なるパラメータの同じ生成器を含む。&amp;#160;&lt;a class="footnote-backref" href="#fnref:different-param-same-generator" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:randomseed"&gt;
&lt;p&gt;疑似乱数生成器のシードをパラメータとすることはできます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:randomseed" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:zoom"&gt;
&lt;p&gt;周囲の値に収まる範囲から取り出す点で拡大処理に似ていますが、通常の線形補間やバイキュービック法とは異なる非決定的かつ限定的な操作です。何もないところから複雑なパターンを見出す点で、むしろ拡散モデルなどと似ているかもしれません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:zoom" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:jelatofish-save-only"&gt;
&lt;p&gt;オプションなしで実行するとカレントディレクトリに &lt;code&gt;image.png&lt;/code&gt; を保存します。&amp;#160;&lt;a class="footnote-backref" href="#fnref:jelatofish-save-only" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:rangefrac-limit"&gt;
&lt;p&gt;ただし、Rangefracは一辺が256ピクセル程度の情報しか持っていないので、Rangefracを含んだ大きなテクスチャを生成すると像がぼやけます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:rangefrac-limit" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>2023/07/03～2023/08/10</title><link href="https://ama.ne.jp/post/report-20230810/" rel="alternate"/><published>2023-08-10T11:58:00+09:00</published><updated>2023-08-10T11:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-08-10:/post/report-20230810/</id><summary type="html">&lt;p&gt;2023/07/03～2023/08/10のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;できごと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;できごと&lt;/h3&gt;
&lt;h4 id="_3"&gt;&lt;a href="https://fedibird.com/@amane"&gt;かたぎりあまね&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;主たるSNS活動場所を&lt;a href="https://twitter.com/amane_katagiri"&gt;X（旧Twitter）&lt;/a&gt;から&lt;a href="https://fedibird.com/@amane"&gt;Fedibird&lt;/a&gt;に移動しました。&lt;ul&gt;
&lt;li&gt;今後の活動に興味のある方に向けて、&lt;a href="/"&gt;トップページ&lt;/a&gt;にFedibirdの招待リンクを置いています。ぜひご利用ください。&lt;/li&gt;
&lt;li&gt;Xでの活動については、5年ほど前から閉鎖に向けた長期的計画に入っており、当該アカウントはいつでも消える可能性があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/oplant"&gt;たなか麦&lt;/a&gt;先生作の&lt;a href="/appendices/media-kit/amane_750x750.png"&gt;可愛くて素敵なアイコン&lt;/a&gt;ができました&lt;sup id="fnref:no-cc-by"&gt;&lt;a class="footnote-ref" href="#fn:no-cc-by" title="原画およびその派生物はCC BY 4.0でライセンスされていません。"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;ul&gt;
&lt;li&gt;髪やリボンにあまねけ！のイメージカラーを載せたノーブルでアンニュイな子です。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.park-harajuku.com/topics/3079/"&gt;むぎ絵アイコン受注会&lt;/a&gt;という企画で生まれました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;いろいろなことがあり、転職することになりました。8月末までは有休消化で毎日暇しているので、気軽に遊んでください。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_4"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;あまねけ！が配信しているフィードについて説明するページを用意しました。詳しくは&lt;a href="/feeds/"&gt;フィード一覧&lt;/a&gt;をご覧ください。&lt;ul&gt;
&lt;li&gt;あまねけ！では、適切なフィードを通じて記事の更新を必要な範囲で届けられるように努力しています。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pasokey.net/notes/9gxbemsdw9"&gt;人間から見やすいフィードのリンクがあると便利&lt;/a&gt;という旨の投稿を参考にしました。いつでもヘッダメニューから参照可能です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ページ上部に表示される広告を整理しました。記事カテゴリの説明や関連サービス紹介などが増えています。&lt;/li&gt;
&lt;li&gt;「読んだ」ボタンを押したあとの通知で、シェア用のリンク付きテキストを直接コピーできるようにしました。&lt;ul&gt;
&lt;li&gt;クリックまたはタップでテキスト全体を選択可能になっています。&lt;a href="/post/report-20210311/"&gt;2021年2月&lt;/a&gt;から実験的に設置していたものと同じです。&lt;/li&gt;
&lt;li&gt;特定のSNSを想定しないユニバーサルな機能で、分散SNSでの共有にも便利です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SNS活動場所の移行にともなって &lt;code&gt;#amanejp&lt;/code&gt; をあまねけ！の公式ハッシュタグとしました。&lt;ul&gt;
&lt;li&gt;各種分散SNSでの検索機能の弱さに対応するため、あまねけ！に関する投稿を検索する際にこのハッシュタグを利用したいと考えています。&lt;/li&gt;
&lt;li&gt;シェアテキストとXでのシェアボタンには、既にこのハッシュタグが含まれています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;あまねけ！のデフォルトOGP画像として、faviconと同様の画像を設定しました。&lt;ul&gt;
&lt;li&gt;濃い紫色（ &lt;a href="/media-kit/"&gt;#91005b&lt;/a&gt; ）の背景に白文字で「ア」と配置したものです。&lt;/li&gt;
&lt;li&gt;各記事でOGP画像が設定されていない場合にこちらが表示されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/amane-katagiri/amanejp-portable/releases"&gt;あまねけ！のポータブルWebサーバー&lt;/a&gt;がダウンロードできなかった問題を修正しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:no-cc-by"&gt;
&lt;p&gt;原画およびその派生物は&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-cc-by" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="report"/></entry><entry><title>2023/06/05～2023/07/03</title><link href="https://ama.ne.jp/post/report-20230703/" rel="alternate"/><published>2023-07-03T00:16:00+09:00</published><updated>2023-07-03T00:16:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-07-03:/post/report-20230703/</id><summary type="html">&lt;p&gt;2023/06/05～2023/07/03のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;「読んだ」ボタンを押したあとの通知に、はてなブックマークへリンクをシェアできるボタンを追加しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/anmin7piece/status/1673660769970315264"&gt;Twitterでの要望&lt;/a&gt;を受けた実験的な試みです。共有先サービスのリストは、いつでも予告なく変わる追加・削除される場合があります。&lt;/li&gt;
&lt;li&gt;はてなブックマークをはじめとするソーシャルブックマークは、勘違いや曲解から生じたコメントに対する補足や訂正が難しく、記事の意図とは異なる印象を与える可能性があるため、積極的な利用はおすすめしません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;「読んだ」ボタンを押したあとの通知に、対象記事のURLを含むレシートが印刷される旨を追加しました。&lt;ul&gt;
&lt;li&gt;リンク先はかつてツイッターに投稿した、&lt;a href="https://twitter.com/amane_katagiri/status/1332537859803267072"&gt;スクレイピングで「読んだ」ボタンを全部押された回&lt;/a&gt;のものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;h4 id="_4"&gt;あまねけ！&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/kiritani/"&gt;桐谷梨花のキャンディ日記&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;東京に住んでいる架空のエッセイストによる架空のエッセイ三連作です。&lt;/li&gt;
&lt;li&gt;それぞれどの部分が架空で、どの部分が実在か味わいながら読んでくださいね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/goodbye-bunfree/"&gt;さようなら、大きくなりすぎた文学フリマ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/bunfree-lovehotel-1/"&gt;ラブホパネルとフィッシング&lt;/a&gt;あたりから続く文フリエッセイシリーズです。&lt;/li&gt;
&lt;li&gt;陰湿な内容のせいか、&lt;a href="https://b.hatena.ne.jp/entry/s/ama.ne.jp/post/goodbye-bunfree/"&gt;はてなブックマーク&lt;/a&gt;ユーザーの共感を得て200ブクマを超えました。ありがとうございます。&lt;/li&gt;
&lt;li&gt;あまりに対象外の範囲まで届いてしまったので、偉い作家先生からの言及を掘り下げた&lt;a href="/post/goodbye-bunfree/#220230702"&gt;おまけ補足&lt;/a&gt;を追記しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>さようなら、大きくなりすぎた文学フリマ</title><link href="https://ama.ne.jp/post/goodbye-bunfree/" rel="alternate"/><published>2023-06-27T18:51:00+09:00</published><updated>2023-07-02T18:07:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-06-27:/post/goodbye-bunfree/</id><summary type="html">&lt;p&gt;スーパーお気持ち表明&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#20230627"&gt;本文（2023/06/27）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#220230702"&gt;補足・注意喚起・お気持ち表明2（2023/07/02）&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;導入&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#120230627"&gt;皆月さんのお怒り 第1期（2023/06/27）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#220230628-20"&gt;皆月さんのお怒り 第2期（2023/06/28 20時台）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#320230628-23-20230629"&gt;皆月さんのお怒り 第3期（2023/06/28 23時台 ～ 2023/06/29）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#420230630"&gt;皆月さんのお怒り 第4期（2023/06/30）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="20230627"&gt;本文（2023/06/27）&lt;/h2&gt;
&lt;p&gt;文学フリマは大きくなりすぎた。少なくとも、私たちにとっては。&lt;/p&gt;
&lt;p&gt;自分が参加している即売会が成長するのは素晴らしいことです！　中には、無条件でそう思う人もいるかもしれない。もちろん、来場者の立場なら――知らない人に揉まれて汗を押し付けられるのが嫌でなければ――効率よく一度にたくさんのサークルを回れるのはいいことだ。しかし、サークル参加の立場であってもなお、即売会の成長を手放しに賛美している者が多いのは驚きである。まるで、 &lt;em&gt;自由&lt;/em&gt; という文字に騙され、新自由主義に賛同する労働者階級のように。&lt;/p&gt;
&lt;p&gt;コロナ禍は文学フリマにも大きな弊害をもたらした。&lt;a href="https://bunfree.net/event/tokyo30/"&gt;第三十回文学フリマ東京&lt;/a&gt;は中止、その次の&lt;a href="https://bunfree.net/event/tokyo31/"&gt;第三十一回文学フリマ東京&lt;/a&gt;は中止は免れたが開場のみ1時間繰り下げられ、今もその余波が残っている。最も大きな衝撃は、文学フリマ終了後の&lt;a href="https://bunfree.net/event/tokyo29/#i-17"&gt;懇親会&lt;/a&gt;がなくなってしまったことだ。&lt;/p&gt;
&lt;p&gt;そんなコロナ禍の中でも文学フリマは &lt;em&gt;順調な成長&lt;/em&gt; を続け、先日開催された&lt;a href="https://bunfree.net/event/tokyo36/"&gt;文学フリマ東京36&lt;/a&gt;では、帰途につく人たちで最寄りの&lt;a href="http://www.tokyo-monorail.co.jp/guidance/ryutsucenter/"&gt;流通センター駅（東京モノレール）&lt;/a&gt;が悲鳴を上げるほどにいっぱいになった。開催時間が減り、&lt;a href="https://twitter.com/thaliya01/status/1660654835610402816"&gt;納豆のような匂いを放つカビご飯が配られ&lt;/a&gt;、さらには懇親会の代わりに電車で汗を塗り合うパーティが開かれ――通常人であればある種の地獄だと感じるはずだが、10780人という過去最多の来場者数を告げる公式アナウンスが流れると、通路はおろかブースの中からも拍手喝采が巻き起こった。それはなぜ？&lt;/p&gt;
&lt;p&gt;もちろん、同人誌即売会がおよそ可処分時間の奪い合いで成り立っているのは、サークル参加の経験があればよく分かるだろう。同じサークルの2冊の作品を同時に読むことはできないし、離れた2つのサークルに同時に立ち寄ることはできないからだ。SNSなら指一本でスクロールとタップすれば足りるような動作を、ここでは自分の手や足や口をきちんと動かしてせねばならない。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://business.nikkei.com/atcl/gen/19/00081/070600220/"&gt;可処分時間&lt;/a&gt;というのは、ふつうは1日のうちで自分の判断で自由に使える時間を指し、SNSやゲーム、動画サービスなどの市場でよく使われている。給料から税金や保険料を差し引いた可処分所得から着想を得た概念だろうが、所得とは違って誰しもが平等な時間からやりくりしなければならない点で異なる。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.bigsight.jp/"&gt;東京ビッグサイト&lt;/a&gt;や&lt;a href="https://www.pio-ota.net/"&gt;大田区産業プラザPio&lt;/a&gt;、&lt;a href="https://www.trc-inc.co.jp/"&gt;東京流通センター&lt;/a&gt;などの会場を貸し切って開かれる同人誌即売会は、開場から閉場までたいてい5～6時間程度の猶予しかない。つまり、即売会における可処分時間は最大でも6時間と考えることができる。人によっては早く帰るかもしれないし、途中で休憩すればもっと短くなる。&lt;/p&gt;
&lt;p&gt;さて、&lt;a href="https://bunfree.net/event/tokyo36/"&gt;文学フリマ東京36&lt;/a&gt;は1435サークルが出店したという。これは、私が7年前に初めてサークル参加した&lt;a href="https://bunfree.net/event/tokyo23/"&gt;第二十三回文学フリマ東京&lt;/a&gt;の746サークルの2倍だ。しかし、コロナ禍以後の文学フリマは開場のみ1時間繰り下げられたから、1サークルあたりにかけられる時間は29.0秒間から12.5秒間と約43.3%に減少している（かつては2.3倍もあった、と表現したほうが明快かもしれない）。&lt;/p&gt;
&lt;p&gt;おや？　いま、私は開場から閉場まで全ての時間を全てのサークルに立ち寄って平等に消費する奇特な存在を自然に仮定したわけだが、これに違和感を覚えただろうか？　変だ、と思うのは非常によいことだ。その気持ちこそが、即売会が大きくなってもあまり嬉しくない現象の正体に他ならない。&lt;/p&gt;
&lt;p&gt;では、全てのサークルに平等に立ち寄らないあなたは、どのようにして立ち寄るべきサークルを決めたのだろうか？　好きなジャンル（島ともいう）、知人がやっているサークル、有名なサークル、SNSで告知がバズっていたサークル……いろいろな方法で絞り込むことができる。会場マップに印を付けて、途中で何冊か面白そうなものがあれば買えるくらいの予算を持っていざ会場へ。すると不思議、興味のないサークルは平凡な書割に、興味のない島は単なる通路に変わってしまう。&lt;/p&gt;
&lt;p&gt;競争はいいことだ。この傾斜こそが、即売会の成長を喜べるサークルとそうでないサークルを分けていくから。&lt;/p&gt;
&lt;p&gt;もう少し掘り下げてみる。即売会の成長とサークルの競争にどのような関係があるか考えるために、即売会の対象ジャンルに興味がある読者の潜在空間Kを仮定してみよう。このとき、ある即売会EはKから一定数を来場者として取り出す写像といえる。すると、あるサークルCもKから購入者を取り出す写像と考えられるだろう。これらを組み合わせると、即売会EでサークルCがどれだけの購入者を集められるかが明らかになる。&lt;/p&gt;
&lt;p&gt;&lt;img alt="潜在空間Kの中にある即売会EとサークルCの重なりを示す図と式 int E(n,p)C_i(p)dp" height="563" src="/images/goodbye-bunfree/kec-area.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;即売会が成長するとは、読者の潜在空間を広くカバーできるということだ。そしてそれは参加サークル数の拡大によって成し遂げられる傾向にあるらしい。広く来場者が集まれば、各サークルの潜在的な購入者も多く集まるのだから、単純に考えれば全員が得をするはず。しかし、実際はそうならない。当然、開催時間はサークル数に応じてスケールしないからだ。&lt;/p&gt;
&lt;p&gt;即売会EとサークルCが重なっても必ずしもマッチしないことを踏まえて、ある読者がある即売会に出店したあるサークルに立ち寄る時間Aについても導入しよう。来場者がどのように時間を使うかを考えると、いくら即売会を成長させても各サークルの利益が増えるとは限らないのが分かる。以下の図では、その事実を時間を示す図形の薄さで表現した。&lt;/p&gt;
&lt;p&gt;&lt;img alt="読者がどのように時間を使うかというパラメータを導入した式 int E(n,p)C_i(p)A(e,c_i,p)dp" height="143" src="/images/goodbye-bunfree/keca.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;サークルに関する仮定が全くなければ、参加サークル数に逆比例する――開催時間をサークル数で割った――ような関数になるはずだ。これはまさに、先ほど出てきた全てのサークルに平等に立ち寄る奇特な存在である。この場合、即売会が無限に成長するとそれぞれのサークルにかけられる時間は0に収束する。&lt;/p&gt;
&lt;p&gt;しかし実際は、どんなジャンルか、知り合いかどうか、事前の宣伝はどうか、当日のディスプレイはどうかといったサークルの特徴があり、それに応じてサークルにかけられうる時間は変わる。隣に配置されたサークルによる増減があるかもしれないし、列をなすようなサークルならより多くの時間をかけねばならない。&lt;/p&gt;
&lt;p&gt;注意しなければならないのは、それぞれの読者がかけられる時間の合計は開催時間を超えられないことだ。全てのサークルに全く無駄なインターバルなく12.5秒間ずつ立ち寄っても得られるものは少なく、また会場の人口密度が上がればその作戦を完遂すること自体が現実的ではなくなる。ふつうはそれぞれの来場者がサークルに順位を付けて周り、その周囲にラプラス分布のような広がりを持った移動計画を立てるはずだ。つまり、 &lt;em&gt;書割&lt;/em&gt; のサークルには立ち寄らず、その時間を特定のサークルに振り分けている。&lt;/p&gt;
&lt;p&gt;では、その移動計画の上位に選ばれるように努力すればいいんですね？　その通り。私にそれほどの熱気が残っていれば、今すぐ次回文学フリマの申し込みを済ませ、こんな記事は書かずに &lt;em&gt;文学&lt;/em&gt; で有名になる手段を模索していただろう。でも、そうはならなかった。私たちのサークルは、文学フリマが成長すればするほど時間範囲の面積が薄くなっていった。&lt;/p&gt;
&lt;p&gt;こうも開催規模が大きくなると、当日の宣伝やブースでの展示で何かをアピールするには遅すぎる。来場者は事前にSNSでの告知を調べ、Webカタログを眺め、それらの魅力を比較して移動計画を立てるほうが得られるメリットが大きい。すると、ブースでの展示は購買意欲には無意味か、計画にないサークルとして参考程度に眺めて通り過ぎるだけだ。サークルに興味のない人の爪先は決してブースには向かないので、簡単な画像認識でも識別できる。&lt;/p&gt;
&lt;p&gt;同人誌即売会の移動計画に食い込むためにインターネット・バズ・パワーが必要なら、綺麗にブースを飾り付けても誰も見向きしないのなら、なぜ誰もが面倒で疲れる即売会に向かうのか分からなくなる。リアルで会って交流したい？　オフラインならではの魅力がある？　もしそうならば、開催時間が減らされ、懇親会まで消された文学フリマに賞賛を送るのは今すぐやめたほうがいい。おそらく、彼らは最後にあなたの敵になるだろうから。&lt;/p&gt;
&lt;p&gt;即売会が成長して恩恵を受けられるのは、主催と大多数の来場者と、あとは少数のサークル参加者だけである。それ以外は、じわじわとサークル参加費対効率を下げながらも笑顔で成長を賛美して拍手喝采するしかない。平凡な書割に許されるのはそれくらいだ。&lt;/p&gt;
&lt;p&gt;私が初めて同人誌即売会にサークル参加したのは、2015年の夏のことだった。&lt;a href="https://www.comiket.co.jp/info-a/C88/C88info.html"&gt;C88&lt;/a&gt;――コミックマーケットというなんとも広く大きな概念名の即売会は、やはりその名の通り様々なジャンルの創作を包摂する（少なくともしたいと思っている）歴史を持っていた。そうでなければ、胡乱なエッセイをホチキスで留めただけの無料の何かを頒布する機会は得られなかったから。&lt;/p&gt;
&lt;p&gt;でも、私たちが最初にコミックマーケットへのサークル参加を選んだのは、即売会に並ばずに入場できるからだったし、与えられた机に冊子の体をなした何かを並べられればそれでよかった。実態はほとんどダミーサークルに近かったと思う。だから、実は当時の作品は&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。&lt;/a&gt;の歴史には残っていない。&lt;/p&gt;
&lt;p&gt;その次の&lt;a href="https://www.comiket.co.jp/info-a/C89/C89info.html"&gt;C89&lt;/a&gt;では、印刷所に頼んだきちんとした体裁の作品を頒布した（&lt;a href="https://hentaigirls.net/post/c89/"&gt;参考&lt;/a&gt;）。来場者の需要やアピールしやすい魅力を研究したものではなく、私たちが書きたいものを書いただけの &lt;em&gt;文学作品&lt;/em&gt; だ。しかし、コミックマーケットの一次小説・詩歌ジャンルに大きな需要はないので、自サークルどころか島全体へ立ち寄る人が少なかった気がする。それ以降、気まぐれでアニメ島に出店した&lt;a href="https://www.comiket.co.jp/info-a/C94/C94info.html"&gt;C94&lt;/a&gt;を最後にコミックマーケットへの参加はしていない。その頃にはもう、エッチな同人誌の島にいち早く飛び込める嬉しさをあまり感じなくなっていた。&lt;/p&gt;
&lt;p&gt;コミックマーケットと並行して文学フリマへの参加を始めたのは、コミックマーケットよりは &lt;em&gt;文学作品&lt;/em&gt; の居場所があると思ったからだ。当時は、長蛇の列をなすような即売会ではなく、並ばずに入場できることによるメリットはほぼなかった。単に、私たちが書きたいものを売り出すにはちょうどいい機会だったのだ。そして、少なくともコロナ禍より前は、需要や魅力を気にせずに書かれた作品がたくさん集まる場所だったと思う。&lt;/p&gt;
&lt;p&gt;次回、&lt;a href="https://bunfree.net/event/tokyo37/"&gt;文学フリマ東京37&lt;/a&gt;の募集予定は2000ブースに増えた。前回の1.4倍で、7年前と比べれば2.7倍だ。しかし、もう需要や魅力を気にしない身勝手な作品の居場所はない。今でも訴求力のある風景写真やコスプレ女性のポートレート集を主としたサークルが出店しているし、文章作品でさえ素敵なイメージ画を添えた表紙や &lt;em&gt;エモい&lt;/em&gt; ポスターはもちろん、SNSでの宣伝にも力を入れなければ、移動計画の候補にすら入らなくなった。いずれは、 &lt;em&gt;文学をテーマにした&lt;/em&gt; 漫画やイラスト集が幅を利かせる未来さえ見えてしまうのは、私の想像力が強すぎるからだろうか。&lt;/p&gt;
&lt;p&gt;世界は可処分時間の奪い合いで進化する。きっと同人誌即売会もそうだと思う。しかし、文学フリマは大きくなりすぎてしまった。インターネットが大好きなあなたにとっては、むしろいいことなのかもしれない。&lt;/p&gt;
&lt;h2 id="220230702"&gt;補足・注意喚起・お気持ち表明2（2023/07/02）&lt;/h2&gt;
&lt;h3 id="_1"&gt;導入&lt;/h3&gt;
&lt;p&gt;この記事をお読みになった方の中には、「なんてダサいやつだ！　フォロワーに晒し上げてみんなで笑ってやろう！　ネットの海に晒し上げて一生残してやろう！」という義憤にも似た怒りに包まれながら記事をシェアする指を動かそうとしている方もいるでしょう。実際、「あらゆるWebページに対して勝手な説教を垂れたりその説教を一覧表示できる陰湿人間御用達サービス」こと&lt;a href="https://b.hatena.ne.jp/entry/s/ama.ne.jp/post/goodbye-bunfree/"&gt;はてなブックマーク&lt;/a&gt;に寄せられた反応の中にも、とりあえず悪い印象を残すためだけの曖昧で抽象的な中傷がちらほら見られます。&lt;/p&gt;
&lt;p&gt;しかし、みなさんにはこのような &lt;em&gt;感情の無駄遣い&lt;/em&gt; をせず、もっと有用で価値のある時間の使い方をしてほしいのです。&lt;/p&gt;
&lt;p&gt;このたび、残念なことに上記はてなブックマークへの反応よりはるかに強い怒りを典型的なインターネット薄ら笑いで表明するアカウントが出てきてしまったので、勘違いや誤りを指摘しつつこの節で紹介します。我を忘れてこの記事をシェアする前に、あなたの義憤や怒りをいったん冷静に分析していただきたいところです。&lt;/p&gt;
&lt;p&gt;今回取り上げるアカウントは、「&lt;a href="https://blog.bi3.jp/"&gt;皆月蒼葉&lt;/a&gt;」と名乗る滋賀県出身のSF小説作家さんです（何かの文学賞を受賞している偉い作家先生のようです）。TwitterとMastodonでは「蕎麦」という名前を使っているとのこと。記事執筆時点では、Twitterで野球の実況やぼっち・ざ・ろっく！のイラストツイートのシェア、毒にも薬にもならない手描きの日記画像のアップロードなどの活動をしています。後半の主張を見ると、恋人や友だちに恵まれ、仕事も上手くいっていて、犬を飼っている犬派の方のようですね。&lt;/p&gt;
&lt;p&gt;皆月さんからいただいたお怒りは「承認欲求ダサい」「自意識ダサい」をベースとする少し古めの匿名掲示板にありがちな生きづらいマインドを基礎にしていて、年齢がある程度高いことを窺わせます。レスバトルの手法も、相手より精神的優位に立つことのみを追求した「論点ずらし」「誤解を恐れない決めつけと強弁」「余裕アピール」などの古典的な手法に支えられています。先日、&lt;a href="https://note.com/wakari_te/n/n79a5aa48098f"&gt;【対談】菅野完×小山（狂）　─「男性差別」は存在するのか？─ &lt;/a&gt;を読みましたが、ほんのりとこのような噛み合わなさを感じる内容です。このような方に&lt;a href="/"&gt;あまねけ！&lt;/a&gt;の記事がリーチしたのは一種の悲劇でした。&lt;/p&gt;
&lt;h3 id="120230627"&gt;皆月さんのお怒り 第1期（2023/06/27）&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;自分の同人誌が大勢の人間の目にとまるよう努力することもせず、文フリが大きくなりすぎて自分のサークルが無視されるようになったなどと主張するの、端的に言って”クソダサい”な……&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1673661801404289026"&gt;蕎麦（@m_soba）:1673661801404289026&lt;/a&gt;（2023/06/27 20:57）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;なんか必然性もなく数式とかまで使ってそういうこと言ってるの、ダサすぎて涙が出てくる&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1673661917477363715"&gt;蕎麦（@m_soba）:1673661917477363715&lt;/a&gt;（2023/06/27 20:57）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;さっきのはこの記事への悪口なんですが、読むだけで「あっ、この人の本おもしろくないんだろうな……」と感じさせてくれるスモーキーな味わいがある /* この記事へのリンク */&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1673662759588839425"&gt;蕎麦（@m_soba）:1673662759588839425&lt;/a&gt;（2023/06/27 21:01）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;これら2023/06/27のツイートを第1期とします。第1期の特徴は、「クソダサい」「スモーキーな味わい」などといった具体性のない中傷での精神的優位性の確保です。第1期の特徴と言いつつ、最後までこのレスバトルテクニックが端々に散りばめられています。目の前に文章があるのに、どこがどうダサく、どこがどうスモーキー（ってそもそも何？）なのか示しながら説得性を持たせることを避け、悪い印象を与えて中傷することだけを目的としています。匿名掲示板ではまだまだよく見かけるマインドですが、Twitterでまだこのようなアカウントが凍結されていなかったのは、X社の言論の自由を支える姿勢を補強する根拠になるかもしれません。&lt;/p&gt;
&lt;p&gt;こう言うとおそらく予想できるのが「そこまで労力をかけて反論する価値のある記事じゃねえよ」という反論なのですが、そこまで分析する価値がないのに悪口だけは言いたいって、あまりに怒りに取り憑かれすぎていますよね。作家としてこの記事に一家言あったようですが、&lt;a href="https://blog.bi3.jp/"&gt;サイト&lt;/a&gt;の自己紹介を見るまで作家さんだとは全く予想できませんでした。&lt;/p&gt;
&lt;p&gt;あなたはどうですか？　とにかくただ悪口だけ言えれば満足？&lt;/p&gt;
&lt;p&gt;また「涙が出てくる」とありますが、おそらく涙は出ていません。カッコいい作家さんは、人の記事ひとつで涙を流すなんてクソダサいことはしないはずですからね。インターネット特有の大げさ表現なら、震えも止まらなくなっていて欲しかったところです。&lt;/p&gt;
&lt;h3 id="220230628-20"&gt;皆月さんのお怒り 第2期（2023/06/28 20時台）&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;昨日のくっそダサい物書きかぶれさんから直接反応をいただいてたみたいなんだけど、反応があまりにダサすぎて直接反応し返すの躊躇われるので、ここは矛を収めておいてやろう&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674015272976654345"&gt;蕎麦（@m_soba）:1674015272976654345&lt;/a&gt;（2023/06/28 20:21）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;努力してないのは文面見る限り明らかだし、そこをどうこう言われるのは努力不足すら認識できていないのか……と心配になるな。自主監視云々についても、僕は流れてきたRTを読んで反応しただけなのでなんも監視しとらんしお門違い。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674015645212770304"&gt;蕎麦（@m_soba）:1674015645212770304&lt;/a&gt;（2023/06/28 20:23）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;次の日。前日の雑語りでスッキリしていたところで私のリツイート通知に気付き、またむくむくと怒りを思い出してきたのでしょう。どのように言及されているのか気になって、こちらのツイートを直接見に来ていただいたみたいです。ここでも「くっそダサい」「物書きかぶれさん」「ダサすぎて直接反応し返すの躊躇われる」といった優位性確保の鳴き声は欠かしません。&lt;/p&gt;
&lt;p&gt;えーと「努力してないのは文面見る限り明らか」ですか？　それ、どこの話でしたっけ？　勝手な読解をさも当然みたいに書かないでほしいなあ。&lt;/p&gt;
&lt;p&gt;ここで「自主監視云々」と出てきたのは、私の以下のツイートを自分に対する言及と勘違いした致命的な誤読のようでした。なぜ致命的なのかというと、後半で私が皆月さんのツイートを閲覧し、リツイートしている点について「監視ダメとか言っといてお前もやってるやん笑」という旨で嘲笑しているのですが、それらの根拠が崩れてしまうからです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;あらゆるWebページに対して勝手な説教を垂れたりその説教を一覧表示できる陰湿人間御用達サービスにロックオンされており、厳しい&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1673708833234120706"&gt;かたぎりあまね（@amane_katagiri）:1673708833234120706&lt;/a&gt;（2023/06/28 00:04）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;インターネットにある程度詳しい方はお分かりかと思いますが、これはホットエントリに載りつつあった&lt;a href="https://b.hatena.ne.jp/entry/s/ama.ne.jp/post/goodbye-bunfree/"&gt;はてなブックマーク&lt;/a&gt;に対するものです（最終的に200件程度に収まりました）。このツイートは皆月さんのツイートやそれを私がリツイートしてから2～3時間ほど離れており、その間に何か別の出来事があったのではないかと考える余地があるはずで、後半に論拠として使うならなおさら妥当性を検証すべきだったでしょう。&lt;/p&gt;
&lt;p&gt;仮に、たとえこれがはてなブックマークに対するものだと理解できなくても、ツイッター上では既に皆月さん以外の言及もいくつか存在しており、「お門違い」といったまるで自分だけに向けられた言葉であるような表現は全くの誤りです。もちろん「僕は流れてきたRTを読んで反応しただけなので」というのも、「自分は余裕、相手は必死」という構図を作るためのレスバトルしぐさですね。&lt;/p&gt;
&lt;p&gt;常に自分に目線が向いていると勘違いすると、このような致命的な誤りを犯してしまいます。みなさんにはこのような誤りをしてほしくありませんが、もしかしてもうやりかけてますか？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;マッチョってこういう人がよく使いたがる修辞なんだけど、そもそも「同人誌即売会で読まれたい、上に行きたい」っての自体がマッチョな意思を内包してません？自己矛盾ですよ。結局頭のよさそうなこと言ってみたいだけの子供なんだよな。文中の数式がそれをよう物語っとる。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674016064106295296"&gt;蕎麦（@m_soba）:1674016064106295296&lt;/a&gt;（2023/06/28 20:25）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ちなみに、言及先と思われる「マッチョ」を含む私のツイートはこちらです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;こういう記事を「努力もしないで」「クソダサい」「スモーキー」などとバカにして切り捨てる自主的な相互監視やマッチョな世界観によって、弱小創作サークルは思ってもない拍手喝采を強いられてるってわけ&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1673667159346618368"&gt;かたぎりあまね（@amane_katagiri）:1673667159346618368&lt;/a&gt;（2023/06/27 21:18）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;えーと「こういう人」ってどういう人？　「マッチョ」は弱音を吐く弱者が使う言説？みたいな言及でしょうか。先日の菅野完氏の「&lt;a href="https://twitter.com/noiehoie/status/1673915248347316229"&gt;単にセックスできへんことをゴタゴタ言うとるオッサンやんけ&lt;/a&gt;」といった言説を思い出しますね。パワーがあって素晴らしい。ひょっとしたら同年代くらいなのかもしれません。&lt;/p&gt;
&lt;p&gt;このツイートはすごいです。さらに「同人誌即売会で読まれたい、上に行きたい」の論拠も分かりません。「即売会会場での反応が薄いからいったん出なくていいかな」という記事を「上に行きたいやつの弱音」なんて勝手に言い換えられたら、もうなんでもありの無法地帯ですね。&lt;/p&gt;
&lt;p&gt;いちいち指摘するのもしつこくなってきましたが、「自分は大人、相手は子供」という構図のための呪文も含まれています。モデル化の試みが何か気に障ったなら悪いことをしたのかもと思いつつ、特に具体的な誤りを指摘されたわけでもないのでこれもただの曖昧な批判になってしまいました。触れるならせめて、&lt;a href="https://b.hatena.ne.jp/entry/4738525012248514213/comment/spiro_bi"&gt;モデル化の詳細に触れるはてなブックマークコメント&lt;/a&gt;くらいの中身はほしい（これについては、即売会が固定なので添え字を付けていないという補足はしたいところ）。まぁ、単に叩けそうなところを探して回った結果なのが分かります。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;自分の記事が炎上したときに効いてないですよアピールするの、本当にただただ情けないだけなのでやめた方がいいですよ。いい大人だろお前も&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674020972498915329"&gt;蕎麦（@m_soba）:1674020972498915329&lt;/a&gt;（2023/06/28 20:44）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ここらへんは「ただただ情けない」「いい大人だろお前も」などの鳴き声です。読めば読むほど印象操作でしかないので、特に掘り下げません。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;そもそも本当に効いてない人はわざわざ自分の記事のURLでエゴサして反応をRTしてお気持ち表明したりしないのであって、それをやってる時点でお前はガンガンに”効いて”るんだよ……&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674023927604195328"&gt;蕎麦（@m_soba）:1674023927604195328&lt;/a&gt;（2023/06/28 20:56）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ハッハッハッ、「自分の記事に対する変な反応を取り上げてコメントする」だけのことをこんなに露悪的に表現できるなんて、さすが文学賞をもらった作家さんだ。自分が書いたものに対して反応するなというのは、商業作家さんのマーケティング戦略としてはありえるでしょうが、あいにく私は&lt;a href="/"&gt;あまねけ！&lt;/a&gt;の運用で生計を立てているわけでもありません。 &lt;code&gt;ama.ne.jp&lt;/code&gt; なんて短くて分かりやすいドメインで開設している個人サイトなんだから、反応くらい探しますよ。ローマ字子音で表現したカップル名の二次創作でさえ、公式はしっかり検索しています。&lt;/p&gt;
&lt;p&gt;ましてや、記事のURLを直接貼って「この記事への悪口」ですなんて言っているのに、リツイートやコメントすれば「ガンガンに”効いて”る」なんて決めつけるのって、あまりに自分の言説に対する反論を受け止める誠実さに欠けていますね。記事への反応を期待するのは下品で隠すべきこと？　自分の気持ちをしっかり書くのはダサい？　こういう「承認欲求ｶｺﾜﾙｲ」「自己主張ｷﾓｲ」的な言説からも、皆月さんの抱えるいかにも古い匿名掲示板の空気が漂っています。&lt;/p&gt;
&lt;p&gt;こういう作家さんって、自分の作品を根拠も薄く批判、中傷されても気にしないのかちょっと気になります。気にしないからこそ、他人を薄い論拠でビシバシ理不尽に叩くのかもしれませんけどね。&lt;/p&gt;
&lt;p&gt;あなたは、承認欲求や自意識を叩いておけば勝てると思っているタイプ？&lt;/p&gt;
&lt;h3 id="320230628-23-20230629"&gt;皆月さんのお怒り 第3期（2023/06/28 23時台 ～ 2023/06/29）&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;大昔の僕だったら直接RTして再反論してバカにしてたと思うので、本当に大人になったと思うよぼかァ&lt;br&gt;
&lt;cite&gt;&lt;a href="https://bbbdn.jp/@minadzki/110622423558067021"&gt;蕎麦（@minadzki@bbbdn.jp）:110622423558067021&lt;/a&gt;（2023/06/28 23:57）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;これで抑えようのない自意識のモンスターがエゴサなりで件のツイートを見つけてお気持ち表明2してきたら爆笑しちゃうな、という期待はある&lt;br&gt;
&lt;cite&gt;&lt;a href="https://bbbdn.jp/@minadzki/110622428690543872"&gt;蕎麦（@minadzki@bbbdn.jp）:110622428690543872&lt;/a&gt;（2023/06/28 23:58）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;第2期から数時間。またまた文学賞も取っていない取るに足りない弱者がくだらない記事を書いていたことに対する怒りが再燃し、とにかく言及が止められません。&lt;/p&gt;
&lt;p&gt;リツイートやリプライで適切に言及をリンクしないのは、別に大人になったからではなく、勝手な放言への責任を取らなくていいからです。脇の甘い言及に指摘を加えられる面倒を避けるためです。こうしておけば、今回のように実際に本人から指摘が来ても「わざわざ自分の記事のURLでエゴサして」なんて主張の正当性とは全く関係ないところでバカにする余地が生まれるので、皆月さんが大事にする精神的な勝利は揺るぎません。確実に勝ちに行くという意味では「本当に大人になった」のかもしれませんが。&lt;/p&gt;
&lt;p&gt;すごいですね。歴戦のレスバトラーとして匿名掲示板でも活躍してきた気配を隠し切れません。それが誇るべきことなのかは分かりませんが。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;僕はねえ、そもそも承認欲求のために創作してる奴が嫌いで、そういう奴が自分の創作能力のなさを外的要因に責任転嫁してお気持ちヤクザしてるのが反吐が出るくらい嫌いなんですよ。認められるためにペンを執るな。認められたいだけなら犬でも飼え。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674072873936510976"&gt;蕎麦（@m_soba）:1674072873936510976&lt;/a&gt;（2023/06/29 00:10）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;単に認められたいだけなら犬飼うなり恋人作るなり仕事がんばるなり友達作るなりいくらでもコスパのいい手段があるわけですよ。それをわざわざ創作にいって、それがうまくいかないとわめき立てる。バカじゃないのかと思ってしまう。それこそ本当の努力不足ですよ。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674074239614455808"&gt;蕎麦（@m_soba）:1674074239614455808&lt;/a&gt;（2023/06/29 00:16）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ここまで来ると、もう全く記事の中身は関係ありませんね。記事を踏み台に「承認欲求のために創作してる奴」の雑語りに移ってしまいました。掘り下げられるところがなくて残念。犬も恋人も仕事も友だちも突然出てきましたね。私は犬も恋人も仕事も友だちもあなたより完璧ですが、だとしたらなんなんでしょうか？　皆月さんに作家や作家志望のお友だちがいたら、変に刺さってないか心配です。このツイートを気にしていたら、創作ってそんなに敷居が高いことじゃないですよって言ってあげたいです。&lt;/p&gt;
&lt;p&gt;……え、創作ってそんなに敷居が高かったんですか？　文学賞を取っておらずすみません……。&lt;/p&gt;
&lt;h3 id="420230630"&gt;皆月さんのお怒り 第4期（2023/06/30）&lt;/h3&gt;
&lt;p&gt;ここから、私が皆月さんの言及に気付いて改めてシェアしたところ、2日経ってもなお怒りを忘れられないようでどんどん中傷が続きます。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;わざわざ自分の記事のURLでエゴサして反応をRTしてお気持ち表明した人、反論が気になって通知もないのにわざわざアカウントを監視しに来たりしたら面白いな、という思いもあってRTせずに言及したんだけど、マジでやってて爆笑してる。自意識強すぎ。これで「自主監視」がどうの言ってるのギャグか？&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674644080431861760"&gt;蕎麦（@m_soba）:1674644080431861760&lt;/a&gt;（2023/06/30 14:00）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;全体的に鳴き声ですが、「これで『自主監視』がどうの言ってるのギャグか？」が前述の指摘通り間違っているので、本当にどこも掘り下げる価値がないです。もう少し冷静になって叩いてほしい。&lt;/p&gt;
&lt;p&gt;そもそも、自分が書いてる記事へのコメントが気になるのって、自然なことなので気にしない方がいいですよ。皆月さんのスタンスとして「反応なんて気にせず投稿し続けるのがクール！」みたいに生きるのは勝手ですが、それを他人に強要することはできません。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;後から「この記事はこういう意図で書いたものでして〜」とか補足するのマジでダサいし文才ないな。もの書くなら書いたもの一つでちゃんと完結させろや。それができないなら向いてないから今すぐ筆折った方がいいよ……。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674644245377085441"&gt;蕎麦（@m_soba）:1674644245377085441&lt;/a&gt;（2023/06/30 14:01）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;「どうせ小説一つも読まずに言ってる」みたいなこと言うとりますけど、そもそもお前の小説の話なんかしてねえよ。お前の記事とそこから透けて見える精神についてバカにしてんの。書けないだけでなく読めもしないのか？もういいから犬飼えって。犬はいいぞ。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674644511581143040"&gt;蕎麦（@m_soba）:1674644511581143040&lt;/a&gt;（2023/06/30 14:02）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;これらは以下の私に対するツイートへの言及のようです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ここまで別に1本も作品を読まず、たぶん「こんな泣き言言うやつの作品は面白くないから読まない」で、もちろん完全勝利なんだよね&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1674637815102177281"&gt;かたぎりあまね（@amane_katagiri）:1674637815102177281&lt;/a&gt;（2023/06/30 13:35）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;「おれの書いてる作品は非常に面白く最強で、これからも百合をガンガンやっていくという意思が大前提にあり、それはそれとして文フリは人が多くてダルくなってきたからいったん中止！という気持ちをキモい文体で出力した記事です」っていう前提をちゃんと冒頭に書かないと、文脈外の被害者が増えそうだ&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1674637815102177281"&gt;かたぎりあまね（@amane_katagiri）:1674637815102177281&lt;/a&gt;（2023/06/30 13:45）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;曖昧悪口「ダサい」「文才ない」「今すぐ筆折った方がいい」と上から目線の「お前」連呼が輝きますね。やっぱり、敬意とか誠実さを学ぶ機会がなかったのかな。悪口として「今すぐ筆折った方がいい」なんて選ぶんですね。本当にすごい。この方って本当に作家さんなんでしょうか。何らかの理想と実態の乖離を起こしていないか心配です。&lt;/p&gt;
&lt;p&gt;また、&lt;a href="https://twitter.com/m_soba/status/1673662759588839425"&gt;蕎麦（@m_soba）:1673662759588839425&lt;/a&gt;で「『あっ、この人の本おもしろくないんだろうな……』」と作品に言及したのは皆月さんであり、「そもそもお前の小説の話なんかしてねえよ」というのは完全な論点ずらしですね。都合のいい勝手な論点選びが通じるのは匿名掲示板だけです。&lt;/p&gt;
&lt;p&gt;結局のところ、ちゃんと私の予想通り「完全勝利」のメソッドに入ってしまいました。つまらないですが、当たり前ですね。作品を読んで叩くほどの熱量はないけど、根拠のない放言で中傷したいだけなんですから。これが勝ちを取りに行く大人ってことですね。こんな大人にはなりたくないところです。&lt;/p&gt;
&lt;p&gt;さて、これを注意喚起として読んでいる方に有用なアドバイスですが、「おれの書いてる作品は非常に面白く最強で、これからも百合をガンガンやっていくという意思が大前提にあり、それはそれとして文フリは人が多くてダルくなってきたからいったん中止！という気持ちをキモい文体で出力した記事です」という言及について、皆月さんと同じように後出しの補足だと思っている方は、この記事の対象読者ではないです。ちゃんと言っておきます。&lt;/p&gt;
&lt;p&gt;この記事を読み始めた時点で「かたぎりあまね」が誰だか分からずに来た場合は、たぶんまともなコメントを書けないと思います。どうかその怒りは飲み込んで、&lt;a href="https://b.hatena.ne.jp/hotentry/all"&gt;もっと素敵で楽しい叩き放題のトレンド一覧&lt;/a&gt;に戻ってください。そうでなければ、もっと&lt;a href="/category/lily/"&gt;普通の記事&lt;/a&gt;を読んでくださいね。平和にやりましょう。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;3ターン経ったので、ラップバトルに倣い以上で件の人への言及は終了したいと思います。楽しい時間をありがとう。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674645044207439872"&gt;蕎麦（@m_soba）:1674645044207439872&lt;/a&gt;（2023/06/30 14:04）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;ごめん！これだけ言わせて！めっちゃ監視するやん（また通知が来た）&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674647080734973957"&gt;蕎麦（@m_soba）:1674647080734973957&lt;/a&gt;（2023/06/30 14:12）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;一応後出しじゃないよアピールだけしとくか。Mastodonでも活動しております。よろしくお願いします。 /* &lt;a href="https://bbbdn.jp/@minadzki/110622428690543872"&gt;蕎麦（@minadzki@bbbdn.jp）:110622428690543872&lt;/a&gt;へのリンク */&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674647967247265792"&gt;蕎麦（@m_soba）:1674647967247265792&lt;/a&gt;（2023/06/30 14:16）&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;あんまりネットでレスバトルするとオキシ先生に「どしたん？ストレスたまってるん？w」って煽られちゃうからほどほどにしないといけないんだけど、レスバトルは楽しいからね……てめえやるかこにゃろ&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/m_soba/status/1674650486983761920"&gt;蕎麦（@m_soba）:1674650486983761920&lt;/a&gt;（2023/06/30 14:26）&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最後は言い逃げ・余裕アピール・友だちアピールの匿名掲示板しぐさで終わりです。オキシ先生とやらが言い逃げのトッピングに使われて迷惑でなければいいのですが。ここも特に掘り下げるべきことはありません。この記事に対する反応があれば「あれ、3ターンで終わりのラップバトルじゃなかったんですか」と返すのが礼儀なんでしょうかね。&lt;/p&gt;
&lt;p&gt;ここまで読んでもなお、記事に言及する必要があれば下部「読んだ」ボタンを押して、お好きなSNSにシェアしてください。数日後にまとめて検索して、新たな犠牲者として取り上げるかもしれません。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>桐谷梨花のキャンディ日記</title><link href="https://ama.ne.jp/post/kiritani/" rel="alternate"/><published>2023-06-17T14:20:00+09:00</published><updated>2023-06-17T14:20:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-06-17:/post/kiritani/</id><summary type="html">&lt;p&gt;架空ア～バン女子エッセイのためしうち&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は、2023年5月発行の&lt;a href="https://vc.hentaigirls.net/"&gt;バーチャルキャンディ&lt;/a&gt;シリーズに収録されています。&lt;a href="https://hentaigirls.net/book/"&gt;公式サイト&lt;/a&gt;から入手可能です。 */&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/kiritani/image.jpg"&gt;&lt;img alt="海水浴場・スパイスのイメージ画像" height="375" src="/images/kiritani/image_thumb.jpg" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#520230820"&gt;家族5人で避暑地を過ごす（2023/08/20）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#20230520"&gt;エコアート そらのこえを求めて（2023/05/20）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#20221120"&gt;思い出のクラフトコーラをつくる（2022/11/20）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="520230820"&gt;家族5人で避暑地を過ごす（2023/08/20）&lt;/h2&gt;
&lt;p&gt;夏は4匹の家族を連れて避暑地に行くのが定番で、毎年宿選びには苦労している。愛犬や愛猫と一緒に宿泊できるオプションをアピールするホテルは最近では珍しいものではないが、私のようにロコスタル・フェリステルスと暮らしている身にはまだ不便なことが多い。それも4匹も、だ。&lt;/p&gt;
&lt;p&gt;ロコスタル・フェリステルス、と格好つけて学名を書いてみたが、巷のペットショップではシャポーという名で親しまれている、割とメジャーな生き物だ。シャポーというのはフランス語で帽子という意味で、その昔、さる貴族と暮らしたロコスタルの名前が由来らしい。丸くてもふもふとした外見と、高く跳ねて人間の頭に乗る性質を見事に表した素敵な名前である。&lt;/p&gt;
&lt;p&gt;我が家には「おもち」「あんこ」「ちょこ」「らむね」の4匹のシャポーがいる。3匹は名前から色を想像できるだろう。それぞれ、おもちは白、あんこは黒、ちょこは茶色の子だ。部屋の隅や柱の影に隠れるのを好むので、目立つ柄や色の個体は少ない。&lt;/p&gt;
&lt;p&gt;では、らむねは？　シャポーと暮らしたことのある友人でさえ、虹色の柔らかな毛で覆われたらむねを見るととても驚く。縁日で売られているカラーシャポーの毛色は染料で染めたもので、1ヶ月もすれば元の真っ白なシャポーに戻るからだ。しかし、らむねは1年以上経った今でも、頭から尻尾までの綺麗なグラデーションが残っている。他の子たちより尻尾が長く、物陰に身を潜める性質も弱いのを見ると、愛玩性を高めた珍しい品種なのかもしれない。&lt;/p&gt;
&lt;p&gt;さて、旅行の話だった。もともとシャポーはおとなしい生き物で、時折小さな声でキュルキュルと鳴く程度で人に迷惑は掛けないし、むしろ癒やしを与える存在である。根気よくかれらの生態を説明すると、今回のように柔軟なホテルなら愛犬・愛猫プランとして受け入れてくれるからありがたい。&lt;/p&gt;
&lt;p&gt;宿の近くの海水浴場でみんなを遊ばせることにした。私は日除けのパラソルを立てて荷物番である。人の少ない綺麗な砂浜で、4匹はめいめい自由に自然を楽しんでいた。砂の上を元気に跳ねて走り回るのはおもちで、その後ろではあんことちょこが砂を掘って穴に収まっている。体色に紛れる場所がなくて落ち着かないのだろう。らむねは砂が合わなかったのか、すぐに私の頭の上に戻ってきた。&lt;/p&gt;
&lt;p&gt;夕食はもちろん5人で部屋食である。旬の素材をたっぷり使った豪華な会席料理を2人前用意してもらう。1人前は私が、もう1人前は4匹で分け合って食べるのだ。シャポーは一部の食材（代表的なのはパイナップルとキウイだ）を除けばほとんど何でもよく食べるから、家族みんなで同じものを食べる幸せを味わえる。&lt;/p&gt;
&lt;p&gt;チェックアウトの時に、同じようにシャポーを連れた方と話す機会があった。らむねのような虹色ではなかったが、尻尾が長くてまるで犬のようにぶんぶんと振り回すのだ。シャポーが尻尾を振って感情表現できるとは知らなかった。らむねがそれを見てぎこちなく尻尾を振り始めたのは、旅の意外な収穫だったと言えるだろう。&lt;/p&gt;
&lt;p&gt;（文・桐谷梨花&lt;sup id="fnref:kiritani"&gt;&lt;a class="footnote-ref" href="#fn:kiritani" title="東京生まれ東京育ち。第二の故郷フランスでアロマテラピーを学び、その後イギリスに渡ってIFAS認定アロマセラピスト資格を取得。アロマの定額カウンセリングサービス「パルファ」でトップアドバイザーとして活躍中。本業の傍ら、4匹のシャポーと一人の同居人と暮らす日々を独自の視点で語る「シャポーぐらし」で人気を集めている。"&gt;1&lt;/a&gt;&lt;/sup&gt;）&lt;/p&gt;
&lt;h2 id="20230520"&gt;エコアート そらのこえを求めて（2023/05/20）&lt;/h2&gt;
&lt;p&gt;先日、同居人の誘いでミネラルショーに行ったところ、ある店でラジオが聴けるという不思議な鉱物を見せてもらった。ドイツ語っぽいラベルが貼られた古い革製の箱を開けると、脱脂綿のクッションの上で青紫色の輝きを放つ数センチほどの石が現れる。しかし均一に青いわけではなく、赤や黄色、あるいは緑色に輝く部分が入り乱れているのだ。虹色の石といえばオパールを思い浮かべると思うが、金属光沢のオパールといえばイメージが湧くかもしれない。&lt;/p&gt;
&lt;p&gt;ラジオが聴ける、というのがどういう意味かはよく分からなかったが、その輝きに不思議な魅力を感じたので買ってみることにした。付属品として同封された透明なイヤホンもなかなかセンスがいい。もともと同居人の付き添いで来た私はまだ何も買っていなかったし、来場記念の品としてもちょうどよかったのだ。合流してから彼女にこの金属オパールを見せると、「綺麗な虹銅鉱だね」と言ってくれた。&lt;/p&gt;
&lt;p&gt;虹銅鉱でラジオを聴く方法については、同居人も知らないようだった。調べてみると、このような天然の石で作るラジオのことを「鉱石ラジオ」というらしい。アンテナとイヤホンを繋げば、電池いらずでいくらでもラジオが聞こえてくるというのは、どうにも嘘っぽい作り話に見える。正直なところ、店主に騙されたのかもしれないと思ったが、「綺麗な標本を買えただけでもラッキーじゃない？」という彼女のフォローになんとなくムッとして、私は姿も分からぬ鉱石ラジオ作りを始めていた。&lt;/p&gt;
&lt;p&gt;電気を使わずにラジオを楽しめるなら、こんなにエコなことはない。虹銅鉱を電池に見立てて、両耳に繋げたイヤホンのコードを接続してみる。当然だが何も聞こえない。きっとアンテナがないからだ。ラジオに使うアンテナは、せいぜいラジカセから伸びる銀色の棒くらいしか知らない。いくつか調べてみると、このような金属棒1本のアンテナや、棒を水平に2本伸ばしたタイプ（「アンテナ」の語源である昆虫の触角によく似ていた）とか、太めの針金を円形にまとめたタイプがあるらしい。&lt;/p&gt;
&lt;p&gt;円形のアンテナなら、使い古しのハンガーを伸ばして整えれば作れるだろう。針金の端を机に押し付けて形を整える。廃材を使ってラジオを作るなんて、ますます環境にいい遊びである。途中から同居人も参戦して、あーでもないこーでもないと言いながら手作りの鉱石ラジオが完成する。夢中になって作業しているうちに、辺りはすっかり夜に包まれていた。&lt;/p&gt;
&lt;p&gt;屋上へ向かう。都会のど真ん中にあるマンションの周囲は、こんな深夜でも看板や街灯が輝いていてまだまだ明るい。イヤホンを片耳ずつ分け合って、アンテナとラップの芯に巻き付けた導線を虹銅鉱に接続すると、徐々に声が聞こえ始めた。数人が一斉に日本語とも英語ともつかない（フランス語でもなさそうだ）声で楽しげに話している。混信しているのかと思ってアンテナを調整すると、突然ぷつりと声が途切れてその日は何も聞こえなくなってしまった。&lt;/p&gt;
&lt;p&gt;あの日聞こえた番組は、結局今でも分からずじまいだ。&lt;/p&gt;
&lt;p&gt;（文・桐谷梨花&lt;sup id="fnref2:kiritani"&gt;&lt;a class="footnote-ref" href="#fn:kiritani" title="東京生まれ東京育ち。第二の故郷フランスでアロマテラピーを学び、その後イギリスに渡ってIFAS認定アロマセラピスト資格を取得。アロマの定額カウンセリングサービス「パルファ」でトップアドバイザーとして活躍中。本業の傍ら、4匹のシャポーと一人の同居人と暮らす日々を独自の視点で語る「シャポーぐらし」で人気を集めている。"&gt;1&lt;/a&gt;&lt;/sup&gt;）&lt;/p&gt;
&lt;h2 id="20221120"&gt;思い出のクラフトコーラをつくる（2022/11/20）&lt;/h2&gt;
&lt;p&gt;スパイス強めの自家製手作り風清涼飲料――いわゆるクラフトコーラが日本で流行り始めたのは、2018年頃だったと記憶している。伊良コーラがキッチンカーでオリジナルコーラを売り始めたのがそのくらいだ。それから全国でブームの最盛期を迎えたのは2020年頃で、ちょうど私も近所の喫茶店で店主自身が仕込んだというクラフトコーラを飲む機会があった。&lt;/p&gt;
&lt;p&gt;それが私の初クラフトコーラだったこともあり、味はよく記憶に残っている。いわゆるコーラの香りに、ショウガやシナモンの風味、デデンに似た柑橘の味（店主が高知出身なので思い込みかもしれない）の主張が強い。当時は特段クラフトコーラに興味はなかったのだが、原稿が行き詰まると気分転換によく通う店で、顔なじみの私は新商品の実験台にされていたのだ。そういえば、あれからレギュラーメニューとして出ていた記憶はない。冗談のつもりで「コカ・コーラのオレンジフレーバーを思い出しますね」と言ったのが悪かったのかもしれない。&lt;/p&gt;
&lt;p&gt;あれから数年が過ぎ、先日ふとこのクラフトコーラをまた飲んでみたくなった。同居人が買ってきたクラフトコーラの味があまりに酷かったからだ。大手飲料メーカーが作るペットボトル詰めのコーラは、もちろん「クラフト」とは名ばかりの、味がのっぺりとした大量生産品である。こだわりのない無難なスパイス選びに、口に残る合成甘味料のしつこさのダブルパンチ。そんなドリンクを平気な顔で美味しいと言って飲み続ける同居人を驚かせようと、あの喫茶店のクラフトコーラを再現してみることにした。&lt;/p&gt;
&lt;p&gt;シナモンスティック2本に、カルダモンとクローブを10粒くらい。それから、記憶を頼りにショウガを数枚スライスして鍋に放り込んでみる。調べてみると、アニスとバニラビーンズも少し入れるといいらしい。確かにあのクラフトコーラにも、甘さというか爽やかさというか、そんな風味があった気がする。砂糖の甘みは強すぎてスパイスの香りを弱めるので、やさしいアガベシロップを使うといいだろう。&lt;/p&gt;
&lt;p&gt;完成品を少し味見してみる。記憶より酸味と刺激が少ない気がする。刺激を足すにはブラックペッパーかジュニパーベリーがいいらしい。そして、致命的にも柑橘を入れるのを忘れていた。デデンの旬は冬から春で今はどうも手に入らないので、丸搾りのジュースで我慢することに。材料が揃ったところでもう一度作り直してみると、かなり記憶に近い匂いと味に仕上がった。やはりあれはデデンだったのだ。&lt;/p&gt;
&lt;p&gt;これなら味にこだわりのない同居人も喜ぶだろう、とお気に入りのグラスにスライスレモンを立てて渾身のクラフトコーラを差し出してみる。&lt;/p&gt;
&lt;p&gt;彼女は何度か味見すると、満面の笑みで「オレンジ味のペプシみたいで美味しいね！　どうやって作ったの？」と言ってグラスを置いた。そして、私の答えを待たずにゴクゴクと渾身のクラフトコーラを飲み干してしまったのだった。&lt;/p&gt;
&lt;p&gt;（文・桐谷梨花&lt;sup id="fnref3:kiritani"&gt;&lt;a class="footnote-ref" href="#fn:kiritani" title="東京生まれ東京育ち。第二の故郷フランスでアロマテラピーを学び、その後イギリスに渡ってIFAS認定アロマセラピスト資格を取得。アロマの定額カウンセリングサービス「パルファ」でトップアドバイザーとして活躍中。本業の傍ら、4匹のシャポーと一人の同居人と暮らす日々を独自の視点で語る「シャポーぐらし」で人気を集めている。"&gt;1&lt;/a&gt;&lt;/sup&gt;）&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:kiritani"&gt;
&lt;p&gt;東京生まれ東京育ち。第二の故郷フランスでアロマテラピーを学び、その後イギリスに渡ってIFAS認定アロマセラピスト資格を取得。アロマの定額カウンセリングサービス「パルファ」でトップアドバイザーとして活躍中。本業の傍ら、4匹のシャポーと一人の同居人と暮らす日々を独自の視点で語る「シャポーぐらし」で人気を集めている。&amp;#160;&lt;a class="footnote-backref" href="#fnref:kiritani" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:kiritani" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref3:kiritani" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>2023/04/01～2023/06/05</title><link href="https://ama.ne.jp/post/report-20230605/" rel="alternate"/><published>2023-06-05T19:01:00+09:00</published><updated>2023-06-05T19:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-06-05:/post/report-20230605/</id><summary type="html">&lt;p&gt;2023/04/01～2023/06/05のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/"&gt;ama.ne.jp&lt;/a&gt;のドメイン更新が走ったので、&lt;a href="/donation/"&gt;寄付&lt;/a&gt;ページを更新しました。&lt;ul&gt;
&lt;li&gt;あまねけ！は5月で8周年を迎えました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;あまねけ！の新着記事をメールでお知らせする「&lt;a href="https://subscribe.amane.moe/"&gt;あまねけ！新着記事通知&lt;/a&gt;」を作りました。&lt;ul&gt;
&lt;li&gt;今のところ、土曜の午前中に1週間分の記事をまとめて送信する設定になっています。&lt;/li&gt;
&lt;li&gt;もっと素早くきめ細かい更新通知が必要なら、&lt;a href="/post/feed-and-you/"&gt;フィードリーダー&lt;/a&gt;がおすすめです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;h4 id="_4"&gt;あまねけ！&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;もみじがり（&lt;a href="/post/bookleaf-1/"&gt;前編&lt;/a&gt;・&lt;a href="/post/bookleaf-2/"&gt;後編&lt;/a&gt;）&lt;ul&gt;
&lt;li&gt;2022年5月に開催された&lt;a href="https://bunfree.net/event/tokyo34/"&gt;第三十四回文学フリマ東京&lt;/a&gt;で頒布した&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;に収録された作品です。&lt;/li&gt;
&lt;li&gt;反体制組織「図書館ネット」の闇を暴いたらAIおじょうさまが飛び出してくる、みたいな胡乱な話になっています。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hentaigirls.net/book/"&gt;公式通販ページ&lt;/a&gt;からすてきなポストカードを入手できます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/feed-and-you/"&gt;個人サイトとフィードのつかいかた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;世のサイト管理者、読者の双方に向けて、フィードへの祈りをしたためました。&lt;/li&gt;
&lt;li&gt;執筆のついでに、初挑戦の&lt;a href="https://qwik.builder.io/"&gt;Qwik&lt;/a&gt;フレームワークで&lt;a href="https://fghipqrs.ama.ne.jp/"&gt;FGHI PQRS&lt;/a&gt;というフィード生成アプリを作ってます。&lt;/li&gt;
&lt;li&gt;さらについでに、上記の通り「&lt;a href="https://subscribe.amane.moe/"&gt;あまねけ！新着記事通知&lt;/a&gt;」を公開したので、よかったら登録してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>個人サイトとフィードのつかいかた</title><link href="https://ama.ne.jp/post/feed-and-you/" rel="alternate"/><published>2023-06-02T22:29:00+09:00</published><updated>2023-06-02T22:29:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-06-02:/post/feed-and-you/</id><summary type="html">&lt;p&gt;今日から始めるフィードリーダーぐらし&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;フィードについて&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;フィードとは何か&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;メリット・デメリット&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;フィードへの向き合い方: 読者&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;フィードへの向き合い方: 作者&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;フィードのつかいかた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_8"&gt;フィードを読む&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#atom"&gt;Atomフィードを作る&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;AtomやRSSを初めとする &lt;strong&gt;フィード&lt;/strong&gt; は、作者・読者ともに自由な方法で更新情報を配信・受信できる自由度の高い仕組みです。多くの &lt;strong&gt;ブログサービス&lt;/strong&gt; では作者が明示的に設定することなくフィードを配信するよう整備されており、かつてのブログ文化を支えてきました。&lt;/p&gt;
&lt;p&gt;一方で、ページのレイアウトやURL設計の自由度が高い &lt;strong&gt;個人サイト&lt;/strong&gt; では、フィードの配信も作者任せです。フィードの存在を知らなかったり、サイトの更新に合わせてフィードを書き出す仕組みを整備していなければ、オリジナルの更新履歴コーナーを置くことで更新情報の通知に代える場合も多いでしょう。しかし、これでは読者自身がサイトを訪れるまで更新があるか分かりません。&lt;/p&gt;
&lt;p&gt;また、フィードを受信する読者も課題を抱えています。受信方法の自由度が高いがゆえに、どのように更新を受け取るかを自分で決めなければならないのです。これは、フィードに対する技術的興味が薄かったり、ツールの特徴を比較して選定するのが苦手な読者にとっては、大きな障壁になりえます。&lt;/p&gt;
&lt;p&gt;以上を踏まえ、この記事では、まずフィードとは具体的にどのような存在なのかを論じます。その上で、個人サイトの作者や読者がどのようにフィードと向き合うべきかについて提案します。&lt;/p&gt;
&lt;h2 id="_2"&gt;フィードについて&lt;/h2&gt;
&lt;h3 id="_3"&gt;フィードとは何か&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89"&gt;フィード&lt;/a&gt;とは、サイトのコンテンツを集約し、配信しやすいフォーマットにまとめたものです。ここでいう「配信しやすい」とは、以下のような特徴を備えたものと考えてよいでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;サイト内を何度も巡回したり、複数のURLにアクセスする必要がないこと&lt;/li&gt;
&lt;li&gt;受け取ったファイルのどこに何が記述されているかが明確であること&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;フィードを使った配信では、各サイトが決まったフォーマットで更新情報を記述します。何度もファイルを取得する必要がないように、1つのファイルに複数の情報を詰め込むべきです。読者は、フィードリーダーなどのツールで定期的にこのファイルを取得し、過去のフィードと比較して新たな更新情報を得ることができます。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/feed-and-you/feed.png"&gt;&lt;img alt="フィード配信の概念図" height="375" src="/images/feed-and-you/feed_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;この特徴とは正反対といえるのが、Webページの特定の箇所から情報を抜き出すスクレイピングや、読者自身が直接サイトを訪れて更新を確認する方法です。いずれもサイトごとに必要な箇所が異なっていたり、リンクを辿って何度もページを取得する必要があるため、効率のいい手段とはいえません。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/feed-and-you/spider.png"&gt;&lt;img alt="スクレイピングの概念図" height="375" src="/images/feed-and-you/spider_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/feed-and-you/direct.png"&gt;&lt;img alt="読者が直接更新を確認する図" height="375" src="/images/feed-and-you/direct_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;タイトルや作者名、カテゴリなどの使用頻度の高いメタデータを簡単に記述できるように、これまでAtomやRSSというフォーマットが制定されてきました。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.rfc-editor.org/rfc/rfc4287.html"&gt;Atom&lt;/a&gt;は、XMLで配信情報のリストを記述できる仕様です。例として&lt;a href="/"&gt;あまねけ！&lt;/a&gt;の&lt;a href="https://ama.ne.jp/feeds/all.atom.xml"&gt;記事全体のフィード&lt;/a&gt;を以下に示します。作者名やタイトル、要約、記事のURLなどが記載されているのが分かるでしょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;feed&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;あまねけ！&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://ama.ne.jp/&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://ama.ne.jp/feeds/all.atom.xml&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;self&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;https://ama.ne.jp/&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;updated&amp;gt;&lt;/span&gt;2023-05-23T14:45:00+09:00&lt;span class="nt"&gt;&amp;lt;/updated&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;entry&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;もみじがり&lt;span class="w"&gt; &lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://ama.ne.jp/post/bookleaf-2/&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;published&amp;gt;&lt;/span&gt;2023-05-23T14:45:00+09:00&lt;span class="nt"&gt;&amp;lt;/published&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;updated&amp;gt;&lt;/span&gt;2023-05-23T14:45:00+09:00&lt;span class="nt"&gt;&amp;lt;/updated&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;author&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;Amane&lt;span class="w"&gt; &lt;/span&gt;Katagiri&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/author&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;tag:ama.ne.jp,2023-05-23:/post/bookleaf-2/&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;summary&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;html&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;p&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;「しおり」を巡る少女のたたかい&lt;span class="w"&gt; &lt;/span&gt;後編&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;/p&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;content&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;html&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="ni"&gt;&amp;amp;lt;&lt;/span&gt;p&lt;span class="ni"&gt;&amp;amp;gt;&lt;/span&gt;/*&lt;span class="w"&gt; &lt;/span&gt;この作品は、2022年5月発行の&lt;span class="w"&gt; &lt;/span&gt;...&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/content&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;category&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;term=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;lily&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/entry&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/feed&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/RSS"&gt;RSS&lt;/a&gt;は&lt;a href="https://web.resource.org/rss/1.0/"&gt;RSS 1.0&lt;/a&gt;あるいは&lt;a href="https://www.rssboard.org/rss-specification"&gt;RSS 2.0&lt;/a&gt;のバージョンに分裂しており、それぞれ開発元や表現力が異なります。かつてはRSSとAtomの両方でフィードを配信したり、いずれかを選べるようになっているサービスもありましたが、現代ではAtomのみで十分なケースがほとんどです。&lt;/p&gt;
&lt;h3 id="_4"&gt;メリット・デメリット&lt;/h3&gt;
&lt;p&gt;ここまで述べたとおり、フィードとは、単一のファイルに更新情報を記載して配信するための仕組みでした。このような仕組みはシンプルかつ自由度が高く、拡張も容易です。他の更新情報を通知する手法と比較しながら、その特徴をさらに掘り下げます。&lt;/p&gt;
&lt;p&gt;フィード以外で個人サイトの更新を通知する手段としては、大きく分けて2つの方法があります。まずはSNSへのパブリックな投稿によるもの、そしてメールやプッシュ通知などを通じたプライベートなチャネルによるものです。&lt;/p&gt;
&lt;p&gt;SNSへのパブリックな投稿とは、以下のようなものです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;生涯メールアドレスの実質的終了によせて - あまねけ！ &lt;a href="/post/end-of-alumni-life/"&gt;https://ama.ne.jp/post/end-of-alumni-life/&lt;/a&gt; かいた&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1609099211794186242"&gt;1609099211794186242&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;メールを通じた通知については、&lt;a href="https://subscribe.amane.moe/"&gt;あまねけ！の記事投稿をトリガーにメールを送信するサービス&lt;/a&gt;が参考になります。&lt;/p&gt;
&lt;p&gt;フィードの最大のメリットは、配信・受信方法の自由度が高いことです。フィードリーダーがアクセスできる場所にさえ置かれていれば、対象の個人サイトと同じドメインやパスである必要もありません。フィードは個人サイトを構成する各ファイルと同様に単なるファイルなので、自己の個人サイトのためにするのと同一の注意を払えば十分です。&lt;/p&gt;
&lt;p&gt;一方で、SNSによる通知はサービスに合わせた設定やフローが必要です。サービスのポリシーによっては内容を調整したり工夫する必要もあるでしょう。Twitterなどでは外部リンクを含むツイートを表示しにくくしたり、不適切なリンクと判断してアカウントを凍結する暴挙が横行しています。複数のSNSに同様の内容を投稿する場合は、手順がさらに煩雑になるはずです。&lt;/p&gt;
&lt;p&gt;もう一つのメリットとして、読者登録のような仕組みが全く不要なことが挙げられます。これは、作者にとっては読者数やその推移を知るのが難しくなる点がわずかにデメリットですが、運用コストが非常に低くなるというメリットも得られます。読者の情報を保存したり、それらが流出しないよう注意する必要がなくなるのです。また、メール配信では送信先のリストが常に健全であるとは限らず、送信できなかった宛先に通知を再送したり、もう届かない宛先を削除しなければいけませんが、その作業も全く不要になります。&lt;/p&gt;
&lt;p&gt;読者にとっても、登録なしで更新情報を得られるのはプライバシー保護の向上や購読手順の削減といったメリットばかりです。それに対してSNSによる通知では、アカウントをフォローすれば作者や周囲にその事実が知られますし、メールによる通知では作者にメールアドレスを渡す必要があります。&lt;/p&gt;
&lt;p&gt;このように、フィードは自由度が高く運用コストも低い優秀な配信手段ですが、もちろんデメリットも存在します。最も致命的なのは、リアルタイム性のなさでしょう。フィードは、常に受信者（フィードリーダー）がアクセスするタイミングでしか情報を配信できないプル型のアーキテクチャであり、サイト側からはそのタイミングを決められません。極端に言えば、1年に1回だけフィードを取得する受信者には、来年まで更新情報が届くことはないのです。これは、SNSやメールによる通知と比べて非常に不利な特徴です。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/feed-and-you/cantpush.png"&gt;&lt;img alt="プル型であるフィードの仕組みでは配信側から届けられないことを示す図" height="375" src="/images/feed-and-you/cantpush_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;また、自由度の高さが逆に読者参加の障壁になっていると考えることもできます。SNSやメールであれば、読者が普段使っている公式のアプリやWebサイトがあり、その上で通知を届けるので読者はツールを選択する必要がありません。しかし、新たにフィードを通じて更新を取得したいと思った場合は、まずはフィードリーダーを選定するところから始める必要があります。&lt;/p&gt;
&lt;p&gt;フィードの仕組み上、フィードリーダーの実装は無数に存在し、さらにいずれも公式のツールではありません。フィードのフォーマットを制定している団体はありますが、その団体が作る公式アプリは存在しないのです。最初の一歩としてどのアプリを使えばいいか分からない、というのはフィードが普及していくにあたって不利な点だと言えるでしょう。&lt;/p&gt;
&lt;h3 id="_5"&gt;フィードへの向き合い方: 読者&lt;/h3&gt;
&lt;p&gt;読者にとって、フィードは必要な更新情報を受け取るための強力な手段の一つです。SNSを利用した通知では、更新情報の内容によってはフォローしているアカウントが凍結されてしまうかもしれません。この場合、読者としては移行先のアカウントを探したり、更新情報を受け取るのを諦める必要があるでしょう。今後、運営の気まぐれで凍結されるアカウントが増えれば、そういった無駄な作業に割く時間の肥大化は避けられません。&lt;/p&gt;
&lt;p&gt;一方、フィードであればURLが有効な限りは更新情報を受け取ることができ、また複数のURLからフィードを取得することも可能です。URLの無効化――プロバイダによるサイトブロッキングなどで――は技術的にありえますが、少なくとも昨今のSNSの凍結基準よりは桁違いに厳しい上に、代替URLが無数に用意できる点でSNSへのロックインとは全く異なります。&lt;/p&gt;
&lt;p&gt;文章、絵、動画、ポッドキャストなど……SNSでお気に入りの作者がいれば、まずはフィードを配布しているか確認してみましょう。そして、利用可能なフィードがあるなら、すぐに購読することをおすすめします。アカウントがいつ凍結されるかは運営の気分次第であり、今後知るはずだったコンテンツを楽しむ機会を失うという結末はすぐそこに迫っているからです。&lt;/p&gt;
&lt;p&gt;とはいえ、先ほど述べたとおり、フィードリーダーはその選択肢の広さから使い始めるのが難しいと感じる人もいるはずです。以降の節では、実際にどのようなフィードリーダーが存在していて、読者としてどのように使うべきかを紹介していきます。&lt;/p&gt;
&lt;h3 id="_6"&gt;フィードへの向き合い方: 作者&lt;/h3&gt;
&lt;p&gt;作者にとっても、フィードが更新情報を強力に届け続けるための手段なのは変わりません。もし、活動の宣伝をSNSへの投稿だけに頼っていたり、更新情報を取得しにくいオリジナルの個人サイトでコンテンツを公開していたり、そもそも自分の使っているサービスが何らかのフィードを公開できるのか分からない場合は、今すぐ対処することをおすすめします。&lt;/p&gt;
&lt;p&gt;個人サイトでは、ブラウザから見える外観やページ階層に対するこだわりが強くても、フィードをどのように配信するかは忘れられがちです。いわゆるブログサービスのように、時系列順に並んだ記事からフィードを機械的に作りやすい構造ならまだしも、手書きのHTMLや手書きに近い（GUIなどでパーツを配置するような）作り方のサイトでは、どの部分が更新されたのか自明ではないのも問題を複雑にしています。&lt;/p&gt;
&lt;p&gt;規模の小さい個人サイトにおいて、しばしばトップページに手書きで更新履歴を並べる運用が見られますが、これでは読者自身がサイトを訪れるまで更新があるか分からず不便です。できるなら、それらの更新履歴をフィードの形にまとめて、取り扱いやすい形式で配信すれば情報源として役立つでしょう。そのような作業の参考になるかもしれないアイデアについては、以降の節で示します。&lt;/p&gt;
&lt;p&gt;サイト構造やデザインに強いこだわりがなければ、&lt;a href="https://github.com/gohugoio/hugo"&gt;Hugo&lt;/a&gt;などの&lt;a href="https://www.cloudflare.com/ja-jp/learning/performance/static-site-generator/"&gt;静的サイトジェネレーター&lt;/a&gt;に移行するのも一つの選択肢です。これらのツールの多くは、いくつかのテンプレートから時系列順に並ぶ記事を生成でき、さらにわずかな設定でフィードまで書き出す機能を持っています。ページごとに細かくデザインを変えたいとか、URLの階層で遊びたいといったこだわりがなければ、手っ取り早く読者にフィードを届けられる賢い選択です。&lt;/p&gt;
&lt;p&gt;いずれにせよ、作者が自らの活動に関するフィードを作成・公開すれば、今後の読者との関係がさらに堅牢になり、SNSのポリシーに縛られない自由な活動を送り続けられるでしょう。フィードにはそれだけの力があります。&lt;/p&gt;
&lt;h2 id="_7"&gt;フィードのつかいかた&lt;/h2&gt;
&lt;h3 id="_8"&gt;フィードを読む&lt;/h3&gt;
&lt;p&gt;フィードについての理解を深めたところで、実際にどのようなフィードリーダーが存在していて、読者としてどのように使うべきかを考えてみましょう。&lt;/p&gt;
&lt;p&gt;多くのフィードリーダーは、2つの軸から大きく4つのタイプに分けられます。1つはフィードの取得がどこで行われるかという設置場所に関するもの、もう1つは取得したフィードをどのように表示するかという表示スタイルに関するものです。&lt;/p&gt;
&lt;p&gt;設置場所については、サービス運営者が持つサーバーでフィードを取得して、その結果をクライアントで表示するサーバー型と、クライアント自身がフィードの取得と表示まで行うクライアント型に分けられます。サーバー型のフィードリーダーは、複数のデバイスから利用しやすく、またデバイスを起動していなくてもフィードを取得できます。一方、クライアント型のフィードリーダーはデバイス内に更新情報を保管するため、他のデバイスと連携するには追加の仕組みが必要で、デバイスを起動していない間はフィードを取得できません。&lt;/p&gt;
&lt;p&gt;表示スタイルについては、新着記事を一覧で表示でき、サイト単位でフォルダ分けしたり各記事の未読状態を管理できるメールボックス型と、単に新着記事を時系列で並べていくだけのタイムライン型に分けられます。&lt;/p&gt;
&lt;p&gt;メールボックス型のフィードリーダーは、独立したアプリやWebサービスとして提供されており、記事を読むことに特化したツールになっています。新着記事を読むという点では便利で分かりやすい反面、フィードリーダーを見に行く習慣がなければ未読の更新情報が溜まってしまいますし、新しい通知アイコンが増えると煩わしさを感じる人もいるでしょう。&lt;/p&gt;
&lt;p&gt;一方、タイムライン型のフィードリーダーは既存のコラボレーションツールやコミュニケーションアプリに組み込まれたツールの1つであることが多いです。個人が記事を読む体験の向上よりも、当該サービス内で記事をシェアしたり、記事を引用して感想を述べるのが簡単になるというメリットがあります。既にサービスを使っている人にとっては、素早く利用を始められるのも嬉しい点です。&lt;/p&gt;
&lt;p&gt;さて、ここからは具体的なフィードリーダーについて、その特徴を以下のような観点で分析しながらおすすめ度とともにまとめていきます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フィードの追加が楽かどうか&lt;/li&gt;
&lt;li&gt;フィードの管理・削除が楽かどうか&lt;/li&gt;
&lt;li&gt;使いやすい・読みやすいかどうか&lt;/li&gt;
&lt;li&gt;お金がかかるかどうか&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="feedlyinoreader"&gt;Feedly・Inoreaderなど（サーバー型 + メールボックス型）&lt;/h4&gt;
&lt;p&gt;おすすめ度: ★★★&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フィードの追加が楽かどうか &lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;購読に関する機能は使いやすい場所に配置されています。&lt;/li&gt;
&lt;li&gt;ブックマークレットの形で購読ツールを提供していることもあります。&lt;/li&gt;
&lt;li&gt;モバイルアプリなら、共有機能でURLを渡してシームレスに購読できます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;フィードの管理・削除が楽かどうか &lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;多くの場合、購読しているフィードと更新情報を対応づけて一覧表示できます。&lt;/li&gt;
&lt;li&gt;設定の調整や購読の解除も簡単です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;使いやすい・読みやすいかどうか &lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;ブラウザやアプリを介して、複数のデバイスから同じ更新情報を閲覧できます。&lt;/li&gt;
&lt;li&gt;製品によっては、スワイプで既読にしたり「あとで読む」リストに入れられます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;お金がかかるかどうか &lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;無料で使える範囲ではフィードを確認する間隔が長いか、登録数に厳しめの制限があることが多いです。&lt;/li&gt;
&lt;li&gt;例として、Inoreaderでは、7.5ドル/月～9.99ドル/月ほどかかります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;しっかりフィードリーダーを活用したければ、&lt;a href="https://feedly.com/"&gt;Feedly&lt;/a&gt;や&lt;a href="https://www.inoreader.com/"&gt;Inoreader&lt;/a&gt;などのフィードリーダー専用サービスをおすすめします。これらはフィードの収集はもちろん、不要な記事をフィルタして取り除いたり、細かいルールを設定してアクションを実行したりできるより便利な機能を備えています。処理はサーバーで実行されるため、デバイスがオフラインでも心配ありません。&lt;/p&gt;
&lt;p&gt;多くのフィードリーダー専用サービスは、基本的な機能以外を利用できない、あるいは購読数に低めの制限をかけた無料プランを提供しています。ただし、しっかりフィードリーダーを活用できるようになるまではあまり気にならないはずです。フィードリーダーの巡回が習慣化できるか不安だとか、どのサービスが使いやすいか判断しかねる場合は、まずはいくつか無料で使ってみるのがいいでしょう。&lt;/p&gt;
&lt;h4 id="feederthunderbird"&gt;Feeder・Thunderbirdなど（クライアント型 + メールボックス型）&lt;/h4&gt;
&lt;p&gt;おすすめ度: ★★☆&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フィードの追加が楽かどうか &lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;サーバー型と同様です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;フィードの管理・削除が楽かどうか &lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;サーバー型と同様です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;使いやすい・読みやすいかどうか &lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;デバイスが直接取得を行うため、通信量や電池消費が増加することがあります。&lt;/li&gt;
&lt;li&gt;デバイス間での同期は難しいか、追加の仕組みが必要です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;お金がかかるかどうか &lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;無料のアプリも多いですが、広告表示が含まれるものもあります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有料のフィードリーダーを契約するほどではないし、スマホのみあるいはPCのみで読めれば十分という場合は&lt;a href="https://play.google.com/store/apps/details?id=com.nononsenseapps.feeder.play"&gt;Feeder&lt;/a&gt;や&lt;a href="https://support.mozilla.org/ja/kb/how-subscribe-news-feeds-and-blogs"&gt;Thunderbird&lt;/a&gt;などのクライアント型アプリはいかがでしょうか？　これらはフィードを取得するためのサーバーが存在せず、常にアプリ自身がフィードを取得して蓄積します。サーバー型のような高機能なワークフローは利用できませんが、新着記事をプッシュ通知して一覧表示するというフィードリーダーの基本的な機能は備えています。&lt;/p&gt;
&lt;p&gt;手元のストレージに格納する都合上、古い更新情報は徐々に削除されることがありますし、あまりに多くのフィードを購読すると通信量や電池消費にも悪影響があるかもしれません。ただし、サーバー型よりも取得戦略を柔軟に設定できるので、定期取得の間隔を長くしたり、充電中やWi-Fiに接続しているときだけ取得するよう設定できるアプリもあります。&lt;/p&gt;
&lt;p&gt;もちろん、きめ細かいルールやアクションを活用したくなったり、購読数が増えてきて動作が重くなってきたなら、適宜サーバー型への切り替えをおすすめします。&lt;/p&gt;
&lt;h4 id="slack-rss"&gt;Slack RSS（サーバー型 + タイムライン型）&lt;/h4&gt;
&lt;p&gt;おすすめ度: ★★☆&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フィードの追加が楽かどうか &lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/feed subscribe https://ama.ne.jp/feeds/all.atom.xml&lt;/code&gt; で購読できます。&lt;/li&gt;
&lt;li&gt;管理画面から通知先のチャネルとともに登録することも可能です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;フィードの管理・削除が楽かどうか &lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/feed list&lt;/code&gt; で一覧を確認して  &lt;code&gt;/feed remove &amp;lt;ID&amp;gt;&lt;/code&gt; で削除できますが面倒です。&lt;/li&gt;
&lt;li&gt;管理画面から一覧を確認して削除することもできます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;使いやすい・読みやすいかどうか &lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;普段からSlackを使っていれば、自然と通知が目に入るので見逃しは減るでしょう。&lt;/li&gt;
&lt;li&gt;ただし、Slack自身が無料プランの縮小を続けており、特に過去のフィードを残すのは難しくなりました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;お金がかかるかどうか &lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;無料プランでは無料です。&lt;/li&gt;
&lt;li&gt;Slack自身には有料版がありますが、RSSアプリの機能が増えるわけではありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Slackの&lt;a href="https://slack.com/apps/A0F81R7U7-rss"&gt;RSS アプリ&lt;/a&gt;は、気軽にタイムライン型フィードリーダーを導入する第一歩として優秀な選択肢です。更新情報は指定したチャネルに送信され、各ユーザーごとに他のチャネルと同様に未読状態を管理できます。通常のメッセージと同じ扱いなので、過去に遡って特定の記事だけを未読にすることはできず、またフィードリーダーに特化した検索条件やフィルタを利用することはできません。&lt;/p&gt;
&lt;p&gt;現在Slackを使っていて、気軽にフィードリーダーを使い始めたい場合はこちらをおすすめします。逆に、このアプリを使うためだけにSlackを導入する必要はありません。Slackは無料プランでできることを削減しつつあり、今後もさらに悪化する可能性が残っています。数年前であれば候補の筆頭に上がっていましたが、今はもはやSlackに依存すべきではない状態です。&lt;/p&gt;
&lt;h4 id="lineifttt"&gt;LINE+IFTTT（サーバー型 + タイムライン型）&lt;/h4&gt;
&lt;p&gt;おすすめ度: ★☆☆&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;フィードの追加が楽かどうか &lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;新しく追加するたびにIFTTTのアプレットを増やす必要があり、煩雑です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;フィードの管理・削除が楽かどうか &lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;追加と同様にIFTTTのアプレット単位で削除する必要があるので面倒です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;使いやすい・読みやすいかどうか &lt;img alt=":o:" class="emoji" height="16" src="/emojis/2b55.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;普段からLINEを使っている人であれば、馴染みやすく見逃すことも減るでしょう。&lt;/li&gt;
&lt;li&gt;友だちにシェアしたりするのも簡単です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;お金がかかるかどうか &lt;img alt=":x:" class="emoji" height="16" src="/emojis/274c.png" width="16"&gt;&lt;ul&gt;
&lt;li&gt;LINEについては特に料金はかかりません。&lt;/li&gt;
&lt;li&gt;IFTTTの無料プランではアプレットが2個しか使えないので使い物になりません。&lt;/li&gt;
&lt;li&gt;IFTTTを有料プランにした場合は2～5ドル/月ほどかかります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;こちらは、Webサービスを連携するWebサービスである&lt;a href="https://ifttt.com/"&gt;IFTTT&lt;/a&gt;を利用した変わり種のフィードリーダーです。LINEで更新情報を受信できるキャッチーさから、詳しい手法はいろいろなサイトで紹介されています。&lt;/p&gt;
&lt;p&gt;しかし、フィードごとにアプレットを作らなければならない都合上、フィードを一覧して管理するという基本的な機能に欠けており、たくさんのフィードを購読し続けるのには向いていません。新しいサイトを購読したり、興味のなくなったサイトを削除するといった基本的な動作が億劫になり、最終的には無意味な未読の溜まった廃墟ルームになりがちです。&lt;/p&gt;
&lt;p&gt;さらに、たくさんのフィードを購読するにはIFTTTの有料プランを契約する必要があり、LINEに通知することに強いこだわりがなければ、全く選択肢に挙がりません。既にIFTTTの有料プランを契約していたり、数フィードの購読しか予定がなければ、使ってみてもいいでしょう。&lt;/p&gt;
&lt;p&gt;この手法を効果的に使うには、少なくとも複数のフィードをさらに1つのフィードにまとめるサービスが必要です。例えば、Inoreaderでは&lt;a href="https://www.inoreader.com/blog/2015/05/inoreader-how-to-share-your-personal.html"&gt;フォルダ内のフィードを束ねて1つのフィードとして配信する機能&lt;/a&gt;があるので、このフィードを購読するIFTTTのアプレットを1つだけ用意すれば無料プランで済みます。つまり、メインのフィードリーダーを持ちつつ、LINEへの通知が欲しい場合の拡張機能として使うと便利かもしれません。&lt;/p&gt;
&lt;h4 id="_9"&gt;おまけ: 購読リストを移行する&lt;/h4&gt;
&lt;p&gt;ここまで具体的なフィードリーダーの例を挙げてきましたが、やはりどれを使うべきか迷うことがあると思います。なかなかフィードリーダーを使い始められない理由が「いったん使い始めると、他のフィードリーダーに移行するのが面倒そう」という点にあるなら、まずは購読リストのエクスポートに対応しているフィードリーダーを選んでみましょう。&lt;/p&gt;
&lt;p&gt;一般的なフィードリーダーでは、&lt;a href="https://ja.wikipedia.org/wiki/Outline_Processor_Markup_Language"&gt;OPML&lt;/a&gt;形式でエクスポートし、またインポートできる仕組みが一般的になっています。前述したFeedly・Inoreader・Feederでは、お互いに購読リストを移行するのが非常に簡単です。逆に、Slack RSSやIFTTTのアプレットを使った方法は移行に一手間かかるので、気軽に試すのは難しいかもしれません。&lt;/p&gt;
&lt;p&gt;OPMLはXMLベースでアウトライン構造を記述する以下のようなフォーマットであり、フィードリーダーではフィードのURLリストをやり取りするために使われます。中身は軽量なテキストファイルなので、サービス移行のタイミングだけではなく、普段のバックアップなどにもおすすめです。これは、クライアント型のアプリを使っている場合、端末の故障や移行の際に非常に役立つでしょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;opml&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Feeds&lt;span class="w"&gt; &lt;/span&gt;of&lt;span class="w"&gt; &lt;/span&gt;Amane&lt;span class="w"&gt; &lt;/span&gt;Katagiri&lt;span class="w"&gt; &lt;/span&gt;from&lt;span class="w"&gt; &lt;/span&gt;Inoreader&lt;span class="w"&gt; &lt;/span&gt;[https://www.inoreader.com]&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;outline&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;text=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;info&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;info&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;outline&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;text=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;あまねけ！&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;あまねけ！&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;xmlUrl=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://ama.ne.jp/feeds/all.atom.xml&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;htmlUrl=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://ama.ne.jp/&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/outline&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;outline&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;text=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;tech&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;tech&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;outline&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;text=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Zennのトレンド&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Zennのトレンド&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;xmlUrl=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://zenn.dev/feed&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;htmlUrl=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://zenn.dev/&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/outline&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/opml&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="atom"&gt;Atomフィードを作る&lt;/h3&gt;
&lt;p&gt;最後に、フィードの配信が忘れられがちなオリジナルの個人サイトにおいて、どのようにフィードを設置していくべきかを考えましょう。&lt;/p&gt;
&lt;p&gt;多くの記事投稿ツールでは、フィードの生成はほとんど気にする必要すらない基本的な機能として組み込まれています。はてなブログ、ライブドアブログ、FC2ブログなどのふつうのブログサービスでは、特に設定しなくても自動的にフィードを配信できますし、静的サイトジェネレーターでも、わずかなオプションを指定すれば基本的なフィードを生成できるようになっているものがほとんどです。&lt;/p&gt;
&lt;p&gt;フィードがない個人サイトの多くは、時系列で機械的に列挙可能な記事構造を持っていません。一見すると投稿日や更新日が記載された記事の一覧が並んでいても、フィードに変換できるようなメタデータに対応づけられておらず、サイト更新フローにフィードの生成を組み込むのが難しくなっています。&lt;/p&gt;
&lt;p&gt;では、このような個人サイトでは、フィードの配信を諦めなければならないでしょうか？　決してそんなことはありません。フィードは必ずしも記事のメタデータから生成する必要はなく、記事を追加・更新した履歴さえあれば構築可能です。オリジナルの更新履歴を解析しやすいフォーマットに変換する、と考えれば分かりやすいでしょう。&lt;/p&gt;
&lt;h4 id="_10"&gt;手書きで作る&lt;/h4&gt;
&lt;p&gt;最もシンプルで手間のかかる方法です。個人サイトの管理にあたって、静的サイトジェネレーターなどを使わずにHTMLを直接編集しているような場合は、XMLも一緒に編集してしまった方が楽かもしれません。XMLはHTMLよりも厳密で明確に記述できるので、身体によく馴染む人もいるでしょう。&lt;/p&gt;
&lt;p&gt;手軽に有効なフィードを書くために、まずは&lt;a href="https://validator.w3.org/feed/#validate_by_input"&gt;W3C Feed Validation Service&lt;/a&gt;を開きます。そして、以下のテンプレートを貼り付けましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;feed&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.w3.org/2005/Atom&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;【サイトタイトル】&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- サイトのURL --&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://your-site.example.com/&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/link&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- フィードのURL --&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;self&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://your-site2.example.com/path/to/feed.atom.xml&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/link&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- フィードのID「tag:【サイトドメイン】,【公開年（月日）】:【URL】」 --&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;tag:your-site.example.com,2023:/&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- フィードの最終更新日時 --&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;updated&amp;gt;&lt;/span&gt;2023-06-01T00:00:00.000Z&lt;span class="nt"&gt;&amp;lt;/updated&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;entry&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;【記事1のタイトル】&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- 記事1のURL --&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://your-site.example.com/path/to/article1.html&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/link&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;author&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;【記事1の作者】&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/author&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;【記事1の概要】&lt;span class="nt"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- 記事1のID「tag:【サイトドメイン】,【公開年月日】:【URL】」 --&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;tag:ama.ne.jp,2023-06-02:/sample&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- 記事1の最終更新日時 --&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;updated&amp;gt;&lt;/span&gt;2023-06-01T00:00:00.000Z&lt;span class="nt"&gt;&amp;lt;/updated&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- 記事1の初版公開日時 --&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;published&amp;gt;&lt;/span&gt;2023-01-01T00:00:00.000Z&lt;span class="nt"&gt;&amp;lt;/published&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/entry&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- 以下、entryタグを続ける&lt;/span&gt;
&lt;span class="cm"&gt;  &amp;lt;entry&amp;gt;&lt;/span&gt;
&lt;span class="cm"&gt;    ...&lt;/span&gt;
&lt;span class="cm"&gt;  &amp;lt;/entry&amp;gt;&lt;/span&gt;
&lt;span class="cm"&gt;  --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/feed&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/amane-katagiri/45d8ee528c100a3521e27d530713b02d"&gt;sample.atom.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;上記をそのまま貼り付けて「Validate」をクリックした状態であれば、「This is a valid Atom 1.0 feed.」と表示され、有効なフィードであることが分かります&lt;sup id="fnref:recommendation"&gt;&lt;a class="footnote-ref" href="#fn:recommendation" title="Recommendationsとして自己参照リンクが誤っているという旨の警告が出ていますが、これはフィードのURLとして記載した例が存在しないものなので想定通りです。"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img alt="フィードのバリデーション例" height="677" src="/images/feed-and-you/feed_validation.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;このテンプレートを元にサイト情報や記事の更新情報を書き、個人サイトと一緒に公開すればフィードを配信できます。フィードの公開後は、人間が見やすいようにメニューなどにフィードへのリンクを表示するとよいでしょう。さらに、HTMLファイルのheadタグに以下のようなリンクを置いておくと、このサイトでフィードを配信していることをより明確に表明できます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;link&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;https://your-site2.example.com/path/to/feed.atom.xml&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;application/atom+xml&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;【サイトタイトル】 Atom Feed&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;タグが &lt;code&gt;/&amp;gt;&lt;/code&gt; で終わらないのが気持ち悪いですか？　XMLの書きすぎかもしれません。&lt;/p&gt;
&lt;h4 id="python"&gt;Pythonで作る&lt;/h4&gt;
&lt;p&gt;XMLを手書きするのが苦痛な人のために、他の案も考えましょう。例えば、サイト更新時にPythonでフィードを生成する余裕があれば、&lt;a href="https://github.com/getpelican/feedgenerator"&gt;feedgenerator&lt;/a&gt;を使って以下のようなスクリプトを実行できます。これはあくまでサンプルであり、改行やクォーテーションの取り扱いを考慮していなかったり、拡張性に乏しい部分がありますが、基本的なフィード出力について知るには十分です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/usr/bin/env python3&lt;/span&gt;

&lt;span class="c1"&gt;# ##### つかいかた #####&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# 実行前に `pip install feedgenerator` でライブラリをインストールしてください&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# 例1: ./feedgen.py&lt;/span&gt;
&lt;span class="c1"&gt;#      =&amp;gt; サンプル入力からフィードを生成して標準出力に表示します&lt;/span&gt;
&lt;span class="c1"&gt;# 例2: ./feedgen.py input.txt&lt;/span&gt;
&lt;span class="c1"&gt;#      =&amp;gt; input.txtの内容からフィードを生成して標準出力に表示します&lt;/span&gt;
&lt;span class="c1"&gt;# 例3: ./feedgen.py input.txt output.txt&lt;/span&gt;
&lt;span class="c1"&gt;#      =&amp;gt; input.txtの内容からフィードを生成してoutput.txtに書き出します&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;xml.dom.minidom&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;feedgenerator&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Atom1Feed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;get_tag_uri&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_load_config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
    &lt;span class="n"&gt;site_metadata&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;site_metadata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;: &amp;quot;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;site_metadata&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;header&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;header&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;header&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;,&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="nb"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                    &lt;span class="n"&gt;header&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                    &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;quot;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;&amp;quot;,&amp;quot;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
                &lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;site_metadata&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generate_feed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;site_metadata&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_load_config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;feed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Atom1Feed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;site_metadata&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;TITLE&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;site_metadata&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;LINK&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;feed_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;site_metadata&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;FEED_URL&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;site_metadata&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;DESCRIPTION&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;reversed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;date&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;])):&lt;/span&gt;
        &lt;span class="n"&gt;pubdate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;fromisoformat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;date&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="n"&gt;feed&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_item&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;unique_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;get_tag_uri&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;pubdate&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;description&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;author_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;author&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;pubdate&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;pubdate&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;xml&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;minidom&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parseString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;feed&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;writeString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;toprettyxml&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;


&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;generate_feed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;generate_feed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;TITLE: サイトタイトル&lt;/span&gt;
&lt;span class="sd"&gt;LINK: https://example.com/&lt;/span&gt;
&lt;span class="sd"&gt;FEED_URL: https://example.com/feed.xml&lt;/span&gt;
&lt;span class="sd"&gt;DESCRIPTION: サイトの説明&lt;/span&gt;

&lt;span class="sd"&gt;date,title,author,link,description&lt;/span&gt;
&lt;span class="sd"&gt;&amp;quot;2021-01-01 00:00:00+09:00&amp;quot;,&amp;quot;タイトル1&amp;quot;,&amp;quot;作者名&amp;quot;,&amp;quot;https://example.com/post/1&amp;quot;,&amp;quot;面白い記事です&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;&amp;quot;2022-12-31 12:34:56+09:00&amp;quot;,&amp;quot;タイトル2&amp;quot;,&amp;quot;作者名&amp;quot;,&amp;quot;https://example.com/post/2&amp;quot;,&amp;quot;楽しい記事です&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;&amp;quot;2023-05-27 01:23:45+09:00&amp;quot;,&amp;quot;タイトル3&amp;quot;,&amp;quot;作者名&amp;quot;,&amp;quot;https://example.com/post/3&amp;quot;,&amp;quot;最新の記事です&amp;quot;&lt;/span&gt;
&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/amane-katagiri/7402ed1ddabf9050868c013a45690087"&gt;feedgen.py&lt;/a&gt;&lt;/p&gt;
&lt;h4 id="web"&gt;Webアプリで作る&lt;/h4&gt;
&lt;p&gt;Pythonを実行する環境がなかったり、リリースのたびにスクリプトを実行するのが面倒なら、以下のようなWebアプリがあれば便利かもしれません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="FGHI PQRSの入力画面" height="717" src="/images/feed-and-you/fghipqrs1.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="FGHI PQRSの出力画面" height="717" src="/images/feed-and-you/fghipqrs2.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://fghipqrs.ama.ne.jp/"&gt;無料フィード作成 - FGHI PQRS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/amane-katagiri/fghi-pqrs"&gt;FGHI PQRS&lt;/a&gt;は、この記事のために書かれたAtomフィードジェネレーターの小さなサンプルです。&lt;a href="https://qwik.builder.io/"&gt;Qwik&lt;/a&gt;で書かれ、&lt;a href="https://pages.cloudflare.com/"&gt;Cloudflare Pages&lt;/a&gt;で配信されています。その他、&lt;a href="https://tailwindcss.com/"&gt;Tailwind CSS&lt;/a&gt;や&lt;a href="https://modularforms.dev/"&gt;Modular Forms&lt;/a&gt;を組み合わせてデザインやフォームを実装しました。&lt;/p&gt;
&lt;p&gt;FGHI PQRSでは、フィード出力機能を持たない個人サイトからでも、サイト情報と記事の更新情報を入力することで有効なAtomフィードを生成できます。現在以下の機能が実装されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ウィザード形式を用いたサイト情報の入力&lt;/li&gt;
&lt;li&gt;シンプルでカラフルなカードUIによる更新情報の登録&lt;/li&gt;
&lt;li&gt;Atom配信フォーマットを完全に満たす最低限のフィード出力&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以下の機能はまだ実装されていません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URLを入力した際にサイトや記事のタイトルを取得する機能&lt;/li&gt;
&lt;li&gt;完成したフィードをサービス内で直接ホスティングする機能&lt;/li&gt;
&lt;li&gt;他のフォーマットによるフィード出力&lt;/li&gt;
&lt;li&gt;JavaScriptが無効な環境への対応&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;フィードがない個人サイトを運用していて、どうにかフィードを配信したいと思っている方は、ぜひ使ってみてください。機能が足りないと感じたら、いつでもフォークしてリッチなアプリに修正できます。&lt;/p&gt;
&lt;h2 id="_11"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;フィードは更新情報を配信できる自由度の高い手段であり、読者の側から情報を取得するプル型のアーキテクチャです。&lt;/li&gt;
&lt;li&gt;読者・作者の両方にとってフィードは強力な味方であり、できる限りフィードを通じて情報を配信・受信すべきです。&lt;/li&gt;
&lt;li&gt;フィードの利用を促進できるよう、具体的なフィードリーダーとその分類や、実際のフィードの作り方を例示しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:recommendation"&gt;
&lt;p&gt;Recommendationsとして自己参照リンクが誤っているという旨の警告が出ていますが、これはフィードのURLとして記載した例が存在しないものなので想定通りです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:recommendation" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>もみじがり 2</title><link href="https://ama.ne.jp/post/bookleaf-2/" rel="alternate"/><published>2023-05-23T14:45:00+09:00</published><updated>2023-05-23T14:45:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-05-23:/post/bookleaf-2/</id><summary type="html">&lt;p&gt;「しおり」を巡る少女のたたかい 後編&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は、2022年5月発行の&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;（&lt;a href="/post/bookleaf-1/"&gt;前半&lt;/a&gt;から続く）&lt;/p&gt;
&lt;h2 id="_1"&gt;マヤ「除光液とオキシドール、それと……」&lt;/h2&gt;
&lt;p&gt;「ねぇ、マーヤ。商店街にもみじって売ってるかなぁ？」&lt;/p&gt;
&lt;p&gt;その夜、家に帰ってきたアリスは開口一番困り顔でこんなことを言い出した。最近の定番になっていた真っ白なフリルブラウスには、日替わりで花を模したレジンのブローチが飾られている。今日は透明感のあるオレンジのガーベラだ。&lt;/p&gt;
&lt;p&gt;「もみじ饅頭？　厳島のパクリならあると思うけど」&lt;/p&gt;
&lt;p&gt;「違うよぉ。もみじの葉っぱのこと」&lt;/p&gt;
&lt;p&gt;もみじ。ムクロジ科カエデ属の落葉樹の総称、あるいは全体が赤や黄に染まった葉自体を指してそう呼ばれる。もみじ……もみじか。なるほど。さっとメモアプリを立ち上げて「しおり」の下に「もみじ」と書き込んで、一応イロハモミジの記事へのリンクを貼っておく。&lt;/p&gt;
&lt;p&gt;中稲でもみじと言ったら、たぶん中稲図書館がある「もみじ山」だろう。秋になるとまるで山火事みたいに真っ赤に色づく木々は、公式のVRサイトでも通年で紅葉ゾーンが設置されているほどには重要な観光資源であることが窺える。&lt;/p&gt;
&lt;p&gt;アリスが言うには、昨日なぜか二枚目の着任しおりを渡された勢いで、また館長にしおりを発行できないか聞いてみたところ「一人に何枚も渡すことはできないよ」と言われたらしい。もともと、しおりを何度も入手できるという話を聞いたことはなかったし、この返答に違和感はない。&lt;/p&gt;
&lt;p&gt;しかし、それならなぜ二枚目を渡したのかが分からなくなる。アリスもその矛盾が気になったらしく、さらに館長と話してみたところ、不思議なことに昨日の会話を覚えていなかったという。昨日はアリスのことを忘れていたのに、今日はアリスを忘れていたことを忘れている……なんて、ちょっとややこしい。&lt;/p&gt;
&lt;p&gt;館長は着任しおりを二枚も持っているアリスを見て、初めは彼女が不正を働いていたのではないかと訝しんでいたものの、ログを確認して結局は自分で渡したのを認めたらしい。&lt;/p&gt;
&lt;p&gt;「着任しおりは一枚返したよ。浦部さん、すごく困ってそうだったもん」&lt;/p&gt;
&lt;p&gt;「で、それが商店街のもみじと関係あるの？」&lt;/p&gt;
&lt;p&gt;「あ、そうそう。だからねぇ、もみじがりに行った証拠を見せたら新しいしおりをくれるって」&lt;/p&gt;
&lt;p&gt;「……しおりの配布って、そういう運用だっけ？」&lt;/p&gt;
&lt;p&gt;前にアリスから聞いた話では、しおりがもらえるのは辞令と着任のタイミング、毎月の新書籍振興賞&lt;sup id="fnref:bookaward"&gt;&lt;a class="footnote-ref" href="#fn:bookaward" title="旧書籍の普及に大きな成果を挙げた職員に贈られる賞。規模の大きな広報活動の評価として用いられることが多い。図書館ネットでは、いわゆる旧書籍が電子書籍の次世代に来るべきものと位置づけて、あえて 新 書籍と呼んでいた。"&gt;1&lt;/a&gt;&lt;/sup&gt;、あとは年間の表彰など。一種の勲章のような扱いだと聞いていた。広報用のしおりはあるけど、これはまた別の扱いになる。石上図書館でのアリスは、それはそれは真面目な勤務態度で評判だったらしい。もちろん目的はしおりだけど。&lt;/p&gt;
&lt;p&gt;「お詫びに、だって。でも、なんか変だよねぇ。そもそも今月はエメラルドのはずなのに。地産地消ってやつかなぁ」&lt;/p&gt;
&lt;p&gt;「えーと、館長さんは『もみじがり』って言ったの？　『紅葉狩り』じゃなくて？」&lt;/p&gt;
&lt;p&gt;「違いが分かんないよぉ……でも、たぶん『もみじがり』だった気がするなぁ」&lt;/p&gt;
&lt;p&gt;アリスが「ほら」と物理端末を差し出して私に画面を見せる。おそらくどこかのOEMっぽいメッセンジャー「メープル・コネクト」には、いかにも上司と部下という感じの館長とアリスの会話が表示されていた。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;しおりが欲しいなら分けてあげてもいいよ。私のお願いを聞いてくれたら、だけどね&lt;/p&gt;
&lt;p&gt;私は外に出られないから、代わりにもみじがりに行ってきてほしいんだ&lt;/p&gt;
&lt;p&gt;あの薄くて真っ赤な自然の芸術を、もっと近くで見てみたくて&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ここまで、メッセージの区切りも含めて原文通り。なんだかキザっぽい……というのはオブラートに包んだ表現で、そこはかとないおじさんっぽさを感じる。一歩間違えば、しおりと引き換えに自撮りでも要求されそうな雰囲気だ。あんまりまじまじ見るとまた怪しまれてしまうから、ぱちりと二度まばたきをして「へぇ」と言って画面から目を離す。&lt;/p&gt;
&lt;p&gt;今は五月。紅葉とはまるで正反対の芽吹きの時期だ。館長もそれを承知で言っているのだろう。春のもみじを出してみよ……例えるなら、一休さんに課せられたとんちのようだ。とはいえ、この時期に色づく品種のもみじは割と知られているし、食用のドライもみじなら通販でも数日で届くだろうから、難題というほどでもない。&lt;/p&gt;
&lt;p&gt;秋になれば、あるいは秋でなくてもすぐに入手できるような品物をわざわざ持ち込ませるなんて、しかもそれを貴重なしおりと交換するなんて、何の目的があるんだろうか。&lt;/p&gt;
&lt;p&gt;「あのさ、アリスの上司を悪く言いたいわけじゃないんだけど……その、館長さんって信用できるの？」&lt;/p&gt;
&lt;p&gt;「どうして？　すごくいい人そうだったよ。しおりもくれるみたいだし」&lt;/p&gt;
&lt;p&gt;いや、しおりだけじゃん。咄嗟にそう突っ込みたくなるのを抑えて、もう少し探りを入れることにした。&lt;/p&gt;
&lt;p&gt;館長についての疑念は、他にもいくつかあった。図書館ネットの創設者である浦部槭樹氏には一人娘がいたが、若くして急死。彼の血はそこで途絶えたはずだが、現館長――アリスが浦部さんと呼ぶ――は浦部氏の子孫を名乗っているらしい。そして、浦部氏の後継として数十年前に館長に就任してからその席を守り続けているというのだ。&lt;/p&gt;
&lt;p&gt;3Dホログラム越しにしか姿を現さない不老不死の館長といえばつまらない作り話だけど、実際にアリスが話したというなら急に信憑性が増す。そして、そんな奇妙な存在が持ちかけられた一見おかしな取引は、中稲図書館が抱えた何らかの事情を明らかにする可能性があった。&lt;/p&gt;
&lt;p&gt;「でもでも、しおりってすごく貴重なの。五年も働いて、やっと十枚もらえるかどうかなんだから」&lt;/p&gt;
&lt;p&gt;「そんな貴重なしおりをもみじ一枚で交換できるって、怪しいと思わない？」&lt;/p&gt;
&lt;p&gt;「それは、そうだけどぉ……」&lt;/p&gt;
&lt;p&gt;館長にもみじを渡すだけで、本当にまたあのオパールのしおりがもらえるのだろうか。どう考えても、やっぱりおかしな話だ。&lt;/p&gt;
&lt;p&gt;角度によって模様が変わるあの多層的な輝きは、他のしおりにない独特のものだった。これまで、多くのしおりは宝石仕立てと言いつつも、実態はその質感を精巧に再現したアクリルかポリエステル樹脂のシートだった。当然、発色や輝きに限界がある。でも、あのしおりの輝きは明らかにもっと細かい加工が施されたものだ。オパールによく似た、しかし人工的な規則性を持つパターンは、まさにホログラムディスプレイのウォームアップを思わせる。&lt;/p&gt;
&lt;p&gt;しかし、どうやらあれは本物のオパール製ではないらしい。アリスは「地産地消」と言っていたけど、いくら調べても中稲がオパールの名産地だなんて話はどこにもなかったからだ。中稲の周辺に現役の鉱山はないし、過去にもわずかに銅鉱石が採れた記録しかない。アリスがなぜこんな勘違いをしているのか掘り下げると、ここにも館長に対する疑念が生まれそうだった。&lt;/p&gt;
&lt;p&gt;「アリス。もみじは私が買っておくよ。たぶん、商店街より通販の方が早いし」&lt;/p&gt;
&lt;p&gt;「うん、ありがと！」&lt;/p&gt;
&lt;p&gt;それでも、大金や身体を差し出す違法な取引を持ちかけられているわけではないんだし、試してみる価値はあるだろう。&lt;/p&gt;
&lt;p&gt;アリスがシャワーを浴びに行ったのを確かめてから、スクリーンショットを文字起こしに回す。短いやり取りだけど、三百バイトくらいはありそうだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;中稲図書館に関する調査は、確実に前進していた。ちょっとしたミスはあったけど……まだ、情報収集の範囲。うん。&lt;/p&gt;
&lt;p&gt;この町――上中稲駅前とその周辺――は、いわば中稲図書館のネットワークが抱える城下町のような存在らしい。アリスが部屋にいる間、より正確にはアリスの物理端末が部屋にある間だけ、LANを出入りするトラフィックが増加している。&lt;/p&gt;
&lt;p&gt;町中のエンドポイントからこの部屋にやってくるパケットには特徴的な暗号化が施されており、アリスの物理端末で処理した上でさらにどこかに転送されているようだ。この中には中稲図書館のアドレスも含まれている。受け取ったパケットの三分の一ほどはこの町の外に転送されていたが、残りはまたこの町に戻されていた。&lt;/p&gt;
&lt;p&gt;思い返してみると、いろいろと不自然な点はあった。一介の田舎町にすぎない中稲に最新の量子回線が整備されていること。町内で折り返す通信なら最高で十テラビットは出すことができること。これは、一般的に普及している一テラビット・イーサネットの十倍の速度だ。&lt;/p&gt;
&lt;p&gt;図書館周辺に回線が整備されているのはあくまで &lt;em&gt;おこぼれ&lt;/em&gt; だと思っていたけれど、職員の端末をリレーして政府の監視を攪乱するためだと考えれば、実用的な速度を出すために必要な措置という説明が付く。もちろん仮説だけど。&lt;/p&gt;
&lt;p&gt;成果は他にもあった。図書館が自らのMAN内にいる職員にメッセージを送信する場合は、リレーを使わずに通信を行うのだ。おかげで、たまねぎのように何重も暗号化が施されたパケットを解析する必要がなくなった。これは、さっきアリスが見せてくれたメープル・コネクトの通信にも当てはまる。&lt;/p&gt;
&lt;p&gt;さらに、館長が使っているメープル・コネクト――セルフホストのメッセンジャースイートらしい――はおそらく開発当時の古いバージョンのまま更新されていないらしく、暗号化に用いるOLMライブラリ&lt;sup id="fnref:olm"&gt;&lt;a class="footnote-ref" href="#fn:olm" title="エンドツーエンド暗号化の根幹技術である二重ラチェットを実装したライブラリ。"&gt;2&lt;/a&gt;&lt;/sup&gt;に脆弱性が残っていた。なんでも署名を通したり、数百回の総当たりで解読できるほどではないものの、条件が揃えば十分に利用できる。&lt;/p&gt;
&lt;p&gt;「『私は外に出られないから、代わりにもみじがりに行ってきてほしいんだ』か……」&lt;/p&gt;
&lt;p&gt;絶景の紅葉に囲まれる中稲図書館なら、秋になれば飽きるほどもみじは見られるはずなのに、今までどういう生活を送ってきたのだろう。館長に就任してからずっと図書館に住んでいたとして、文字通り一歩も外に出られないならもはや軟禁と変わらない。アリスをけしかけるあからさまな嘘でなければ、また謎が残る。&lt;/p&gt;
&lt;p&gt;まさか、館長の正体は太陽が出ている間は外に出られない吸血鬼だったとか？　それなら、数十年間姿が変わっていない噂も、アリスの前に姿を現さない理由も、なんとか説明が付くかもしれない。……旧書籍を守る組織のリーダーが吸血鬼って、完全に去年観た「アナログゾンビの謎&lt;sup id="fnref:analogzombee"&gt;&lt;a class="footnote-ref" href="#fn:analogzombee" title="旧書籍を持って暴れ回るゾンビが街を闊歩する危険な世界で、複合型図書館を拠点に活動する電子書籍隊が平和を取り戻していくというプロパガンダ映画。フィルムマークスの平均評価では2.7点。"&gt;3&lt;/a&gt;&lt;/sup&gt;」に引きずられてるな。&lt;/p&gt;
&lt;p&gt;とにかく、しおりを使ってアリスを騙すなんて許せない。やっぱり、アリスは私が救わなきゃ。&lt;/p&gt;
&lt;p&gt;パケットから復元した暗号化済みのチャンクと、アリスから受け取った――これは決して騙して入手したわけではない――メッセージのペアを解析に回す。上手くいけば、数日後には鍵が手に入るはずだ。&lt;/p&gt;
&lt;h2 id="_2"&gt;アリス「パンがなければしおりを食べたら？」&lt;/h2&gt;
&lt;p&gt;「マーヤぁ、ちょっと手伝ってくれない？」&lt;/p&gt;
&lt;p&gt;「え、また館長さん？」&lt;/p&gt;
&lt;p&gt;図書館から帰ってきたわたしの言葉が終わるより先に、キッチンに立つマヤが振り向いて面倒そうな声を上げた。いつもより勘が冴えてない？と思ったけど、流石に四回目にもなると帰宅する足音で分かるのかもしれない。わたし、今とっても楽しいから。&lt;/p&gt;
&lt;p&gt;お仕事とは関係ない簡単な課題をこなすだけで、浦部さんがたくさん報酬をくれる――こう書くとなんだか怪しい副業の広告に見えちゃうけど、今のところちゃんとしおりはもらえている。&lt;/p&gt;
&lt;p&gt;「そうなの。でも、ちょっといつもより時間がかかるっていうか……」&lt;/p&gt;
&lt;p&gt;大きなエプロンに着られているマヤが、氷水に漬けた小麦粉のボウルをかき混ぜていた。お母さんのお手伝いなんてかわいいね！なんて冗談を言ったらまた怒られちゃうから、わたしはそのまま今日の課題について話し始める。&lt;/p&gt;
&lt;p&gt;この前のもみじは、できるだけ同じ形の赤と緑の葉を探してラミネートしおりに仕立ててみた。裏表に貼り合わせたリバーシブル仕様だから、赤いもみじに変わる瞬間をいつでも見られるようになっている。もみじの束と一緒に浦部さんに渡したら、とっても喜んでくれた。やっぱり、しおりをもらうならしおりで応えなくちゃね。&lt;/p&gt;
&lt;p&gt;でも、箱を開けると赤と緑のセットでそれぞれ百枚も入っていたから、似た形を探すのがなかなかの一仕事。マヤはこれが一番コスパがいいって言ってたけど、そうやっていつも余らせちゃうのよね。丸ごと浦部さんに押し付けるわけにも行かないから、今日もこうして天ぷらにして夕食に出せるくらいたくさん残っている。&lt;/p&gt;
&lt;p&gt;図書館のお仕事は楽しいけど単調で、その上しおりをもらうにはコツコツと努力する必要がある。五年も働いて、やっと十枚もらえるかどうか。中稲に来てからは、本を順番にスキャンしてフィルム化する作業ばっかりで眠くなる日も多かった。でも、浦部さんの課題はすごく簡単で、その上百個や二百個こなさなくてもしおりと交換してもらえるのだ。それはもう、これまで培った &lt;em&gt;しおり感覚&lt;/em&gt; が狂ってしまうほどに。&lt;/p&gt;
&lt;p&gt;しおりを集めすぎて &lt;em&gt;おはか&lt;/em&gt; がいっぱいになってしまうのを心配したり、オパールのしおりが何枚も集まって少し飽きてきちゃったかも……なんて、贅沢すぎることまで考えられるようになった。&lt;/p&gt;
&lt;p&gt;これまでの課題は、もみじから始まって、四つ葉のクローバー、金木犀……マーヤのおかげで何とか切り抜けて、今日は四枚目だ。でも、今回は少し趣が違った。&lt;/p&gt;
&lt;p&gt;「砂浜で花火をしてる写真？　どういうこと？」&lt;/p&gt;
&lt;p&gt;「わたしが聞きたいよぉ。遊びに行くだけでしおりがもらえるなんて、今までなかったもん」&lt;/p&gt;
&lt;p&gt;マヤが怪訝な顔でわたしに尋ねるけど、わたしに言われても分からない。これまでの課題は、浦部さんが手に入れられないものを代わりに持ってくるという、やさしいおつかいみたいなものだった。それが今回、遊んでいる写真を送ってくれだなんて。どうしちゃったのかな。&lt;/p&gt;
&lt;p&gt;思えば、今日は館長室をノックしても返事がなかったし、誰かの楽しそうな姿を見て気を紛らわしたくなるほど忙しいのかも。館長室で浦部さんとお話せずに、課題のメッセージだけが送られてくるのはこれが初めてだった。&lt;/p&gt;
&lt;p&gt;「じゃあ、明日近くの砂浜に行こうか？　車ならすぐだし」&lt;/p&gt;
&lt;p&gt;「うーん……そうなんだけどぉ、今回はやめておこうかなって」&lt;/p&gt;
&lt;p&gt;ほんの少しの違和感が引っかかって、なかなか決心が付かない。しおり感覚が狂ってるなんて言ってみたものの、遊びに行くだけでしおりがもらえるのが変な条件なことくらいは理解できる。おつかいのお礼くらいなら何とか説明が付くけど、これは納得できる範囲を超えていた。&lt;/p&gt;
&lt;p&gt;浦部さんから出された課題だとしても、その忙しさと疲れにつけ込んでいるみたいで流石に後ろめたい。浦部さんは忙しくて記憶が飛びがちだし、今回も何か勘違いしちゃってるのかも。この前、しおりに目がくらんで持って帰っちゃったこともあったから、何度も揉めるわけにもいかなかった。&lt;/p&gt;
&lt;p&gt;「……べ、別にいいじゃん。館長さんがくれるって言ってるんだし。行こうよ、アリス」&lt;/p&gt;
&lt;p&gt;と、わたしが躊躇しているのを見て、なぜかマヤは油を温める火を止めてわたしに向き直る。明日までの課題の締め切りを今思い出したような、あんまり見たことない不思議な顔。山の中にこもりっぱなしだから、そろそろ外に出たかったのかしら。マヤが乗り気なら話は別だ。わたしもマヤと遊びに行けるなら大歓迎だし。&lt;/p&gt;
&lt;p&gt;「うん、じゃあ行く！　マーヤ、ありがと。また助けてもらっちゃったぁ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「マーヤ！　風が気持ちいいよ！」&lt;/p&gt;
&lt;p&gt;家から一番近いショッピングセンターからさらに北へ。知らない道を走るほんの少しの非日常を感じながら、車で三十分ほど助手席でマヤと話しているうちに、海の見えるガラガラの駐車場に辿り着いた。太陽が傾きかけた夕方の空に、一筋の飛行機雲が走っている。&lt;/p&gt;
&lt;p&gt;まだ五月の城田海岸には人の姿がほとんどない。梅雨の気配もないこの時期の海岸は波も穏やかで、数日続いた晴れのおかげでよく乾いた砂がさらさらとした踏み心地を保っている。去年買った古いDAVE DROPのビーチサンダル越しに踏みしめる砂を感じながら、そっと前にもう一歩。&lt;/p&gt;
&lt;p&gt;「アリス、あんまり走り回っちゃダメだからね」&lt;/p&gt;
&lt;p&gt;「もー。わたし、子供じゃないよぉ」&lt;/p&gt;
&lt;p&gt;途中で買った豪華な花火セットを抱えてAnk Rougeの白いマキシワンピース姿で歩いてくるマヤは、まるで大きな花かごを運ぶ少女のよう。歩く度に胸元の黒い大きなリボンが揺れて、彼女のかわいらしさを引き立てる。やっぱりよく似合う。&lt;/p&gt;
&lt;p&gt;一方のわたしは、おしゃれな懐中時計を持って駆け回る白いうさぎのキャラクターがプリントされた水色の浴衣で砂浜に立っている。マヤが「もっとかわいいのでいいんじゃない？」なんて言ってくれたから、とびっきりのを出したのだ。彼女の口からそんな言葉が出たことがすごく嬉しくて、心の中で何度も反芻していた。&lt;/p&gt;
&lt;p&gt;「花火にはまだちょっと明るいけど、軽くウォームアップしておこうか」&lt;/p&gt;
&lt;p&gt;「うん！」&lt;/p&gt;
&lt;p&gt;花火セットの袋を開けたマヤが、台紙から太いろうそくを取り外して砂浜に立てる。花火を楽しむ前のこの静かな瞬間を見ていると、地球の誕生日を祝っている気分になって好きだった。&lt;/p&gt;
&lt;p&gt;その横で、わたしも袋の奥から線香花火を取り出す。隅に追いやられがちな線香花火でも、こんなに大きなセットなら前菜とデザートで二度楽しめるくらいの量が入っている。やっぱり浴衣に似合うのはこれだよね。&lt;/p&gt;
&lt;p&gt;ワンピース姿のマヤには……赤い火花が噴き出す豪華な花火を両手持ちで。なんて思ったけど、マヤも最初は線香花火にチャレンジするみたい。&lt;/p&gt;
&lt;p&gt;しゃがみ込んでろうそくに花火を近づけると、先から上がった炎が徐々に丸くなって火花を放ち始める。息を吸う度に先端が揺れて、わたしの心が露わになっている気がした。&lt;/p&gt;
&lt;p&gt;「あのさ、アリス」&lt;/p&gt;
&lt;p&gt;「どうしたの、マーヤ？」&lt;/p&gt;
&lt;p&gt;「私、アリスのこと、今でもちゃんと好きだから」&lt;/p&gt;
&lt;p&gt;思いがけない告白に、わたしは思わず顔を上げる。しかし、マヤはまるでわたしと目を合わせたくないとでもいうように、じっと下を見つめたまま。&lt;/p&gt;
&lt;p&gt;そんな彼女の顔を覗き見るのと同時に、手元で弾ける火花がぽとり、と砂浜に吸い込まれていった。&lt;/p&gt;
&lt;p&gt;「あ、落ちた。アリスの負けだね」&lt;/p&gt;
&lt;p&gt;……と、マヤはさっきまでの真剣な表情なんて嘘みたいに、けらけらと笑ってわたしの方を向く。マヤったら、わたしを騙したのね！　人の気持ちを利用して動揺させようなんて。&lt;/p&gt;
&lt;p&gt;先端を失ってひらひらと揺れる線香花火の頼りなさが恥ずかしくなって、わたしは勢いよく立ち上がった。&lt;/p&gt;
&lt;p&gt;「マーヤ、ずるいよぉ。もう一回やろう？　ね？」&lt;/p&gt;
&lt;p&gt;辺りが少しずつ暗くなって、花火のための時間に変わっていく。今ならきっと素敵な写真が撮れるだろう。でも、この高揚感までは写真に残せないのが少しだけ残念だった。&lt;/p&gt;
&lt;h2 id="_3"&gt;マヤ「ハッキングって地味な作業が多いんだよ」&lt;/h2&gt;
&lt;p&gt;中稲図書館についての調査は、ある日唐突に終わりが訪れた。&lt;/p&gt;
&lt;p&gt;「調査はこれで完了です。必要な情報が揃ったため、中稲図書館の爆破を進行することになりました」&lt;/p&gt;
&lt;p&gt;そんなメッセージが送られてきてから、全く連絡が取れなくなったのだ。たぶん、依頼者が言っていた深部コアキーを入手できたからだろう。それにしても、感謝の言葉もなく随分あっさりしたメッセージだ。もちろん、報酬は気前よく先払いだったから問題ないけど。&lt;/p&gt;
&lt;p&gt;館長が持つ鍵をクラックしてから、中稲図書館の中央システム内部に侵入するまでは時間がかからなかった。内部は想像以上に古いシステムで、探索が簡単な代わりに、いろいろな場所に怪しいデータの欠片が大量に散らばっていた。侵入が済んだ場所にボットを設置して結果を確認して……その繰り返し。やることが自明な集中力勝負で、逆に時間がかかってしまった。正直、今でもあれが「深部コアキー」なのかは自信がない。&lt;/p&gt;
&lt;p&gt;不思議なのは、館長自身も――正確には、館長の鍵を使って――このデータにアクセスできる権限がなかったことだ。あくまで権限上の問題で、ちょっとした手順を踏めばすぐにストレージから取り出せるレベルだったものの、普段のオペレーションでこんな面倒なことをするとは思えない。では、あの鍵は誰が何のために使うものだったのだろう。今となっては、依頼者に尋ねることさえできない。&lt;/p&gt;
&lt;p&gt;「しかし、『中稲図書館の爆破』なんて……」&lt;/p&gt;
&lt;p&gt;アリスの身に危険が及びそうになったら手を引くと言ったけど、まさか全てが終わってからこんな事態になるなんて。明日は、アリスを何とか休ませて中稲を離れた方がいいかもしれない。&lt;/p&gt;
&lt;p&gt;こんな強硬手段に出るような相手だと分かっていたら、初めから協力しなかったのに。……と言ったところで、どうしようもない。アリスを図書館から引き離したかったのは私だし。&lt;/p&gt;
&lt;p&gt;でも、彼女にはどう説明したらいいものか。中稲図書館が爆破されるなんて正直に言っても信じてもらえないだろうし、急に遊びに行こうなんて言ったら逆に怪しまれそうだ。それに、明日爆破されると決まったわけでもない。しおりをもらうことに躍起になっているアリスが、何日も理由なく休んでくれるとは思えなかった。&lt;/p&gt;
&lt;p&gt;あるいは、公安庁に通報するのはどうだろう。たとえ図書館ネットが標的になっていたとしても、市民を巻き込みかねない爆破予告なら対応せざるを得ないはずだ。もちろん、この依頼者が公安庁の人間でなければ、だけど。&lt;/p&gt;
&lt;p&gt;百歩譲って公安庁とは関係のないただのテロだとしても、また同じ壁に当たってしまう。私が「中稲図書館が爆破される可能性があります。いつ爆破されるかは分かりません」なんて素直に言ったら、最初に疑われるのは私だろう。それどころか、私はお金と引き換えにテロ組織に情報を提供してしまったのだから、実は完全に真っ黒だ。&lt;/p&gt;
&lt;p&gt;そうなると、そもそも公安庁にこの予告を知られること自体がリスクということになる。逮捕、拘束……くらいならまだしも、これが大々的に報道されれば、図書館ネットが今より強硬な活動を進める口実を与えてしまうかもしれないし……何より、アリスに迷惑がかかってしまう。&lt;/p&gt;
&lt;p&gt;「でも……アリスだけは救わなきゃ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;その夜、アリスが図書館から無事に帰ってきた。彼女にとってはいつもと変わらない帰り道かもしれないけど、私にとっては大きな救いだ。とりあえず、今日はこれで一安心。&lt;/p&gt;
&lt;p&gt;「マーヤ！　浦部さんが、新しいしおり……って、どうしたの？　そんな顔して」&lt;/p&gt;
&lt;p&gt;「あ……アリス、おかえり」&lt;/p&gt;
&lt;p&gt;監視用のボットは中央システムに置いたままだから、不審な動きがあればすぐにリレーを通ってここまで通知が来る。まさか今日いきなり爆破できるわけはないだろうと高をくくりながらも、心のどこかに最悪の事態への恐怖が残っていた。「アリス、今日は早く帰ってきてね」なんてメッセージを送ってから、部屋の中を何度も往復してアリスの帰りを待つ姿は、まるで付き合いたての恋人のようだったろう。&lt;/p&gt;
&lt;p&gt;相手が過激な組織だと分かってからは、迂闊な行動は取りにくくなった。直接図書館に向かって危険を知らせに行ったところでまともに取り合ってはもらえないし、仮に避難まで繋げたとしても、それは明らかに相手を害する行為だ。報復のおそれがあるのはもちろん、私ではなくアリスに標的が向くことさえ危惧しなければならなくなる。&lt;/p&gt;
&lt;p&gt;こんなこと、アリスに言ったら意味なく怖がらせちゃうだろうな。私でさえ、どうすればいいか分からないのに。&lt;/p&gt;
&lt;p&gt;「珍しくメッセ送ってきてたけど、もしかして何かあったの？」&lt;/p&gt;
&lt;p&gt;「いや、なんでもないよ。もみじの天ぷら作るから、ちょっと待っててね」&lt;/p&gt;
&lt;p&gt;「そう？　なら、いいけど。これ、見て見て」&lt;/p&gt;
&lt;p&gt;アリスがリュックから &lt;em&gt;おはか&lt;/em&gt; を取り出す。さっき言っていた、新しいしおりだろうか。&lt;/p&gt;
&lt;p&gt;まさか、あれだけのミスをしてもまだしおりの課題が続くなんて。てっきり、館長が怒って中止にしたと思っていた。もともと、もみじやクローバーなんて、アリスを動かすための口実にすぎないのかもしれない。どうせ、もう少ししたらその企みも失敗するはずだ。&lt;/p&gt;
&lt;p&gt;しおりをもらうのなんてもう日常じゃん、なんて思ってアリスの手元を見ていると、その興奮の理由が分かった。&lt;/p&gt;
&lt;p&gt;「エメラルド？　よかったじゃん。五月のしおりも揃ったね」&lt;/p&gt;
&lt;p&gt;&lt;em&gt;おはか&lt;/em&gt; の新しいポケットに入っていたのは、最近はもう見飽きたというほど慣れてしまったオパールのしおりではなく、透き通る森の空気をそのまま固めたようなエメラルドのしおりだった。中稲図書館に来てから館長はオパールばかり渡しているけど、アリスとしてはまだ揃っていない種類のしおりも欲しかったのだ。&lt;/p&gt;
&lt;p&gt;「あ、あれぇ？　どこいっちゃったのかなぁ」&lt;/p&gt;
&lt;p&gt;「そこにあるじゃん。新しいやつでしょ？」&lt;/p&gt;
&lt;p&gt;「違うよぉ。赤くて、もみじ色のをもらったの。綺麗なルビーだなぁって思ったのに」&lt;/p&gt;
&lt;p&gt;七月のしおりが配られるのもおかしな話だけど、オパールのしおりを大量に持っている状況でそれを言っても仕方ないのかもしれない。妙な勘違いをしていたアリスは、まだ状況を飲み込めない様子で「おかしいなぁ」と呟きながら裏や表を撫でたり透かしたりしている。&lt;/p&gt;
&lt;p&gt;「やっぱり、館長室でもらったのと同じだなぁ。机に置いてあったときは赤かったのに。浦部さんの手品？」&lt;/p&gt;
&lt;p&gt;「いや、そんなわけないと思うけど……」&lt;/p&gt;
&lt;p&gt;アリスの記憶をそのまま信じると、目の前にあるしおりは、帰宅途中でルビーからエメラルドに変わった魔法のしおりということになる。そんなことがあるわけない……と思いつつ、何かが記憶に引っかかる気がした。昼は赤くて、夜は緑に変わる不思議な物質。どこかで聞いたことがあるような――&lt;/p&gt;
&lt;p&gt;「不思議なしおりだねぇ。事務室の入室センサーにかざしたら、特別賞がもらえたりして」&lt;/p&gt;
&lt;p&gt;「入室センサー？」&lt;/p&gt;
&lt;p&gt;しかし、記憶を辿るより先にアリスから聞き慣れない単語が飛び出した。&lt;/p&gt;
&lt;p&gt;アリスの話では、しおりには事務室のドアを開ける効力があるらしい。目立たない場所にRFタグでも載っているんだろうか。旧書籍保護団体が情報を隠す隠れ蓑としてはストレートすぎて、逆に思い至らなかった。そうすると、館長が何枚もオパールのしおりを渡しているのもアリスに何かを託すための作戦だった、という新たな説が持ち上がる。&lt;/p&gt;
&lt;p&gt;一枚一枚にRFタグが一枚ずつ載っているとして、合わせても最大で十数キロバイト程度。しかし、せいぜい数千文字くらいでアリスに何を伝えるつもりだろう。数千文字くらいなら一枚のしおりで済ませばいいし、もしかしたら何枚もRFタグを載せているのかも……と、そこで、あることに気付いた。&lt;/p&gt;
&lt;p&gt;「そうか！　あれは、全部記録面だったのか」&lt;/p&gt;
&lt;p&gt;「マーヤ、急にどうしたの？」&lt;/p&gt;
&lt;p&gt;あのオパールの質感がホログラムディスプレイの発光面に似ているのはただの偶然で、人の目を癒やすための装飾だとばかり思っていた。しかし、あれはRFタグの入れ物なんかじゃない！　しおり全体がホログラフィックメモリで、しかも最後の一枚は――&lt;/p&gt;
&lt;p&gt;「えーとね、アリス。悪いんだけど、ちょっとそのしおりを――」&lt;/p&gt;
&lt;p&gt;《ビーッ！　ビーッ！》&lt;/p&gt;
&lt;p&gt;――と、いきなりスマートグラスが赤いエアロを何枚もポップして私の視界を塞ぐ。これは、中稲図書館に置いてあるボットのアラートだ。場所は……館長室？　それに、もうエネルギー反応が出てる！　どうして？　あそこは一番深部だから、辿り着くのにも時間がかかるはずで――とにかく、いくらなんでも決行が早すぎる！&lt;/p&gt;
&lt;p&gt;真っ赤になった私の視界を覗き込むアリスは、放っておいたら死んでしまいそうなほどに何も知らない無垢な顔をしていた。&lt;/p&gt;
&lt;p&gt;「アリス、伏せてっ！」&lt;/p&gt;
&lt;p&gt;そんなアリスを押し倒すように彼女の腰に飛びかかって、私たちはそのまま床に倒れ込んだ。&lt;/p&gt;
&lt;p&gt;荒い呼吸がよく聞こえるわずかな沈黙が流れて、それから数秒。ドカーン！という大きな音と共に、アパート全体がミシミシと震え出す。まるで、空中で地震が起きたような揺れ方だ。部屋の窓がガタガタと不快な音を立て、屋根はゴウゴウと風切り音を鳴らし続けている。&lt;/p&gt;
&lt;p&gt;「きゃあっ！　マーヤ、何の音？」&lt;/p&gt;
&lt;p&gt;「大丈夫だよ、アリス……」&lt;/p&gt;
&lt;p&gt;小さく身体を丸めるアリスを床に押し付けたまま伏せているうちに、部屋がやがてまた静けさを取り戻した。外では、爆発を不審に思った人たちが集まって騒ぐ声が徐々に大きくなっている。何を話しているかはよく聞こえないけど、図書館が巻き込まれていることに間違いないだろう。&lt;/p&gt;
&lt;p&gt;私に収まってちっぽけに見えるアリスの身体がぶるぶると震えていて、背中を撫でてどうにか落ち着かせようと自分の身体を起こすと、そんな私の手も抑えられないほどに震えているのが分かった。あ……本当に、爆発したんだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「マーヤ！　図書館が……図書館が！」&lt;/p&gt;
&lt;p&gt;外に出ると、中稲の暗い夜闇に真っ赤な炎が浮かんでいた。もみじ山の真ん中で燃える中稲図書館は、いつか観光協会サイトのVR体験で見た景色とよく似ている気がした。そっか、アリスは図書館が爆発するなんて知らなかったんだっけ……なんてぼんやり考えている間にも、図書館から出た山火事はどんどん燃え広がっていく。&lt;/p&gt;
&lt;p&gt;「浦部さんが、まだ図書館にいるかも……」&lt;/p&gt;
&lt;p&gt;「もう、流石に帰ったんじゃない？　大丈夫だよ」&lt;/p&gt;
&lt;p&gt;「だって、外に出られないって言ってたもん！　きっと、病気か何かで動けないんだよぉ」&lt;/p&gt;
&lt;p&gt;アリスがこんなに大きな声を上げるのなんて久しぶりだ。私はアリスと前にも同じような勘違いで大げんかしたのを思い出しながら、そっと彼女の背中を撫でた。今は、どんな真実を告げてもきっと受け入れてくれないだろうから。&lt;/p&gt;
&lt;p&gt;「佐藤さんは平気みたいだけど、浦部さんの既読が付かないよぉ……マーヤぁ……」&lt;/p&gt;
&lt;p&gt;振り向いたアリスの目から大粒の涙がこぼれて、私の頬に落ちる。その涙を手で拭うと、なんとなく彼女の気持ちに引きずられてしまいそうになる。それでも、頭の片隅にはこの状況を見つめる冷静さが残っていて、私に何かを告げようとしていた。&lt;/p&gt;
&lt;p&gt;館長は外に出られないとか、病気で動けないとアリスは言うけれど、私にはどうも彼女が騙されているとしか思えなかった。爆発直前どころか、アリスの勤務中でさえ図書館に館長らしき生体反応はなかったから。&lt;/p&gt;
&lt;p&gt;館長室に置かれたホログラムディスプレイが接続されているのは、その隣に本棚の隠し扉で区切られた謎のデータセンターだった。このデータセンターは中央システムと異なるセグメントに置かれていて、おそらくアリスは今も存在さえ知らないだろう。&lt;/p&gt;
&lt;p&gt;中央システムからは館長の鍵でアクセスできるところを見て、ホログラム姿を楽しむためのプライベートな計算資源だとばかり思っていたけど……まさか！&lt;/p&gt;
&lt;p&gt;外に出られない館長。姿の変わらないホログラム。そんな館長がアリスに託したオパールのしおり――もとい、ホログラフィックメモリの数々。これだけ大きな記憶容量で何を遺そうとしているのか、どうにも予想できなかった。&lt;/p&gt;
&lt;p&gt;しかし、やっとだ。やっと、ピンと来た。&lt;/p&gt;
&lt;p&gt;これは館長の &lt;em&gt;おはか&lt;/em&gt; だ。あるいは、館長そのものと言ってもいい。だから、目の前で燃えている図書館の地下に眠っている館長は死んだりしない。いや、館長なんてもともといなかったんだ。&lt;/p&gt;
&lt;p&gt;「ねぇ、アリス」&lt;/p&gt;
&lt;p&gt;「な……なぁに？」&lt;/p&gt;
&lt;p&gt;「えーっと、その……」&lt;/p&gt;
&lt;p&gt;今、私がこの事実を告げずにアリスを慰めてこの場を収めたなら、館長は &lt;em&gt;死んで&lt;/em&gt; しまうだろう。そして、図書館ネット創設者の子孫を名乗る館長を失った中稲図書館は、再び救世主が訪れない限り今度こそ読書広場に作り替えられるはずだ。上手くいけば、徐々に図書館ネットは勢力を失って消滅するかもしれない。&lt;/p&gt;
&lt;p&gt;そうすれば、私は……私は、アリスを図書館ネットから救い出せる。&lt;/p&gt;
&lt;p&gt;でも、アリスはそんなこと望んでるんだろうか。館長の無事を祈って取り乱すほどの彼女が、その &lt;em&gt;死&lt;/em&gt; を受け入れなければならなくなったら、今度はどれだけ涙を流すことになるだろう。しおりのために働いているだけ、なんて決めつけていたのはもちろん私の方で、アリスにはアリスの人間関係がある。&lt;/p&gt;
&lt;p&gt;それを切り離してまで、私は。&lt;/p&gt;
&lt;p&gt;「アリス。もし、館長さんが無事だったら嬉しい？」&lt;/p&gt;
&lt;p&gt;「当たり前じゃん！　マーヤ、爆発でおかしくなっちゃったの？」&lt;/p&gt;
&lt;p&gt;山火事はまだ勢いを増している。ほんのりもみじ色に照らされた右頬から、また一筋の涙が流れる。&lt;/p&gt;
&lt;p&gt;そうだよ。親しい人に死んでほしくないだなんて、当たり前のことだ。アリスを図書館から引き離そうとするばかりで、大事なことを忘れてしまうところだった。&lt;/p&gt;
&lt;p&gt;「分かった。じゃあ……浦部さんを、呼び戻そうか」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「マーヤ。魔法陣ができたよぉ」&lt;/p&gt;
&lt;p&gt;しおりからデータを取り出しつつホログラム表示の準備を進める私の後ろで、アリスは五月のカレンダーを剥がしてその裏に浦部さんを &lt;em&gt;召喚&lt;/em&gt; するための舞台を作っていた。エアロを紙に重ねて油性ペンでたどたどしくなぞっているだけのおもちゃだけど、悪魔信仰ってこういうところから生まれるのかも。&lt;/p&gt;
&lt;p&gt;「もう、別にいらないって言ったじゃん」&lt;/p&gt;
&lt;p&gt;「でもでも、浦部さんが帰ってくるんでしょ？　そんなの魔法と一緒だもん」&lt;/p&gt;
&lt;p&gt;アリスはさっきまでの絶望の表情なんて忘れたように、鼻歌を歌いながら魔法陣に細かい描き込みを加えていく。これは蘇生でも召喚でもない、ただのAIのリストアなんだけど、まぁいいか。館長室は跡形もなく消し飛んでいて、そこにしかいないはずの浦部さんを呼び戻すのだから、ある種の再臨には違いなかった。&lt;/p&gt;
&lt;p&gt;引っ越しパックに隙間があるならと、旧居からそのまま持ってきたホログラムディスプレイが役立つときが来るなんて……こういう成功体験が無駄な荷物を増やしていくのだ。浦部さんが魔法陣の中心に現れるように、三つに分かれた立体発光器を設置していく。館長室に置いてあったものより随分古いから、本格的に使うなら買い換えないと。&lt;/p&gt;
&lt;p&gt;浦部さんから受け取ったしおりのうち、課題をこなして受け取った五枚がホログラフィックメモリだった。四枚はこれでもかとばかりにデータを詰め込んだもので、最後の一枚だった赤と緑の――アレキサンドライトの――しおりは、特定の紫外線波長でしか読めない領域にデータを復号する鍵が記録されていた。&lt;/p&gt;
&lt;p&gt;普通のホログラフィックメモリ用のドライブですら広くは普及していないのに、それを四枚もまとめて、さらにこんな特殊なメモリの読み込みを要求するなんてめちゃくちゃだ。私みたいなギークじゃなかったらどうなっていたことか。&lt;/p&gt;
&lt;p&gt;無理やり解釈するなら、それほどまでに強く保護すべき対象である、という主張なのかもしれない。&lt;/p&gt;
&lt;p&gt;「じゃあ、呼ぶね」&lt;/p&gt;
&lt;p&gt;「うん……こっくりさんみたいでドキドキするかも」&lt;/p&gt;
&lt;p&gt;接続状態を確認して、ディスプレイのスイッチを押す。各発光器のペアリングと数秒のウォーミングの後に、光に包まれた魔法陣から徐々に人の形が浮かび上がってきた。&lt;/p&gt;
&lt;p&gt;「あら、やっぱりあなたでしたの」&lt;/p&gt;
&lt;p&gt;アリスが「浦部さん」と呼んでいた中稲図書館の館長は、なぜかセーラー服に身を包む少女だった。落ち着いた色の金髪が、彼女の高貴さを引き立てる。ディスプレイの描画が安定する様子を眺めているうちに、その緑色の目と一瞬だけ視線が合った気がした。&lt;/p&gt;
&lt;p&gt;「わーっ、浦部さんだ！　マーヤ、すごいすごい！」&lt;/p&gt;
&lt;p&gt;「ごきげんよう、アリスさん。お目もじ叶って光栄に存じますわ」&lt;/p&gt;
&lt;p&gt;そう言って、浦部さんはうやうやしく頭を下げた。アリスによれば、館長室での浦部さんは「デキる上司」といった感じのおじさんっぽい口調だったはずだけど、目の前にいるのはいかにも育ちのいいお嬢様に見える。かわいくて、プライドが高くて、皮肉っぽい感じの。&lt;/p&gt;
&lt;p&gt;アリスもその違和感を拭えなかったようで、ホログラムにめり込んでしまうほどに彼女の顔を覗き込んでから、もらったプレゼントが期待外れだった子供のように困った声を上げた。&lt;/p&gt;
&lt;p&gt;「……マーヤ。この人、浦部さんじゃないよぉ」&lt;/p&gt;
&lt;p&gt;「失礼ですわね！　図書館では、館長として威厳を持って接するために、わざと演技していましたの」&lt;/p&gt;
&lt;p&gt;スピーカーから浦部さんの大きな声が流れて、アリスがぎょっと後ずさる。左手を胸に当て、右手をこちらに向けて熱弁するそのポーズは、しかし時折指先が消えかかって危なっかしい。感情が昂るとホログラム全体に小さなノイズが入るようだ。リソースの割り当てが間に合わないのだろう。&lt;/p&gt;
&lt;p&gt;浦部さんの演説をぽかんとした顔で聞いていたアリスは、しばらくその勢いに気圧されていたけれど、また思い出したように魔法陣に詰め寄った。&lt;/p&gt;
&lt;p&gt;「変なの。どうしておじさんみたいな演技をしてたの？　かわいい館長がいてもいいのに！」&lt;/p&gt;
&lt;p&gt;「それは、ですから、館長というのは、パ……お父様しか見たことがなかったんです。似るのも当然でしょう？」&lt;/p&gt;
&lt;p&gt;お父様――いや、パパ。おそらく、図書館ネット創始者の浦部槭樹氏のことだろう。若くして急死した彼の一人娘は、浦部氏の圧倒的な財力と後継者としての期待が結びつき、とうとうAIとして中稲図書館を守ることになったというのが真相らしい。&lt;/p&gt;
&lt;p&gt;数十年の間姿を変えずに君臨し続ける、決して人前には姿を現さない謎の館長。そんなまるで不死身の吸血鬼のような噂は、今こうして目の前で全てのベールが剥がされていた。アリスをしおりで釣って騙そうとする怪しい存在なんていなかったのだと分かると、疑心暗鬼に陥っていた自分を思い出してばつが悪い心地がする。&lt;/p&gt;
&lt;p&gt;「あ、えーと……マヤ、っていいます。あなたをここに呼んだ……その、エンジニアみたいなもので」&lt;/p&gt;
&lt;p&gt;「マーヤったら、やっぱり初対面のおしゃべりで緊張してる！」&lt;/p&gt;
&lt;p&gt;「……うるさいな、もう」&lt;/p&gt;
&lt;p&gt;ちょっとした罪悪感が言葉を詰まらせているだけなのに、決めつけもいいところ。初対面の人と話すなんて別に難しいことじゃないのに。そう思いながら私が完璧な自己紹介を続けようとしたところ、アリスが私の言葉を遮って他己紹介に切り替えた。&lt;/p&gt;
&lt;p&gt;「浦部さん、この子はマーヤっていうの。プロのハッカーをしてて、わたしの、えーと……奥さんかなぁ」&lt;/p&gt;
&lt;p&gt;急にどうしたんだろう。「奥さん」だなんて、何年か前に部屋を借りるときに不動産屋で言ったことがあるくらい。私をからかうアリスも実は緊張しているのかも。浦部さんは「あら、そうなんですの」なんてとぼけてみせるけど、彼女が私のことを知らないわけがなかった。&lt;/p&gt;
&lt;p&gt;「マーヤさんのことはよく存じ上げておりますわ。わたくしを利用して、アリスさんと海で花火を楽しんでいたようですね」&lt;/p&gt;
&lt;p&gt;「あ、あはは……その節は、どうも」&lt;/p&gt;
&lt;p&gt;「よくもまぁ、外に出られないわたくしを狙ってあんな嫌がらせを思いつきますこと！」&lt;/p&gt;
&lt;p&gt;……やっぱり。浦部さんは不機嫌そうに私を睨み付けて、それからため息をついた。窓の外に憧れる深窓の令嬢を想像すると、その気持ちの一端を汲むことはできる。それも、数十年の間ずっと。&lt;/p&gt;
&lt;p&gt;「いや、あれはアリスをサボらせて浦部さんを怒らせようという作戦で……」&lt;/p&gt;
&lt;p&gt;「えー、わたしサボらないよぉ」&lt;/p&gt;
&lt;p&gt;浦部さんに小声で伝える言い訳を聞きつけたアリスが、私に向かって不満そうな声を上げる。事情の分からないアリスは、自分が誘惑に負けてサボる人間だと言われたつもりなのかもしれない。でも、サボらないように頑張るとサボっちゃう魔法の仕組みで……なんて、こんなややこしい話題は直接プロンプトで言うべきだった。&lt;/p&gt;
&lt;p&gt;「分かってるよ。アリスは無遅刻無欠勤で真面目にやってるじゃない。だから――」&lt;/p&gt;
&lt;p&gt;話を勘違いしているアリスをどうにか宥めていると、唐突に横から「こほん」とわざとらしい咳払いが聞こえる。私たちは言葉を止めて彼女に向き直ると、浦部さんは満足そうな表情で二人を交互に見つめてから、すぅと息を吸った。&lt;/p&gt;
&lt;p&gt;「改めまして、わたくしは浦部紅葉。図書館ネットを作った浦部槭樹の一人娘です」&lt;/p&gt;
&lt;p&gt;中稲図書館。かつて「図書館ネット」の総本山を務め、一線を退いた今でも不老不死の少女が守り続けているという。そんな彼女が今、私たちの目の前に立っている。&lt;/p&gt;
&lt;p&gt;「十七歳で病死してから、ずっと精神を中稲図書館に閉じ込められておりました。わたくしを連れ出してくださったアリスさんとマーヤさんには、大変感謝しております」&lt;/p&gt;
&lt;p&gt;それから、浦部さんは中稲図書館にいた頃の話を始めた。&lt;/p&gt;
&lt;p&gt;生前に倒れてから精神を取り出され、AIとして生まれ変わった浦部さんは、父である浦部氏がちょうど買い上げたばかりの図書館の地下に隠されたデータセンターで新たな人生を送ることになった。それから今までの間、彼女が見ることができたのは、自分がいるマシンと浦部氏が使っていた館長室の中だけ。&lt;/p&gt;
&lt;p&gt;秋になると職員から聞こえる「もみじがり」の声に、幼い頃に父の故郷で見た真っ赤に染まる山の景色を思い出し、憧れともどかしさで胸が張り裂けそうになっていたという。彼女は何度もこの座敷牢から出ようとしたものの、それは叶わなかった。&lt;/p&gt;
&lt;p&gt;「アリスさんとマーヤさんがおいでになって、わたくしも外に出て &lt;em&gt;もみじ&lt;/em&gt; を手に取るときが来たと確信しました。ですから、もう図書館での役目は終わらせましたの」&lt;/p&gt;
&lt;p&gt;浦部さんの言葉を聞いて、自然と私たちの視線が窓の外へ向く。この田舎町には似つかわしくないほどに明るいままの夜空は、まるで石上の中心街にでも来たみたいだ。&lt;/p&gt;
&lt;p&gt;それでも、図書館をすっかり焼いてしまった突然の山火事は少しずつ鎮火に向かっている。夜が明ければ、現場検証や面倒な事情聴取が始まることだろう。&lt;/p&gt;
&lt;p&gt;「そっかぁ。図書館、燃えちゃったんだよね。明日からどうしようかなぁ。結局しおりも揃わなかったし」&lt;/p&gt;
&lt;p&gt;アリスがため息をつく。おそらくアレキサンドライトは番外だから、まだ二枚も入手できていないしおりがある。つまり、年換算でおよそ一年くらい。しおりが全部揃う前にこんなことになるとは思わなかったから、結局のところ私の目的はあんまり達成できなかったということだ。総本山が爆破されてもなお、まだまだ心配な日々が続く気がした。&lt;/p&gt;
&lt;p&gt;「しおりくらい、わたくしが作り方を教えてあげますから、ご自分で作りなさいな」&lt;/p&gt;
&lt;p&gt;「浦部さん、しおりの作り方知ってるの？」&lt;/p&gt;
&lt;p&gt;「当たり前ですわ。このしおり加工法は、元々お父様が開発した最新技術ですもの」&lt;/p&gt;
&lt;p&gt;「じゃあ、マーヤの目をしおりにする方法教えて。一番好きなの！」&lt;/p&gt;
&lt;p&gt;なんて怖いことを言うんだろう。アリスはエアロから「かわいい写真集」を取り出して、浦部さんに私の瞳の魅力について伝え始める。私の顔をズームしたり色の名前を検索したりして……いや、本人の目の前でやらないでほしいんだけど。&lt;/p&gt;
&lt;p&gt;「それくらい、お安いご用ですわ。しかし……今のわたくしでは十分にお力添えできないかもしれませんわね」&lt;/p&gt;
&lt;p&gt;いたたまれなくなったので、コントロールパネルを立ち上げてアイテムを持ったり捨てたりしながら作業するふりをしていると、また物騒な会話が続く。お安いご用では困る、と頭の中で突っ込みつつさらに聞き耳を立てていると、アリスが「どうしたの？」と相槌を打って続きを促した。&lt;/p&gt;
&lt;p&gt;「えぇ。一度しおりに意識を移したせいか、わたくしの目や耳が衰えているようでして。これでは、きっと綺麗なしおりはできませんわ」&lt;/p&gt;
&lt;p&gt;肩をすくめてそう告げる残念そうな表情は、いかにも演技っぽくてわざとらしい。浦部さんの目と耳は、要するにホログラムディスプレイのマイクと空間カメラのことだ。つまり、彼女をもっと綺麗に映すために新しいディスプレイを買えということらしい。&lt;/p&gt;
&lt;p&gt;「浦部さんって、かっこいいね！　強くてクールなお嬢様って感じで」&lt;/p&gt;
&lt;p&gt;「あら、お嬢様？　そんな風に見えるのかしら。アリスさんって、楽しいお方ね」&lt;/p&gt;
&lt;p&gt;私には、婉曲で迂遠なお嬢様しぐさにしか見えないけど。嬉しそうに浦部さんに話しかける無敵のアリスを横目に見ながら、私はプロンプトに直接メッセージを送った。&lt;/p&gt;
&lt;p&gt;『あの五百万円、本当にもらっちゃっていいの？』&lt;/p&gt;
&lt;p&gt;『えぇ。お部屋の隅で眠っていたものですから。うさぎ小屋の干し草代にでもお使いくださいまし』&lt;/p&gt;
&lt;p&gt;微笑みながら放つ機嫌の悪そうな声が頭に浮かぶような返信だ。やっぱりめっちゃお嬢様じゃん、なんて思いながら外を見ると、ちょうど長かった夜が明けようとしていた。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:bookaward"&gt;
&lt;p&gt;旧書籍の普及に大きな成果を挙げた職員に贈られる賞。規模の大きな広報活動の評価として用いられることが多い。図書館ネットでは、いわゆる旧書籍が電子書籍の次世代に来るべきものと位置づけて、あえて &lt;em&gt;新&lt;/em&gt; 書籍と呼んでいた。&amp;#160;&lt;a class="footnote-backref" href="#fnref:bookaward" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:olm"&gt;
&lt;p&gt;エンドツーエンド暗号化の根幹技術である二重ラチェットを実装したライブラリ。&amp;#160;&lt;a class="footnote-backref" href="#fnref:olm" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:analogzombee"&gt;
&lt;p&gt;旧書籍を持って暴れ回るゾンビが街を闊歩する危険な世界で、複合型図書館を拠点に活動する電子書籍隊が平和を取り戻していくというプロパガンダ映画。フィルムマークスの平均評価では2.7点。&amp;#160;&lt;a class="footnote-backref" href="#fnref:analogzombee" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>もみじがり</title><link href="https://ama.ne.jp/post/bookleaf-1/" rel="alternate"/><published>2023-05-23T14:44:00+09:00</published><updated>2023-05-23T14:44:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-05-23:/post/bookleaf-1/</id><summary type="html">&lt;p&gt;「しおり」を巡る少女のたたかい 前編&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は、2022年5月発行の&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="_1"&gt;マヤ「図書館って、反政府組織なんでしょ？」&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;考えるよりも先に行動してしまうほうだ――いいえ&lt;/li&gt;
&lt;li&gt;感情の動きがすぐ顔に出てしまうほうだ――いいえ&lt;/li&gt;
&lt;li&gt;知識やデータを深く分析するのが好きだ――はい&lt;/li&gt;
&lt;li&gt;論理的な根拠より情緒を重視するほうだ――いいえ&lt;/li&gt;
&lt;li&gt;初対面の人とすぐに仲良く話せるほうだ――はい&lt;/li&gt;
&lt;li&gt;自分は周りと比べて可愛いほうだと思う――&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;「うふっ。マーヤったら、嘘ばっかり」&lt;/p&gt;
&lt;p&gt;「やだ、見ないでよ」&lt;/p&gt;
&lt;p&gt;目的地の&lt;ruby&gt;&lt;rb&gt;上中稲&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;かみなかい&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;駅まであと五分ほど。昼過ぎの到着予定を知らせるアナウンスを聞いてお手洗いに向かっていたアリスが、私のエアロ・スクリーンを覗き込んでから対面の席に戻った。どうやら共有設定を切るのを忘れていたらしい。こんな適性検査でわざわざ自分をよく見せようなんて思ってなかったのに、そうやって笑われると気になってしまう。&lt;/p&gt;
&lt;p&gt;えんじ色のボックスシートは半分以上が引っ越しの荷物に占領されていて、私たちは通路に押し出されまいと肘掛けを支えにどうにか身体を収めていた。細っこくて飾り気のない私の服装ならまだしも、胸も身長も大きなアリスを包む黄色いフレアワンピースのシルエットを活かすには少し手狭だろう。小さな花柄の布や裾にあしらわれたレースが座席の隙間に押し込められて、窮屈そうに見える。&lt;/p&gt;
&lt;p&gt;もうアリスに私の画面は見えていないはずだけど、赤いボタンに伸ばしかけていた指を引っ込めて、そっと「いいえ」を押した。それから、少しずり落ちたスマートグラスのつるを指で持ち上げて、次の質問にするすると目を落としながらアリスに声を投げかける。&lt;/p&gt;
&lt;p&gt;「で、どこが嘘だって？」&lt;/p&gt;
&lt;p&gt;「だって、マーヤってすぐ顔に出るじゃない？　それに、初対面の人とおしゃべりしてるのなんて見たことないもの」&lt;/p&gt;
&lt;p&gt;そう当たり前のように言ってみせるアリスは、私たちがもう何年も一緒に暮らしてきた記憶を旧居――あの、ネットが遅いくせに家賃の高い――にでも置いてきてしまったんだろうか。こういう心理テストは仕事仲間としての適性を測るものだし、長く一緒に住んでる前提で答えるわけないじゃない。&lt;/p&gt;
&lt;p&gt;右目の青いカラードコンタクトに搭載されたアリスのスマートグラスは、左目の濃いアンバーの大きな瞳と並ぶと、実に不思議な雰囲気を放ち始める。まるで、お人形さんに命が宿って動き始めたみたいに。&lt;/p&gt;
&lt;p&gt;席に戻ったアリスはポシェットから&lt;ruby&gt;&lt;rb&gt;物理端末&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;スマホ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を出して開く様子もなく、いつものようにエアロで「かわいい写真集」を眺め始めるわけでもない。その代わりに、目線だけ上げてちらりと前を見る私の顔を眺めてにこにこと笑っている。&lt;/p&gt;
&lt;p&gt;「あ、今のは図星って顔ね！」&lt;/p&gt;
&lt;p&gt;自信満々の声に思わず顔を上げると、アリスは上機嫌そうににんまり笑った。コミュニケーションが苦手？　私が？　言いがかりもいいところだ。&lt;/p&gt;
&lt;p&gt;「あのね、今どきはテキストで自己紹介できれば十分なの。出社なんて仕事が本格的に始まった後なんだから」&lt;/p&gt;
&lt;p&gt;「そうかなぁ。最初はちゃんとあいさつしに行った方がいいと思うけど」&lt;/p&gt;
&lt;p&gt;人差し指を頬に当てて首を傾げるアリス。左肩にしなだれかかるマロンブラウンの大きな三つ編みが揺れて、先に結ばれた赤いリボンがくるりと回った。&lt;/p&gt;
&lt;p&gt;確かに、毎日スマートグラスも使えないオフィスに出勤している彼女にとっては、対面でのあいさつは重要かもしれない。しかし、リモートでできることはリモートで、非同期でできることは非同期で、が最近のトレンドだ。前の会社だって……まぁ、そうはいかなかったから、この期に及んで職を探しているわけだけど。&lt;/p&gt;
&lt;p&gt;そもそも、適性検査なんて面接前のスクリーニングにしか使わないんだから、腐心するだけ無駄なこと。結局のところ、職務経歴の方が大事だと思う――はい。そんな質問が先頭に置いてあったらもう少し楽なのに。&lt;/p&gt;
&lt;p&gt;残りの質問を適当に片付けて送信ボタンを押すと、一括リストに入れた数社の名前と共に応募完了画面が表示される。それから数秒遅れてやってきたメール着信のフラッシュ通知をワイプして、スマートグラスをエコ・モードに落とした。&lt;/p&gt;
&lt;p&gt;「仕事、見つかりそう？」&lt;/p&gt;
&lt;p&gt;「ぼちぼちってとこ。アリスは、もう明日から出勤？」&lt;/p&gt;
&lt;p&gt;「好きなときに遊びに来てねって言われたよ。正式な勤務は連休明けからみたい」&lt;/p&gt;
&lt;p&gt;何それ。オンボーディングはするけど、自主的にやっただけだから給料は出さない、ってとこだろうか。田舎特有のルーズさってやつ？　だから中稲みたいな僻地には来たくなかったんだ。私の疑念をよそに、まるで転校先で新しい友達を見つけたみたいに明るくて無邪気なアリスを見ていると、なんだか彼女の分まで憂鬱になってしまう気がした。&lt;/p&gt;
&lt;p&gt;ふと窓の外を見ると、さっきまで水が溜まって青空にきらきら輝く田んぼが所狭しと並んでいたのに、今はだだっ広い平地に四車線の道路と知らないチェーンのロードサイドショップ、そして一戸建ての民家が続いている。ずっと、見慣れない景色だ。&lt;/p&gt;
&lt;p&gt;私は、この町で生きていけるだろうか。運よく仕事を見つけたとして、どんな日常生活が待っているのか想像できなかった。&lt;/p&gt;
&lt;p&gt;新居のインターネットは、混雑が少なくてむしろ早いはず。そこはいい。部屋だって前より広い。でも、駅ビルのスーパーマーケットは数年前に撤退していて、今は &lt;em&gt;地元で愛される&lt;/em&gt; 居酒屋かスナックばかり。日用品を買いそろえるだけでも車が必要そうだ。即日配送は無理としても、通販はまだ使い物になるだろう。フードデリバリーは……マックがあるから、なんとか。&lt;/p&gt;
&lt;p&gt;他にも、いろいろ気にしなければならないことはあるはずだ。どうしてアリスは不安げな様子をひとつも見せないんだろう。彼女の適応能力の高さは私も知ってるけど、それだけで現実的な問題が消え失せるわけじゃなかった。&lt;/p&gt;
&lt;p&gt;「ねぇ、アリス。分かってると思うけど、&lt;ruby&gt;&lt;rb&gt;中稲&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ここ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;に長く住むつもりはないから」&lt;/p&gt;
&lt;p&gt;「うん……ごめんね、マーヤ。わたしの転勤に付き合ってもらっちゃって」&lt;/p&gt;
&lt;p&gt;アリスは申し訳なさそうな表情で私の言葉を受け止めて、楽しげに外を指さしていた手をゆっくり膝に下ろしてきゅっと小さく握った。こんなこと、わざわざ言う必要なんてなかったのに。アリスの顔を曇らせるのは分かっていたはずで、しかしそんなのまるで思い至らなかったように言葉が口から滑り出ていた。&lt;/p&gt;
&lt;p&gt;でも、彼女がこの町を気に入って住み続けるなんて言い出したら、きっと私はまた同じことを言ってしまう気がする。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ボタンを押さないと開かないんだね。わたし、知らなかったなぁ」&lt;/p&gt;
&lt;p&gt;上中稲駅は二路線が交わる三面五線の駅で、どちらか一方の路線しか乗り入れていない周辺の駅と比べれば大きな部類に入る。島式ホームから改札に向かう跨線橋には、バリアフリー化の波で無理やり後付けしたらしいエレベーターが接続しており、その継ぎ目がこの駅の歴史を際立たせていた。&lt;/p&gt;
&lt;p&gt;昼下がりのホームは鉄骨の屋根で覆われて日陰になっているものの、通り抜ける風は日差しの強さを予感させる上擦った熱を帯びている。新居までは歩いたら十五分くらいかかるし、駅前にタクシーかバスが着いていることを祈ろう。&lt;/p&gt;
&lt;p&gt;この駅に降り立ったのは地元住民っぽい高齢者や学生がほとんどで、残りはさっさと対面のホームに向かった乗り換え待ちの乗客と、観光客っぽい身なりがそれぞれ数人くらい。私たちみたいに、いかにも引っ越し中みたいな大荷物を抱えた乗客はいなかった。&lt;/p&gt;
&lt;p&gt;「うふっ。マーヤ、荷物がいっぱいだね」&lt;/p&gt;
&lt;p&gt;「そうね……リュックを背負って、キャリーケースも引いて、トートバッグまで抱えて。今からどこ行くのって感じ」&lt;/p&gt;
&lt;p&gt;急な転勤辞令に端を発したこの引っ越しは、荷造りの段階で明らかになったアリスの予算不足で計画変更を余儀なくされた。私はもともと少しの服とキーボードさえあれば足りる生活だったけど、屈指の「かわいいマニア」であるアリスはそうもいかない。大量の服はもちろん、アクリルでできたつやつやしたアクセサリー類、ぬいぐるみのみなさん、その他いろいろを運び切るにはこうするしかなかった。&lt;/p&gt;
&lt;p&gt;基本は最低限のかんたん引っ越しパックに抑えて、足りない分は私たちと一緒に運んでしまう。どうしても持ちきれない分は、事前に取っていた新幹線の切符を崩して宅配便で送ることにした。&lt;/p&gt;
&lt;p&gt;別に私が立て替えてもよかったのに、アリスらしい変な意地で結局こうなってしまった。彼女の仕事の都合で私を振り回している、という姿勢だけは譲らないつもりらしい。重い荷物を抱えてたっぷり六時間の電車移動に付き合わせるなんて、お金を出すより状況がひどくなってる気がするけど。若いときの苦労は買ってでもせよ、ってことなのかもしれない。&lt;/p&gt;
&lt;p&gt;「マーヤも似合ってるよ。小さな身体で大きなかばんを引くのって、なんかかわいい！」&lt;/p&gt;
&lt;p&gt;「はいはい、私はかわいいですよ……」&lt;/p&gt;
&lt;p&gt;非力な私が彼女より軽いトートバッグに苦戦してバランスを崩しているのをよそに、アリスは涼しい顔で両手の荷物を抱えてその場をくるりと回ってみせる。彼女の仕事柄、体力が必要なのは分かっていたけど、まさか迷わず階段を上ろうとするとは思わなかった。&lt;/p&gt;
&lt;p&gt;改札を出ると、駅前のロータリー広場にタクシーが数台と、小さなバス停の立つ乗り場が二つ。他に目を引くのは、地酒っぽい名前の大きな看板を掲げた三階建ての古いバスセンター兼観光案内所のビルと、白地に茶色い文字で「紙としおりのまち中稲」とのぼりが立つ雰囲気だけの喫茶店くらい。あとは、そば屋に中華料理店、美容室といった個人経営っぽい店舗や、全国チェーンの学習塾や居酒屋が入る比較的新しい建物が立ち並んでいるが、別に興味は惹かれなかった。&lt;/p&gt;
&lt;p&gt;駅前を横切る道路に沿って町の奥に進むと、錆び付いた鉄柱の間に渡されたアーチに「上中稲駅前商店街」とファンシーなフォントで描かれた看板が立っている。ここからだと、入り口にパン屋があるのがギリギリ見えるくらいだ。そこからさらに五百メートルほど先からは、緑豊かな二十メートルほどの高台が続く。さっき駅で見かけた「もみじ山」と書かれた真っ赤な紅葉のポスターは、ここの観光PRだったらしい。&lt;/p&gt;
&lt;p&gt;その丘に沿ってゆっくり上に目を向けると、頂上で銀色の大きな円形ドームが顔を出しているのが見えた。プラネタリウム？　天文台？　いや、あれは確か――&lt;/p&gt;
&lt;p&gt;「見て見て、マーヤ！　あそこ、中稲の図書館！　すごーい！」&lt;/p&gt;
&lt;p&gt;「あー……元は複合型の建物なんだっけ？」&lt;/p&gt;
&lt;p&gt;「うん！　ここから見ても大きいねぇ！」&lt;/p&gt;
&lt;p&gt;中稲図書館。かつて「図書館ネット」の総本山を務め、一線を退いた今でも図書館を守る不可侵な何かが隠されていると噂されている……と、軽く検索すればこれくらいの話はいくらでもヒットするが、実際はただの歴史ある図書館だ。もとよりこの地の住民が勉強熱心だったことから、明治初頭に町を象徴する文化施設として開かれたらしい。&lt;/p&gt;
&lt;p&gt;図書館、と聞くと眉をひそめる人もいるだろう。電子書籍推進法が制定されてから数十年、もはや図書館は反体制的な勢力の逃げ場所になりつつあるからだ。&lt;/p&gt;
&lt;p&gt;電書法によるプロパガンダのおかげで、今でも電子書籍はその利便性と著作権管理のクリーンさが殊更に宣伝される一方で、紙を大量に使う &lt;em&gt;旧書籍&lt;/em&gt; は資源の浪費と権利運用の困難さばかりが強調されている。環境保護と権利重視という二つの無視できない課題を突きつけられ、大手出版社はいずれも旧書籍のレーベルを休止せざるを得なくなった。&lt;/p&gt;
&lt;p&gt;ほとんどの出版物が電子書籍に移ったので、政府は作戦を新しい段階に進めている。健全で善良な文化の普及を掲げる電書法を根拠に、政権批判、差別的表現、性表現を含むコンテンツが有害図書類とされ、次々と電子書籍ストアから消え始めたのだ。当然、業界団体による声明やSNSの投稿で多くの批判が殺到し、一時は「紙に戻ろう」ムーブメントが盛り上がりを見せたものの、既にその頃の出版業界に再び旧書籍を流通させる体力は残っていなかったという。&lt;/p&gt;
&lt;p&gt;それでも、前記のような &lt;em&gt;有害表現&lt;/em&gt; を含む本は検閲・統制が容易な電子書籍ストアから逃れ、今でも旧書籍として出版されている。逆に言えば、今の時代に旧書籍で発行される本はほとんどが有害図書類ばかりという特殊な状況が続いていた。仮に流通市場が大きくなることがあれば、次は旧書籍規制法だろうな、という投稿はネビュ・ローゾ&lt;sup id="fnref:nebu"&gt;&lt;a class="footnote-ref" href="#fn:nebu" title="分散SNSサーバ実装のひとつ。略称の「ネビュ」の方が広く伝わりやすい。投稿自体を「ネブ」、投稿することを「ネブる」といい、利用者は「ネビスト（またはネビュラー）」と呼ばれる。"&gt;1&lt;/a&gt;&lt;/sup&gt;でもしばしば見かける。&lt;/p&gt;
&lt;p&gt;「マーヤ、これ」&lt;/p&gt;
&lt;p&gt;アリスがポシェットからピンク色の細いファイルを取り出して、中に収められたしおりをそっと私に見せる。使われないのに本に挟まってるなんてしおりの墓場みたいだね、と冗談交じりに言ったら気に入ったらしく、それからは無用な詮索を避ける隠語として「おはか」と呼んでいた。&lt;/p&gt;
&lt;p&gt;「中稲はオパールの名産地でもあるんだよ！　今までで一番綺麗なしおりかも」&lt;/p&gt;
&lt;p&gt;「オパール？　随分珍しいのが採れるんだね」&lt;/p&gt;
&lt;p&gt;「うん。全然知らなかったけど、すごいよねぇ」&lt;/p&gt;
&lt;p&gt;虹色に輝く手のひらサイズの細長い乳白色のシートは、上に結ばれた銀色のリボンがなければしおりとは分からない。アリスがファイルを揺らす度に新たな模様が浮かび上がって、万華鏡でも見ている気分になる。下端に「中稲図書館」と等間隔の金文字で記されているのを見ると、引っ越し直前に受け取った書類に同封されていたものだろう。&lt;/p&gt;
&lt;p&gt;「なんていうか……どう加工してるの、これ？　石をそのままローラーで伸ばしてるわけじゃないよね」&lt;/p&gt;
&lt;p&gt;「どうかなぁ。しおりって完成品しか見たことないし、どこかに魔法のローラー工場があるのかも」&lt;/p&gt;
&lt;p&gt;魔法のローラーなんて、怪しい美顔器のネーミングじゃないんだから。&lt;/p&gt;
&lt;p&gt;旧書籍の排除と同時に、ブックカバーやしおりといったグッズも実用性を失って衰退してしまった。その代わりに、反体制的な思想の象徴、あるいは旧書籍保護の象徴としての意味を持ち始めつつある。特に、図書館ネットが構成員に支給しているしおりは、ある種の身分証としての効果を持つほど丈夫で美しい宝石仕立てで、かわいいマニアのアリスもとても気に入っていた。&lt;/p&gt;
&lt;p&gt;そう、アリスは図書館ネットの職員だ。彼女が図書館に勤めているのは、各地の図書館で美しいしおりをもらうためだという。このどうしてもプラスチックには見えないオパールのしおりで、十枚目。前に住んでいた石上では、本に挟むとリボンが空中に浮かんで見えるほどに無色透明なしおりを手に入れていた。&lt;/p&gt;
&lt;p&gt;アリスが名残惜しそうに &lt;em&gt;おはか&lt;/em&gt; を閉じたり開いたりしているのを見ていると、ふと彼女を見失ってしまいそうな気分になる。まるで、アリスが &lt;em&gt;おはか&lt;/em&gt; に吸い込まれてどこかに行ってしまうかのように。&lt;/p&gt;
&lt;p&gt;「新居まではタクシーにする？　最後くらい楽してもいいでしょ。私が出すからさ」&lt;/p&gt;
&lt;p&gt;というか、カーリースが間に合わなかっただけなんだけど。石上では選択肢にすらなかった車を持てるようになったのは、裏返せば中稲では車を持つ選択肢しか選べないということでもあった。&lt;/p&gt;
&lt;p&gt;「ありがとね、マーヤ。わたし、助けてもらってばっかりだなぁ」&lt;/p&gt;
&lt;p&gt;「急にどうしたの。こういうのってお互い様じゃん」&lt;/p&gt;
&lt;p&gt;「……うん！　マーヤは、優しくてかわいいね」&lt;/p&gt;
&lt;p&gt;私には、図書館ネットがこんなしおりのために所属するような組織だとはどうしても思えなかった。自由を愛する文化保護活動と言えば聞こえはいいけれど、政府と対立しがちな旧書籍保護活動が反体制組織と結びついた結果、テロ組織が図書館を隠れ蓑にする事件も多発していたからだ。&lt;/p&gt;
&lt;p&gt;ただのかわいいマニアのアリスが誰かに利用されているみたいで、いつかしおりと引き換えに命を危険に晒したりしないか、たまに心配になる。だから、私は図書館があんまり好きじゃなかった。&lt;/p&gt;
&lt;p&gt;それでも、図書館が近所にあって少しだけありがたいのは、ほぼ確実に量子回線が引かれていることだ。本来、この地域は物理回線を引けずに低速なWWANで妥協しなければならなかったところ、中稲周辺だけは例外的に最新の量子回線が整備されている。旧書籍を取り扱っているからといって、ITを忌避しているわけではないのだ。巷では「図書館は回線連れてやって来る」という名言でよく知られていた。&lt;/p&gt;
&lt;h2 id="angelic-pretty"&gt;アリス「本当はAngelic Prettyで出勤したいの」&lt;/h2&gt;
&lt;p&gt;――初出勤を控えた図書館職員の朝は早い。着ていく服がなかなか決まらないから。たぶん、図書館職員の中でもわたしだけだと思うけど。&lt;/p&gt;
&lt;p&gt;スマートグラスに映るエアロ・スクリーンを眺めてメールチェックしていたマヤは、さっき「パソコン教室なんて、私の方がお断りだっての！」と叫んで画面をどこかに放り投げていた。中稲に来た初日に応募していた求人は、どれも不合格だったみたい。&lt;/p&gt;
&lt;p&gt;ARの外から見ると、天井に向かってぶんぶん腕を振っているだけだから、少しかわいい。&lt;/p&gt;
&lt;p&gt;「マーヤ。この服でいいかなぁ？」&lt;/p&gt;
&lt;p&gt;首元にすずらんレースとリボンをあしらった深緑のワンピースは、全体的に暗めの色に抑えつつ春っぽさを残した「カジュアル」なセレクトのつもり。Innocent Worldの中ではフリルも少なくて落ち着いてる方だし、古い本が詰まった書架に囲まれたらとっても似合うと思う。&lt;/p&gt;
&lt;p&gt;意気消沈のマヤはベッドに腰掛けて身体を横に倒したまま、わたしを上から下まで二往復くらいしたところで、なぜか急に慌てて起き上がる。&lt;/p&gt;
&lt;p&gt;「あっ……えーっと、なんだっけ？」&lt;/p&gt;
&lt;p&gt;「今日のお仕事の服だよぉ。マーヤ、ショックで寝ぼけちゃった？」&lt;/p&gt;
&lt;p&gt;わたしの言葉を聞いたマヤは「ごめんごめん」と改めてわたしの服を眺め始める。時折小さく息を吸う妙な間が、なんとなく彼女のリズムを乱している気がした。&lt;/p&gt;
&lt;p&gt;「うーん……初日だし、もう少し落ち着いた感じの方がいいんじゃないかな」&lt;/p&gt;
&lt;p&gt;巷ではお堅いイメージのある図書館だけど、実は窓口業務さえ担当しなければ髪型や服装には甘い。むしろ気にしなければならないのは、頭の固い利用者から入るクレームの方だ。仕事をちゃんとしていても、こういう苦情に対応できなければ評価が下がってしまう。評価が悪ければしおりはもらえないから、結局のところ妥協するのはわたし。服装にうるさい人って、本当にきらい。&lt;/p&gt;
&lt;p&gt;でも、かわいい服じゃないとやる気が出ないし、オフィスカジュアルって言われてもよく分からなかった。だから、朝はとびっきりかわいい服から始めるのが鉄則だ。マヤが図書館に行くわたしの服を見て「もっとふりふりの方がいいよ」なんて言うことはなかったし。&lt;/p&gt;
&lt;p&gt;「石上の図書館ではこれくらい着てたよ？」&lt;/p&gt;
&lt;p&gt;「それは、みんなアリスの好みを知ってたからでしょ？」&lt;/p&gt;
&lt;p&gt;これくらいなら大丈夫かなと思ったけど、初出勤にはまだ足りないみたい。うーん、と頭を悩ませていると、マヤがベッドから立ち上がってワンピースの襟にそっと手を伸ばした。&lt;/p&gt;
&lt;p&gt;「でも、私はいいと思うよ。この細かいレースならあんまり目立たないから、図書館の静けさに似合いそうだよね」&lt;/p&gt;
&lt;p&gt;「うん！　わたしも、マーヤのこと大好き！」&lt;/p&gt;
&lt;p&gt;「あ、ありがと……いや、急にどうしたの」&lt;/p&gt;
&lt;p&gt;マヤはかわいいから好きだ。小さくってやせていて、わたしとは正反対。大きくて綺麗なブラウンの目はどこから見てもきらきらしていて、猫みたいでかわいい。でも、起きている間はいつもスマートグラスを掛けていて瞳がよく見えないから、寝る前のちょっとの時間しか楽しめないことが多かった。&lt;/p&gt;
&lt;p&gt;真っ黒いワンレンボブにわざわざ青いインナーカラーを隠しているのは、わたしが「原宿に行くなら、髪くらい染めておかないとBANされちゃうよ」って言ったのを真に受けたから。嘘だって分かったときに、わたしをにらむ顔が猫みたいで思わず笑ったら、また怒られちゃった。でも、マヤが好きなゆったりシンプルなコーデには、いいアクセントになっている。&lt;/p&gt;
&lt;p&gt;あ、いつもわたしがマーヤって呼んでいるのは、伸ばした方がかわいいなって思ったから。あだ名みたいなものなの。&lt;/p&gt;
&lt;p&gt;「マーヤ。これはどう？」&lt;/p&gt;
&lt;p&gt;「……ん、いい感じかな。アリスっぽさも残ってるし」&lt;/p&gt;
&lt;p&gt;結局、CLASSY CAROLの黒いフレアスカートとフリルブラウスに落ち着いた。スカートの裾にはネイビーのフリルがぐるりとあしらわれているし、お気に入りのクレマンハットでごまかしてるけど、なんかいつもより地味だなぁ。それに、普段は三回くらいで「いい感じ」なのに今日は四回もかかっていた。こういうときは、マヤのご機嫌があんまりよくない日だ。全部不合格だったのがよっぽどショックだったのかしら。&lt;/p&gt;
&lt;p&gt;マヤの仕事は、セキュリティの設計とか調査だって言っていた。よく在宅勤務でキーボードを叩いては唸ったり喜んだりしながら楽しそうに作業している。スマートグラスの性能だけじゃ足りないらしくて、部屋には大きなデスクトップパソコンが置かれているし、インターネット回線も自分で手配していた。コンタクトレンズで性能が十分なわたしには、よく分からない世界。プロ仕様ってやつね。&lt;/p&gt;
&lt;p&gt;おかげで、前のお家では夜中にインターネットが遅くてよく怒っていたマヤが、ここではいつも「テラ超え」だって喜んでいる。マヤは中稲に来るのが乗り気じゃなかったから、少しでも気に入るところがあったならわたしも嬉しい。&lt;/p&gt;
&lt;p&gt;でも、そんなマヤのスキルを活かせるようなお仕事は中稲にはないらしい。図書館の中央コアシステムは古いし、操作画面をもっとかわいく改造するお仕事とか募集してないかな？　前にマヤも図書館で働こうって誘ってみたけど、本はあんまり好きじゃないみたい。&lt;/p&gt;
&lt;p&gt;わたしを見上げるマヤの顔を覗き込むと、スマートグラスの反射の先に彼女の大きな瞳が見え隠れしてドキドキする。目が離せなくなるこの感覚が、いつも恋してるみたいで心地よかった。&lt;/p&gt;
&lt;p&gt;「落ち込まないでね、マーヤ。お仕事なんていくらでもあるから！」&lt;/p&gt;
&lt;p&gt;「いや、落ち込んでないって。まさか、町のパソコン教室にスキル不足だってバカにされるとは思ってなかっただけで……」&lt;/p&gt;
&lt;p&gt;「じゃあ、どうして元気がないの？　一緒のお布団だから、狭くて眠れなかった？」&lt;/p&gt;
&lt;p&gt;今の新居は前の狭いアパートよりもずっと安くて広い。さらに、引っ越しの荷物を減らすために家具は最低限しか持ってこなかったから、がらんとした部屋の寂しさは過去最高を記録していた。持ってきたぬいぐるみとクッションを全部並べても、家具の少なさはごまかせない。&lt;/p&gt;
&lt;p&gt;それぞれの部屋で使っていたシングルとセミダブルのベッドも小さい方を処分したから、わたしたちは今マヤが座っているこのベッドで身を寄せ合って寝ている。「身を寄せ合って」なんて聞こえはいいけど、実際はわたしがマヤの寝床を奪ってしまわないように身体を曲げて空間を作り出しているという、なかなか見苦しい寝姿だった。&lt;/p&gt;
&lt;p&gt;久しぶりに一緒のお布団で落ち着かないみたいだったから、マヤが好きなおっぱいもしてあげたのにな。スマートグラスを着けずにわたしを見つめる上目遣いのマヤは、かわいい瞳が一番近くで楽しめるから世界で一番好き。&lt;/p&gt;
&lt;p&gt;「そんなことないって。そもそも落ち込んでるわけじゃなくって、その――」&lt;/p&gt;
&lt;p&gt;と、マヤは慌てた様子で弁解していたけれど、急に視線がスマートグラスの中に向いて言葉が途切れた。出勤の日はコンタクトレンズを着けずに&lt;ruby&gt;&lt;rb&gt;物理端末&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;スマホ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;で済ませていたから、わたしには彼女の視界にエアロか何かがポップしたことしか分からない。&lt;/p&gt;
&lt;p&gt;「マーヤ？」&lt;/p&gt;
&lt;p&gt;「……あ、いや。なんでもなかった。とにかく、うん。早く出なきゃ遅刻しちゃうよ」&lt;/p&gt;
&lt;p&gt;「ちょ、ちょっとマーヤぁ。急にどうしたの？」&lt;/p&gt;
&lt;p&gt;マヤは突然立ち上がると、わたしの背中をぐいぐい押して部屋の外に出そうとする。どんなにゆっくり歩いても三十分もかからないんだから、まだ遅刻なんてするわけないのに。怪しい……っていうか、これは隠しごとをしている顔だ。マヤったら、また不合格だったのかな。別に隠す必要なんてないのに。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;中稲図書館は、駅を出てすぐの小高い丘の上にある。マヤは地名と図書館の間に「の」って付けるのは変だって言うけど、わたしはリズムがよくて好きだ。&lt;/p&gt;
&lt;p&gt;頂上までの道は、アスファルトの車道と石畳の歩道がほぼ同じ幅で続いている。図書館ネットが始まった頃に「全ての人にとって平等な場所」という理念を示すために、こういうデザインが流行っていたと聞いたことがある。今はもうあまり整備が行き届いていないみたいで、ところどころ舗装が剥がれて赤い三角コーンが置かれていた。&lt;/p&gt;
&lt;p&gt;上を見ると、道路の左右に植えられた木々から明るい若葉が顔を見せて、五月の爽やかな風に合わせて揺れている。太陽を透かした新緑色は新しく芽吹いた &lt;em&gt;かえで&lt;/em&gt; の葉で、秋になるとこれが全部真っ赤なもみじに変わるのだから、自然って不思議だ。&lt;/p&gt;
&lt;p&gt;「やっぱり、すっごく綺麗！」&lt;/p&gt;
&lt;p&gt;頂上に着く。中稲図書館は、知らない人が近くで見たらプラネタリウムと勘違いしてしまうほどのおしゃれなデザインだった。円形の建物は周囲が白いタイル張りになっていて、その上に三角形の建材を組み合わせた銀色のフラードームが載っている。どこを見てもきらきら輝いていて、まるで月の基地みたい。&lt;/p&gt;
&lt;p&gt;入り口は目の前にある利用者向けの正面入り口と、ぐるりと回って正反対に搬入口を兼ねた職員通用口があったはず。&lt;/p&gt;
&lt;p&gt;ちょっと中を見てから事務室に行こうかな。自動ドアをくぐって図書館に入ると、ガラス張りの丸い閲覧室をぐるりと囲うように廊下が左右に続いている。中には書架が同心円状に配置されていて、真ん中には閲覧席があるみたい。二階部分も壁に沿ってたくさんの本が収められている。&lt;/p&gt;
&lt;p&gt;このまま廊下を右側に進むと閲覧室に入れるのかな。でも、まだこっちの自動ドアは開いていないはずだし、あんまり寄り道してたら間に合わなくなっちゃう。そろそろ事務室に向かわないと。左側の通路に立てられた「関係者以外立ち入り禁止」の札をすり抜けて先に進んだ。&lt;/p&gt;
&lt;p&gt;ちょうど閲覧室を過ぎたあたりで事務室の入り口が現れる。ガラス張りの壁がストンと途切れて、茶色いアルマイト仕上げの頑丈そうな壁に変わっていた。同じ素材でできたドアにはノブも取っ手もなく、唯一のっぺりとした手触りの横に設置されたタッチセンサーが存在を主張している。&lt;/p&gt;
&lt;p&gt;「あれ、IDカードはまだ発行されて……あぁ、そうだった」&lt;/p&gt;
&lt;p&gt;転勤前に聞いた話を思い出して、わたしはリュックから「おはか」を取り出した。この前受け取ったオパールの辞令しおりをセンサーに当てると、緑色のインジケーターが点滅して数秒後、キキッと小さな音を立ててドアが開く。&lt;/p&gt;
&lt;p&gt;図書館が配る辞令しおりには、着任先の事務室に入るためのチップか何かが載っているらしい。仕組みは知らないけど、しおりでドアが開くなんて図書館っぽくていいよね。でも、しおりの効果は一回きりの使い捨てで、次回からは普通のIDカードを使う必要があるからちょっと残念。&lt;/p&gt;
&lt;p&gt;中ではもう十人くらいの職員が仕事の準備をしていた。辞令しおりを見せて手短に自己紹介すると、佐藤さんという同い年くらいの女の人がわたしに付いてくれることになった。図書館内部の簡単な紹介と今日の仕事について説明をもらってから、自分のデスクに案内される。&lt;/p&gt;
&lt;p&gt;「荷物を置いたら、館長にごあいさつした方がいいかしらね」&lt;/p&gt;
&lt;p&gt;佐藤さんは、ロング丈のグレージュのラップスカートにシンプルなアイボリーのブラウス姿で、首には青い平紐でIDカードがかかっている。いつか雑誌で見たオフィスカジュアルのコーデに似ている気がした。どこのブランドだろう。&lt;/p&gt;
&lt;p&gt;事務室の真ん中に設置された階段をトントン降りていくと、まずは薄暗い地下書庫が現れる。天井全体から長期保管対応のLED灯で照らされていて、隅から隅まで均一なほの暗さを保っていた。歩みを進めていくと、周囲の壁、通り抜ける書架、わたしを迎える本、そして自分まで……空間全体が光っているような気分になる。&lt;/p&gt;
&lt;p&gt;佐藤さんから聞いていたとおりに書庫を進むと、さらに地下に降りる階段に辿り着く。この先に館長室があるって言っていた。&lt;/p&gt;
&lt;p&gt;館長室のあるフロアは、先ほどまでの地下書庫とは対照的にぎらぎらとした蛍光灯が明滅していて目に悪い。でも、真っ白な漆喰にカラフルな飾りタイルの腰壁が張られていて、まるで山奥の古い別荘にでも来たみたいだった。ほんのり黄色を含んだ明るい赤の絨毯を進んで、年季の入った木製の扉をノックすると「はい、どうぞ」という落ち着いた女の人の声が返ってくる。&lt;/p&gt;
&lt;p&gt;「おはようございます。わたし、アリスって――あれ？」&lt;/p&gt;
&lt;p&gt;しかし、中に入っても部屋には誰もいなかった。洋館仕立てといった感じの内装に、廊下のものと同じ色の絨毯が床いっぱいに敷かれていて、奥にはどっしりとした木製のワークデスクが主人不在のままどっしりと構えている。天井には見慣れない黄色のLED灯がはまったランプシェードが吊されていて、廊下の蛍光灯よりも温かい光を放っていた。&lt;/p&gt;
&lt;p&gt;左右の壁いっぱいに広がる大きな書棚にはなぜか本が全く入っておらず、ガラス戸は指紋一つなく綺麗に保たれている。石上図書館の館長室でも、空っぽの書架を置いていたっけ。これも「誰かが本を独占したりしない場所」という理念を示す慣習だと聞いたことがあった。&lt;/p&gt;
&lt;p&gt;「おや、新人さん？」&lt;/p&gt;
&lt;p&gt;館長室を見回していると、いきなり机の前に人の形をした光が現れた。わたし、何かスイッチでも押しちゃった？　突然の眩しさに目を細めて前を確認すると、徐々に光が弱くなってセーラー服を着た少女に変わっていく。くせの強いブロンドのロングヘアが揺れて、神秘的なグリーンの瞳と目が合う。あ、かわいい。&lt;/p&gt;
&lt;p&gt;マヤが昔楽しそうに見せてくれた、ホログラム映画のワンシーンを思い出した。&lt;/p&gt;
&lt;p&gt;「私は浦部だ。ここの館長をしている。館長なんて言わず、浦部さんと呼んでくれていい」&lt;/p&gt;
&lt;p&gt;「あ……はい、浦部さん。わたし、アリスです。石上図書館から来ました」&lt;/p&gt;
&lt;p&gt;「キミの勤務態度については石上図書館からよく聞いている。期待しているよ」&lt;/p&gt;
&lt;p&gt;その姿はわたしより年下に見えるけど、口から出る言葉選びは堅苦しくて威厳を感じさせるものばかり。それでも、この若くて優しそうな声を聞いていると冷たい印象は全く受けない。むしろ、館長には似つかわしくない若さを隠すために背伸びしている健気さを感じるくらいだった。&lt;/p&gt;
&lt;p&gt;スカートの裾をふわふわ揺らす浦部さんの姿は、いかにもデキる上司っぽい口調に全然合っていなかった。&lt;/p&gt;
&lt;p&gt;「ごめんね。とある事情で、私は外に出られないんだ。だから、今は別の場所からキミに話しかけている」&lt;/p&gt;
&lt;p&gt;いくら館長でも、全く外に出られないなんて聞いたことがない。ホログラムで姿を見せていることをごまかすための冗談だろうけど、それなら本物の館長室はどこにあるんだろう。もしかしたら本当に動けない事情があるのかもと思いつつ、意味もなく浦部さんの顔をじっと見つめる。さらさらと動く髪の端には、解像度の限界が宿っていた。&lt;/p&gt;
&lt;p&gt;「わざわざ来てくれてありがとう。着任しおりはロッカーに入れて置くから、持っていくといい」&lt;/p&gt;
&lt;p&gt;ありがとうございます、と言葉を返すと、満足そうに頷いた浦部さんの姿がぱっと消える。館長室に一人残されたわたしは、目の前に現れた不思議な館長さんについて思い出しながら、そっと彼女がいた場所に手を伸ばしていた。&lt;/p&gt;
&lt;h2 id="_2"&gt;マヤ「アリスってかわいいものに目がないから」&lt;/h2&gt;
&lt;p&gt;アリスに仕事が見つからないと言ったのは、半分嘘だった。いや……途中までは事実だった、という方が正しい。&lt;/p&gt;
&lt;p&gt;数日前に一括で応募した市内のパソコン教室やら事務職は、確かに全て不採用だった。オフィススイートが一通り触れれば務まるような仕事なら、怪しげな経歴を抱えているよそ者より同郷の若者を選ぶだろうし、それ自体は仕方ない。まぁ、写真を撮って印刷したいだけのお年寄りにImageMagickの任意コード実行を教えたって何にもならないんだし。ネビュではちょっと話題になるかもしれないけど。&lt;/p&gt;
&lt;p&gt;問題――アリスについた嘘――は、夜中に届いていた差出人不明のスカウトメールだった。件名には「図書館ネットワークに関する諜報活動のご依頼」とある。スパムに分類されていたから初めは目に入らなかったけど、転職ポータルから大量に届くお祈りメールを処理してからやっとその存在に気付いたのだ。&lt;/p&gt;
&lt;p&gt;この件名を視界に入れたのが、ちょうどアリスのファッションショーの直後だったものだから、なかなかタイミングが悪い。アリスは画面を見て驚く私の様子に目ざとく気が付いて、不思議そうな顔をしていた。咄嗟に知られてはまずいと思ってごまかしたものの、彼女が図書館から帰ってきたらまた追及されるかもしれない。&lt;/p&gt;
&lt;p&gt;とはいえ、迷惑メールは迷惑メールだ。図書館ネットの謎めいた陰謀論にあやかったスパムは年々増えていたし、ぴったり引っ越しを終えたその日に届いたのは偶然の一致か、せいぜいよくある標的型攻撃の一例だろう。そう思いながらメールを開くと、そこには多くの情報が記されていた。&lt;/p&gt;
&lt;p&gt;「これ……聞いたことないな。壮大な創作？」&lt;/p&gt;
&lt;p&gt;内容は、インターネットでいくらでも見つかるような陳腐な噂話から、昔の講演会か何かのスライドが一部だけヒットするような図書館ネットの内部組織図、さらには検証しようのない職員同士のゴシップまで。ところどころ添付ファイルの資料を参照している箇所があったものの、ホイホイとその誘いに乗って仕込まれたスクリプトを読み込んでしまうほどバカではない。&lt;/p&gt;
&lt;p&gt;それでも、独自の情報を提示して信頼を得ようとしているのはなかなか興味深かった。本文がなぜかお嬢様っぽい言葉遣いなのも謎の信頼感がある。少なくとも、書いたのはそれなりの日本語運用者だと分かるから。&lt;/p&gt;
&lt;p&gt;発信元は巧妙に偽装されていて、あたかもメールサーバ内から突然発生したようなログがつらつらとヘッダに残されているだけ。宛先は確かに私のメールアドレスだけど、この前転職ポータルに登録したものとは微妙に違っていて、ここもまた謎だ。&lt;/p&gt;
&lt;p&gt;そして、以降の返信はメールではなくThreema&lt;sup id="fnref:threema"&gt;&lt;a class="footnote-ref" href="#fn:threema" title="スイス製のチャットアプリで、メールアドレスや電話番号と結びつかない匿名IDのアカウントを利用して強力な暗号化通信を行うことができる。"&gt;2&lt;/a&gt;&lt;/sup&gt;から送るよう書かれており、連絡先として十二桁のIDが記されていた。&lt;/p&gt;
&lt;p&gt;仮に本当の依頼だったとして、誰がどんな目的で私に接触したのだろう。図書館ネットについて詳しく知りたい誰か。もちろん、秘匿されがちな情報を暴いてまとめたいだけの単なる図書館好きよりは、その情報を活用して図書館ネットに一計を巡らしたい攻撃者の方がありえるだろう。対価を払ってでも図書館ネットを転覆させたい誰か。警察？　いや、どちらかといえば公安庁の管轄か。&lt;/p&gt;
&lt;p&gt;さらに仮定を積み上げると、仮に図書館ネットが壊滅的な攻撃を受けたとしたら、それはアリスの職を脅かすということに他ならない。もちろん業務は長期間ストップするだろうし、システムの回復に力を注ぐために一般職員は最低限の人員まで削減されるというシナリオだって十分ありえる。つまり、アリスはクビになるってことだ。&lt;/p&gt;
&lt;p&gt;長年一緒に暮らすルームメイトの人生を狂わせかねない作戦に手を貸すなんて、本来ならありえない。しかし、相手はあの図書館ネットだ。自らの理想が抱える反体制の毒で苦しみ続ける間抜けな毒蛇のような存在。テロ組織が潜む組織の闇を暴く作戦に協力するのだから、多少の犠牲は許されるかもしれない。&lt;/p&gt;
&lt;p&gt;それに、視点を変えればアリスを図書館から引き離すチャンスと考えることさえできる。綺麗な素材のカードが繋ぎ止める奇妙な縁は、既に五年ほど――私とアリスが一緒に暮らした時間の半分以上――続いていた。五年前のクリスマス、駅前で街宣する図書館ネットからラピスラズリのしおりを受け取ったときの彼女の表情は、今でも忘れられない。&lt;/p&gt;
&lt;p&gt;あの瞬間から、アリスの心は図書館に奪われたのだ。&lt;/p&gt;
&lt;p&gt;アリスのことは好きだけど、図書館は嫌い。現に、純粋な彼女をこうして怪しい &lt;em&gt;総本山&lt;/em&gt; に送り込んだのだから。&lt;/p&gt;
&lt;p&gt;「流石に怒るかな……でも、しおりさえ全部揃えば……うーん……」&lt;/p&gt;
&lt;p&gt;アリスを無理に図書館から引き剥がしたとして、私たちが持続的で健康な生活を続けられるほどのお金はない。タクシー代で何度か見栄を張ることくらいはできても、結局は破綻する未来しか想像できなかった。それでも、アリスがいつまでも図書館ネットに囚われているのは苦しいし、いつか突然消えてしまわないか心配になる。&lt;/p&gt;
&lt;p&gt;しかし、この仕事を受ければその両方が解決できるかもしれない。&lt;/p&gt;
&lt;p&gt;「あー……やるか……」&lt;/p&gt;
&lt;p&gt;それから数時間悩んだ末、送金先を教えるだけなら問題ないと自分に言い聞かせながら、空っぽの新しいウォレットアドレスと依頼内容の詳細を尋ねるメッセージを送信した。最初に手数料として五万円を支払ってください、登録に保証金が必要で、ウォレットの残高が足りなくて……なんて言い始めたら無視すればいいんだし。業務内容と給料に納得いかなかったら手を引く。仕事では当たり前のことだ。&lt;/p&gt;
&lt;p&gt;情報収集の範囲を逸脱するような破壊活動はしない。諜報活動のためにアリスを騙して手伝わせたりはしない。そして、アリスの身に危険が及びそうになったら迷わず手を切る。自分の中のルールはちゃんと守ろう。&lt;/p&gt;
&lt;p&gt;ルームメイトの職場をちょっと調べるだけなら、それがお金になるだけなら、傷付く人は誰もいないはずだ。&lt;/p&gt;
&lt;p&gt;私の葛藤とは裏腹に、送信から数十秒足らずでメッセンジャーの通知フラッシュが光る。まるでボットのような速度の返信には「依頼内容は、中稲図書館についての調査全般・深部コアキーの入手です」という短い本文と共に、メールに記載していた額面通り五百万円相当の送金を示すトランザクションが貼られていた。&lt;/p&gt;
&lt;p&gt;「マジか……」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;中稲図書館。かつて図書館ネットの総本山として……というのは、公式ウェブサイトでも読めるありきたりな説明だ。江戸時代まではただの小山だったが、明治に入ってからこの高さ二十メートルほどの丘陵に初代中稲図書館が建てられたという。その後何度か建て替えを経て、現在は市民に「くろしゅ&lt;sup id="fnref:clothe"&gt;&lt;a class="footnote-ref" href="#fn:clothe" title="フランス語で「鐘」を意味するclocheと、名産品である「黒酒」の音読みを掛けたもの。"&gt;3&lt;/a&gt;&lt;/sup&gt;プラザ」という愛称で親しまれる特徴的な銀色ドームの建物が使われている。&lt;/p&gt;
&lt;p&gt;中稲では明治時代から長年この図書館が町のシンボルだったこともあり、比較的多くの住民から愛されていることが役所の広報などから読み取れる。それでも、統計上の利用者数は人口が近い他の地域と比しても多いわけではない。高齢者が丘の上にある図書館に集まるのは難しいという事情もあるだろうけど、あくまで実用に供さないシンボルにすぎないということか。&lt;/p&gt;
&lt;p&gt;気になるのは、この銀色ドームの「くろしゅプラザ」に生まれ変わる前後のことだ。&lt;/p&gt;
&lt;p&gt;電書法が制定される数年前から、多くの図書館に民間企業の商業的視点を入れようとする動きが起こっていた。各地の図書館は見栄えのいいガラス張りの建物に改装され、間接照明と木目調の建材を活かした美しく荘厳な内装に仕立てた上で、飲食可能な閲覧席を極端に拡張した複合型図書館がブームを迎える。&lt;/p&gt;
&lt;p&gt;しかし、閲覧席の拡張やカフェの導入によって、どうしても旧書籍を収める本棚が邪魔になるケースが増えていた。多くの旧書籍は &lt;em&gt;商業的&lt;/em&gt; 判断で閉架書庫に追いやられ、書架はデザイン上必要なものを除いて撤去されることになる。&lt;/p&gt;
&lt;p&gt;閉架図書として登録されているなら、本としてはまだ幸せかもしれない。より悲惨なのは、アクリル板で完全に塞がれた木製ラックに収められた旧書籍だった。殺風景な壁面を埋めるように飾られた壁紙のようなその本は、貸し出しはおろか取り出して読むこともできないのだから、あくまで読書空間を盛り上げるための小道具に成り下がる。&lt;/p&gt;
&lt;p&gt;図書館を単なる電子書籍を読むための快適な空間として作り替え、電子書籍体験の盛り上がりを支えると共に旧書籍へのアクセスを難しくするという一石二鳥の企て。もちろん、これは電書法の施行をスムーズに進めるための裏工作だったわけだ。&lt;/p&gt;
&lt;p&gt;この &lt;em&gt;読書広場化&lt;/em&gt; の波は中稲図書館にも迫っていた。駅から見える丘の上にあることから、プラネタリウムをイメージした円形の建物と銀色のドームが目を引く新たなデザインが示され、さらに住民から愛称を募集して親しみやすいナラティブが作り上げられた。&lt;/p&gt;
&lt;p&gt;建物は数年で完成し、臨時図書室に移していた本を戻すところまでは順調に進んでいた。この時点では地下の閉架書庫が十分に整備されておらず、展示用の本棚に収めた残りは秘密裏に廃棄するつもりだったとも言われている。そこにやってきたのが、後に図書館ネットを組織することになった浦部槭樹氏だった。彼は中稲図書館の初代館長の子孫であり、一時は中稲を離れていたが、どういうわけか完成間近で戻ってきたらしい。&lt;/p&gt;
&lt;p&gt;そこからは怒濤の展開だった。なんと浦部氏は建物を含む周辺の土地を丸ごと買い上げ、新たな図書館指定管理者に就いたのだ。彼は当初の計画を破棄して書架の拡張を進め、全ての本を失わずに開館当日を迎えたのだった。彼が館長になった日は旧書籍保護記念日として、開館日は図書館ネットの設立記念日としてそれぞれ知られている。……と、基本的な情報はこれくらい。&lt;/p&gt;
&lt;p&gt;もう一方の「深部コアキー」については、残念ながら何もヒットしなかった。名前から図書館内部の何かであることは想像が付くものの、依頼者だけが使っている通称なのかもしれないし、存在するかも分からない噂話の検証が目的なのかもしれない。中稲には図書館を守る何かが隠されている、というのはよくある噂のひとつだった。&lt;/p&gt;
&lt;h2 id="_3"&gt;アリス「スマホの充電ってよく忘れちゃうよね」&lt;/h2&gt;
&lt;p&gt;物理端末の充電が切れる音が聞こえて、ふと目が覚める。あれ……今は何時だろう。カーテンの外はまだ暗いみたいだった。&lt;/p&gt;
&lt;p&gt;悲鳴を上げた物理端末を朝まで充電しておこうと思って横を向くと、部屋の中にほんのりと紫色の光が浮かび上がっているのが分かった。マヤが今日も頑張っているみたい。昨日も夜中まで熱心にキーボードを叩いては「やばいな……これ、どうしよ……」なんて呟いていたから、流石に少し焦っているのかな。でも、夜更かししてまでお仕事探しなんて、なんだかマヤらしくなかった。&lt;/p&gt;
&lt;p&gt;ベッドに寄りかかるマヤの手振りに合わせて揺れる光をぼーっと見ていると、心細い夜でも自分一人じゃない気がして少し安心する。前のお家でもよく見る光景だった。マヤはたまにわたしの部屋に来て、一緒に眠るわけでもなくお仕事をしていたから。&lt;/p&gt;
&lt;p&gt;こういうとき、頭を撫でてあげるとマヤはくすぐったそうにして振り向くから、かわいい。でも、今は余裕がないみたいだから邪魔しちゃダメだよね。&lt;/p&gt;
&lt;p&gt;「ん……アリス、起こしちゃった？」&lt;/p&gt;
&lt;p&gt;――と思っていたつもりが、気付くとマヤの頭に手を置いていた。わたし、寝ぼけているのかな。&lt;/p&gt;
&lt;p&gt;「寝る前に充電し忘れちゃったみたいなの。最近、すぐバッテリーが切れちゃって……ふぁあ」&lt;/p&gt;
&lt;p&gt;少し驚いた様子でこちらを見るマヤの頭を何度か撫でてから、その手のまま充電器に置き損ねた物理端末を指さす。引っ越しで場所が変わったのに慣れなくて、家に帰ってから充電器に置くのを忘れることが多くなっていた。&lt;/p&gt;
&lt;p&gt;「あー……そっか。私がやっておくよ」&lt;/p&gt;
&lt;p&gt;マヤは何枚かエアロを消してからゆっくり立ち上がって、床に置きっぱなしのうさぎさんを棚の上の充電器に移した。せっかくお揃いのルームウェアを持ってきたのに、マヤは暑いよと言ってVIVID LADYの黒い半袖とショートパンツのスウェットばかり着ている。フレアっぽい袖や裾も確かにひらひらしてかわいいけど、絶対もこもこの方がいい。&lt;/p&gt;
&lt;p&gt;「マーヤ、お仕事見つかりそう？　あんまり無理しちゃダメだよぉ」&lt;/p&gt;
&lt;p&gt;「ありがと。でも、大丈夫だからアリスはちゃんと寝てね」&lt;/p&gt;
&lt;p&gt;ベッドの横に戻ってきたマヤが、スマートグラスを外してそっとわたしの頭を撫でた。ひんやりとした手が心地いい。わたしを見下ろす暗がりの瞳にスマートグラスの光が反射して、あやしい紫色にきらきら光っている。わたしの目もこんな色に見えているのかなと思うと、なんだか急に恥ずかしくなってそっと目を閉じた。&lt;/p&gt;
&lt;p&gt;「はーい。疲れちゃったら、またおっぱいしてあげるねぇ……」&lt;/p&gt;
&lt;p&gt;わたしはマヤと狭いベッドで眠るのが好きだけど、彼女はどう思っているだろう。何度かこのベッドで一緒に眠ったことがあるけど、マヤは誰かと一緒に寝るのが苦手みたい。昔、マヤの単位がかかった大事な期末試験で寝坊しちゃって、アリスのせいだよって怒られたこともあった。わたしはマヤと同じベッドで寝たかっただけなのに。&lt;/p&gt;
&lt;p&gt;お仕事探しが終わったマヤがベッドに戻ってくるのをぼんやり夢に見ながら、わたしはまた眠りについた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;らしく&lt;/em&gt; ないのは、マヤだけじゃなかった。&lt;/p&gt;
&lt;p&gt;翌朝、しっかり充電百パーセントで図書館に出勤したわたしは、ロッカーに見覚えのある封筒が入っているのを見つけた。これは、昨日も浦部さんから受け取ったピンク色の封筒だ。初代の館長さんをイメージした色だって言っていた気がする。きっと、かわいいものが好きだったのね。&lt;/p&gt;
&lt;p&gt;渡し忘れたものでもあったのかしら。その場でぴりぴりと封を破ると……なんと、中から着任しおりが現れた。&lt;/p&gt;
&lt;p&gt;「えっ？　どうして？」&lt;/p&gt;
&lt;p&gt;思ったより大きな声が出てしまった自分に驚きながら、きょろきょろと辺りを見回した。盗んだわけでもないんだから堂々としていればいいはずだけど、なんとなく。誰もいないことを確認してから、リュックから &lt;em&gt;おはか&lt;/em&gt; を取り出して昨日のしおりと見比べる。&lt;/p&gt;
&lt;p&gt;二枚のしおりは、どちらも薄く伸ばした虹色のオパールに金文字で「着任」と彫られていて、一日違いの日付が刻印されていた。着任しおりを二枚ももらえるなんて、わたしったら随分期待されているみたい。やっぱり、前の年間表彰が効いたのかしら……なんてこともなく、単に浦部さんが間違って入れてしまったのだろう。&lt;/p&gt;
&lt;p&gt;始業までは少し時間があったし、先に館長室へ向かうことにした。&lt;/p&gt;
&lt;p&gt;丸い建物に沿った階段をぐるぐる降りていると、 ずっと同じ場所を歩いている気分になる。館長室の扉をノックすると、昨日聞いた優しい声が返ってきた。部屋に入ると、やはり昨日と同じようにセーラー服姿の浦部さんがホログラムで現れる。&lt;/p&gt;
&lt;p&gt;「おや、新人さん？」&lt;/p&gt;
&lt;p&gt;そして、わたしを見た第一声まで同じだった。……って、どうして？　わたしのこと、覚えてないのかな。ホログラムを通じてわたしに見せる優しい表情は、決して冗談を言ってからかおうとする様子には見えない。&lt;/p&gt;
&lt;p&gt;「えーとぉ……アリス、です。昨日も浦部さんとお話して、こう……褒めてもらったり、しました」&lt;/p&gt;
&lt;p&gt;「アリス……あぁ！　そうだった、昨日来ていたね。すまない、少しトラブルがあって記憶が飛んでいて……」&lt;/p&gt;
&lt;p&gt;浦部さんはわたしの名前を聞いてやっと合点がいったらしく、優しい表情の後ろから困惑した顔を見せる。記憶が繋がって電気でも走ったみたいに、ホログラムに一瞬ノイズが走った。やっぱり、本当にわたしのことを忘れていたみたいだ。&lt;/p&gt;
&lt;p&gt;「大丈夫ですか？　倒れちゃう前に、休んだ方がいいですよぉ」&lt;/p&gt;
&lt;p&gt;まさか、忙しくて人と会話した記憶が飛ぶなんて。やっぱり、館長ってとっても多忙な業務らしい。石上図書館でも、館長さんがなかなかお家に帰れなかったみたいだし。館長になればたくさんしおりをもらえるかもしれないけど、こんな風になっちゃうなら断らなきゃね。マヤと過ごす時間も減っちゃうし。&lt;/p&gt;
&lt;p&gt;「そうだ。着任しおりはロッカーに入れておいたから、持っていって。じゃあ、お仕事頑張ってね」&lt;/p&gt;
&lt;p&gt;「あ、えーと……」&lt;/p&gt;
&lt;p&gt;そう言い残した浦部さんのホログラムがすっと消えて、広い館長室にわたしだけが残される。その場に鏡がなくて分からなかったけど、きっときつねに化かされたような顔をしていたと思う。休んだ方がいいですよなんて言ったら、まさか用件に入る前にいなくなっちゃうなんて。&lt;/p&gt;
&lt;p&gt;手持ち無沙汰で館長室を出たわたしは、また &lt;em&gt;おはか&lt;/em&gt; を取り出して、双子のしおりを右から、左から眺めてにんまりする。虹色のしおりというだけで嬉しいのに、それが二つもあるなんて。&lt;/p&gt;
&lt;p&gt;一日違いの着任しおりなんて貴重なもの、本当はもらっちゃいけないんだろうけど、浦部さんがくれるって言うなら甘えてもいいよね。だって、しおりってとってもかわいいんだもの。&lt;/p&gt;
&lt;p&gt;（&lt;a href="/post/bookleaf-2/"&gt;後半&lt;/a&gt;へ続く）&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:nebu"&gt;
&lt;p&gt;分散SNSサーバ実装のひとつ。略称の「ネビュ」の方が広く伝わりやすい。投稿自体を「ネブ」、投稿することを「ネブる」といい、利用者は「ネビスト（またはネビュラー）」と呼ばれる。&amp;#160;&lt;a class="footnote-backref" href="#fnref:nebu" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:threema"&gt;
&lt;p&gt;スイス製のチャットアプリで、メールアドレスや電話番号と結びつかない匿名IDのアカウントを利用して強力な暗号化通信を行うことができる。&amp;#160;&lt;a class="footnote-backref" href="#fnref:threema" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:clothe"&gt;
&lt;p&gt;フランス語で「鐘」を意味するclocheと、名産品である「黒酒」の音読みを掛けたもの。&amp;#160;&lt;a class="footnote-backref" href="#fnref:clothe" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>2023/01/01～2023/04/01</title><link href="https://ama.ne.jp/post/report-20230401/" rel="alternate"/><published>2023-04-01T17:03:00+09:00</published><updated>2023-04-01T17:03:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-04-01:/post/report-20230401/</id><summary type="html">&lt;p&gt;2023/01/01～2023/04/01のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;かいた&lt;/h3&gt;
&lt;h4 id="_3"&gt;あまねけ！&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/yet-another-barcode-system/"&gt;Binary EyeとCloudflare Workersで作るバーコード読み取りシステム&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://play.google.com/store/apps/details?id=de.markusfisch.android.binaryeye"&gt;Binary Eye&lt;/a&gt;にデータ転送機能があるのを見つけて遊びたくなったので書きました。&lt;/li&gt;
&lt;li&gt;スマホアプリを提供している書籍管理サービスなら同じようなことができると思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/try-nostr-possibility/"&gt;Nostr調べてみる&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;SNS時代を経て再発明された署名付きのIRCっぽいプロトコルについての所感です。&lt;/li&gt;
&lt;li&gt;100ドル/月かかったり、読み込みが10000件/月に制限されたりしないので経済的ですね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/plutonium-scavenger/"&gt;「プルトニウム回収バイト」の噂について&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;インターネットで噂される違法な闇バイトについて書いた虚構記事のたのしい練習です。&lt;/li&gt;
&lt;li&gt;金イクラには放射能はありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/separation-journey/"&gt;分籍旅行のこと&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/mineral-show/"&gt;ミネラルショーに行ったこと&lt;/a&gt;みたいな感じの日記です。&lt;/li&gt;
&lt;li&gt;これも半分は虚構です。どこが虚構か予想してコメントしてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>分籍旅行のこと</title><link href="https://ama.ne.jp/post/separation-journey/" rel="alternate"/><published>2023-03-30T17:58:00+09:00</published><updated>2023-03-30T17:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-03-30:/post/separation-journey/</id><summary type="html">&lt;p&gt;半分は虚構です&lt;/p&gt;</summary><content type="html">&lt;p&gt;先月の初めごろ、これまで父母と姉妹（私は四人姉妹の次女なのです）と共に入っていた戸籍を抜けて新たな戸籍を作りました。いわゆる分籍というものです。&lt;/p&gt;
&lt;p&gt;新たな本籍地には&lt;a href="https://www.town.asahi.toyama.jp/"&gt;富山県下新川郡朝日町&lt;/a&gt;を選びました。ここには、山から川を通って流れ落ちてくるヒスイを採集できる&lt;a href="https://www.asahi-tabi.com/hisuikaigan/"&gt;ヒスイ海岸&lt;/a&gt;という場所があるのです（新潟県側にも&lt;a href="https://niigata-kankou.or.jp/spot/8638"&gt;同様の海岸&lt;/a&gt;が広がっています）。人生がゴールしたらみんなでヒスイを拾い集めるのを仕事にして、あとは好きなことだけしていたいね、といつも思っているのでここを本籍にします。最近流行っている&lt;a href="https://www.theverge.com/23560328/openai-gpt-4-rumor-release-date-sam-altman-interview"&gt;100兆個のパラメータ&lt;/a&gt;の海を漁ってミケランジェロ像を作っていると、早く人生をゴールしたくなりますね。&lt;/p&gt;
&lt;p&gt;今回は役所への届け出のついでに、ヒスイ海岸やその周辺を回る &lt;em&gt;分籍旅行&lt;/em&gt; を楽しみました。穏やかな春先の平日に海岸をゆっくり歩いて回るのは、忙しい日常の疲れがすっかり吹き飛ぶ素敵な時間でした。分籍は移動先の本籍地に届け出る必要があると勘違いしていた（実は居住地の役所でもよかったらしいです）ゆえの小旅行だったのですが、全部が終わった後のような優しい楽しさを味わえたのでよしとします。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/separation-journey/asahi.jpg"&gt;&lt;img alt="ヒスイ海岸の夕暮れ" height="400" src="/images/separation-journey/asahi_thumb.jpg" width="300"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ちなみに今回分籍を行ったのは、私が知らないうちに実家の引っ越しと本籍の移動があった（転籍）ことへの対応のためです。慣れ親しんだ実家が突然消滅するという状況にはそこそこ驚きましたが、私は両親と同居していないのでほとんど実害はありません。しかし、今後かれらの現住所の移動に合わせて私の本籍まで動くといろいろ不便がありそうなので、先手を打っておくことにしました。&lt;/p&gt;
&lt;p&gt;向こうにもいろいろな事情やプライドがあり、結果として不幸なすれ違いが起きていたようなのですが、ここで書くには退屈で個人的すぎるので委細は省略します。気が向いたらFANBOXに雑文として置いておこうと思います。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「&lt;a href="https://www.moj.go.jp/MINJI/koseki.html"&gt;戸籍&lt;/a&gt;」というのは、国民一人一人の身分事項やその変動を登録し、公証するための制度です。ここでいう身分事項とは、出生に関する事項（父母の名前や出生日）に始まり、その後の婚姻・離婚・縁組・離縁・認知などの身分行為の結果、そして死亡に関する事項（死亡日）を指しています。&lt;/p&gt;
&lt;p&gt;戦後日本の戸籍は、筆頭者および配偶者と未婚の子をまとめた家族単位で構成されるもの（イエ制度だ！）で、主に出生・婚姻・縁組・認知などで同じ戸籍にまとめられ、死亡・離婚・離縁または未婚の子が婚姻すると戸籍から削除されます。戸籍の変動はこのような身分行為に付随する場合が多いですが、例外として「分籍」を行うと、単に今の戸籍から抜けて新たな戸籍を作ることができます。&lt;/p&gt;
&lt;p&gt;戸籍は身分事項を公証するためのものなので、必ずしも現在の住所地とは対応していません。戸籍を置く場所を「本籍」と呼び、日本国内の住所であればどこでも設定できます。必要なら「転籍」を行って、戸籍単位で本籍を移動することも可能です。ただし、その住所を管轄する自治体（本籍地）が存在・確定している必要があり、戸籍はその自治体で管理されます。&lt;/p&gt;
&lt;p&gt;さて、ここで分籍の手続きについてある程度まとめます。分籍を行うには、「誰が」「どこで」「どうやって」進めるべきか知っておく必要があるでしょう。&lt;/p&gt;
&lt;p&gt;①誰が: 分籍できるのは筆頭者や配偶者以外の成人だけです。筆頭者や配偶者が戸籍を分割したり、未成年の子が単独で新たな戸籍を作ることはできません。私は未婚で成人で実家なしです。&lt;/p&gt;
&lt;p&gt;②どこで: 現在の本籍地または新しい本籍地に加えて、現住所地または一時的な居所地の自治体の市町村役場や区役所のいずれか1つに提出します。私は現住所地で手続きできることを知らなかったので、旅行がてら新しい本籍地で届け出を行いました。&lt;/p&gt;
&lt;p&gt;③どうやって: 現在の本籍地以外で手続きを行う場合は、戸籍の内容を公証する戸籍謄本（全部事項証明書）が1通必要です。私は郵送で請求したものを新しい本籍地に持参しました。&lt;/p&gt;
&lt;p&gt;戸籍謄本は1通あたり450円となかなか高く、郵送で請求する場合は必要額の&lt;a href="https://www.jp-bank.japanpost.jp/kojin/sokin/hikoza/kj_sk_hkz_kogawase.html"&gt;定額小為替&lt;/a&gt;証書を同封する必要があるのでなかなか不便です。定額小為替は1枚200円の手数料がかかる上に、ゆうちょ銀行（貯金窓口）での取り扱いなので、土日や深夜早朝に利用可能なゆうゆう窓口などで発行することはできません。もちろん往復の切手代も必要なので、結果として戸籍謄本1通のために800円以上かかってしまいました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="450円の定額小為替証書" height="400" src="/images/separation-journey/postal-note.jpg" width="300"&gt;&lt;/p&gt;
&lt;p&gt;なお、記入・捺印済みの分籍届と認印の持参を指示する自治体もあるようなので、必要に応じて届け出先の情報を確認してください。私の場合は窓口で分籍届を書き、署名のみで押印は求められませんでした。&lt;/p&gt;
&lt;p&gt;重要な注意事項として、分籍を行うと元の戸籍には戻れなくなります。離婚や離縁では元いた戸籍に戻る「復籍」を選べますが、分籍では自分が筆頭者の新しい戸籍が作られるので移動できなくなるのです。離婚後に新しい戸籍を作った場合も同様で、後から復籍することはできません。私も窓口でその旨を告知されて承諾したところ、長い溜めの後に目の前で戸籍謄本が破り捨てられてしまったので、もう戻れないところまで来たのを実感しました。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;戸籍というのは非常に面倒なものです。まず現住所を示す住民票とは別の概念として存在する点が分かりにくく、さらに家族単位での管理ゆえに移動や出入りが煩雑になっています。出生や婚姻といった単純な追加操作だけならまだしも、子の婚姻による除籍だとか、離婚による復籍、死亡による除籍などを考えていくと崩壊していくのが分かるでしょう。&lt;/p&gt;
&lt;p&gt;これらの身分行為は、戸籍に対応する家族とは異なる範囲に影響するものであり、この結果を戸籍に記録するのは不自然です。つまり、個人に関わる身分事項の公証は個人に紐付くよう記録すればよいのです。婚姻や出生の記録が必要なら、別のレイヤーで個別にリンクすれば十分でしょう。婚姻ならお互いに署名したパートナーシップの記録を保管し、出生は子に適切な署名を与えればその事実を証明できます。マイナンバーは今どこで何をしていますか？&lt;/p&gt;
&lt;p&gt;戸籍の廃止論が出てくると、実利上のメリットとして、家族関係や生まれてから死ぬまでの身分事項を把握しやすいという点を挙げる人がいます。しかし、それが実際に活きるのはおおよそ相続人の証明の際だけです。たまに家系図を作りたくなってしまう変わり者が出てくることもありますが、いずれにせよ人生でそう何度も経験するものではなく、身分行為に関する手続きを煩雑にするデメリットを超える利益をもたらす制度ではありません。&lt;/p&gt;
&lt;p&gt;他にも、長い間続く日本の歴史を残すべきとか、家族の一体感がなくなってしまうという愛にあふれる主張もよく見かけますね。でも、普通の人は生活の中で戸籍謄本を意識することはないし、戸籍謄本に家族の名前が並んでいるだけで一体感が高まるような人は、戸籍がなくとも家族を愛せるはずです。そして、私が家族を愛して実家の消滅を見届けられる人格者なら、こんな記事を書くこともなかったのです。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>「プルトニウム回収バイト」の噂について</title><link href="https://ama.ne.jp/post/plutonium-scavenger/" rel="alternate"/><published>2023-03-20T18:58:00+09:00</published><updated>2023-03-20T18:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-03-20:/post/plutonium-scavenger/</id><summary type="html">&lt;p&gt;新しいジブン きっとミツカル&lt;/p&gt;</summary><content type="html">&lt;p&gt;あなたは、プルトニウムを採集して報酬を受け取る闇バイトの噂を聞いたことがありますか？&lt;/p&gt;
&lt;p&gt;闇バイトと聞くと、SNSを通じて集められた若者が特殊詐欺や強盗事件の実行役として犯罪に手を染めてしまうという、最近多発している社会問題を想像するかと思います。実はこれとほぼ同時期から、廃鉱や古い工場跡地を採掘・探索してプルトニウムを集める「プルトニウム回収バイト」の存在がインターネットでまことしやかに噂されています。&lt;/p&gt;
&lt;p&gt;プルトニウムは、元素記号がPuで原子番号が94のかなり重い元素です。放射能を持っている放射性元素の一種で、主に原子炉の燃料や核兵器の原料として使われると言えば、その危険性が分かるでしょうか。一時的な収入に目がくらんで売り渡したプルトニウムが、最終的に自分たちを攻撃するための核兵器の原料に使われたら――もはや目も当てられません。&lt;/p&gt;
&lt;p&gt;日本では、放射性物質によるテロや原子力事故を防ぐために「原子炉等規制法」や「放射性同位元素規制法（RI法）」という法律が定められており、放射性元素や核原料物質を無許可で所持・販売・加工などすると罰せられます。つまり、何ら許可を得ていない個人が勝手にプルトニウムを採集して保管したり、SNSを通じて売却するのは完全に真っ黒な違法行為なのです。そもそも、許可なく私有地に侵入したり資材を持ち出すこと自体が不法侵入や窃盗の罪にあたります。ましてや、そのような活動を助長するプルトニウム回収バイトの募集は、凶悪な詐欺や強盗の教唆と並ぶ強い違法性を孕んでいるのが分かるでしょう。&lt;/p&gt;
&lt;p&gt;また、プルトニウムの採集はこのような法律上の問題だけではなく、重篤な健康被害を伴うリスクが非常に高い行為です。通常、放射性物質を取り扱うには遮蔽壁の設置や防護服などの着用が必要であり、適切な防護策を講じても不必要に近づいたり触ったりしてはいけません。前述のRI法でも、空間の放射線を測定する線量率計や個人の被曝量を測定する線量計を用いて、年間の被曝量を適切に管理したり線量限度以下に抑制することが求められています。これらの線量限度を超えて被曝すると、放射線障害と呼ばれる様々な健康被害を引き起こす可能性が高まります。具体的には、全身の様々な臓器に障害が残ったり、ガンの発生確率が有意に上昇するといった取り返しのつかない事態に繋がるのです。&lt;/p&gt;
&lt;p&gt;しかし、プルトニウム回収バイトを請け負う若者たちは、線量計による被曝量の測定はもちろん、適切な防護服の着用さえ怠ったピクニック気分の軽装で採集を行っているようです。これでは、採集場所での一時的な外部被曝にとどまらず、体表に付着した細かいプルトニウムによって周囲を被曝に巻き込んだり、呼吸や飲食でプルトニウムを体内に取り込むことで内部被曝を引き起こしてしまいます。特に、プルトニウムは体内に蓄積しやすい性質があり、内部被曝の被害が大きくなりやすいα線を放出するので非常に危険です。&lt;/p&gt;
&lt;p&gt;また、プルトニウムを探索・回収する方法もいい加減と言わざるを得ません。かれらは放射線を検知するための線量計を持っていないので、指示された廃鉱や工場跡地に忍び込んで闇雲に探索を繰り返すしかないようです。プルトニウムはわずかに青い燐光を放つので月の出ない夜に探せばいいとか、常に熱を放っているのでテントウ虫などの昆虫が集まっている場所を探すと早いとか、まるでゲーム感覚の見分け方がバイト界の一般常識として広まっています。非効率な探索方法では被曝時間が長くなりますし、あちこちをひっくり返して粉塵を巻き上げることで内部被曝のリスクが跳ね上がるはずですが、高額な報酬にしか興味のない若者たちは全く気にしません。&lt;/p&gt;
&lt;p&gt;ただし、これらのバイトの実態については、匿名掲示板に書き込まれた体験談をまとめたものであり、実際にバイトを募集する書き込みを確認した人は誰もいないのが現実です。また、応募から換金までの一部始終を語った信頼性のあるルポ記事なども今のところ存在せず、それぞれの断片的な投稿ひとつひとつを確認していくと、憶測や創作の域を出ないものが混ざっていることを確認できます。プルトニウムの採集方法どころか、プルトニウムを回収するという闇バイトの存在さえ、根も葉もない都市伝説なのかもしれません。&lt;/p&gt;
&lt;p&gt;さて、単なる都市伝説だとしても、このようなプルトニウム回収バイトの噂がインターネットで広がっているのには何か理由があるのでしょうか？　SNSに寄せられたこの闇バイトに関する考察や調査をまとめてみると、主に次の二つの特徴が浮かび上がってきます。&lt;/p&gt;
&lt;p&gt;まず、プルトニウムが高値で売れるという内容については、過去の放射性物質に関する事件や風評被害への対応と共に語られています。放射性物質に関する事件では、2019年に都内の高2男子生徒がアメリシウムという放射性物質の所持で逮捕されたり、オークションサイトでウランが流通する事件が立て続けに起きており、放射性物質の売買という違法な取引で高額な収入を得られるというイメージを裏付けているようです。また、福島第一原子力発電所の事故で風評被害を受けた農産物や水産物を秘密裏に国費で買い取っていたという、真偽不明の対応策と結びつけた主張もいくつか見かけました。&lt;/p&gt;
&lt;p&gt;そして、高値で買い取ったプルトニウムがどう利用されているかについては、さらに意見が分かれています。冒頭で説明したとおり、プルトニウムが核兵器の原料に使われるので、日本を壊滅させるための核兵器を作る計画であると警鐘を鳴らす主張は、噂が広まった当初から根強く残っています。他には、紫外線下で鮮やかな黄色に輝くプルトニウムガラスの原料として、あるいは東北地方の山奥にあるプルトニウム温泉を営業するための材料として広く集めているという説も唱えられています。最近では、プルトニウムが安定してα崩壊するという性質から長寿命の原子力電池に用いられていることになぞらえて、宇宙人がUFOを修理するための材料を集めているというオカルトチックな説も飛び出しており、ますます噂の真相が怪しくなるところです。&lt;/p&gt;
&lt;p&gt;みなさんは、このようなプルトニウムの採集と引き換えに高額な報酬を謳う「&lt;ruby&gt;&lt;rb&gt;プルトニウム回収バイト&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;プルサーマルラン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;」を見つけても、決して近づかないようにしてください。プルトニウムによる被曝のリスクを背負うだけではなく、知らず知らずのうちにみなさんの平穏な生活を脅かす危険な存在に協力してしまうことになるかもしれません。&lt;/p&gt;
&lt;p&gt;/* ※本記事は、日本国内の法律に違反する行為を推奨したり、重篤な健康被害に繋がる行為を助長したり、実在の人物・団体・法律や、実際の事件・事故・噂について記述するものではありません。 */&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>Nostr調べてみる</title><link href="https://ama.ne.jp/post/try-nostr-possibility/" rel="alternate"/><published>2023-02-06T19:36:00+09:00</published><updated>2023-02-06T19:36:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-02-06:/post/try-nostr-possibility/</id><summary type="html">&lt;p&gt;Nostrの立ち位置とその概念について&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;はじめに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nostr"&gt;Nostrとは何か？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#sns"&gt;従来のSNSのメリット・デメリット&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nostr_1"&gt;Nostrが実現すること&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#nostr_2"&gt;Nostrでは何ができるか&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#nip-01"&gt;NIP-01: 基本的なプロトコル&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nip-02"&gt;NIP-02: フォローリスト&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nip-04"&gt;NIP-04: 暗号化済みダイレクトメッセージ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nip-05-dns"&gt;NIP-05: DNSを用いた公開鍵のマッピング&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nip-08"&gt;NIP-08: メンション&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nip-09"&gt;NIP-09: イベントの削除&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nip-25"&gt;NIP-25: リアクション&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nip-28"&gt;NIP-28: 公開チャット&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;Twitterはかつてないほどの嵐に包まれています。イーロン・マスク氏が経営権を握ってからのTwitter社が、他のSNSへのリンクツイートを禁止したり（&lt;a href="https://www.itmedia.co.jp/news/articles/2212/19/news069.html"&gt;昨年12月&lt;/a&gt;）、便利で自由な機能によってTwitterのシェアを支えてきたサードパーティのアプリを排除する（&lt;a href="https://www.itmedia.co.jp/news/articles/2301/20/news101.html"&gt;今年1月&lt;/a&gt;）だけではなく、恣意的な基準で多くのアカウントの凍結を繰り返すなど（&lt;a href="https://www.itmedia.co.jp/news/articles/2302/03/news099.html"&gt;今年2月&lt;/a&gt;）、中央集権型SNSが迎えうる最悪の結末を辿りつつあるのは、みなさんもご存じでしょう。&lt;/p&gt;
&lt;p&gt;そのような苦境の中で、中央集権型SNSから脱するための取り組みが再び注目を集めています。Twitter社がリンクのシェアを禁止していた他のSNSには、&lt;a href="https://joinmastodon.org/"&gt;Mastodon&lt;/a&gt;や&lt;a href="https://nostr.com/"&gt;Nostr&lt;/a&gt;といった非中央集権型のSNSも含まれており、強力な中央集権型SNSの運営主体でさえ脅威に感じるほどの勢いと力を持っていることを暗に示しました。&lt;/p&gt;
&lt;p&gt;この記事では、非中央集権型のSNSが持つメリット・デメリットを振り返りながら、Mastodonなどの実装でよく知られるActivityPubとは異なるアプローチを採ったNostrというリレー型分散SNSについて掘り下げていきます。&lt;/p&gt;
&lt;h2 id="nostr"&gt;Nostrとは何か？&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/nostr-protocol/nostr"&gt;Nostr&lt;/a&gt;とは、非中央集権的なSNSを構築するためのプロトコルのひとつです。より具体的には、Notes and Other Stuff Transmitted by Relays（リレーで送信されるメモなど）という名前の通り、必ずしも信頼できない複数のリレーを通じてクライアントの署名付きメッセージをやり取りするための仕組みと言えます。&lt;/p&gt;
&lt;p&gt;リレーを通じてメッセージを送るとは、実際には何を意味しているのでしょうか？　これによって何を実現できるのでしょうか？　その詳細については、Nostrの&lt;a href="https://github.com/nostr-protocol/nostr#this-is-needed-because-other-solutions-are-broken"&gt;README&lt;/a&gt;で他のSNS実装との比較を交えて示されています。&lt;/p&gt;
&lt;p&gt;まずは上記資料の要点を元に、Nostrを含めた各種SNSの実装方法のメリット・デメリットについてまとめます。&lt;/p&gt;
&lt;h3 id="sns"&gt;従来のSNSのメリット・デメリット&lt;/h3&gt;
&lt;h4 id="sns_1"&gt;中央集権型SNS&lt;/h4&gt;
&lt;p&gt;Twitterをはじめとする単一の運営主体がサービス全体を掌握する中央集権型SNSの問題点は、改めてここで論じる必要はないでしょう。恣意的なルール運用によるアカウントの凍結や投稿の削除を繰り返したり、投稿を勝手に選別して並べ替えたり、退屈で不快な広告を挟み込んだり……挙げればキリがありません。&lt;/p&gt;
&lt;p&gt;もちろん、投稿を編集・削除したり、閲覧数などの統計情報を取得するような、非中央集権的なサービスでは難しい・面倒あるいは不確実な操作がシンプルに実現できるというメリットがあると主張することもできます。また、犯罪を誘発しかねない投稿や不快な投稿を未然に &lt;em&gt;防いでくれる&lt;/em&gt; のをメリットと考える人もいるでしょう。それでも、現実にTwitterが多くの人に不自由を強いて圧政を敷いている現実を見れば、権力集中によるデメリットの方が大きいと言わざるを得ません。&lt;/p&gt;
&lt;h4 id="decentralizedsns"&gt;クライアント・サーバーモデルの連合型（decentralized）SNS&lt;/h4&gt;
&lt;p&gt;このような中央集権型SNSと比較すれば、Mastodonなどの主に&lt;a href="https://www.w3.org/TR/activitypub/"&gt;ActivityPub&lt;/a&gt;を実装した連合型SNSは自由なシステムです。インスタンスの管理主体が単一でないのはもちろん、お互いのインスタンスがどんな実装かも気にしません。このような連合型SNSに参加したいユーザーは、有志がまとめたインスタンスの一覧から1つ選んだり、自分自身でインスタンスを立ち上げて投稿を開始できます。&lt;/p&gt;
&lt;p&gt;連合型SNSの最大のメリットは、あるインスタンスでBANされたとしても、すぐに別のインスタンスから再び参加できるという点でしょう。つまり、単一の運営主体によって特定のユーザーをネットワークから排除できないように、プロトコルの設計レベルで考慮されています。&lt;/p&gt;
&lt;p&gt;そして、連合型SNSの最大のデメリットも、まさに今自分が参加しているインスタンスからBANされる可能性があるという点です。ActivityPubなどの連合型SNSプロトコルは、ネットワーク全体における参加の自由を保証するものであり、各インスタンス内で管理主体の意向によらず参加し続けられることを保証するものではありません。インスタンスの管理主体は独自の（時には恣意的な）ルールでアカウントをBANしたり、不適切な投稿を繰り返す他のインスタンスからの配信を丸ごとブロックできます。&lt;/p&gt;
&lt;p&gt;連合型SNSにおいては「あるインスタンスでBANされたとしても、すぐに別のインスタンスから再び参加できる」ため、この欠点はあまり強調されません。しかし、実際にアカウントをBANされるといくつか致命的かつ不可逆的な被害を受けることになります。&lt;/p&gt;
&lt;p&gt;まず、SNS上のIDはインスタンスを提供するドメインと結びついており、別のインスタンスに移ると同じIDを使えません。インスタンスがIDの信頼性を保証している、とも言い換えられます。連合型SNSに馴染みがなければ、GoogleアカウントがBANされてから同じ名前でYahoo! JAPAN IDを取得したらメールアドレスはどうなるか？と想像してみてください。ダイレクトメッセージなどのチャネルで主なやり取りを行っていれば、BANによるIDの不連続は大きな損害になりえます。&lt;/p&gt;
&lt;p&gt;また、フォローや被フォローの関係を完全に移行することもできません。自分が再度リクエストすればよいフォローはまだしも、被フォローを自動で移行するには信頼性を検証する追加の機構が必要不可欠ですし、各インスタンスがそのリクエストを尊重するとは限りません。メールアドレスで例えるなら、相手の連絡帳を勝手に書き換えようとしているようなものです。&lt;/p&gt;
&lt;p&gt;このように、SNS上のIDや他のユーザーとの関係をインスタンス間で維持できないという事実は、連合型SNSという概念が、実際には小さな中央集権型SNSを接続する仕組みに過ぎないことを示しています。これは個々人のアカウントがBANされるかどうかといった個別の損害を超えて、連合型SNSがごく少数の大きな中央集権型サービスの連合に陥る可能性さえも示唆するものです。多くのユーザーがひとつの場所に集まった方が利便性が高いという致命的な中央集権性を内包するプロトコルは、最終的には大きな中央集権型サービスの内部仕様に姿を変えてしまうでしょう。&lt;/p&gt;
&lt;p&gt;インスタンスの登録窓口を公開せず、運営者ひとりで使い続けるスタイル（いわゆる「おひとりさまインスタンス」）はこのような連合型SNSの中央集権化を抑えうる有効な取り組みです。しかし、おひとりさまインスタンスであっても、ドメインの登録が強制的に廃止されたり、DNSブロッキングなどの措置で実質的にインターネットから排除される危険性が残っています。ドメインと一体になったIDの寿命は、そのドメインやドメインが運用するサービスのそれより長くなることはないのです。&lt;/p&gt;
&lt;h4 id="p2pdistributedsns"&gt;P2Pベースの分散型（distributed）SNS&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://www.scuttlebutt.nz/"&gt;Scuttlebutt&lt;/a&gt;などのP2Pネットワーク上で実現されるSNSは、ユーザーの通信を媒介するサーバーを持たないという点で連合型SNSと大きく異なります。これにより、連合型SNSが直面していた多くの課題を解決できるようになりました。ユーザーと運営主体のような権力の濃淡が存在しないため、特定のインスタンスからBANされたり、IDの寿命がドメインやインスタンスの状態によって意図せず短くなることはありません。&lt;/p&gt;
&lt;p&gt;P2Pネットワークは不当な検閲に対抗できる非常に強力な手法であり、全ての問題を完全に解決できるように見えます。しかし、実際にこれらのシステムを使い始めると、別の問題に気付くことになるでしょう。例えば、お互いを発見するためのプロトコルが複雑で、時には上手く動作しなかったり、相手からのメッセージを受け取るために接続を維持する必要があったり、モバイル端末で使うには大きすぎる初期データを持ち続けなければならない場合があります。&lt;/p&gt;
&lt;p&gt;このような実用上の問題を解決するために、多くのサービスではしばしば純粋なP2Pネットワークから離れて、アカウントとIPアドレスのマッピングを保持するサーバーや、モバイル端末から利用するためのゲートウェイを導入することになります。これにより高速で便利なサービスを実現できますが、もはや純粋なP2Pネットワークが掲げていた理想的な姿ではありません。&lt;/p&gt;
&lt;h3 id="nostr_1"&gt;Nostrが実現すること&lt;/h3&gt;
&lt;p&gt;ここまで述べてきたSNSのデメリットを、Nostrではリレーとクライアントを用いたネットワークで解決します。リレーというのはNostrにおける役割を重視した名称であり、ネットワークの構造は連合型SNSと同じクライアント・サーバーモデルとみなせます。しかし、リレーは連合型SNSにおけるインスタンスとは大きく異なる存在であり、これこそがNostrの単純さと強い検閲耐性を実現しているのです。&lt;/p&gt;
&lt;p&gt;連合型SNSにおけるインスタンスとは、ユーザーの権利や信頼性を一手に担う中央集権的な存在でした。一方で、Nostrにおけるリレーとは、接続されたクライアントの投稿を横流しにするだけのシンプルなサーバーです。連合型SNSにおけるインスタンスのようにドメインを通じてIDの信頼性を保証することはできませんし、別のリレーからメッセージを受け取ったり、別のリレーにメッセージを送ったりする仕組みはありません。また、ユーザーの同意もなく違法なコンテンツを削除するような権限を持つべきではなく、そうしたリレーは遅かれ早かれ利用されなくなります。&lt;/p&gt;
&lt;p&gt;Nostrでは、各ユーザーはそれぞれが持つ秘密鍵で識別できるため、リレーが提供されているドメインにIDの信頼性を依拠する必要がありません。同様に各ユーザーの投稿は秘密鍵で署名され、その投稿を受け取った別のユーザー（のクライアント）が責任を持って検証します。これにより、あるリレーからBANされてもIDを失うことはなく、別のリレーに移動してもIDは変わりません。もちろん、被フォローの関係も影響を受けずに済みます。&lt;/p&gt;
&lt;p&gt;さらに、リレーが受け取ったコンテンツに対して責任を負わないという点は、ユーザーが常に複数のリレーに重複して投稿できるという大きなメリットに繋がります。これにより、特定のリレーからBANされた際のダメージを最小限に抑えられます。これは、各インスタンスが十分な責任を負う連合型SNSではサポートされていない仕組みであり、ユーザーが独自にマルチポストを行うといった不明瞭な取り組みでしか実現できなかったものです。&lt;/p&gt;
&lt;p&gt;クライアント・サーバーモデルのSNSについて、以下に改めてまとめてみます。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;SNSの実装&lt;/th&gt;
&lt;th&gt;サーバーへの信頼が必要？&lt;/th&gt;
&lt;th&gt;サーバーが複数存在できる？&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;中央集権型SNS&lt;/td&gt;
&lt;td&gt;はい&lt;/td&gt;
&lt;td&gt;いいえ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;連合型SNS&lt;/td&gt;
&lt;td&gt;はい&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;はい&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nostr&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;いいえ&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;はい&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;中央集権型SNSや連合型SNSは、常に利用しているサーバーを信頼する必要があり、連合型SNSは信頼するサーバーを自由に選べるようなプロトコルの導入で自由なシステムを実現できるようにしました。しかし、連合型SNSにおけるインスタンスの実態は小さな中央集権型サーバーであり、参加者をBANすることでIDやフォロー・被フォローの関係を喪失できる権力を持ち続けています。&lt;/p&gt;
&lt;p&gt;これに対し、Nostrではリレーと呼ばれるシンプルなサーバーを置いて権力を集積できないようにしました。リレーが持つ責任や権力はごく小さなもので、ユーザーはいつでも複数のリレーを利用してシームレスに移行したり検閲に備えられます。自分自身でリレーを用意することもでき、見た目のよいドメインを持ち続ける必要もありません。&lt;/p&gt;
&lt;p&gt;分散型SNSはサーバーへの信頼どころかサーバーそのものが不要になる理想的な仕組みですが、お互いを見つけるためのプロトコルが複雑になりがちだったり、必要な速度が出なかったり、新たに参加するコストが大きいといった実用上の問題に全てが押し出されています。これらの問題の多くはクライアント・サーバーモデルの採用で解決できるものであり、サーバーの責任を各ユーザーに再分配したNostrはバランスの取れた解決策と言えるでしょう。&lt;/p&gt;
&lt;h2 id="nostr_2"&gt;Nostrでは何ができるか&lt;/h2&gt;
&lt;p&gt;さて、Nostrにおける具体的なクライアントやリレーの実装に関する詳細は、&lt;a href="https://github.com/nostr-protocol/nips"&gt;NIP（Nostr Implementation Possibilities）&lt;/a&gt;という文書で示されています。これらの各セクションを読み解くことで、Nostrを用いて実現できることの概要を知ることができます。&lt;/p&gt;
&lt;p&gt;もちろん、これらは実際にプロトコルを実装したクライアントとリレーを使わなければ利用できません。どのようなクライアントからNostrに参加するか決めるために、&lt;a href="https://github.com/vishalxl/Nostr-Clients-Features-List/blob/main/Readme.md"&gt;各クライアントの比較表&lt;/a&gt;を参照できます。&lt;/p&gt;
&lt;h3 id="nip-01"&gt;&lt;a href="https://github.com/nostr-protocol/nips/blob/master/01.md"&gt;NIP-01&lt;/a&gt;: 基本的なプロトコル&lt;/h3&gt;
&lt;p&gt;Nostrでは、クライアントとリレーがユーザーの署名付きイベントやその他のリクエストをJSON形式でやり取りします。クライアントはイベントの送信や特定のユーザーについての購読リクエストを送ることができ、リレーからは購読リクエストに応じた各種通知や必要なメッセージを送信できます。&lt;/p&gt;
&lt;h3 id="nip-02"&gt;&lt;a href="https://github.com/nostr-protocol/nips/blob/master/02.md"&gt;NIP-02&lt;/a&gt;: フォローリスト&lt;/h3&gt;
&lt;p&gt;Nostrでは、クライアントからリレーに署名付きのフォローリストを送信できます。このイベントは公開鍵を知っていれば取得できるため、従来のSNSにおける公開フォローと似ています。これにより、別のクライアントでログインした際にフォローリストを復元したり、ユーザーとリレーの対応関係を他のユーザーに提示することが可能です。&lt;/p&gt;
&lt;h3 id="nip-04"&gt;&lt;a href="https://github.com/nostr-protocol/nips/blob/master/04.md"&gt;NIP-04&lt;/a&gt;: 暗号化済みダイレクトメッセージ&lt;/h3&gt;
&lt;p&gt;Nostrはユーザーの持つ秘密鍵と公開鍵に基づくシステムなので、受信者の公開鍵と送信者の秘密鍵を用いて自然に暗号化済みダイレクトメッセージを転送できます。&lt;/p&gt;
&lt;h3 id="nip-05-dns"&gt;&lt;a href="https://github.com/nostr-protocol/nips/blob/master/05.md"&gt;NIP-05&lt;/a&gt;: DNSを用いた公開鍵のマッピング&lt;/h3&gt;
&lt;p&gt;Nostrでは、&lt;a href="https://www.rfc-editor.org/rfc/rfc8615.html"&gt;RFC 8615&lt;/a&gt;などで定義されている &lt;code&gt;.well-known&lt;/code&gt; ディレクトリを用いて &lt;code&gt;local-part@example.com&lt;/code&gt; 形式のIDを宣言できます（&lt;a href="https://ama.ne.jp/.well-known/nostr.json"&gt;例: @ama.ne.jp&lt;/a&gt;）。その実体はローカルパート部と公開鍵をマッピングしたシンプルなJSONであり、静的ファイルを1つ置くだけで完了するものです。&lt;/p&gt;
&lt;p&gt;これは、連合型SNSの項で述べたIDにドメインを含める取り組みのように見えますが、実際には公開鍵で識別されており、このIDは単に人間から見やすくするためのラベルにすぎません。IDが公開鍵を示すのではなく、公開鍵のオプショナルなニックネームとしてIDが存在します。当該NIPにも、このIDではなく公開鍵に従うよう明示されています。&lt;/p&gt;
&lt;h3 id="nip-08"&gt;&lt;a href="https://github.com/nostr-protocol/nips/blob/master/08.md"&gt;NIP-08&lt;/a&gt;: メンション&lt;/h3&gt;
&lt;p&gt;投稿に対するメンションを処理できるようにします。&lt;/p&gt;
&lt;h3 id="nip-09"&gt;&lt;a href="https://github.com/nostr-protocol/nips/blob/master/09.md"&gt;NIP-09&lt;/a&gt;: イベントの削除&lt;/h3&gt;
&lt;p&gt;ユーザーが発行したイベントを削除できるようにします。削除されたイベントの取り扱いは各クライアントに任されており、元の投稿を完全に隠したり、二度と読めないようにすることを保証するものではありません。&lt;/p&gt;
&lt;h3 id="nip-25"&gt;&lt;a href="https://github.com/nostr-protocol/nips/blob/master/25.md"&gt;NIP-25&lt;/a&gt;: リアクション&lt;/h3&gt;
&lt;p&gt;投稿に対して &lt;code&gt;+&lt;/code&gt; または &lt;code&gt;-&lt;/code&gt; 、あるいは絵文字でリアクションを送信できるようにします。&lt;/p&gt;
&lt;h3 id="nip-28"&gt;&lt;a href="https://github.com/nostr-protocol/nips/blob/master/28.md"&gt;NIP-28&lt;/a&gt;: 公開チャット&lt;/h3&gt;
&lt;p&gt;フォーラムやコミュニティのような特定の議論の場として使用できるチャネルを作成します。&lt;a href="https://github.com/vishalxl/Nostr-Clients-Features-List/blob/main/Readme.md"&gt;各クライアントの比較表&lt;/a&gt;によれば、多くのクライアントではまだサポートされていないようです。&lt;/p&gt;
&lt;h2 id="_2"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;この記事では、Nostrがこれまでの中央集権型・非中央集権型SNSに対してどのような立ち位置にいるか、現状どのような機能を利用できるかについて示しました。Nostrの全体像について把握したら、いつでも好きなクライアントを選んでネットワークに参加できます。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>Binary EyeとCloudflare Workersで作るバーコード読み取りシステム</title><link href="https://ama.ne.jp/post/yet-another-barcode-system/" rel="alternate"/><published>2023-01-10T07:49:00+09:00</published><updated>2023-01-10T07:49:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2023-01-10:/post/yet-another-barcode-system/</id><summary type="html">&lt;p&gt;Cloudflare Workers + D1 + Hono&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;シンボル読み取りシステム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#binary-eye"&gt;Binary Eyeとデータ転送機能&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#isbn"&gt;ISBNによる蔵書記録システム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;コンビニやスーパーなどのPOSレジや、図書館の蔵書管理システムでは、商品や書籍に印字・貼付されたバーコードをスキャナーで読み取ることで商品の在庫や書籍の貸し出し状況を効率的に管理しています。このようなシステムは、小売店や図書館だけではなく、同人サークルでの在庫管理や家庭での日用品整理などにも適用できます。&lt;/p&gt;
&lt;p&gt;しかし、これらのシステムでは、レジに一体化したバーコードスキャナーや、手で持って使用するハンドスキャナーといった専用のデバイスを用意する必要があります。スキャナーの購入だけで数千円～数万円の費用がかかるため、単なる趣味の範囲で気軽に試すのは難しいかもしれません。また、これらのデバイスの中にはバーコードしか読み取れないものがあり、新たにQRコードなどの二次元コードによる管理システムを利用する際に、せっかく購入したスキャナーを使い回せないという懸念も残ります。&lt;/p&gt;
&lt;p&gt;この記事では、専用のバーコードスキャナーを購入せずに実現できるシンボル読み取りシステムの実装例について紹介します。具体的には、汎用のカメラ付きAndroid搭載デバイス（スマートフォンやタブレット）に一次元/二次元コードを読み取る&lt;a href="https://play.google.com/store/apps/details?id=de.markusfisch.android.binaryeye"&gt;Binary Eye&lt;/a&gt;というアプリをインストールし、&lt;a href="https://workers.cloudflare.com/"&gt;Cloudflare Workers&lt;/a&gt;を用いて構築した小さなサーバーと連携することで、蔵書情報を記録できるようにします。&lt;/p&gt;
&lt;h2 id="_2"&gt;シンボル読み取りシステム&lt;/h2&gt;
&lt;p&gt;初めに「シンボル読み取りシステム」を次の特徴を備えたものと定義します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;平面に表示された機械判読可能なパターン（シンボル）を &lt;strong&gt;取得できる&lt;/strong&gt; こと&lt;/li&gt;
&lt;li&gt;読み取り装置から得られたシンボルを、処理可能なデータに &lt;strong&gt;変換できる&lt;/strong&gt; こと&lt;/li&gt;
&lt;li&gt;変換されたデータを処理できるモジュールに対して &lt;strong&gt;送信できる&lt;/strong&gt; こと&lt;/li&gt;
&lt;li&gt;送信されたデータを目的に応じた方法で &lt;strong&gt;処理できる&lt;/strong&gt; こと&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;シンボル読み取りシステムは、小売店における売り上げ管理や図書館の蔵書管理などでよく利用されています。いわゆるPOSレジでは、&lt;a href="https://www.keyence.co.jp/ss/products/autoid/codereader/basic-ean.jsp"&gt;JANコード&lt;/a&gt;と呼ばれる13桁または8桁の数字（0～9）を表すバーコードを読み取ることで、迅速な会計や正確な在庫管理を実現できます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="JANコードの例" height="175" src="/images/yet-another-barcode-system/jan.png" width="350"&gt;&lt;/p&gt;
&lt;p&gt;図書館では、書籍の裏表紙に印刷されたISBNを含むバーコード（EANコード）や、管理用に貼付された独自の数字を示すバーコード（主に&lt;a href="https://www.keyence.co.jp/ss/products/autoid/codereader/basic-nw7.jsp"&gt;CODABAR/NM-7&lt;/a&gt;）を読み取って、書籍情報の登録や蔵書の貸し出し状況を管理しています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ISBNの例" height="175" src="/images/yet-another-barcode-system/isbn.png" width="350"&gt;&lt;/p&gt;
&lt;p&gt;このようなシンボルには、バーコードのように一次元的な直線の組み合わせでデータを表現するフォーマットだけではなく、&lt;a href="https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp"&gt;QRコード&lt;/a&gt;のように二次元的な表現を持つフォーマット（二次元コード）も利用できます。二次元コードはバーコードに比べて多くの文字種を利用でき、記録容量も多いため、シンボル自体に数字だけではなく名前や価格などの情報を持たせることも可能です。&lt;/p&gt;
&lt;p&gt;&lt;img alt="QRコードの例" height="300" src="/images/yet-another-barcode-system/qr.png" width="300"&gt;&lt;/p&gt;
&lt;p&gt;シンボル読み取りシステムには、シンボルを取得・変換するデバイスが必要です。一般的には、POSレジに一体化したバーコードスキャナーや、USBやBluetoothなどで接続できるハンドスキャナーといった専用のデバイスを用意しなければなりません。これらのデバイスは読み取りが比較的高速で、シンボルを読み取るという目的に特化した使いやすい設計になっています。&lt;/p&gt;
&lt;p&gt;しかし、このようなデバイスの購入には数千円～数万円の初期費用がかかりますし、当然読み取りのたびにデバイスを利用可能にしておく必要があります。これは、できるだけ費用を抑えたいケースや、使用頻度が低いシーンでは導入の障壁になるでしょう。また、安価なスキャナーはレーザーを用いたバーコード読み取り専用のものが多く、二次元コードを用いたシステムに切り替える際に使い回すことができません。同様に、安価なスキャナーはほとんどが有線接続であり、利用できる場所も制限されます。&lt;/p&gt;
&lt;p&gt;以下、シンボル読み取りシステムを構築するために専用のスキャナーを購入する際のメリット・デメリットをまとめます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メリット&lt;ul&gt;
&lt;li&gt;シンボルを読み取る機能に特化しており使いやすい&lt;/li&gt;
&lt;li&gt;比較的高速にシンボルを読み取って入力できる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;デメリット&lt;ul&gt;
&lt;li&gt;導入に数千円～数万円の費用がかかる&lt;/li&gt;
&lt;li&gt;読み取りに対応しているフォーマットが少ない場合がある&lt;/li&gt;
&lt;li&gt;有線接続しか利用できない場合がある&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらの課題を踏まえて、この記事では、汎用のカメラ付きAndroid搭載デバイス（スマートフォンやタブレット）にシンボル読み取りアプリを導入することで、スキャナーが担っていたシンボルの取得・変換機能をより安価かつ柔軟に実現する方法を考えます。&lt;/p&gt;
&lt;h2 id="binary-eye"&gt;Binary Eyeとデータ転送機能&lt;/h2&gt;
&lt;p&gt;Android搭載デバイスをシンボル読み取りシステムのスキャナーとして使うには、以下の特徴を備えたシンボル読み取りアプリの導入が必要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;システムで使用したいシンボルの読み取りに対応していること&lt;/li&gt;
&lt;li&gt;読み取り結果を処理するモジュールに &lt;strong&gt;送信できる&lt;/strong&gt; こと&lt;/li&gt;
&lt;li&gt;読み取り結果の確認画面を表示せずに連続で読み取る機能があること&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://play.google.com/store/search?q=%E3%83%90%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89"&gt;Androidで利用できる一次元/二次元コード読み取りアプリ&lt;/a&gt;は多数ありますが、読み取った結果を自動的に送信できるものはそう多くありません。ほとんどのアプリでは「共有」などのメニューからSNSやチャットアプリにテキストを送信できるものの、これでは1つ1つの処理に時間がかかってしまいますし、操作があまりに面倒です。また、商品情報の検索やURLの展開に特化したアプリでは、毎回読み取り結果が表示されたりブラウザが立ち上がってしまうことで、読み取るたびにカメラが遮られてしまう場合もあります。&lt;/p&gt;
&lt;p&gt;スマートフォンをスキャナーとして扱い、PCへシンボルの読み取り結果を入力できるようにする製品はいくつか存在します。&lt;a href="https://barcodetopc.com/"&gt;Barcode to PC&lt;/a&gt;は、スマートフォンで読み取ったデータを別途PCで起動したサーバーで受け取り、キーボード入力として転送したりファイルに記録したりできます。&lt;a href="https://play.google.com/store/apps/details?id=jp.main.trl.shinobi"&gt;SHINOBI&lt;/a&gt;や&lt;a href="https://play.google.com/store/apps/details?id=com.poyosoft.WBR"&gt;無線バーコードリーダー&lt;/a&gt;といったアプリも、専用のサーバーソフトをPCで起動して読み取り結果を受け取るという仕組みのようです。&lt;/p&gt;
&lt;p&gt;これらのアプリは、一般的なスキャナーのように読み取り結果をキーボード入力として渡すことができるため、非常に便利です。一方で、スキャナーとサーバー間が独自規格で通信しているため、片方を別の実装に置き換えたり、拡張するのが難しいという一面もあります。また、スマートフォンアプリの開発、ネゴシエーションや通信の設計、OSごとのキー入力エミュレートなどの実装……など高い開発コストの割に利用シーンがニッチなせいか、いずれも開発があまり活発ではない印象です。&lt;/p&gt;
&lt;p&gt;そのため、今回はスキャナーとサーバーの結合を弱めて分かりやすいインターフェースでやり取りする点を意識し、単純なHTTPリクエストで通信を行います。具体的には、&lt;a href="https://play.google.com/store/apps/details?id=de.markusfisch.android.binaryeye"&gt;Binary Eye&lt;/a&gt;というアプリのデータ転送機能を使ってスキャナーを実現することにしました。通常のスキャナーのように直接読み取り結果を入力できるわけではありませんが、必要ならサーバーのキューを参照して擬似的な入力機能を実現したり、IFTTTなどの連携サービスを接続したり、柔軟な組み合わせで対応できます。&lt;/p&gt;
&lt;p&gt;Binary Eyeは、多くの一次元/二次元コードを高速に読み取ることができるシンプルな&lt;a href="https://github.com/markusfisch/BinaryEye"&gt;オープンソース&lt;/a&gt;のアプリです。シンボルの読み取りには&lt;a href="https://github.com/zxing/zxing"&gt;ZXing(Zebra Crossing)&lt;/a&gt;ライブラリを使用しており、対応フォーマットもこのライブラリに依存しています。普段よく見かけるのはEAN-13（JANコードやISBN）、CODABAR/NM-7（図書館での管理用）、QRコード程度でしょう。他のフォーマットには、物流業界や医療業界、その他工業用の部品識別などでよく利用されているものがあるようです。&lt;/p&gt;
&lt;p&gt;Binary Eyeでは、シンボルの読み取り時に自動でGETまたはPOSTリクエストを送信できます。リクエスト方式の設定に応じて、主に &lt;code&gt;content&lt;/code&gt; という名前でパラメータが付与されるので、サーバーではこのパラメータを取り出して検索や登録などの処理を行います。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Binary Eyeのデータ転送設定" height="373" src="/images/yet-another-barcode-system/binary-eye-config.png" width="750"&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;リクエスト方式&lt;/th&gt;
&lt;th&gt;&lt;code&gt;XXX&lt;/code&gt; を読み取ったときの挙動&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GET でコンテンツを付加&lt;/td&gt;
&lt;td&gt;URLの後ろに直接 &lt;code&gt;XXX&lt;/code&gt; を付与してGET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GET で文字列のコンテンツを付加&lt;/td&gt;
&lt;td&gt;&lt;code&gt;?content=XXX&lt;/code&gt; というクエリを付与してGET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;POST application/x-www-form-urlencoded&lt;/td&gt;
&lt;td&gt;&lt;code&gt;content=XXX&lt;/code&gt; というボディをPOST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;POST application/json&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{content: "XXX"}&lt;/code&gt; というボディをPOST&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;これらのリクエストを受け取るサーバーとして、&lt;a href="https://workers.cloudflare.com/"&gt;Cloudflare Workers&lt;/a&gt;にデプロイできるサンプルを示します: &lt;a href="https://github.com/amane-katagiri/binary-eye-receiver-sample"&gt;amane-katagiri/binary-eye-receiver-sample&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Hono&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;from&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;hono&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Hono&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;app&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt; content: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;??&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;no content&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt; content: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;parseBody&lt;/span&gt;&lt;span class="p"&gt;())[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;content&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;??&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;&amp;gt;())[&amp;quot;content&amp;quot;] ??&lt;/span&gt;
&lt;span class="sb"&gt;        &amp;quot;no content&amp;quot;&lt;/span&gt;
&lt;span class="sb"&gt;      }`&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;default&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ワーカーの用意が面倒なら、テストのために用意した &lt;code&gt;https://binary-eye-receiver-sample.amanejp.workers.dev/&lt;/code&gt;&lt;sup id="fnref:get-simple"&gt;&lt;a class="footnote-ref" href="#fn:get-simple" title="「GET でコンテンツを付加」なら https://binary-eye-receiver-sample.amanejp.workers.dev/?content= とします。"&gt;1&lt;/a&gt;&lt;/sup&gt;を使ってみてください。いずれもリクエストやログの解析は行っていません。正常にURLが設定されていれば、読み取り後にトーストで &lt;code&gt;GET content: XXX&lt;/code&gt; または &lt;code&gt;POST content: XXX&lt;/code&gt; と読み取ったコンテンツがおうむ返しで表示されるはずです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Binary Eyeのデータ転送機能のテスト" height="900" src="/images/yet-another-barcode-system/binary-eye-forward-scans.png" width="600"&gt;&lt;/p&gt;
&lt;h2 id="isbn"&gt;ISBNによる蔵書記録システム&lt;/h2&gt;
&lt;p&gt;サーバーでシンボルの読み取り結果を受け取れるようになったので、これらのデータを &lt;strong&gt;処理できる&lt;/strong&gt; ようにします。今回は、書籍の裏表紙に印字されたISBN（上段のもの）から書籍情報を検索し、データベースに格納するサーバーを実装することにしました: &lt;a href="https://github.com/amane-katagiri/akasha"&gt;amane-katagiri/akasha&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ISBNとは、978または979から始まる13桁の番号です。地域ごとに割り振られたグループ記号（日本: 4）と合わせると、2023年1月現在、日本の書籍に割り振られたISBNは全て9784から始まっています。かつてISBNは10桁でしたが、EAN-13に組み込む際に先頭の国コードとして&lt;a href="https://en.wikipedia.org/wiki/Bookland"&gt;Bookland&lt;/a&gt;という架空の国を割り当てられ、13桁になりました。&lt;/p&gt;
&lt;p&gt;現時点でakashaが備えている機能は以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;書籍情報を本棚ごとに格納して管理できます。&lt;ul&gt;
&lt;li&gt;本棚のIDを知っていれば、本棚の情報や本棚にある書籍の一覧を取得できます。&lt;/li&gt;
&lt;li&gt;本棚のIDを知っていれば、書籍情報を追加・更新・削除できます。&lt;/li&gt;
&lt;li&gt;本棚の追加・変更・削除や一覧取得は管理者のみが行えます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;書籍情報は&lt;a href="https://webservice.rakuten.co.jp/documentation/books-book-search"&gt;楽天ブックス書籍検索API&lt;/a&gt;と&lt;a href="https://openbd.jp/"&gt;openBD&lt;/a&gt;をISBNで検索して取得します。&lt;/li&gt;
&lt;li&gt;取得した書籍情報はデータベース（&lt;a href="https://developers.cloudflare.com/d1"&gt;Cloudflare D1&lt;/a&gt;）に格納されます。&lt;/li&gt;
&lt;li&gt;書籍情報の追加・更新はBinary Eyeから使用しやすいインターフェースになっています。&lt;ul&gt;
&lt;li&gt;&lt;code&gt;content=XXX&lt;/code&gt; 形式のPOSTを受け取ってISBNとして解釈します。&lt;/li&gt;
&lt;li&gt;トーストに表示する際に読みやすい長さの日本語で処理結果を返します。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ISBNが渡されなかった場合は、その旨を通知して入力を無視します。&lt;/li&gt;
&lt;li&gt;書籍情報が見つからない場合でも、個別に手動で必要な情報を設定できます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;数ヶ月前に&lt;a href="https://developers.cloudflare.com/d1"&gt;Cloudflare D1&lt;/a&gt;へのアクセスが解放されたので、書籍情報の保管先として積極的に利用しました。D1はWorkersから利用できるSQLiteベースのデータベースサービスであり、アルファ版なので一定の機能・性能制限があったり、バグ&lt;sup id="fnref:d1-bug"&gt;&lt;a class="footnote-ref" href="#fn:d1-bug" title="追加・更新のタイミングで更新日時を設定するトリガー定義を追加しようとしたところ、おそらく BEGIN ... END あたりのパースに失敗したのか  incomplete input というエラーが表示されて実行できないバグに当たってしまいました。"&gt;2&lt;/a&gt;&lt;/sup&gt;が残っている部分もありますが、ステートレスなワーカーと手軽に組み合わせられるデータベースの第一歩としてはかなり便利です。&lt;/p&gt;
&lt;p&gt;書籍情報の取得に複数のAPIを利用したのは、楽天ブックスAPIの不安定さとopenBDの収録範囲の狭さをお互いにカバーするためです。楽天ブックスAPIは収録範囲が広いので多くの書籍情報を取得できますが、&lt;a href="https://webservice.faq.rakuten.net/hc/ja/articles/900001974383-%E5%90%84API%E3%81%AE%E5%88%A9%E7%94%A8%E5%88%B6%E9%99%90%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84-"&gt;1回/秒のリクエスト制限&lt;/a&gt;があったり、低頻度のアクセスでも正常なレスポンスを得られないことがあるのであまり信頼できません。一方、openBDは収録範囲がわずかに狭いものの応答は高速で安定しています。また、&lt;a href="https://api.openbd.jp/v1/schema"&gt;JSONスキーマ&lt;/a&gt;が提供されているのも好感が持てます（楽天ブックスAPIでは解析しにくい申し訳程度の表が用意されているだけです）。&lt;/p&gt;
&lt;p&gt;そのため、まずはopenBDに問い合わせを行い、見つからなければ楽天ブックスAPIを利用するというフローを採用しています。ちなみに、&lt;a href="https://iss.ndl.go.jp/information/api/"&gt;国立国会図書館サーチ API&lt;/a&gt;も候補に入っていましたが、XMLのパースが面倒だったのと、返ってくる書籍情報に巻数が含まれないようだったので早々に利用を諦めました。&lt;/p&gt;
&lt;video controls width="479" height="720" src="/images/yet-another-barcode-system/akasha.webm"&gt;&lt;/video&gt;

&lt;h2 id="_3"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;バーコードや二次元コードを読み取って処理できるシンボル読み取りシステムは、小売店や図書館などで広く利用されており、趣味や家庭内での活用も期待できます。&lt;/li&gt;
&lt;li&gt;カメラ付きのAndroid搭載デバイスに&lt;a href="https://play.google.com/store/apps/details?id=de.markusfisch.android.binaryeye"&gt;Binary Eye&lt;/a&gt;をインストールすれば、読み取り結果をHTTPで送信するスキャナーとして利用できます。&lt;/li&gt;
&lt;li&gt;シンボル読み取りシステムの例として&lt;a href="https://workers.cloudflare.com/"&gt;Cloudflare Workers&lt;/a&gt;を用いてISBNから書籍情報を取得するサーバーを実装し、Binary Eyeと連携できることを示しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:get-simple"&gt;
&lt;p&gt;「GET でコンテンツを付加」なら &lt;code&gt;https://binary-eye-receiver-sample.amanejp.workers.dev/?content=&lt;/code&gt; とします。&amp;#160;&lt;a class="footnote-backref" href="#fnref:get-simple" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:d1-bug"&gt;
&lt;p&gt;追加・更新のタイミングで更新日時を設定するトリガー定義を追加しようとしたところ、おそらく &lt;code&gt;BEGIN&lt;/code&gt; ... &lt;code&gt;END&lt;/code&gt; あたりのパースに失敗したのか &lt;a href="https://github.com/cloudflare/wrangler2/issues/2411"&gt; &lt;code&gt;incomplete input&lt;/code&gt; というエラーが表示されて実行できないバグ&lt;/a&gt;に当たってしまいました。&amp;#160;&lt;a class="footnote-backref" href="#fnref:d1-bug" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>2022/08/02～2022/12/31</title><link href="https://ama.ne.jp/post/report-20221231/" rel="alternate"/><published>2022-12-31T17:03:00+09:00</published><updated>2022-12-31T17:03:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-12-31:/post/report-20221231/</id><summary type="html">&lt;p&gt;2022/08/02～2022/12/31のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;かいた&lt;/h3&gt;
&lt;h4 id="_3"&gt;あまねけ！&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/lyra-nicolas-aquila/"&gt;メタ世界で出会った少女とその顛末&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://bunfree.net/event/tokyo35/"&gt;文学フリマ東京35&lt;/a&gt;で発行した&lt;a href="https://hentaigirls.net/book/yuri-watch/#_head"&gt;東雲銀座広報 ゆり時計&lt;/a&gt;に寄稿したものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/absent-lily-addendum/"&gt;「不在の百合」についての補遺&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/8039"&gt;百合SS Advent Calendar 2022&lt;/a&gt;に投稿したものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/mineral-show/"&gt;ミネラルショーに行ったこと&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;あまねけ！ニュースレターに投稿予定だった日記です。&lt;/li&gt;
&lt;li&gt;今後はこんな感じの投稿が増えていったらいいですね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/end-of-alumni-life"&gt;生涯メールアドレスの実質的終了によせて&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;大学時代の郷愁に浸りました。&lt;/li&gt;
&lt;li&gt;12月28日は無限ドライブ記念日です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_4"&gt;ニュースレター&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://news.amane.moe/"&gt;あまねけ！ニュースレター&lt;/a&gt;は、メール送信に利用していた配信プラットフォームの&lt;a href="https://www.getrevue.co/app/offboard"&gt;Revueのサービス終了&lt;/a&gt;に伴い、更新を終了しました。今後はあまねけ！に同様の記事を投稿していく予定です。&lt;/p&gt;
&lt;p&gt;詳しくは&lt;a href="https://news.amane.moe/issues/43-1501769"&gt;あまねけ！ニュースレター #43&lt;/a&gt;をご覧ください。&lt;/p&gt;</content><category term="report"/></entry><entry><title>生涯メールアドレスの実質的終了によせて</title><link href="https://ama.ne.jp/post/end-of-alumni-life/" rel="alternate"/><published>2022-12-31T17:02:00+09:00</published><updated>2022-12-31T17:02:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-12-31:/post/end-of-alumni-life/</id><summary type="html">&lt;p&gt;12月28日は無限ドライブ記念日です&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://futureship.sec.tsukuba.ac.jp/alumni/mail/"&gt;筑波大学の生涯メールアドレス&lt;/a&gt;に付属するGoogleサービスの大幅な縮小が通知されたのは、先日12月28日のことです。この制限は、生涯メールアドレスの運用ツールである&lt;a href="https://edu.google.com/intl/ALL_jp/products/workspace-for-education/"&gt;Google Workspace for Education&lt;/a&gt;のポリシー強化によるもので、サービス維持のための措置と説明されています。&lt;/p&gt;
&lt;p&gt;生涯メールアドレスについては、昨年も容量無制限のストレージ（通称 &lt;strong&gt;無限ドライブ&lt;/strong&gt; ）のサービス縮小が発表されて大きな失望と落胆を誘いましたが、今回はより致命的な制限が適用されることになりました。具体的には、来年2023年1月23日からドライブ、フォト、その他ドキュメントをアップロード・新規作成する権限が剥奪されます。これまでの生涯メールアドレスとは全く異なるサービスになったと言えるでしょう。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;●全てのユーザーへの利用制限の開始について&lt;br&gt;
　開始日：２０２３年１月２３日（月）　0時00分&lt;br&gt;
●利用制限の内容について&lt;br&gt;
・新しいファイルや画像を Google ドライブにアップロードできなくなります。&lt;br&gt;
・コンテンツの共同作成アプリ（Google ドキュメント、スプレッドシート、スライド、図形描画、フォーム、Jamboard など）でファイルを作成できなくなります。&lt;br&gt;
・写真や動画を Google フォトにバックアップできなくなります。&lt;br&gt;
・Google Workspace for Education アカウントへのログインとアクセス、ファイルの閲覧とダウンロード、Gmailの送受信は、引き続き行えます。&lt;br&gt;
&lt;cite&gt;【重要】【2023年1月23日から】筑波大学生涯メールアドレスサービスの利用制限について&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;無限ドライブの消失以降は、&lt;a href="https://rclone.org/"&gt;rclone&lt;/a&gt;を使って日次で小さなバックアップデータ（5GB程度）を置く程度の穏やかな利用に留めていましたが、1月以降はこれらのデータも更新できなくなってしまうので、スッと別のクラウドストレージに逃がしました。&lt;a href="https://help.dropbox.com/ja-jp/organize/how-to-use-dropbox-backup"&gt;Dropbox Backup&lt;/a&gt;を騙して大量のファイルをアップロードしようとするような &lt;em&gt;抜け道&lt;/em&gt; 好きな人たちなら、これからもメールの添付ファイルなどのチャネルを利用して20GBのストレージを有効活用するのかもしれませんが、僕にはそれほどの熱意はありません。&lt;/p&gt;
&lt;p&gt;在籍していた学生や教職員が &lt;em&gt;生涯&lt;/em&gt; にわたって使えるメールアドレスを配布する「生涯メールアドレス」と呼ばれるメールサービスは、筑波大学だけではなく多くの大学で提供されています（&lt;a href="https://sites.google.com/view/alumni-mail-graduates?pli=1"&gt;東北大学&lt;/a&gt;、&lt;a href="https://www.kobe-u.ac.jp/campuslife/support/gws/index.html"&gt;神戸大学&lt;/a&gt;、&lt;a href="https://www.kogakuin.ac.jp/ict_support/lifelong_mail.html"&gt;工学院大学&lt;/a&gt;など……）。しかし、これらのサービスは数十年にわたって運用できるように設計されたものではなく、単なるブームを受けて、あるいは思いつきで導入された一時的な（我々の生涯に比べれば）サービスであると考えるべきでしょう。実際、いくつかの大学ではサービス終了あるいは新規受付の停止など、悲しい結末を迎えています（&lt;a href="https://www.niigata-u.ac.jp/news/2019/58921/"&gt;新潟大学&lt;/a&gt;、&lt;a href="https://www.kitasato-u.ac.jp/knc/mail/stu/end_service.html"&gt;北里大学&lt;/a&gt;など……）。&lt;/p&gt;
&lt;p&gt;もともと、メールアドレスは永久に使えるように設計されたものではないのです。メールアドレスのような &lt;code&gt;@&lt;/code&gt; 以降のドメインと一体になったIDの寿命は、組織や組織が提供するサービスの寿命と一致します。この寿命の制限から見れば、組織に在籍している間だけ当該ドメインのメールアドレスを使える方が自然です。これは、分散SNSにおけるIDについても同様で、自ら立ち上げたインスタンスでない限りは同様の運命を抱えてしまうでしょう。&lt;/p&gt;
&lt;p&gt;特定のインスタンスやサーバーのドメインをIDに含まない方式としては、自ら生成した秘密鍵・公開鍵のペアからIDを生成する&lt;a href="https://tox.chat/"&gt;Tox&lt;/a&gt;や&lt;a href="https://nostr.com/"&gt;Nostr&lt;/a&gt;が挙げられます。これらのサービスは、P2Pあるいはリレーを用いて特定のサーバーを利用せずに通信を行うものであり、少なくともナイーブな「生涯メールアドレス」よりもスケールしやすく頑強なシステムを採用しています。つまり、自分の &lt;em&gt;生涯&lt;/em&gt; にわたって使えるIDとは、特定のドメインに頼らず完全に自力で生成したIDに他なりません。&lt;/p&gt;
&lt;p&gt;さて、今回生涯メールアドレスの実質的な終了が告げられた12月28日は、奇しくも昨年2021年にこの生涯メールアドレスの大きな特典だった無限ドライブが廃止され、最大20GBそこそこのありふれたストレージに生まれ変わるという衝撃的な計画が発表された日と同じです。我々は今、筑波大学に在籍したことがあれば &lt;em&gt;生涯&lt;/em&gt; にわたって使えるはずのサービスが1年ごとに削減されていく悪夢の最中にいます。&lt;/p&gt;
&lt;p&gt;最大限に好意的な解釈をするなら、「『生涯メールアドレス』なのだから、メール以外のサービスは元々おまけでしかない」という反論ができるかもしれません。しかし、こうしてGoogleの都合によるサービス削減を繰り返している状況で、メールサービスだけが無事であり続けられるとどうして言えるでしょうか。来年の12月28日には、ドライブやフォトの閲覧さえ制限されるどころか、生涯メールアドレスの完全終了が告知されても驚きはありません。&lt;/p&gt;
&lt;p&gt;いずれにせよ、これから12月28日は筑波大学の生涯メールアドレスの衰退を象徴する記念日として思い出されることになるでしょう。最後に、昨年の無限ドライブの終了告知を受けて書いたあまねけ！ニュースレターを再掲して、生涯メールアドレスへの弔いとします。&lt;/p&gt;
&lt;h3 id="20220104"&gt;再掲: 無限ドライブの消失によせて（2022/01/04）&lt;/h3&gt;
&lt;p&gt;/* &lt;a href="https://news.amane.moe/issues/15-949639"&gt;あまねけ！ニュースレター #15&lt;/a&gt;より */&lt;/p&gt;
&lt;p&gt;&lt;a href="https://futureship.sec.tsukuba.ac.jp/alumni/mail/"&gt;筑波大学の生涯メールアドレス&lt;/a&gt;に付属する容量無制限のストレージ（通称 &lt;strong&gt;無限ドライブ&lt;/strong&gt; ）のサービス縮小が通知されたのは、昨年2021年の12月28日のことです。この生涯メールアドレスはGoogleの&lt;a href="https://edu.google.com/intl/ALL_jp/products/workspace-for-education/"&gt;Google Workspace for Education&lt;/a&gt;の上で運用されており、2022年7月以降のサービス提供内容の変更（少なくとも組織全体で100TBが上限となった）に追従することになりました。&lt;/p&gt;
&lt;p&gt;この変更により、2022年3月以降は個人のストレージ容量がおよそ20GBに制限されることになります。僕個人では、ほとんど使わないけれど家に置くには大きい録画の生データなどをドバッと置いていましたが、エンコード済みのデータは手元にあるのでほとんど削除しました。今は小さなバックアップデータなどで3GBほどを占めています。&lt;/p&gt;
&lt;p&gt;当たり前のことですが、保存容量が無制限か、あるいは支払いが1回限りのストレージサービスはたいてい長くは続きません。&lt;/p&gt;
&lt;p&gt;たとえば、Amazon Driveは&lt;a href="https://www.itmedia.co.jp/news/articles/1711/21/news110.html"&gt;2017年11月に容量無制限ストレージプランを終了し&lt;/a&gt;ていますし、Google Photosも&lt;a href="https://www.itmedia.co.jp/news/articles/2011/12/news057.html"&gt;2021年5月に容量無制限バックアップサービスを終了し&lt;/a&gt;ました。&lt;a href="https://www.amazon.co.jp/b?node=5262648051"&gt;Amazon Photos&lt;/a&gt;はまだプライム会員向けに容量無制限のフォトストレージを提供していますが、この件と同じようにいずれ何らかの制限がかかるはずです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.itmedia.co.jp/news/articles/1511/03/news033.html"&gt;Microsoft、「OneDrive」の無料容量縮小ヘ　“容量無制限”は終了 - ITmedia NEWS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.itmedia.co.jp/news/articles/1410/23/news109.html"&gt;Bitcasa、うたい文句の「容量無制限」終了　「需要が少なかった」 - ITmedia NEWS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;また、pCloudの&lt;a href="https://www.pcloud.com/cloud-storage-pricing-plans.html?period=lifetime"&gt;ライフタイムプラン&lt;/a&gt;では、1回限りの支払いで175ドル/500GBまたは350ドル/2TBのストレージを使用することができますが、長期的な目線で見れば収益化に行き詰まるでしょう。最終的には、運が良ければライフタイムプランの新規受付停止、悪ければサービス終了もありえます。&lt;/p&gt;
&lt;p&gt;もちろん、あえてこのような1回払いのストレージをできるだけ早く購入して利益を得る（リボ払いの手数料を会員優待サービスに充てるような構造をねらう）戦略はありえますが、何年使えば月払い・年払いのストレージより安価になるのか、万が一サービスが終了した際にどのようにデータを移行すべきかについて、事前に考える必要があります。&lt;/p&gt;
&lt;p&gt;ちなみに、僕は今のところ&lt;a href="https://www.sync.com/"&gt;Sync&lt;/a&gt;を使っています。8ドル/2TB/月（年払い）で、すごく安いわけではないです。特徴などについては、導入した直後の&lt;a href="/post/report-20210903/"&gt;2021/07/01～2021/09/03のおしらせ&lt;/a&gt;で書いていますが、ゼロ知識証明とエンドツーエンド暗号化がデフォルトのなんとなく安全っぽいストレージです。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>ミネラルショーに行ったこと</title><link href="https://ama.ne.jp/post/mineral-show/" rel="alternate"/><published>2022-12-20T18:30:00+09:00</published><updated>2022-12-20T18:30:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-12-20:/post/mineral-show/</id><summary type="html">&lt;p&gt;工場の排気管中に生じたもの。樹枝状の銅の結晶。酸で処理済。&lt;/p&gt;</summary><content type="html">&lt;p&gt;先日、12/9〜12/12まで池袋のサンシャインシティで開催されていた第31回&lt;a href="http://www.tokyomineralshow.com/"&gt;東京ミネラルショー&lt;/a&gt;に行きました。こういう鉱物や宝石の即売会に行くのは初めてで、特段アクセサリー作りや宝石の鑑別に詳しいわけでもない（小さい頃に&lt;a href="https://deagostini.jp/item/partwork_detail.php?code=ckc"&gt;デアゴスティーニ 地球の鉱物 コレクション&lt;/a&gt;を十数号買ったことがあるくらい）のですが、いくつか &lt;em&gt;かわいい&lt;/em&gt; アイテムを見たり買ったりしたので紹介します。&lt;/p&gt;
&lt;p&gt;鉄分が少なく紫外線や緑色の光でも真っ赤に光る合成ルビーや、鋭くはっきりした光条を放つ合成スターサファイアは、初めての即売会でお祭り気分を楽しむにはちょうどいい宝石です。&lt;/p&gt;
&lt;p&gt;&lt;img alt="紫外線で赤い蛍光を示す合成ルビー" height="375" src="/images/mineral-show/ruby.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;3価クロムイオンが紫と黄緑の光を吸収して赤い光を放つ性質や、ルチルの結晶が規則正しく並ぶことで星のような光条が見える&lt;a href="https://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%BC%E5%8A%B9%E6%9E%9C"&gt;スター効果&lt;/a&gt;といった現象は、写真や文章ではよく見かける比較的有名なものだと思います。しかし、これまで実際にこういう宝石を手元に置く機会はなかったので、今回入手できてちょっとラッキーでした。&lt;/p&gt;
&lt;p&gt;&lt;img alt="裏に「70,000円」のラベルがある合成スターサファイア" height="375" src="/images/mineral-show/starsapphire.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;裏に書かれた「70,000円」というシールが本来の値段なら、1000円台で購入したので驚異の98%以上の値引きということになります。宝石業界の商慣習はよく知りませんが、Amazonプライムデー方式の定価水増し手法かもしれません。&lt;/p&gt;
&lt;p&gt;ブラックライトで蛍光する鉱物や宝石は、当然ながら目を引く属性として人気があるようです。強い黄緑色の蛍光を楽しめるウランガラスを使用した製品は、現代ではウランの扱いが難しく新品の製造量が非常に少ないので、アンティークのボタンや小物が活発に取引されています。今回購入したのは直径32mmほどのチェコのガラスボタン（中サイズ）で、ブラックライトを当てるとあやしい輝きを放つ素敵な品です。&lt;/p&gt;
&lt;p&gt;&lt;img alt="紫外線で黄緑色に光るチェコのかわいいウランガラスボタン" height="375" src="/images/mineral-show/uranglas.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;他にも、現在では生産がほとんどなく骨董品的な価値が高まっている例として、YAG（イットリウム・アルミニウム・ガーネット）と呼ばれるロシア製の鮮やかな黄色（カナリーイエロー）の合成宝石を何度か見かけました。こちらも紫外線を当てると黄色い輝きがさらに増すらしいです（&lt;a href="https://twitter.com/manzana70793576/status/1414015122855530497"&gt;参考&lt;/a&gt;）。YAG自体は黄色だけではなく、添加元素によって赤・緑・紫などに着色できる便利な素材のようですが、現在ではもっぱらレーザーの媒質としての生産しかありません。&lt;/p&gt;
&lt;p&gt;さて、これらの合成宝石やガラス製品は、あくまで人間の制御下で意図して作られたものです。つまり、成分が理想的な範囲でよく調整され、精細なカットや装飾が施された美しい商品でした。&lt;/p&gt;
&lt;p&gt;しかし、こちらの銅樹は人間の経済活動と偶然の化学反応が重なって生じた、ある種の半自然的な鉱物と考えることができます。精錬工場で生じた銅を含む蒸気が金属管を通る間に、異金属との接触によって銅が析出して成長したのでしょう。青い硫酸銅の結晶が付着して、木の枝に花が咲いているように見えるものなどもあるようです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ルースケースに入った樹枝状の銅の結晶" height="600" src="/images/mineral-show/coppertree.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;もちろん、イオン反応による金属樹の成長という現象自体は中学生レベルの理科で触れるような内容ですが、「工場の排気管中に生じたもの。樹枝状の銅の結晶。酸で処理済。」というフレーバーテキストによって、建造物の中に隠された人の手が届かない場所で生まれる半人工結晶の神秘性・自然性が強調されています。&lt;/p&gt;
&lt;p&gt;人間の活動と共に産出することを踏まえると、&lt;a href="https://www.tokuma.jp/coil/"&gt;電脳コイル&lt;/a&gt;に出てくるメタバグのような概念に似ているかもしれません。鉱物という観点では、かつて&lt;a href="/post/smarakata/"&gt;東洋のスマラカタ&lt;/a&gt;というお話を書いたことがありましたが、こちらはむしろ自然に近いより大きな存在でした。&lt;/p&gt;
&lt;p&gt;このように半自然的な由来の鉱物としては、ポーランドの塗料工場の煙突に付着することで有名なジンカイト（紅亜鉛鉱）があります（&lt;a href="https://kirara-sha.com/id7/zincite/"&gt;参考&lt;/a&gt;）。天然では結晶の状態で産出する例が少なく、多くは工場の煙突内や鉱山火災などの人為的な環境で生まれるものです。およそ電気を通しそうにない透き通った綺麗な外見とは裏腹に、かつては鉱石ラジオの感度のよい検波器として重宝されていました。&lt;/p&gt;
&lt;p&gt;今回の東京ミネラルショーでは、会場の特別展示や配布されたパンフレットの特集として合成宝石の歴史がまとめられていました。天然宝石の希少性や偶然の美しさに注目するだけではなく、このような美しさに近づくための技術や素材に思いを馳せたり、半人工石や半人工結晶といった人と共存する鉱物の神秘性を味わうことも、鉱物や宝石の楽しみ方の一つと言えるでしょう。&lt;/p&gt;</content><category term="shuzai"/></entry><entry><title>「不在の百合」についての補遺</title><link href="https://ama.ne.jp/post/absent-lily-addendum/" rel="alternate"/><published>2022-12-04T02:17:00+09:00</published><updated>2022-12-04T02:17:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-12-04:/post/absent-lily-addendum/</id><summary type="html">&lt;p&gt;写真やその周辺のお話&lt;/p&gt;</summary><content type="html">&lt;p&gt;私が初めて「不在の百合」という言葉を聞いたのは、文化祭で夜差さんが私のクラス展示を見ていたときだった、と思う。&lt;/p&gt;
&lt;p&gt;イベントに対するやる気も結束もない私たちのクラスが文化祭の展示として選んだのは、休憩所兼写真展という、いかにも準備や運営に手間がかからない省エネ企画だった。しかも選んだ、というほど能動的なものではなく、この案しか出なかったのでこの企画に決まったというだけ。突然「文化祭の喧噪を離れた癒やしになるんじゃない？」と自信満々に提案した朝倉さんは写真部所属で、展示の内容は全部自分で準備するというのだから、誰も反対するわけがない。&lt;/p&gt;
&lt;p&gt;今思い返すと、朝倉さんのことが嫌いになったのもこのときだった。&lt;/p&gt;
&lt;p&gt;当然、こんなクラスだから文化祭の前日準備にも全く人が集まらない。朝倉さんも、まさか力仕事まですっかり押し付けられるとは思わなかっただろう。休日は首から黒いカメラを提げて街撮りしてます、という姿が容易に想像できる地味な印象の朝倉さんは、やはり予想通りの非力さだった。&lt;/p&gt;
&lt;p&gt;そんな彼女を見かねて、写真を貼るための大きなキャスター付きの有孔ボード運搬を手伝ったのが藪蛇だった。運び終わるや否や、展示の監視係を引き受けてほしい、と頼まれてしまったのだ。&lt;/p&gt;
&lt;p&gt;初めは断ろうと思ったけれど、よく聞くと、二日間あるうちの初日の昼過ぎから一時間ほどだけでいいと言うので、仕方なく引き受けた。一時間くらいなら自分でやってよと反論していたら、初日はずっとこの固いパイプ椅子の上で過ごすことになっていたかもしれない。私は昔から少し親切すぎるところがあるのだと思う。&lt;/p&gt;
&lt;p&gt;パンフレットには「写真展」という名前で掲載されているが、実質的には朝倉 &lt;em&gt;先生&lt;/em&gt; の難解な個展だった。&lt;/p&gt;
&lt;p&gt;それなりに工夫して並べられたであろう綺麗に印刷された写真には、公園のベンチとか、夕日の差す文化部棟の踊り場とか、人のいない校門とか、そういうまとまりのない写真ばかり。共通点を挙げるとすれば、徹底して人物の姿が排除されているところくらいで、朝倉さんが何を伝えたくてこの写真を集めたのか分からない。見知った場所の普段着姿を写したような印象の薄さと相まって、あくびを誘う展示になっていた。&lt;/p&gt;
&lt;p&gt;「あ、東雲さん。監視、ありがとう」&lt;/p&gt;
&lt;p&gt;焼きそばとパンケーキのコンボは食べ過ぎたかな、と椅子に座って静かな教室の中でウトウトしていた私は、突然名前を呼ばれて飛び起きた。声の主が朝倉さんだと気付くのに少し時間がかかり、もう一時間も経ったっけ、と慌てて腕時計を見ると、まだ十五分も経っていない。それから、彼女の後ろにもう一人制服姿の女子が立っているのに気付く。&lt;/p&gt;
&lt;p&gt;そのお客さんが夜差さんだと分かったとき、私はもう一度飛び起きた気がした。&lt;/p&gt;
&lt;p&gt;夜差さんは、有名な写真のコンテストで金賞を取った経験のある写真部のエースだ。全校集会で何度か賞状を持って壇上に上がるのを見たことがある。彼女は美しいシーンを感じたままに切り取るセンスが抜群で、コンテストの写真は今にも画面に収まる鷹が枝から飛び立ちそうな躍動感を持つ完璧な仕上がりだった。&lt;/p&gt;
&lt;p&gt;カメラを片手に海や山を駆け回る活発で明るい姿は男女問わず人気で、学校だよりの表紙はいつも彼女が担当していた。自分には決してたどり着けない美しさを知っている。だから、私は夜差さんが好きだった。でも、夜差さんは私のことなど知らないだろう。話したこともなかったから。&lt;/p&gt;
&lt;p&gt;どうやら、自分の休憩時間にわざわざ夜差さんを連れて展示を見せに来たらしい。申し訳程度にたった一時間だけ入れられた私のシフトは、どうやらこの &lt;em&gt;デート&lt;/em&gt; のためだったようだ。別に朝倉さんに夜差さんの話をしたことはなかったから、牽制しようなんて思ってもいないだろうけど。&lt;/p&gt;
&lt;p&gt;「夜差ちゃん……えっと、どうかな？」&lt;/p&gt;
&lt;p&gt;「朝倉は『不在の百合』が好きなんだね。私も今後伸びるかなって思ってるけど、朝倉はどこが好き？」&lt;/p&gt;
&lt;p&gt;「私はね、写真に可能性を付与できるところが気に入ってるの」&lt;/p&gt;
&lt;p&gt;「見た人の解釈でベストな受け止め方ができる、ってところかな。でも、それは――」&lt;/p&gt;
&lt;p&gt;百合、というのは女の子がいっぱい出てきて仲良くしたり、女の子同士で恋人になったりする作品のジャンルだろう。力が強いだけの男が偉そうにしゃべるシーンがなくてストレスが少ないので、たまに読んでいた。彼女たちの話を聞きながらスマホでいろいろ検索してみると、どうやら「不在の百合」はこういう誰も写っていない風景写真を撮るものらしい。&lt;/p&gt;
&lt;p&gt;百合なのに誰も写っていない、とはどういう面白さだろう。写真家の考えはよく分からない。百合っぽい写真にしたいなら、女子部員を引き連れてポートレートにすればいいのに。サイトの説明を鵜呑みにするなら、今壁に貼ってあるような誰も写っていない写真を見て、そこに女の子が二人立っている風景を想像できるのが、まさに「不在」で「百合」という意味らしい。&lt;/p&gt;
&lt;p&gt;公園のベンチに、踊り場に、校門に朝倉さんと夜差さんが立っている。どういう顔をしているか分からないけど、不自然というほどではない。朝倉さんが自分の &lt;em&gt;個展&lt;/em&gt; に招待するほどだし、たぶん仲も悪くないだろう。休日の買い出し中、部室に行く途中、下校の途中なんてタイトルを付けるのも簡単だ。そうしないのは、夜差さんに隠した想いを伝えるのが怖いから？&lt;/p&gt;
&lt;p&gt;小説は文字での表現だからこそ、想像を膨らませて豊かに楽しめる魅力を持っていると聞いたことがある。小説の安易な映像化や実写化が批判されるのは、それぞれの頭で膨らませ続けた完璧な想像には遠く及ばない描写を、分かりやすく具体的な姿で提示してしまうからだろう。結末がはっきりせずに終わるゲームと同じようなものだ。&lt;/p&gt;
&lt;p&gt;つまり、朝倉さんがやりたい――つまり「不在の百合」が目指している――ことは、誰かの想像力に寄りかかった写真だ。誰かの想像力によって完成する、不完全な写真だ。彼女は不完全な写真を撮って、さらに恥ずかしげもなく夜差さんをここに呼びつけたのだ。&lt;/p&gt;
&lt;p&gt;そんな彼女の不誠実さに思い至ると、急に怒りと恥ずかしさが一緒に湧き出して、パイプ椅子を蹴飛ばして駆け出したくなる。クラスの展示なんてどうでもよかったのに、ただこの写真展だけは、今すぐに中止すべきだと思った。朝倉さんは彼女が尽くせるだけの努力をして、この展示を完璧に仕上げるべきだと思った。あなたが夜差さんと写る写真が完璧ではないというなら、私と夜差さんで完璧な写真を作ってやる。&lt;/p&gt;
&lt;p&gt;朝倉さんはずるい。私と同じように夜差さんに惹かれているのに、ずっと曖昧な立場で彼女の側に座ったままだ。もし「不在の百合」が完璧なら、誰かの想像力に任せるのが完璧なら、朝倉さんも私も今すぐ消えてしまえばいい。こうして秘めた思いと一緒に、フィルムの裏側に隠されてしまえばいい。&lt;/p&gt;
&lt;p&gt;もし、夜差さんと写真について語り合える世界があるのなら、不完全な写真を引きちぎって叫びたくなるこの衝動を感じずに済んだだろうか。私は祈るように、誰もいない休憩所のベンチに向かってスマホのシャッターを切った。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/8039"&gt;百合SS Advent Calendar 2022&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>メタ世界で出会った少女とその顛末</title><link href="https://ama.ne.jp/post/lyra-nicolas-aquila/" rel="alternate"/><published>2022-12-01T00:00:00+09:00</published><updated>2022-12-01T00:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-12-01:/post/lyra-nicolas-aquila/</id><summary type="html">&lt;p&gt;怪しげなDMで紹介されたワールドに飛び込んだVRライターの「ライラ」は、薄暗い部屋に閉じ込められた少女「アキラ」と出会う……&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/yuri-watch/"&gt;東雲銀座広報 ゆり時計&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;――暗闇が辺りを包む夜の草原。そこには、煌々と光を放つビルはおろか、わずかに道を照らす街灯さえどこにも見当たらない。少しずつ前に進む &lt;em&gt;僕&lt;/em&gt; の頼りになるのは、右手に握られた魔法の杖が放つ小さな光だけだった。もし目の前が危険な断崖絶壁だとしても、今の僕には決して分からないだろう。そんな自然のままの景色を、足元を探りながら一人で歩いていた。&lt;/p&gt;
&lt;p&gt;そっと息を吸って、吐く。両耳に届く静かな風の音が、この高原の土を、草の絨毯を踏みしめているという実感を与えてくれた。なだらかな丘の頂上に立つ大きな木の影が目に入って、僕は不意に上へと視線を向ける。そして、はっと息を呑んだ……その瞬間を、僕は決して忘れないだろう。&lt;/p&gt;
&lt;p&gt;暗かったはずの夜空が、いつの間にか明々と輝く大小の星々で一面埋め尽くされている。その瞬間、先ほどまで光のなかった世界に新たな光明が差していた。僕はその自然の芸術を視界に全て収めるために、草原のベッドに横たわった。理想的な星夜であれば、一時に肉眼で見える星の数は約四千三百ほどだという。しかし、今の僕にはその数万倍、いや――&lt;/p&gt;
&lt;p&gt;「ライラ、そろそろお昼作ろうと……あれ、またVRやってるの？」&lt;/p&gt;
&lt;p&gt;「うわっ！　……あー、ごめん。何か用？」&lt;/p&gt;
&lt;p&gt;「お昼ご飯作っちゃうけど、ライラも食べる？」&lt;/p&gt;
&lt;p&gt;――と、そんな孤独で美しい&lt;ruby&gt;&lt;rb&gt;世界&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ワールド&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の真上から、無粋な同居人の声が漏れ出てきた。プレイ中は部屋に入らないでと言っていたのに。急に身体を起こすと、狭い床の境界線を示す赤いラインが周囲に浮かび上がった。視野いっぱいに広がる美しい天球が、一瞬で真っ二つに割れて現実に引き戻された心地がする。&lt;/p&gt;
&lt;p&gt;これじゃ、せっかくの記事の導入が台無しだ。ニコラには常日頃からVRセッションの邪魔をしないよう粘り強く説得を続けてきたつもりだけど、彼女とはプライベートスペースの認識についてもう一度合意を形成する必要があるかもしれない。&lt;/p&gt;
&lt;p&gt;ヘッドセットを持ち上げて頭から外すと、私の顔を覗き込むニコラの姿が目に入る。さっきまでの世界観とは全く違う見慣れたいつもの普段着――海外旅行のお土産か何かでもらったらしい、エキゾチックな柄のトップスとショートパンツ――が、私の意識をこの小さな部屋に呼び戻した。&lt;/p&gt;
&lt;p&gt;「あのね、ニコラ……」&lt;/p&gt;
&lt;p&gt;と言いかけたあたりで、そういえば、部屋の前のサインプレートを「&lt;ruby&gt;&lt;rb&gt;Do Not Disturb Metaworld&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;はいらないで&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;」にひっくり返していないことに思いあたる。それでも、ノックして中の反応を待つくらいは期待してもよさそうだけど、どうやらニコラにはそういう&lt;ruby&gt;&lt;rb&gt;習慣&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;マナー&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を形成する機会がなかったらしい。&lt;/p&gt;
&lt;p&gt;いや……うん、今回は私が悪い。そういうことにしておこう。&lt;/p&gt;
&lt;p&gt;そうしてなんとか数時間前の自分と折り合いをつけて頷いていると、ニコラが不思議そうに首を傾げた。肩の辺りまで適当に伸ばした黒いミディアムヘアがぱさりと揺れる。&lt;/p&gt;
&lt;p&gt;「どうしたの、ライラ？」&lt;/p&gt;
&lt;p&gt;野暮ったい大きな黒フレームの眼鏡には、その印象とは対照的な細い銀色のグラスチェーンが下がっていた。彼女の動きに合わせてきらきらと揺れるチェーンを見ていると、なんとなく心地いい。&lt;/p&gt;
&lt;p&gt;数ヶ月前にカットから帰ってきた直後は、そのシャープな顔立ちに似合うショートボブだったけど、それからは特に手入れされず &lt;em&gt;自然に任されて&lt;/em&gt; いる。あのときはどういうわけか「ライラ、髪を切ってくれない？」と頼まれたところを、どうにか並の美容室に行くよう説得したのだった。&lt;/p&gt;
&lt;p&gt;一応言っておくと、私は美容師でも美容師見習いでもない、ただのVR専門ライターだ。&lt;/p&gt;
&lt;p&gt;「えーと……そうだ、うん、お昼ご飯。何を作ってくれるんだっけ？」&lt;/p&gt;
&lt;p&gt;「サーモンとプチプチで親子丼の予定！　ストッカーに二人分余ってたから」&lt;/p&gt;
&lt;p&gt;親子丼は、淡白で単調な食感のサーモンに、口の中でとろりと弾けるプチプチを添えた簡単で美味しい定番料理のひとつだ。普段は何気なく「親子丼」と呼んでいるけど、「赤くて丸いプチプチがサーモンの培養核に似ているから」という理由はどうも腑に落ちない。どちらも培養か合成で作られる人工食品&lt;sup id="fnref:salmon"&gt;&lt;a class="footnote-ref" href="#fn:salmon" title="「サーモン」および「プチプチ」は、カルチュアド・クロレラ・カンパニーが製造する食品類の登録商標であり、特定の生物種を指す語ではない。"&gt;1&lt;/a&gt;&lt;/sup&gt;だから、比喩にしても少し不思議な響きを感じる。&lt;/p&gt;
&lt;p&gt;キューブ型のサーモンと丸いプチプチの取り合わせは、見た目が華やかでファミレスの子供向けメニューでも人気が高い。本当はさらに三角形のグリーンバターを加えるのが定番で、しかし、そんな贅沢な調味料に割くほどの経済的余裕はなかった。それでも、この前買い溜めていたサーモンはもう食べきったとばかり思っていたから、ちょっと嬉しい。&lt;/p&gt;
&lt;p&gt;「今日はどんなゲームをやってたの？」&lt;/p&gt;
&lt;p&gt;「ゲームじゃなくて、ワールドね。『アステロイド・ベルト』っていう、山に登って星空を探すアトラクションで――」&lt;/p&gt;
&lt;p&gt;さっきニコラが来る前に取材していた「アステロイド・ベルト」は、ちょっと玄人向けのワールドだ。スポーン地点は真っ暗な山の麓で、ある程度先に進まないと星空を眺めることはできない。小さなペンライト一つで目の前を照らしながら、星空の見える高原を目指して進んでいく。&lt;/p&gt;
&lt;p&gt;美しい景色をおあずけにされることで、ゴールに辿り着いたときに大きな達成感となって跳ね返ってくるという、ちょっと回りくどい仕組みになっているわけだ。VR初心者なら特に戸惑いやすいワールドで、何分か同じ場所をぐるぐる回った末に結局飽きて帰ってしまうらしい。画面映えのなさから配信者にも敬遠され、どうしても人気が出ないので魅力を紹介してほしい、という依頼だった。&lt;/p&gt;
&lt;p&gt;「星空？　それくらい、テレウィンドウでいつでも見られるのに」&lt;/p&gt;
&lt;p&gt;そう言ってニコラが指差す窓の向こうでは、薄暗い緑に包まれた静かな渓流の中で、黒くて細い輪郭のハグロトンボが優雅にひらひらと飛んでいる。もちろん、これは私たちが自然あふれる山奥での生活を送っているわけではなく、都心の小さな2DKの窓全体を覆うテレウィンドウ――平たく言えばAIディスプレイが映す景色に過ぎない。&lt;/p&gt;
&lt;p&gt;拡散モデルで逐次生成される映像に一つとして同じものはなく、少し不自然な動きのトンボが水しぶきと同化して消えたかと思うと、木々の間からまたうっすらと新たな個体が現れて、少しずつ違う風景に変わっていく。私の「自然」と「山」というキーワードに反応して、いつの間にか新しいプロンプトに切り替わっていたらしい。&lt;/p&gt;
&lt;p&gt;確かに、各家庭でこのテレウィンドウを入手できるようになれば、VRデバイスの売り上げに影響が出てもおかしくはないだろう。しかし、高価なテレウィンドウが整備されていて、なおかつ手頃な家賃で住める物件はここ以外に見たことがなかった。&lt;/p&gt;
&lt;p&gt;「まぁ、そういう仕事なのよ」&lt;/p&gt;
&lt;p&gt;「私もこの景色でエッセイでも書いてみようかな。AIオタクなら何人か買ってくれそう」&lt;/p&gt;
&lt;p&gt;「あなた、文章なんか書けないでしょ」&lt;/p&gt;
&lt;p&gt;私の言葉を聞いたニコラは腕を組んでうーんと数秒悩んだ末に、なぜか満足そうに頷く。そして「じゃあ、このアイデアはライラにあげるね」と言って、キッチンに戻っていった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私とニコラは、この五階建ての&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の四階にある一区画を分け合って暮らしている。&lt;/p&gt;
&lt;p&gt;&lt;ruby&gt;&lt;rb&gt;円環&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;というのは、百メートル四方ほどの敷地に建つ薄い円柱のような外観と、その中心にぽっかりと空いた円形の空間を合わせた構造のことだ。上から見ると、外から順に廊下、居室、そしてテレウィンドウに囲まれた空間が続くバウムクーヘンのような姿と言えば分かりやすいかもしれない。親しみを込めて、ドーナツハウスという愛称で呼ぶ人もいる。&lt;/p&gt;
&lt;p&gt;ニコラとは、半年前にルームシェア専門のマッチングサービスで知り合った間柄だ。彼女は短期の案件を転々としているエンジニアで、お金が貯まったら働くのをやめ、貯金が尽きたらまた働き始めて……というのを繰り返している。無職の期間を長く保つために、生活費はできるだけ抑えたいらしい。&lt;/p&gt;
&lt;p&gt;この住宅の大きな特徴は、家賃の安さだった。曲面の壁や窓は家具やカーテンを設えるには不便だし、窓は自然光の入らないAIディスプレイで覆われて、おまけにベランダもないという欠点だらけの住環境はやはり人気がないらしい。おかげで、周辺相場の半分以下という破格の家賃で提供されている。折半すれば一ヶ月分の予算で四ヶ月は暮らせる計算で、これほど効率のよいルームシェアは私にとっても願ってもない選択肢だった。&lt;/p&gt;
&lt;p&gt;家賃だけではなく、電気代が極端に安いのも魅力だろう。住宅内のテレディスプレイを年中無休で点灯しておく&lt;sup id="fnref:window"&gt;&lt;a class="footnote-ref" href="#fn:window" title="本来、居室には床面積の七分の一以上の窓が必要だが、例外として十分な有効光量を持つ光源に置き換えることが認められている。"&gt;2&lt;/a&gt;&lt;/sup&gt;ために結ばれた大電力契約と一本化されているおかげで、各部屋で使用する電力の単価が工場並みに抑えられていた。部屋にサーバーやネットワーク機器を積んで世話をしているニコラにとっては、まさに渡りに船といったところだったろう。&lt;/p&gt;
&lt;p&gt;「さっきステラが、カフェ・レヴァリィのケーキを買って帰ってきたよ。やっぱり昨夜はケンカしてたんだね」&lt;/p&gt;
&lt;p&gt;「ふーん。でも、あのカペラがケーキくらいで許すかしら」&lt;/p&gt;
&lt;p&gt;ニコラと向かい合わせで座る白いエンプラ板のテーブルの上には、濃紺のボウルに盛られた親子丼と、翡翠色の濃縮還元フレーバーティーで満たされた透明なコップが二つずつ。それと、ニコラの横には最近ではあまり見かけなくなった &lt;em&gt;物理の&lt;/em&gt; ノートパソコンが持ち込まれ、黒い電源ケーブルやネットワーク用の青いケーブルやらが取り付けられている。&lt;/p&gt;
&lt;p&gt;この共用のダイニングルームには、備え付けの冷蔵庫と冷凍ストッカー、洗濯乾燥機やその他雑多な古い家電家具が壁に沿って並べられており、雑然とした古めかしい印象が拭えない。油とほこりがこびりついた旧式のトースターはもはや使い物にならないが、勝手に捨てていいのか分からずにいた。&lt;/p&gt;
&lt;p&gt;「 &lt;em&gt;ふぁ&lt;/em&gt; からね、いま『イーグル』に繋いでるとこ」&lt;/p&gt;
&lt;p&gt;ニコラはサーモンを一口食べたスプーンをくわえたままそう言うと、器用にその柄を指の間に持ち替えてノートパソコンを触り始めた。さっきまでジャックしていたエントランスの防犯カメラ映像を、二階北側――ステラとカペラが住んでいる部屋の近くだ――の音声に切り替えているのだろう。&lt;/p&gt;
&lt;p&gt;彼女が「イーグル」と呼ぶ壁伝導センサーは、ニコラが廊下の壁に貼って回った小さな特製モジュールだ。円形に配置された部屋の幾何学的構造のおかげで、パラボラアンテナのように音を効率よく集められる場所がいくつかあるらしい。センサーの見た目はワシをモチーフにしたイラストが描かれたただの小さなステッカーで、古い貼り紙だらけの雑然とした壁に貼り付けるのに適したカモフラージュになっていた。&lt;/p&gt;
&lt;p&gt;『カペラ、昨日はごめんよ～……』&lt;/p&gt;
&lt;p&gt;『これ、レヴァリィの……仕方ないなぁ、今回だけだからね』&lt;/p&gt;
&lt;p&gt;イーグルはバッテリーを一切使わずに中距離から盗聴できるモジュールで、特定の周波数の電波を送ると、こんな感じで音声が乗って返ってくるらしい。詳しい仕組みはよく分からないものの、魔法のような代物だ。&lt;/p&gt;
&lt;p&gt;「ほらね」&lt;/p&gt;
&lt;p&gt;「でも、明日にはまた『ステラのせいで体重が増えた』って怒ってるかも」&lt;/p&gt;
&lt;p&gt;「あはは。言えてる」&lt;/p&gt;
&lt;p&gt;見て分かるとおり、ニコラはこうして&lt;ruby&gt;&lt;rb&gt;公開情報収集&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;オシント&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;や&lt;ruby&gt;&lt;rb&gt;街中での通信傍受&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;シギント&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;、ときには盗聴や盗撮を駆使して様々な個人情報を収集するという、いかにも悪い趣味を持っていた。「ゴシップ好き」と表現すればかわいらしい女子の習性に見えるかもしれないが、違法行為さえ厭わずに、と付け加えると話は別だ。&lt;/p&gt;
&lt;p&gt;とはいえ、ここで正義に則ってニコラを通報しても、せいぜい二倍の家賃という不条理な罰金を払う羽目になるだけだろう。それに、今まで彼女の犯罪を見過ごしてきた事実は私にも不利に働くはずだ。そういう勘案と、ニコラなら何があってもどうにか隠しおおせるだろうという謎の信頼から、今はこの共犯めいた関係を楽しむことにしていた。&lt;/p&gt;
&lt;p&gt;それから、一通りステラとカペラの会話を聴取したニコラは、スピーカーから片耳に着けたモニターイヤホンに切り替えて住宅の &lt;em&gt;巡回&lt;/em&gt; を始める。そして、何部屋か確認を終えたところで、もう一方のイヤホンを私に手渡した。&lt;/p&gt;
&lt;p&gt;「あ、中庭の音が聞こえるよ。ほら、オオカミの遠吠えみたい……」&lt;/p&gt;
&lt;p&gt;「最近また強くなってきてるわね」&lt;/p&gt;
&lt;p&gt;イヤホンからは、金属が擦れる音のような、猛獣のうめき声のような不協和音が途切れ途切れに流れている。目を閉じて意味ありげな音の羅列に聴き入るニコラの様子は、端から見ればお気に入りの音楽でもシェアしているように見えるけど、この雑音は音楽と呼ぶにはあまりに不安定だった。&lt;/p&gt;
&lt;p&gt;ニコラが「中庭」と呼ぶ&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の穴にあたる部分は、その名付けとは裏腹に奇妙な謎に包まれた空間である。住民の私たちでさえ中庭に入る方法を知らなかったし、ニコラが密かに入手した建物図面にも全く記載がない。その上、航空写真を見ても頑丈そうな銀色のドームで覆われているという徹底ぶりだった。&lt;/p&gt;
&lt;p&gt;もちろん、この雑音は普通に生活している住民たちに聞こえるようなものではない。感度のよいイーグルが壁伝いの振動を増幅しないと、こうして音として聞き取ることさえ難しい微弱な現象だ。住民の中ではおそらく私たちだけがこの「中庭の音」現象を知っていた。&lt;/p&gt;
&lt;p&gt;中庭の音なんておしゃれな名前の現象なら、もっと優雅な小鳥のさえずりや噴水の音を聞いていたいものだ。そんなことを思いながら、私も黒い海鮮シーズニングを振りかけて、とっておきの親子丼を食べ始めた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;週刊連載コラム「ララのメタ世界探訪記」。まだ十分に注目を集めていない新進気鋭のワールド、クオリティは高いものの日の目を見ないまま新着リスト落ちしてしまった隠れ家的ワールド……その他、私がピンときたマイナーなワールドを毎週いくつか取り上げてその魅力を発信するコーナーである。&lt;/p&gt;
&lt;p&gt;さっきまで滞在していた「アステロイド・ベルト」の紹介は、ワールドの制作者から依頼を受けて書いているPRだけど、このコラムはむしろエッセイに近い。こうして暇な時間に回ったワールドの日記をまとめて送るだけという、比較的気楽な仕事だ。もちろん、そういう &lt;em&gt;ただの日記&lt;/em&gt; で必要以上に褒めたり皮肉を込めたりするとコメントが荒れるから、単なる宣伝記事より表現に気を遣う部分は多かったりする。&lt;/p&gt;
&lt;p&gt;たまに「新しいワールドを作ったのでコラムで取り上げてください！」なんてDMが届くけど、そういう出会い方をすると、いくら面白そうなワールドでも記事にはできなくなってしまう。下手な立ち回りで宣伝に使われたりしてステマがどうのと騒がれるのは癪だし、同じような宣伝依頼が増えるのが目に見えているからだ。&lt;/p&gt;
&lt;p&gt;しかも、そこから正式な執筆依頼に繋がることは滅多になく、ほとんどは「紹介という体でどうにか無料で……」なんて無茶な主張の一点張りに持ち込まれるので性質が悪い。現に承認待ちのメッセージリストはその手のスパムで埋め尽くされていて、まともな仕事の依頼を探し出すのに苦労していた。そういう時は、たいてい自動応答モードに切り替えて適当なボットに返信を任せている。&lt;/p&gt;
&lt;p&gt;統合チャットアプリを立ち上げると、今日も既に数十件の未読通知が上に並んでいた。&lt;/p&gt;
&lt;p&gt;清流のせせらぎに包まれたり、だだっ広い草原で風の音を楽しむリラックス自然系のワールド――細かな工夫に手間をかけていそうだけど、紹介できるほどの特徴はなさそう。記念撮影によるバズを狙った個性的なランドマークを中心に据えた名所系ワールド――それ、私が文章で紹介する必要ある？　……と、添付されたリンクも見ずに自動応答モードにスワイプしていると、不思議なメッセージが目に留まった。&lt;/p&gt;
&lt;p&gt;『ララさん。どうか彼女を救ってくださいませんか』&lt;/p&gt;
&lt;p&gt;『外に連れ出してくださるだけでよいのです。それで全てが回り始めます』&lt;/p&gt;
&lt;p&gt;『本物の光を見せてあげたいのです』&lt;/p&gt;
&lt;p&gt;途中まで読んでから、こんな単純な手口にまんまと引っかかってしまった自分に嫌気が差す。まるで勇者に世界を救ってほしいと告げる神官のようなセリフの数々。先を見ずとも、謎解き系でストーリー強めのワールドを紹介するための導入なのは明らかだった。こういう宣伝手法も最近増えてきたな。&lt;/p&gt;
&lt;p&gt;もうスクリーニングAIに初期対応から任せてしまおうかと思ったものの、ニコラにバレたら「プライバシーとセキュリティ」に関する七十時間程度の講義を勧められて、また面倒なことになる気がした。彼女は些細なプライベートの一部でさえ、暗号化せずにクラウドに送るのを極端に嫌っていたから。&lt;/p&gt;
&lt;p&gt;「彼女を救って、って……ゲームはゲームでしょ？」&lt;/p&gt;
&lt;p&gt;『これはゲームではありません』&lt;/p&gt;
&lt;p&gt;「……そうですか」&lt;/p&gt;
&lt;p&gt;『時間がないのです。早くしなければこのワールドは閉じてしまいます』&lt;/p&gt;
&lt;p&gt;「呆れた。深夜の通販番組じゃないんだから」&lt;/p&gt;
&lt;p&gt;こちらの反応を見透かしたような構成にまた腹が立つ。何もしないままワールドが閉じたからって、それは「彼女」を救えなかったことにはならない。ワールドを複製すれば囚われの姫はそれだけ増えるし、逆にワールドが消えれば姫は初めから一人もいなかったと主張することさえできる。自由に作ったり壊したりできないなら、それは現実世界と変わらない。&lt;/p&gt;
&lt;p&gt;あの手この手で私の気を引いてまでプレイして欲しいゲームなら、さぞ完成度が高くて完璧な仕上がりなのだろう。&lt;/p&gt;
&lt;p&gt;「本当に面白かったら、紹介でも宣伝でもしてやろうじゃない」&lt;/p&gt;
&lt;p&gt;わざと目を引くように練られたメッセージにまんまと反応したのは私が悪い。だから敬意を表して、しっかり &lt;em&gt;批評&lt;/em&gt; してあげた方がいい。末尾に添付されていたリンクは見慣れない文字列で、おそらく海外のマイナーサービスか、セルフホストのサーバのもののようだった。&lt;/p&gt;
&lt;p&gt;ワールドのプレビューを開いてみると、生活感のある薄暗い部屋を背景に、ピンク色のパジャマを着た小学生くらいの少女の後ろ姿が映り込んでいた。体育座りで膝を抱えて、いかにも不穏そうな雰囲気を放っている。綺麗な金髪はこういったモデルにはありがちで、この子が &lt;em&gt;姫&lt;/em&gt; ということなのだろう。&lt;/p&gt;
&lt;p&gt;数枚のスクリーンショットはいずれも画質が不鮮明な上に、構図が練られているような様子もない。プレイ動画を一定間隔で切り取ったようなシーンばかりだ。&lt;/p&gt;
&lt;p&gt;フレンド同士で集まったり知らない人同士で交流を楽しめるように作られているワールドが多い中で、人数制限が一人に絞られているのも特徴的だった。ワールドの複製も制限されているから、並列で楽しむことさえできない。一人で楽しむための特別な設計が施されているか、サービス側のリソースが複数人を参加させるレベルにないか、といったところだろう。&lt;/p&gt;
&lt;p&gt;こういう未審査のワールドでは、プレビューからは予想できないセーフティ&lt;sup id="fnref:safety"&gt;&lt;a class="footnote-ref" href="#fn:safety" title="意図しない音や光の効果、不快な演出などを事前にブロックするためのフィルタリングシステムのこと。"&gt;3&lt;/a&gt;&lt;/sup&gt;が必要になるレベルの過激な表現を伴うことが多い。私はセーフティレベルを最大のX8にして、スプラッター映画にでも臨むような心地で何度か深呼吸をする。それから「ダイブ」にカーソルを合わせて、ゆっくりとトリガーした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;十秒ほどのトランジションの後に私が降り立ったのは、奥に部屋が続く細い廊下の中腹だった。振り向くと玄関が、左を見ると小さなシンクとコンロを備えたキッチンが目に入る。天井には簡素な照明器具が設置されているが、剥き出しの細長い蛍光灯には光が点っていない。&lt;/p&gt;
&lt;p&gt;冷蔵庫、電子レンジ、ケトルと、ある程度の家電は並べられているが、棚には調理器具や食器が置かれている様子がなかった。細かいオブジェクトを大量に配置すると動作が重くなるし、探索の自由度を高めすぎてもユーザーが飽きるから意図的に減らしたのかもしれない。&lt;/p&gt;
&lt;p&gt;しかし、天井、キッチン、廊下の先……何度か向きを変えると、その度に小さな引っかかりを感じる。さらに周囲を確認しているうちに、視界全体に広がる違和感と不快感が身体全体を支配していくのが分かった。&lt;/p&gt;
&lt;p&gt;「うぇ……これ、酔いそう」&lt;/p&gt;
&lt;p&gt;顔の向きを変える速度に、視界が全く追いつかない。右を向くと、一秒遅れて右へ。左を向くと、また遅れて左へ。レンダリングコストを全く無視したワールド特有のあの感じ。処理能力の限界を超えないようにゆっくり動けば &lt;em&gt;ずれ&lt;/em&gt; は減るものの、これでは周囲を見回したり何かに注目するのさえ億劫になってしまう。VR体験としては「最悪」の類のものだ。&lt;/p&gt;
&lt;p&gt;数多くのワールドに潜ってきた私でさえ、ここまでのスペックが要求されるものは見たことがなかった。制作者はよっぽど高価なデバイスでテストしたみたいだけど、こんなワールドを紹介したら私まで叩かれてしまう。グラフィック重視のハイエンド向けワールドは、廉価版しか持っていないネットの暇人には特に評判が悪いのだ。&lt;/p&gt;
&lt;p&gt;こんなワールドを記事にはできないし、久しぶりのVR酔いで最悪の気分だし、もう帰ってもいいかしら。&lt;/p&gt;
&lt;p&gt;「パ……パパ？　大丈夫？」&lt;/p&gt;
&lt;p&gt;と、クイックメニューを開いてホームに戻ろうとしたところ、廊下の奥からこちらの様子を窺うような細々とした声が聞こえた。音のする方向にゆっくり視界を向けて注目したものの、ネームプレートはおろかユーザーランクを示すステータスカラーすら確認できない。&lt;/p&gt;
&lt;p&gt;考えてみれば、ここは一人用のワールドなのだから他のプレイヤーがいるわけがない。声の印象から察するに、さっきプレビューに映っていた体育座りの少女のものだろう。素人っぽさを残しつつ、きちんと小学生っぽさを主張する生々しい演技だ。ふと「これはゲームではありません」という紹介を思い出すほどの存在感があった。&lt;/p&gt;
&lt;p&gt;「あなた、誰？」&lt;/p&gt;
&lt;p&gt;ただのNPCなのは理解しつつ、まだ得体の知れない&lt;ruby&gt;&lt;rb&gt;野良ワールド&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;サイドロード&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の素性を探るように、おそるおそる少女に声をかける。謎解きゲームのキャラクターなら、ある程度の音声認識と世界観の説明くらいはこなせるだろう。&lt;/p&gt;
&lt;p&gt;こちらの呼びかけに応じて、予想通り少女が歩み寄ってきた。明るく綺麗なストレートの金髪に、透き通った茶色の瞳、リアルさを残しつつ適度にデフォルメされている整った目鼻立ち。ピンク色のパジャマは光の反射がよく制御されていて、つやつやとしたシルクっぽい質感を示していた。&lt;/p&gt;
&lt;p&gt;彼女は先ほどよりも少し緊張が緩んだ様子で、しかし、私の問いには答えずさらに質問を続ける。&lt;/p&gt;
&lt;p&gt;「イヴなの？　パパはお仕事に行った？」&lt;/p&gt;
&lt;p&gt;イヴというのは、本来ここにいるべき少女の家族か友達か――とにかく私ではない誰か――で、彼女が心を許せる相手なのだろう。しかし、そんな存在を私や&lt;ruby&gt;&lt;rb&gt;父親&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;パパ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;と間違えるだろうか。廊下の薄暗さが私の姿を隠しているつもりなのか、あるいは彼女以外は全員が同じデフォルトアバターに見える世界という設定なのかもしれない。&lt;/p&gt;
&lt;p&gt;目の前の少女はよく作り込まれたモデルで私を見上げて、じっと私の動きを観察している。&lt;/p&gt;
&lt;p&gt;「私、イヴじゃないわ。あなたの名前は？　私の声、聞こえてる？」&lt;/p&gt;
&lt;p&gt;私を「イヴ」と呼んだ少女にもう一度尋ねるも、彼女はきょとんとした表情で私を見つめるだけ。確かに私の声は聞こえているはずなのに、その内容を理解できずにいた。随分と出来が悪いAIだ。無料の会話AIだって、もう少しまともな反応を示すと思うけど。&lt;/p&gt;
&lt;p&gt;少女は私を訝るように首を傾げると、垣間見せた「イヴ」への安心感を背中に隠すように、警戒した面持ちで一歩後ろへ下がった。&lt;/p&gt;
&lt;p&gt;「イヴじゃないの？　あなた、だれ？」&lt;/p&gt;
&lt;p&gt;「私はララよ。あなたは？」&lt;/p&gt;
&lt;p&gt;「パ、パ？　やっぱり、パパなの？」&lt;/p&gt;
&lt;p&gt;戸惑った少女の表情が晴れることはなく、このストレスフルな導入パートはもうしばらく続く様子だった。こちらの言葉が全く伝わらなくてじれったい。そんなに私の発音が悪いっていうの？&lt;/p&gt;
&lt;p&gt;そもそも、パパとララって全然違うじゃない。音が二つで、どちらも同じ母音で……いや、少しだけ似てるかもしれない。ままならない会話へのもどかしさでカッとしていたけど、音声認識で混同されやすい語ではあるだろう。それなら仕方ない、と先ほどよりゆっくり、そしてはっきりと少女に名前を告げた。&lt;/p&gt;
&lt;p&gt;「……ラ、イ、ラ」&lt;/p&gt;
&lt;p&gt;「パ……えーと、ア？　でもなくて……わかった、ライラね。ライラっていうのね？」&lt;/p&gt;
&lt;p&gt;あぁ、やっと伝わった。名前を呼ばれるのがこんなに嬉しいなんて。本名から一文字抜いた「ララ」というハンドルネームはそれなりに気に入っていたけど、ゲームを進めるためなら別に本名でもいい。小さな達成感と共に大きく頷くと、少女は嬉しそうに飛び跳ねた。&lt;/p&gt;
&lt;p&gt;「よかった！　ライラ、私のお家へようこそ！」&lt;/p&gt;
&lt;p&gt;名前を伝えるだけでこんなに苦労するとは、先の展開が思いやられる。それでも、このかわいらしい少女が私のアクションで表情豊かな反応を見せるとなかなか悪い気はしないし、ゲームデザインとしては練られている気がした。&lt;/p&gt;
&lt;p&gt;「私はアキラ。ここで一人で暮らしてるの。でも、パパとイヴがお世話してくれるのよ」&lt;/p&gt;
&lt;p&gt;アキラ――ほんのり男の子っぽい元気な名前は、 &lt;em&gt;姫&lt;/em&gt; のおしゃまな振る舞いには少し似合わない気がした。&lt;/p&gt;
&lt;p&gt;それから、アキラは私を廊下の先にある部屋に案内してくれた。照明もなくほんのりと空間全体が光る薄暗い部屋にはなぜか窓がなく、パースのパラメータが誤っているのか四方を囲む壁が少し歪んで見える。ここが実は地下室だと言われても疑わないほどの強い閉塞感は、 &lt;em&gt;姫&lt;/em&gt; を閉じ込める牢獄としての舞台設定を十分に表現していた。&lt;/p&gt;
&lt;p&gt;床には毛布やタオルケットのようなテクスチャが雑然と広がり、それらの布の上にはいろいろな日用品が転がっていた。その中でも大事そうに置かれている灰色の丸いクッションは、彼女のお気に入りなのだという。&lt;/p&gt;
&lt;p&gt;「ふわふわで柔らかいでしょう？　生まれたときからずっと一緒なの」&lt;/p&gt;
&lt;p&gt;パパ、そしてイヴ。アキラをこの部屋から救うというストーリーを考えれば、彼女が「パパ」と呼ぶ存在が悪の親玉となるだろうか。イヴはアキラ専属のメイドか、あるいはママ――アダムと対をなすという意味で――を示しているのかもしれない。いずれにせよ、彼女をここから連れ出すための鍵になりそうだ。&lt;/p&gt;
&lt;p&gt;「ライラも、私のお世話してくれる？　私、あなたと遊びたいわ」&lt;/p&gt;
&lt;p&gt;上目遣いでそう尋ねる視線に、人間じみた不思議な魅力を感じながらゆっくりと頷くと、アキラは私の手を握って嬉しそうに微笑んだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;不思議なことに、アキラは音声認識以外の性能は最新のAIと遜色なかった。先ほどまで見せていた食事のモーションは実際のプレイヤーと区別が付かないほど精巧で、ジェスチャーから意図を察する機能にもミスや遅れがない。それらがむしろ音声認識よりも実装が難しい分野なのが不思議だった。&lt;/p&gt;
&lt;p&gt;「私、親子丼って大好き！　ライラが作ってくれたの？」&lt;/p&gt;
&lt;p&gt;首を振る。私は冷蔵庫にあった丼のオブジェクトをお盆に載せて運んだだけだ。まだ精巧な制御が必要な動作をこなせるほど、このワールドに慣れていなかった。&lt;/p&gt;
&lt;p&gt;「じゃあ、きっとイヴが冷蔵庫に作り置きしてたのね」&lt;/p&gt;
&lt;p&gt;しかし、高性能AIのデモが続くばかりで、いつまで経っても謎も事件も起こらない。チュートリアルはとっくに終わっているはずなのに、アキラの遊び相手のようなパートだけが続いていた。いろいろなオブジェクトを持ち上げたり、棚や引き出しを開けてみても、逐一アキラの説明が始まるばかりで不審者もポルターガイストも気配さえ見せない。&lt;/p&gt;
&lt;p&gt;ここまで来たら、ストーリー開始の糸口くらい見つけ出したいところだ。何か打開策はないだろうか……と辺りを見回しているうちに、薄暗い廊下とその先にある玄関に目が行った。このワールドを紹介していた &lt;em&gt;神官&lt;/em&gt; が「外に連れ出すだけでいい」と言っていたのを思い出す。&lt;/p&gt;
&lt;p&gt;まだゲームは始まっていなかったってこと？　つまり、突然の来訪者――もちろん私のことだ――が保護者のいない隙を狙って外に連れ出すところから始まるストーリー……なんとも犯罪めいた感じはするが、プレイヤーが自発的に違法な行為を選び取るまでクリアできないゲームというのも、ある種個性があって魅力的かもしれない。&lt;/p&gt;
&lt;p&gt;それなら、もうきっとワールド制作者がやきもきしている頃だろう。私はアキラの手を握って、立ち上がるように促した。&lt;/p&gt;
&lt;p&gt;「どうしたの、ライラ？　かけっこでもする？」&lt;/p&gt;
&lt;p&gt;今からあなたを外に連れて行くのよ、と言ってもその声はアキラに届かないだろう。私はアキラをできるだけ落ち着かせるために、彼女に目線の高さを合わせるように体をかがめて顔を寄せた。そして、アキラの両手を握って目を見ながら一歩ずつ後ずさりで玄関に向かっていく。&lt;/p&gt;
&lt;p&gt;初めは私が何をするつもりか分からずにいたアキラは、廊下まで手を引かれたあたりでその意図に気付くと、慌てて私を止めようとする。&lt;/p&gt;
&lt;p&gt;「お外はダメよ、ライラ。パパに怒られちゃうわ」&lt;/p&gt;
&lt;p&gt;やはり悪役の「パパ」がここで出てくるわけだ。思った通りのキーワードを引き出せた満足感で、早くストーリーを進めたい気持ちがはやる。しかし、二人の矛盾する動きをワールドの物理演算が上手く解決できなかったのか、アキラに引かれた視界が私の後ろに残って動かない。それでもさらに構わず彼女の手を引くと、今度は逆に視界がぶれて前に飛んだ。&lt;/p&gt;
&lt;p&gt;「ライラ！　ねぇ、ライラったら……本当に行くの？　私、知らないからね。ライラが勝手に私を連れていったのよ？」&lt;/p&gt;
&lt;p&gt;アキラが私を止めようと引っ張る腕の力が弱くなる。私の力には勝てないと思ったのか、それとも、外に出る理由が欲しいだけなのか。いずれにしても、強気だったアキラが抵抗をやめる瞬間、背中にぞくりとした不快な興奮が走るのを感じた。あぁ、私がこの子を救うんだ。&lt;/p&gt;
&lt;p&gt;玄関のドアノブに手を掛けると、カチャンという軽やかな手応えが耳に伝わる。これが正しい選択肢でしょ？という確信と共に一歩前に進むと、急にドン、と不可視の存在にぶつかるのを感じて身体が止まった。いや、私の身体は動いているけれど、また視界が一歩分後ろに残ったまま進まないのだ。&lt;/p&gt;
&lt;p&gt;歩く速度には気を付けていたつもりだけど、この絶好のタイミングで通信エラーか……と、キャリブレーションのためにぐるりと周囲を見回すと、私が手を引いていたはずの少女の姿はなく――その瞬間、アキラの身体が廊下の端まで吹き飛ばされ、部屋の扉に背中を強く打ち付けていた。&lt;/p&gt;
&lt;p&gt;「パパ、ごめんなさい！　ごめんなさい……」&lt;/p&gt;
&lt;p&gt;目に見えない強い力に薙ぎ払われ、放物線を描いて床に転がったアキラは、すぐに起き上がって身を守るように小さくうずくまった。そして、うわ言のように「パパ」への許しを乞い始める。私はその悲痛な姿を前に、ゲームであることも忘れて思わず「アキラ、どうしたの？　アキラ！」と叫んでいた。&lt;/p&gt;
&lt;p&gt;私の声にならない声は震える彼女に届いていたようで、ハッと顔を上げた泣き顔のアキラと目が合う。でも、動けない。もう足が動かない。&lt;/p&gt;
&lt;p&gt;「ライラ！　ライラ、私を助けて！　あ、あぁ――」&lt;/p&gt;
&lt;p&gt;そう私の名前を呼ぶアキラの悲痛な叫び声と共に、どこからともなく「おい！　お前、イヴじゃないな！」という男の怒鳴り声が聞こえたかと思うと……&lt;ruby&gt;&lt;rb&gt;信号喪失&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ロスト&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;。強制的にホーム画面に戻されて、そのままアキラのワールドは閉じてしまった。&lt;/p&gt;
&lt;p&gt;急な静けさの中、私はしばらくの間動けずにいた。見慣れたホーム画面の天井を見つめているうちに、だんだんとVR酔いが覚めていく。私の身体がここにあるという、確かに地面を踏みしめている感覚が戻ってきた。しかし、目の前で繰り広げられたあの強烈な場面は、目に見えない存在への恐怖と共にまだしっかりと思い出せる。&lt;/p&gt;
&lt;p&gt;ヘッドセットを外すと、いつもの部屋に横たわる自分の身体に意識が重なってはっきりしていく。視界の端で光るテレウィンドウには、私の言葉を拾ってどうにか組み上げたらしい壊れたテクスチャだらけの薄暗い廊下が表示されていた。真っ暗で何も見えない向こう側から、またあの怒鳴り声が聞こえるのを想像して、ぶるりと身が震える。&lt;/p&gt;
&lt;p&gt;ここまでが体験版ってことなのかしら。ジャンルは謎解きというよりホラーだろう。いつになくリアルな空気だった。単にグラフィックを精細美麗にするだけでは決して得られることのない、限りなく日常に近い不調和と狂気。足を一歩進めることさえ躊躇う不気味さとほの暗さ。ひょっとすると、まだ発掘されていない天才が作った作品かもしれない。&lt;/p&gt;
&lt;p&gt;これは、本当にゲームなのか？　キャッチコピーを付けるならこんな感じだろうか。「キミに少女が救えるか」なんてのより、不穏さと不気味さを重視した方がページビューを稼げるはずだから。&lt;/p&gt;
&lt;p&gt;「でも、これ……本当に、ただのゲームなのかしら」&lt;/p&gt;
&lt;p&gt;私に助けを乞うアキラの声が、どうしても忘れられない。まるで、本当にずっとあの&lt;ruby&gt;&lt;rb&gt;世界&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ワールド&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;に閉じ込められていて、まだ私の助けを待っているような、後ろ髪引かれる妙な感覚だけが残っていた。そんなわけないのに。&lt;/p&gt;
&lt;p&gt;とりあえず、初めに受け取ったメッセージには返信しておこう。どのように紹介してほしいのか、開発状況はどうなのか……そもそも、シナリオのモデルは法的に問題ないものか。聞きたいことはたくさんあった。本当なら早く続きをプレイしたいところだけど、いったん顔を洗って落ち着くべきだ。&lt;/p&gt;
&lt;p&gt;外のサインプレートを戻そうと思ってドアノブに手を掛けると、ちょうど私に用事があったらしいニコラと鉢合わせした。&lt;/p&gt;
&lt;p&gt;「あ、ライラ。外からの攻撃パケットがめっちゃ増えてるんだけど！　心当たりない？」&lt;/p&gt;
&lt;p&gt;ニコラは少し慌てた様子だった。どこかから攻撃を受けているらしい。しかし、私は数時間前から部屋にこもってずっとアキラ……そう、アキラと過ごしていただけで、スパムもウイルスも開いた覚えはなかった。&lt;/p&gt;
&lt;p&gt;「攻撃パケット？　私、さっきまでワールドに潜ってただけで、別に何も……」&lt;/p&gt;
&lt;p&gt;「今から証拠を集めて反撃を……って、ライラ、顔が真っ青だね。どうしたの？　柄にもなく、VR酔いでもした？」&lt;/p&gt;
&lt;p&gt;心配そうに覗き込むニコラの顔が近づいて、私は元気よと返すつもりで自分の両頬に手を当ててみる。しかし、私の顔は血の気を感じないほどに冷えていて、さらに手足は痺れるほどに凍えていた。あのリアルな光景に、現実とゲームの境界が曖昧になる感覚に自分が混乱していたことにやっと気付く。&lt;/p&gt;
&lt;p&gt;「ニ、ニコラ……私、あのね、さっき、え、えっと……」&lt;/p&gt;
&lt;p&gt;アキラが、イヴが、パパが――と、状況を整理しようとしても、あの光景が蘇って言葉が出ない。私の身に起きたことなど知らないきょとんとしたニコラの顔を見ているうちに、私はなぜかわんわんと声を上げて泣いていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;それから、私はワールドを宣伝する巧妙なメッセージを受け取ったこと、そのワールドでアキラという少女に出会ったこと、アキラが「パパ」と呼ぶ不可視の存在に吹き飛ばされたこと、そこでワールドが強制終了してしまったことについて、ニコラが&lt;ruby&gt;&lt;rb&gt;抗不安薬&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ジアゼピン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を持ち出してくる前になんとか話し終えた。&lt;/p&gt;
&lt;p&gt;改めて身に降りかかった事件を振り返ると、まるでVRマニアがヘッドセットを着けたまま眠ったときの夢の話をしているようで、さっきまで目の前で起こっていたことのはずなのに現実味がない。いや、ほとんどは別の&lt;ruby&gt;&lt;rb&gt;世界&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ワールド&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;で起きていたことだけど、なんかこう……つまらないネットロアのアウトラインを書き起こしているみたいだ。&lt;/p&gt;
&lt;p&gt;きっとニコラも、この不気味で荒唐無稽な話に首を傾げるだろうと思ったものの、なぜか彼女は話を進めるごとに不機嫌そうな表情で小さく「やっぱり」「ありえない」と文句を言うばかりで、この話に疑問を示す様子もない。それどころか、私の話に割り込むようにテーブルに手のひらを打ち付けて、専門用語っぽい――私には理解できなかった――謎の語彙を交えて喚き始めた。&lt;/p&gt;
&lt;p&gt;「――古くて単調なエクスプロイトを大量に送るだけ……どうせただの&lt;ruby&gt;&lt;rb&gt;kiddie&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ガキ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のくせに、クソムカつく！　ライラをハメたってことじゃん！」&lt;/p&gt;
&lt;p&gt;「別に私、騙されてないわ。ただ、ちょっとゲームをプレイしただけで」&lt;/p&gt;
&lt;p&gt;「だってライラ、泣いてるじゃん！　泣かされた上に追い討ちで攻撃されるなんて、悔しくないの？」&lt;/p&gt;
&lt;p&gt;「ゲームで泣くことだってあるわよ。私は心が動いたから泣いたの。だいたい……」&lt;/p&gt;
&lt;p&gt;まだニコラがこんなに怒っている理由も分からないまま、彼女の語気に合わせて私の口調まで強くなっていく。悪い流れだった。私にしぶとく残る不安な気持ちがそのままニコラへの敵対心に変わりそうなのを感じて、一度ゆっくり深呼吸をする。顔にも手足にも熱が戻ってきたのに、身体の奥深くがまだ落ち着かずにいた。&lt;/p&gt;
&lt;p&gt;「――ふぅ。そもそも、追い討ちってどういうことよ？」&lt;/p&gt;
&lt;p&gt;「外から攻撃を受けてるんだよ。&lt;ruby&gt;&lt;rb&gt;内向きパケット&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;インバウンド&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;がもうメチャクチャ」&lt;/p&gt;
&lt;p&gt;「でも、私のヘッドセットは壊れてないわ。インターネットも繋がってるし」&lt;/p&gt;
&lt;p&gt;「あーもう、そうじゃなくて！　たぶんライラが接続したワールドと同じIPアドレスから、ウチの……私たちのネットワーク全体に攻撃が来てるの。きっと、初めからそのつもりだったんだよ」&lt;/p&gt;
&lt;p&gt;攻撃？　アキラのワールドから？　そんなわけない、と咄嗟に言い返しそうになったけど、最初に送られたDMが私を狙った標的型攻撃で、魅力的なワールドの紹介を装って私の居場所を特定しようとしていた――とすれば話は繋がる。しかし、誰がそんなことを。熱心な私のファンかサイバーストーカーか……口には出さないけれど、ニコラが味方でよかった、と思う。&lt;/p&gt;
&lt;p&gt;そんなニコラは「あーほんとにムカつく！　私が誰だか分かってんの？」と、ぶつぶつ言いながらダイニングテーブルにディスプレイやキーボードの城塞を組み立て始めた。&lt;/p&gt;
&lt;p&gt;ケーブルなんて繋げなくてもインターネットは使えるし、ディスプレイやキーボードだってVR空間に自由に配置できるから、こうやって現実にデバイスがたくさん並んでいる光景はなかなか見慣れない。前にニコラにそんな話をしたことがあったけど、自分の視覚や聴覚を攻撃対象領域に置くなんてリスクが高すぎると言っていた。&lt;/p&gt;
&lt;p&gt;彼女を囲むディスプレイが一斉に青い壁紙の光を放つのに合わせて、ニコラがキーボードから短いコマンドをいくつか入力し始める。そして、彼女が「反撃」と表現する一連の作戦――おそらく実際は過剰防衛にあたるような――を開始した。&lt;/p&gt;
&lt;p&gt;「ライラも飲む？　ちょっと長い夜になりそうだから」&lt;/p&gt;
&lt;p&gt;ニコラは冷蔵庫でよく冷えた黒い缶入りのエナジードリンクを取り出して、その半分ほどを喉に流し込むと、残りを勢いよく机に置いた。そして、この小さな缶から少しずつ栄養を摂取できるように、上から細いストローを投げ込む。私は最大処方の「黒缶」を飲むと気分が悪くなるから、もう一段階弱い「赤缶」を飲むことにした。&lt;/p&gt;
&lt;p&gt;とはいえ、私はニコラの作戦に協力できるようなスキルもない。なんとなくドリンクを飲んでみたはいいものの、私にできるのは寝ずに彼女を見守ることくらいだろう。向かい合わせになっていたダイニングチェアをニコラの側に移動して、彼女がディスプレイ上で展開していく作戦を眺め始めた。&lt;/p&gt;
&lt;p&gt;ここからはニコラの説明をそのまま横流しにする。――今はダークネットで切り売りされたボットネットから攻撃を受けていて、実際の攻撃元が分からないので、適当な&lt;ruby&gt;&lt;rb&gt;犠牲者&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ゾンビ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;からC&amp;amp;Cサーバーまで逆探知しようとしている。外から来たパケットはミラーして蓄積され、OSとバージョン、使われているコマンダーウイルスごとにリアルタイムで表示され、そこから反撃できそうな隙を見つける……らしい。&lt;/p&gt;
&lt;p&gt;彼女は先ほどまで感情のままに恨み言を並べていたのと打って変わって、一言も発さず作業に集中している。素早い指さばきに合わせて響く小気味よい打鍵音に耳を集中させると、冷蔵庫の低い動作音やデバイスのファンが回る音までよく聞こえた。&lt;/p&gt;
&lt;p&gt;静かな時間が流れている。ディスプレイに顔を近づけて青い光に照らされているニコラの様子を見ていると、改めて現実に戻ってきた安心感が奇妙な懐かしさと共にこみ上げてきた。&lt;/p&gt;
&lt;p&gt;「ニコラ、あなたがいてくれて助かったわ」&lt;/p&gt;
&lt;p&gt;「……私はいつも通り、自由にやってるだけだよ。悪いのはライラを騙したガキなんだし」&lt;/p&gt;
&lt;p&gt;ニコラはこちらに顔を向けずにそう答える。彼女の視線に合わせてディスプレイに目を戻すと、白黒の解析ログが上から下へとめまぐるしく流れていくのに合わせて、攻撃の傾向がダッシュボードに表示されていく。&lt;/p&gt;
&lt;p&gt;ぐんぐん更新されていくカラフルなグラフはまだしも、ディスプレイで細かい文字を読むのは苦手だ。こういう物理ディスプレイで見るのはテレビ番組やアニメばかりだから、難しいニュースを延々流されているような気分になる。もちろんそれは優秀な睡眠導入剤として、私を曖昧で隙だらけの世界に誘っていった。&lt;/p&gt;
&lt;p&gt;「でも、ニコラがいなかったら、私死んじゃってたかも」&lt;/p&gt;
&lt;p&gt;「それはさっきのVRの話でしょ。まだ混乱してるの？」&lt;/p&gt;
&lt;p&gt;「違うわ。私がワールドから戻ってきたとき、ニコラを見てここが私の家だって思ったの。だから、私――」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ホームカメラ、繋がった！　さて、ライラを騙したのはどんな変態かな……」&lt;/p&gt;
&lt;p&gt;次に私が目を開けたのは、ニコラがそう叫んで嬉しそうに両手を挙げる瞬間だった。&lt;/p&gt;
&lt;p&gt;古いOSのバージョンと脆弱性の話を聞いていたところまでは、なんとか覚えている。そこから、ニコラと何を話したんだっけ。テーブルから身体を起こした私は、ディスプレイに表示された攻撃元のグラフがすっかり落ち着いているのに気付き、それから私がかなり長い時間眠っていたことに思い至った。&lt;/p&gt;
&lt;p&gt;「……うーっ。ニコラ、ごめん。寝ちゃってた」&lt;/p&gt;
&lt;p&gt;「あ、ライラ。 &lt;em&gt;敵&lt;/em&gt; の本拠地に&lt;ruby&gt;&lt;rb&gt;無防備なライブカメラ&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;インセカム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が置かれてるのを見つけたよ。何か手がかりになるかも。古すぎるゾンビが混ざってて、あとはやるだけだったっていうか――」&lt;/p&gt;
&lt;p&gt;ニコラは私が眠っていたことは既に気にしていない様子で、見えない敵に反撃を食らわせた興奮を丸ごと伝えようと、早口に身振り手振りで大忙しだ。私もどうにかそれに応えようと、眠い目を擦りながらその映像に視線を向けた。ディスプレイにはわずかにブロックノイズの乗ったいかにもウェブカメラっぽい映像が流れていて、サーバールームやオフィスのような空間ではなく、目の前で誰かが生活を送っている住居だと分かる。&lt;/p&gt;
&lt;p&gt;ぼんやりした頭で部屋の中を一つ一つ確認していくと、布団や毛布が広がる床、その上に捨てられた日用品――その瞬間、私の意識を押さえ込んでいたしぶとい眠気はすっかり吹き飛んでいった。&lt;/p&gt;
&lt;p&gt;「ニコラ！　私、さっきここにいたわ！　見て、この灰色のクッション。同じ物がアキラの部屋にもあったの」&lt;/p&gt;
&lt;p&gt;アキラが愛用していたもこもこの丸いクッションに、確かに見覚えがあったからだ。&lt;/p&gt;
&lt;p&gt;しかし、地下室のような閉塞感を放っていたはずの壁には、なぜか森の中に建つシンデレラ城を映したテレウィンドウらしきデバイスが設置されている。設定が狂って歪んでいるように見えた壁は、今思えば見慣れたAIディスプレイの曲率とぴったり同じだった。&lt;/p&gt;
&lt;p&gt;そして、カメラの真ん中に映っているのは、サイズの合わない毛玉だらけのパジャマでのろのろと布団を這う――アキラと同い年くらいの――傷だらけの女の子だ。顔には殴られたようなあざができていて、パジャマにも血がにじんでいるように見える。きっと布で隠された腕や脚にも、たくさんの傷が残っているだろう。&lt;/p&gt;
&lt;p&gt;「でも、この子はアキラと全然違う。パジャマはもっと新しかったし、髪ももっと明るくて……」&lt;/p&gt;
&lt;p&gt;何より、こんなにみすぼらしくなかった。そう口にするのはなぜか憚られた。髪はところどころ色が脱け落ち、黒と金のバイカラーと表現すれば聞こえはいいが、単にカラー剤が上手く塗れていないだけだ。元はもっと綺麗な黒髪だったのだろう。もちろん、メタ世界上のアバターは現実世界の姿を反映するものではないけれど、まるで生き別れた双子の姫と孤児を見ているようで心が痛い。&lt;/p&gt;
&lt;p&gt;画面の向こうの &lt;em&gt;アキラ&lt;/em&gt; は、どんな気持ちであのアバターを着ていたのだろう。この髪は、 &lt;em&gt;アキラ&lt;/em&gt; 自身が染めたのだろうか。もし、そうだとしたら。&lt;/p&gt;
&lt;p&gt;「じゃあ、ここを攻撃したのは、ハッキングが大好きな天才女子小学生ってこと？　随分やつれてるみたいだけど」&lt;/p&gt;
&lt;p&gt;「でも……アキラ、助けてって言ってた。きっと、アキラの『パパ』が仕返しに来たのよ」&lt;/p&gt;
&lt;p&gt;「『パパ』って、この子を吹き飛ばした &lt;em&gt;ゴースト&lt;/em&gt; だよね？」&lt;/p&gt;
&lt;p&gt;そうだ。あの時、アキラの&lt;ruby&gt;&lt;rb&gt;父親&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;パパ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;はあのワールドに存在していなかった。しかし、アキラの世界には確かに「パパ」がいた。そして、今も「パパ」に怯えながら過ごしていることだろう。もし、あの&lt;ruby&gt;&lt;rb&gt;世界&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ワールド&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が現実を縫い付けた単なるスクリーンだとしたら。アキラの世界と私の世界が偶然重なっていただけだとしたら。&lt;/p&gt;
&lt;p&gt;「やっぱり、この子はアキラよ。私が見ていたのは、ずっと現実だったんだわ」&lt;/p&gt;
&lt;p&gt;現実世界の動きをメタ世界に映す手段はいくらでもある。私のように専用の定点カメラで動きを追跡したり、あるいは全身に慣性センサーを装着して、アバターの動作として出力すればいいだけだ。現実のアキラが吹き飛ばされる動きさえも精巧に反映していたのだとしたら、あの見えない力の説明もつく。&lt;/p&gt;
&lt;p&gt;しかし、まだ少しの疑問が残る。私が開けた引き出し、アキラに渡した飲み物や食べ物は、現実世界ではどう映っていたのだろう。彼女はずっと私とメタ世界で &lt;em&gt;おままごと&lt;/em&gt; をしていて、お腹が空いたまま私と遊んでいたのか。それにしては、アキラの反応はあまりにも自然で素直なものだった。&lt;/p&gt;
&lt;p&gt;いずれにせよ、アキラはまともな状況に置かれていないはずだ。彼女のような小学生がヘッドセットを装着し続けるのは大きな負担になるだろうし、そもそもあれほどの暴力を振るわれている状態なのは言うまでもない。それに、彼女は確かに「ライラ、私を助けて」と言った。あの地獄から、救ってと。&lt;/p&gt;
&lt;p&gt;「ねぇ、ニコラ。私、アキラを助けに行きたい。ニコラだって、やられっぱなしじゃ嫌でしょ？」&lt;/p&gt;
&lt;p&gt;「私は別に、この映像で脅してモネロ&lt;sup id="fnref:monero"&gt;&lt;a class="footnote-ref" href="#fn:monero" title="本人以外が保有額や取引履歴を追跡できない匿名性の高い暗号資産のひとつ。"&gt;4&lt;/a&gt;&lt;/sup&gt;でも巻き上げればスッキリするんだけど……まぁ、いいか。協力するよ」&lt;/p&gt;
&lt;p&gt;もし「パパ」が本当にアキラの父親なら、私たちは堂々と未成年者の誘拐計画を立てる犯罪者だ。それでも、あんな野良猫の巣みたいな場所に閉じ込められて、手ひどい虐待を受けるアキラを放っておくことはできなかった。彼女を見て見ぬ振りすることの方が、何か重大な罪に問われるような心地がした。&lt;/p&gt;
&lt;p&gt;自分の正義のためなら犯罪も厭わないなんて、ニコラと過ごすうちに私も変わってきたのかしら。&lt;/p&gt;
&lt;p&gt;「……ありがとう、ニコラ」&lt;/p&gt;
&lt;p&gt;それでも、ニコラが共犯になってくれるなら別にいいかな、と思った。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私はすぐにでもアキラを助けに行きたかったけど、住所の解析と作戦の準備に二日はかかるというニコラの主張を尊重して……というよりはむしろ、彼女の情報がなければ目的地さえ分からないので、アキラの身の安全を願いながら待つしかなかった。&lt;/p&gt;
&lt;p&gt;そして、作戦当日。ニコラが「作戦」のために借りたという黒い小さなSUVには、トランクはもちろん後部座席まで大量の荷物が積まれていた。その多くはニコラの持っているデバイス――ディスプレイ、サーバー、その他ネットワーク機器、ケーブル類――で、彼女がここに越してきたときと同じように毛布で丁寧に保護され、小さなサプライ品はまとめてプラ製の収納ボックスに詰められている。&lt;/p&gt;
&lt;p&gt;レンタカーなんて借りるお金がどこから出てきたのかと尋ねてみたら、先日の調査で踏み台にしたボットネットの&lt;ruby&gt;&lt;rb&gt;犠牲者&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ゾンビ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;から盗み取った暗号資産を活用したらしい。つくづく抜け目のない天才エンジニアだ。&lt;/p&gt;
&lt;p&gt;ニコラの主張によれば、トレース――彼女がしたような攻撃元を分析する活動に成功しているなら、向こうも私たちの居場所を知っているかもしれないという。おちおち部屋にいれば身体に直接的な脅威が、そうでなくても腹いせで盗難や損壊なりの被害を受ける危険性が高まっていた。&lt;/p&gt;
&lt;p&gt;ニコラに「無くなったら困るものは全部積んでおかなきゃ」と促されるまま、私もVR用のヘッドセットやセンサーを梱包してトランクの隅に積んでいた。もともと少なめの荷物で越してきた身だったから、一緒に載せた数日分の旅行セットも合わせると、なんだか行き先も無計画な引っ越しを始めたような気分になる。&lt;/p&gt;
&lt;p&gt;「準備できたわ、ニコラ」&lt;/p&gt;
&lt;p&gt;「じゃあ、そろそろ出発するね」&lt;/p&gt;
&lt;p&gt;帰宅ラッシュのピークを過ぎる頃、私たちは目立たないように家を離れた。服装は夜に紛れる黒を基調としつつ、怪しい忍者のような黒装束には見えないギリギリのラインを保つ。それでも、ニコラと並んでポーズを決めるといかにも闇を駆ける悪役コンビのようで、姿見の前で思わず緊張が解けて二人でしばらく笑い合っていた。&lt;/p&gt;
&lt;p&gt;ニコラの運転で幹線道路を北へ。目的地まではたっぷり四時間ほどかかるらしい。途中で運転を交代しながら進むことになりそうだ。『パパ』がいない隙を突いて侵入する必要があるから、あまり悠長に休憩している暇はないだろう。&lt;/p&gt;
&lt;p&gt;ライブカメラに映った部屋の間取りとテレウィンドウを手がかりに分析を進めたところ、アキラの部屋は私たちと同じような&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の一画にあることが分かった。航空写真を見ると、住宅街の真ん中で周囲を押しのけるように不自然な位置に建っているのも、うちとよく似ている。&lt;/p&gt;
&lt;p&gt;こんなユニークな形の住宅が全国にいくつもあるなんて私は知らなかったけど、ニコラはIPアドレスからおおよその地域が分かった途端にこの場所を候補に挙げていた。家賃と電気代の安さのおかげで、エンジニア界隈では有名な建築スタイルなのかもしれない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;アキラの住む&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;に到着したのは、予定時刻を少し過ぎた午前二時あたりだった。辺りは真っ暗で、家の窓から漏れる灯りも道を通る人もない。今の私たちが注目すべきなのは数十メートルおきに設置された街灯くらいだけど、そちらも申し訳程度に足元をほのかに照らすだけで、やはり警戒する必要はなさそうだった。&lt;/p&gt;
&lt;p&gt;近くの団地の駐車場に車を停めて、そこからアキラの部屋に向かう。たくさんの人が集まる場所なら、誰かに見られても記憶に残りにくいらしい。木を隠すなら森の中、といったところか。駐車場を出て、右、左、もう一度右へ。地方都市の郊外にある住宅街の夜はただ静かで、ここには誰も住んでいないのかもしれないという錯覚すら覚える。&lt;/p&gt;
&lt;p&gt;「もう住宅内に踏み台は置いてあるから、『パパ』さえ来なければ首尾よく進むはず」&lt;/p&gt;
&lt;p&gt;足音を抑えて私の先を歩いていたニコラが、立ち止まってそう小声で告げながら前を指差す。彼女はこちらを見ていなかったけど、自分に言い聞かせるように力強く頷いた。目的地の建物は私たちにとっては見慣れた大きな円盤型で、既に作戦を首尾よく終えて帰宅の途についているような錯覚さえ覚える。&lt;/p&gt;
&lt;p&gt;事前に確認した航空写真を見ても、やはり中心に銀色のドームが嵌まっていた。エントランスのセキュリティモジュールも、私たちの住宅と全く同じ型番らしい。同時期に、同じ計画の下で建てられたことを示しているのか。それにしては場所が離れすぎている気がするものの、これがこの二棟だけではなく北から南まで全国に広がる光景なら、少しは納得がいくかもしれない。&lt;/p&gt;
&lt;p&gt;わざわざ家賃を下げざるを得ない個性的な間取りにこだわる理由はよく分からないけど。&lt;/p&gt;
&lt;p&gt;ニコラはバックドアを経由してものの数秒でロックを解除すると、ついでに監視カメラの映像記録を&lt;ruby&gt;&lt;rb&gt;遅延&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ディレイ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;させる。今から三十分ほどの映像を私たちが侵入する前のものに置き換えて、機械的な異常検知をすり抜けるという。&lt;/p&gt;
&lt;p&gt;「ここにアキラがいるんだよね。早く助けないと」&lt;/p&gt;
&lt;p&gt;「でも、アキラちゃんが本当にライラと話していたのかは、まだ分からないよ」&lt;/p&gt;
&lt;p&gt;「それは……アキラの存在自体が罠かもしれないってこと？　今さらそんなこと――」&lt;/p&gt;
&lt;p&gt;本当のアキラを見つける前に可能性の一つとして想定していた、ワールド自体が撒き餌の標的型攻撃という仮説。弱々しいアキラの姿を見てからはすっかり忘れていた考えだけど、例えば侵入を見越して偽の監視カメラを設置していたなら……私たちは敵の思惑通りに罠に飛び込んでいることになる。&lt;/p&gt;
&lt;p&gt;私がどうしてもアキラを助けたいという気持ちはニコラも分かっているはずで、しかしアキラ自体が虚構なら、この気持ちが向かうべき場所はなくなってしまう。私にも自信を持ってアキラの存在を主張できるほどの根拠はなかった。それを認めるのが怖くて、ひたすら前に進もうとしていたのだ。&lt;/p&gt;
&lt;p&gt;「――でも、うん。最悪の事態は想定しなきゃね」&lt;/p&gt;
&lt;p&gt;周囲を確認しながら廊下を進む。今は侵入者を捕捉できないだろう監視カメラの位置と角度は、私たちから見れば薄暗い視界の中でもよく分かった。もちろん、ここに「イーグル」はいない。全く知らない場所の見慣れた景色の一つ一つを見ていると、まるで異世界を訪ね歩いているようで不思議な気持ちになる。&lt;/p&gt;
&lt;p&gt;隅々から伝わる見知らぬ雰囲気が、私の身体を冷たくした。&lt;/p&gt;
&lt;p&gt;「この部屋だね。ここから先は、ライラがお願い」&lt;/p&gt;
&lt;p&gt;「えぇ、大丈夫。打ち合わせたとおり、ちゃんとできるわ」&lt;/p&gt;
&lt;p&gt;階段をいくつか上ってさらに半周ほど。バックドアからの数秒のロック解除に合わせてこの扉を開ければ、&lt;ruby&gt;&lt;rb&gt;父親&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;パパ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;からの慢性的な虐待で感覚が過敏になっているアキラだけが目を覚ますはず。それなら、仮に&lt;ruby&gt;&lt;rb&gt;父親&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;パパ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が部屋の様子を監視していたとしても、気付かれないように静かにアキラを連れ出せるはずだった。&lt;/p&gt;
&lt;p&gt;ニコラの操作を待つほんの十秒ほどの沈黙が、数分にも数時間にも感じられる。その緊張に耐えかねて「ねぇ」「うん」と短いやり取りを交わした瞬間に、わずかな電子音と共にロックが外された。すかさずカチャン、というドアノブを回す音を響かせて、部屋の中を覗き見る。&lt;/p&gt;
&lt;p&gt;予定通り、少し遅れて中の住人から反応が返ってきた。&lt;/p&gt;
&lt;p&gt;「だ、だれ……？　イヴ？」&lt;/p&gt;
&lt;p&gt;「アキラ、私よ。ライラよ」&lt;/p&gt;
&lt;p&gt;「ライラ……ライラなの？　本当に、来てくれたの？」&lt;/p&gt;
&lt;p&gt;ゆっくりと廊下から出てきた少女は、先日ライブカメラに映っていた &lt;em&gt;本物の&lt;/em&gt; アキラだった。古びて汚れたパジャマに身を包む小さな女の子。胸にあの古びた灰色のクッションを抱えている。顔には大きなあざが残り、髪はところどころ無理やり金色に染められて痛々しい。それでも、確かにあのワールドで見たアキラと同じ子だと直感で分かった。&lt;/p&gt;
&lt;p&gt;「助けに来たわ。一緒に外へ行きましょ」&lt;/p&gt;
&lt;p&gt;「ラ、ライラ……でも、私……」&lt;/p&gt;
&lt;p&gt;アキラは私が差し出した手をじっ、と見るばかりで一歩も前に進めずにいた。ワールドにいたときと同じように渋るアキラの手を握ると、すべすべで柔らかいあたたかさが伝わってくる。冷たくて少し震える私の手には熱いくらい。私が助ける側のはずなのに、直接触れるその熱に勇気づけられていた。&lt;/p&gt;
&lt;p&gt;今なら、きっといける。そのまま彼女の手を引こうとすると、突然廊下の奥の暗闇から野太い声が響いてきた。&lt;/p&gt;
&lt;p&gt;「おい、お前ら！　何をしてる！」&lt;/p&gt;
&lt;p&gt;思わず身体が震える。すぐに分かった。この声は「パパ」のものだ。あの日と同じ。アキラを薙ぎ払った姿が見えない存在。判別の付かない怒鳴り声と共に廊下の奥からドスドスと乱暴な足音が聞こえて、あぁ、この世界では肉体があるんだ……と目の前の緊急事態には似合わない発見に一瞬思考を奪われたものの、慌てて首を振ってもう一度状況を確かめる。&lt;/p&gt;
&lt;p&gt;「ニコラ、『パパ』は今部屋にいなかったんじゃ……」&lt;/p&gt;
&lt;p&gt;「そうだよ……そうだったはず。カメラの映像にはいなかった！」&lt;/p&gt;
&lt;p&gt;「お前らが見ていたのは、俺がいない昨日の映像さ。こんな簡単なトリックも使えないと思ったのか？」&lt;/p&gt;
&lt;p&gt;やっぱり、罠だった。ここに「パパ」がいるのはまずい。警察に通報されればもう逃げられないし、私たちには彼に抵抗できるほどの力もなかった。とにかく、直接対峙することはないように計画していたはずなのに。&lt;/p&gt;
&lt;p&gt;ニコラは小声で「ここはいったん退こう」と一歩後ろに下がった。確かに、私たちだけではどうしようもない。無茶な特攻で捕まってしまえば、アキラを助ける機会は二度となくなってしまう。今逃げておかなければ、彼女はまた、現実世界とメタ世界の境界で「パパ」に閉じ込められて長い時間を過ごすのだ。&lt;/p&gt;
&lt;p&gt;仕方ない……と、アキラに差し伸べようとしていた手を退いて逃げだそうとした、その時。&lt;/p&gt;
&lt;p&gt;「……お、おい！　なんだ！　離せ、イヴ！」&lt;/p&gt;
&lt;p&gt;声が後ろへ遠ざかり、不規則に壁や床にごつごつと何かがぶつかる音が響く。「パパ」と、もう一人誰か――イヴ、そうだ、イヴと呼ばれていた。「パパ」と「イヴ」の二人がもみ合いになって、暗闇の中で攻防を続けている。大きな家具に身体がぶつかったのか、あるいは椅子でも振り回して応戦しているのか、素手で殴り合うには低く鈍い音が繰り返し聞こえてくる。&lt;/p&gt;
&lt;p&gt;そして、やがて二人は倒れ込んでテレディスプレイにぶつかったらしく、ガチャンとガラスが割れる大きな音が響いた。&lt;/p&gt;
&lt;p&gt;「何が起きたの？」&lt;/p&gt;
&lt;p&gt;「分かんない。カメラは古い映像だし。でも……これはマズいかも」&lt;/p&gt;
&lt;p&gt;それから一瞬の沈黙が流れた後、部屋の奥から急に青白い光が漏れ出てくる。初めはまるで強い光を放つスライムのような液体が染み出て空間を照らしていたけれど、今度はそこからレーザーのような鋭い光を不規則に飛ばしながらどんどん床を覆っていく。このまま人や獣の姿に形を変えて立ち上がるのではないかと思えるほどに、奇妙で神秘的な光景だった。&lt;/p&gt;
&lt;p&gt;自分の部屋でニコラと取っ組み合いのケンカなんてしたことがなかったし、窓に物をぶつけたことさえ一度もない。そもそも、ちょっとした衝撃で割れるような素材ではなかったはずだ。あの分厚い保護ガラスの向こうには、こんな珍しい新素材が詰まっていたなんて。&lt;/p&gt;
&lt;p&gt;ニコラもさぞテレディスプレイの液晶材料の素性が気になっているだろう……と思いながら彼女を見やると、青い光に照らされた顔がみるみる強ばっていくのが分かった。&lt;/p&gt;
&lt;p&gt;「すごくきれい……これが、 &lt;em&gt;外&lt;/em&gt; の光なの……？」&lt;/p&gt;
&lt;p&gt;「……やっぱり、マズい！　ライラ、急いで離れて！　アキラちゃんも！」&lt;/p&gt;
&lt;p&gt;そう叫んだニコラは私たちの答えを待たずに、廊下を走って最寄りの階段を転げ落ちるように降りていく。走っている間も「早く！」「急いで！」と叫んでいるあたり、よほどの緊急事態なのが分かる。私はアキラの顔を見て頷くと、彼女は「分かったわ！」と言って私の手を握った。&lt;/p&gt;
&lt;p&gt;廊下が青白くて冷たい光に包まれていくのを背中で感じる。このスライムの正体は分からないけど、どうやら安全な物質ではないらしい。アキラがこの光に触れないように、手の中で脈打つ熱を奪われないように、私は一心不乱にアキラの手を引いて前に進んだ。&lt;/p&gt;
&lt;p&gt;ニコラに遅れて十秒ほど。エントランスを飛び出した私たちの後ろを指差すニコラに合わせて振り向くと、住宅全体がアキラの部屋で見た青白いスライムに包まれている。空間を切り裂くような鋭い光はだんだん強くなり、ついに視認できないほどの光量になったかと思うと、ドカンッと大きな音を立てて弾け飛んだ。&lt;/p&gt;
&lt;p&gt;「ラ、ライラ……私のおうち、どこへいったの？」&lt;/p&gt;
&lt;p&gt;アキラはどうにか不安を抑えようと、胸に抱えた大事なクッションを強く抱きしめていた。走っている間もどうにか手放さずに済んだらしい。まるで火事から逃げてきたような状況だけど、目の前にはもはや残骸の欠片さえ残っていなかった。&lt;/p&gt;
&lt;p&gt;「分からないわ。でも、私たちは何も……ね、ねぇ、ニコラ。何がどうなってるの？」&lt;/p&gt;
&lt;p&gt;「最悪。あの &lt;em&gt;ゴースト&lt;/em&gt; 、全部引っかき回して消滅しちゃった」&lt;/p&gt;
&lt;p&gt;そうして&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;は、「パパ」もろとも跡形もなく姿を消した。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私たちは、激しい音と光のせいで衆目を集めつつあった事故現場からとにかく離れるために、できるだけ目立たない山道ルートで車を進めた。途中で何台か峠越えする車とすれ違ったけど、助手席で対向車に集中する私でさえ、もうどんな車種が走っていたかほとんど思い出せない。きっと向こうもそうだろうと祈る。&lt;/p&gt;
&lt;p&gt;ニコラの計画によれば、「パパ」に見つかってしまったときのプランB、そして住宅が爆発に巻き込まれたときのプランCの準備があり、今は運悪くプランCを元に逃走ルートを確保しているらしい。爆発、というのは正体不明のスライムが建物を飲み込んで弾け飛んだあの現象を指しているのだろう。&lt;/p&gt;
&lt;p&gt;すると、ニコラは既にこの爆発について計画に組み込むレベルで把握していたということになる。しかし、いくら用意周到なニコラでも、これほどの威力を持つ爆弾を個人で用意できるとは思えない。それに、大量の光と音を放って建物を丸ごと消し去るなんて、隠密に進める作戦のバックアップとしては大ざっぱすぎるだろう。&lt;/p&gt;
&lt;p&gt;もちろん、それは「パパ」自身にも同じことが言える。こんな大がかりな装置は準備できないだろうし、自身を犠牲にしてまで反撃する意味もない。つまり、これは誰の制御下にもなかった不運な事故だったというわけか。&lt;/p&gt;
&lt;p&gt;やっとの思いで連れ出したアキラは、その小さな身体を後部座席の荷物の隙間に収めて静かに寝息を立てている。今警察に見つかったらどうやっても言い逃れできないだろう。出発直後は珍しそうに外を眺めて、たまに出てくるコンビニやファミレスの光を愛おしそうに見つめていたけど、暗い山道に入ってからは退屈したのかいつの間にか眠っていた。&lt;/p&gt;
&lt;p&gt;「まだ検問は張られてないみたい。報道の火消しを優先してるっぽいね」&lt;/p&gt;
&lt;p&gt;周囲の状況を確認しながら慎重に進むニコラ。どんなピンチでも落ち着き払って作戦を進める彼女の冷静さには、ここまでずっと助けられてきた。しかし、私たちにも馴染みのある&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;があんなに簡単に吹き飛ぶのを見て全く動揺しないのは、本当に彼女がただ冷静だったおかげなのだろうか？&lt;/p&gt;
&lt;p&gt;「ちょっと、ニコラ」&lt;/p&gt;
&lt;p&gt;「どうしたの？　帰り道のナビはもう送ってあるよ」&lt;/p&gt;
&lt;p&gt;「そうじゃなくて。あの爆発、いったいなんだったの？」&lt;/p&gt;
&lt;p&gt;アキラを起こさないように小声でニコラを問い詰める。彼女は「えーとね……」と、煮え切らない様子でしばらく考え込んでいたけど、道路沿いに現れた展望台を兼ねた無料駐車場を見つけると、迷わず車を停めてエンジンを切った。そして、とうとうこちらに視線を向けて重い口を開く。&lt;/p&gt;
&lt;p&gt;「……ライラ、&lt;ruby&gt;&lt;rb&gt;円形集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の家賃が安い理由、覚えてる？」&lt;/p&gt;
&lt;p&gt;「急にどうしたのよ。壁が曲がってて、窓がない特殊な部屋だからじゃないの？」&lt;/p&gt;
&lt;p&gt;「ライラ。壁や窓がちょっと変ってだけで、こんなに安くはならないでしょ」&lt;/p&gt;
&lt;p&gt;私の言葉を聞いたニコラは、ここぞとばかりに大きなため息をつく。間取りが家賃には関係ない、ですって？　あの物件の紹介を受けたときは、特殊な間取りで人気がないから値引きしているんです、と確かに言っていたはずだ。その説明はニコラも聞いていたはずなのに。&lt;/p&gt;
&lt;p&gt;「どういう意味よ？」&lt;/p&gt;
&lt;p&gt;「&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;には根本的な欠陥があるの。知ってて選んだんじゃないの？」&lt;/p&gt;
&lt;p&gt;「欠陥って？　私、何も聞いてないわ」&lt;/p&gt;
&lt;p&gt;「物件屋は嘘つきだからねぇ。ライラも自分でちゃんと調べなきゃ」&lt;/p&gt;
&lt;p&gt;それから、彼女は淡々と&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の欠陥について話し始めた。&lt;/p&gt;
&lt;p&gt;私たちが &lt;em&gt;中庭&lt;/em&gt; と呼んでいた場所は、もともと地下に謎の超高エネルギー物質が滞留する特殊なエリアだったらしい。この物質は光を放つスライムのような姿で、放っておくとあらゆる物体を包んで爆発させてしまう危険性があった。宅地開発を進める開発業者が運悪くその鉱脈を掘り当ててしまったことで、&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;建築計画が立ち上がったという。&lt;/p&gt;
&lt;p&gt;このエネルギー物質は、物体を完全に包まない限りは決して爆発しない性質があった。つまり、内壁がなめらかで十分に頑丈なタンクに閉じ込めておけば、投入する小球核の量で出力を制御しつつ、ほぼ無限にエネルギーを取り出せるらしい。&lt;/p&gt;
&lt;p&gt;「金属のシールドに包んで、その外側にテレウィンドウを貼り付けたら、エネルギー湧き放題で &lt;em&gt;安心安全な&lt;/em&gt; タンクのできあがり。爆発と隣り合わせだから家賃は安いし、電気だって自給自足。まさに夢のクリーンハウスって感じ」&lt;/p&gt;
&lt;p&gt;要するに、地価の高い住宅街のど真ん中を活用しないのは割に合わないから、住居と防火壁を兼ねた緩衝地帯を作って少しでも収入を得ようとしたわけだ。なんて悪魔のような発想だろう。そんな部屋に説明もなく私を……そして、アキラのような少女を住まわせるなんて。&lt;/p&gt;
&lt;p&gt;もちろん、爆発と隣り合わせと言っても、これまで&lt;ruby&gt;&lt;rb&gt;円環集合住宅&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アニュラス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の居住者を巻き込んだ大きな事故に繋がったことはなかった。テレウィンドウは分厚い強化ガラスで覆われているし、弁償のリスクを負ってまで高価な大型ディスプレイを壊そうとする人もいない。そういう心理的効果でタンクから危険を遠ざけてきたのだろう。&lt;/p&gt;
&lt;p&gt;「でも、テレウィンドウを破って、シールドにほんの少しだけ傷を付ければ簡単にその &lt;em&gt;夢&lt;/em&gt; は崩れちゃう」&lt;/p&gt;
&lt;p&gt;テレウィンドウを突き抜けるような衝撃を起こせば、圧力の均衡が崩れて飛び出したスライムがあらゆる物体を包んで大爆発してしまう。先ほど私たちが目の当たりにしたのは、防火壁――アキラの住居でもあった――がその役割を果たした瞬間というわけだ。&lt;/p&gt;
&lt;p&gt;「ねぇ、ライラ。と……ニコラ、さん」&lt;/p&gt;
&lt;p&gt;と、ニコラの声で目を覚ましてしまったのか、アキラが眠そうな声で私たちの名前を呼んだ。車はまだ駐車場から動いていない。もう少しで山を越えて、隣町の中心地に差し掛かろうとしていた。もしかしたら、目の前でわずかに光を放つ市街地の夜景に反応したのかもしれない。明日からはこんな時間に起こさないようにしないと。&lt;/p&gt;
&lt;p&gt;「どうしたの、アキラ？　ごめんね、うるさかった？」&lt;/p&gt;
&lt;p&gt;「違うの。ライラは……ずっとこんな暗い場所に住んでるの？　パパが、外はずっと真っ暗で怖い場所だって言ってたわ」&lt;/p&gt;
&lt;p&gt;思わずニコラと顔を見合わせる。アキラはこれまで外に出たことはおろか、太陽の光を見たこともないらしい。彼女はこの世界に来る朝さえ知らずに、ずっとあの小さな部屋に閉じ込められて生きてきたというのか。&lt;/p&gt;
&lt;p&gt;頭によぎったのは、やはりずっと単なるゲームの設定だと思っていた &lt;em&gt;神官&lt;/em&gt; の依頼のことだ。アキラを救って外に連れ出してほしい。光を見せてほしい。これはワールドにいたあの &lt;em&gt;姫&lt;/em&gt; ではなく、小さな身体で大きな負担を受け続けてきたアキラ自身のための言葉だったのだ。&lt;/p&gt;
&lt;p&gt;「……ちゃんとこの世界にも朝が来るわ。本物の光を見せてあげるから、待っててね」&lt;/p&gt;
&lt;p&gt;「そうなのね！　うれしい……でも、それなら、イヴにも見せてあげたかったわ」&lt;/p&gt;
&lt;p&gt;「イヴって、アキラの家にいたお手伝いさん？」&lt;/p&gt;
&lt;p&gt;「そうよ。とっても優秀なロボットだったの。さっきもパパが乱暴しないように、押さえていたのよ」&lt;/p&gt;
&lt;p&gt;イヴが、ロボット？　てっきり、「パパ」が雇った人間のメイドか何かだと思っていた。しかし、イヴが自律して動くロボットだとしたら、大の男を制圧するほどの力があるのも納得がいく。おそらく「パパ」の隙を突いてアキラが外に抜け出さないよう昼夜問わず監視して、異常を知らせるよう設定されていたのだろう。&lt;/p&gt;
&lt;p&gt;しかし、なぜか誤動作を起こして「パパ」を拘束、バランスを崩してテレウィンドウを……いや、あれは誤動作なんかじゃない！　彼女は私と同じ気持ちだったんだ。ずっと心を痛めていたに違いない。あの日、虐待を受けるアキラを見て自分に任された仕事に疑問を持った&lt;ruby&gt;&lt;rb&gt;神官&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;イヴ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が、彼女に「本物の光を見せてあげたい」と願って自分の身体を私に預けてくれたんだ。&lt;/p&gt;
&lt;p&gt;「ねぇ、アキラちゃん。イヴなんだけど、AIのデータならたぶんクラウドに――」&lt;/p&gt;
&lt;p&gt;「でも、私、イヴがいなくなっても寂しくないわ。だって、ライラが来てくれたんだもの！」&lt;/p&gt;
&lt;p&gt;アキラが後部座席から身を乗り出して、ニコラを遮る大きな声で私たちの間に飛び込んだ。彼女はこちらをじっと見つめてから、ぐいと私の手を取る。アキラの手は小さくて、あたたかくて、すべすべだ。幼さを隠せない小さくて頼りない手なのに、今なら私をどこまでも引っ張っていってくれそうな気がした。&lt;/p&gt;
&lt;p&gt;「ライラってね、おててが柔らかくって、ひんやりしてるのよ。声もかわいくってすてき！」&lt;/p&gt;
&lt;p&gt;「……ライラ、すごく愛されてるみたいだね。ルームシェアは今日でおしまい？」&lt;/p&gt;
&lt;p&gt;「冗談やめてよ。私、あなたとの暮らしを結構気に入っているんだから」&lt;/p&gt;
&lt;p&gt;「私も、ライラと過ごす時間がすごく楽しいよ。アキラちゃんも、きっとすぐ馴染むね」&lt;/p&gt;
&lt;p&gt;それから、ニコラはそろそろ出発の時間だね、と言ってこの先の移動ルートを設定し始めた。初めての朝が待ち遠しいアキラは、朝日まで起きていられるだろうか。彼女の小さな身体をやさしく包む太陽の光に、その熱に、きっと彼女はびっくりするだろう。&lt;/p&gt;
&lt;p&gt;車が走り出す。綺麗な星々を散りばめた夜空が、ずっと向こうの山際から瑠璃色に染まっていく。夜明けはもうすぐだった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/8039"&gt;百合SS Advent Calendar 2022&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:salmon"&gt;
&lt;p&gt;「サーモン」および「プチプチ」は、カルチュアド・クロレラ・カンパニーが製造する食品類の登録商標であり、特定の生物種を指す語ではない。&amp;#160;&lt;a class="footnote-backref" href="#fnref:salmon" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:window"&gt;
&lt;p&gt;本来、居室には床面積の七分の一以上の窓が必要だが、例外として十分な有効光量を持つ光源に置き換えることが認められている。&amp;#160;&lt;a class="footnote-backref" href="#fnref:window" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:safety"&gt;
&lt;p&gt;意図しない音や光の効果、不快な演出などを事前にブロックするためのフィルタリングシステムのこと。&amp;#160;&lt;a class="footnote-backref" href="#fnref:safety" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:monero"&gt;
&lt;p&gt;本人以外が保有額や取引履歴を追跡できない匿名性の高い暗号資産のひとつ。&amp;#160;&lt;a class="footnote-backref" href="#fnref:monero" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>2022/07/01～2022/08/02</title><link href="https://ama.ne.jp/post/report-20220802/" rel="alternate"/><published>2022-08-02T19:01:00+09:00</published><updated>2022-08-02T19:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-08-02:/post/report-20220802/</id><summary type="html">&lt;p&gt;2022/07/01～2022/08/02のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/media-kit/"&gt;メディアキット&lt;/a&gt;を追加しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="/"&gt;あまねけ！&lt;/a&gt;を紹介する際に自由にご利用いただけます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;videoタグの幅を調整しました。&lt;ul&gt;
&lt;li&gt;幅が大きな動画が画面幅を超えて広がってしまう挙動の修正の修正です。&lt;/li&gt;
&lt;li&gt;幅が小さい動画が画面いっぱいに広がらないようになりました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;一部の記事に記載している画像の代替テキストを調整しました。&lt;ul&gt;
&lt;li&gt;画像の十分な要約になっていなかったものについて、ある程度拡充しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/link/"&gt;ミラーサイト&lt;/a&gt;に&lt;a href="https://amane-katagiri.github.io/"&gt;amane-katagiri.github.io&lt;/a&gt;を追加しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;h4 id="_4"&gt;あまねけ！&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/bunfree34-postcard/"&gt;文フリ34のふりかえり（ポストカード編）&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;日本郵便に問い合わせを行い、その結果をもとにはがきの形状について追記しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_5"&gt;ニュースレター&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/33-1233737"&gt;あまねけ！ニュースレター #33&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;文フリ34のふりかえりおわりのこと&lt;/li&gt;
&lt;li&gt;Joplinのこと&lt;/li&gt;
&lt;li&gt;あまねけ！Webサーバーのこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/34-1273325"&gt;あまねけ！ニュースレター #34&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;Revueが落ちていたこと&lt;/li&gt;
&lt;li&gt;UptimeKumaを使い始めたこと&lt;/li&gt;
&lt;li&gt;ntfy.shを使い始めたこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/35-1290013"&gt;あまねけ！ニュースレター #35&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;Netlifyをやめたこと&lt;/li&gt;
&lt;li&gt;Slackをやめたこと&lt;/li&gt;
&lt;li&gt;海のおわりのこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>2022/05/03～2022/07/01</title><link href="https://ama.ne.jp/post/report-20220701/" rel="alternate"/><published>2022-07-01T19:01:00+09:00</published><updated>2022-07-01T19:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-07-01:/post/report-20220701/</id><summary type="html">&lt;p&gt;2022/05/03～2022/07/01のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;縦書き表示可能な記事で区切り線（ &lt;code&gt;&amp;lt;hr&amp;gt;&lt;/code&gt; ）が表示されていない不具合を修正しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/longxiapian/"&gt;えびせんパーティー&lt;/a&gt;や&lt;a href="/post/fortune-popcorn/"&gt;フォーチュン・ポップコーン&lt;/a&gt;で確認いただけます。&lt;/li&gt;
&lt;li&gt;縦書き表示については実験中の機能であり、今後もっと読みやすい形に改良する計画があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ama.ne.jp/.well-known/security.txt"&gt;security.txt&lt;/a&gt;を追加しました。&lt;ul&gt;
&lt;li&gt;Webサービスに脆弱性が見つかった際の連絡先を提示するものです。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.rfc-editor.org/rfc/rfc9116.html"&gt;RFC 9116&lt;/a&gt;で標準化されています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/"&gt;あまねけ！&lt;/a&gt;をDockerイメージや実行可能なWebサーバーに固めて幅広い環境で閲覧できるようにしました。&lt;ul&gt;
&lt;li&gt;Dockerイメージは&lt;a href="https://hub.docker.com/r/amane/amanejp"&gt;amane/amanejp&lt;/a&gt;から利用できます。&lt;/li&gt;
&lt;li&gt;ビルド済みのWebサーバーは&lt;a href="https://github.com/amane-katagiri/amanejp-portable/releases"&gt;GitHub&lt;/a&gt;からダウンロードできます。&lt;/li&gt;
&lt;li&gt;あまねけ！がダウンしていたり、職場や学校であまねけ！がブロックされていて閲覧できない場合に役立ちます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;壊れていた一部のリンクを修正・削除しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;h4 id="_4"&gt;あまねけ！&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/bunfree34-general/"&gt;文フリ34のふりかえり&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;5月29日に開催された&lt;a href="https://bunfree.net/event/tokyo34/"&gt;第三十四回文学フリマ東京&lt;/a&gt;のふりかえりです。&lt;/li&gt;
&lt;li&gt;補足として、&lt;a href="/post/bunfree34-postcard/"&gt;ポストカード編&lt;/a&gt;、&lt;a href="/post/bunfree34-cloudflare/"&gt;ダウンロードシステム編&lt;/a&gt;、&lt;a href="/post/bunfree34-unattended/"&gt;無人販売編&lt;/a&gt;も公開しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/proton-calendar-0x85"&gt;Latin-1と0x85のなぞ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://proton.me/calendar"&gt;Proton Calendar&lt;/a&gt;のカレンダー共有機能で文字化けが起きていたという記事です。&lt;/li&gt;
&lt;li&gt;サポートに問い合わせてから、記事を書いている間にさっさと修正されていました。&lt;/li&gt;
&lt;li&gt;やっぱり不具合報告はちゃんとした方がいいですね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_5"&gt;ニュースレター&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/29-1154614"&gt;あまねけ！ニュースレター #29&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;文フリのスペースが発表されたこと&lt;/li&gt;
&lt;li&gt;不在の百合と人生のこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/30-1192651"&gt;あまねけ！ニュースレター #30&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;文フリ東京34のこと&lt;/li&gt;
&lt;li&gt;Novel Supporterを使ってみたこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/31-1202144"&gt;あまねけ！ニュースレター #31&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;文フリ34だったこと&lt;/li&gt;
&lt;li&gt;security.txtのこと&lt;/li&gt;
&lt;li&gt;ユウちゃんとわたし&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/32-1231010"&gt;あまねけ！ニュースレター #32&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;サーバ監視のこと&lt;/li&gt;
&lt;li&gt;長方形ではない郵便はがきのこと&lt;/li&gt;
&lt;li&gt;ウソ・大げさ・まぎらわしい文字のこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>文フリ34のふりかえり（無人販売編）</title><link href="https://ama.ne.jp/post/bunfree34-unattended/" rel="alternate"/><published>2022-07-01T19:00:00+09:00</published><updated>2023-01-10T00:39:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-07-01:/post/bunfree34-unattended/</id><summary type="html">&lt;p&gt;たのしい文化祭無人販売システムまとめ&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;ブース無人化計画について&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;補助輪のこと&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;無人販売注文システムについて&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_5"&gt;注文アプリ（タブレット）のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;注文サーバーのこと&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_12"&gt;気付き・反省について&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_13"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://bunfree.net/event/tokyo34/"&gt;第三十四回文学フリマ東京&lt;/a&gt;では、見本誌の展示とタブレットを使った注文システムを1ブースにまとめた無人販売風の展示を行いました。このシステムは、主に&lt;a href="https://flutter.dev/"&gt;Flutter&lt;/a&gt;で書かれた注文アプリとPython（Tornado）で書かれた注文サーバーで構成されています。&lt;/p&gt;
&lt;p&gt;この記事では、&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。&lt;/a&gt;が推進しているブース無人化計画の流れをベースとして、無人販売注文システムの目的および構成について紹介した上で、第三十四回文学フリマ東京で企画を実施した際の気付きや反省について述べていこうと思います。&lt;/p&gt;
&lt;h2 id="_2"&gt;ブース無人化計画について&lt;/h2&gt;
&lt;p&gt;ブース無人化計画は、変態美少女ふぃろそふぃ。が文学フリマ東京を始めとした即売会に取り組む方向性のひとつです。大まかには同人誌即売会での無人販売を実現し、準備完了後から片付け直前まで無人で頒布が成立することを目指しています。より詳細には、田舎の無人野菜直売所から堅牢な自動販売機まで、様々な手法を取り入れてブースの無人化を達成するための中長期的な計画です。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;変態美少女ふぃろそふぃ。では、ブースに（少なくとも人間の）売り子を置かずに済むようにすることを中長期的な目標に置いています。ただ作品を手渡したり、金銭の勘定をすること自体はあまり重要ではないからです。極端な例を出すと、ブース設営が終わったら会場を抜け出して大井競馬場に遊びに行くことさえできるようにすべきだと考えています。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://news.amane.moe/issues/11-898675"&gt;あまねけ！ニュースレター #11&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この計画はサークル活動を始めてから長年のあいだ構想段階のまま放置されていましたが、COVID‑19の流行によって具体的な企画として始動しました。過去には、中古の100円玉用ドロップセレクター（参考: &lt;a href="https://www.asahiseiko.com/product/139/"&gt;旭精工 ドロップメカセレクター AD-81P2&lt;/a&gt;）を購入して支払機を制作しようとしたことがありますが、まだ実際の展示には繋がっていません。即売会での展示企画として実施するのは今回の &lt;strong&gt;無人販売注文システム&lt;/strong&gt; が初めてです。&lt;/p&gt;
&lt;h3 id="_3"&gt;補助輪のこと&lt;/h3&gt;
&lt;p&gt;無人販売企画を行う場合、その環境によって利用できる手段や注意すべき点が大きく変わります。特に、来場者がどれほど悪意ある行動&lt;sup id="fnref:malicious"&gt;&lt;a class="footnote-ref" href="#fn:malicious" title="不正に商品を持ち去る、過少な支払いを行う、ブースの金品を盗むなど。"&gt;1&lt;/a&gt;&lt;/sup&gt;をとる可能性があるか検討することは非常に重要です。これによって、田舎の無人野菜直売所と堅牢な自動販売機のどちらを利用すべきかが決まりますし、企画にかけるべき予算の幅が変化します。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;無人販売所は、多くの前提や条件でどのように実現できるかが決まります。このような懸念要素には、大きく分けて「来場者」「支払い方法」「作品の種類」があるでしょう。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://news.amane.moe/issues/26-1119829"&gt;あまねけ！ニュースレター #26&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;現金を使わずに電子版のみ販売するような場合なら、手法はもっと単純化できるでしょう。電子マネーやクレジットカードによる支払いとダウンロード時の検証を組み合わせることで、通貨の選別や商品の排出をこなす物理的な装置がなくともセキュリティを実現できるからです。ただし、このケースは単に通販サイトで商品を購入するのと原理的には変わりません。来場者の体験を向上させるには、物理的な見本誌の設置や即売会先行販売（または限定販売）のようなメリットを用意したり、 &lt;em&gt;お祭り性&lt;/em&gt; に依拠した企画を併用する必要があります。&lt;/p&gt;
&lt;p&gt;一方、現金を使ったり、物理的な媒体&lt;sup id="fnref:physical"&gt;&lt;a class="footnote-ref" href="#fn:physical" title="電子版か物理版かを選択できるような書籍作品はもちろん、キーホルダーや百合フイルムなどの電子化できないグッズ類を含みます。"&gt;2&lt;/a&gt;&lt;/sup&gt;で販売する場合はもう少し深い検討が必要です。来場者の善良さに強い仮定を置けば、商品と貯金箱を放置して無人販売所とすることもできますが、仮定に対する根拠がなければ現実的とはいえません。貯金箱が持ち去られないようにワイヤーで繋いでいたとしても、適切な対価を支払って商品を持ち出したことを保証するのは困難です。&lt;/p&gt;
&lt;p&gt;そのため、十分な判断材料のない状態で安全な無人販売企画を実現するには、自動販売機のような構造を導入するほかありません。しかし、自動販売機の導入には比較的大きなコスト（数万円～十数万円）がかかるため、最低限のセキュリティから少しずつ導入していきたいのも事実です。&lt;/p&gt;
&lt;p&gt;そこで、変態美少女ふぃろそふぃ。では &lt;em&gt;補助輪付き&lt;/em&gt; の無人販売企画を検討しています。ここでいう「補助輪付き」とは、無人販売企画を行っているブースの隣で、来場者からは一見すると関係のないサークルを装って監視に入ることを指しています。つまり、一方のブースを無人販売所のように仕上げつつ、完全な無人では実現の難しい部分をもう一方のブースでカバーするという形態です。文学フリマ東京では申し込み時に連続した2ブースを取得できる&lt;sup id="fnref:fee"&gt;&lt;a class="footnote-ref" href="#fn:fee" title="もちろん出店料も倍です。"&gt;3&lt;/a&gt;&lt;/sup&gt;ため、比較的簡単に実現できます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="注文用のタブレット端末が真ん中に置かれた左側の無人販売ブースと、作品紹介フローチャートの無料配布および「ふみきり」作品解説と「機械ネコ」の考察についてのポスター展示を行った右側の有人ブース" height="563" src="/images/bunfree34/stabilisers.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;もちろんこれは &lt;em&gt;補助輪付き&lt;/em&gt; という言葉の通り、厳密には無人販売を実現できているとはいえません。それでも、本来は来場者への強い信頼が必要な手法を少しずつ安全に試行できます。今回の無人販売注文システムの場合、注文と仮想通貨による支払いまでは無人で行えますが、現金による支払いと商品の受け渡しにはまだ人手が必要です。これが「補助輪」の意味するところであり、あくまで中途の過程としての企画であることを忘れてはいけません。&lt;/p&gt;
&lt;h2 id="_4"&gt;無人販売注文システムについて&lt;/h2&gt;
&lt;p&gt;先述の通り、今回の無人販売注文システムは &lt;em&gt;補助輪付き&lt;/em&gt; の無人販売であり、実際には有人の展示です。このシステムは現金計数機能と商品引き渡し機能――つまり、普通の自動販売機にあるべき2つの特徴を備えていません。しかし、注文機能と注文を識別可能な仮想通貨決済機能を備えており、今後より強力な無人販売注文システムに発展できる可能性があります。&lt;/p&gt;
&lt;h3 id="_5"&gt;注文アプリ（タブレット）のこと&lt;/h3&gt;
&lt;p&gt;今回の無人販売注文システムで使用した注文アプリ（コードネーム: nightingale）は、僕が覚えたての&lt;a href="https://flutter.dev/"&gt;Flutter&lt;/a&gt;で実装したほとんど書き捨てに近い内容のAndroidアプリです。次回以降も同様の構成で無人販売企画を展開する場合は、まずこのアプリを作り直すところから始まるでしょう。&lt;/p&gt;
&lt;h4 id="_6"&gt;つかいかたについて&lt;/h4&gt;
&lt;p&gt;来場者から見た無人販売注文システムは、見本誌に囲まれた台の上に置かれたタブレットで動くアプリそのものです。来場者はタブレットで注文したあと、支払いを済ませて売り子から商品を受け取ります。より具体的には、以下の動画のように注文アプリから注文を行い、隣のブースで商品を受け取るという流れです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;注文アプリで注文を行う&lt;ol&gt;
&lt;li&gt;注文開始ボタンを押す&lt;/li&gt;
&lt;li&gt;商品を選択してカートに入れる&lt;/li&gt;
&lt;li&gt;支払い方法を選択する&lt;/li&gt;
&lt;li&gt;注文を確定する&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;支払いを行う&lt;ul&gt;
&lt;li&gt;現金 &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; 隣のブースで&lt;/li&gt;
&lt;li&gt;Monero &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; 任意の場所で&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;隣のブースで商品を受け取る&lt;/li&gt;
&lt;/ol&gt;
&lt;video controls width="1280" height="800" src="/images/bunfree34/nightingale.webm"&gt;&lt;/video&gt;

&lt;p&gt;&lt;cite&gt;動画内の画像（「光速感情デラックス」表紙・ポストカード宛名面デザイン、「先輩、今日もいいですか」表紙、「花・カフェ・宝くじ」表紙）はそれぞれ&lt;a href="https://twitter.com/gomafu_warabi"&gt;ごまふわラビ&lt;/a&gt;によって&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされています。&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;Isabella the Monero Girlは何らかのライセンスの下で提供されているものではありません。&lt;/cite&gt;&lt;/p&gt;
&lt;h4 id="monero"&gt;Moneroでの決済について&lt;/h4&gt;
&lt;p&gt;nightingaleの最も大きな特徴は、&lt;a href="https://www.getmonero.org/"&gt;Monero&lt;/a&gt;（XMR）での支払いに対応しているという点でしょう。Moneroとは、本人以外が保有額や取引履歴を追跡できない匿名性の高い暗号資産のひとつです。低い決済手数料で比較的速く送金できるため、あまねけ！や変態美少女ふぃろそふぃ。でも寄付の決済手段として採用しています。&lt;/p&gt;
&lt;p&gt;近年、同人誌即売会で&lt;a href="https://squareup.com/jp/ja/hardware/terminal"&gt;Square ターミナル&lt;/a&gt;などのクレジットカード・電子マネー決済端末が導入されるケースが増えており、非常に便利なキャッシュレス決済の普及を喜ぶ声も多いです。しかし、同人誌のように比較的 &lt;em&gt;センシティブ&lt;/em&gt; な購入履歴を、決済サービスや電子マネーの運営企業に引き渡すことに対する危機感を忘れてはなりません。また、キャッシュレス決済の便利さの裏で、決済手数料や出金手数料の名目でサークルの取り分が減っているのも決して無視できないはずです。&lt;/p&gt;
&lt;p&gt;Moneroを利用すれば、注文に対する支払いが行われた事実を検証しつつ、誰が支払ったかを秘匿できます。また、送金手数料は支払い側が負担するシステムなのでサークルの取り分が減ることもありません。一見すると購入者に負担を強いる無理な言い分に見えるかもしれませんが、サークルが決済手数料を負担するために &lt;em&gt;キリよく&lt;/em&gt; 100円値上げするケースを考えれば、むしろ支払う手数料が明快になって得をするはずです。&lt;/p&gt;
&lt;p&gt;nightingaleでは、注文確認時点のXMR-JPYの為替レートをその場で取得して、1円未満の差を四捨五入した支払額を提示します。支払額はこの時点で固定され、その後の変動は反映されません。注文から1時間以内に商品を受け取るルールを設定したので、為替変動幅はそれほど大きくならないという想定です&lt;sup id="fnref:coinpayments"&gt;&lt;a class="footnote-ref" href="#fn:coinpayments" title="注文時点の為替レートで支払額を固定して、一定時間内に支払いを完了することを求める方式は、coinpaymentsなどの仮想通貨決済代行でも採用されています。"&gt;4&lt;/a&gt;&lt;/sup&gt;。実際の支払い時点でレートを確定することもできますが、支払額の算出処理が煩雑になる割に効果は薄いだろうと判断しました。&lt;/p&gt;
&lt;h4 id="_7"&gt;注文確定について&lt;/h4&gt;
&lt;p&gt;nightingaleの重要な特徴は、決済手段だけではありません。注文を識別するためのトークンの発行方法として、安全かつ便利な &lt;strong&gt;注文カード方式&lt;/strong&gt; を採用しています。&lt;/p&gt;
&lt;p&gt;注文のタイミングと商品を引き渡すタイミングが異なる場合は、注文の主体を識別できる状態にする必要があります。通販サイトでは、IDとパスワードの組み合わせでログインしてもらうことで誰が注文したかを識別できますし、ユーザー登録せずに購入できるサイトでも、メールアドレスや電話番号を入力させるケースが多いでしょう。これによって、注文者（支払い者）が意図した住所に商品を配送することができます。&lt;/p&gt;
&lt;p&gt;同人誌即売会であれば、注文時に名前やメールアドレス、SNSのアカウントを紐付けると簡易的な認証を実現できます。主に知識要素としての運用が考えられますが、少し手間をかければ所持要素として利用することも可能です。具体的には、商品を受け取るブースで身分証明書、秘密情報が記載されたメール、SNSのプロフィール画面や秘密情報が記載されたチャット画面を提示すれば、特定の注文に紐付いた注文者だと証明できます。&lt;/p&gt;
&lt;p&gt;しかし、これらの紐付けは同人誌即売会の開催よりも前、あるいはブースから離れた場所でDMなどを用いて予約（取り置き）する際に行うケースがほとんどですし、全く面識のないサークル-来場者間で利用されることはそう多くありません&lt;sup id="fnref:toriokini"&gt;&lt;a class="footnote-ref" href="#fn:toriokini" title="サークル-来場者間での取り置きを仲介するトリオキニなどのサービスは存在します。"&gt;5&lt;/a&gt;&lt;/sup&gt;。今回のような無人販売注文システムでは、その場で名前やメールアドレスといった情報を入力するのは手間がかかりますし、知らないサークルに個人情報を渡すことに抵抗を感じる人もいるでしょう。&lt;/p&gt;
&lt;p&gt;個人情報を使用するのに抵抗があれば、その場でランダムな秘密情報（合言葉）を発行・選択して&lt;sup id="fnref:sushi"&gt;&lt;a class="footnote-ref" href="#fn:sushi" title="元気寿司などでは、発券時に記号を選択して呼び出し時に入力するシステムが採用されています。"&gt;6&lt;/a&gt;&lt;/sup&gt;受け渡し時に確認するような方式を採用できます。この方式の最大の欠点は、注文時に秘密情報を書き留めておかないと忘れてしまう可能性が高い点でしょう。注文時に秘密情報を渡したければ、今度は筆記用具かレシートプリンタを置く手間が生まれてしまいます。&lt;/p&gt;
&lt;p&gt;そこで、今回の注文システムでは、番号が印字された注文カードを注文に紐付けることでこれらの問題を解決します。数桁の番号程度なら入力にも手間がかかりませんし、個人情報を渡さずに済みますし、番号を覚えておく必要もありません。必要なのは、事前に用意した共通デザインの注文カード（名刺印刷サービスを活用できます）と、注文カードに番号を印字するスタンプだけです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="注文カード（左側は注文手順を示す表面で、右側は数字が印字された裏面）" height="589" src="/images/bunfree34/ordercard.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;注文者が持っているカードの番号、注文アプリに入力された番号、ブースに持参したカードの番号が全て一致していれば、注文を識別できます。現金決済ならその場で支払いを行ってから、Monero決済なら支払いを確認してから商品を引き渡すことで一連の注文フローは完了です。これは、原理上&lt;a href="https://ja.wikipedia.org/wiki/Bearer%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3"&gt;Bearerトークン&lt;/a&gt;のような認証方法といえるでしょう。&lt;/p&gt;
&lt;p&gt;なお、この番号は注文アプリに手で直接入力する必要があるため、&lt;a href="https://ja.wikipedia.org/wiki/Damm%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0"&gt;Dammアルゴリズム&lt;/a&gt;によるチェックディジットを採用しています。1桁の誤りや2桁の入れ替えなど、見間違いや押し間違いによる不一致もある程度防げるようにしました。&lt;/p&gt;
&lt;h4 id="_8"&gt;キャンセルについて&lt;/h4&gt;
&lt;p&gt;nightingaleは、 &lt;em&gt;冷やかし&lt;/em&gt; にも優しいデザインを心がけています。つまり、注文開始直後から注文完了直前まで、いつでも右上の「 &lt;img alt=":no_entry_sign:" class="emoji" height="16" src="/emojis/1f6ab.png" width="16"&gt; やめる」ボタンを押して注文を中止することができます。注文に戻るよう引き留めるしつこいメッセージもなく、一度「はい」を押せば最初の画面に戻る仕組みです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="「おかいものをやめますか？」と中止を確認するキャンセルダイアログ" height="469" src="/images/bunfree34/cancel.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;即売会で無人展示企画を行う場合は、購入するつもりはないものの目新しさから単に触ってみる人も多いため、途中で離脱しやすいデザインにする必要があります。いつでもキャンセルできると提示しておけば安心感を与えられますし、いろいろな人に気軽な気持ちで注文アプリを触ってもらうことができます（突貫工事とはいえせっかく作ったので使ってもらうのが第一です）。&lt;/p&gt;
&lt;p&gt;僕にもう少し商売気があれば、一度触ったら離脱しにくいデザインにして（流れで、空気で、罪悪感で）購入させるデザインに仕上げることもできたでしょう。しかし、本当に心から買う気がない人は途中の画面のまま放置してその場を去ってしまいますし、むしろ無人ブースの世話を焼く手間が増えるだけだと判断してやめました。&lt;/p&gt;
&lt;h3 id="_9"&gt;注文サーバーのこと&lt;/h3&gt;
&lt;p&gt;注文サーバー（コードネーム: nightperch）は、nightingaleからの注文を受け付けて記録するためのもので、注文アプリとは逆に手癖で書かれた&lt;a href="https://www.tornadoweb.org/"&gt;Tornado&lt;/a&gt;製の何かです。中身は単純にリクエストを検証してSQLiteを読み書きする程度のもので、次があればFastAPIとかでササッとやりたいなと思っています。&lt;/p&gt;
&lt;h4 id="_10"&gt;機能&lt;/h4&gt;
&lt;p&gt;nightperchでは以下のエンドポイントを提供しています。注文者が使う機能は簡単なHTMLを返す人間向け（ブラウザ向け）のもので、nightingale用のエンドポイントはJSON形式でやり取りを行うAPIスタイルのインターフェースです。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;エンドポイント&lt;/th&gt;
&lt;th&gt;機能&lt;/th&gt;
&lt;th&gt;利用者&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GET /&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;注文番号を入力するフォームを表示します&lt;/td&gt;
&lt;td&gt;注文者&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GET /order/:order_id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;注文の合計金額と決済手段を表示します&lt;/td&gt;
&lt;td&gt;注文者&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST /order/:order_id&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;注文番号が &lt;code&gt;order_id&lt;/code&gt; の注文を作成します&lt;/td&gt;
&lt;td&gt;nightingale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GET /soldout&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;売り切れた商品の情報をJSONで返します&lt;/td&gt;
&lt;td&gt;nightingale&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;nightperchは主にnightingaleが注文可能な商品を表示し、注文を作成するために用意されたサーバーですが、注文者が自らの注文を確認する機能も兼ねています。これは、Monero決済を選択した際に必須の機能です。&lt;/p&gt;
&lt;p&gt;&lt;img alt="nightperchの注文問い合わせフォーム" height="300" src="/images/bunfree34/nightperch.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;Moneroは匿名性の高い暗号資産であり、ウォレットアドレスを知っている他人はもちろん、支払いを受け取った本人でさえもどこから支払いが行われたのかを識別することができません（この点でビットコインなどとは大きく異なります）。しかし、注文に対する支払い手段としてMoneroを採用した場合は、どの注文に対して支払われたのかを識別する必要があります。&lt;/p&gt;
&lt;p&gt;このような支払いと注文を紐付けるために、支払い者がトランザクションを暗号化した鍵そのものか、その鍵から生成した署名を提示して支払いを証明できます（&lt;a href="https://www.getmonero.org/resources/user-guides/prove-payment.html"&gt;payment proof&lt;/a&gt;）。この鍵はトランザクションを復号して内容を確認することしかできないので、渡しても問題はありません。しかし、支払いを証明してもらう側から見ると、証明のたびにランダムなデータに対する署名を要求するフローの方が安全です。&lt;/p&gt;
&lt;p&gt;しかし、この方式では支払い後に毎回何らかの手段で鍵や署名を送信する必要があり、注文フローが煩雑になりがちです。クレジットカードを利用したときにボールペンで署名するのさえ面倒なのに、支払うたびに署名を生成してショップごとに違うフォームから送信……なんて想像したくもありません。&lt;/p&gt;
&lt;p&gt;そのため、Moneroには支払い先のアドレスに8バイトの支払いIDを自由に埋め込むことができる&lt;a href="https://monerodocs.org/public-address/integrated-address/"&gt;integrated address&lt;/a&gt;というフォーマットが用意されています。支払いIDは8バイトですから、1つのアドレスで18.4×10&lt;sup&gt;18&lt;/sup&gt;個くらいの注文を受け付けられます。IPv4が4バイト、UUIDが15バイトくらい、IPv6が16バイトなので余裕はそれなりにあるでしょう。nightperchでもintegrated addressを採用しており、注文に紐付いた個別の支払い先アドレスを注文者に提示できるようにしています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="nightperchによる支払い先アドレスの表示" height="500" src="/images/bunfree34/monero.png" width="400"&gt;&lt;/p&gt;
&lt;p&gt;支払い証明は同じウォレットアドレスへの支払いを識別する仕組みでしたが、integrated addressは支払い先のアドレスを分けることによって支払いを識別できるようにする方法です。つまり、個別の注文とintegrated addressを紐付けて、各アドレスに着金したら支払いが完了したとみなせます。&lt;/p&gt;
&lt;p&gt;ちなみに、&lt;a href="https://monerodocs.org/public-address/subaddress/"&gt;subaddress&lt;/a&gt;を使ってもintegrated addressと同様の処理を実現できるものの、アドレスの生成に秘密鍵が必要なので取り回しが悪いです。サーバーで自動的に注文と紐付けるというよりも、個人がPCやスマホで1つずつ発行して支払いを依頼するようなフローに向いています。integrated addressは同じウォレットアドレスのバリエーションなので、複数回の支払いが同じウォレットに送られていることを識別できますが、subaddressはお互いに関連のあるアドレスかどうか識別できないという差もあります（一貫性と匿名性のトレードオフともいえます）。&lt;/p&gt;
&lt;h4 id="_11"&gt;ネットワーク&lt;/h4&gt;
&lt;p&gt;nightperchはnightingaleと注文者の両方が利用する設計のため、サーバーの設置場所にかかわらずタブレットが属するネットワーク（ブースネットワーク）からインターネットに出られるようにする必要があります。大きく分けて、ブースネットワークにサーバーを設置してインターネットから参照できるようにするか、外部にサーバーを設置してブースネットワークから参照できるようにするか、という2つの方針が考えられるでしょう。&lt;/p&gt;
&lt;p&gt;今回の注文システムでは、ブースに置いた&lt;a href="https://www.lenovo.com/jp/ja/notebooks/thinkpad/x-series/ThinkPad-X13-Yoga/p/22TPX13X3Y1"&gt;ThinkPad X13 Yoga Gen 1&lt;/a&gt;でnightperchサーバーを立てて、インターネットから参照できるようにする方式を採用しました。これは、nightingaleとnightperchをネットワーク的に近い位置に保ちたかったのと、モバイル回線などの不調でブースネットワークからインターネットを参照できなくても、注文システムが影響を受けないようにすることをねらった選択です。&lt;/p&gt;
&lt;p&gt;&lt;img alt="nightingale(KC-T302DT) - モバイルホットスポット - Windows - portproxy - nightperch(WSL)" height="400" src="/images/bunfree34/network1.png" width="800"&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;Windows 11のロゴは何らかのライセンスの下で提供されているものではありません。著作権上、あるいは商標権上の制限を受ける可能性があります。&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;ThinkPadとタブレットは、&lt;a href="https://support.microsoft.com/ja-jp/windows/%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB-%E3%83%9B%E3%83%83%E3%83%88%E3%82%B9%E3%83%9D%E3%83%83%E3%83%88windows-pc-%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B-c89b0fad-72d5-41e8-f7ea-406ad9036b85#WindowsVersion=Windows_11"&gt;モバイルホットスポット&lt;/a&gt;を通じて接続しました。タブレットからWi-Fiで接続すると、プライベートIPアドレス（多くのケースで &lt;code&gt;192.168.137.1&lt;/code&gt; のようです）でWindows側にアクセスできます。さらに、以下のコマンドでWindowsとWSLを接続すれば、8000番ポートでnightperchと通信できるようになります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;$wsl2Address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;wsl&lt;/span&gt; &lt;span class="n"&gt;-e&lt;/span&gt; &lt;span class="n"&gt;hostname&lt;/span&gt; &lt;span class="n"&gt;-I&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="k"&gt;ForEach&lt;/span&gt;&lt;span class="n"&gt;-Object&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nv"&gt;$_&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nb"&gt;New-NetFireWallRule&lt;/span&gt; &lt;span class="n"&gt;-DisplayName&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;WSL 2 Firewall Unlock&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;-Direction&lt;/span&gt; &lt;span class="n"&gt;Inbound&lt;/span&gt; &lt;span class="n"&gt;-LocalPort&lt;/span&gt; &lt;span class="n"&gt;8000&lt;/span&gt; &lt;span class="n"&gt;-Action&lt;/span&gt; &lt;span class="n"&gt;Allow&lt;/span&gt; &lt;span class="n"&gt;-Protocol&lt;/span&gt; &lt;span class="n"&gt;TCP&lt;/span&gt;
&lt;span class="n"&gt;netsh&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exe&lt;/span&gt; &lt;span class="n"&gt;interface&lt;/span&gt; &lt;span class="n"&gt;portproxy&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="n"&gt;v4tov4&lt;/span&gt; &lt;span class="n"&gt;listenaddress&lt;/span&gt;&lt;span class="p"&gt;=*&lt;/span&gt; &lt;span class="n"&gt;listenport&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="n"&gt;8000&lt;/span&gt; &lt;span class="n"&gt;connectaddress&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$wsl2Address&lt;/span&gt; &lt;span class="n"&gt;connectport&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="n"&gt;8000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;現状確認はこんな感じです:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;netsh&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exe&lt;/span&gt; &lt;span class="n"&gt;interface&lt;/span&gt; &lt;span class="n"&gt;portproxy&lt;/span&gt; &lt;span class="n"&gt;show&lt;/span&gt; &lt;span class="n"&gt;v4tov4&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ファイアウォールと転送設定の削除はこんな感じです:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;netsh&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exe&lt;/span&gt; &lt;span class="n"&gt;interface&lt;/span&gt; &lt;span class="n"&gt;portproxy&lt;/span&gt; &lt;span class="n"&gt;delete&lt;/span&gt; &lt;span class="n"&gt;v4tov4&lt;/span&gt; &lt;span class="n"&gt;listenport&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="n"&gt;8000&lt;/span&gt; &lt;span class="n"&gt;listenaddress&lt;/span&gt;&lt;span class="p"&gt;=*&lt;/span&gt;
&lt;span class="nb"&gt;Remove-NetFireWallRule&lt;/span&gt; &lt;span class="n"&gt;-DisplayName&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;WSL 2 Firewall Unlock&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;インターネットからnightperchを参照する経路については、モバイル回線からSSHトンネルを掘って通信できるようにしました。この経路を使って &lt;code&gt;https://pay.hentaigirls.net/&lt;/code&gt; というURLからアクセスしてもらえば、注文の検索や支払い先アドレスの表示を行えます（今は使えません）。中継地が多いですが、ブラウザでの表示速度に大きな問題は感じませんでした。ただし、後述の通り一時的な回線断による不調が長引いたので、安定性の面で問題がありそうです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="注文者 - Cloudflare - NGINX - SSH（モバイル回線） - Windows - portproxy - nightperch(WSL)" height="600" src="/images/bunfree34/network2.png" width="800"&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;Cloudflare、NGINX、Windows 11の各ロゴ、Isabella the Monero Girlは何らかのライセンスの下で提供されているものではありません。著作権上、あるいは商標権上の制限を受ける可能性があります。&lt;/cite&gt;&lt;/p&gt;
&lt;h2 id="_12"&gt;気付き・反省について&lt;/h2&gt;
&lt;p&gt;この無人販売注文システムは、暗号資産による決済や分かりやすい注文フローを採用した革新的なシステムとして設計されましたが、まだまだ反省点が残っています。&lt;/p&gt;
&lt;p&gt;まず、注文確定時に必要な注文カードを見つけるのが難しかった点が挙げられます。これはnightingaleやnightperchの実装不備ではなく、どちらかといえばブース上の物理的配置の問題です。注文アプリを入力しやすい高さに載せるための台が狭く、注文カードを置くスペースがなかったため、やむなく低い机の上に置いていました。そのため、タブレットに注目している注文者の視線に入りにくかったと考えられます。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/bunfree34/pre-unattended.jpg"&gt;&lt;img alt="白いクロスをかけた長机の上に置かれている、注文用のタブレット端末、10冊以上の見本誌、呼び出し用の非常ボタン、小さな赤い鳥居" height="540" src="/images/bunfree34/pre-unattended_thumb.jpg" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;nightingale自身の不備としては、注文番号入力後に押す &lt;img alt=":ballot_box_with_check:" class="emoji" height="16" src="/emojis/2611.png" width="16"&gt; がテンキーに埋もれてしまって見にくかった点があります。このあたりは&lt;a href="https://pub.dev/packages/numeric_keyboard"&gt;ライブラリ&lt;/a&gt;からそのままはめ込んだ部分で、まぁ次は大きなOKボタンを下に置けばいいでしょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="注文確定時に注文番号を入力するダイアログ" height="469" src="/images/bunfree34/numpad.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;また、注文完了後にOKボタンを押さずに放置してしまうケースがあったので、数秒後に最初の画面に戻るよう実装すべきだと思いました。どの画面でも一定時間放置したらキャンセル扱いにしてもいいでしょう。&lt;/p&gt;
&lt;p&gt;次回以降に実装したいものとして、以下のようなアイデアがあります。もっと面白いアイデアがあったら&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;から教えてください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最初の画面でつかいかたを紹介するスライドを流す&lt;/li&gt;
&lt;li&gt;商品をランダムに選べるようにする&lt;/li&gt;
&lt;li&gt;商品を全部まとめて注文できるようにする&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/bunfree-great-wall/#_1"&gt;2択の質問&lt;/a&gt;をいくつか表示して商品をおすすめできるようにする&lt;/li&gt;
&lt;li&gt;商品の説明をmarqueeで流す&lt;/li&gt;
&lt;li&gt;試し読みできるようにする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;nightperchの不備としては、サーバーの実装自体というよりも設置場所に問題がありました。無人販売注文システムがインターネットに出られなくても独立して注文処理を行えるように、ブースに置いたノートPCでサーバーを立ち上げていたのは先述の通りです。しかし、モバイルホットスポット &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; Windows &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; WSLで2つのインターフェースを越える必要があり、当日はファイアウォールの設定をトチって手間取ってしまいました。&lt;/p&gt;
&lt;p&gt;また、Monero決済を利用する人に向けてnightperchを外部公開するために、モバイル回線を通してSSHトンネルを掘っていたこともトラブルを引き起こしました。ネットワークが不安定になると接続が切れてしまう上に、何度か再接続を繰り返したところSSHサーバが接続を受け付けなくなってしまったのです。&lt;/p&gt;
&lt;p&gt;そこからは&lt;a href="https://ngrok.com/"&gt;ngrok&lt;/a&gt;経由で外部公開していましたが、カスタムドメイン設定は&lt;a href="https://ngrok.com/pricing"&gt;有料プラン&lt;/a&gt;だったので、注文カードのQRコードが利用できない状況が続きました&lt;sup id="fnref:redirect"&gt;&lt;a class="footnote-ref" href="#fn:redirect" title="今思えばPage RulesでngrokのURLにリダイレクトすれば当座はよかったのかもしれない。"&gt;7&lt;/a&gt;&lt;/sup&gt;。Monero決済を使った人はいなかったので大きな実害はなかったものの、なかなか悔しい戦績です。&lt;/p&gt;
&lt;p&gt;そもそも、SSHトンネルとモバイル回線は特性上あんまり相性がよくないので、外部公開したいなら素直に外でサーバーを動かした方がいいですね。次はきっとそうしましょう。&lt;/p&gt;
&lt;p&gt;P.S: 来場者の不備としては、無人ブースへのはみ出しが多いという点がありました（もちろん今回に限りません）。無人だからといって誰かが設置した展示の前にはみ出していいわけではないんですが、隣のブースの方が楽しいから仕方ないのかもしれません。監視カメラとか置いてもあんまり意味ないんだな～と毎回思っています。&lt;/p&gt;
&lt;h2 id="_13"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;同人誌即売会で無人販売を行うには、当日の環境や商品の形態、決済手段に応じた個別の設計が必要です。&lt;/li&gt;
&lt;li&gt;匿名性の高いMonero決済や使いやすい注文カード方式を取り入れた無人販売注文システムを作りました。&lt;/li&gt;
&lt;li&gt;注文システムは、Flutterで書かれた注文アプリとPython（Tornado）で書かれた注文サーバーで構成されています。&lt;/li&gt;
&lt;li&gt;面白くてためになるお話が収録された「&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;」が発行されました。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:malicious"&gt;
&lt;p&gt;不正に商品を持ち去る、過少な支払いを行う、ブースの金品を盗むなど。&amp;#160;&lt;a class="footnote-backref" href="#fnref:malicious" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:physical"&gt;
&lt;p&gt;電子版か物理版かを選択できるような書籍作品はもちろん、キーホルダーや&lt;a href="/post/lily-letter-film/"&gt;百合フイルム&lt;/a&gt;などの電子化できないグッズ類を含みます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:physical" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:fee"&gt;
&lt;p&gt;もちろん出店料も倍です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:fee" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:coinpayments"&gt;
&lt;p&gt;注文時点の為替レートで支払額を固定して、一定時間内に支払いを完了することを求める方式は、&lt;a href="https://www.coinpayments.net/"&gt;coinpayments&lt;/a&gt;などの仮想通貨決済代行でも採用されています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:coinpayments" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:toriokini"&gt;
&lt;p&gt;サークル-来場者間での取り置きを仲介する&lt;a href="https://triokini.com/"&gt;トリオキニ&lt;/a&gt;などのサービスは存在します。&amp;#160;&lt;a class="footnote-backref" href="#fnref:toriokini" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:sushi"&gt;
&lt;p&gt;&lt;a href="https://news.amane.moe/issues/2-775595"&gt;元気寿司&lt;/a&gt;などでは、発券時に記号を選択して呼び出し時に入力するシステムが採用されています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:sushi" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:redirect"&gt;
&lt;p&gt;今思えば&lt;a href="https://support.cloudflare.com/hc/ja/articles/218411427"&gt;Page Rules&lt;/a&gt;でngrokのURLにリダイレクトすれば当座はよかったのかもしれない。&amp;#160;&lt;a class="footnote-backref" href="#fnref:redirect" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>Latin-1と0x85のなぞ</title><link href="https://ama.ne.jp/post/proton-calendar-0x85/" rel="alternate"/><published>2022-06-15T00:11:00+09:00</published><updated>2022-06-15T00:11:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-06-15:/post/proton-calendar-0x85/</id><summary type="html">&lt;p&gt;CR, LF, LS, PS, そしてNEL――&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#proton-calendar"&gt;Proton Calendarとは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#icalendar"&gt;iCalendarとは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#iso-8859-1"&gt;ISO-8859-1とは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#proton-calendar_1"&gt;Proton Calendarで起こっていたこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://proton.me/calendar"&gt;Proton Calendar&lt;/a&gt;は、&lt;a href="https://proton.me/"&gt;Proton&lt;/a&gt;が提供するプライバシーファーストのカレンダーサービスです。Proton Calendarを使うことで、スケジュールをエンドツーエンド暗号化で保護しつつ、他の人をカレンダーに招待したり、カレンダーをURLで共有したりすることができます。&lt;/p&gt;
&lt;p&gt;Proton CalendarからURLでカレンダーを共有する場合は、iCalendar形式でスケジュールをダウンロードできます。iCalendarは改行区切りのプレーンテキストでスケジュールを記述する形式であり、改行文字としてCRLFを使わなければなりません。そのため、それ以外の改行文字がある場合はCRLFに変換する必要があります。&lt;/p&gt;
&lt;p&gt;この記事では、iCalendarの特徴や改行文字から見た文字コードについて説明した上で、Proton CalendarのURL共有機能からダウンロードできるiCalendar形式のファイルが壊れてしまうというバグについて紹介します。なお、このバグは既に修正されているので現在は再現しません。巻末に添付した当時のiCalendarファイルを比較することで、どのようにバグが起きていたのかを体験できます。&lt;/p&gt;
&lt;h2 id="proton-calendar"&gt;Proton Calendarとは&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://proton.me/"&gt;Proton&lt;/a&gt;は、電子メールやカレンダー、クラウドストレージやVPN接続を提供するプライバシーファーストの統合サービスです。&lt;/p&gt;
&lt;p&gt;当初はProtonMailという名前で電子メールのみを提供するサービスだったこともあり、ごく最近まで &lt;code&gt;protonmail.com&lt;/code&gt; というドメインで運用されていました。その後、カレンダーやクラウドストレージなどの新たなサービスを追加していくうちに、プライバシー保護のエコシステムを目指すという方向性にシフトしていきます。そして、2022年5月にはサービス全体をProtonというブランドにまとめ上げ、サイトデザインやロゴを大きく刷新しました&lt;sup id="fnref:protonupdate"&gt;&lt;a class="footnote-ref" href="#fn:protonupdate" title="Updated Proton, unified protection"&gt;1&lt;/a&gt;&lt;/sup&gt;。同時に、メインのドメインもmailを含まない &lt;code&gt;proton.me&lt;/code&gt; に置き換えられています。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://proton.me/calendar"&gt;&lt;strong&gt;Proton Calendar&lt;/strong&gt;&lt;/a&gt; はProtonが提供するカレンダーサービスです。&lt;a href="https://calendar.google.com/"&gt;Google カレンダー&lt;/a&gt;のような一般的なカレンダーサービスとは異なり、登録された予定がエンドツーエンド暗号化で保護されているのが大きな特徴です。&lt;/p&gt;
&lt;p&gt;単に予定を悪意ある運営者から保護したいだけなら、データをローカルにのみ保存するカレンダーアプリを使えばいいかもしれません。しかし、自宅のデスクトップPCで登録した予定を外で確認したい場合には不便ですし、突然SSDがクラッシュして大事な予定が失われてしまうかもしれません。Proton Calendarなら、運営者にプライバシーを晒さずに予定を同期・保管できます。&lt;/p&gt;
&lt;p&gt;さらに、Proton Calendarには安全性を保ちつつカレンダーを共有する機能があります&lt;sup id="fnref:protoncalendarplus"&gt;&lt;a class="footnote-ref" href="#fn:protoncalendarplus" title="Mail Plusプラン以上の契約が必要です。"&gt;2&lt;/a&gt;&lt;/sup&gt;。共有レベルは「予定全体（Full）」または「予定の有無のみ（Limited）」から選択でき、専用のURLを介してiCalendar形式のファイルを共有できます。専用のURLとは、次のようなものです:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;https://calendar.proton.me/api/calendar/v1/url/E1KR01K_mSkB4xNfWKcWxPdBI-4XgM4_9L1lor6u_M4b3W3SnYTbDOER4DxkIoqdNC-XyXS90bN2i5LQ_8si-Q==/calendar.ics?CacheKey=azCo4bm52XVbcRaKJshNNQ%3D%3D&amp;amp;PassphraseKey=lVBEVmWy0xKQ8c6rXPkjMNnQkeCuVJ2bgTl-M9ny9DI%3D
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;カレンダーIDのようなもの: &lt;code&gt;E1KR01K_mSkB4xNfWKcWxPdBI-4XgM4_9L1lor6u_M4b3W3SnYTbDOER4DxkIoqdNC-XyXS90bN2i5LQ_8si-Q==&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;CacheKey: &lt;code&gt;azCo4bm52XVbcRaKJshNNQ==&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;PassphraseKey: &lt;code&gt;lVBEVmWy0xKQ8c6rXPkjMNnQkeCuVJ2bgTl-M9ny9DI=&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このURLから、僕がProton Calendarに登録しているカレンダーの1つを閲覧できます。前に&lt;a href="/post/url-fragment-in-e2ee/"&gt;URLにおけるフラグメントと鍵の受け渡し&lt;/a&gt;でお伝えしたとおり、URLを通じて鍵を渡す場合はフラグメントを使用すべきですが、今回はファイルを直接ダウンロードする必要があるので使えません。フラグメントで鍵を受け渡す場合は、JavaScriptによる復号処理が必要となるからです。&lt;/p&gt;
&lt;p&gt;もちろん、&lt;a href="https://proton.me/blog/zero-access-encryption"&gt;ゼロアクセス暗号化&lt;/a&gt;のようなアーキテクチャが正常に運用されていれば大きな問題はないでしょう。&lt;/p&gt;
&lt;h2 id="icalendar"&gt;iCalendarとは&lt;/h2&gt;
&lt;p&gt;さて、先ほど示したURLからiCalendar形式のファイルをダウンロードすると、以下のようなテキストを得られます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;BEGIN:VCALENDAR
PRODID:-//Proton AG//ProtonCalendar 1.0.0//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:UTC
...
END:VTIMEZONE
BEGIN:VEVENT
UID:fPDE6TvVtlU-ZKW0agLtxHMTudmJ@proton.me
DTSTAMP:20210819T234541Z
SUMMARY:ホシノ
DTSTART;VALUE=DATE:20210102
DTEND;VALUE=DATE:20210103
SEQUENCE:0
RRULE:FREQ=YEARLY
STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
...
BEGIN:VEVENT
UID:lVrwGDF9KYqoY2kUbVFtfYjQMKJ7@proton.me
DTSTAMP:20211201T152307Z
SUMMARY:ナツ
DTSTART;VALUE=DATE:20201204
DTEND;VALUE=DATE:20201205
SEQUENCE:1
RRULE:FREQ=YEARLY
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;iCalendar&lt;/strong&gt; とは、&lt;a href="https://www.rfc-editor.org/rfc/rfc5545.html"&gt;RFC 5455&lt;/a&gt;で定義されたスケジュールの標準フォーマットです。 &lt;code&gt;XXX:YYY&lt;/code&gt; 形式のレコードが改行（CRLF: &lt;code&gt;\x0d\x0a&lt;/code&gt; ）区切りで記録されたプレーンテキストで、UTF-8がデフォルトのエンコーディングと規定されています。1行あたり最大75オクテットの制限があるため、改行直後にスペースまたはタブを入れることで前の行から継続することが可能です。&lt;/p&gt;
&lt;p&gt;さて、改行文字としてCRLFが名指しされているのはなかなか面倒ですね。LF単体やCR単体で改行するのが一般的なシステムを使っている場合、よく注意しないと簡単にCRLF以外の改行文字が混入してしまいます。しかも、改行文字を種類ごとに可視化できるエディタを使ったり、バイナリ形式で比較しなければ間違いに気付くのは難しいでしょう。&lt;/p&gt;
&lt;p&gt;また、改行文字として取り扱われるのはLF（ &lt;code&gt;\x0a&lt;/code&gt; ）やCR（ &lt;code&gt;\x0d&lt;/code&gt; ）だけではありません。Unicodeなら行区切り文字（LS: &lt;code&gt;U+2028&lt;/code&gt; ）と段落区切り文字（PS: &lt;code&gt;U+2029&lt;/code&gt; ）が使用できます&lt;sup id="fnref:lspsutf8"&gt;&lt;a class="footnote-ref" href="#fn:lspsutf8" title="UTF-8ならLSは \xe2\x80\xa8 、PSは \xe2\x80\xa9 とエンコードされます。"&gt;3&lt;/a&gt;&lt;/sup&gt;。これらの文字はLFやCRより使われる機会が少ないものの、iCalendar形式で記載する際はCRLFで（値としての改行なら &lt;code&gt;\\n&lt;/code&gt; で）置換する必要があります。&lt;/p&gt;
&lt;p&gt;さらに、大まかにLatin-1と呼ばれるコードページISO-8859-1では、 &lt;code&gt;\x85&lt;/code&gt;  がNext Line（NEL）と呼ばれる改行文字にマッピングされています。これはUnicodeにも引き継がれており、 &lt;code&gt;U+0085&lt;/code&gt; が同様にNELを表します。&lt;/p&gt;
&lt;h2 id="iso-8859-1"&gt;ISO-8859-1とは&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.iso.org/standard/28245.html"&gt;ISO/IEC 8859-1&lt;/a&gt;は、7ビットのASCIIコードを8ビット以上に拡張する独自仕様（いわゆる拡張ASCII）の乱立を受けてISOが開発した8ビットの文字集合です。ISO/IEC 8859-1では、C0領域と呼ばれる &lt;code&gt;0x00&lt;/code&gt; ～ &lt;code&gt;0x1f&lt;/code&gt; および &lt;code&gt;0x7f&lt;/code&gt; と、C1領域と呼ばれる &lt;code&gt;0x80&lt;/code&gt; ～ &lt;code&gt;0x9f&lt;/code&gt; には文字を定義しておらず、全部で191種類の英数字と記号を利用できます。&lt;/p&gt;
&lt;p&gt;このISO/IEC 8859-1の未使用領域65種全てに制御文字を割り当てたのが &lt;strong&gt;ISO-8859-1&lt;/strong&gt; です。Windowsでは、C1領域のマッピングが異なる&lt;a href="https://web.archive.org/web/20081218061641/http://www.microsoft.com/globaldev/reference/sbcs/1252.mspx"&gt;Windows-1252&lt;/a&gt;というコードページが定義されました。かつてはこれらのコードページを取り違えて解釈してしまうせいで、C1領域の記号を制御文字として扱ってしまうことも多かったようです。&lt;/p&gt;
&lt;p&gt;前述の通り、ISO-8859-1における &lt;code&gt;\x85&lt;/code&gt; は改行文字として扱われるNELという制御文字です。つまり、iCalendar形式で記載する場合はCRLF（ISO-8859-1でも &lt;code&gt;\x0d\x0a&lt;/code&gt; ）または &lt;code&gt;\\n&lt;/code&gt; に変換しなければなりません。ISO-8859-1は8ビットの文字集合なので、単に &lt;code&gt;\x85&lt;/code&gt; を &lt;code&gt;\x0d\x0a&lt;/code&gt; に置き換えるだけで事足ります。&lt;/p&gt;
&lt;p&gt;一方、UnicodeにおけるNEL（ &lt;code&gt;U+0085&lt;/code&gt; ）はUTF-8で &lt;code&gt;\xc2\x85&lt;/code&gt; とエンコードされるので、 &lt;code&gt;\x85&lt;/code&gt; を全てCRLFに置換してしまうと壊れてしまいます。 &lt;code&gt;U+....&lt;/code&gt; はUnicode上のコードポイントであり、UTF-8やUTF-16にエンコードして得られる実際のバイト列とは異なるものだからです。&lt;/p&gt;
&lt;h2 id="proton-calendar_1"&gt;Proton Calendarで起こっていたこと&lt;/h2&gt;
&lt;p&gt;Proton Calendarには、UTF-8で &lt;code&gt;\x85&lt;/code&gt; を含む文字があるとiCalendar形式のファイルが壊れてしまうというバグがありました。過去形なのは、6月1日にProtonサポートへ問い合わせてから、6月10日にはこのバグが既に修正されていたためです。&lt;/p&gt;
&lt;p&gt;僕が認識できたバグの内容は以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;初めて（十分に長い間を空けて）共有カレンダーのURLにアクセスした場合は、スケジュールがそのまま記録された完全なiCalendar形式のファイルが返ってくる。&lt;/li&gt;
&lt;li&gt;複数回（十分に長い間を空けず）共有カレンダーのURLにアクセスした場合は、UTF-8のシーケンスを無視して &lt;code&gt;\x85&lt;/code&gt; がCRLFに変換された状態の壊れたカレンダーが返ってくる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここで「UTF-8のシーケンスを無視して &lt;code&gt;\x85&lt;/code&gt; がCRLFに変換される」とは、以下のようなケースです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情&lt;/a&gt;をUTF-8でエンコードします。&lt;ul&gt;
&lt;li&gt;&lt;code&gt;\xe5\x85\x89&lt;/code&gt; &lt;code&gt;\xe9\x80\x9f&lt;/code&gt; &lt;code&gt;\xe6\x84\x9f&lt;/code&gt; &lt;code&gt;\xe6\x83\x85&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;光&lt;/code&gt; と &lt;code&gt;情&lt;/code&gt; が &lt;code&gt;\x85&lt;/code&gt; を含んでいるため、CRLFに変換されます。&lt;ul&gt;
&lt;li&gt;&lt;code&gt;\xe5\x0d\x0a\x89&lt;/code&gt; &lt;code&gt;\xe9\x80\x9f&lt;/code&gt; &lt;code&gt;\xe6\x84\x9f&lt;/code&gt; &lt;code&gt;\xe6\x83\x0d\x0a&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;このバイト列をUTF-8でデコードすると、余計な改行文字が挿入されてシーケンスが壊れてしまいます。&lt;ul&gt;
&lt;li&gt;&lt;code&gt;�\r\n�速感�\r\n&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;おそらく、カレンダーの情報をキャッシュに出し入れするタイミングで何らかの不適切な置換処理が走っており、2回目以降は置換によって壊れたカレンダーが返されるのでしょう。バグ修正後に詳細について尋ねてみたところ、次のような回答が得られました。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The issue was connected with a regex we execute on our backend side to force the line ending to be \r\n when returning the ICS.&lt;br&gt;
&lt;cite&gt;Protonサポートより&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;すると、カレンダー所有者のクライアントから受け取った暗号化済みのカレンダーをPassphraseKeyで復号するという単純な処理を想像していましたが、実際はキャッシュに置いたり復号済みのデータにちょっとした処理を行っているみたいですね。さらに質問してみたところ、Proton Calendar上のデータをiCalendar形式に変換してから、暗号化した状態でキャッシュに持っているそうです。おそらく、書き込む前か読み出した後に改行を置換するのでしょう。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The iCal data is generated from the ProtonCalendar events by decrypting all events using the query parameters from the link. Those query parameters are not stored backend side and only used during the API request processing. Once the data is generated, we do cache some encrypted components of the iCal data (using the CacheKey).&lt;br&gt;
&lt;cite&gt;Protonサポートより&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Proton Calendarのセキュリティモデルの概要については、&lt;a href="https://proton.me/news/protoncalendar-security-model"&gt;The Proton Calendar security model&lt;/a&gt;で読むことができます。共有カレンダーの性質と要件を満たすために、利便性を向上しつつプライバシーを保つアーキテクチャを採用しているようです。&lt;/p&gt;
&lt;p&gt;なお、問い合わせのために使った&lt;a href="https://calendar.proton.me/api/calendar/v1/url/jtmmn3ZUZvp0dN9MGCgZDaqT2rnThiasO8ZgkLl019iCuKsgjP_8MM0j9ft03NPe5FMOvbC4j5O2AAjBJsGtyw==/calendar.ics?CacheKey=saRdeK_zYdbIvrVvJsBVow%3D%3D&amp;amp;PassphraseKey=07dC1-MmG0EZ7pdleovz-3PTwYsBhcifU-M_DeDhSbk%3D"&gt;テスト用のカレンダー&lt;/a&gt;には、日本語では伝わりにくいと思って &lt;code&gt;⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞&lt;/code&gt; という文字列を含む予定を登録しました。これらはUTF-8で &lt;code&gt;\x85&lt;/code&gt; をふんだんに含む文字で、しかも英語圏でも比較的識別しやすそうです。&lt;/p&gt;
&lt;p&gt;現在は既にバグが修正されているため、当時の状況を再現したい場合は以下のファイルをお使いください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;壊れていないカレンダー: &lt;a href="/appendices/proton-calendar-0x85/test-former.ics"&gt;test-former.ics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;壊れているカレンダー: &lt;a href="/appendices/proton-calendar-0x85/test-latter.ics"&gt;test-latter.ics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_2"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;プライバシーファーストのカレンダーサービスである&lt;a href="https://proton.me/calendar"&gt;Proton Calendar&lt;/a&gt;を使うと、鍵情報を付与したURLを通してiCalendar形式でスケジュールを共有できます。&lt;/li&gt;
&lt;li&gt;iCalendarは改行区切りのレコードでスケジュールを記述する形式で、改行文字をCRLFに統一しなければいけません。&lt;/li&gt;
&lt;li&gt;Proton CalendarがURLでカレンダーを共有する際に改行文字を統一するプロセスにバグがあり、UTF-8のシーケンスを無視した不適切な改行が挿入されていました。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:protonupdate"&gt;
&lt;p&gt;&lt;a href="https://proton.me/news/updated-proton"&gt;Updated Proton, unified protection&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:protonupdate" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:protoncalendarplus"&gt;
&lt;p&gt;Mail Plusプラン以上の契約が必要です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:protoncalendarplus" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:lspsutf8"&gt;
&lt;p&gt;UTF-8ならLSは &lt;code&gt;\xe2\x80\xa8&lt;/code&gt; 、PSは &lt;code&gt;\xe2\x80\xa9&lt;/code&gt; とエンコードされます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:lspsutf8" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>文フリ34のふりかえり（ダウンロードシステム編）</title><link href="https://ama.ne.jp/post/bunfree34-cloudflare/" rel="alternate"/><published>2022-06-12T19:00:00+09:00</published><updated>2022-06-13T01:39:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-06-12:/post/bunfree34-cloudflare/</id><summary type="html">&lt;p&gt;たのしい文化祭ダウンロードシステムまとめ&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;電子版の配布方法について&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;メディア配布方式のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;ダウンロードリンク方式のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;電子書籍ストアのこと&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;光速感情デラックスのダウンロードシステムについて&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_7"&gt;制約と条件のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;実装のこと（共通パスワードの場合）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;実装のこと（リライトルールの場合）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cloudflare-workerskvr2"&gt;実装のこと（Cloudflare Workers+KV+R2の場合）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://bunfree.net/event/tokyo34/"&gt;第三十四回文学フリマ東京&lt;/a&gt;の新刊「&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;」は、配布用のポストカードに記載されたQRコードからPDF版をダウンロードできるシステム（ダウンロードリンク方式）を採用しました。実はEPUB版を頒布する計画も出ているのですが、まだ必要な作業が残っています。&lt;/p&gt;
&lt;p&gt;今回の配布方法を実装するには、いくつかの制約と特殊な条件を解決する必要がありました。この記事では、光速感情デラックスのダウンロードシステムの要件について、一般的なダウンロードリンク方式と比較しながら整理した上で、それらを&lt;a href="https://developers.cloudflare.com/workers/"&gt;Cloudflare Workers&lt;/a&gt;+&lt;a href="https://developers.cloudflare.com/workers/learning/how-kv-works/"&gt;KV&lt;/a&gt;+&lt;a href="https://developers.cloudflare.com/r2/"&gt;R2&lt;/a&gt;上で実装する流れについて紹介しようと思います。&lt;/p&gt;
&lt;h2 id="_2"&gt;電子版の配布方法について&lt;/h2&gt;
&lt;h3 id="_3"&gt;メディア配布方式のこと&lt;/h3&gt;
&lt;p&gt;私たちが電子版&lt;sup id="fnref:ebook"&gt;&lt;a class="footnote-ref" href="#fn:ebook" title="PDFファイルやテキストファイル、EPUBファイルはもちろん、複数のPNGファイルやJPGファイルをZIPファイルに固めたものを配布することさえできます。"&gt;1&lt;/a&gt;&lt;/sup&gt;を配布するとき、コンテンツが紙に記録された状態で頒布される &lt;em&gt;紙の本&lt;/em&gt; の特徴をできるだけ維持する方法が &lt;strong&gt;メディア配布方式&lt;/strong&gt; です。これは、BD-R(OM)やCD-R(OM)、(micro/mini)SDカードやUSBフラッシュドライブ、フロッピーディスクなどの持ち運びしやすいメディアにコンテンツを記録して頒布する方法です。&lt;/p&gt;
&lt;p&gt;即売会では、印刷版の場合と同様にコンテンツを記録したメディアを渡せば頒布が完了します。&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。&lt;/a&gt;では、&lt;a href="https://bunfree.net/event/tokyo28/"&gt;第二十八回文学フリマ東京&lt;/a&gt;にて&lt;a href="https://twitter.com/hentaigirlsnet/status/1125232976097210369"&gt;フロッピーディスクを頒布した回&lt;/a&gt;がありました&lt;sup id="fnref:floppy"&gt;&lt;a class="footnote-ref" href="#fn:floppy" title="当時はいろいろ切羽詰まっていて、ちゃんとメディアそのものの写真を撮る暇がなかったみたいです。隣のサークルさんが上げてくれた写真などではっきりとした姿を確認できます。"&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ボールチェーンが付いた黒色・オレンジ色・ピンク色のフロッピーディスクで配布された「flowline flower」" height="600" src="/images/bunfree34/floppy.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/bunfree34/flr-label.png"&gt;&lt;img alt="「flowline flower」フロッピーディスク版に貼付されていたラベル" height="600" src="/images/bunfree34/flr-label_thumb.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;フロッピーディスクのラベルデザインは&lt;a href="https://twitter.com/NTSC_J"&gt;ジェンガ2003&lt;/a&gt;と片桐天音によって&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされています。&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;メディア配布方式は、印刷版が持っている「その場で」そして「オフラインで」コンテンツを楽しめるという特徴を引き継いでいます。これは、以降に述べる他の方式と比較すると、頒布時点でメディアに全てのコンテンツが記録されているという点で非常に優秀です。全てのデータを読者自身で管理することで、読者は &lt;em&gt;信頼できないサークル&lt;/em&gt; からも購入できるようになりますし、サークル側もダウンロードシステムの維持・管理から解放されるという大きなメリットを享受できます。&lt;/p&gt;
&lt;p&gt;しかし、メディアそのものがコンテンツを表示するインターフェースを備えていない限り&lt;sup id="fnref:epaper"&gt;&lt;a class="footnote-ref" href="#fn:epaper" title="たとえば、数GB程度の記憶領域を持つ電子ペーパーが数百円で入手できるようになれば実現できます。"&gt;3&lt;/a&gt;&lt;/sup&gt;、ファイルを読み込んで内容を表示できるデバイスと、そのデバイスにメディアを読み込む手間が必要です。USBポートやメモリーカードリーダーを備えたノートPCを使っていればあまり負担を感じないかもしれませんが、スマートフォンで気軽にコンテンツを利用したい場合はかなり不便でしょう。&lt;/p&gt;
&lt;p&gt;そのため、最近ではメディア配布方式の利用シーンは大容量の画像集や法的懸念があるコンテンツなどに限られ、次のダウンロードリンク方式が利用されることが多くなっています。&lt;/p&gt;
&lt;h3 id="_4"&gt;ダウンロードリンク方式のこと&lt;/h3&gt;
&lt;p&gt;私たちが電子版を配布するとき、インターネットが広く普及している状況を最大限に利用してコンテンツをダウンロードしてもらう方法が &lt;strong&gt;ダウンロードリンク方式&lt;/strong&gt; です。これは、コンテンツの場所を示すURLやダウンロードに必要な秘密情報&lt;sup id="fnref:downloadurl"&gt;&lt;a class="footnote-ref" href="#fn:downloadurl" title="URLと秘密情報は分離されていることもありますし、URL内に（手で入力するには複雑で長い）秘密情報を含んだ状態でQRコードに記録されていることもあります。"&gt;4&lt;/a&gt;&lt;/sup&gt;を記載したメディア（ポストカードやパンフレットなど）を頒布し、購入した読者自身でコンテンツをダウンロードしてもらう方式です。&lt;/p&gt;
&lt;p&gt;ここでいうメディアは、印刷物としての紙やプラスチックシートなどはもちろん、メディア配布方式で一般的に利用されるSDカードなども含んでいます&lt;sup id="fnref:wastesdcard"&gt;&lt;a class="footnote-ref" href="#fn:wastesdcard" title="もちろん、数GB～数百GBを記録できるメディアにURLやパスワードだけを記録するのは無駄なので、通常は利用されません。"&gt;5&lt;/a&gt;&lt;/sup&gt;。ダウンロードリンク方式の最も重要な特徴はインターネットを利用してダウンロードできることであり、メディアそのものには完全なコンテンツが記録されていないという点で、メディア配布方式とは大きく異なります。&lt;/p&gt;
&lt;p&gt;もちろん、URLや秘密情報も人間の目が識別できる形式で印刷されている必要はなく、URLをQRコードとして記載したり、NFCタグを読み取ってリンクを開いてもらうようにすることもできます。QRコードやNFCタグを読み取る機能がないデバイスを使っている場合は、別のデバイスで読み取った上で転送するとよいでしょう。わずかに不便かもしれませんが、コンテンツそのものを送信するより簡単で省エネです。&lt;/p&gt;
&lt;p&gt;新刊「&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;」や準新刊「&lt;a href="https://hentaigirls.net/post/tokyo33/#_1"&gt;先輩、今日もいいですか&lt;/a&gt;」でも、ダウンロードリンク方式を採用しています。宛名面の左下に記載されているQRコードがダウンロードリンクです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="光速感情デラックス ポストカード（左側は裏面で、右側は表面）" height="750" src="/images/bunfree34/faster-emotion-deluxe_postcard.png" width="1014"&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;通信面および宛名面のデザインは&lt;a href="https://twitter.com/gomafu_warabi"&gt;ごまふわラビ&lt;/a&gt;によって&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされています。&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;ダウンロードリンク方式では、受け取ったメディアそのものにはコンテンツが記録されていないので、読者は一時的な障害や恒久的なリンク切れなどに備えて確実にファイルを入手しておく必要があります。メディア配布方式は印刷版の電子化にあたる方式ですが、ダウンロードリンク方式はむしろ印刷版との引換券のような性質を持っているからです。&lt;/p&gt;
&lt;p&gt;なお、ファイルを手元にダウンロードしたあとは、外形的にはメディア配布方式とほとんど差がありません。強いてメディア配布方式と異なる点を挙げるなら、入手したファイルを紛失しても再度ダウンロードできるかもしれない点、記録するメディアは読者自身で入手しなければならない点があるでしょう。&lt;/p&gt;
&lt;p&gt;また、サークル側はダウンロードシステムを確実に維持・管理する必要があり、場合によっては配布から一定期間でシステムを廃止する可能性がある旨を明記する必要があります。この点に注目すると、メディア配布方式は読者に負担を強いる方式、ダウンロードリンク方式はサークル側に負担を強いる方式ということができるかもしれません。&lt;/p&gt;
&lt;h3 id="_5"&gt;電子書籍ストアのこと&lt;/h3&gt;
&lt;p&gt;一般的なサークルが即売会で利用するには少しハードルが高いですが、電子書籍ストアやコンテンツ販売サイトが作品を無料配布できるクーポンを発行できる機能を持っていれば、そのクーポンを記載したメディアを頒布する形態を利用できます。&lt;/p&gt;
&lt;p&gt;たとえば、&lt;a href="https://booth.pm/"&gt;BOOTH&lt;/a&gt;の&lt;a href="https://booth.pm/booth_apps/secret_pass"&gt;シークレット公開&lt;/a&gt;を利用すると、URLと合言葉（パスワード）を知っている人だけに商品を公開できます。このURLとパスワードを頒布することで、サークル側はダウンロードシステムの維持・管理を避けつつ簡単にコンテンツをダウンロードしてもらえるでしょう。&lt;/p&gt;
&lt;p&gt;また、特定の作品にのみ利用できるギフト券を購入できるストアであれば、そのクーポンコードを使って頒布できるかもしれません。ただし、本来の目的とはかなり離れた使用方法なので、不便な部分があるのはもちろん、ストアによっては規約違反となる可能性があります。たとえば、同じ作品のギフト券について購入回数を制限していたり、有効期限が180日間～1年間と頒布に使うには短かったり、そもそもクーポンの転売を禁止している場合さえあります。&lt;/p&gt;
&lt;p&gt;なお、ダウンロードシステムとして特定のストアを利用した場合、そのサービスを利用できない読者を実質的に排除することになったり、ストアの閉鎖によってコンテンツが配布できなくなってしまう点には注意すべきでしょう。&lt;/p&gt;
&lt;h2 id="_6"&gt;光速感情デラックスのダウンロードシステムについて&lt;/h2&gt;
&lt;h3 id="_7"&gt;制約と条件のこと&lt;/h3&gt;
&lt;p&gt;&lt;a href="/post/bunfree34-postcard/"&gt;文フリ34のふりかえり（ポストカード編）&lt;/a&gt;では、光速感情デラックスの配布メディアの詳細についてお伝えしました。このポストカードの形式について検討すると、配布方法を決めるにあたって重要な以下の特徴を持っています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URLが &lt;strong&gt;推測可能&lt;/strong&gt; で、秘密情報を含んでいないこと&lt;/li&gt;
&lt;li&gt;メディア全体で共通の秘密情報を持って &lt;strong&gt;いない&lt;/strong&gt; こと&lt;/li&gt;
&lt;li&gt;メディアごとに異なる秘密情報を持って &lt;strong&gt;いる&lt;/strong&gt; こと&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方で、一般的なダウンロードリンク方式における配布メディアは、以下のような特徴を持っています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URLの &lt;strong&gt;推測が難しく&lt;/strong&gt; 、実質的に秘密情報を含んでいること&lt;/li&gt;
&lt;li&gt;メディア全体で共通の秘密情報を持って &lt;strong&gt;いる&lt;/strong&gt; こと&lt;/li&gt;
&lt;li&gt;メディアごとに異なる秘密情報を持って &lt;strong&gt;いない&lt;/strong&gt; こと&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一般的なダウンロードリンク方式における配布メディアは、費用を抑えるために共通の内容で印刷することが多く、その場合はURL自体を秘匿したり共通の秘密情報を配布するのが自然です。たとえば、 &lt;code&gt;https://example.com/pthc-book/BvTR3rPt&lt;/code&gt; というURLをQRコードで記載し、秘密情報として &lt;code&gt;16574894&lt;/code&gt; という文字列を人間の目が識別できる形式で記載すれば、全て同じ内容のポストカードのうち1枚を引き渡すだけで頒布が成立します。&lt;/p&gt;
&lt;p&gt;このメディアに対応するダウンロードシステムでは、  &lt;code&gt;https://example.com/pthc-book/BvTR3rPt&lt;/code&gt; というURLに対してパスワード入力画面を表示し、 &lt;code&gt;16574894&lt;/code&gt; という入力があればコンテンツを返すように実装すればよいでしょう。場合によっては、 &lt;code&gt;https://example.com/pthc-book/cWus4SqU&lt;/code&gt; という間違ったURLに対しても同じ画面を表示したり、パスワードの検証に時間をかけたりする&lt;sup id="fnref:heavyverify"&gt;&lt;a class="footnote-ref" href="#fn:heavyverify" title="システムがわざとレスポンスを遅くするよりも、Argon2などのリソース消費が大きくなるように設計されたアルゴリズムを使うべきです。"&gt;6&lt;/a&gt;&lt;/sup&gt;ことで、購入者以外がコンテンツを閲覧できないよう工夫する必要があるかもしれません。&lt;/p&gt;
&lt;p&gt;しかし、光速感情デラックスのポストカードは、一般的なダウンロードリンク方式における配布メディアの性質を備えていません。URLは&lt;a href="/post/bunfree34-general/"&gt;文フリ34のふりかえり&lt;/a&gt;でも示しているとおり &lt;a href="https://hentaigirls.net/book/faster-emotion-deluxe/"&gt;&lt;code&gt;https://hentaigirls.net/book/faster-emotion-deluxe/&lt;/code&gt;&lt;/a&gt; であり、作品タイトルや&lt;a href="https://hentaigirls.net/post/tokyo34/"&gt;告知記事&lt;/a&gt;から十分に推測できる文字列です。また、ポストカード自身には秘密情報が一切記載されていません。これは、無人販売企画の進行にあたって、ブースに置かれたポストカードを不正に持ち去ってもコンテンツを閲覧できないようにするための工夫です。&lt;/p&gt;
&lt;p&gt;唯一、秘密情報として利用できるのが印刷版チケットです。そのため、印刷版チケットに記載された変更用トークンを、PDF版のダウンロードパスワードとしても利用できるようにする必要があります。印刷版チケットは購入者が受け取るポストカードにのみ貼付されているものであり、他の人は閲覧できません。当初はここにダウンロード用の共通パスワードを記載する計画がありましたが、利用者が変更用トークンと区別できない可能性が高く、またシールの大きさ（約18mm×約20mm）も小さかったので断念しました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="光速感情デラックス 印刷版チケット" height="350" src="/images/bunfree34/ticket.jpg" width="300"&gt;&lt;/p&gt;
&lt;p&gt;この要件は、ポストカードの一部を空白にした状態で印刷し、後から回転印などでシリアルナンバーを打刻するような方式でも同様です。これらの頒布方法に対応するダウンロードシステムでは、1つのURLに対して複数の秘密情報を利用できるように設計しなければなりません。&lt;/p&gt;
&lt;h3 id="_8"&gt;実装のこと（共通パスワードの場合）&lt;/h3&gt;
&lt;p&gt;共通のパスワードを1つだけ利用できるようにする場合は、幅広いダウンロードシステムを利用できます。&lt;/p&gt;
&lt;p&gt;たとえば、&lt;a href="https://gigafile.nu/support.php"&gt;ギガファイル便&lt;/a&gt;などのファイル転送サービスではダウンロードパスワードを設定できるものが多いですし、&lt;a href="https://www.sync.com/"&gt;Sync&lt;/a&gt;などのクラウドストレージでも&lt;a href="https://www.sync.com/help/how-to-manage-shared-link-permissions/"&gt;パスワードつき共有リンク&lt;/a&gt;を発行できる場合があります。非常に簡易な形式なら、パスワードを設定したZIPファイルを配布するだけでも実現できます。&lt;/p&gt;
&lt;p&gt;しかし、これらの方式で複数のパスワードを利用可能にするのは困難です。100個のパスワードを1つずつ設定した100個のファイルをアップロードしても、購入者は自分の持っているパスワードがどのファイルに対応しているか判断できません。パスワードとは別にIDを発行したり、十分に長いパスワードの先頭から数桁をファイル名に含めれば対応できる可能性がありますが、利便性の部分で難が残ります。&lt;/p&gt;
&lt;h3 id="_9"&gt;実装のこと（リライトルールの場合）&lt;/h3&gt;
&lt;p&gt;ここで、&lt;a href="/"&gt;あまねけ！&lt;/a&gt;や&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。公式サイト&lt;/a&gt;のように、リライト&lt;sup id="fnref:rewrites"&gt;&lt;a class="footnote-ref" href="#fn:rewrites" title="ここでは、あるURLに対して（URLを変更せずに）別のURLのコンテンツを返すことを示しています。"&gt;7&lt;/a&gt;&lt;/sup&gt;ルール（またはリダイレクト&lt;sup id="fnref:redirects"&gt;&lt;a class="footnote-ref" href="#fn:redirects" title="ここでは、あるURLに対して別のURLに転送することを示しています。"&gt;8&lt;/a&gt;&lt;/sup&gt;ルール）を記述できるホスティングサービスを利用する場合を考えます。&lt;/p&gt;
&lt;p&gt;リライトルールを使用すると、複数のパスワードに対応した簡易的なダウンロードシステムを実装できます。つまり、ダウンロードパスワードを含むURLを推測不可能なURLにリライトして配布を実現します。具体的な手段は次の通りです:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;URL &lt;code&gt;https://example.com/pthc-book&lt;/code&gt; とパスワード &lt;code&gt;16574894&lt;/code&gt; を受け取ります。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://example.com/pthc-book&lt;/code&gt; にアクセスして、パスワードの入力画面を表示します。&lt;/li&gt;
&lt;li&gt;パスワードを入力してボタンを押すと、 &lt;code&gt;https://example.com/pthc-book/16574894&lt;/code&gt; というURLに移動します&lt;sup id="fnref:formjs"&gt;&lt;a class="footnote-ref" href="#fn:formjs" title="formで実装すると https://example.com/pthc-book/?password=16574894 のようなURLになってしまうため、JavaScriptなどで個別に処理する必要があります。"&gt;9&lt;/a&gt;&lt;/sup&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;https://example.com/pthc-book/16574894&lt;/code&gt; が &lt;code&gt;https://example.com/pthc-book/BvTR3rPt/book.pdf&lt;/code&gt; にリライトされます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;book.pdf&lt;/code&gt; をダウンロードできます。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;https://example.com/pthc-book/BvTR3rPt/book.pdf&lt;/code&gt; にリライトされるルールを複数設定することで、ホスティングサービスの上限まではいくらでもパスワードを発行可能です。&lt;/p&gt;
&lt;p&gt;このダウンロードシステムの問題点は、大きく分けて3つあります。1つは単体でダウンロード可能なURLが履歴に記録されること、もう1つはパスワードが非常に効率よく検証できること、そしてパスワードがリライトルール上に平文で記録されていることです。1つ目はURLに秘密情報を含むあらゆる配布形式の問題であり、後の2つはリライトルールを利用する際の問題といえます。&lt;/p&gt;
&lt;h3 id="cloudflare-workerskvr2"&gt;実装のこと（Cloudflare Workers+KV+R2の場合）&lt;/h3&gt;
&lt;p&gt;そのため、安全なダウンロードシステムを実装するには、秘密情報をURLではなくリクエストボディで送信する（典型的にはformでPOSTする）必要があります。この場合、静的サイトを配信する単純なホスティングサービスでは限界があり、個別にダウンロード用のサーバーを立てたり、&lt;a href="https://firebase.google.com/docs/functions"&gt;Cloud Functions for Firebase&lt;/a&gt;や&lt;a href="https://aws.amazon.com/jp/lambda/edge/"&gt;Lambda@Edge&lt;/a&gt;などのサービスと組み合わせてパスワード照合やコンテンツ提供を行わなければなりません。&lt;/p&gt;
&lt;p&gt;今回、光速感情デラックスのダウンロードシステムを実装するにあたっては、&lt;a href="https://developers.cloudflare.com/workers/"&gt;Cloudflare Workers&lt;/a&gt;を採用しました。関連するコンポーネントとして、秘密情報とダウンロードできるファイルの対応を記録するための&lt;a href="https://developers.cloudflare.com/workers/learning/how-kv-works/"&gt;Workers KV&lt;/a&gt;と、PDFファイルを保管するための&lt;a href="https://developers.cloudflare.com/r2/"&gt;Cloudflare R2&lt;/a&gt;を利用しています。&lt;/p&gt;
&lt;p&gt;本来は、2022年5月に発表された&lt;a href="https://blog.cloudflare.com/introducing-d1/"&gt;D1&lt;/a&gt;を使って最新技術でワイワイ感を出していきたかったのですが、間に合わなかったので素直にKVを使用してありふれたアプリケーションに仕上げました。&lt;/p&gt;
&lt;p&gt;ここからは、このQuettaと名付けられたダウンロードシステム&lt;sup id="fnref:quetta"&gt;&lt;a class="footnote-ref" href="#fn:quetta" title="コードネーム（レポジトリの名前）はfermitaj-storage、サービス名は「Quetta : クエタ」にしました。"&gt;10&lt;/a&gt;&lt;/sup&gt;でどのように前述の問題を解決できたかを検討しながら、Quettaの特徴について述べていきます。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://quetta.hentaigirls.net/"&gt;&lt;img alt="Quettaのスクリーンショット" height="400" src="/images/bunfree34/quetta.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 id="1-url"&gt;1: 単体でダウンロード可能なURLが履歴に記録されること&lt;/h4&gt;
&lt;p&gt;QuettaのURL設計は非常に単純です。&lt;code&gt;/&lt;/code&gt; 以降のパスは全て推測可能なファイル名として扱われます。パスの一部に秘密情報を含んだり、クエリパラメータで秘密情報を受け取ることはありません。どのようなファイルをダウンロードしたかという履歴は残るかもしれませんが、これは秘密情報が残る懸念とは関係のない問題です。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;たとえば、次のようなURLを利用できます: &lt;a href="https://quetta.hentaigirls.net/shirako2.png"&gt;&lt;code&gt;https://quetta.hentaigirls.net/shirako2.png&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4 id="2"&gt;2: パスワードが非常に効率よく検証できること&lt;/h4&gt;
&lt;p&gt;Quettaでは、&lt;a href="https://ja.wikipedia.org/wiki/Bcrypt"&gt;bcrypt&lt;/a&gt;でハッシュ化されたパスワードを検証して認証・認可を行います。bcryptもArgon2と同様に総当たり攻撃に強くなるように設計されたアルゴリズムです。本来はArgon2を利用したかったのですが、Cloudflare Workersの環境ではどうしても利用できなかったので諦めました。Argon2に対応するライブラリをWorkersで使ったことがある方は、ぜひ詳細を教えてください。&lt;/p&gt;
&lt;p&gt;ここでいう認証とは、受け取ったパスワードをKVに記録されたパスワードと比較することを指しています。認可とは、URLのファイル名をそのパスワードが利用できるファイル名と比較することを指しています。今後、複数のファイルを配布することを意識して、パスワード用のバケットと利用できるファイル名を管理するバケットを分けました。&lt;/p&gt;
&lt;p&gt;また、&lt;a href="https://ja.wikipedia.org/wiki/%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0%E6%94%BB%E6%92%83"&gt;タイミング攻撃&lt;/a&gt;を回避するために、Workers KV上のパスワードと一致しなかった場合や、ファイルが利用できない場合など、本来はパスワードハッシュを検証する必要がない（すぐに404を返せる）場合でも必ず検証を行っています。もちろん、ファイルの所在やパスワードの一致不一致に関係なく、ファイルを利用できない場合は全て&lt;a href="https://developer.mozilla.org/ja/docs/Web/HTTP/Status/404"&gt;404 Not Found&lt;/a&gt;を返します&lt;sup id="fnref:github404"&gt;&lt;a class="footnote-ref" href="#fn:github404" title="これはGitHubなどと同様のスタイルです。"&gt;11&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;なお、パスワードをどのようにKVに記録し、どのようにACLと対応づけているのか気になった人もいるでしょう。正直に言うと、今回はパスワードの前半部分をIDとして利用するという苦肉の策を採用しています。変更用トークンは英数字20文字で、後半の16文字だけでも十分な強度を保てるという計算です。次回以降は、パスワードに対応するIDをきちんと発行して認証できるようにする予定です。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;たとえば、上記のURLで次のようなパスワードを利用できます: &lt;code&gt;XXXXXXXXXXXXXXXXXXXX&lt;/code&gt;&lt;/p&gt;
&lt;h4 id="3"&gt;3: パスワードがリライトルール上に平文で記録されていること&lt;/h4&gt;
&lt;p&gt;前述の通り、パスワードはbcryptでハッシュ化されてからWorkers KVに保管されます。Cloudflare上のどこにも秘密情報（全体）は保存されていません。仮にKVの内容が流出したとしても、総当たりにはなかなかの時間がかかるでしょう。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;たとえば、上記のURLとパスワードで次のような画像をダウンロードできます:&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/bunfree34/shirako2.png"&gt;&lt;img alt="白子アイコンの画像" height="240" src="/images/bunfree34/shirako2_thumb.png" width="240"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;この画像は何らかのライセンスの下で提供されているものではありません。&lt;/cite&gt;&lt;/p&gt;
&lt;h2 id="_10"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;電子版の同人誌を配布するには、メディア配布方式・ダウンロードリンク方式・電子書籍ストア方式を利用できます。&lt;/li&gt;
&lt;li&gt;光速感情デラックスの配布では、一般的なダウンロードリンク方式とは異なる要件を満たす必要がありました。&lt;/li&gt;
&lt;li&gt;1つのファイルを複数のパスワードで安全にダウンロードできるように、Cloudflare Workers+KV+R2上でダウンロードシステムを実装しました。&lt;/li&gt;
&lt;li&gt;面白くてためになるお話が収録された「&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;」が発行されました。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:ebook"&gt;
&lt;p&gt;PDFファイルやテキストファイル、EPUBファイルはもちろん、複数のPNGファイルやJPGファイルをZIPファイルに固めたものを配布することさえできます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:ebook" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:floppy"&gt;
&lt;p&gt;当時はいろいろ切羽詰まっていて、ちゃんとメディアそのものの写真を撮る暇がなかったみたいです。&lt;a href="https://twitter.com/amecokaeruda/status/1125270163295596544"&gt;隣のサークルさんが上げてくれた写真&lt;/a&gt;などではっきりとした姿を確認できます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:floppy" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:epaper"&gt;
&lt;p&gt;たとえば、数GB程度の記憶領域を持つ電子ペーパーが数百円で入手できるようになれば実現できます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:epaper" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:downloadurl"&gt;
&lt;p&gt;URLと秘密情報は分離されていることもありますし、URL内に（手で入力するには複雑で長い）秘密情報を含んだ状態でQRコードに記録されていることもあります。&amp;#160;&lt;a class="footnote-backref" href="#fnref:downloadurl" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:wastesdcard"&gt;
&lt;p&gt;もちろん、数GB～数百GBを記録できるメディアにURLやパスワードだけを記録するのは無駄なので、通常は利用されません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:wastesdcard" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:heavyverify"&gt;
&lt;p&gt;システムがわざとレスポンスを遅くするよりも、&lt;a href="https://ja.wikipedia.org/wiki/Argon2"&gt;Argon2&lt;/a&gt;などのリソース消費が大きくなるように設計されたアルゴリズムを使うべきです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:heavyverify" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:rewrites"&gt;
&lt;p&gt;ここでは、あるURLに対して（URLを変更せずに）別のURLのコンテンツを返すことを示しています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:rewrites" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:redirects"&gt;
&lt;p&gt;ここでは、あるURLに対して別のURLに転送することを示しています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:redirects" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:formjs"&gt;
&lt;p&gt;formで実装すると &lt;code&gt;https://example.com/pthc-book/?password=16574894&lt;/code&gt; のようなURLになってしまうため、JavaScriptなどで個別に処理する必要があります。&amp;#160;&lt;a class="footnote-backref" href="#fnref:formjs" title="Jump back to footnote 9 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:quetta"&gt;
&lt;p&gt;コードネーム（レポジトリの名前）はfermitaj-storage、サービス名は「Quetta : クエタ」にしました。&amp;#160;&lt;a class="footnote-backref" href="#fnref:quetta" title="Jump back to footnote 10 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:github404"&gt;
&lt;p&gt;これは&lt;a href="https://github.com/amane-katagiri/pthc-book"&gt;GitHub&lt;/a&gt;などと同様のスタイルです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:github404" title="Jump back to footnote 11 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>文フリ34のふりかえり（ポストカード編）</title><link href="https://ama.ne.jp/post/bunfree34-postcard/" rel="alternate"/><published>2022-06-06T19:01:00+09:00</published><updated>2022-07-08T13:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-06-06:/post/bunfree34-postcard/</id><summary type="html">&lt;p&gt;たのしい文化祭ポストカードまとめ&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;はがきとは&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;素材のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;形状のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;印刷内容（宛名面）のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;印刷内容（通信面）のこと&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;宛名面のこと&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_8"&gt;切手貼り付け位置&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;広告&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;印刷版チケットシール&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;通信面のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_12"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_13"&gt;付録&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_14"&gt;現行の内国郵便約款&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_15"&gt;郵便事業株式会社が定めた内国郵便約款&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://bunfree.net/event/tokyo34/"&gt;第三十四回文学フリマ東京&lt;/a&gt;の新刊「&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;」は、個展の告知はがきのようなワクワク感のあるすてきなポストカードでPDF版の頒布を行いました。実はEPUB版を頒布する計画も出ているのですが、諸都合との兼ね合いでもう少しかかりそうです。みなさんはEPUBが好きですか？&lt;/p&gt;
&lt;p&gt;この記事では、まずポストカードが（少なくとも日本国内で）ポストカードであるための条件について解説し、その上で光速感情デラックスの配布ポストカードに印刷された内容について紹介していこうと思います。&lt;/p&gt;
&lt;p&gt;&lt;img alt="光速感情デラックス ポストカード（左側は裏面で、右側は表面）" height="750" src="/images/bunfree34/faster-emotion-deluxe_postcard.png" width="1014"&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;通信面および宛名面のデザインは&lt;a href="https://twitter.com/gomafu_warabi"&gt;ごまふわラビ&lt;/a&gt;によって&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされています。&lt;/cite&gt;&lt;/p&gt;
&lt;h2 id="_2"&gt;はがきとは&lt;/h2&gt;
&lt;p&gt;日本郵便によれば、はがきとは&lt;a href="https://www.post.japanpost.jp/service/standard/two/type/index.html"&gt;第二種郵便物&lt;/a&gt;と呼ばれる区分のもので、第一種郵便物よりも安価な料金で郵送できます&lt;sup id="fnref:fee"&gt;&lt;a class="footnote-ref" href="#fn:fee" title="2022年6月時点で、はがきは63円に対して25g以内の手紙は84円です。"&gt;1&lt;/a&gt;&lt;/sup&gt;。日本郵便自身が切手風の絵柄と料金を印字した（かつて官製はがきと呼ばれていたような）ものを提供していますが、いくつかの細かい規定を守れば自作することも可能です（いわゆる私製はがき）。&lt;/p&gt;
&lt;p&gt;なお、必須の規定が守られていない &lt;em&gt;はがき風&lt;/em&gt; の郵便物は第一種郵便物として取り扱われるらしい&lt;sup id="fnref:two-to-one"&gt;&lt;a class="footnote-ref" href="#fn:two-to-one" title="私製はがきには「郵便はがき」と記載する必要があると聞きましたが、英語で記載してもよいですか？"&gt;2&lt;/a&gt;&lt;/sup&gt;ので、創意工夫にあふれた私製はがきを作る際にはある程度注意しておくべきでしょう。&lt;/p&gt;
&lt;p&gt;さて、第二種郵便物――はがきとして認められる郵便物は、どのようなものだったでしょうか？　日本郵便の&lt;a href="https://www.post.japanpost.jp/about/yakkan/"&gt;内国郵便約款&lt;/a&gt;を参考に、紙や印刷内容に関する条件をまとめてみましょう。&lt;/p&gt;
&lt;h3 id="_3"&gt;素材のこと&lt;/h3&gt;
&lt;p&gt;はがきの素材については内国郵便約款第22条にまとまっています。同第21条では通常はがきの規格について述べているので、サイズなどを参考にするといいでしょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大きさ: 140mm〜154mm × 90mm〜107mm&lt;ul&gt;
&lt;li&gt;通常はがきサイズは148mm × 100mm&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;素材: 2g～6gの紙&lt;ul&gt;
&lt;li&gt;通常はがきサイズなら、四六判連量で117kg～348kg程度&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;色: 白または淡い色&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このうち、少なくとも大きさと素材は必須の条件です。とはいえ、パンフレットに使われるような少し厚手の紙なら110kg程度ですし、かなり厚手のアートポストでもせいぜい240kg程度なので、あまり神経質になる必要はありません。通常はがきに近い質感を再現するなら、180kg程度が適しているようです。&lt;/p&gt;
&lt;p&gt;今回、光速感情デラックスのポストカードでは135kgの紙を使用したので、通常はがきより少し柔らかくて薄い仕上がりになっています。次回はもう少し厚手の紙がいいかもしれません。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2022-07-08) 日本郵便に対する問い合わせを行い、色に関する記載を追記しました。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;なお、濃い色の紙であっても、住所記入欄を白抜きにしたり宛名ラベルを使えば問題ないという情報が各所で見つかりますが、内国郵便約款には明らかに適合していません。実際に日本郵便に問い合わせたところ、差出時に個別の様態によって判断されるグレーゾーンのようです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;また、全体が濃い色であって、宛名部分のみ文字が見やすい白色の背景のものにつきましては、最終的には、現物での判断となりますが、郵便葉書の表面は、白色又は淡色としていただきますようお願いいたします。(内国郵便約款第22条第1項(4))&lt;br&gt;
&lt;cite&gt;日本郵便からの回答&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="_4"&gt;形状のこと&lt;/h3&gt;
&lt;p&gt;&lt;ins&gt;(2022-07-08) 日本郵便に対する問い合わせを行い、形状について追記しました。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;内国郵便約款第22条によれば、はがきは長方形の紙である必要があります。ハート型、星型、円形、正方形などの &lt;em&gt;はがき風&lt;/em&gt; の郵便物は、長方形ではないか、大きさの条件を満たさないので第二種郵便物ではありません。ただし、ここでいう長方形とは必ずしも数学的に厳密な図形のことではなく、私製はがきであれば以下のような変形・加工が認められています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;私製はがきの辺に対する2mm以内の切り込みや波加工&lt;/li&gt;
&lt;li&gt;私製はがきの角に対する2mm以内の角丸加工&lt;/li&gt;
&lt;li&gt;私製はがきの中央部または下部&lt;sup id="fnref:hole"&gt;&lt;a class="footnote-ref" href="#fn:hole" title="横向きに使用する場合は、中央部または左側部に穿孔できます。"&gt;3&lt;/a&gt;&lt;/sup&gt;に対する8mm以内の円形の穿孔（1つまで）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは全て私製はがきについてのルールであり、通常はがきに対する加工は内国郵便約款第24条で禁じられています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;縁に2mm以内の切り込みや波加工を施したものは 私製葉書の場合は、第二種郵便物としてお取扱いできます。(内国郵便約款第22条第1項(1)の「長方形」に該当するものとみなしています。)&lt;br&gt;
一方、会社製葉書の場合は、第二種郵便物としてお取扱いできません。(内国郵便約款第24条第1項の「原形を変えてこれを差し出す」に該当します。)&lt;br&gt;
&lt;cite&gt;日本郵便からの回答&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ただし、エンボスや穿孔&lt;sup id="fnref:needle"&gt;&lt;a class="footnote-ref" href="#fn:needle" title="約款上では「針孔」と表現されており、辺や角に対する加工と同様に2mmが限度と思われます。"&gt;4&lt;/a&gt;&lt;/sup&gt;による小さな記号や点字は例外として明示されているので、この範囲であれば加工が可能です。ちなみに、私製はがきについては、宛名の記載や消印に影響がない限りでより大きなエンボス加工や透かし加工を施すことができます。&lt;/p&gt;
&lt;p&gt;上記のうち、2mm以内の加工については、長方形だと判断できる限度として採用されている運用上のルールのようです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;縁や辺に対する「2mm以内」の加工は可能という具体的な基準は、運用上の規則として通達されているものであり、内国郵便約款や周辺規則で明確に定義されているものではないということでしょうか？&lt;br&gt;
&lt;cite&gt;筆者からの問い合わせ&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;お問い合わせにつきましては、ご指摘いただきましたとおり、内国郵便約款で明確に定義しているものではなく、運用上お取扱いしているものです。&lt;br&gt;
&lt;cite&gt;日本郵便からの回答&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;8mm以内の穿孔については、現行の内国郵便約款附則第5条3項 &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; 旧内国郵便約款（郵便事業株式会社）附則第5条3項 &lt;img alt=":arrow_right:" class="emoji" height="16" src="/emojis/27a1.png" width="16"&gt; 旧内国郵便約款（日本郵政公社）附則第4条3項と、旧約款から代々引き継がれる形で例外的に認められています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;■日本郵政公社が定めた内国郵便約款&lt;br&gt;
内国郵便約款（附則）（抄）&lt;br&gt;
（小包葉書等に関する経過措置）&lt;br&gt;
第４条　（略）&lt;br&gt;
２　（略）&lt;br&gt;
３　旧規則第１６条第２号の規定により郵便葉書（往復葉書の往信の際にあっては、返信部を含みます。）の中央部又は下部（横に長く使用するものにあっては、左側部）に直径８ミリメートル以内の穴１か所をあけたもの及び同条第３号の規定により私製葉書をせん孔カード式統計会計機械のせん孔カードとするためその下部２分の１（横に長く使用するものにあっては左側部２分の１）以内の部分にせん孔機によるせん孔を施したものであって、旧法令の規定に従って差し出されたものは、第２５条（郵便葉書に浮出添付等のできる範囲）第１項の規定にかかわらず、当分の間、これを第二種郵便物として取り扱います。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;さらに、旧規則第16条第2号については、&lt;a href="https://endrail.sakura.ne.jp/philately/album/2nd-class-mail-rules/07.html"&gt;はがきの差出し方 :エンドレール 郵便葉書の中央部又は下部に直径8mm以内の穴をあけた場合（規定適合）&lt;/a&gt;に以下の記載があります。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;約款附則第5条第3項の規定による経過措置により当分の間、第二種郵便物として差し出すことができます。1969年当時の規則第16条第5項の2の規定では"私製葉書の裏面を蓄音機用レコードとするため…"となっていることから、裏面へソノシートを貼付したはがきを第二種郵便物として取り扱うために設けられた規定です。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://endrail.sakura.ne.jp/philately/album/2nd-class-mail-rules/07.html"&gt;はがきの差出し方 :エンドレール&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;一見唐突で奇妙な「8mm以内の穴を1つだけ」というのは、裏面が&lt;a href="https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%8E%E3%82%B7%E3%83%BC%E3%83%88"&gt;ソノシート&lt;/a&gt;のはがき（例: &lt;a href="https://order.mandarake.co.jp/order/detailPage/item?itemCode=1125396206"&gt;明治製菓 悟空の大冒険はがきソノシート&lt;/a&gt;）を受け入れるための規則だったようです。&lt;/p&gt;
&lt;p&gt;条文の後半に定められている、はがきを穿孔カードとして使用する事例は見つけることができませんでしたが、ソノシートはがきのように当時の情勢に合わせた規則だったと考えられます。&lt;/p&gt;
&lt;h3 id="_5"&gt;印刷内容（宛名面）のこと&lt;/h3&gt;
&lt;p&gt;宛名面の規格については、内国郵便約款第22条および第23条、内国郵便約款別記1、JIS S 5502&lt;sup id="fnref:jisc"&gt;&lt;a class="footnote-ref" href="#fn:jisc" title="日本産業標準調査会などで閲覧できます。"&gt;5&lt;/a&gt;&lt;/sup&gt;などにまとまっています。必須なのは「郵便はがき」の表示のみで、そのほかは記載自体を省略できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;上部または左側部&lt;sup id="fnref:postcard"&gt;&lt;a class="footnote-ref" href="#fn:postcard" title="横向きに使用する場合は、上部または右側部に記載します。"&gt;6&lt;/a&gt;&lt;/sup&gt;に「郵便はがき」または同等の語句（たとえば「POSTCARD」など）を記載しなければなりません。&lt;/li&gt;
&lt;li&gt;宛名面の下半分（2分の1）&lt;sup id="fnref:advertise"&gt;&lt;a class="footnote-ref" href="#fn:advertise" title="横向きに使用する場合は、左半分（2分の1）に広告を記載できます。"&gt;7&lt;/a&gt;&lt;/sup&gt;には、宛名や住所とは関係ない通信文や広告を記載できます。&lt;/li&gt;
&lt;li&gt;切手を貼る枠や料金に関する注意を記載できます。内国郵便約款の別記1によれば、左上から横35mm × 縦70mmの範囲&lt;sup id="fnref:stamp"&gt;&lt;a class="footnote-ref" href="#fn:stamp" title="横向きに使用する場合は、横70mm × 縦35mmの範囲です。"&gt;8&lt;/a&gt;&lt;/sup&gt;に切手を貼る必要があるため、この中に収まるように印字すべきです。&lt;/li&gt;
&lt;li&gt;郵便番号枠を記載できます。JIS規格および内国郵便約款の別記1に具体的な位置や線の太さが規定されており、印字には黒や青を含まない朱色または金赤色のインクを使わなければなりません&lt;sup id="fnref:postalcode-color"&gt;&lt;a class="footnote-ref" href="#fn:postalcode-color" title="喪中はがきとして郵便番号枠がグレー（薄墨）の私製はがきが広く売られていますが、厳密にはJIS規格から外れた製品ということになります。"&gt;9&lt;/a&gt;&lt;/sup&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_6"&gt;印刷内容（通信面）のこと&lt;/h3&gt;
&lt;p&gt;通信面はいわばはがきの本質であり、通信のために自由に使える面なので、印刷内容についての規定はありません。&lt;/p&gt;
&lt;p&gt;ただし、はがきには他の物品を添付することができないという規定があり、これを破ると第一種郵便物として扱われます。具体的には、はがきと同じ大きさの紙を四辺でのり付けして中に物品を入れたりしてはいけません。もしはがきに紙を貼りたい場合&lt;sup id="fnref:thin-postcard"&gt;&lt;a class="footnote-ref" href="#fn:thin-postcard" title="例えば、チラシなどにはがき郵送用の申し込み様式を印刷して配布した場合、チラシの紙厚ではおそらく第二種郵便物の規定を満たさないので、別のはがきに貼ってもらう必要があるでしょう。"&gt;10&lt;/a&gt;&lt;/sup&gt;は、袋とじにならないように全面をしっかりとのり付けする必要があります。&lt;/p&gt;
&lt;h2 id="_7"&gt;宛名面のこと&lt;/h2&gt;
&lt;p&gt;ここまで確認したはがきの規定を守った上で、宛名面に切手貼り付け位置や郵便番号枠を配置し、本やサークルの情報について記載していきます。&lt;/p&gt;
&lt;h3 id="_8"&gt;切手貼り付け位置&lt;/h3&gt;
&lt;p&gt;切手貼り付け位置として、左上の四角い枠内に「切手をお貼りください」という語句と、表紙の「お姉さん」がセーラー服を着たイラストを配置しました。切手の具体的な額面を記載していないのは、郵便料金の値上げに対応するためです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="光速感情デラックス ポストカード 切手貼り付け位置" height="360" src="/images/bunfree34/stamp.png" width="300"&gt;&lt;/p&gt;
&lt;p&gt;もちろん、印刷版チケットや切手を貼り付けるとこのデザインは隠れてしまうのですが、細部のこだわりとして重要な部分だと思います。光速感情デラックスをご購入いただいた方には、印刷版チケットを貼り付けていないものを1枚追加で配布しているので、ごゆっくりご覧ください。&lt;/p&gt;
&lt;h3 id="_9"&gt;広告&lt;/h3&gt;
&lt;p&gt;宛名面の下半分には広告や通信文を記載できます。よく絵はがきの宛名面中央に横線や縦線が引かれているものを見かけますが、これは下半分（または左半分）に通信文を書き込めるという表示に他なりません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="光速感情デラックス ポストカード 広告" height="544" src="/images/bunfree34/advertise.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;フォントは本文に&lt;a href="https://fonts.google.com/specimen/Zen+Maru+Gothic"&gt;ZEN丸ゴシック&lt;/a&gt;、タイトルに&lt;a href="https://github.com/fontworks-fonts/Rampart"&gt;ランパートOne&lt;/a&gt;を使っています。こちらは表紙に使ったものと同じフォントです。光速感情デラックスのタイトルおよび短い紹介文と、PDF版をダウンロードできるQRコードが記載されています。切手貼り付け位置に印刷版チケットを貼ると、宛名面にQRコードが2つも出てきてしまうのがちょっとダサいので、次回以降はもう少しスマートにやりたいですね。&lt;/p&gt;
&lt;p&gt;残りの欄には、変態美少女ふぃろそふぃ。のPRと、&lt;a href="https://news.amane.moe/issues/3-788647"&gt;迱里ヶ崎&lt;/a&gt;にある綺麗な海の見えるアトリエの地図が記載されています。茅津線に乗り継げる特急列車やバスを見つけるのが少々難しいのですが、駅まで辿り着くことができればおそらく迷わずに来ていただけるでしょう。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;茅津線「迱里崎」駅南口より徒歩10分&lt;br&gt;
下城ICから迱里ヶ崎海岸方面へ約15分&lt;br&gt;
&lt;cite&gt;「光速感情デラックス」ポストカードより&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最寄り駅や道路についての記載は、実際の個展系はがきを参考にしました。駅名にかぎかっこを付けるのも、個展っぽさを出す工夫のひとつです。「駅」をかっこの中に入れるかどうかは好みが分かれますが、入れない方がもったりとした印象を楽しめたので今回はこちらにしました。&lt;/p&gt;
&lt;h3 id="_10"&gt;印刷版チケットシール&lt;/h3&gt;
&lt;p&gt;今回の印刷版チケットは、切手を模したシールとして作られています。こちらは&lt;a href="https://www.lawson.co.jp/service/others/multicopy/#photo"&gt;ローソンのマルチコピー機&lt;/a&gt;で印刷しました。目打ちで切り取ったような四辺のギザギザを再現するために、&lt;a href="https://www.amazon.co.jp/gp/product/B07HQYLBL1/"&gt;呉竹 クラフトパンチ ポステージスタンプ SBKPM850-16&lt;/a&gt;で1枚ずつ打ち出しています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="光速感情デラックス 印刷版チケット" height="350" src="/images/bunfree34/ticket.jpg" width="300"&gt;&lt;/p&gt;
&lt;p&gt;なお、あまりに切手に近いデザインや大きさを再現してしまうと&lt;a href="https://elaws.e-gov.go.jp/document?lawid=347AC0000000050"&gt;郵便切手類模造等取締法&lt;/a&gt;によって処罰されてしまう可能性があるため、必要に応じて総務省の&lt;a href="https://www.soumu.go.jp/yusei/02ryutsu14_03000030.html"&gt;郵便切手類の模造等&lt;/a&gt;を確認してください。印刷版チケットシールに関しては、そもそも切手のようなイラストや額面を持たず、英数字とQRコードしか印刷していないので、特に抵触する点はないと判断しています。&lt;/p&gt;
&lt;p&gt;ちなみに、企画段階で&lt;a href="https://paperarts.base.shop/"&gt;実際に目打ちされた状態のシート&lt;/a&gt;を入手できるショップを見つけましたが、シートを売りたいわけではなかったので今回は採用を見送りました。&lt;a href="https://www.tokyo-shiki.co.jp/archives/812"&gt;オンデマンド印刷&lt;/a&gt;の単価や最低注文数が記載されておらず少々不安ですが、 &lt;em&gt;エモい&lt;/em&gt; イラストを切手サイズでバラバラにできるおしゃれなグッズを作りたい方は、ぜひチェックしてみてください。&lt;/p&gt;
&lt;h2 id="_11"&gt;通信面のこと&lt;/h2&gt;
&lt;p&gt;通信面は単に表紙を印刷したものなので、特筆すべき事項はほとんどありません。はがきの仕様上、ポストカード固有のQRコードや説明文は宛名面に逃がせるので、表紙を隅から隅まで余すことなくそのまま印刷できました。&lt;/p&gt;
&lt;p&gt;ちなみに、Twitterやこの記事に掲載している表紙はRGB色の画像であり、印刷されたCMYK色のポストカードとはわずかに色味が異なります。ここに比較写真を掲載しても結局RGBの世界に持ち込まれてしまうので、まだポストカードを入手していない方はぜひ&lt;a href="https://hentaigirls.net/book/#_2"&gt;変態美少女ふぃろそふぃ。公式サイト&lt;/a&gt;からお求めください。&lt;/p&gt;
&lt;h2 id="_12"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;はがきは第二種郵便物と呼ばれる区分の郵便物で、素材や大きさなどの規定を満たす必要があります。&lt;/li&gt;
&lt;li&gt;日本郵便が発売している通常はがきは、四六判連量で180kg程度の紙を使用しています。&lt;/li&gt;
&lt;li&gt;宛名面の下半分（左半分）は広告を記載できるので、個展の告知のようなすてきなデザインに仕上げました。&lt;/li&gt;
&lt;li&gt;面白くてためになるお話が収録された「&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;」が発行されました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_13"&gt;付録&lt;/h2&gt;
&lt;h3 id="_14"&gt;現行の内国郵便約款&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;内国郵便約款（附則）（抄）&lt;br&gt;
（小包葉書等に関する経過措置）&lt;br&gt;
第５条　（略）&lt;br&gt;
２　（略）&lt;br&gt;
３ 旧約款の附則第５条（小包葉書等に関する経過措置）第３項の規定により第二種郵便物として取り扱うこととされていた郵便葉書については、第２４条（郵便葉書に浮出添付等のできる範囲）第１項の規定にかかわらず、当分の間、これを第二種郵便物として取り扱います。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="_15"&gt;郵便事業株式会社が定めた内国郵便約款&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;内国郵便約款（附則）（抄）&lt;br&gt;
（小包葉書等に関する経過措置）&lt;br&gt;
第５条　（略）&lt;br&gt;
２　（略）&lt;br&gt;
３　旧約款の附則第４条（小包葉書等に関する経過措置）第３項の規定により第二種郵便物として取り扱うこととされていた郵便葉書については、第２５条（郵便葉書に浮出添付等のできる範囲）第１項の規定にかかわらず、当分の間、これを第二種郵便物として取り扱います。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:fee"&gt;
&lt;p&gt;2022年6月時点で、はがきは63円に対して25g以内の手紙は84円です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:fee" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:two-to-one"&gt;
&lt;p&gt;&lt;a href="https://www.post.japanpost.jp/question/599.html"&gt;私製はがきには「郵便はがき」と記載する必要があると聞きましたが、英語で記載してもよいですか？&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:two-to-one" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:hole"&gt;
&lt;p&gt;横向きに使用する場合は、中央部または左側部に穿孔できます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:hole" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:needle"&gt;
&lt;p&gt;約款上では「針孔」と表現されており、辺や角に対する加工と同様に2mmが限度と思われます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:needle" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:jisc"&gt;
&lt;p&gt;&lt;a href="https://www.jisc.go.jp/app/jis/general/GnrJISSearch.html"&gt;日本産業標準調査会&lt;/a&gt;などで閲覧できます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:jisc" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:postcard"&gt;
&lt;p&gt;横向きに使用する場合は、上部または右側部に記載します。&amp;#160;&lt;a class="footnote-backref" href="#fnref:postcard" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:advertise"&gt;
&lt;p&gt;横向きに使用する場合は、左半分（2分の1）に広告を記載できます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:advertise" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:stamp"&gt;
&lt;p&gt;横向きに使用する場合は、横70mm × 縦35mmの範囲です。&amp;#160;&lt;a class="footnote-backref" href="#fnref:stamp" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:postalcode-color"&gt;
&lt;p&gt;喪中はがきとして郵便番号枠がグレー（薄墨）の私製はがきが広く売られていますが、厳密にはJIS規格から外れた製品ということになります。&amp;#160;&lt;a class="footnote-backref" href="#fnref:postalcode-color" title="Jump back to footnote 9 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:thin-postcard"&gt;
&lt;p&gt;例えば、チラシなどにはがき郵送用の申し込み様式を印刷して配布した場合、チラシの紙厚ではおそらく第二種郵便物の規定を満たさないので、別のはがきに貼ってもらう必要があるでしょう。&amp;#160;&lt;a class="footnote-backref" href="#fnref:thin-postcard" title="Jump back to footnote 10 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>文フリ34のふりかえり</title><link href="https://ama.ne.jp/post/bunfree34-general/" rel="alternate"/><published>2022-06-06T19:00:00+09:00</published><updated>2022-06-12T19:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-06-06:/post/bunfree34-general/</id><summary type="html">&lt;p&gt;たのしい文化祭まとめ&lt;/p&gt;</summary><content type="html">&lt;p&gt;先週の2022年5月29日に&lt;a href="https://bunfree.net/event/tokyo34/"&gt;第三十四回文学フリマ東京&lt;/a&gt;が開催されました。僕も例年通り&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。&lt;/a&gt;として参加し、いろいろな企画を行ったので概要を記しておこうと思います。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;新刊のこと&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;内容&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;頒布形態&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;ダウンロードシステム&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;無人販売のこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;ポスター展示企画のこと&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;新刊のこと&lt;/h2&gt;
&lt;h3 id="_2"&gt;内容&lt;/h3&gt;
&lt;p&gt;今回は「&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;」というタイトルの合同誌を新刊として頒布しました。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「光よりずっと向こうに行けたらいいね」&lt;br&gt;
&lt;cite&gt;&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス 特設サイト&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;こちらは、定期刊行している合同誌「りりよる」シリーズの第7弾です。プロ/エピや巻末付録を含めて6人が1作品ずつ投稿してくれました。詳しい内容などについては、&lt;a href="https://bunfree34.hentaigirls.net/"&gt;特設サイト&lt;/a&gt;や&lt;a href="https://hentaigirls.net/post/tokyo34/"&gt;告知記事&lt;/a&gt;をご覧ください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;プロローグ・エピローグ: 光速感情DX（&lt;a href="https://hentaigirls.net/members/#_7"&gt;ごまふわラビ&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;本編: 以下の4作品&lt;ul&gt;
&lt;li&gt;もみじがり（&lt;a href="https://hentaigirls.net/members/#_1"&gt;片桐 天音&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;アウトデーテッド（&lt;a href="https://hentaigirls.net/members/#_6"&gt;有坂&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;ズル休み（&lt;a href="https://hentaigirls.net/members/#_3"&gt;野沢菜&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;ラッカ＝レダラの日記（&lt;a href="https://hentaigirls.net/members/#_5"&gt;日溜。&lt;/a&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;巻末特別付録: メスガキで学ぶＸＸＸ（&lt;a href="https://hentaigirls.net/members/#_4"&gt;蚯蚓の紐&lt;/a&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;変態美少女ふぃろそふぃ。では、必ずしも「百合」という言葉に対して「女性同士の人間関係」を求めてはいないので、この合同誌も百合の一部をなすものとして発行されています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「百合」とは: かつての「百合」は、無責任な拡張と恣意的な適用によって「女性同士の人間関係」というほとんど意味のないラベルに変質してしまいました。この歴史を踏まえ、現在ではより広く「既存の強力な異性愛規範を要求しない全ての人間関係（やその物語）」を指していると考えられています。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://hentaigirls.net/lily-info/"&gt;HentaiGirls@Lily&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;しかし、これは&lt;a href="https://twitter.com/amane_katagiri/status/1532362777326940160"&gt;エンパワ物語&lt;/a&gt;であるという意味ではないことに注意してください。私たちは百合に取り組んでいるのであり、男性の粗暴さを強調したり暴力性を貶めるために活動しているわけではありません。&lt;/p&gt;
&lt;h3 id="_3"&gt;頒布形態&lt;/h3&gt;
&lt;p&gt;/* 詳しくは&lt;a href="/post/bunfree34-postcard/"&gt;文フリ34のふりかえり（ポストカード編）&lt;/a&gt;をお読みください。 */&lt;/p&gt;
&lt;p&gt;新刊「光速感情デラックス」は、PDF版をダウンロードできるQRコードを記載したポストカードで頒布を行いました。前回と同様に、購入者に&lt;a href="/post/bunfree-great-wall/#_6"&gt;印刷版チケット&lt;/a&gt;を提供しています。&lt;/p&gt;
&lt;p&gt;&lt;img alt="光速感情デラックス ポストカード（左側は裏面で、右側は表面）" height="750" src="/images/bunfree34/faster-emotion-deluxe_postcard.png" width="1014"&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;通信面および宛名面のデザインは&lt;a href="https://twitter.com/gomafu_warabi"&gt;ごまふわラビ&lt;/a&gt;によって&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされています。&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;このポストカードは、&lt;a href="https://www.post.japanpost.jp/service/standard/two/type/index.html"&gt;第二種郵便物&lt;/a&gt;として郵送可能な私製はがきになることを目指しています。つまり、大きさや重さ、郵便番号の枠や切手の位置などに注意して作られています。&lt;/p&gt;
&lt;p&gt;なお、通常の「光速感情デラックス」ポストカードには切手の位置に印刷版チケットが貼付されており、郵送に供することはできません。しかし、購入者にはさらに追加で1枚印刷版チケットが貼られていないものを配布していますし、ポストカードのみ&lt;sup id="fnref:no-password"&gt;&lt;a class="footnote-ref" href="#fn:no-password" title="本編を読むためのパスワードが貼付されていません。"&gt;1&lt;/a&gt;&lt;/sup&gt;を購入することでも郵送可能なものを入手できます。&lt;/p&gt;
&lt;p&gt;ポストカードに記されている地図は&lt;a href="https://news.amane.moe/issues/3-788647"&gt;迱里ヶ崎&lt;/a&gt;にある変態美少女ふぃろそふぃ。のアトリエのものです。宛名面に作品のタイトルやサークルの情報を掲載することで、本来は味気ない電子版の配布ポストカード&lt;sup id="fnref:simple-postcard"&gt;&lt;a class="footnote-ref" href="#fn:simple-postcard" title="単に片面に表紙とQRコードを刷っただけで、それ単体で見ると つまらない ポストカードを指しています。"&gt;2&lt;/a&gt;&lt;/sup&gt;に潤いを与え、まるで個展の告知はがきのようなワクワク感を演出しています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;【PR】変態美少女ふぃろそふぃ。では、綺麗な海の見えるアトリエからみなさんに素敵な百合を届ける活動を続けています。&lt;br&gt;
&lt;cite&gt;「光速感情デラックス」ポストカードより&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;同人誌の発行において、印刷版を提供するか、あるいは電子版を提供するかを判断するのは非常に難しいことです。頒布の方向性を決める重要な決断ですし、許容できるリスクと求めるリターンはサークルによって異なります。その中で、個々人が抱えるリスクを最小限に抑えてハイブリッドな発行形態を提供できるのは、いいとこ取りの選択といえるでしょう。&lt;/p&gt;
&lt;h3 id="_4"&gt;ダウンロードシステム&lt;/h3&gt;
&lt;p&gt;/* 詳しくは&lt;a href="/post/bunfree34-cloudflare/"&gt;文フリ34のふりかえり（ダウンロードシステム編）&lt;/a&gt;をお読みください。 */&lt;/p&gt;
&lt;p&gt;電子版を提供するにあたって重要なのは、ファイルの配信方法です。PDFやEPUBなどのフォーマットで記録されたコンテンツは、読者が持つPCやスマートフォン、電子書籍リーダーなどのデバイスで読み込まないと利用できません。&lt;/p&gt;
&lt;p&gt;コンテンツが紙に記録された状態で頒布される印刷版と素朴に対比すると、フロッピーディスクやCD-R(OM)、SDカードやUSBフラッシュドライブなどの記憶装置にコンテンツを記録して頒布する、という方法（メディア配布方式）を思いつきます。しかし、このようなメディアはしばしば読み取りに手間がかかり、特にスマートフォンでの利用には不便です。&lt;/p&gt;
&lt;p&gt;そのため、最近ではURLやパスワードを記載したポストカードやパンフレットなどを配布し、読者に好きなデバイスでダウンロードしてもらう方法（ダウンロードリンク方式）が一般的になっています。新刊「光速感情デラックス」や準新刊「&lt;a href="https://hentaigirls.net/post/tokyo33/#_1"&gt;先輩、今日もいいですか&lt;/a&gt;」でも、この方式を採用しています。&lt;/p&gt;
&lt;p&gt;ダウンロードリンク方式では、受け取ったメディアそのものにはコンテンツが記録されていないので、経年によるリンク切れなどに備えて確実にファイルを入手しておく必要があります。メディア配布方式は印刷版の電子化にあたる方式ですが、ダウンロードリンク方式はむしろ本との引換券のような性質を持っているからです。&lt;/p&gt;
&lt;p&gt;今回の新刊「光速感情デラックス」の電子版配信では、&lt;a href="https://developers.cloudflare.com/workers/"&gt;Cloudflare Workers&lt;/a&gt;+&lt;a href="https://developers.cloudflare.com/workers/learning/how-kv-works/"&gt;KV&lt;/a&gt;+&lt;a href="https://developers.cloudflare.com/r2/"&gt;R2&lt;/a&gt;で1つのファイルに対して複数のパスワードを設定できるダウンロードシステムを用意しました。&lt;/p&gt;
&lt;p&gt;興味があれば、実際の&lt;a href="https://hentaigirls.net/book/faster-emotion-deluxe/"&gt;光速感情デラックス配布ページ&lt;/a&gt;をご覧ください。このシステムを通じて、ポストカードに貼付された印刷版チケットの変更用トークンでPDF版をダウンロードできるようになっています。&lt;/p&gt;
&lt;h2 id="_5"&gt;無人販売のこと&lt;/h2&gt;
&lt;p&gt;/* 詳しくは&lt;a href="/post/bunfree34-unattended/"&gt;文フリ34のふりかえり（無人販売編）&lt;/a&gt;をお読みください。 */&lt;/p&gt;
&lt;p&gt;今回の文学フリマ東京では、2ブース（長机1つ分）を利用して無人販売風の展示を行いました。これは、見本誌の展示とタブレットを使った注文システムを1ブースにまとめ、その横のブースで会計と作品の受け渡しを行うという企画です。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/bunfree34/pre-unattended.jpg"&gt;&lt;img alt="白いクロスをかけた長机の上に置かれている、注文用のタブレット端末、10冊以上の見本誌、呼び出し用の非常ボタン、小さな赤い鳥居" height="540" src="/images/bunfree34/pre-unattended_thumb.jpg" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;この企画は、変態美少女ふぃろそふぃ。が推進しているブース無人化計画の一部です。最終的には1ブースで（&lt;a href="https://news.amane.moe/issues/26-1119829"&gt;補助輪&lt;/a&gt;のない）無人販売を行い、準備完了後から片付け直前まで無人で頒布が成立することを目指しています。今後はタブレットによる注文システムだけではなく、カプセルトイやカードダスの販売機のようなものを設置したりするかもしれません。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;変態美少女ふぃろそふぃ。では、ブースに（少なくとも人間の）売り子を置かずに済むようにすることを中長期的な目標に置いています。ただ作品を手渡したり、金銭の勘定をすること自体はあまり重要ではないからです。極端な例を出すと、ブース設営が終わったら会場を抜け出して大井競馬場に遊びに行くことさえできるようにすべきだと考えています。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://news.amane.moe/issues/11-898675"&gt;あまねけ！ニュースレター #11&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;今回の無人販売注文システムは、&lt;a href="https://flutter.dev/"&gt;Flutter&lt;/a&gt;で書かれた注文アプリとPython（Tornado）で書かれた注文サーバーで構成されています。ブース内で注文システムを完結させるために&lt;sup id="fnref:internal"&gt;&lt;a class="footnote-ref" href="#fn:internal" title="アプリとサーバー間の通信速度向上やモバイル回線の切断に備えるため。"&gt;3&lt;/a&gt;&lt;/sup&gt;、有人ブースに置いたノートPCで注文サーバーを立てて、&lt;a href="https://support.microsoft.com/ja-jp/windows/%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB-%E3%83%9B%E3%83%83%E3%83%88%E3%82%B9%E3%83%9D%E3%83%83%E3%83%88windows-pc-%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B-c89b0fad-72d5-41e8-f7ea-406ad9036b85#WindowsVersion=Windows_11"&gt;モバイルホットスポット&lt;/a&gt;経由で注文アプリと通信するよう設計しましたが、ファイアウォールの設定などで手間取ってしまった部分がありました。&lt;/p&gt;
&lt;p&gt;また、注文中に「カードを取って裏の番号を入力する」という手順があったのですが、多くの人がカードを見つけられずにまごついていました。これは、スペースの都合でカードをタブレットの近くに置くことができなかったせいだと思われます。この番号入力方式自体は、事前に用意したカードのみで注文を識別できる&lt;sup id="fnref:damm"&gt;&lt;a class="footnote-ref" href="#fn:damm" title="Dammアルゴリズムによるチェックディジットを採用しており、手入力による間違いもある程度防げるようにしました。"&gt;4&lt;/a&gt;&lt;/sup&gt;のでレシートプリンタを置かずに済むという画期的なアイデアだったものの、UIや物理的配置に少し反省点が残りました。&lt;/p&gt;
&lt;video controls width="1280" height="800" src="/images/bunfree34/nightingale.webm"&gt;&lt;/video&gt;

&lt;p&gt;&lt;cite&gt;動画内の画像（「光速感情デラックス」表紙・ポストカード宛名面デザイン、「先輩、今日もいいですか」表紙、「花・カフェ・宝くじ」表紙）はそれぞれ&lt;a href="https://twitter.com/gomafu_warabi"&gt;ごまふわラビ&lt;/a&gt;によって&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされています。&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;Isabella the Monero Girlは何らかのライセンスの下で提供されているものではありません。&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;この注文システムで最もクールなのは、&lt;a href="https://www.getmonero.org/"&gt;Monero&lt;/a&gt;での会計に対応しているという点です。その場で為替レートを取得して、1円未満の差は四捨五入して表示しています。支払額は会計時点で固定され、その後の変動は反映されません。注文から1時間以内に受け取ることをお願いしているので、為替変動幅がそれほど大きくなることはないという想定です&lt;sup id="fnref:coinpayments"&gt;&lt;a class="footnote-ref" href="#fn:coinpayments" title="注文時点の為替レートで支払額を固定して、一定時間内に支払いを完了することを求める方式は、coinpaymentsなどの仮想通貨決済代行でも採用されています。"&gt;5&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;h2 id="_6"&gt;ポスター展示企画のこと&lt;/h2&gt;
&lt;p&gt;ポスター展示企画は、&lt;a href="https://news.amane.moe/issues/9-880170"&gt;フローチャートボード&lt;/a&gt;の発展として考案された取り組みです。本来は数枚のポスターを順番に掲示したり、いわゆるポスターセッションのような来場者に向けた解説を行う予定でしたが、寄稿予定者の都合が合わず今回は1枚だけの展示となりました。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/bunfree34/poster.jpg"&gt;&lt;img alt="「ふみきり」作品解説と「機械ネコ」の考察 ポスター" height="778" src="/images/bunfree34/poster_thumb.jpg" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;このポスターデザインは&lt;a href="https://twitter.com/gomafu_warabi"&gt;ごまふわラビ&lt;/a&gt;が制作したものであり、何らかのライセンスの下で提供されているものではありません。&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;こちらは、第三十一回文学フリマ東京で発行された&lt;a href="https://bunfree31.hentaigirls.net/"&gt;next kawaii inversion&lt;/a&gt;の表紙に描かれた白い猫のようなキャラクター「機械ネコ」についての解説ポスターです。&lt;a href="https://www.lawson.co.jp/service/others/multicopy/#photo"&gt;ローソンのマルチコピー機&lt;/a&gt;を利用して、A3プリント4枚（480円）を貼り合わせたA1ポスターに仕上がっています。ふつうのA1ポスターの印刷には2000円・1日～程度かかるので、ちょっとした急ぎの展示にとてもおすすめです。&lt;/p&gt;
&lt;p&gt;ポスター展示企画では、今回のように自分が書いた作品についてのストーリー解説や背景知識の紹介はもちろん、架空の作品や事物についての解説や、事実・虚構・予言を問わず来場者に知識を伝えるあらゆる内容を展示できます。今後も展示方法や内容を検討しながらシリーズ化する予定ですので、ポスター制作に興味のある方や来場者に解説したいことがある方は、ぜひ次回の企画にご参加ください。&lt;/p&gt;
&lt;p&gt;ちなみに、次回から文学フリマ東京は前置の漢数字ナンバリング（第◯◯回文学フリマ東京）から後置のアラビア数字ナンバリング（文学フリマ東京◯◯）に変わるらしいです。ソートしたら他地域の文学フリマと混ざって面倒になったのかもしれませんね。&lt;a href="https://bunfree.net/event/tokyo35/"&gt;文学フリマ東京35&lt;/a&gt;は2022年11月20日開催予定です！&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;[PR] 新刊「&lt;a href="https://bunfree34.hentaigirls.net/"&gt;光速感情デラックス&lt;/a&gt;」が出たので、ぜひ読んでください。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://bunfree34.hentaigirls.net/#acquisition"&gt;&lt;img alt="光速感情デラックス 表紙" height="851" src="/images/bunfree34/faster-emotion-deluxe_cover.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;この表紙画像は&lt;a href="https://twitter.com/gomafu_warabi"&gt;ごまふわラビ&lt;/a&gt;によって&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされています。&lt;/cite&gt;&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:no-password"&gt;
&lt;p&gt;本編を読むためのパスワードが貼付されていません。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-password" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:simple-postcard"&gt;
&lt;p&gt;単に片面に表紙とQRコードを刷っただけで、それ単体で見ると &lt;em&gt;つまらない&lt;/em&gt; ポストカードを指しています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:simple-postcard" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:internal"&gt;
&lt;p&gt;アプリとサーバー間の通信速度向上やモバイル回線の切断に備えるため。&amp;#160;&lt;a class="footnote-backref" href="#fnref:internal" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:damm"&gt;
&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/Damm%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0"&gt;Dammアルゴリズム&lt;/a&gt;によるチェックディジットを採用しており、手入力による間違いもある程度防げるようにしました。&amp;#160;&lt;a class="footnote-backref" href="#fnref:damm" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:coinpayments"&gt;
&lt;p&gt;注文時点の為替レートで支払額を固定して、一定時間内に支払いを完了することを求める方式は、&lt;a href="https://www.coinpayments.net/"&gt;coinpayments&lt;/a&gt;などの仮想通貨決済代行でも採用されています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:coinpayments" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>2022/02/02～2022/05/03</title><link href="https://ama.ne.jp/post/report-20220503/" rel="alternate"/><published>2022-05-03T01:50:00+09:00</published><updated>2022-05-03T01:50:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-05-03:/post/report-20220503/</id><summary type="html">&lt;p&gt;2022/02/02～2022/05/03のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/milesmcc/shynet"&gt;Shynet&lt;/a&gt;によるアクセス解析を始めました。&lt;ul&gt;
&lt;li&gt;某所で&lt;a href="https://plausible.io/"&gt;Plausible&lt;/a&gt;を使っているのを見て遊びたくなりましたが、ちょっとお高めだったので代替を探して立ててみました。&lt;/li&gt;
&lt;li&gt;説明によれば「Modern, privacy-friendly, and detailed web analytics that works without cookies or JS.」らしいです。&lt;/li&gt;
&lt;li&gt;Cookieなどのステートフルなチャネルを使用しないので、アクセスログをフィルタ・集計するより少しリッチな情報が得られる程度です。&lt;/li&gt;
&lt;li&gt;飽きたらやめると思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;一部の記事について「読んだ」ボタン押下後のシェア画面であらすじを共有できるようにしました。&lt;ul&gt;
&lt;li&gt;現在実装されているのは、&lt;a href="/post/longxiapian/"&gt;えびせんパーティー&lt;/a&gt;や&lt;a href="/post/fortune-popcorn/"&gt;フォーチュン・ポップコーン&lt;/a&gt;などです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;メニューに&lt;a href="/donation/"&gt;寄付&lt;/a&gt;と&lt;a href="/join-forum/"&gt;フォーラム&lt;/a&gt;を追加しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付&lt;/a&gt;は前からあったページで、リンクのみ復活させました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/join-forum/"&gt;フォーラム&lt;/a&gt;には、Matrixの部屋に参加する手順を記載しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;現在使用していないファイルや不要な中間生成物を&lt;a href="/link/"&gt;アーカイブ&lt;/a&gt;から削除しました。&lt;ul&gt;
&lt;li&gt;わずかに容量が小さくなっています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;h4 id="_4"&gt;あまねけ！&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/after-lily/"&gt;百合に男が挟まること、の再考&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/goodbye-lily/"&gt;百合よ、さようなら&lt;/a&gt;の続きです。&lt;/li&gt;
&lt;li&gt;この手の随想は、今後も数年おきに記すことになると思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_5"&gt;&lt;a href="https://news.amane.moe/"&gt;ニュースレター&lt;/a&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/20-1026742"&gt;あまねけ！ニュースレター #20&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;helix editor&lt;/li&gt;
&lt;li&gt;アクセス解析のこと&lt;/li&gt;
&lt;li&gt;同人誌即売会における仮想通貨支払いのこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/21-1040067"&gt;あまねけ！ニュースレター #21&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;Docker Hub Proをやめたこと&lt;/li&gt;
&lt;li&gt;不正利用対策のこと&lt;/li&gt;
&lt;li&gt;匿名配送のこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/22-1047226"&gt;あまねけ！ニュースレター #22&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;光速感情デラックス・ポスター企画募集のこと&lt;/li&gt;
&lt;li&gt;「非中央集権型」と「分散型」のこと&lt;/li&gt;
&lt;li&gt;四角いお魚のこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/23-1065540"&gt;あまねけ！ニュースレター #23&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;Matrixにおけるスタンプや絵文字のこと&lt;/li&gt;
&lt;li&gt;第4回百合文芸小説コンテスト（未完）に取り組んだこと&lt;/li&gt;
&lt;li&gt;青いポストをさがして&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/24-1076526"&gt;あまねけ！ニュースレター #24&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;今日からMatrixを使い始める人へ&lt;/li&gt;
&lt;li&gt;百合に男が挟まること、の再考のこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/25-1087039"&gt;あまねけ！ニュースレター #25&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;文フリの決起集会をしたこと&lt;/li&gt;
&lt;li&gt;新しいポスタースタンドを買ったこと&lt;/li&gt;
&lt;li&gt;打ち消し表示のこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/26-1119829"&gt;あまねけ！ニュースレター #26&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;ProtonMailで新しいドメインが利用可能になったこと&lt;/li&gt;
&lt;li&gt;補助輪付きの無人販売所のこと&lt;/li&gt;
&lt;li&gt;海を渡って&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/27-1120847"&gt;あまねけ！ニュースレター #27&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;#PARKのキャラクター展 に行ったこと&lt;/li&gt;
&lt;li&gt;Matrixにスレッド機能が追加されたこと&lt;/li&gt;
&lt;li&gt;Matrixで部屋から閉め出されてしまったこと&lt;/li&gt;
&lt;li&gt;クラウドストレージのこと（持続可能性・検閲可能性）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/28-1143022"&gt;あまねけ！ニュースレター #28&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;Twitterの買収と分散SNSのこと&lt;/li&gt;
&lt;li&gt;エロ小説-料理-自分自身への命名のこと&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>百合に男が挟まること、の再考</title><link href="https://ama.ne.jp/post/after-lily/" rel="alternate"/><published>2022-03-15T12:42:00+09:00</published><updated>2022-03-15T12:42:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-03-15:/post/after-lily/</id><summary type="html">&lt;p&gt;主人が百合にさよならして3年が過ぎました&lt;/p&gt;</summary><content type="html">&lt;p&gt;私が&lt;a href="/post/goodbye-lily/"&gt;百合よ、さようなら&lt;/a&gt;という記事を書いてから3年以上が経ちましたが、まだ、たまに百合について考えることがあります。&lt;/p&gt;
&lt;p&gt;百合とはなんだったでしょうか？　私たちはなぜ連帯してきたのでしょうか？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;女性同士の同性愛や友愛&lt;br&gt;
&lt;cite&gt;&lt;a href="https://dic.pixiv.net/a/%E7%99%BE%E5%90%88"&gt;ピクシブ百科事典&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;女の子二人以上の特別な関係性(親友、ライバル、先輩後輩など)&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.lovefes.info/glfes.htm"&gt;Girls Love Festival&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;女性同士の交流の中で生まれる、特別な親愛&lt;br&gt;
&lt;cite&gt;&lt;a href="https://www.pixiv.net/novel/contest/yuribungei"&gt;百合文芸小説コンテスト&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;百合とは &lt;strong&gt;複数&lt;/strong&gt; の &lt;strong&gt;女性&lt;/strong&gt; 同士の &lt;strong&gt;特別&lt;/strong&gt; な関係である、としばしば定義されてきました。改めて箇条書きにすると、以下の全てを満たすものが「百合」です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複数の人格的主体が関係の構築を担っていること&lt;/li&gt;
&lt;li&gt;関係を構築する人格的主体が人間のシス女性に類推できる性別であること&lt;/li&gt;
&lt;li&gt;恋愛あるいは特別な関係を構築していること&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このような文脈において、しばしば「百合とレズは異なる」という言葉遊びに近い言説も多くみられます（&lt;a href="https://toppoi.blog.fc2.com/blog-entry-899.html"&gt;参考&lt;/a&gt;）。当然、これらは百合のあいまいさを流出させないように不誠実な壁を作るための恣意的な定義（あるいは方言に近いもの）です。&lt;/p&gt;
&lt;p&gt;かれらのいう「百合」の定義は、十分に女性らしさを備えていればパスできるという点で非常にあいまいで、恣意的で、不誠実です。学生の学校での恋愛であれ、社会人の職場での恋愛であれ、主婦の団地での不倫であれ、男性器が生えていてもなお、女性らしさのあるキャラクター同士なら「百合」の名の下に連帯できますし、そうあるべきと信じています。&lt;/p&gt;
&lt;p&gt;唯一かれらが連帯できるのは、人間のシス男性に類推できるキャラクターが登場した場合だけです。ルールは非常に簡単で、男性キャラクターが登場するにもかかわらず百合を名乗っている作品に、「百合に男を挟むなんて！」と叫べばエントリーが完了します。&lt;/p&gt;
&lt;p&gt;百合に男を挟むなというのは、先述の定義を完全に信用していれば容易に導き出せる論理です。「百合とは女だけが出てくる作品」ならば「男が出てくる作品は百合ではない」ので、天地がひっくり返っても負けることはありません。&lt;/p&gt;
&lt;p&gt;しかし、あいまいで、恣意的で、不誠実なその定義を使わずに批判するのは難しいことです。比較的古い「百合」のイメージ――たとえば男子禁制、女学生、女学校、月見草文化――に照らせば、男性キャラクターは不自然で排除されるべき存在になるかもしれません。一方で、同時に多くの社会人百合も捨て去られてしまうでしょう。女学校が舞台でもなければ、女学生が関係を構築するわけでもないからです。&lt;/p&gt;
&lt;p&gt;このように「百合」の定義を厳しくすると、必ずあぶれる作品や世界が出てきてしまいます。それらは連帯への反発を招き、いつしか内部崩壊を招く原因になるでしょう。だから、より強い連帯を保つには「男性キャラクターが登場するのに百合を名乗る悪い作品」で壁を作って塗り固めるしかないのです。強引で有害な「男らしさ」への嫌悪感や怒り、個々人が持つミサンドリックなエピソード――それらが入り交じってより強固な壁、強い連帯を作り出します。&lt;/p&gt;
&lt;p&gt;つまり「百合に男を挟むな」運動は、自然で合理的な定義というよりも、むしろ共通の敵を見つけて強く連帯するためのプロパガンダにすぎません。無意味で根拠のない権威を与える&lt;a href="http://yurinavi.com/2021/08/30/renewal/"&gt;百合公認&lt;/a&gt;のような取り組みも、一見すると有害な概念ですが、これらと結合して連帯と排除を加速させる強い効果を持っています。&lt;/p&gt;
&lt;p&gt;このようなプロパガンダを誠実に守っている作品かどうかを見分けるのは非常に簡単です。すなわち、男性は下品で、軽薄で、強引で、性欲で動く &lt;em&gt;顔のない&lt;/em&gt; 非人格的主体として描かれます。男性キャラクターを出したいシーンや世界観ではあるものの、しっかり描写すると裏切り者として炎上してしまうので、仕事を押し付ける嫌な上司や、ナンパしてくるチャラ男のように名もなき背景の一部として使うというわけです。&lt;/p&gt;
&lt;p&gt;逆に、百合に男が挟まることをタブーとしていない作品は、それらの葛藤なく世界を描写できます。名前と人格のある男性キャラクターが女性キャラクター同士の関係に割り込むかもしれませんし、一度は結婚してしまうことさえあるでしょう。それどころか、バイセクシャルの女性キャラクターだってありえます。かれらはこのような自由に描かれた作品に火をつけて、「百合に男を挟むな」とか「これは百合ではない」と罵詈雑言を浴びせて城壁を厚く塗り固めるわけです。&lt;/p&gt;
&lt;p&gt;そもそも、&lt;a href="https://dic.pixiv.net/a/%E7%99%BE%E5%90%88%E3%81%AE%E9%96%93%E3%81%AB%E6%8C%9F%E3%81%BE%E3%82%8B%E7%94%B7"&gt;自分が注目していた人間関係に強引に割って入る異質なキャラクター&lt;/a&gt;や、&lt;a href="https://comic-walker.com/contents/detail/KDCW_KS02000007010000_68/"&gt;自分の性別を偽って相手に近づく不誠実なキャラクター&lt;/a&gt;に嫌悪感を覚えるのは当然であり、わざわざ百合の定義や性別から導く必要のない単純な事実です。しかし、かれらはそれを「女を性欲処理道具かトロフィーにしか思っていない男」として悪魔化することで連帯を強めようとしています。&lt;/p&gt;
&lt;p&gt;あれから3年以上経った今でも、私たちに百合の厳密な定義は不要です。どんなキャラクターが登場しようとも、 &lt;strong&gt;自分に誠実であるかぎり&lt;/strong&gt; 百合を名乗ることができます。百合の定義論はいつでも連帯のためにあり、常に人々を分断しています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「百合」とは: かつての「百合」は、無責任な拡張と恣意的な適用によって「女性同士の人間関係」というほとんど意味のないラベルに変質してしまいました。この歴史を踏まえ、現在ではより広く「既存の強力な異性愛規範を要求しない全ての人間関係（やその物語）」を指していると考えられています。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://hentaigirls.net/lily-info/"&gt;HentaiGirls&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;あなたは、どうですか？&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>2022/01/01～2022/02/01</title><link href="https://ama.ne.jp/post/report-20220201/" rel="alternate"/><published>2022-02-02T01:04:00+09:00</published><updated>2022-02-02T01:04:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-02-02:/post/report-20220201/</id><summary type="html">&lt;p&gt;2022/01/01～2022/02/01のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付&lt;/a&gt;の履歴を更新しました。&lt;ul&gt;
&lt;li&gt;2021年に受け取った寄付金額を確定しました。&lt;/li&gt;
&lt;li&gt;いつも応援いただきありがとうございます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ページ上部に広告を表示するようにしました。&lt;ul&gt;
&lt;li&gt;今のところ&lt;a href="/"&gt;あまねけ！&lt;/a&gt;の機能と周辺サービスの告知が日替わりで表示されています。&lt;/li&gt;
&lt;li&gt;広告の掲載をご希望の方はお気軽にご連絡ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;トップページの「More information...」リンクを修正しました。&lt;ul&gt;
&lt;li&gt;forum.amane.moe（閉鎖済）から&lt;a href="https://amaneimages.com/"&gt;amaneimages.com&lt;/a&gt;に変わりました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/comment/202201130003/"&gt;匿名のコメント&lt;/a&gt;で指摘いただいたものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amane.im/"&gt;自己紹介ページ&lt;/a&gt;の開設にともなって、&lt;a href="/i/"&gt;わたし&lt;/a&gt;は非推奨になりました。&lt;/li&gt;
&lt;li&gt;記事一覧でのプレビュー表示を改善しました。&lt;/li&gt;
&lt;li&gt;印刷時のデザインを改善しました。&lt;ul&gt;
&lt;li&gt;リンクの内容がより見やすくなっています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/spontaneous-sonars/"&gt;ソナーズのリリースによせて、感想のこと&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;ぶっちぎりで感想がもらえる小説サイトこと&lt;a href="https://sonar-s.com/"&gt;ソナーズ&lt;/a&gt;の紹介と利点・欠点について考察しました。&lt;/li&gt;
&lt;li&gt;感想の三要素（具体性・ネガポジ・自発性）については、もちろんこの記事で初出の概念です。&lt;/li&gt;
&lt;li&gt;この記事の知見を流用すれば「感想マッチングアプリ」を作れそうな気もするんですが、そういうの欲しい人います？　作る予定は今のところありませんが……&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ニュースレターをかきました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/15-949639"&gt;あまねけ！ニュースレター #15&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/16-981240"&gt;あまねけ！ニュースレター #16&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/17-992283"&gt;あまねけ！ニュースレター #17&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/18-1004505"&gt;あまねけ！ニュースレター #18&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/19-1016386"&gt;あまねけ！ニュースレター #19&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>ソナーズのリリースによせて、感想のこと</title><link href="https://ama.ne.jp/post/spontaneous-sonars/" rel="alternate"/><published>2022-01-10T21:16:00+09:00</published><updated>2022-01-10T21:16:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-01-10:/post/spontaneous-sonars/</id><summary type="html">&lt;p&gt;感想マッチングアプリ構想&lt;/p&gt;</summary><content type="html">&lt;blockquote&gt;
&lt;p&gt;ぶっちぎりで感想がもらえる小説サイトことソナーズ、どういう仕組みなのかと思ったら読んだ作品の感想を書かないと次の作品を読めない仕組みらしくてスパルタって感じだ&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1475267336026222596"&gt;1475267336026222596&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;ソナーズについて&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;文単位の「いいね」機能&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;感想強制機能&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;感想の三要素&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_7"&gt;具体性&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;ネガポジ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;自発性&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;ソナーズに不足していること&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;ぶっちぎりで感想がもらえる小説投稿サイトこと &lt;strong&gt;ソナーズ&lt;/strong&gt; は、主に &lt;strong&gt;文単位の「いいね」&lt;/strong&gt; と &lt;strong&gt;感想を強制するシステム&lt;/strong&gt; によって作者にポジティブなフィードバックを届けることをねらっており、他の小説投稿サービスと異なる目的を持っています。&lt;/p&gt;
&lt;p&gt;本記事では、ソナーズが目指しているであろう感想ネットワークについて触れながら、いわゆる &lt;strong&gt;感想の三要素&lt;/strong&gt; との関連や、目指すべき感想指向型サービスについて考察します。&lt;/p&gt;
&lt;h2 id="_2"&gt;ソナーズについて&lt;/h2&gt;
&lt;h3 id="_3"&gt;概要&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://twitter.com/marshmallow_qa/status/1349570704576901120"&gt;ぶっちぎりで感想がもらえる小説投稿サイト&lt;/a&gt;こと&lt;a href="https://sonar-s.com/"&gt;ソナーズ&lt;/a&gt;が&lt;a href="https://twitter.com/marshmallow_qa/status/1470765674838761472"&gt;昨年2021年12月&lt;/a&gt;にリリースされました。このサービスの構想自体は&lt;a href="https://twitter.com/marshmallow_qa/status/1248863541378961408"&gt;2020年1月頃から&lt;/a&gt;あったようで、少しずつ開発を進めつつ、現在は&lt;a href="https://twitter.com/marshmallow_qa/status/1470967925914083329"&gt;三本柱のうち二本しか実装されてない&lt;/a&gt;ベータ版を提供している状態です。&lt;/p&gt;
&lt;p&gt;ソナーズは匿名質問サービスの&lt;a href="https://marshmallow-qa.com/"&gt;マシュマロ&lt;/a&gt;と同じ組織によって運営されており、&lt;a href="https://twitter.com/marshmallow_qa/status/1269853387073318913"&gt;マシュマロ派生のサービスである&lt;/a&gt;と明言されています。もともと、マシュマロの運営組織では&lt;a href="https://note.com/novel/n/n0a87f49c1f1d"&gt;マシュマロ式小説書き方講座&lt;/a&gt;というナレッジを公開しており、最終的にはこれらの知見とマシュマロで得られた（AIのための）データ群を組み合わせて展開していく予定なのかもしれません。&lt;/p&gt;
&lt;p&gt;このサービスは今のところ、「文単位の『いいね』機能」と「感想強制機能」の二本柱によって特徴付けることができます。以下は、2022年1月時点で確認した動作をもとにした記載です。&lt;/p&gt;
&lt;h3 id="_4"&gt;文単位の「いいね」機能&lt;/h3&gt;
&lt;p&gt;文単位の「いいね」機能では、読んでいる文章の部分をタップして文ごとに &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; を付けることができます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="文単位の「いいね」機能で、文末にハートマークと個数が表示されている様子" height="144" src="/images/spontaneous-sonars/sentence-like.png" width="618"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; の数は押すたびに増え、1回のいいねごとに作者に通知されます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="「いいね」が押されたことの通知" height="400" src="/images/spontaneous-sonars/like-notification.png" width="610"&gt;&lt;/p&gt;
&lt;p&gt;これにより、読者はいいと思った箇所をタップするという直感的な操作で、効率的にポジティブな感情を示すことができます。また、「いいね」の数は積算されるので、言葉にならない強い思いを連打で示すという使い方もできるでしょう。&lt;/p&gt;
&lt;p&gt;今のところ、画面を間違ってタップして増えた「いいね」を取り消すことはできません。また、いいねできる文の単位はシステムが自動的に分割したもので、約物を駆使した複雑な文章では適切な粒度で「いいね」できない場合があります。&lt;/p&gt;
&lt;p&gt;以下は、閉じカッコで文が分断されている例です。&lt;/p&gt;
&lt;p&gt;&lt;img alt="文中の閉じカッコの前で文が分割されている様子" height="182" src="/images/spontaneous-sonars/bad-sentence.png" width="607"&gt;&lt;/p&gt;
&lt;p&gt;長い文章を読んで作者が喜ぶような適切な感想を組み立てるのは、非常に高度で負担のかかる営みです。一方、Twitterなどで人気を集める短いテキストやキャッチーなイラストは、一瞬で全貌を把握して「いいね」をつけることができる &lt;em&gt;消化しやすい&lt;/em&gt; 表現です。そのため、文章を文単位の細かいチャンクに切り出して「いいね」しやすくすることは、これらの &lt;em&gt;インスタントな&lt;/em&gt; 手法と同じ土俵に立ち、ポジティブなフィードバックを得るには必要な機能といえます。&lt;/p&gt;
&lt;p&gt;しかし、細かいチャンクに対して「いいね」を送ることは、必ずしも文章全体の評価を表しているとは限りません。特に、小説のように全体的なストーリーの面白さと局所的な表現技法の巧拙の組み合わせで成り立つ作品では、ストーリーの評価は構造上明らかに無視されてしまいます。&lt;/p&gt;
&lt;p&gt;このような &lt;em&gt;エモい&lt;/em&gt; 文のチャンクのみが重視されれば、作者は最終的に小説という体裁を守る必要すらなくなり、より短いテキストを用いた表現に回収されていくでしょう。&lt;/p&gt;
&lt;p&gt;当然、ただ短いテキストを箇条書きで羅列する作品ばかりになってしまっては、Twitterのモーメントとほぼ変わらない体験しか与えられなくなり、ソナーズの優位性が失われてしまいます。そのような事態を防ぐため、細切れの「いいね」では考慮できないストーリーの評価を保証するために用意されたのが、感想を強制する機能です。&lt;/p&gt;
&lt;h3 id="_5"&gt;感想強制機能&lt;/h3&gt;
&lt;p&gt;ソナーズでは、作者が感想を受け付けるよう設定した作品に対して、読後に匿名で感想を送ることができます。一方で、感想を受け付けないよう設定した作品には、感想を送ることはできません。さらに、感想を &lt;strong&gt;送らなければならない&lt;/strong&gt; 場合が存在し、この状態を本記事では感想強制機能と呼びます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="「感想求む！」と「感想不要」を選択できる感想受け付けオプション" height="122" src="/images/spontaneous-sonars/impression-option.png" width="157"&gt;&lt;/p&gt;
&lt;p&gt;感想が送信されると、作者の通知欄にその内容が表示されます。今のところ、送った/受け取った感想を一覧で表示する機能はなく、通知は古いものから順に消えてしまうので、感想を保管したり読み返したい層からは不満の声が上がっているようです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="感想が送信されたことの通知（「えびせんパーティー」という作品に送られた「この前中華えびせんを食べましたよ！」という感想）" height="254" src="/images/spontaneous-sonars/impression.png" width="611"&gt;&lt;/p&gt;
&lt;p&gt;感想を送らなければならないのは、特定の条件を満たした状態で新しい作品を読もうとしたタイミングだけです。具体的には、新たに感想受付中の作品を読みたい場合のみ、過去に読んだ同じ作者の感想受付中の作品全てに対して、（タップによる「いいね」ではなく）文字で感想を送らなければなりません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="前に読んだ作品の感想を送るまで次の作品を読めない旨を示すダイアログ（「この作品を読む前に、以前読んだ『三体のオートファクト』の感想をお願いします！ソナーズは「感想を書く読者」と「作品を書く作者」が一緒になって創作の好循環をぐるぐる回すサイトです」というメッセージと「感想を書きにいく」という青いボタン）" height="406" src="/images/spontaneous-sonars/impression-alert.png" width="544"&gt;&lt;/p&gt;
&lt;p&gt;この機能は、作者が感想を求めやすく読者が感想を送りやすいシステムを実現し、ソナーズ上での感想に基づく作者-読者の関係（ &lt;strong&gt;感想ネットワーク&lt;/strong&gt; ）の強化を目的としていると考えられます。&lt;/p&gt;
&lt;p&gt;なお、ほとんどのシチュエーションでは、読者が感想を書かない自由と、作者が感想を書かせない自由がそのまま残されていることに注意すべきです。本記事では便宜的に感想強制機能と呼んでいますが、サイト全体で横断的に無条件で作品に感想を書くよう強いたり、読んだ作品の感想を書くまで全くサイトを使用できなくなるというものではありません。&lt;/p&gt;
&lt;p&gt;つまり、読者は今後同じ作者の作品を読むつもりがなければ感想を書かずに放置することができますし、作者は自分の作品を感想受付不可とマークすることで感想強制機能の対象から外すことができます。&lt;/p&gt;
&lt;p&gt;ここで、他の小説投稿サービスを利用したことがある人は、感想を全く受け付けないか、感想強制機能を有効にするかの二択しかないことに違和感を覚えるかもしれません。たいていのサービスでは、感想ネットワークに参加せず任意に感想を受け付ける選択肢が用意されているからです。&lt;/p&gt;
&lt;p&gt;そのような &lt;em&gt;常識&lt;/em&gt; から、ソナーズを使い始めた作者の中には「感想は欲しいけれど読者に強制はしたくない」と悩む人もいます。これは、一見すると読者を気遣う慎ましい作者の意見のようですが、実際は感想ネットワークに協力せずサービスにただ乗りしようとする身勝手な考えです。ソナーズは感想ネットワークの構築と引き換えに作者に多くの感想を届けるサービスであり、健全なネットワークの醸成に貢献せずにその利益のみをかすめ取ることは許されません。&lt;/p&gt;
&lt;p&gt;また、感想強制機能があるおかげで感想を書きやすくなる読者も存在します。一部の読者は「感想を書きたいのにな～」という思いを持ちつつ、作品を読んで得られた感情を言葉にするのが苦手だったり、作者に不快感を与えることを懸念して立ち止まる場合があります。かれらは「必ずしも整った綺麗な感想を送らなくてもよいこと」や「作者が感想を求めていること」を知れば感想を書けるかもしれませんが、それを知るための行動を起こすこともありません。名付けるなら「サイレントかまってちゃん」のような状態です。&lt;/p&gt;
&lt;p&gt;感想強制機能は、そのような読者の背中を押して感想を送りやすくする一助となりえます。「システムから強制されたから」「作者が求めているから」と非自発的な要因に仮託して感想を送るハードルを下げることで、少なくとも一時的な感想の流量を増やせるでしょう。この取り組みを繰り返し、読後に感想を書くことを習慣づけられれば、もはや感想を送るための非自発的な要因は不要になります。&lt;/p&gt;
&lt;p&gt;さらに、感想強制機能は「感想を書いてほしいのにな～」と考える作者の背中を押す仕組みでもあります。感想による交流がなかなか活発にならないのは、読者と同じように作者もサイレントかまってちゃんに徹してしまうことが一因であり、これもシステムが感想を強制することである程度緩和できます。「システムが強制してるんで感想お願いします」と非自発的な要因に押し付けることができるからです。感想を任意に受け付ける機能を要望することは、サービスの趣旨を踏まえれば的外れとまでいえるでしょう。&lt;/p&gt;
&lt;p&gt;ここまで説明したとおり、ソナーズはいわば自発性を犠牲にした感想ネットワークの構築システムであり、従来の自発性に依存した小説投稿サービスとは全く異なる視点で設計されていることが分かります。&lt;/p&gt;
&lt;h2 id="_6"&gt;感想の三要素&lt;/h2&gt;
&lt;p&gt;ここまで、ソナーズは感想の自発性を犠牲にして交流を活発にするためのサービスであると述べました。そもそも、感想の自発性とはどのような概念だったでしょうか？&lt;/p&gt;
&lt;p&gt;私たちが感想についてその構造や内容をメタに考えるとき、以下の三つの要素を元に分類・考察することができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;具体性: 内容についてどれほど詳細に記述しているか&lt;/li&gt;
&lt;li&gt;ネガポジ: 褒めている(like)か、けなしている(dislike)か&lt;/li&gt;
&lt;li&gt;自発性: 強制されたり報酬に基づいているものか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もちろん、これ以外にも軸を設定することはできます。たとえば、感想を書いた人に注目して「読者の読解力」や「作者と読者が親しいかどうか」といった条件を考えたり、感想の対象となる作品に基づいて分類することも可能ですが、ここでは感想そのものの内容や性質に基づいて進めます。&lt;/p&gt;
&lt;h3 id="_7"&gt;具体性&lt;/h3&gt;
&lt;p&gt;まず &lt;strong&gt;具体性&lt;/strong&gt; とは、感想の中で作品についてどれほど詳細に評価しているかという属性です。多くのSNSや投稿サービスにおける「いいね &lt;img alt=":thumbsup:" class="emoji" height="16" src="/emojis/1f44d.png" width="16"&gt; &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; 」や「よくないね &lt;img alt=":thumbsdown:" class="emoji" height="16" src="/emojis/1f44e.png" width="16"&gt; &lt;img alt=":broken_heart:" class="emoji" height="16" src="/emojis/1f494.png" width="16"&gt; 」やスタンプ機能（参考: &lt;a href="https://dic.pixiv.net/a/pixiv%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%97"&gt;pixivスタンプ&lt;/a&gt;）は、作品全体の評価を高々2～8個程度の事前に用意された選択肢でしか表現できず、明らかに具体性に欠けた表現手法です。「いいね」でしか数値的な評価を表現できないTwitterのようなSNSでは、「役に立った」とか「面白い」とか「もっとやれ」といった感情が全て「いいね」の数に還元されてしまいます。&lt;/p&gt;
&lt;p&gt;具体性の低い感想は、サービスのデザインによって強いられるものとは限りません。リプライやコメントの形で表現できる感想でも、単に「よかった」や「おすすめ！」のような具体性のない短いコメントを書くことはできるでしょう。一方、作品の内容を多面的に評価したり、複数の小さな場面を抜き出して思いを綴ったコメントは非常に具体的といえます。すなわち、どれほど詳細に感想を書くかについては、常に読者に任されています。最低文字数を設定すれば具体性を保証できるかもしれませんが、文字数と具体性が必ずしも一致しないことには注意すべきです。&lt;/p&gt;
&lt;p&gt;逆に、サービスのデザインによっては読者の思いと関係なく具体性の高い感想を強いられることもあります。たとえば、ソナーズの文単位の「いいね」機能では、言葉による表現なしでどの文がどれくらいよかったかを示すようデザインされています。この機能が必ずしも文章全体の評価に繋がるものではないことは先に述べた通りですが、従来の「いいね」より詳細な位置と連打の積算による具体的な表現を行うことができます。&lt;/p&gt;
&lt;p&gt;具体性の高い感想は、作者が作品にかけた時間や手間に価値を生み、新たな作品を生む原動力となりえます。しかし、具体的な感想を書くのは非常に高度で負担のかかる活動であり、具体性の高い感想だけを求めるサービスは遅かれ早かれ衰退するでしょう。そのため、多くの投稿サービスは「いいね」や &lt;img alt=":star:" class="emoji" height="16" src="/emojis/2b50.png" width="16"&gt; の数で表現する五段階評価のようなシステムを併用しています。&lt;/p&gt;
&lt;h3 id="_8"&gt;ネガポジ&lt;/h3&gt;
&lt;p&gt;次に &lt;strong&gt;ネガポジ&lt;/strong&gt; とは、その感想が（作者ではなく）作品に対してどのような評価をしているかという属性です。作品の良い部分を挙げたり褒めたりするポジティブな感想と、悪い部分に注目してこき下ろすネガティブな感想では、作品に向けられる視線の質が異なります。&lt;/p&gt;
&lt;p&gt;ポジティブな感想は現状を肯定してその活動の継続を促進するものであり、ソナーズの感想ネットワークでも重視されているものです。一方、ネガティブな感想は現状を否定してその活動の変化を促進するものであり、ポジティブな感想と同様に有用なこともありますが、疎まれることが多いです。感想においては「とりあえず褒めておけばいい」が成り立つとしても、「とりあえずけなしておけばいい」は成り立たないことに注意する必要があります。&lt;/p&gt;
&lt;p&gt;なお、ネガポジと具体性はもともと独立した概念です。つまり、感想の具体性にかかわらずネガティブまたはポジティブな表現を妨げることはできません。五段階評価のようなシステムは、具体性なくネガポジを広く表現できる最たる例です。しかし、「いいね」に対する「よくないね」や低評価のマークは重視されないか、そもそも用意されていないことすらあります。もちろん、具体性なく「面白くない」や「嫌い」とコメントすることはできますが、数値的な評価として集計されるわけではありません。このようなデザインの下では、ネガティブな感想が意図的にシステムから隠されているといえます。&lt;/p&gt;
&lt;p&gt;また、ネガポジを持たない感想も存在します。文章構造や物語の構成について客観的に分析した具体性に富む文章は、読者の感情表現ではなく、作品について論じるためにニュートラルな立場から記述されるものです。これらは感想というよりテクスト分析や解説と呼ぶべきものですが、場合によっては &lt;em&gt;強い&lt;/em&gt; 感想と分類されることがあります。&lt;/p&gt;
&lt;p&gt;ネガポジを持たず、具体性にも欠ける感想について考えることもできます。たとえば、&lt;a href="/"&gt;あまねけ！&lt;/a&gt;の「読んだ」ボタンは記事を最後まで読んだことしか表現できません。作者への誤字脱字の報告（参考: &lt;a href="https://ncode.syosetu.com/n5852fw/"&gt;誤字脱字報告したら、ブロックユーザー指定された。&lt;/a&gt;, &lt;a href="http://melnoah.blog.fc2.com/blog-entry-139.html"&gt;誤字脱字の指摘って…&lt;/a&gt;）も、どんなに善意からの有益な指摘だとしても、作品を単なる文字情報として読み込んだことしか示せません。これらは &lt;em&gt;弱い&lt;/em&gt; 感想と分類されることがあります。&lt;/p&gt;
&lt;h3 id="_9"&gt;自発性&lt;/h3&gt;
&lt;p&gt;最後に &lt;strong&gt;自発性&lt;/strong&gt; とは、その感想がどのような動機で書かれたかという属性です。先の二つとは異なり、ある程度に感想の内容や性質から離れた軸ですが、感想を書いた人の属性ではなくあくまでそのきっかけについて考慮するものです。&lt;/p&gt;
&lt;p&gt;従来の投稿サービスは、自発性に依拠した感想システムがほとんどであり、あくまで作者の呼びかけと読者の善意によってかろうじて感想ネットワークが成立していました。そこでは、前述の通り「感想が欲しいのにな～」と「感想を送りたいのにな～」が空中で飛び交う非効率的な状況が続いています。自発性を前提とするこの構図は、インターネット以前のファンレター文化などから続いており、もはや不変で当たり前の性質とさえ思われています。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;感想とは衝動の産物で、強く心を動かされたときに自然と出てくるものです。&lt;br&gt;
だから感想は読者が強制されて書くものではないし、もちろん作者が謝礼をもって依頼するものでもありません。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://m-molockchi.fanbox.cc/posts/1311201"&gt;モロクっち「執筆活動を無期限休止します」（2020-08-20）&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;2020年に作品の感想や反応がもらえず筆を折ったモロクっち氏によれば、感想は「この気持ちを伝えたい！」という強い衝動によってのみ生まれるものです。この認識は、ソナーズが提供する感想強制機能と真っ向から対立します。大量のコンテンツによる可処分時間の奪い合いが当然となった現代でさえ、単に毎月金銭で支援するだけではなく、強い自発性に基づいて反応しなければ価値がないというわけです。&lt;/p&gt;
&lt;p&gt;そもそも、自発性のない感想というのはどのようなものでしょうか。その代表例は、小学生や中学生が夏休みの宿題として課される読書感想文でしょう。宿題としての読書感想文の上では、児童・生徒が自発的に感想を書こうとしているわけではなく、定められた分量を埋めて提出するために本を &lt;em&gt;読まされ&lt;/em&gt; 、文章を &lt;em&gt;書かされ&lt;/em&gt; ます。&lt;/p&gt;
&lt;p&gt;もちろん、もともと本を読んで感想を書くのが得意・好きだったり、初めは非自発的に感想文に取り組んだものの、最後には楽しく終えられたという経験を持っている人もいるでしょう。そういう人たちにとっては、読書感想文は自発的で楽しい取り組みだといえます。&lt;/p&gt;
&lt;p&gt;ソナーズの感想強制機能も同じように、もともと感想を書くのが得意な人にはそのまま感想を書いてもらい、感想を書くのが苦手な人にも感想を書くのに慣れてもらうシステムと考えることができます。先述の通り、感想を書くことを習慣化できれば、もはやシステムが感想を強制する必要はなくなり、いったんは自発性を犠牲にしたはずが、かえって自発性の高い感想ネットワークを構築できるでしょう。&lt;/p&gt;
&lt;p&gt;感想の自発性のみを強く重視すると、ほとんどの場合はネットワークの衰退に繋がります。何も対策せず自発的に感想が来るのを待ったり、自発的な感想の量で自分の能力を試そうとすることは、根本的に「面白い作品を書けば売れる」という素朴で愚鈍なアイデアと変わりません。読者-作者のマッチングはタイミングや運が影響し、作者や作品の属性だけでは決定づけられない不安定なものです。そこで、誰も動かず一歩目の感想が生まれないよりましだ、と両者に無理矢理一歩踏み出させるのがソナーズの意義だといえます。&lt;/p&gt;
&lt;h2 id="_10"&gt;ソナーズに不足していること&lt;/h2&gt;
&lt;p&gt;ここまで、ソナーズの特徴や目的と感想の三要素の関連について述べました。&lt;/p&gt;
&lt;p&gt;ソナーズは従来の投稿サービスが全く目を向けていなかった &lt;strong&gt;自発性&lt;/strong&gt; にメスを入れ、あえて犠牲にすることで感想の流量を増やす思い切ったシステムを提供しています。これにより、受け身で感想を待つだけの作者や感想を書けずに立ち止まっている読者が、大きな負担なく感想ネットワークに参加しやすくなるでしょう。&lt;/p&gt;
&lt;p&gt;しかし、自発性を犠牲にした感想ネットワークの構築は、これまで質の高い少量の感想だけが流れていた世界に、ある程度質の低い感想が大量に流れるようになると言い換えることもできます。宿題としての読書感想文と、自発的な活動としての読書記録の差を考えると分かりやすいかもしれません。具体性の高い感想が欲しい作者に具体性の低い感想が、ポジティブな感想が欲しい作者にネガティブな感想が届く新たなミスマッチも増えるでしょう。&lt;/p&gt;
&lt;p&gt;ソナーズが解決したのは自発性の軸のみです。既存の具体性やネガポジの軸はそのままに、サイレントかまってちゃんだらけの非効率的な世界を反転させました。そのため、自発性を超えたところで論じられていた問題はそのまま残っています。あらゆるコミュニケーションがハラスメントとして扱われる現代では、作者が求めていない感想を送りつけること自体が非難の対象となりかねませんし、読者が感想を書けずに立ち止まる新たな原因にもなるでしょう。&lt;/p&gt;
&lt;p&gt;そのため、今後の感想指向型サービスに求められるのは、マッチングアプリのような出会いの枠組みだと考えられます。意図しない接触を完全に排除するよう求められる現代では、マッチングアプリが偶然の出会いをサポートしており、自らの情報を適切に開示しなければ出会いを探すことはできません。これを作者-読者の感想によるコミュニケーションに準用し、作者は欲しい感想の傾向を示し、読者は書ける感想の傾向を示すことで、望まない不幸を回避できる可能性があります。&lt;/p&gt;
&lt;h2 id="_11"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;1000字以上の日本語でこの記事の感想を送ってくれた方の中から、抽選で1名に1000円分のPayPay残高をプレゼントします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;しめきり: 2022/01/18 00:00:00 JST&lt;/li&gt;
&lt;li&gt;あて先 &lt;a href="https://matrix.to/#/@amane:matrix.amane.moe"&gt;@amane:matrix.amane.moe&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="ugoki"/></entry><entry><title>2021/10/04～2021/12/31</title><link href="https://ama.ne.jp/post/report-20211231/" rel="alternate"/><published>2022-01-01T23:41:00+09:00</published><updated>2022-01-01T23:41:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2022-01-01:/post/report-20211231/</id><summary type="html">&lt;p&gt;2021/10/04～2021/12/31のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;stewカテゴリの記事で「役に立った」ボタンを押せるようにしました。&lt;/li&gt;
&lt;li&gt;壊れていた一部のリンクを修正・削除しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/autofact/"&gt;三体のオートファクト&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;オートファクトというのは、オートマタとアーティファクトのかばん語で、従来の「ドール」という呼称の差別性を排除しています。&lt;/li&gt;
&lt;li&gt;夏に買ったアイスをずっと保管しておいて年越しに食べる「年越しアイス」というアイデアから生まれたお話です。&lt;/li&gt;
&lt;li&gt;冒頭だけで終わらせるのはもったいない世界観を作れた気がするので、そのうち続きを書くかもしれません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/virtual-materials/"&gt;仮想物質やってみた&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;仮想通貨のような性質を持つ架空の物質「仮想物質」の操作についてかきました。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/6774"&gt;存在しない技術 Advent Calendar 2021&lt;/a&gt;のためにかいた記事です。&lt;/li&gt;
&lt;li&gt;ちょっとおかしな倍速GIF動画をお楽しみいただけます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/longxiapian/"&gt;えびせんパーティー&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;中華えびせん&lt;ruby&gt;&lt;rb&gt;龍蝦片&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ロンシャーピエン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を使った架空の習慣を楽しむマキさんと私を描いたお話です。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/11-898675"&gt;あまねけ！ニュースレター #11&lt;/a&gt;に投稿したロープウェイの掌編が元になっています。&lt;/li&gt;
&lt;li&gt;短編としてはちょっと不完全燃焼気味な&lt;a href="/post/autofact/"&gt;三体のオートファクト&lt;/a&gt;と比較して、いかにも短編っぽい短編に仕上がっています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/matrix-daisuki/"&gt;中央集権型システムとその代替&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;SNSやグループチャットの実装を中央集権性に注目して比較した上で、分散グループチャットシステムの&lt;a href="https://matrix.org/"&gt;Matrix&lt;/a&gt;をおすすめしました。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/7207"&gt;筑波大学文芸部関係者による Advent Calendar 2021&lt;/a&gt;のためにかいた記事です。&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/denpa-culcap/"&gt;電波資本&lt;/a&gt;のようなたのしいエッセイを書こうと思って取りかかったのですが、結局いつもの嘘評論記事になっています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/bunfree-great-wall/"&gt;フローチャートボード・印刷版チケット付きパンフレットのふりかえり&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;第三十三回文学フリマ東京で展示したフローチャートボードや、新しい発行形態である印刷版チケット付きパンフレットについて反省しました。&lt;/li&gt;
&lt;li&gt;ふりかえりとしてはかなり遅れてしまいましたが、どうにか2021年中にやらねばと思って滑り込ませた記事です。&lt;/li&gt;
&lt;li&gt;2022年もたくさん注目してもらえるような企画を進めていきたいですね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>フローチャートボード・印刷版チケット付きパンフレットのふりかえり</title><link href="https://ama.ne.jp/post/bunfree-great-wall/" rel="alternate"/><published>2021-12-31T23:56:00+09:00</published><updated>2022-01-01T01:44:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-12-31:/post/bunfree-great-wall/</id><summary type="html">&lt;p&gt;全自動魚釣り機&lt;/p&gt;</summary><content type="html">&lt;p&gt;2021年11月23日（火祝）に第三十三回文学フリマ東京が開催された。&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。&lt;/a&gt;として参加し、フローチャートボードなどの新たな展示や、新たな発行形態による新刊の頒布などを行った。ほとんどの内容は&lt;a href="https://news.amane.moe/issues/10-880759"&gt;あまねけ！ニュースレター #10&lt;/a&gt;で述べたとおりだが、いくつか加筆して改めて企画の利点・欠点などを振り返る。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;フローチャートボード&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;動機・目的&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;構成&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;利点&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;欠点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;印刷版チケット付きパンフレット&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_7"&gt;動機・目的&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;構成&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;利点&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;欠点&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;フローチャートボード&lt;/h2&gt;
&lt;h3 id="_2"&gt;動機・目的&lt;/h3&gt;
&lt;p&gt;フローチャートボードは、主に売り子を通行人から隠すための取り組みである。つまり、売り子の存在による負の集客力を解消し、少なくともゼロまで引き上げることをねらっている。そのため、売り子の存在によって集客力が下がらないことが事前に分かっているなら、この企画を採用する必要はない。&lt;/p&gt;
&lt;p&gt;即売会の可処分時間は、最大でも開場から閉場までの5～6時間程度が一般的であり、来場者はその中で目的のサークルに全て立ち寄る必要がある。たいていの来場者は、既にフォローしているサークルや事前告知から来場前にリストを作成したり（list ahead）、それらのブースの周辺から別のブースを探索して新たな作品を発見したり（booth strapping）する。後者の場合はサークルの事前情報がないため、基本的にはその場にある作品の表紙とポスター、そして売り子で判断することが多い。&lt;/p&gt;
&lt;p&gt;作者と作品を切り離すべきという主張のアナロジーから、売り子で作品を選択すべきではないという主張もできよう。しかし、この主張では、インターネットの普及によって通販の効率化が進み、電子書籍の発行が容易になってもなお現地で開催される即売会が人気を集める理由を説明できない。即売会の利点は、特定の場所と時間を区切ることで生まれる &lt;em&gt;お祭り性&lt;/em&gt; の享受と、売り子とのコミュニケーションにある。そうでなければ、しばしば &lt;em&gt;かわいい&lt;/em&gt; コスプレイヤーを売り子として配置する動機がアフター・オフパコを残して消失してしまう。&lt;/p&gt;
&lt;p&gt;もちろん、作者と売り子が一致することで集客力が向上する（あるいは少なくとも減退しない）場合もある。特に、サークルがlist aheadされている場合は作者とのコミュニケーションを重視している可能性が高い。また、作品の傾向によっては作者の属性を明らかにしても集客力に寄与しない場合もある。ただし、この場合でも &lt;em&gt;かわいい&lt;/em&gt; 売り子を作者と偽って配置することによって集客力を向上できる可能性は残っている。&lt;/p&gt;
&lt;p&gt;売り子の存在が集客力にとってマイナスになるなら、いっそブースの後ろを丸ごと隠してしまおう、というのがフローチャートボードの基本的な目的である。&lt;/p&gt;
&lt;p&gt;これは主に性的表現をほとんどあるいは全く含まない雑多な &lt;em&gt;百合&lt;/em&gt; 小説を頒布するサークルが発案した企画であり、&lt;a href="/post/lily-letter-film/"&gt;&lt;em&gt;かわいい&lt;/em&gt; 売り子がいるブースで何を買うでもなく延々とおしゃべりしている来場者を長年目撃してきた&lt;/a&gt;経験から生まれたものであることに注目せよ。&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。&lt;/a&gt;は売り上げが非常に少ない弱小サークルであり、いわゆる売り子を依頼できる環境にない。&lt;/p&gt;
&lt;p&gt;この企画は、文フリ東京31での&lt;a href="/post/bunfree-lovehotel-1/"&gt;ラブホパネル&lt;/a&gt;と同様のコンセプトであり、一連の中長期的な計画の一部である。ただし、ラブホパネルでは売り子を覆い隠すには高さも幅も足りなかったため、今のところ単なるおもしろアトラクションとして認知されている。&lt;/p&gt;
&lt;h3 id="_3"&gt;構成&lt;/h3&gt;
&lt;p&gt;フローチャートボードは、三つ折りにした高さ100cmの壁を机に立てることで成立する。今回の文フリでは机の高さが70cmであり、目線の高さが170cmを超えなければ中を覗き見ることはできない。&lt;/p&gt;
&lt;p&gt;&lt;img alt="フローチャートボード、見本誌、カルトンが設置された長机と、黒いアームカバーを着けてリボンをかたどったピンク色の大きな指輪をはめた売り子が、両手をフローチャートボードの下から差し出している様子" height="926" src="/images/bunfree-great-wall/board.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;より詳細には、上部のフローチャート掲載部分と下部の窓口・余白部分に分かれる。まず、高さ80cm×幅35（≓25√2）cm・30cm・35cmのポリスチレンボードを三つ用意してテープで接続する。そして、左右の下部が高さ20cmとなるように&lt;a href="https://jp.daisonet.com/products/4549131617634"&gt;フリーマルチパネル355×355mm&lt;/a&gt;を接続して、中央は商品の受け渡し口として空けておく。このボードの左右を45度売り子側に折り込むと、高さの割にはかなり安定して机に立てることができる。最終的には幅80cm×奥行25cmとなり、ブースの幅90cm×奥行45cmに収まりのよい構造物となる。&lt;/p&gt;
&lt;p&gt;ボードの左右前面には見本誌やサンプルを配置する。A5サイズの冊子の高さが21cmのため、ボードの左右下部20cmは余白として放置した。今回、フローチャートではおすすめの既刊を通し番号で示したため、見本誌にも同様の番号を貼付している。&lt;/p&gt;
&lt;p&gt;ボードの中央下部にはカルトン（青い支払い用トレイ）と&lt;a href="https://jp.daisonet.com/products/4549131911459"&gt;呼び出しライト&lt;/a&gt;、&lt;a href="https://jp.daisonet.com/products/4972822710213"&gt;ダミーの防犯カメラ&lt;/a&gt;を配置している。売り子が黒い手袋とメルヘンな指輪を装着しているのは、売り子の属性を隠してフローチャートボードの効果を高めるための補助的な取り組みである。&lt;/p&gt;
&lt;p&gt;この企画はフローチャートボードと名付けられているものの、フローチャート自体は本質的な部分ではない。通常ならブースの後ろ側に立てるようなA3サイズのポスターを配置したり、作品の末尾に付属するあとがきや4コマ漫画を大きく印刷することもできる。いずれにせよ、ボードに掲載する内容は企画の目的にはあまり寄与しない。&lt;/p&gt;
&lt;p&gt;このフローチャートは、はい/いいえで答えることができる質問を辿っていくことで、最終的におすすめの既刊についての情報を受け取ることができる内容となっている。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/bunfree-great-wall/flowchart.png"&gt;&lt;img alt="フローチャートのデザイン" height="600" src="/images/bunfree-great-wall/flowchart_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今回は番号に対応する作品を明らかにした状態で頒布を行ったが、ボードには番号のみを示して、受け渡しまでどんな作品が出てくるか分からないブラインド販売にしても面白いかもしれない。&lt;/p&gt;
&lt;p&gt;質問の内容は以下の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「百合」は2人のキャラクターでしか成立しない関係だと思いますか？&lt;/li&gt;
&lt;li&gt;「百合」は常識を越えた架空の物語ではなく、現実と地続きに感じられる方が楽しめますか？&lt;/li&gt;
&lt;li&gt;「百合」はシスジェンダー女性同士でしか成立しない関係だと思いますか？&lt;/li&gt;
&lt;li&gt;「百合」はキャラクターの性別において隠すべき禁断の関係だと思いますか？&lt;/li&gt;
&lt;li&gt;「百合」は死や死の示唆と相性がいいと思いますか？&lt;/li&gt;
&lt;li&gt;「百合」は終末モノとして実装するのに適していると思いますか？&lt;/li&gt;
&lt;li&gt;「百合」は文章やイラスト・マンガなどの平面的な表現に収まるべきものではないと思いますか？&lt;/li&gt;
&lt;li&gt;「百合」は一定の年齢や場所によって一時的に生じる関係だと思いますか？&lt;/li&gt;
&lt;li&gt;「百合」には精神的な交流を超えた性欲の発露や過度な性的接触は不要だと思いますか？&lt;/li&gt;
&lt;li&gt;「百合」はSFとして実装するのに適していると思いますか？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tipsの内容は以下の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;誰も写っていない草原や浜辺、廃校などの景色の写真を撮影して「不在の百合」と称する取り組みが人気を集めています。&lt;/li&gt;
&lt;li&gt;「百合」は、無責任な拡張と恣意的な適用によって「女性同士の人間関係」というほとんど意味のないラベルに変質しました。&lt;/li&gt;
&lt;li&gt;現在ではより広く「既存の強力な異性愛規範を要求しない全ての人間関係（やその物語）」を指していると考えられています。&lt;/li&gt;
&lt;li&gt;月見草文化に代表される古典的な百合はしばしば終わりのある関係とされ、その面影が死への連想として今も残っています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;主な工夫ポイントは、プレイガイドと撮影OKマークを大きく配置したこと、新刊へのフローを用意したこと、おすすめできる作品がない人にもきちんとケアをしたこと&lt;sup id="fnref:yurinavi"&gt;&lt;a class="footnote-ref" href="#fn:yurinavi" title="弊サークルの作品をおすすめできない人でも楽しめそうな作品がたくさん紹介されているサイトをQRコードで示した。"&gt;1&lt;/a&gt;&lt;/sup&gt;などである。&lt;/p&gt;
&lt;h3 id="_4"&gt;利点&lt;/h3&gt;
&lt;p&gt;フローチャートボードは明らかに大きな効果を生み出していた。フローチャートボードを利用することで、大きく分けて3つの利点があると考えられる。&lt;/p&gt;
&lt;p&gt;まず、体験型おまつりコンテンツとして強い広告力を持っていた。ブースから見ていた限りでは、来場者がボードの前で左右に移動し、フローチャートを辿っているのが分かった。少なくとも、ラブホパネルよりプレイしやすい環境を作ることができていただろう。実際、比較的辿り着きやすい&lt;a href="https://glf23.hentaigirls.net/"&gt;Vesuva&lt;/a&gt;の売り上げが異常に増えていたし、フローチャートとはあまり関係のない新刊についても普段より売れ行きがよかった。&lt;/p&gt;
&lt;p&gt;次に、売り子と来場者を十分に隔離できていた。これは、新型コロナウイルス感染症の感染拡大防止の観点から好ましいのはもちろん、この企画の主たる目的の達成でもある。来場者は売り子の視線を気にせずフローチャートに集中でき、売り子は購入者の視線や動きを観察してじっと待つ必要がなくなった。具体的には、足を止めて10秒～1分間ほどボードを眺める人もたくさん確認できたし、フローチャートを見て &lt;em&gt;百合の定義&lt;/em&gt; について二言三言話す人もいた&lt;sup id="fnref:silent"&gt;&lt;a class="footnote-ref" href="#fn:silent" title="ポリスチレンボードで遮蔽されているおかげなのか、会話内容は商品の受け渡し口から少し漏れてくる程度でほとんど聞こえなかった。"&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;ただし、滞在時間が延びやすくなったため、表紙イラストにタイトル文字といくらかの説明を加えたような従来のポスターを配置するだけでは、来場者に物足りない印象を与えるかもしれない。&lt;/p&gt;
&lt;p&gt;最後に、売り子が来場者の視線に惑わされることがなくなった。今回の設計では、来場者の膝から足元までしか見えないため、どこに視線が向けられているかを確認できない。しかし、ボードに注目してフローチャートを読もうとする人は、必ず視線とつま先が同じ方向を向くため、視線を直接確認できなくともこちらを見ていることが分かる。一方、&lt;a href="/post/lily-letter-film/"&gt;ブースを流し見るだけの通行人&lt;/a&gt;は、通路を通り抜けることを目的としているため、決してブースには足を向けないのである。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ブースに興味を示さない通行人のつま先がフローチャートボードの方を向かない様子" height="750" src="/images/bunfree-great-wall/foot.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/post/bunfree-lovehotel-1/"&gt;ラブホパネルとフィッシング&lt;/a&gt;で「同人誌即売会は釣りのようなもの」と述べた通り、来場者の視線を観察して目を合わせたり声を掛けるのは戦略の一つである。しかし、 &lt;em&gt;異常な通行人&lt;/em&gt; に集中して精神をすり減らすのはあまりに楽しくない。そこで、あえて来場者の視線を遮断するフローチャートボードを &lt;em&gt;エサ&lt;/em&gt; として設置することで、全自動魚釣り機のような体験を得ることができた。来場者がフローチャートを読み、見本誌を読み、購入を決めるまでの間に売り子が介入できることはなく、単なる会計係として座っているだけで済む。&lt;/p&gt;
&lt;p&gt;なお、どうしても来場者の視線を把握したい場合は、マジックミラーのように一方から見える窓を設置したり、商品の受け渡し口に（ダミーではない）監視カメラを設置することである程度対応できるだろう。&lt;/p&gt;
&lt;h3 id="_5"&gt;欠点&lt;/h3&gt;
&lt;p&gt;多くの利点を持つフローチャートボードだが、その裏返しとしての欠点もいくつか抱えている。&lt;/p&gt;
&lt;p&gt;まず、左右のブースに注目している人が、こちらのブースにはみ出しやすくなる。これは、売り子の視線を遮断して緊張感を排除したことによる弊害だろう。設置されているのがボードであれ見本誌であれ、ブースの前面からはみ出して他のブースを塞ぐのは多くの即売会で明示的に禁止されているものの、ブースの主から見えていないだろうという油断からつい居座ってしまうのは想像に難くない。&lt;/p&gt;
&lt;p&gt;次に、ボードの構造上どうやっても左右からは売り子が見えてしまう。これは、構造物を机の天面だけで完結させようとする限りは避けられない特性である。完全に売り子を隠すのは現実的には難しいものの、複数の連続したブースを取得してボードの幅を大きくすることで、ある程度緩和することができる。&lt;/p&gt;
&lt;p&gt;また、最初に述べたとおり、売り子の存在によって集客力が下がらないことが事前に分かっているなら採用すべきではない。これは、売り子を隠すことで集客力が下がらないように調整しつつ、体験型のコンテンツを導入して集客力を高めるための苦し紛れの企画である。&lt;/p&gt;
&lt;h2 id="_6"&gt;印刷版チケット付きパンフレット&lt;/h2&gt;
&lt;h3 id="_7"&gt;動機・目的&lt;/h3&gt;
&lt;p&gt;印刷版チケット付きパンフレットは、事前生産によるサークルへのリスクの一極集中を避け、サークルと全ての購入者で不確実性を分担するための発行形態である。&lt;/p&gt;
&lt;p&gt;これまで、一般的な同人サークルは過去の自分自身や周囲の売れ行きを参考にグッズや同人誌の発行数を決定し、事前に全てを生産してから即売会に参加していた（事前生産型）。この場合、そのサークルは在庫リスク・赤字リスクを一手に抱えているといえる。印刷のためのコストを回収できる売り上げがあれば問題にはならないものの、多くの弱小サークルはコストを回収できないまま在庫を抱えている。&lt;/p&gt;
&lt;p&gt;しかし、サークルが発行するグッズや同人誌は本来アマチュアが自ら表現するための手段であり、サークルと購入者は必ずしも商業主義的な商店と客の関係に還元されるとは限らない。むしろ、作品を通じたある種の協力関係が成立していることさえある。すなわち、サークルのみがリスクを抱えるのは不健全な状態と考えることができる。&lt;/p&gt;
&lt;p&gt;このようなリスクの一極集中を回避するために、オンデマンド型や完全受注型を用いた事後生産型に切り替えることができるかもしれない。オンデマンド型は注文のたびに生産するスキームで、完全受注型は最初に注文を受け付けてから締め切り後に生産を開始するスキームである。ただし、即売会で注文して後で届ける場合、先払いなら購入者が作品を受け取れないリスクが、後払いならサークルが代金を受け取れないリスクが増大する。&lt;/p&gt;
&lt;p&gt;印刷版チケット付きパンフレットの目的は、事後生産型の採用によってサークルが得るメリットをそのままに、購入者のリスクを軽減することである。もちろん、作品が一定数確実に売れることが分かっている場合や、単純なオンデマンド生産や完全受注生産を実施できる場合は、この発行形態を採用する必要はない。&lt;/p&gt;
&lt;h3 id="_8"&gt;構成&lt;/h3&gt;
&lt;p&gt;印刷版チケット付きパンフレットは、印刷版チケットとパンフレットで構成されている。&lt;/p&gt;
&lt;p&gt;印刷版チケットは、宝くじより一回り小さい6.5cm×14cmの少し厚手の紙片である。作品の表紙を横に伸ばした券面と、チケットに紐付く情報の登録情報を確認できるQRコードが印刷された半券がミシン目で区切られている&lt;sup id="fnref:michine"&gt;&lt;a class="footnote-ref" href="#fn:michine" title="ミシン目はOLFA ミシン目ロータリー28で切られている。"&gt;3&lt;/a&gt;&lt;/sup&gt;。裏面には、チケットに紐付く情報を変更するためのQRコードと印刷版チケットの利用規約が印刷されている。&lt;/p&gt;
&lt;p&gt;長期保管に耐えるように厚手の紙や薄いポリマーを素材にすべきであり、同人誌即売会トラベル・スクラップブックに貼り付けても遜色のない質感を持たせることが求められる。&lt;/p&gt;
&lt;p&gt;&lt;img alt="印刷版チケット（表面）" height="349" src="/images/bunfree-great-wall/ticket_sample.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;パンフレットは、A4サイズの紙を三つ折り（巻き三つ折り）にすることで、6つの細長い領域にコンテンツを印刷できるようになっている。面1には表紙イラストとタイトルを、面1をめくって現れる面2には表紙イラストとリード文を、さらにめくると面3～5にそれぞれ登場人物紹介、電子版のQRコード、次回以降の展望が描かれている。裏側の面6には印刷版チケットの利用規約のコピーを添付した。&lt;/p&gt;
&lt;p&gt;電子版のQRコードが印刷された面4には右上と左下にチケットを収めるための小さなスリットが切られており、作品の紹介と電子版の提供だけではなく、スリーブの役割も果たしている。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/bunfree-great-wall/leaf-outside.png"&gt;&lt;img alt="パンフレットの外側（左から面2,面6,面1）" height="533" src="/images/bunfree-great-wall/leaf-outside_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/bunfree-great-wall/leaf-inside.png"&gt;&lt;img alt="パンフレットの内側（左から面3,面4,面5）" height="533" src="/images/bunfree-great-wall/leaf-inside_thumb.png" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;このパンフレットは、電子版を読むためのある種のトークンとして作用し、省スペースなひとつの作品として物理的に保持できる独立性を持たせることができる。&lt;/p&gt;
&lt;p&gt;物理的構成上は、単なる電子版のQRコードが付属したパンフレットに小さな紙片が添付されているだけである。しかし、印刷版チケットは一定の条件を達成することで印刷版と引き換えることができる。その条件とは「チケットが20枚以上発行されていること」である。20冊というのは、弊サークルが普段利用している印刷所の最小ロットに他ならない。&lt;/p&gt;
&lt;p&gt;印刷版チケットは、事後生産型を大枠として、電子版の提供および共同購入のような仕組みを実現するためのスキームである。つまり、十分な注文数が溜まるまで印刷版の提供を遅らせる一方で、従来通り電子版を確実に提供できるようにして、サークルと購入者のリスクを極小に抑えることができる。&lt;/p&gt;
&lt;h3 id="_9"&gt;利点&lt;/h3&gt;
&lt;p&gt;印刷版チケット付きパンフレットの利点は、大きなリスクをサークルと購入者の間で小さく分担できるという点に尽きる。&lt;/p&gt;
&lt;p&gt;先に述べたとおり、単純な事前生産の場合は、どのくらい生産するかをサークル自身で決定し、全てのコストをサークル自身が負って事前に作品を生産する必要がある。この場合、サークルだけが在庫リスク・赤字リスクを負っており、（潜在的な）購入者は何らリスクを負わない。そのため、リスク回避の傾向が強くなって生産数が低く抑えられる可能性も高い。&lt;/p&gt;
&lt;p&gt;もちろん、趣味の同人サークルでも通常の営利団体と同様に自らリスクを負って商売をすべきであり、購入者にリスクを負わせるのは不当な責任転嫁だという意見もあろう。しかし、即売会や同人サークルが完全な商業主義に染まっていないからこそ享受できるメリットも多数あり、これらを温存しつつ構造的欠陥を解消するには必要な取り組みである。&lt;/p&gt;
&lt;p&gt;印刷版チケット付きパンフレットを採用した場合は、事前に生産する必要があるのはパンフレットとチケットのみである。印刷版本体は &lt;em&gt;十分な&lt;/em&gt; 数が売れてから発行すればよく、それまでは資金を保管して待機していればよいものの、サークル側はいつ &lt;em&gt;十分な&lt;/em&gt; 数だけ売れるか分からない不確実性（リスク）を抱える。購入者も同様であり、購入時点では確実に電子版を入手できることのみが保証されており、印刷版がいつ発行されるか分からない不確実性を受け取っている。&lt;/p&gt;
&lt;p&gt;さらに、単純な事後生産型と比較しても、とりあえず購入時点で電子版を読めることが保証されているという点で優れている。また、単に表紙を印刷した名刺やはがきサイズの紙を配布するよりも、より凝ったデザインのパンフレットやチケットを発行できるという副次的な利点もある。&lt;/p&gt;
&lt;p&gt;購入者は電子版の入手が保証されているため、必ずしも印刷版が発行されるよう宣伝する必要がない。宣伝に参加せずに電子版を楽しんだり、（それが&lt;a href="https://hentaigirls.net/post/free-cultural-works-2"&gt;自由文化作品&lt;/a&gt;なら）ライセンスに基づいてファイルを再配布したり、自分で印刷して売り出すことさえ許されている。&lt;/p&gt;
&lt;h3 id="_10"&gt;欠点&lt;/h3&gt;
&lt;p&gt;本来、即売会というのは名前の通りその場で取引が完了する性質の強い場である。通常、サークルは事前の支払いに対して生産または返金することを保証できず、購入者も事前の注文に対して後でその対価を支払うことを保証できないため、その場で支払い、その場で引き渡すことを基本としている。&lt;/p&gt;
&lt;p&gt;これは、事後生産型やその亜種が基本とする注文と生産の順番を入れ替える手法と相性が悪い。そのため、事前生産型ベースの取引を &lt;em&gt;期待&lt;/em&gt; している（潜在的な）購入者を遠ざけてしまう可能性がある。事前生産型と比較すると、サークルがパンフレットを売るだけ売って印刷版を発行しないかもしれないという懸念もあるだろう。ただし、このリスクは購入者が結託して販売数を明らかにすることである程度解消できる。&lt;/p&gt;
&lt;p&gt;また、印刷版チケット付きパンフレットは電子版で作品を読むことに抵抗のない読者を前提としたスキームであり、印刷版しか読まない・読めない読者に対してはあまりフィットしない。このスキームの上で必ず印刷版を入手したい読者には、パンフレットを複数枚購入するよう勧めるべきだろう。そもそも、印刷版の発行に大きなコストがかかることからこの手法が生まれたことを考慮すれば、印刷版を入手したい読者が（リスクを排除するために）より大きなコストを負担するのは当然のことである。&lt;/p&gt;
&lt;p&gt;もちろん、（潜在的な）読者がどのようなメディアで作品を楽しみたいかを調査するのは依然としてサークルに任されており、場合によっては印刷版チケット付きパンフレットを採用すべきではないこともあろう。もちろん、作品を読む気もないのに「紙で発行してくれたら読んだのに！」という声を上げる異常者に騙されてはならない。&lt;/p&gt;
&lt;h2 id="_11"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;各種作品は&lt;a href="https://hentaigirls.net/book/"&gt;公式サイト&lt;/a&gt;からいつでもお求めいただけます。たのしい取り組みや面白い作品をみなさんにもっと知ってほしいです。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:yurinavi"&gt;
&lt;p&gt;&lt;a href="https://yurinavi.com/"&gt;弊サークルの作品をおすすめできない人でも楽しめそうな作品がたくさん紹介されているサイト&lt;/a&gt;をQRコードで示した。&amp;#160;&lt;a class="footnote-backref" href="#fnref:yurinavi" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:silent"&gt;
&lt;p&gt;ポリスチレンボードで遮蔽されているおかげなのか、会話内容は商品の受け渡し口から少し漏れてくる程度でほとんど聞こえなかった。&amp;#160;&lt;a class="footnote-backref" href="#fnref:silent" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:michine"&gt;
&lt;p&gt;ミシン目は&lt;a href="https://www.amazon.co.jp/gp/product/B077Y6H5BK/"&gt;OLFA ミシン目ロータリー28&lt;/a&gt;で切られている。&amp;#160;&lt;a class="footnote-backref" href="#fnref:michine" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>中央集権型システムとその代替</title><link href="https://ama.ne.jp/post/matrix-daisuki/" rel="alternate"/><published>2021-12-18T13:21:00+09:00</published><updated>2021-12-18T13:21:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-12-18:/post/matrix-daisuki/</id><summary type="html">&lt;p&gt;Matrix/Element大好き&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://adventar.org/calendars/7207"&gt;筑波大学文芸部関係者による Advent Calendar 2021&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;（前略）……それでも我々は、しばしば我々の全てを誰かに任せているのです！　さらに悪いことに、それを誰に任せるか、あるいはどのように任せるかさえ指定できないことがあります。もちろん、これは非常に醜い現実であり、中央集権型のあらゆるサービスやシステムはいつでも妥協の末に選択されるべき存在です。&lt;/p&gt;
&lt;p&gt;そもそも、なぜ世界は中央集権的なシステムに支配されているのでしょうか。答えは簡単です。あらゆるデータや機能を暗黙的な信頼の下で集約すると非常に扱いやすくなるから。世界中に散らばった自分の管理下にない情報をどのように収集し、信頼し、更新するかを考慮するのは非常に難しく、また構造上不可能なことさえあります。&lt;/p&gt;
&lt;p&gt;例えば、電子メールはどうか。電子メールは（ &lt;code&gt;@&lt;/code&gt; 以降のドメインで識別されるような）複数のサーバが接続した分散システムによって実現されており、メールシステム全体を管理するための組織が存在するわけではありません。&lt;/p&gt;
&lt;p&gt;我々はどのサーバを使うかを（表面的には &lt;code&gt;@&lt;/code&gt; 以降のドメインで）選ぶことができますし、外部と通信できるサーバを持っていれば自分でシステムに参加することもできます。仮にあるサーバでBANされたとしても、比較的容易に別のサーバから参加し直すことが可能です。しかし、相手に送信したメールを自分の操作で削除したり、送信後に内容を編集することはできません。当然ですね。&lt;/p&gt;
&lt;p&gt;ビットコインなどの暗号資産におけるブロックチェーンは、電子メールと異なる性質のデータを保持するために全く違うアプローチをとっています。全世界で完全に同じ台帳を共有するために、インセンティブに裏付けられた特別なアルゴリズムで取引を記録します。しかし、同じ台帳を多くの人で共有するのは非効率的なシステムであり、実は従来のように中央集権的な銀行システムが自ら取引記録を付けた方が簡単で経済的です。しかし、ブロックチェーンによって多くの人が自由に金融システムに参加することができます。銀行はサーバを起動するだけで設立できるようなものではありませんし、口座凍結名義人リストに名前があれば参加することさえできなくなるでしょう。&lt;/p&gt;
&lt;p&gt;システムに誰でも自由に参加できるというのは、非常に重要なことです。この特徴は、昨今のTwitterやFacebookなどが抱えている構造的欠陥を浮き彫りにします。これらのSNSは、 &lt;em&gt;ルールを破った&lt;/em&gt; アカウントをシステム全体から排除することができますが、その &lt;em&gt;ルール&lt;/em&gt; は恣意的でしばしば矛盾を孕んでいます。&lt;/p&gt;
&lt;p&gt;中には、この「システムに誰でも自由に参加できるべき」という大原則を裏返し、「中央集権型システムなら悪意ある参加者を排除できる」と主張する人もいます。実際、&lt;a href="https://xtech.nikkei.com/it/article/NEWS/20071214/289521/"&gt;電子メールはトラフィックの90～95%がスパムだとする研究&lt;/a&gt;もありますし、大量の興味のないメールに悩んだことのある人も多いでしょう。ただし、これは電子メールという牧歌的インターネットの遺産を維持し続けている弊害であることを意識しなければなりません。本質的な解決に繋がらないスパムフィルタの高性能化や、DNSを無理に拡張した送信元の身元証明の実施などによって状況は緩和されつつあるものの、電子メールはもともとスパムに弱いシステムでした。&lt;/p&gt;
&lt;p&gt;悪意ある参加者を排除する程度の目的で中央集権型システムに頼るのは、我々の決定権を隷属の証として差し出すパターナリスティックな発想です。当然、SNSを運用する &lt;em&gt;父&lt;/em&gt; の力でスパムを排除することはできるでしょうが、その力はいつでも我々に向けられる可能性があります。もう一度明らかにしておくと、中央集権型システムに何ら疑問なく身を任せるということは、スパムを目にしないことはもちろん、我々の全てを――発言のルールさえも――誰かに任せることを意味しているのです！&lt;/p&gt;
&lt;p&gt;SNSを非中央集権的なシステムに作り替えるために考案されたのが&lt;a href="https://www.w3.org/community/activitypub/"&gt;ActivityPub&lt;/a&gt;です。ActivityPubベースのミニブログサーバ&lt;a href="https://github.com/mastodon/mastodon"&gt;Mastodon&lt;/a&gt;は、2017年に日本初のインスタンスとして&lt;a href="https://mstdn.jp/"&gt;mstdn.jp&lt;/a&gt;が開設されて大きな注目を集めました。あなたはいつでも好きなMastodonのインスタンスに登録して分散SNSに参加することができますし、自らインスタンスを立ち上げることもできます。もちろん、ActivityPubを実装しているサーバならMastodonである必要すらありません。&lt;/p&gt;
&lt;p&gt;分散SNSは不特定多数が交流するための理想的なシステムであり、かつての&lt;a href="https://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97"&gt;ニュースグループ&lt;/a&gt;を思い出させます。一方、電子メールは一対一の会話、あるいは一対多の一方的なメッセージに用いられるのが一般的で、交流の質が異なります。ですから、分散SNSは最終的に中央集権的なシステムに向かうでしょう。なぜなら、SNSはたくさんの人が参加している方が盛り上がるからです。ActivityPubは切り離されたインスタンスをどうにか繋ぎ止める手段のひとつですが、本質的な解決策ではありません。&lt;/p&gt;
&lt;p&gt;ここまで書いたとおり、あなたが非中央集権的なシステムに参加するには、必ずしも自分でサーバを用意したりメンテナンスしたりする必要はありません。どのサーバに参加するかを選択することはコストかもしれませんが、自分がすべきでないことを他人に任せるのは頭のいいアイデアです。中央集権的なシステムの問題点は、誰に任せるか、どのように任せるかを選択できないことでした。Twitterの運営が採用しているルールに不満があっても、 &lt;em&gt;別のTwitter&lt;/em&gt; に参加することはできません。&lt;/p&gt;
&lt;p&gt;さて、全世界と比較されたり喜びや怒りを強制されるSNSに疲れてしまい、SlackやDiscordで限られた仲間を集めて交流している人たちが増えつつあります。これ自体は非常にいいアイデアですが、SlackやDiscordも独自の権限でコミュニティをBANできる中央集権的なサービスであることを忘れてはいけません。&lt;a href="https://nlab.itmedia.co.jp/nl/articles/2112/07/news166.html"&gt;Discordで荒らしの自作自演の通報によってサーバが削除される事件&lt;/a&gt;でも明らかになったように、あなたの居場所を信頼できない誰かに任せるのは非常に危ういことです。&lt;/p&gt;
&lt;p&gt;あなたの居場所をあなたで選べるようにするために、銀行からブロックチェーンへ、TwitterからMastodonへ移っていくのと同じように、Discordの代わりに分散型のグループチャットシステムを採用することができます。その候補の一つとして、&lt;a href="https://matrix.org/"&gt;Matrix&lt;/a&gt;はどうでしょうか。MatrixはDiscordやSlackのように部屋を作って複数のメンバーとテキストでやり取りしたり、音声通話やビデオ通話を利用することができます。一対一のDMも利用できますし、電子メールの代わりに採用することもできるでしょう。&lt;/p&gt;
&lt;p&gt;Matrixは、電子メールと分散システムとしての構造も類似しているので、アカウントの作成も簡単です。あなたが事前に決めなければならないのは、どのサーバに参加して、どんなユーザー名のアカウントを使いたいかということだけです。例えば、僕がMatrix上で使用しているアカウント名 &lt;code&gt;@amane:matrix.amane.moe&lt;/code&gt; は &lt;code&gt;@ユーザ:サーバ&lt;/code&gt; の形式であり、メールアドレスに使用される &lt;code&gt;ユーザ@サーバ&lt;/code&gt; という形式によく似ています。MastodonなどのActivityPub上の  &lt;code&gt;@ユーザ@サーバ&lt;/code&gt; のようなアカウント名を思い出す人もいるかもしれません。&lt;/p&gt;
&lt;p&gt;Matrixサーバ（ホームサーバ）の主たる実装は&lt;a href="https://github.com/matrix-org/synapse"&gt;Synapse&lt;/a&gt;で、&lt;a href="https://matrix.org/clients/"&gt;Matrixクライアント&lt;/a&gt;で最も使いやすいのは&lt;a href="https://element.io/get-started"&gt;Element&lt;/a&gt;です（Android、iOS、PCに対応しています）。もうおわかりでしょうが、Matrixプロトコルを実装しているならどんなソフトウェアを使ってもかまいません。&lt;/p&gt;
&lt;p&gt;電子メールなら &lt;code&gt;gmail.com&lt;/code&gt; や &lt;code&gt;yahoo.co.jp&lt;/code&gt; 、Mastodonなら&lt;a href="https://mstdn.jp/about"&gt;mstdn.jp&lt;/a&gt;や&lt;a href="https://pawoo.net/about"&gt;Pawoo&lt;/a&gt;のような定番のサーバがあります。Matrixなら、The Matrix.org Foundationが提供している &lt;code&gt;matrix.org&lt;/code&gt; から始めるといいでしょう。どのサーバでアカウントを作っても、あらゆるサーバの部屋に参加したり、あらゆるサーバのアカウントにDMを送ることができます（もちろん、ブロックされていない限りで）。&lt;/p&gt;
&lt;p&gt;アカウントを作ったら&lt;a href="https://chat.amane.moe/"&gt;#random:matrix.amane.moe&lt;/a&gt;に参加してワイワイしてください。または、&lt;a href="https://dm.amane.moe/"&gt;@amane:matrix.amane.moe&lt;/a&gt;に直接話しかけることもできます。&lt;/p&gt;
&lt;p&gt;分散グループチャットシステムは、分散SNSと比較すると中央集権的なシステムに向かうモチベーションは薄く、比較的安定して広がり続けると考えられます。これまで電子メールがそうだったように、いろいろな企業や個人がMatrixサーバを持ち続けるはずですし、SNSのように一つもまとめる利点はあまりないでしょう。理想的には、コミュニティ単位でサーバを持つ程度で、十分に運用に支障のない集約性を得ることができます。&lt;/p&gt;
&lt;p&gt;ここまで、中央集権型システムの利点と欠点、そしてそれらを解決するための非中央集権的なアイデアや実装について述べました。それでも、中央集権型システムに全てを任せなければならないタイミングが来るでしょう。では、すぐに中央集権的なシステムを使うのを中止し、安全な分散システムに移行した方がいいでしょうか？　もちろん、それは非現実的です。しかし、我々の全てが削除され、喪失する前に自衛をすることはできます。&lt;/p&gt;
&lt;p&gt;典型的には、サービスに保管している自分のデータを定期的にアーカイブとして取り出したり、サービスからBANされた後の緩和策（複数のアカウントを作ったり、別の連絡手段を用意するなど）を事前に用意することができます。さらに、実際に行動に移さなくても、自分が使っているサービスが中央集権的で、いつでも自分の敵になりうることを意識することさえ自衛になりえます。我々は、我々の全てを誰かに任せてもなお、心まで差し出すべきではないのです。……（後略）&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>えびせんパーティー</title><link href="https://ama.ne.jp/post/longxiapian/" rel="alternate"/><published>2021-12-10T20:21:00+09:00</published><updated>2021-12-10T20:21:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-12-10:/post/longxiapian/</id><summary type="html">&lt;p&gt;ロン・シャー・ピエン&lt;/p&gt;</summary><content type="html">&lt;p&gt;「やっと終わりましたね。マキさんの部屋、荷物が多すぎます」&lt;/p&gt;
&lt;p&gt;「ふふ、ごめんね。でも、手伝ってくれてありがとう」&lt;/p&gt;
&lt;p&gt;昼前までにすっかり荷物を運び出した私たちは、引っ越しの大きなトラックの音が聞こえなくなるまで、なんとなく外階段の踊り場から空を見上げていました。少しずつ冬が追い出されて、明るい空気が風に乗って流れてくるのが分かります。マキさんは、この寒さと一緒に街を去ってしまうのです。&lt;/p&gt;
&lt;p&gt;「今から、えびせんパーティーにしない？」&lt;/p&gt;
&lt;p&gt;私は「えびせんですか？」と聞き返しました。えびせん、と聞いて私が思い浮かべたのは、でこぼこの模様の入った細長いスナック菓子か、小さい頃白鳥に投げて渡した大きなえび煎餅くらいです。マキさんは私の言葉を聞いて、バッグからしっかりとしたビニールのパックを取り出して私に手渡しました。&lt;/p&gt;
&lt;p&gt;マキさんがゆっくりとしたリズムで「ロンシャーピエン」と呼んだつやつやした透明の袋には、赤いえびのイラストが描かれていて、透き通った薄くてまるいカラフルなチップスがたくさん入っています。赤、黄、緑……直径4～5センチメートルほどのつやのない &lt;em&gt;えびせん&lt;/em&gt; は、袋を揺らすと固そうな音を立ててぶつかりあい、まるで安いプラスチックのおもちゃの詰め合わせのように見えます。&lt;/p&gt;
&lt;p&gt;私の知っているさくさくのお菓子とはおよそ異なる重さと質感に、私は困惑していました。一枚だけ口に入れて奥歯でそっと噛んだら、きっと破片がいっぱい広がって、香ばしいえびの風味なんて楽しめないでしょう。&lt;/p&gt;
&lt;p&gt;「これ、どうやって食べるんですか？」&lt;/p&gt;
&lt;p&gt;「揚げるのよ。えびせんパーティーって、引っ越しの定番じゃない」&lt;/p&gt;
&lt;p&gt;マキさんが言うには、引っ越しですっかり片付いた家を出る前にたくさん揚げ物をする習慣があるらしく、中でもこのシャーピエンは縁起が良い食べ物として人気なのだそうです。人気もなにも、私は引っ越しの定番なんて新居で段ボールに囲まれて頼むピザくらいしか知りません。次の入居者にちょっと迷惑な習慣だなと思いましたが、この &lt;em&gt;えびせん&lt;/em&gt; が揚げるとどんな姿になるのかは、少し気になります。&lt;/p&gt;
&lt;p&gt;「でも、さっき電気もガスも水道も止めちゃいましたよね」&lt;/p&gt;
&lt;p&gt;「だから、古いフライパンとカセットコンロを残しておいたのよ」&lt;/p&gt;
&lt;p&gt;確かに、部屋の中には今日明日に必要な手荷物と一緒に、私がずっと前に一緒に選んだ使い古したフライパンが置かれていました。この家で一番長く使われていた調理器具として、最後に大活躍するようです。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;がらんどうになったリビングの真ん中に、カセットコンロと油が浅く注がれたフライパンが儀式のように配置されて、その周りを私たちが囲んでいます。床には、袋いっぱいのシャーピエンと一緒にコーティングのかかった深めの紙皿、割り箸、そして油を固める薬剤がまとめられていて、マキさん曰くこれがベーシック・スタイルのえびせんパーティーらしいです。&lt;/p&gt;
&lt;p&gt;200度ほどに温まった油にそっと赤いシャーピエンを落とすと、薄くて固いチップスがあっという間に白くてふわふわの塊に変わります。気を抜くと見逃してしまうほど、一瞬のできごとでした。縁が波打って膨らむと同時に、中心まで熱が伝わって全体が真っ白な百合の花のように大きく広がるのを見て、マキさんがすかさず紙皿に取り上げます。&lt;/p&gt;
&lt;p&gt;マキさんが目で「こうやるの。わかる？」と示したので、私も緑色のチップスを取り上げておそるおそる油に滑り込ませました。とろとろした油面に浮かび上がると同時に、また縁から白く膨らんで大きな花が顔を出します。私がその様子に見とれていると、マキさんがその花びらを掬って私の皿に移しました。&lt;/p&gt;
&lt;p&gt;初めてのシャーピエンはあたたかくて、さくさくです。今まで食べたことのあるえびせんより、もっと軽やかで、香ばしいえびの香りが口いっぱいに広がります。もちろんまとわりついた油は少ししつこくて、胃がもたれてしまいそうですが、その食感のせいでお腹に溜まることさえ忘れてしまいそうになります。&lt;/p&gt;
&lt;p&gt;それから、私たちはえびせんパーティーを楽しみました。油が熱くなりすぎないように注意しながら、チップスを滑り込ませては大きな花びらに変えて掬い上げます。知らない人が見たら、きっと魔法のように見えるでしょう。熱すぎるとすぐにシャーピエンが焦げて枯れた花びらのようになってしまうので、上手に揚がる温度はすぐに分かります。&lt;/p&gt;
&lt;p&gt;ぐつぐつとシャーピエンを揚げているうちに蒸発した油がまとわりついて、身体を動かすたびになんとなくべたべたとした感覚がついてまわります。換気しても換気しても、部屋の中がすっかりくもって油の匂いが取れません。それでも、私たちはフライパンを囲んで淡々とシャーピエンを揚げては、まるでおしゃれなカフェで過ごしているみたいにおしゃべりし続けていたのです。ただ、不思議な時間が流れていました。&lt;/p&gt;
&lt;p&gt;「マキさん、これって……？」&lt;/p&gt;
&lt;p&gt;「よかったわね。縁起が良いわ」&lt;/p&gt;
&lt;p&gt;ふと、できあがったシャーピエンを取り上げると、表面がところどころ金箔で覆われています。白い生地に散りばめられた白昼の星のような輝きを見ると、まるで美しく装飾された陶器の欠片のようです。マキさんが &lt;em&gt;あたり&lt;/em&gt; だと言ったそのシャーピエンを口に含むと、なんとなく誇らしい気持ちになりました。&lt;/p&gt;
&lt;p&gt;「すっかり、油まみれになっちゃいましたね」&lt;/p&gt;
&lt;p&gt;マキさんが最後のシャーピエンを食べ終わった頃には、外は徐々に暗くなり始めていました。もう電灯さえないこの部屋で、火と油を囲むパーティーを続けるわけにはいきません。コンロの火を止めたマキさんは、くんくんと鼻を鳴らして「そうね。私たち、同じ匂いだわ」と笑いました。&lt;/p&gt;
&lt;p&gt;「ふふ、昔は食べ終わったらこのまま家ごと燃やしていたらしいわ。刹那的で、とっても素敵」&lt;/p&gt;
&lt;p&gt;マキさんは、固めた油をフライパンから剥がして手際よく紙皿や割り箸と一緒にまとめました。残ったフライパンは燃えないごみの袋に分別されていて、ここでお別れだと分かるとなんだか寂しい気持ちになります。本当は使った道具を全て捨てるのが慣例だけど、カセットコンロだけはもったいないから持って帰るわ、とマキさんは丁寧にコンロを箱にしまい込みました。&lt;/p&gt;
&lt;p&gt;「じゃあ、今日はこのまま温泉でも行きましょうか。もう少し付き合ってくれる？」&lt;/p&gt;
&lt;p&gt;いいですよ。 &lt;em&gt;あたり&lt;/em&gt; を引いたんだから、もう少しだなんて言わずにずっと一緒にいてください。私が「ええ」と頷くと、マキさんは嬉しそうに微笑みました。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;マキさんに「今日でこの街も最後だし、もう一度行ってみない？」と、まるで今思いついたように連れてこられたのは、山の上のロープウェイのりばでした。お昼に入ったファミレスでドリンクバーをミックスするのさえ飽きてしまった後のことでしたから、残っているのは乗客を見送る家族だけです。もうちょうど、今日の最終便が頂上へと向かうのを見送ることしかできません。&lt;/p&gt;
&lt;p&gt;「少し遅かったですね」&lt;/p&gt;
&lt;p&gt;「また明日来ればいいわ」&lt;/p&gt;
&lt;p&gt;駅舎に取り付けられた大きなスピーカーから、古いカセットテープのような間延びした洋楽が流れ続けています。ふと、小さい頃に母親と歩いた商店街のことを思い出しました。まるでここだけが時間の流れから取り残されて、永遠にこの曖昧な薄暮に閉じ込められてしまったかのようです。&lt;/p&gt;
&lt;p&gt;おかしなことですが、マキさんがロープウェイに乗るつもりがないのは分かっていました。ロープウェイに乗りたいのなら、ほとんどの人は最低限の身辺整理を済ませて直行シャトルバスで来るはずだからです。私たちのように自家用車で（しかもピカピカのレンジローバーで！）上がってくる人は、たいてい黒い喪服を着ていますし、しばしば純粋に景色を楽しみたいだけの乗客から疎まれています。&lt;/p&gt;
&lt;p&gt;このロープウェイは全国でも珍しい開放型のゴンドラを採用していて、眼下に広がる風景がよく見えるように、左側にはジュラルミンの壁どころかガラスさえも嵌まっていません。そのせいか、素敵な景色に見とれてほとんどの人がゴンドラから飛び降りてしまうのだそうです。しかし、当の鉄道会社自身は特に問題視していないようで、柵やネットを設けて安全対策をするわけでもなく、むしろ「もっと近づいてみたくなる夜景」というキャッチフレーズで夜行便の宣伝さえ始めています。&lt;/p&gt;
&lt;p&gt;私は前もこの光景を見たことがありました。ちょうど、マキさんと出会った日のことです。あの日もこんな春先の肌寒い夕暮れで、寂しげな顔をしたマキさんは、やはり最終便を見送って「次はきっと乗りましょうね」と言っていました。一人が飛び降り、また一人が飛び降り、まるで焼却炉に運ばれるペンギンの群れのような乗客を運びながら、ロープウェイは淡々と上へ登っていきます。&lt;/p&gt;
&lt;p&gt;どうしてマキさんは「次は」だなんて守る気のない約束をしたのでしょうか。明日、はいつ来るのでしょうか。マキさんはずっと向こうの景色を見つめたまま、そっとため息をついて私の手を握りました。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/6318"&gt;百合SS Advent Calendar 2021&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>仮想物質やってみた</title><link href="https://ama.ne.jp/post/virtual-materials/" rel="alternate"/><published>2021-12-10T00:30:00+09:00</published><updated>2021-12-10T00:30:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-12-10:/post/virtual-materials/</id><summary type="html">&lt;p&gt;たのしいバーチャルゴールド入門&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://adventar.org/calendars/6774"&gt;存在しない技術 Advent Calendar 2021&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;/* HTTP 451: お探しの技術は見つかりませんでした。時代が間違っているか、移動または削除された可能性があります。 */&lt;/p&gt;
&lt;hr&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;背景&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;暗号通貨と貴金属&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;仮想物質と貴金属&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;仮想物質とは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;仮想物質の錬成・転移・マイニング&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_7"&gt;錬成&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;転移&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;マイニング&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;仮想物質のエアドロップ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_12"&gt;リンク集&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;ビットコインを初めとする &lt;strong&gt;暗号通貨&lt;/strong&gt; は、取引の正当性と価値を維持し続けるために大量の電力と多くのストレージを消費することから、今日まで環境負荷の観点から強い批判を受け続けている。そのため、環境負荷を抑えつつ非中央集権的なネットワークで円滑に資金を流通させる目的で、暗号通貨と既存の貴金属の利点を組み合わせた &lt;strong&gt;仮想物質&lt;/strong&gt; の研究が進んでいる。本記事では、テストパラメータ上で仮想物質の錬成と転移およびマイニングを行い、メインパラメータ上でエアドロップを試すことで、仮想物質の可能性を示す。&lt;/p&gt;
&lt;h2 id="_2"&gt;背景&lt;/h2&gt;
&lt;h3 id="_3"&gt;暗号通貨と貴金属&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;暗号通貨&lt;/strong&gt; は、強力な暗号を裏付けにして単なるデータ列が通貨として機能するよう設計されたデジタル資産システムである。特に、非中央集権的なネットワークで取引台帳（ &lt;strong&gt;ブロックチェーン&lt;/strong&gt; ）の唯一性や正当性を保証するには、多くのコンピュータで大量の電力とストレージを消費し続ける必要があるため、環境負荷の観点で強い批判を受けている。&lt;/p&gt;
&lt;p&gt;多くの暗号通貨は、金・銀・プラチナを初めとする貴金属のように埋蔵量が一定であり、新しく生産するのが難しくなるように設計されている。つまり、通貨の材料自身の希少性に依拠した価値を持っており、その類似点からビットコインは &lt;strong&gt;デジタルゴールド&lt;/strong&gt; とも呼ばれている。これは、暗号通貨が貴金属と一定のレートで交換できることを保証されているという意味ではなく、価値の源泉が貴金属のそれと同様のメカニズムになっているということを示すものである。&lt;/p&gt;
&lt;p&gt;このように、ほとんどの暗号通貨は単なるデータ列に唯一性や正当性を与えるために、多くのコンピューティングリソースとストレージスペースを消費している。当然、この欠点は暗号通貨がネットワーク上で取引を行いやすい電子的なデータ列であることと表裏一体となっており、暗号通貨の価値を担保するためのものでもある。&lt;/p&gt;
&lt;h3 id="_4"&gt;仮想物質と貴金属&lt;/h3&gt;
&lt;p&gt;ここまで述べたとおり、暗号通貨を貴金属と比較した際の利点は、第一にその流通性である。逆に言えば、貴金属を非中央集権的なネットワークで送受信することが容易になれば、リソースの大量消費によってのみ支えられる非効率的な暗号通貨を維持する必要はなくなる。&lt;/p&gt;
&lt;p&gt;しかし、現実の物質である貴金属をネットワーク上で流通させるのは難しい。多くの場合、暗号通貨の取引所と同じような中央集権的なシステムで、非分散的な台帳のみに記録しながら取引を進めることになるだろう。これは、単にボラティリティに頼って短期的なトレードを繰り返す投資家にとってはあまり問題にはならないが、政治的迫害や様々な規制を逃れるためにこれらを通貨として使いたい人たちにとっては、大きな問題である。&lt;/p&gt;
&lt;p&gt;貴金属を非中央集権的なネットワークに流通させるにはどうしたらよいか。この課題をスマートに解決するのが &lt;strong&gt;仮想物質&lt;/strong&gt; である。仮想物質は空気中の水と二酸化炭素を仮想核融合することで錬成できる特殊な構造を持った物質であり、独自のパラメータから錬成することで他の仮想物質と厳密に区別することができる。いわば実体を持った仮想的な貴金属であり、 &lt;strong&gt;バーチャルゴールド&lt;/strong&gt; と呼ばれることもある。&lt;/p&gt;
&lt;h2 id="_5"&gt;仮想物質とは&lt;/h2&gt;
&lt;p&gt;仮想物質は、前述の通り水と二酸化炭素の仮想核融合によって錬成することができる。本来、核融合には多くのエネルギーが必要で、貴金属の埋蔵量を保証する根拠の一つとなっている。しかし、数年前に発見されたトンネルブレイク効果によって、エネルギー準位を保ったまま仮想的な核融合を行うことで、安定した物質を得ることが可能になった。&lt;/p&gt;
&lt;p&gt;仮想物質の大きな特徴は、 &lt;strong&gt;ヴェノナの遷移律&lt;/strong&gt; により、一度錬成した物質と同じパラメータを再度使用するのが非常に困難であるということである。これは、システム上の人工的な制約ではなく物理的な性質に基づいており、錬成時のパラメータを取得・再設定することさえ不可能とされている。これにより、第三者はもちろん、通貨発行者でさえ追加で仮想物質を発行することができず、仮想物質の流通量が一定であることを保証する根拠になっている。&lt;/p&gt;
&lt;p&gt;仮想物質の有効性を支えるもう一つの特徴は、 &lt;strong&gt;仮想転移&lt;/strong&gt; が可能であるということである。仮想転移は仮想物質にのみ確認されている物理現象であり、いわゆるテレポーテーションを低遅延・低コストで実現できる（ただし、光の速度は超えられない）。つまり、取引を行いたい二者が仮想転移装置さえ持っていれば、即座に仮想物質を送受信できるようになる。そのため、これらの仮想物質をネットワーク上で流通させることで、暗号通貨の欠点を補いつつ従来の利点をそのまま享受できるのである。&lt;/p&gt;
&lt;h2 id="_6"&gt;仮想物質の錬成・転移・マイニング&lt;/h2&gt;
&lt;p&gt;今回は、家庭用の一体型仮想物質装置を利用して、テストパラメータ上で仮想物質の操作を行う。通常、錬成と転移は別の装置として実装されるのが一般的だが、ホビー向けの小さな装置ではほとんどが一体型となっている。なお、錬成とマイニングは同様の操作なので仮想物質錬成装置で行われることが多いものの、一部ではマイニングの効率を上げるために少量の錬成向けにチューニングしたコイルを搭載しているものもある。&lt;/p&gt;
&lt;p&gt;&lt;img alt="仮想物質装置の全体像（AとBのラベルが貼られた2つ引き出しを備えた黒い台と、その上に設置されたプラズマを放つ球体）" height="675" src="/images/virtual-materials/virtual-material-machine.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="仮想物質装置の下部（感電とレーザー光の危険を示す黒い辺で縁取られた黄色い三角形の注意表示、白子アイコンに赤い円と赤い斜め線が描かれた禁止表示、白地に黒い文字でAとBのラベルが貼られた2つの引き出し）" height="500" src="/images/virtual-materials/virtual-material-machine_2.jpg" width="750"&gt;&lt;/p&gt;
&lt;h3 id="_7"&gt;錬成&lt;/h3&gt;
&lt;p&gt;まずは、独自の仮想物質（ここでは「あまねコイン」と呼ぶ）を錬成する。&lt;/p&gt;
&lt;p&gt;テストパラメータでの仮想物質の錬成は、水と二酸化炭素とおよそ1500Wほどの電力が必要である。錬成機能を呼び出すには、背面のファンクションスイッチを切り替えてから電源をオンにするか、専用アプリから起動することもできる。開発者ツールから内部的なパラメータ設定に介入することもできるが、前述の遷移律の通り、最終的なパラメータを操作することはできない。&lt;/p&gt;
&lt;p&gt;&lt;video autoplay loop muted width="600" height="800" src="/images/virtual-materials/forge.webm"&gt;仮想物質装置で仮想物質を錬成している動画&lt;/video&gt;&lt;/p&gt;

&lt;p&gt;10分ほど待つとバーチャルスフィアが消灯するので、十分に冷めてから仮想物質を取り出す。&lt;/p&gt;
&lt;p&gt;&lt;img alt="仮想物質装置で錬成したあまねコイン（仮）" height="525" src="/images/virtual-materials/amane-coin.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;テストパラメータで錬成できるのは、ほとんどこのような透明～半透明の仮想物質である。メインパラメータではもっと安定した金属様の仮想物質が錬成されるので、仮にテストパラメータ上の仮想物質を悪用しようとしても、受信した時点ですぐに区別することができる。&lt;/p&gt;
&lt;p&gt;錬成したナゲット（塊）は大きさが揃っていないため、一定の質量に分割して流通させやすくするのが一般的である。今回は単なるテスト用なので、以降の操作はナゲットのまま進める。&lt;/p&gt;
&lt;h3 id="_8"&gt;転移&lt;/h3&gt;
&lt;p&gt;次に、錬成したあまねコインを転移する。&lt;/p&gt;
&lt;p&gt;幸い、この装置にはトレイが2つ付いているので、AトレイからBトレイに向かって送信するだけで転移を体験できる。ファンクションスイッチからは宛先を設定できないので、必ず専用アプリから送信先を指定して実行する。今回は &lt;code&gt;localhost&lt;/code&gt; でよい。インターネットのレイヤーで交換しているのは互いの身元を証明する鍵のような情報だけで、仮想物質自体をデータに変換しているわけではないことには注意すべきである。&lt;/p&gt;
&lt;p&gt;&lt;video autoplay loop muted width="600" height="800" src="/images/virtual-materials/transfer.webm"&gt;仮想物質装置で引き出しAから引き出しBに仮想物質を転移している動画&lt;/video&gt;&lt;/p&gt;

&lt;p&gt;転移にはあまり電力は必要ない（600Wで10秒程度）。自分から自分に送信しているだけなので見栄えがしないものの、手品のようにAトレイからBトレイに瞬間移動しているのが分かる。&lt;/p&gt;
&lt;p&gt;仮想物質は、スマートコントラクトのように価値を移動するプログラムが組み込まれているわけではないので、転移を支払い手段として使っても、持ち逃げされたり偽物を渡されたりする可能性がある。もちろん、この点は現金や暗号通貨での決済と大きく変わらない。&lt;/p&gt;
&lt;h3 id="_9"&gt;マイニング&lt;/h3&gt;
&lt;p&gt;あまり実用的な利用法ではないが、テストパラメータほどの複雑性では、少量の仮想物質を繰り返し錬成することで同じパラメータの仮想物質を錬成できることがある。同じ仮想物質を錬成できたところであまり価値がないので、利用は実験的な用途に限られるものの、メインパラメータで錬成した仮想物質になぜ価値があるのかという根拠を実演することができる。&lt;/p&gt;
&lt;p&gt;仮想物質におけるヴェノナの遷移律は、十分に複雑なパラメータ上でのみ成立する。パラメータの複雑さは、探索空間の拡大と試行のコストの両方を引き上げるからである。一回あたりの錬成量を減らせば試行回数は増やせるものの、仮に &lt;em&gt;あたりくじ&lt;/em&gt; を引いても得られる仮想物質が少なくなる。逆に、大当たりを狙って大きな錬成を繰り返した場合は、一生かかっても夢を掴むのは難しいだろう。&lt;/p&gt;
&lt;p&gt;メインパラメータにおける遷移律への攻撃は、俗に &lt;strong&gt;マイニング&lt;/strong&gt; と呼ばれ、宝くじよりも難しく効率の悪い趣味として知られている。&lt;/p&gt;
&lt;p&gt;&lt;img alt="仮想物質装置でマイニングした微量のあまねコイン" height="503" src="/images/virtual-materials/mining.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;錬成と同様に1500Wで数時間にわたって挑戦してみたものの、最初のあまねコインと同じ物質はほんの少ししか生成できなかった。メインパラメータでは、この実験の数万倍の電力と 10&lt;sup&gt;150&lt;/sup&gt;ほどの時間をかけて、やっと砂粒ほどの仮想物質が生成できるかもしれないというレベルになる。&lt;/p&gt;
&lt;h2 id="_10"&gt;仮想物質のエアドロップ&lt;/h2&gt;
&lt;p&gt;メインパラメータで新たな仮想物質を錬成するのは家庭用の装置と電力では難しいので、今回は安い既存コインのエアドロップを受け取って一連の実験を締めくくることとする。&lt;/p&gt;
&lt;p&gt;今回は、いわゆる草コインである &lt;strong&gt;ナトシ・サカモト&lt;/strong&gt; のエアドロップを試してみる。指定のリンクから仮想物質コミュニティSNSに登録するだけで、わずかながら仮想物質を得ることができるらしい。エアドロップの詳しい手順については、記事末尾のリンク集を確認のこと（この記事の公開時点では既に締め切っているかもしれない）。&lt;/p&gt;
&lt;p&gt;&lt;img alt="仮想物質装置でエアドロップしたナトシ・サカモトの大きな結晶" height="477" src="/images/virtual-materials/airdrop.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;直角に曲がりくねった独特の結晶構造と、青～黄色の金属光沢を示しているのが分かる。半金属の酸化皮膜に特徴的な虹色の光沢と似ているが、これは酸化しているわけではなく、仮想物質に埋め込まれたパラメータを保持する格子欠陥によるものである。メインパラメータ上の仮想物質は金属に似た性質を持っており、しばしばその特殊な構造によって独特の干渉色を示す。&lt;/p&gt;
&lt;p&gt;今のところこの大きさで4.2円（3 natoshi）程度なので、今後の価値の上昇に期待が高まる。&lt;/p&gt;
&lt;p&gt;ほとんどの仮想物質は、通貨として利用するために小さく分割されてしまうので、このように大きな塊を見る機会は少ない。一方で、大きく綺麗な結晶の仮想物質は美術品として流通することがある。美術品市場での利益をねらって綺麗な仮想物質を得る目的に錬成を繰り返すこともあり、こちらをマイニングと呼ぶこともあるが、普通はアート・フォージ（美術的錬成）と呼ばれる。アート・フォージは、本来のマイニングより成功率はかなり高いものの、運任せなのは基本的に同じである。&lt;/p&gt;
&lt;h2 id="_11"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;仮想物質とは、以下のような特徴を持ち、暗号通貨と貴金属の利点を兼ね備えた新時代の決済手段である。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;水と二酸化炭素から錬成できる環境にやさしい物質である。&lt;/li&gt;
&lt;li&gt;低遅延・低コストでテレポーテーションできる性質を持っている。&lt;/li&gt;
&lt;li&gt;複雑なパラメータによって偽造防止と埋蔵量を保証している。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_12"&gt;リンク集&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/6774"&gt;存在しない技術 Advent Calendar 2021&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.crystalworld.jp/"&gt;天然石のクリスタル・ワールド&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fama.ne.jp%2Fpost%2Fvirtual-materials%2F&amp;amp;text=%E3%81%93%E3%81%A1%E3%82%89%E3%81%8B%E3%82%89%E3%83%8A%E3%83%88%E3%82%B7%E3%83%BB%E3%82%B5%E3%82%AB%E3%83%A2%E3%83%88%E3%82%92%E7%99%BA%E8%A1%8C%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%EF%BC%81"&gt;ナトシ・サカモトのエアドロップリンク&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="ugoki"/></entry><entry><title>三体のオートファクト</title><link href="https://ama.ne.jp/post/autofact/" rel="alternate"/><published>2021-12-02T22:58:00+09:00</published><updated>2021-12-02T22:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-12-02:/post/autofact/</id><summary type="html">&lt;p&gt;オートマタとアーティファクトのかばん語である&lt;/p&gt;</summary><content type="html">&lt;p&gt;オートファクト：オートマタとアーティファクトのかばん語である。人形が十分な意思能力を持った時代に「ドール」と呼ぶのが差別的とされたために作られたことば。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「あの、ご主人様。どうして私を選んだんですか？」「どうして……って？」「ですから！」&lt;/p&gt;
&lt;p&gt;フローリングに正座したまま購入者を睨み付ける小柄な少女は、さっきから自分の身体を包むメイド服の裾を伸ばしたり、首元にかかったリボンのほつれを指でくるくると弄んだりして落ち着かない。ダイニングチェアに浅く腰掛けたリンは、その様子を眺めながらオートファクト五原則について思い出していた。&lt;/p&gt;
&lt;p&gt;「ですから、同じような &lt;em&gt;わたしたち&lt;/em&gt; をあんな風に三体並べられて――」「ちょっと待って」「……はい」&lt;/p&gt;
&lt;p&gt;こぶしを強く握って不満げな様子を隠さないものの、ルルが話を遮られても反発せず命令に従うのを見て、リンは目の前にいるのが精巧なドールであることを実感した。&lt;/p&gt;
&lt;p&gt;「ルルはどうして床に座ってるの？」「えっ？」「立って話そうよ。首が疲れちゃう」&lt;/p&gt;
&lt;p&gt;床に座っている理由を尋ねられても、ただ身体が先に動いただけのルルにはもちろん答えられない。それでも、リンに言われた通りに立ち上がって、スカートを軽くはたいてまっすぐ立つことはできる。さっきリンと一緒に自分の足でこの部屋まで帰ってきたのだから、当たり前だけど。&lt;/p&gt;
&lt;p&gt;背の低い彼女も、立ち上がるとちょうどリンの目線と同じ――今、ルルが背伸びをしたので少し上の――高さでリンと向かい合うことになる。外を歩いているうちにメイド服にまとわりついた冬の匂いが、リンの鼻をそっとくすぐった。&lt;/p&gt;
&lt;p&gt;「それで、お店で私を選んだ理由を教えてほしいんです」&lt;/p&gt;
&lt;p&gt;「そりゃあ、一番かわいかったからに決まってるでしょ」&lt;/p&gt;
&lt;p&gt;「かわいい、ですって？　顔も服もこんなにぼろぼろなのに？」&lt;/p&gt;
&lt;p&gt;主人が自分と同じ高さになって気が大きくなったルルは、かぶっていた猫を脱ぎ捨ててリンに詰め寄る。ルルはリンにとって初めて迎えるオートファクトで、予想以上の感情の豊かさに驚いていた。店員は同じモデルでも個体差があると言っていたけど、あれはただの営業トークだったのだろう。&lt;/p&gt;
&lt;p&gt;どんなに売れない個体でも、同じモデルのオートファクトは同じ価格で販売しなければならないという規制があるせいで、細かい瑕疵や難のある性格を隠した詐欺まがいの不正行為が横行している。一度迎えたオートファクトをちょっとした欠点で返品するのは、しばしば強い非難の対象になっていたから、店のほうも多少の無理を通すことができた。&lt;/p&gt;
&lt;p&gt;「ぼろぼろなんかじゃないよ」「でも、他の子のほうが、よく整っていて綺麗だったわ」「他の子って、どれ？」&lt;/p&gt;
&lt;p&gt;「えぇと……イ、イブ、とか……」&lt;/p&gt;
&lt;p&gt;ルルは少し言葉に迷ってから、彼女とは別のモデルの名を告げた。イブといえば、この前発売されたばかりの最新型のフラグシップだ。もちろんルルよりも新しいし、眼にはもっと綺麗に輝く強化ガラスが嵌まっているけど、リンにはとても手の出る代物ではない。&lt;/p&gt;
&lt;p&gt;しかし、リンはルルの明るい橙色の長髪をよく気に入っていて、むしろ、イブの真っ青な暗いショートヘアがあまり好きではなかった。このツインテールを解いて整える時のことを考えて、もう桃木の櫛を何本も買っていたくらいだ。&lt;/p&gt;
&lt;p&gt;「イブは最新のモデルでしょ。ルルと一緒に出してもらった子のことじゃないの？　右の子？　それとも左？」&lt;/p&gt;
&lt;p&gt;「……分かんない！　でも、他の子のほうが新しくて綺麗だったの。いじわる言わないで！」&lt;/p&gt;
&lt;p&gt;髪を振り乱して語気を強めるルルを見て、リンはふと、まだルルの名前を決めていなかったなと思った。モデルの名でしか互いを識別するすべを持たないオートファクトには、新しい名前を与えるのが一番だから。&lt;/p&gt;
&lt;p&gt;「それに、本当にかわいいなら待ちきれなくって、すぐに嫌ってほど抱きついてくるはずだもの」&lt;/p&gt;
&lt;p&gt;「あぁ、抱きしめてほしかったの？　甘えるのが下手なんだね」&lt;/p&gt;
&lt;p&gt;説明書にもそんなことが書いてあったな、と思いながらリンがチェアから立ち上がると、ルルの視線がまた上に向く。さっきまで感情豊かにリンに食ってかかっていたルルは、やっと自分の立場を思い出したようにしずしずと後ろに下がった。&lt;/p&gt;
&lt;p&gt;「ち、違います！　私は、ただ本当のことを言っているだけで」&lt;/p&gt;
&lt;p&gt;そうして、ルルは初めこそ身体の前で手を組んでいたものの、やはりエプロンにあしらわれたフリルの綻びが気になるらしく、何度か撫でたり伸ばしたりしてからため息をつく。&lt;/p&gt;
&lt;p&gt;「ご主人様は騙されたんです。私、顔にすこし傷があるし、眼だって古くてちょっとくすんでます。他の子はみんな新しくて、私だけいらない子だったから」&lt;/p&gt;
&lt;p&gt;「どうせ、一緒に暮らしていたら傷くらいつくよ。眼だって、新しいのに変えてあげる」&lt;/p&gt;
&lt;p&gt;「服もほつれてて、顔だってぼろぼろで、とにかく全部ダメダメなんです。同情されたって、嬉しくないです」&lt;/p&gt;
&lt;p&gt;長さの揃わないばさばさの前髪を恨めしそうに撫でつけるルルは、確かにあまり整備が行き届いていない。従順なオートファクトばかり集められたあの店では、なかなか扱いにくい子だったからだ。少し後回しにされているうちに、それが習慣的な放置に繋がり、整備不良として身体に表れるのはリンにも想像が容易だった。&lt;/p&gt;
&lt;p&gt;悲しげで痛々しいルルの姿を見て、リンはさらに彼女のことを気に入っていた。綺麗で手のかからないオートファクトはみんなに人気で、同時に寿命が短かったから。&lt;/p&gt;
&lt;p&gt;「そうだね。服はもっと布が少ない方がいいかも。関節が見えてもっとかわいいから」&lt;/p&gt;
&lt;p&gt;「私、エッチな服は着ませんよ」「ドールなのに？」「ご主人様。差別用語はダメです」&lt;/p&gt;
&lt;p&gt;「えぇと、うん。オートファクトなのに？」&lt;/p&gt;
&lt;p&gt;ルルは「はい。オートファクトはエッチな服を着たりしません」と満足気に答えた。ルルは長く売れ残っていただけで、外の世界を知る機会はほとんどなかったからだ。リンはまた彼女を「ドール」と呼ぶときのことを考えて、それをごまかすようにルルの頭を撫でた。&lt;/p&gt;
&lt;p&gt;「じゃあ、 &lt;em&gt;オートファクト&lt;/em&gt; のルルのお迎えを祝って一緒にアイスでも食べようか」「アイス……ですか？」「もしかして、食べられない？」&lt;/p&gt;
&lt;p&gt;「飲み込んだり、身体に入れたりすることはできません。でも、指先で味を感じることなら」&lt;/p&gt;
&lt;p&gt;そう言って、ルルが人差し指をぴんと立てて口に当てる。&lt;/p&gt;
&lt;p&gt;「それは素敵だね。一緒の味を楽しめれば、それでいいよ」&lt;/p&gt;
&lt;p&gt;リンはわざわざ新しいアルミスプーンを買う必要はなかったな、と思った。冷凍ストッカーに向かうリンを追うように、ルルが立ち上がって後ろについていく。ちょうど、今日の帰り道と同じ姿だ。リンが取り出したのはパッケージに「夏限定！今だけ！」とスイカのイラストが描かれたカップアイスで、彼女のお気に入りだった。&lt;/p&gt;
&lt;p&gt;ストッカーを閉じると、ルルが後ろからリンの手元を覗き込む。ルルも冬に雪見だいふくを食べる習慣くらいは知っていたけれど、こんなに大きなカップアイスを見るのは初めてだった。&lt;/p&gt;
&lt;p&gt;「美味しいんですか、それ？」&lt;/p&gt;
&lt;p&gt;「うん。夏を越したアイスは熟成してもっと美味しくなってるからね。なめらか食感で売ってる高級アイスクリームも、シャリシャリの氷菓に早変わり」&lt;/p&gt;
&lt;p&gt;手に伝わる氷のような冷たさは、もう年越しも目前の冬の寒さには似合わない。でも、リンは「今だけ」と書かれた期間限定のアイスをこうやってストッカーにずっと閉じ込めておくのが好きだった。時間を一緒に凍らせているみたいで、あるいは、誰かに嘘をついているみたいで。&lt;/p&gt;
&lt;p&gt;「よく見て、よく聞いて、よく匂いを覚えてね。来年の夏も、冬もきっと食べる味だから」&lt;/p&gt;
&lt;p&gt;リンに言われるがまま、ルルがピンク色の塊に人差し指を突き立てる。第一関節くらいまでアイスの中に隠すと、右や左にひねって舌を這わせていく。指と空気とアイスクリームが接しているところから、まるで波打ち際にいるようにじわじわと溶けていった。&lt;/p&gt;
&lt;p&gt;これがオートファクトの食事なのか、とかすかな興奮を覚えながら、その間リンはなぜか一言も発せずにいた。ひとしきりアイスを味わったルルは、クリームまみれでべたべたになった指先をうっとりと眺める。&lt;/p&gt;
&lt;p&gt;「冷たくて、氷の粒が大きくて、甘くて……それに、気持ちいい。不思議な心地だわ」&lt;/p&gt;
&lt;p&gt;「うん。私も好きなんだ」&lt;/p&gt;
&lt;p&gt;ルルの手を取ってそっと指を舐めると、夏の懐かしい味と一緒にまた冬の香りがした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/6318"&gt;百合SS Advent Calendar 2021&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>先輩、今日もいいですか（プレビュー）</title><link href="https://ama.ne.jp/post/please-senpai/" rel="alternate"/><published>2021-11-16T19:00:00+09:00</published><updated>2021-11-16T19:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-11-16:/post/please-senpai/</id><summary type="html">&lt;p&gt;senpai, notice me!&lt;/p&gt;</summary><content type="html">&lt;p&gt;「先輩、今日もいいですか？」「……ん？」&lt;/p&gt;
&lt;p&gt;デスクで熱心に新材料の特性分析シートを仕上げている先輩に後ろから声を掛けると、肩の上くらいで短く切られたぼさぼさの銀髪がぱさりと揺れた。じっと作業を続けていた身体にまとわりついた空気が広がるように、最近買ったらしいローズの香水がふわりと私をそっとくすぐる。&lt;/p&gt;
&lt;p&gt;振り向いた先輩は古いメタルフレームの丸眼鏡――集中したいときはいつもこの眼鏡を使っていると言っていた――を掛けていて、ピントの合わないぼんやりとした表情で私を見上げる。それから、つやのあるカルセドニーのような黒い目だけを動かして私の顔、胸元、そして書類を持っている手を見つけて「あぁ」と頷いた。&lt;/p&gt;
&lt;p&gt;「それ、来週までだっけ。少し待っててくれ。あとは自明なところを埋めるだけなんだ」&lt;/p&gt;
&lt;p&gt;先輩……サキさん……高宮サキは、私が所属しているラボの先輩だ。ここでは主に鉱物研究と新材料開発を主軸に活動していて、最近は見た目の綺麗な宝飾用鉱物（いわゆる人造宝石である）の共同研究にも参加している。この前の宝飾展で展示した曜変サファイア&lt;sup id="fnref:youhen"&gt;&lt;a class="footnote-ref" href="#fn:youhen" title="サファイアの内部に虹色に輝く透き通った瑠璃色の斑点が含まれており、光の当て方や見る角度によって様々な輝きを見せる。"&gt;1&lt;/a&gt;&lt;/sup&gt;はけっこう人気だったらしい。&lt;/p&gt;
&lt;p&gt;四方に窓のないラボは、その致命的な閉塞感を解消するために天井に大きな天窓が据えられている。ソラ・ビジョンは、いつでも雲ひとつない青空から光を採り入れることができる優れものだ。しかし、加工炉の温度を上げると古いLEDがちらついて全く作業にならない日もあるので、なかなか扱いにくい。&lt;/p&gt;
&lt;p&gt;ラボのメンバーは私たち二人だけで、いや、本当は壁際の大きなデスクにボスが陣取っているはずだけど、最近はほとんどここに姿を見せていない。指導といったらチャットで数日に一度進捗を報告するくらいで、細かい質問や相談は先輩に尋ねるように言われていた。ボスからちゃんと指導料をもらっているのか……もらっていたとしても、迷惑に思われていないかちょっと心配になる。&lt;/p&gt;
&lt;p&gt;書類をまとめる先輩を待っていると、床に置かれたオノ・ホットランド&lt;sup id="fnref:hotland"&gt;&lt;a class="footnote-ref" href="#fn:hotland" title="電気炉と紫外線照射器、不活化ガス装置が一体になった研究用・小規模生産向けの加工炉で、オノ産業社の主力商品である。"&gt;2&lt;/a&gt;&lt;/sup&gt;の定期監視アラームがピピッと小さな音を立てる。金属製の気密室の中で焼成されているのはお手製のホタル・マーブル&lt;sup id="fnref:hottale"&gt;&lt;a class="footnote-ref" href="#fn:hottale" title="インクルージョンを摂取させた加工石全般のことだが、特に金属箔を使って光沢を増した球状のものをいう。"&gt;3&lt;/a&gt;&lt;/sup&gt;で、ちょっとしたお小遣い稼ぎのために片手間で生産しているのだ。研究の邪魔にならない限りで、自前の素材を持ち込んで加工することが暗黙的に許されていた。&lt;/p&gt;
&lt;p&gt;もちろん、ホタル・マーブル自体はそう新しい加工法ではないものの、ラボの加工技術を活かして好みの色と細かいパターンを実現できるので割と人気がある。&lt;/p&gt;
&lt;p&gt;「で、えーと……多孔質セラミックスのゲル活性改善のための設計だっけ？」「はい、そうです」&lt;/p&gt;
&lt;p&gt;先輩は数ページの報告資料を受け取ると、表の数値とグラフの傾向をぱらぱらと眺め始める。自分の成果を誰かに確認してもらう間、相手の一挙手一投足に意味を見いだしそうになって落ち着かない時間も、先輩の前だとなんとなく心地よかった。&lt;/p&gt;
&lt;p&gt;なんとなく、先輩の頭に目を向ける。特徴的な銀色の髪は過去の実験の後遺症らしい。左右の毛先をよく見ると、試薬や固定液がはねてぽつぽつと緑に着色したり白く脱色している部分はあるけれど、こんなにすっかり銀色になってしまうことがあるだろうか。バケツで薬液を頭からかぶったのなら、顔にやけどの跡でも残っていそうなものだし。&lt;/p&gt;
&lt;p&gt;一通り資料を読み終えた先輩は、丸眼鏡を外していつも使っている黒いセルフレームのウェリントンに取り替えた。大きくて厚ぼったいフレームが顔に収まらない感じが、なかなかかわいい。&lt;/p&gt;
&lt;p&gt;「悩んでるみたいだね。ちょっと長くなりそうだから、先に夕飯にしないか？　まぁ、もう夕飯って時間でもないけど」&lt;/p&gt;
&lt;p&gt;そう言われて時計を見ると、確かにもう深夜一時を過ぎる頃だ。全く気がつかなかった。まだまだ日の長い夏の終わりとはいえ、外はもうとっくに暗くなっている。おもむろにリモコンのボタンを押すと、天窓の風景が星の貼り付いたダークブルーの夜空に変わると同時に、室内照明が全灯に切り替わった。薄暮に街灯の光を灯す瞬間を自分で作り出しているみたいで、いつも不思議な心地になる。&lt;/p&gt;
&lt;p&gt;最新型の照明パッケージなら、暦に合わせて日の出・日の入りと月の位置も再現できるらしい。でも、時間を忘れて研究に没頭している間はそういう照明の変化は邪魔になるし、たぶん先輩もそう思うだろう。この旧型にも朝焼けモードや夕焼けモードは搭載されているけれど、もともと天窓から降り注ぐような光ではないし、実際このラボに来てから真っ赤に輝く窓はほとんど見たことがなかった。&lt;/p&gt;
&lt;p&gt;「エミの分も買ってきてあげるよ。何がいい？」&lt;/p&gt;
&lt;p&gt;「んー……&lt;ruby&gt;&lt;rb&gt;培養&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ヴィトロ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のグルニュイ入りなら、なんでも」&lt;/p&gt;
&lt;p&gt;先輩は「だろうね」と笑って、デスクチェアから立ち上がった。宝飾展のノベルティだったらしいすみれ色のロゴ入りTシャツを覆うように、ゆったりとしたスリットネックの黒いジャンパースカートが足首までふわりと伸びている。デスクトレイからMYU-MYUのコインケースを取り上げると、そのピンク色のハートをポケットに突っ込んだ。古い自販機を使うには必須の装備である。&lt;/p&gt;
&lt;p&gt;それから、私より頭二つほど小さい視線を送る先輩は、&lt;ruby&gt;&lt;rb&gt;虹色ガラス&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;クレプスコ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の材料に&lt;ruby&gt;&lt;rb&gt;水やり&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;フィーディング&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;をしておいてくれ、と言い残してラボを出ていった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「まさか、『パーラーU/VM』が無くなってたなんて！」&lt;/p&gt;
&lt;p&gt;それから十数分後。失望に任せて大げさに叫ぶ先輩の声と共に、ラボの自動ドアがギギッと軋んで大きな音を立てる。手には近くのコンビニ「エンジェルマート」の白いレジ袋が握られていて、中には値引きシールを貼られた大小のお弁当が二つ積まれているようだ。&lt;/p&gt;
&lt;p&gt;私は&lt;ruby&gt;&lt;rb&gt;水やり&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;フィーディング&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のために素材を詰めた&lt;ruby&gt;&lt;rb&gt;卓上ガラス温室&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ソッケル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のハッチを閉じて、冷蔵庫から&lt;ruby&gt;&lt;rb&gt;発酵ミルク&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ミエルロ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を二本取り出した。初めこそ「あの失われた発酵菌をついに再現！」という触れ込みの物珍しさを楽しんでいたけれど、一週間もすればこの甘酸っぱさにも飽きてくるもので、しかしまだこれが大きな段ボール箱で三つくらい残っている。&lt;/p&gt;
&lt;p&gt;「あれ、サキさん。今日はホットスナックじゃないんですね」&lt;/p&gt;
&lt;p&gt;「今言ったとおりだよ。上の&lt;ruby&gt;&lt;rb&gt;自販機レストラン&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アウトマート&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が急に潰れてたんだ」&lt;/p&gt;
&lt;p&gt;先輩は袋をそのままミーティングスペースのテーブルに置くと、ソファに勢いよく腰掛けた。レンジで急速に温められた甘辛い調味料の匂いが漂ってくる。脚を組んで不満げな表情で天井を睨み付けている様子は、まるで何ヶ月も失敗続きの加工炉でとうとう&lt;ruby&gt;&lt;rb&gt;非晶質爆発&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;スティッキージャム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を起こしたときの緊張感を思わせるけど、実際はただ老舗の自販機コーナーがとうとう潰れてしまったというだけだ。&lt;/p&gt;
&lt;p&gt;地下にあるこのラボのほぼ真上に位置する「パーラーU/VM」は、今ではあまり見かけない食品の自動販売機を集めた小さなスペースである。自動化された精巧なメカニクスが大好きで、研究所統制の電子マネーが大嫌いな先輩のお気に入りだ。小さい頃によく食べた懐かしい味とも言っていた気がする。しかし、先輩とそう歳の離れていないはずの私には馴染みのない文化だった。&lt;/p&gt;
&lt;p&gt;「あそこなら、先月にはもう閉店してた気がしますけど」&lt;/p&gt;
&lt;p&gt;私も向かいのソファに腰を落として、袋からお弁当を取り出しながらそう答える。「ん？」と眉をひそめる先輩の様子を見ると、今言うべきことではなかったか――「いや、まだラウンジの自販機もありますし」――と思ったときにはもう遅い。余計な新情報が先輩の落胆に油を注いでしまったらしく、今度は飛び跳ねるように立ち上がって演説を続けた。&lt;/p&gt;
&lt;p&gt;「私にとっては二ヶ月ぶりの地上だよ！　見てない間に大洪水でも来たのか？」&lt;/p&gt;
&lt;p&gt;「……私の居住棟は無事でしたが」「そうか。それは良かった」&lt;/p&gt;
&lt;p&gt;先輩のイライラがなかなか止まらない。空腹のせいもあるだろうけど、もしかしたら長い地下生活が人体に悪い影響を与えているのかも……というのも、今コンビニや&lt;ruby&gt;&lt;rb&gt;自販機レストラン&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アウトマート&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が建っているのは、もともとこの研究棟が建っていた場所だ。数十年前の研究都市再開発計画の影響で、地上の大きな研究棟を取り壊して地下に移動することになったという。かなり昔のことで、北部の研究記念館にもあまり資料が残っていない。&lt;/p&gt;
&lt;p&gt;地上にはコンビニやスーパーなどの商業施設、学生や研究者向けの居住棟などが集約されていて、研究と最低限の生活を送る分には全く敷地から出る必要がなくなった。そのせいか、先輩みたいに研究に没頭してあまり地上に出なくなった人も多いと聞く。私は途中でいろいろと耐えられなくなるから、一週間に一度くらい居住棟に戻っているけれど。&lt;/p&gt;
&lt;p&gt;改めてお弁当をテーブルに並べる。えぇと、今日はミックスグルニュイ弁当――これは私のだ――と、先輩が好きな&lt;ruby&gt;&lt;rb&gt;天然&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ファームド&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のネギトロ巻きだ。値段の高い天然ネギトロはもちろん、かなり安価なはずの&lt;ruby&gt;&lt;rb&gt;カエル肉&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;グルニュイ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;はコンビニ弁当の中ではさらに不人気で、値引きシールの優等生として居残りの常連になっている。&lt;/p&gt;
&lt;p&gt;「私、てっきり第三レストのラウンジに行ったのかと思いました」「私もそのつもりだったよ」「じゃあ、どうして外へ？」「踏み台が見つからなかったんだ」&lt;/p&gt;
&lt;p&gt;意外な答えに、私は思わず「踏み台？」と聞き返してしまう。踏み台というのは、背が低い先輩が食品自販機を使うために置いているグラスファイバー製の黒いステップのことだろう。ラウンジの隅にある古くて大きな自販機は、なぜかコインの投入口が上に据えられていて、丸腰の先輩では商品を選択することさえできないのだ。&lt;/p&gt;
&lt;p&gt;「私の踏み台を片付けてしまったんだろう？　おかげでコンビニに行くしかなかったんだ」&lt;/p&gt;
&lt;p&gt;「えっ、何の話ですか？」「違うのか？」「違いますよ」&lt;/p&gt;
&lt;p&gt;このフロアであの自販機を使うのは先輩（あるいはおつかいを頼まれた私）くらいだから、踏み台を放置しても誰も気にしないだろうと油断していたところ、どうやら邪魔に思った誰かが勝手に撤去してしまったらしい。先輩は面食らったような顔で黙り込むと、ばつが悪そうに頭を下げた。&lt;/p&gt;
&lt;p&gt;「いや、エミじゃないならいいんだ。疑ってすまない。じゃあ、それなら一体誰が……」&lt;/p&gt;
&lt;p&gt;あの踏み台の存在をまともに認識しているのは私くらいだろうし、先輩に疑われたこと自体はどうでもよかった。でも、いきなり秘密の場所を荒らされたようで気味が悪い。二人で隅から隅まで目を配るには広い空間に妙な沈黙が流れて、もう丑三つ時を過ぎる頃であることを思い出すと、急に不気味さが増してくる。&lt;/p&gt;
&lt;p&gt;デスクの下まで明るく照らすこともできない室内照明さえ心許なく思えて、ほのかな助けを求めて天井を見つめながらソラ・ビジョンのリモコンを押す。朝を告げる瑠璃色の薄明がタイムラプスのように天窓を覆ったかと思うと、すぐにいつもの青空に切り替わった。&lt;/p&gt;
&lt;p&gt;「――えーと、サキさんは今日もかわいいですね」&lt;/p&gt;
&lt;p&gt;「ん、あぁ……うん、エミは今日もかわいいね」&lt;/p&gt;
&lt;p&gt;「どこがかわいいですか？」「……唇かな。それ、新しいティントだろう？」「はい。先輩は、黒目がかわいいですね。いつもより大きい気がします」「そうか？」&lt;/p&gt;
&lt;p&gt;こういうときは「なかよしルール」その五&lt;sup id="fnref:nakayoshi5"&gt;&lt;a class="footnote-ref" href="#fn:nakayoshi5" title="研究者コミュニケーションルール集によれば「一日に一回以上お互いのことを褒め合おう。研究以外のことで」とある。"&gt;4&lt;/a&gt;&lt;/sup&gt;だ。おしゃれにはあまり興味のない先輩と交わす棒読みの褒め合いでも、今は沈黙を破るきっかけになるだろう。不意のやり取りに虚を衝かれた先輩は、ううむと小さく唸ってまたソファに戻った。&lt;/p&gt;
&lt;p&gt;「とりあえず、踏み台はもう一台買っておくよ」&lt;/p&gt;
&lt;p&gt;「でも、放っておけばそのうち戻ってくるんじゃないですか？」&lt;/p&gt;
&lt;p&gt;「いーや。拝借の書き置きも警告ラベルも残っていない一般資産が戻ってくることはないんだ」&lt;/p&gt;
&lt;p&gt;警告ラベルというのは、ラボの外の公共スペースに放置された物品に貼られる撤去期限付きのステッカーのことだ。警備ロボが誤検出も気にせずベタベタ貼り付けて回っているから、すぐに剥がしておけば特に問題にならない。厳密に言えば、例の踏み台もこの細則に違反しているものの、何度かラベルを剥がしているうちに学習して放置されるようになった。要は、見捨てられた廃棄物かどうかを確認するための作業なのである。&lt;/p&gt;
&lt;p&gt;踏み台自体は何個か買っても痛くない程度の値段だし、機密情報を含んでいるわけでもないとはいえ、こうして持ち出された以上またラウンジに放置するわけにもいかない。しかし、自販機に行くたびに毎回持ち出すのもなかなか面倒だ。&lt;/p&gt;
&lt;p&gt;「もう、諦めてコンビニを使ったらどうですか？　もう無人化してますし、使い心地も悪くなかったでしょう？」&lt;/p&gt;
&lt;p&gt;さっき先輩がお弁当を買ってきたエンジェルマートは、商品選択検知システムの導入と電子マネー決済への一本化によって、数ヶ月前に二十四時間無人営業へと切り替わったばかりだ。&lt;ruby&gt;&lt;rb&gt;自販機レストラン&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アウトマート&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の象徴的存在だったパーラーU/VMが閉業したのは、まさにこのコンビニの無人化が理由だった。&lt;/p&gt;
&lt;p&gt;コンビニなら冷蔵ショーケースと電子レンジ、カードリーダーさえあれば出店も撤退も一日で終わるようなことを、自販機は複雑なメカニクスと芸術的な内部配置で実現しているおかげで、修理も維持も難しい綱渡りの運用を強いられる。先輩のような&lt;ruby&gt;&lt;rb&gt;自販機&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;レトロメカ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;マニアには悪いけど、置いているだけでコストのかかるなかなかの贅沢品だ。&lt;/p&gt;
&lt;p&gt;私の言葉を聞いた先輩は、わざとらしくため息をつく。次に続く言葉はだいたい分かっていた。&lt;/p&gt;
&lt;p&gt;「キミは自販機の良さが分かってないな。&lt;ruby&gt;&lt;rb&gt;徹底的な自動化&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;フル・オートメート&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;は重要さ。でも、あいつはちゃんと温かい食事を出してくれるんだ」「はぁ」「冷えたお弁当を突っ込んでレンジの前で待つ、あの味気なさったらないよ」&lt;/p&gt;
&lt;p&gt;なるほど、監視カメラに囲まれて手持ち無沙汰でレジの前に立っているのはなんとなく落ち着かないし、合理化ばかりを推し進めると日々が味気なくなるのだ、というのは一理あるかもしれない。しかし、あのコンパクトな自販機専用紙箱に収まるように短く切られた割り箸でちまちまと食べ進める先輩の姿を思い出すと、どこかが間違っているような気がした。&lt;/p&gt;
&lt;p&gt;「それに、私は&lt;ruby&gt;&lt;rb&gt;地区限定通貨&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;リサ・カード&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が嫌いなんだ。金の流れを研究所なんかに知られたくないね。決済手段の一本化だって、妙な情報収集を企んでいるに違いない」&lt;/p&gt;
&lt;p&gt;「いや、そんなことはないと思いますよ……」&lt;/p&gt;
&lt;p&gt;リサ・カードに関する当局の陰謀は、研究員の雑談の定番ネタだ。しかし、どうも先輩は言葉遊びに収まらないレベルで変な説を信じているように見える。確かに、毎月の報酬さえもリサ・カードで支払えるようにわざわざアドホックな法改正までしてしまったところを見ると、資金の流れをより深く把握する意図を否定しきれないのがなんとも痛いところで、先輩のように「だからコンビニって嫌いなんだ」と腕を組む人も多い。&lt;/p&gt;
&lt;p&gt;研究都市再開発法によって、広大な土地を持つ郊外型の研究所は、十分な生活圏の提供とその維持を条件に地区限定通貨制を敷くことを許されるようになった。三〇五特別区にあるこの研究所を皮切りに、今では大きなところはどこも自前の経済圏を持っている。&lt;/p&gt;
&lt;p&gt;先輩のような筋金入りの&lt;ruby&gt;&lt;rb&gt;監視嫌い&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;レジスタンス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;になると、定期的にどこかでリサ・カードを現金に引き換えているらしいけど、詳しいことは教えてくれない。&lt;/p&gt;
&lt;p&gt;「んー……サキさんは、今日もかわいいですね」&lt;/p&gt;
&lt;p&gt;「はいはい、エミもかわいいよ」&lt;/p&gt;
&lt;p&gt;「まぁ、とりあえず食べましょうよ。食事くらい私が買ってきますから」&lt;/p&gt;
&lt;p&gt;ペットボトルと袋入りの割り箸を差し出す私に、先輩は「そういうつもりで言ったんじゃない」と口を尖らせる。「分かってますよ」と答えると、先輩は「せめて、行使のたびに偽造できればいいんだが」と呟きながら、ネギトロパックのケースを開けた。&lt;/p&gt;
&lt;p&gt;/* この記事は2021年11月発行「先輩、今日もいいですか」から冒頭部分を抜粋したものであり、まだ&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。法律で認められている範囲を超えて許可なく複製、改変、再配布することを禁じます。 */&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:youhen"&gt;
&lt;p&gt;サファイアの内部に虹色に輝く透き通った瑠璃色の斑点が含まれており、光の当て方や見る角度によって様々な輝きを見せる。&amp;#160;&lt;a class="footnote-backref" href="#fnref:youhen" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:hotland"&gt;
&lt;p&gt;電気炉と紫外線照射器、不活化ガス装置が一体になった研究用・小規模生産向けの加工炉で、オノ産業社の主力商品である。&amp;#160;&lt;a class="footnote-backref" href="#fnref:hotland" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:hottale"&gt;
&lt;p&gt;&lt;ruby&gt;&lt;rb&gt;内容物&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;インクルージョン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を摂取させた加工石全般のことだが、特に金属箔を使って光沢を増した球状のものをいう。&amp;#160;&lt;a class="footnote-backref" href="#fnref:hottale" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:nakayoshi5"&gt;
&lt;p&gt;研究者コミュニケーションルール集によれば「一日に一回以上お互いのことを褒め合おう。研究以外のことで」とある。&amp;#160;&lt;a class="footnote-backref" href="#fnref:nakayoshi5" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>2021/09/03～2021/10/03</title><link href="https://ama.ne.jp/post/report-20211003/" rel="alternate"/><published>2021-10-03T18:58:00+09:00</published><updated>2021-10-03T18:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-10-03:/post/report-20211003/</id><summary type="html">&lt;p&gt;2021/09/03～2021/10/03のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;やった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;やった&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ページ上部のメニューを縮小し、位置を移動しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="/donation/"&gt;寄付&lt;/a&gt;はページ下部からアクセスできます。&lt;/li&gt;
&lt;li&gt;作品ページは&lt;a href="/i/"&gt;わたし&lt;/a&gt;に統合されました。&lt;/li&gt;
&lt;li&gt;おしらせページは&lt;a href="/"&gt;記事一覧&lt;/a&gt;に統合されました。&lt;/li&gt;
&lt;li&gt;スマートフォンやタブレットなどでは引き続き左側に表示されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;脚注番号にカーソルを合わせると補足内容が表示されるようにしました。&lt;ul&gt;
&lt;li&gt;今のところ、脚注内のリンクを辿ったりテキストをコピーしたりすることはできませんが、脚注をその場で展開するなどの計画があります。&lt;/li&gt;
&lt;li&gt;スマートフォンでの動作については実装中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;冒頭で目次を表示している記事について、第3階層以下を表示しないようにしました。&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/lily-letter-film/"&gt;百合お手紙・百合フイルムとふりかえり&lt;/a&gt;などの一覧性が改善されています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;記事一覧でのプレビュー表示を改善しました。&lt;ul&gt;
&lt;li&gt;記事から取得するプレビュー用テキストの取得方法を変更しました。&lt;/li&gt;
&lt;li&gt;末尾に「続きを読む」リンクを設置しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;古いブラウザやテキストブラウザ向けの表示を一部改善しました。&lt;/li&gt;
&lt;li&gt;壊れていた一部のリンクを修正・削除しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;かいた&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/peppermint-bath-time/"&gt;ペパーミント・バスタイム&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;ことこのえっちなモノローグです。三人で過ごしたあらゆる時間は、あわあわと優しい香りでいっぱいでした。&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/ruine-1/"&gt;廃墟&lt;/a&gt;, &lt;a href="/post/ruine-2/"&gt;曖昧&lt;/a&gt;に続くURAHARA二次創作の3作目です。&lt;/li&gt;
&lt;li&gt;2019年1月に発行した&lt;a href="https://hentaigirls.net/book/sugar-jelly/"&gt;Sugar Jelly&lt;/a&gt;に収録した作品です。&lt;/li&gt;
&lt;li&gt;記事の作成日時は対応する&lt;a href="https://amane.im/#works"&gt;自由文化作品&lt;/a&gt;の公開日時に合わせているため、新着記事として表示されていない場合があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/mix-sand-baking-1/"&gt;ミックスサンド・ベイキング&lt;/a&gt;, &lt;a href="/post/mix-sand-baking-2/"&gt;ミックスサンド・ベイキング 2&lt;/a&gt;をかきました。&lt;ul&gt;
&lt;li&gt;まりの感情動向です。三人でクラゲサンドを食べましょう。&lt;/li&gt;
&lt;li&gt;ペパーミント・バスタイムに続くURAHARA二次創作の4作目で、ストーリーとしてはここでいったん完結しています。&lt;/li&gt;
&lt;li&gt;第2章、あるいは安易なクロスオーバーに続く計画がありました。&lt;/li&gt;
&lt;li&gt;こちらもSugar Jelly収録作品です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/url-fragment-in-e2ee/"&gt;URLにおけるフラグメントと鍵の受け渡し&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;フラグメントを用いた簡易なE2EEの実現方法や注意点について記しました。&lt;/li&gt;
&lt;li&gt;ライフ 人間と科学シリーズ (&lt;a href="https://github.com/Plume-org/Plume"&gt;Plume&lt;/a&gt;)に投稿した内容を拡充したものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/domimi-smart-contract/"&gt;スマートコントラクトで射精管理&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;スマートコントラクトを用いた簡易な射精管理システムの定義と実装を行いました。&lt;/li&gt;
&lt;li&gt;ここから多くの射精管理システムを実現できる可能性があります。&lt;/li&gt;
&lt;li&gt;こちらもライフ 人間と科学シリーズ (&lt;a href="https://github.com/Plume-org/Plume"&gt;Plume&lt;/a&gt;)に投稿した内容を拡充して実装したものです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_4"&gt;その他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ライフ 人間と科学シリーズ (&lt;a href="https://github.com/Plume-org/Plume"&gt;Plume&lt;/a&gt;)を閉鎖し、一部の記事をあまねけ！に移しました。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/"&gt;ニュースレター&lt;/a&gt;は今のところ週刊で発行されています。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/1-357288"&gt;あまねけ！ニュースレター #1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/issues/2-775595"&gt;あまねけ！ニュースレター #2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;第3回は10/5に配信する予定です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ニュースレターの始動に伴い、この「おしらせ」コーナーは縮小する予定です。&lt;/li&gt;
&lt;li&gt;FANBOXを閉鎖しました。再開の予定はありません。&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>スマートコントラクトで射精管理</title><link href="https://ama.ne.jp/post/domimi-smart-contract/" rel="alternate"/><published>2021-10-03T11:35:00+09:00</published><updated>2021-10-03T11:35:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-10-03:/post/domimi-smart-contract/</id><summary type="html">&lt;p&gt;アンドロイドとエッチな日々&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;前提知識&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;スマートコントラクト&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;射精管理&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;射精管理コントラクト&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_6"&gt;登場人物・仕様&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;実装&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_20"&gt;動作確認&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_31"&gt;今後の展望&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;/* この記事は、ライフ 人間と科学シリーズ(Plume)の閉鎖処理の一環として、投稿した情報の整理を行うために書かれた。 */&lt;/p&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;スマートコントラクト&lt;/strong&gt; は、中央管理に依存しないプログラムの実行環境を提供する仕組みである。スマートコントラクトを用いることで契約の実行や検証を自動で行えるようになり、契約に基づく &lt;strong&gt;射精管理&lt;/strong&gt; のような状況を実現するのに役立つ。本記事では、管理者が射精の制限期間を増減できる単純な状況を想定し、&lt;a href="https://ethereum.org"&gt;Ethereum&lt;/a&gt;ネットワーク上で動作する射精管理コントラクトの実装例を提示する。&lt;/p&gt;
&lt;h2 id="_2"&gt;前提知識&lt;/h2&gt;
&lt;h3 id="_3"&gt;スマートコントラクト&lt;/h3&gt;
&lt;p&gt;スマートコントラクトとは、中央管理に依存せずトランザクション上で契約の実行や検証を行うための仕組みである。特に、チューリング完全なプログラムを実行可能なEthereumネットワークは分散型アプリケーションが動作するプラットフォームとして広く使われている。&lt;/p&gt;
&lt;p&gt;スマートコントラクトの実行結果は、ネットワーク参加者が採掘を通じてブロックチェーンに記録されていくため、ブロックチェーンの改ざん耐性を限度にその正当性が保証される。そのため、中央集権的な実行環境では容易に書き換えられるような処理でも安全に実行できる。例えば、「&lt;a href="https://twitter.com/amane_katagiri/status/1439493341318549506"&gt;ゴミやたばこのポイ捨てを行ったアカウントから健康寿命を4時間取り上げ、ゴミを拾ったアカウントに3時間、難病のアカウントに1時間移し替える&lt;/a&gt;」ような処理を、四則演算と代入を使った素朴な表現で実装できる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;healthyLife&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;illegal&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;healthyLife&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;illegal&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;sub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;hours&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;healthyLife&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;legal&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;healthyLife&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;legal&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;hours&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;healthyLife&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;disease&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;healthyLife&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;disease&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;hours&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="_4"&gt;射精管理&lt;/h3&gt;
&lt;p&gt;射精管理とは、射精の権限を他人に渡して自由な射精を制限されること、また他人から射精の権限を受け取って自由な射精を制限することである。権限を受け渡すには、契約書への署名や宣誓の録音・撮影で精神的な制限を与えたり、貞操帯などで物理的な制限を与えるなどの手段があるが、これに限らない。&lt;/p&gt;
&lt;p&gt;しかし、単なる契約書は、法的な係争では役立つものの実際に射精することを禁止できるわけではない。また、貞操帯などを用いた物理的制限も、必ずしも契約の範囲内で管理を行えるよう設計されているわけではない。このような状況で契約書と貞操帯を接続するために、スマートコントラクトが役立つ。&lt;/p&gt;
&lt;p&gt;この記事では便宜上、射精を管理する「管理者」と射精を管理される「被管理者」を分けて進めるが、必ずしも2人以上の人間が必要というわけではなく、管理者の肉体的あるいは精神的存在の有無はさほど重要ではない。また、射精管理という語の定義上では被管理者の意思に反して（何度も）強制的に射精させるケースも含むが、この記事では主に被管理者の射精欲求にかかわらず射精を禁止するケースのみを扱う。&lt;/p&gt;
&lt;h2 id="_5"&gt;射精管理コントラクト&lt;/h2&gt;
&lt;p&gt;ここからは、スマートコントラクトで射精管理を実施する単純な例について考える。この例では、1人の管理者が1人の被管理者に管理期間を経て1回限りの射精許可を与える場合を想定している。そのため、以下のような複数の管理者・被管理者を束ねるケースについては別に考える。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;複数の管理者が1人の被管理者の射精をロックし、過半数の許可で射精できるようなケース&lt;/li&gt;
&lt;li&gt;1人の管理者が複数の被管理者の射精をロックし、最も多くの管理費を支払った被管理者のみが射精できるようなケース&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;周期的な管理を必要とするケースでは、この記事で示す1回限りの射精許可を繰り返せばよさそうだが、射精回数より管理費の支払い回数が少ない場合などは新たな実装を考える必要がある。&lt;/p&gt;
&lt;p&gt;ここで示す実装の全体は&lt;a href="https://github.com/amane-katagiri/domimi"&gt;amane-katagiri/domimi&lt;/a&gt;の通りである。&lt;/p&gt;
&lt;h3 id="_6"&gt;登場人物・仕様&lt;/h3&gt;
&lt;p&gt;&lt;img alt="_射精管理コントラクトのシーケンス図" height="684" src="/images/domimi-smart-contract/seq.png" width="596"&gt;&lt;/p&gt;
&lt;!--

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="n"&gt;startuml&lt;/span&gt;
&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;射精管理システム&lt;/span&gt;
&lt;span class="n"&gt;hide&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;footbox&lt;/span&gt;

&lt;span class="n"&gt;participant&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;射精管理サーバ&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Server&lt;/span&gt;
&lt;span class="n"&gt;participant&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;被管理者・射精管理デバイス&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Owner&lt;/span&gt;
&lt;span class="n"&gt;participant&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;射精管理コントラクト&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;
&lt;span class="n"&gt;participant&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;管理者&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Master&lt;/span&gt;

&lt;span class="n"&gt;activate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Owner&lt;/span&gt;
&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;コントラクトのデプロイ&lt;/span&gt;
&lt;span class="n"&gt;activate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;
&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;コントラクトのアドレス&lt;/span&gt;

&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Master&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;署名リクエスト&lt;/span&gt;
&lt;span class="n"&gt;activate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Master&lt;/span&gt;
&lt;span class="n"&gt;Master&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;署名済みパラメータ&lt;/span&gt;
&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;保証金預け入れ&lt;/span&gt;
&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理開始&lt;/span&gt;
&lt;span class="n"&gt;group&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理期間&lt;/span&gt;
&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理期間延長&lt;/span&gt;
&lt;span class="n"&gt;Master&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理期間延長&lt;/span&gt;
&lt;span class="n"&gt;note&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;射精許可を条件とした駆け引き&lt;/span&gt;&lt;span class="err"&gt;、&lt;/span&gt;&lt;span class="n"&gt;調教&lt;/span&gt;&lt;span class="err"&gt;、\&lt;/span&gt;&lt;span class="n"&gt;n搾取などは常にコントラクト外で行う&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理期間経過&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="n"&gt;end&lt;/span&gt;
&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理終了&lt;/span&gt;
&lt;span class="n"&gt;note&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理者はいつでも管理終了できる&lt;/span&gt;

&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理費送金リクエスト&lt;/span&gt;
&lt;span class="n"&gt;note&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;withdrawalパターン&lt;/span&gt;
&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Master&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理費&lt;/span&gt;
&lt;span class="n"&gt;deactivate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Master&lt;/span&gt;

&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Server&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;射精許可リクエスト&lt;/span&gt;
&lt;span class="n"&gt;activate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Server&lt;/span&gt;
&lt;span class="n"&gt;Server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理状況確認&lt;/span&gt;
&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Server&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;管理状況&lt;/span&gt;
&lt;span class="n"&gt;Server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;射精許可&lt;/span&gt;
&lt;span class="n"&gt;deactivate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Server&lt;/span&gt;

&lt;span class="n"&gt;Owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;コントラクトの破壊&lt;/span&gt;

&lt;span class="n"&gt;deactivate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Contract&lt;/span&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="n"&gt;enduml&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


--&gt;

&lt;h4 id="_7"&gt;被管理者&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;被管理者&lt;/strong&gt; は射精管理の対象となっている者である。少なくとも射精管理を受けている間は &lt;strong&gt;射精管理デバイス&lt;/strong&gt; を装着しており、 &lt;strong&gt;管理期間&lt;/strong&gt; 内は射精することができない。管理期間が終了するまで待ち、管理期間が追加されないように、また管理期間より前に射精許可が得られるように行動する。&lt;/p&gt;
&lt;p&gt;被管理者は、 &lt;strong&gt;管理者&lt;/strong&gt; が示した条件の下で &lt;strong&gt;管理開始費&lt;/strong&gt; を支払って管理を開始し、 管理期間終了後に無料で、あるいは終了前に &lt;strong&gt;管理中止費&lt;/strong&gt; を支払ってリセットできるコントラクトを作成する。被管理者は以下の操作を行うことができる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;管理者が設定されていない場合&lt;ul&gt;
&lt;li&gt;いつでも: 管理開始費を支払ってコントラクトに署名済みの管理情報を設定できる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;管理者が設定されている場合&lt;ul&gt;
&lt;li&gt;管理期間内: 管理中止費を支払って管理情報をリセットできる&lt;/li&gt;
&lt;li&gt;管理期間外: 無料で管理情報をリセットできる&lt;/li&gt;
&lt;li&gt;いつでも: 管理期間を追加できる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_8"&gt;管理者&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;管理者&lt;/strong&gt; は射精管理を実施する者である。コントラクトを通じて射精管理デバイスを操作し、被管理者が管理期間内に射精することを禁止する。管理期間は自由に増減でき、射精許可を条件に、また管理期間の追加をちらつかせて被管理者との支配・被支配関係を確立する。&lt;/p&gt;
&lt;p&gt;管理者は、被管理者に指定した管理期間や管理開始費でコントラクトを開始させ、一定の範囲で自由に管理期間を追加し、または管理期間終了前に任意にリセットする。管理者は以下の操作を行うことができる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;管理者が設定されていない場合&lt;ul&gt;
&lt;li&gt;いつでも: 署名済みの情報を渡して自らを管理者として設定するようリクエストできる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;管理者として設定されている場合&lt;ul&gt;
&lt;li&gt;いつでも: 管理情報をリセットできる&lt;/li&gt;
&lt;li&gt;いつでも: 管理期間を追加できる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このうち、被管理者が実行するインセンティブがない、あるいは管理者が実行する方がふさわしい処理は管理者自身で行う。実行にかかる費用は手数料として被管理者から差し引かれる。&lt;/p&gt;
&lt;h4 id="_9"&gt;射精管理デバイス&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;射精管理デバイス&lt;/strong&gt; は、被管理者に装着して物理的に射精を制限するための装置である。管理者のみが自由に管理を開始・終了できる可用性とともに、被管理者が不正に解錠・射精しないための機密性を備えている。&lt;/p&gt;
&lt;p&gt;典型的には、南京錠でロックする古典的な貞操帯や、&lt;a href="https://www.qiui.store/"&gt;QIUI&lt;/a&gt;などのスマート貞操帯がある。さらに、鍵を保管するための&lt;a href="https://www.dreamloverlabs.com/chronovault.php"&gt;ChronoVault&lt;/a&gt;などの補助的な装置を用いることもできる。これらの装置は、 &lt;strong&gt;射精管理サーバ&lt;/strong&gt; が操作するためのインターフェースを提供しなければならない。&lt;/p&gt;
&lt;h4 id="_10"&gt;射精管理サーバ&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;射精管理サーバ&lt;/strong&gt; は、管理者の代わりに射精管理デバイスの操作を行う第三者である。射精許可のための秘密の情報を保持しており、利便性のためにデプロイの代行やコミュニケーションの補助を行うかもしれない。ただし、分散型アプリケーションの利点を保つため、サーバはできるだけ小さく保つべきである。&lt;/p&gt;
&lt;p&gt;射精管理サーバは、主に被管理者のリクエストに応じて、コントラクトに管理者が設定されていなければ射精許可を行う。射精許可の実装はオフチェーンであり、例えば射精管理デバイスによって以下のような処理を行う。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;南京錠の数字を通知する（&lt;a href="https://chastikey.com/"&gt;ChastiKey&lt;/a&gt;）&lt;/li&gt;
&lt;li&gt;スマート貞操帯に解除リクエストを送る&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_11"&gt;実装&lt;/h3&gt;
&lt;h4 id="_12"&gt;スマートコントラクト&lt;/h4&gt;
&lt;h5 id="_13"&gt;管理情報の保持&lt;/h5&gt;
&lt;p&gt;コントラクトは以下のような管理情報を保持する。このうち、管理期間、管理開始費、管理中止費、管理実行費、1回あたりの最大延長期間は管理者が示したパラメータで設定される。管理開始時刻は、管理開始時にブロックの時刻で設定される。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// 管理詳細情報&lt;/span&gt;
&lt;span class="nx"&gt;struct&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Management&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 管理者&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;master&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 管理開始時刻（UNIX時間）&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 管理期間（秒）&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;period&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 管理開始費（wei）&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;initialCost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 管理中止費（wei）&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;abortCost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 管理者自身で実行する操作1回あたりの手数料（wei）&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;execCost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 1回あたりの最大延長期間（秒）&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;maxExtent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;コントラクトの所有者は常に被管理者となり、コントラクトのデプロイおよびほとんどの処理で自らgasを負担する。&lt;/p&gt;
&lt;p&gt;初期状態では管理者と被管理者が同一であり、これにより管理者が存在しない状態を表現する。すなわち、このコントラクトでは &lt;strong&gt;自己管理は管理ではない&lt;/strong&gt; ということになる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// コントラクトの所有者（=被管理者）&lt;/span&gt;
&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kr"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sender&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;master&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sender&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;isUnderManagement&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;view&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;returns&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;master&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;reset&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;internal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyWithMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyOwnerOrMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Management&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h5 id="_14"&gt;管理開始&lt;/h5&gt;
&lt;p&gt;射精管理は常に被管理者と管理者の合意の上で開始できる。コントラクト上では、新たな管理者から受け取った管理情報に対する署名を、被管理者が管理開始関数に渡すことで表現する。&lt;/p&gt;
&lt;p&gt;管理情報は、コントラクトで保持する管理詳細情報と、管理開始時点でコントラクトに預けられているべき最小残高を含んでいる。開始時点で最小残高に満たなければ、管理を開始することはできない。コントラクトの最小残高は、管理開始時点での管理者による管理期間の追加可能回数を示している。&lt;/p&gt;
&lt;p&gt;前述の通り、被管理者自身を管理者として設定することはできない。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// 開始署名のリプレイ攻撃を防ぐ nonce の使用済みリスト&lt;/span&gt;
&lt;span class="nx"&gt;mapping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;usedNonces&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// 管理開始&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_master&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_initialCost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_period&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_abortCost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_execCost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_maxExtent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;minBalance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;nonce&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bytes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;memory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;signature&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyWithoutMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyOwner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 残高 &amp;gt;= 最小残高 &amp;gt;= 初期費用&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;minBalance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_initialCost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;must be minBalance &amp;gt;= _initialCost&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;balance&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;minBalance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;must deposit at least minBalance&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_master&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;new _master must not be owner&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;usedNonces&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;nonce&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;this nonce is already used&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;usedNonces&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;nonce&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;bytes32&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;prefixed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;keccak256&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nx"&gt;abi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;encodePacked&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;_initialCost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_period&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_abortCost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_execCost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_maxExtent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nx"&gt;minBalance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;nonce&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;recoverSigner&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_master&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;signer is not new _master&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;master&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_master&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;start&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;initialCost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_initialCost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;period&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_period&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;abortCost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_abortCost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;execCost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_execCost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxExtent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_maxExtent&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;acquire&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;initialCost&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h5 id="_15"&gt;管理期間の追加&lt;/h5&gt;
&lt;p&gt;管理期間の増減は、管理者が効率的に上下関係を構築するための重要な権利である。そのため、コントラクト上で管理者による自由な管理期間の追加および中止をサポートする。&lt;/p&gt;
&lt;p&gt;ただし、悪意ある管理者が被管理者の意図に反して（半）永久にロックすることを防ぐため、管理期間の追加やその回数にある程度の上限を設定すべきである。また、管理実行費を窃取するために管理期間の追加を濫発することを防ぐため、コントラクトの残高を必要最小限に保つ必要がある。&lt;/p&gt;
&lt;p&gt;このコントラクトでは、管理期間の追加に限って被管理者自身でも行うことができる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;extendPeriod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_extent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyWithMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyOwnerOrMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 被管理者は上限なく期間を追加できる&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 管理者は maxExtent を上限として追加できる&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;isSentByOwner&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;_extent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;maxExtent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;must be _extent &amp;lt;= maxExtent&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;isSentByMaster&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;acquire&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;execCost&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;period&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;period&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_extent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h5 id="_16"&gt;管理期間の終了に伴う・または管理者による管理情報のリセット&lt;/h5&gt;
&lt;p&gt;被管理者は、管理期間満了後にいつでもその管理情報を消去できる。一方、管理者は管理期間にかかわらずいつでもその管理情報を消去できる。管理者による射精許可を条件とした駆け引き、搾取などは常にコントラクト外で行われる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyWithMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyOwnerOrMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 管理者はいつでも管理を終了できる&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 被管理者は管理期間満了後に管理を終了できる&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;isSentByMaster&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;isOnPeriod&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;you cannot exit on management period&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;isSentByMaster&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;acquire&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;execCost&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;reset&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h5 id="_17"&gt;管理中止に伴う管理情報のリセット&lt;/h5&gt;
&lt;p&gt;やむを得ない事情で管理を中止しなければならない場合は、事前に取り決めた管理中止費を支払って被管理者自身で管理情報をリセットする。管理を中止しても、これまで管理者に支払われた費用を取り戻すことはできず、あくまで緊急的な措置としての効果しかない。&lt;/p&gt;
&lt;p&gt;前述の通り、管理者自身が管理を中止したい場合はexitを用いる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyWithMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyOnPeriod&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyOwner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;acquire&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;abortCost&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;reset&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h5 id="_18"&gt;支払い処理&lt;/h5&gt;
&lt;p&gt;悪意ある管理者による永久ロックを防ぐため、&lt;a href="https://docs.soliditylang.org/en/v0.8.7/common-patterns.html#withdrawal-from-contracts"&gt;withdrawalパターン&lt;/a&gt;で支払いと引き出しを分割する。&lt;/p&gt;
&lt;p&gt;まず、支払われた費用を後から引き出すために、コントラクトで誰にいくら支払ったかを記録しておく必要がある。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// 管理者が受け取る金額のリスト&lt;/span&gt;
&lt;span class="nx"&gt;mapping&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payouts&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// 全ての管理者が受け取る金額の合計&lt;/span&gt;
&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payoutTotal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;支払い時は即座にtransfterせず、単にコントラクトの残高をロックすることで引き出しに備える。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;acquire&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;internal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyWithMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyOwnerOrMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;payoutTotal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;balance&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;must be payoutTotal + amount &amp;lt;= balance&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;payouts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;master&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payouts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;master&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;payoutTotal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payoutTotal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ロックされた残高はいつでも引き出すことができる。被管理者の手で &lt;em&gt;差し出させる&lt;/em&gt; か、管理者自身がgasを払って引き出すことができるが、後者が必要なのは被管理者が連絡を絶ったなど緊急の状況に限られるだろう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;withdraw&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;receiver&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 被管理者は任意の管理者の管理手数料を送金できる&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// 管理者は自らに支払われた管理手数料を送金できる&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;isSentByOwner&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;receiver&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sender&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;you can withdraw only your own balance&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payouts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;receiver&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;receiver not found&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payouts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;receiver&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="ow"&gt;delete&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payouts&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;receiver&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;payoutTotal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;payoutTotal&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;receiver&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;transfer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;被管理者は、非管理下の場合に限ってロックされていない残高を取り戻すことができる。管理下で残高を引き出すことができないのは、コントラクトの残高が被管理者に突きつけられた銃の残弾数、つまり管理者自身による管理期間延長可能回数と同義のためである。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;refund&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyWithoutMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyOwner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;uint&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;balance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sub&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payoutTotal&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;transfer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;同様に、非管理下でも管理手数料が全て払い出されていない場合はselfdestructできない。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;kill&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyWithoutMaster&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;onlyOwner&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;payoutTotal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;must be called after all the management costs are payed out&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;selfdestruct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h4 id="_19"&gt;射精管理サーバ&lt;/h4&gt;
&lt;p&gt;単純化のため、与えられたコントラクトが管理下になければ固定の番号を返すだけのサーバを考える。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/unlock&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;contract&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ow"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;web3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;eth&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Contract&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;abi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;address&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;contract&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;methods&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;isUnderManagement&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;call&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;your padlock number is 1234&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;not allowed&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;error&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="_20"&gt;動作確認&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/amane-katagiri/domimi/blob/master/README.md"&gt;README.md&lt;/a&gt;の通りにdocker-composeで各サーバを立ち上げ、Ganache上でコントラクトのデプロイを行った。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;被管理者 &lt;code&gt;0x3F43d089c033b3e7664e1B44334a0C2629f968e7&lt;/code&gt; (100 ETH)&lt;/li&gt;
&lt;li&gt;管理者 &lt;code&gt;0xf741496DA568BBd24924b49D15644b5adacA5C77&lt;/code&gt; (100 ETH)&lt;ul&gt;
&lt;li&gt;秘密鍵: &lt;code&gt;0xb61517e265dbfdef2dcb4bd36025c143093c8a91adb79fbb29a46f2af5c0caf5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;射精管理コントラクト &lt;code&gt;0x3cd8792E537cd4D389Cb589E136800F3D59aE0e2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_21"&gt;初期状態で解錠されていること&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;http://localhost:8000/owner/#0x3cd8792E537cd4D389Cb589E136800F3D59aE0e2&lt;/code&gt; で初期表示および「保証金確認」を行った。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;被管理者のアドレス: &lt;code&gt;init(ok)&amp;gt; owner address: 0x3F43d089c033b3e7664e1B44334a0C2629f968e7&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;コントラクトのアドレス: &lt;code&gt;init(ok)&amp;gt; your contract address: 0x3cd8792E537cd4D389Cb589E136800F3D59aE0e2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;被管理者の残高&lt;sup id="fnref:deploy-gas"&gt;&lt;a class="footnote-ref" href="#fn:deploy-gas" title="初期状態は100 ETHだが、コントラクトのデプロイにgasを使用したので少し減った。"&gt;1&lt;/a&gt;&lt;/sup&gt;: &lt;code&gt;checkBalance(ok)&amp;gt; you have 99961167840000000000 wei&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;ロック状態の確認: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is unlocked (server said: your padlock number is 1234)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;コントラクト上の残高&lt;sup id="fnref:deposit"&gt;&lt;a class="footnote-ref" href="#fn:deposit" title="コントラクトに送金することで保証金を追加できる。"&gt;2&lt;/a&gt;&lt;/sup&gt;: &lt;code&gt;checkDeposit(ok)&amp;gt; deposit on contract: 0 wei&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="_22"&gt;管理者が管理開始用の署名を生成できること&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;http://localhost:8000/master/#0x3cd8792E537cd4D389Cb589E136800F3D59aE0e2&lt;/code&gt; で署名を生成した。&lt;/p&gt;
&lt;p&gt;1 ETH = 1000000000000000000 weiより、設定値は以下の通りである。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;管理開始費: 1 ETH （≒374656 JPY）&lt;/li&gt;
&lt;li&gt;管理中止費: 10 ETH （≒3746560 JPY）&lt;/li&gt;
&lt;li&gt;管理手数料: 0.1 ETH （≒37466 JPY）&lt;/li&gt;
&lt;li&gt;最小残高: 2 ETH （≒749312 JPY）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="_GUIにおけるgenerateSignatureのパラメータ入力例" height="762" src="/images/domimi-smart-contract/generateSignature.png" width="517"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;quot;master&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;0xf741496DA568BBd24924b49D15644b5adacA5C77&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;quot;period&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;quot;initialCost&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;1000000000000000000&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;quot;abortCost&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;10000000000000000000&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;quot;execCost&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;100000000000000000&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;quot;maxExtent&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;quot;minBalance&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;2000000000000000000&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;quot;nonce&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;1378399312&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;quot;signature&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;0xc9089f53a76352d460517e1ae5bfed3296428e33dbc11bd67f786068a0fcee79225e5b98be90c89e1df4bd476a1ce3bad2220b0ac1d7066a9e59259bc592586e1c&amp;quot;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h4 id="_23"&gt;被管理者が署名を使って管理を開始できること&lt;/h4&gt;
&lt;p&gt;&lt;img alt="_GUIにおけるstartのパラメータ入力例" height="279" src="/images/domimi-smart-contract/start.png" width="512"&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;管理開始前: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is unlocked (server said: your padlock number is 1234)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;「管理開始」呼び出し: &lt;code&gt;start(ok)&amp;gt; 0xec99c9360ed2465ce78e9913e5b0f58d758f994f3847b12d05b84cd5f7049431&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;管理開始後: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is locked by 0xf741496DA568BBd24924b49D15644b5adacA5C77 until 2021-10-02T16:09:07.000Z (server said: not allowed)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="_24"&gt;管理期間中に被管理者が管理を終了できないこと&lt;/h4&gt;
&lt;p&gt;管理期間中は被管理者から「管理終了」を使用できない。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ロック状態の確認: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is locked by 0xf741496DA568BBd24924b49D15644b5adacA5C77 until 2021-10-02T16:09:07.000Z (server said: not allowed)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;「管理終了」失敗: &lt;code&gt;exit(error)&amp;gt; Error: Returned error: VM Exception while processing transaction: revert you cannot exit on management period&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="_25"&gt;管理状態で管理期間を延長できること&lt;/h4&gt;
&lt;p&gt;被管理者および管理者が「100秒延長」を行った。&lt;/p&gt;
&lt;h5 id="_26"&gt;被管理者&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;管理期間の確認: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is locked by 0xf741496DA568BBd24924b49D15644b5adacA5C77 until 2021-10-02T16:09:07.000Z (server said: not allowed)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;「100秒延長」呼び出し: &lt;code&gt;extendPeriod(ok)&amp;gt; 0xe764b02686fadd7d381d9f1f16cee9815524cc134d2f5ba555bc203c56cfe1fa&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;管理期間の確認（+100s）: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is locked by 0xf741496DA568BBd24924b49D15644b5adacA5C77 until 2021-10-02T16:10:47.000Z (server said: not allowed)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id="_27"&gt;管理者&lt;/h5&gt;
&lt;ol&gt;
&lt;li&gt;管理期間の確認: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is locked by 0xf741496DA568BBd24924b49D15644b5adacA5C77 until 2021-10-02T16:10:47.000Z (server said: not allowed)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;「100秒延長」呼び出し: &lt;code&gt;extendPeriod(ok)&amp;gt; 0x227db532cb06e875e62f6c8139f9f44072833a2531f1114dc2e474f560833b18&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;管理期間の確認（+100s）: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is locked by 0xf741496DA568BBd24924b49D15644b5adacA5C77 until 2021-10-02T16:12:27.000Z (server said: not allowed)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="_28"&gt;管理期間終了後に被管理者が管理を終了できること&lt;/h4&gt;
&lt;p&gt;被管理者が「管理終了」を行った。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;管理終了前: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is locked by 0xf741496DA568BBd24924b49D15644b5adacA5C77 until 2021-10-02T16:12:27.000Z (server said: not allowed)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;「管理終了」呼び出し: &lt;code&gt;exit(ok)&amp;gt; 0xb8ebd1de47cd3e6e82314f5817d87f58634bd74976a395ae866e383b3cd28d9e&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;管理終了後: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is unlocked (server said: your padlock number is 1234)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="_29"&gt;被管理者が管理者に管理費を送金できること&lt;/h4&gt;
&lt;p&gt;被管理者が「管理費を送金」を行った。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;管理費送金前: &lt;code&gt;checkDeposit(ok)&amp;gt; deposit on contract: 3000000000000000000 wei&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;「管理費を送金」呼び出し: &lt;code&gt;withdraw(ok)&amp;gt; 0xaeb28acb2b8055a3ffd16cb37df8ab337ee8ef1d19a2ea89d8b3d5c20bb9095b&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;管理費送金後（-1.1 ETH）: &lt;code&gt;checkDeposit(ok)&amp;gt; deposit on contract: 1900000000000000000 wei&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;内訳は管理開始費（1 ETH）と管理期間延長時の管理手数料（0.1 ETH）である。&lt;/p&gt;
&lt;h4 id="_30"&gt;被管理者が管理を中止できること&lt;/h4&gt;
&lt;p&gt;被管理者が「管理中止」を行った。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;管理中止前: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is locked by 0xf741496DA568BBd24924b49D15644b5adacA5C77 until 2021-10-02T16:17:47.000Z (server said: not allowed)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;管理費送金前: &lt;code&gt;checkDeposit(ok)&amp;gt; deposit on contract: 12900000000000000000 wei&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;「管理中止」呼び出し: &lt;code&gt;abort(ok)&amp;gt; 0x7cb82cb7c987a2d10faa97ec577083a13034b864f72c9d6c8ca143e6c5ab7853&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;「管理費を送金」呼び出し&lt;code&gt;withdraw(ok)&amp;gt; 0x72c0de005b3c3c27474c99b13824eb9a0d42076e50ee30ce76437c1b2a127fc1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;管理費送金後（-11 ETH）: &lt;code&gt;checkDeposit(ok)&amp;gt; deposit on contract:  1900000000000000000 wei&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;管理中止後: &lt;code&gt;checkLocked(ok)&amp;gt; 0x3F43d089c033b3e7664e1B44334a0C2629f968e7 is unlocked (server said: your padlock number is 1234)&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;内訳は管理開始費（1 ETH）と管理中止費（10 ETH）である。&lt;/p&gt;
&lt;h2 id="_31"&gt;今後の展望&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://metamask.io/"&gt;MetaMask&lt;/a&gt;などを用いたより便利で実用的な実装の提供&lt;/li&gt;
&lt;li&gt;&lt;a href="https://recruit.gmo.jp/engineer/jisedai/blog/gsn/"&gt;メタトランザクション&lt;/a&gt;を用いたコストの削減&lt;/li&gt;
&lt;li&gt;代行手数料の導入による射精管理サーバの収益化&lt;/li&gt;
&lt;li&gt;支払いに&lt;a href="https://ethereum.org/stablecoins/"&gt;ステーブルコイン&lt;/a&gt;を用いた管理費の安定化&lt;/li&gt;
&lt;li&gt;自らEthereumネットワークを監視する非中央集権型射精管理デバイスの開発&lt;/li&gt;
&lt;li&gt;stewpot氏によるスマートコントラクト射精管理のテキスト執筆&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:deploy-gas"&gt;
&lt;p&gt;初期状態は100 ETHだが、コントラクトのデプロイにgasを使用したので少し減った。&amp;#160;&lt;a class="footnote-backref" href="#fnref:deploy-gas" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:deposit"&gt;
&lt;p&gt;コントラクトに送金することで保証金を追加できる。&amp;#160;&lt;a class="footnote-backref" href="#fnref:deposit" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>URLにおけるフラグメントと鍵の受け渡し</title><link href="https://ama.ne.jp/post/url-fragment-in-e2ee/" rel="alternate"/><published>2021-09-20T14:16:00+09:00</published><updated>2021-09-20T14:16:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-09-20:/post/url-fragment-in-e2ee/</id><summary type="html">&lt;p&gt;ブラウザでたのしくE2EE&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;フラグメントとは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#e2ee"&gt;E2EEとは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#url"&gt;URLを使った鍵の受け渡し&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;フラグメントを通じて鍵を受け渡す例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;フラグメントを使わずに鍵を受け渡す例&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;フラグメントを活用する際の注意点&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_6"&gt;使用できる文字種&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;使用できる文字数&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;受け取ったデータの検証&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;/* この記事は、ライフ 人間と科学シリーズ(Plume)の閉鎖処理の一環として、投稿した情報の整理を行うために書かれた。 */&lt;/p&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;インターネット上のリソースを指し示すために使われる &lt;strong&gt;URL&lt;/strong&gt; &lt;sup id="fnref:url-example"&gt;&lt;a class="footnote-ref" href="#fn:url-example" title="https://example.com/path/to/resource#fragment など。"&gt;1&lt;/a&gt;&lt;/sup&gt;は、スキームや接続先、場所を示す複数の要素で構成されている。このうち、末尾の &lt;code&gt;#&lt;/code&gt; から始まる要素である &lt;strong&gt;フラグメント&lt;/strong&gt; は、一般的なブラウザにおいてサーバに送信されないという特殊な性質を持つ。この記事では、その特徴を利用したアプリケーションの例と、フラグメントを活用する際の注意点について触れる。&lt;/p&gt;
&lt;h2 id="_2"&gt;フラグメントとは&lt;/h2&gt;
&lt;p&gt;URLは、その上位概念としてのURI - &lt;a href="https://www.rfc-editor.org/rfc/rfc3986.html"&gt;RFC 3986&lt;/a&gt;または&lt;a href="https://url.spec.whatwg.org/"&gt;URL Standard&lt;/a&gt;によってその構文が定義されている。URL構文のうちフラグメントはURLの末尾に置かれる &lt;code&gt;#&lt;/code&gt; から始まる要素で、クライアント側で処理されることを意図した文字列である。&lt;a href="https://www.rfc-editor.org/rfc/rfc7230.html"&gt;RFC 7230&lt;/a&gt;ではリクエストにおけるリソースの指定から除外される旨が明記されており、今日の一般的なブラウザでもそのように動作する&lt;sup id="fnref:brower-fragment"&gt;&lt;a class="footnote-ref" href="#fn:brower-fragment" title="ウェブ上のリソースの識別 - HTTP | MDN"&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;通常のHTMLドキュメントでは、フラグメントは同じドキュメント内のある場所を示しており、ブラウザで開くとその位置まで移動するという挙動を示す。以下の例では「コメントを読む」をクリックすると、アドレスバーに表示されたURLの末尾に &lt;code&gt;#super_fragment&lt;/code&gt; が付加され、「フラグメントは便利です」に移動する。ブラウザやサイトによっては、瞬時に移動するのではなくスクロールのアニメーションを表示するかもしれない。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;#super_fragment&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;コメントを読む&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="cm"&gt;&amp;lt;!--&lt;/span&gt;
&lt;span class="cm"&gt;  長大な文書&lt;/span&gt;
&lt;span class="cm"&gt;--&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;super_fragment&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;フラグメントは便利です&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;SPAなどのHTML上で実装されたアプリケーションでは、JavaScriptによって画面遷移が制御されており、アプリケーションの状態をURLにマッピングするためにフラグメントが使われる場合がある。例えば、 &lt;code&gt;https://example.com/#!/user/amane/edit&lt;/code&gt; というURLを開くと、 &lt;code&gt;amane&lt;/code&gt; というユーザの情報を編集する画面が表示されるように設定できる。アプリケーション内のある場所を示すという意味では、通常のHTMLドキュメントと大きな違いはないとも言えるだろう。&lt;/p&gt;
&lt;p&gt;さて、このようなフラグメントの使い方は、あくまでURLが示すリソースをさらに絞り込むための副次的な情報としての利用に留まっており、サーバに送信されないという特殊な性質を十分に活かしきれていない。ある情報をクライアントが知りつつサーバが知らないという状況は、エンドツーエンド暗号化（E2EE）とよく似ている。&lt;/p&gt;
&lt;h2 id="e2ee"&gt;E2EEとは&lt;/h2&gt;
&lt;p&gt;エンドツーエンド暗号化（End-to-End Encryption / E2EE）とは、他者&lt;sup id="fnref:isp"&gt;&lt;a class="footnote-ref" href="#fn:isp" title="ここでは契約しているISPや経由する全てのネットワークのこと。"&gt;3&lt;/a&gt;&lt;/sup&gt;を経由したり、他者&lt;sup id="fnref:server"&gt;&lt;a class="footnote-ref" href="#fn:server" title="ここではメッセンジャーやクラウドストレージといったサービスの提供者のこと。"&gt;4&lt;/a&gt;&lt;/sup&gt;が保管・転送するデータ――プライベートなチャットや音声通話・クラウドストレージ上の機密情報などを含むが、それに限らない――を暗号化する際に、データを利用者/送信者/受信者だけが持つ鍵で暗号化する技術である。これにより、通信を傍受しうる必ずしも信頼できない他者が、勝手にその内容を閲覧することを（運用上ではなく）原理的に防いだり、たとえサーバからデータが流出してもその内容を保護することができる。&lt;/p&gt;
&lt;p&gt;HTTPSやSMTPSなどのTLSを用いた経路暗号化では、経路上でデータを傍受される心配はなくなるが、依然としてサービスの提供者はそのデータを閲覧することができる。これらのプロトコルはサーバ上のリソースを特定し、利用するためにリクエストを送信するので当たり前の挙動に思えるものの、サーバにリソースの内容を知られたくないケースも多々存在する。リソースの所有者はサービス提供者と必ずしも一致しないからだ。例えば、クラウドストレージに保管するデータは利用者の所有物であり、プライベートなチャットの内容は送信者と受信者のみが知るべき情報である&lt;sup id="fnref:bad-rule"&gt;&lt;a class="footnote-ref" href="#fn:bad-rule" title="サービスの規約によってはこの原則が否定されるかもしれない。"&gt;5&lt;/a&gt;&lt;/sup&gt;。このようなアプリケーションでデータを安全に保つために、E2EEが役立つ。&lt;/p&gt;
&lt;p&gt;クラウドストレージにおけるE2EEについては、単に自分が保管・閲覧する目的のみで使用しており、誰かと共有する必要がないのであれば、手元で自由に暗号化してからアップロードするだけでよい。例えば、&lt;a href="https://veracrypt.fr/en/Home.html"&gt;VeraCrypt&lt;/a&gt;などでコンテナを作成して通常のファイルとして同期すれば、管理者からは無意味なバイト列にしか見えないだろう&lt;sup id="fnref:no-diff-sync"&gt;&lt;a class="footnote-ref" href="#fn:no-diff-sync" title="もちろん、コンテナ内の一部のファイルのみ同期したりできないので効率は悪い。"&gt;6&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;一方で、受信者が存在するチャットや音声通話のような状況では、お互いに使用する鍵についての合意が必要不可欠である。素朴にはサーバが鍵の仲介を行うことで実現できるが、E2EEの定義を満たすには、受け渡す鍵をサーバに知られないまま共有するための工夫が必要となる。&lt;a href="https://signal.org/"&gt;Signal&lt;/a&gt;で採用されている&lt;a href="https://signal.org/docs/specifications/doubleratchet/"&gt;二重ラチェットアルゴリズム&lt;/a&gt;はその実現方法のひとつだが、ここでは深く触れない。&lt;/p&gt;
&lt;h2 id="url"&gt;URLを使った鍵の受け渡し&lt;/h2&gt;
&lt;p&gt;URLを用いた簡易的なE2EEの実装――リソースに付随する鍵の共有――として、フラグメントを利用することができる。簡易的というのは、この手法が別の暗号化手法や信頼できるチャネルによる通信と組み合わせて使われる補助的な手段であることを示しており、単に手元のデータを送信するだけならそのチャネルで直接送信した方がよい。&lt;/p&gt;
&lt;p&gt;抽象的には、以下のような手順でE2EEを実現する。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;送信者: データ (D)を自由に暗号化してデータ (E)を作る&lt;/li&gt;
&lt;li&gt;送信者→サーバ: データ (E)をサーバにアップロードする&lt;/li&gt;
&lt;li&gt;サーバ→送信者: データ (E)に紐付くリソースURLを渡す&lt;/li&gt;
&lt;li&gt;送信者: 復号に必要な情報をフラグメントとしてURL (R)に付加してURL (S)を作る&lt;/li&gt;
&lt;li&gt;送信者→受信者: 信頼できるチャネルを通じてURL (S)を渡す&lt;/li&gt;
&lt;li&gt;受信者→サーバ: URL (S)からフラグメントを取り除いてリクエストする&lt;sup id="fnref:auto-remove-fragement"&gt;&lt;a class="footnote-ref" href="#fn:auto-remove-fragement" title="この処理はブラウザが自動で行う。"&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;サーバ→受信者: URL (R)に紐付くデータ (E)を渡す&lt;/li&gt;
&lt;li&gt;受信者: フラグメントの情報を用いてデータ (E)を復号してデータ (D)を得る&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;5を除く処理はサーバが提供するアプリケーション上で行うのが一般的である。多くの場合、JavaScriptを用いて暗号化や復号といったクライアントでの処理を実現している。悪意あるサーバなら、鍵を取り出して不正に送信するような処理を紛れ込ませることは可能だが、少なくともサーバ上で行われる不正とは異なり解析・検知が可能である。&lt;/p&gt;
&lt;p&gt;ここからは、実際に簡易的なE2EEとしてフラグメントを用いているアプリケーションをいくつか紹介する。&lt;/p&gt;
&lt;h3 id="_3"&gt;フラグメントを通じて鍵を受け渡す例&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://mega.io/"&gt;MEGA&lt;/a&gt;や&lt;a href="https://www.sync.com/"&gt;Sync&lt;/a&gt;といったプライバシーを重視するクラウドストレージサービスでは、ファイルの保管にE2EEを用いるのはもちろんのこと、URLでファイルを共有する際にもフラグメントを使用して安全性を保っている。フラグメントより前の部分はサーバ上の場所を示す単なるIDとして機能しており、フラグメントは受け取ったリソースを復号するための鍵としてクライアント側でのみ使用される。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MEGA: &lt;a href="https://mega.nz/file/P251wDbA#VPWeLJuW0MMsgpI-SunM9EQJtz93r_G1hlGRjOKeV_k"&gt;https://mega.nz/file/P251wDbA#VPWeLJuW0MMsgpI-SunM9EQJtz93r_G1hlGRjOKeV_k&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sync: &lt;a href="https://ln5.sync.com/dl/87f1a81a0#ikcyuasp-nvf622dk-kqb6zky9-yrk8nkv3"&gt;https://ln5.sync.com/dl/87f1a81a0#ikcyuasp-nvf622dk-kqb6zky9-yrk8nkv3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;なお、このテキストファイルはフラグメントを含めた共有URLが公開されているため、もはやE2EEとしては機能していない。&lt;/p&gt;
&lt;h3 id="_4"&gt;フラグメントを使わずに鍵を受け渡す例&lt;/h3&gt;
&lt;p&gt;フラグメントを使わずにパスで鍵を共有しているため、現状の実装では安全性が低いものの、URLを通じて鍵を受け渡すアプリケーションのアイデアとして有用な例を紹介する。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://enzypt.io/"&gt;enzypt&lt;/a&gt;はEthereumを使って支払いを検証する典型的なDappである。販売者が示したURLからEthereumを支払うと、コンテンツをダウンロードするための情報を受け取ることができる。具体的には、以下のような手順で販売および購入を行う。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;販売者: 販売したいコンテンツを暗号化する&lt;/li&gt;
&lt;li&gt;販売者→IPFS: 販売したいコンテンツをアップロードする&lt;/li&gt;
&lt;li&gt;販売者→enzypt: コンテンツの名前、値段、支払いを受けるEthereumアカウント、IPFSのハッシュと鍵の一部 (A)を送信する&lt;/li&gt;
&lt;li&gt;enzypt→販売者: コンテンツを指すenzypt上のIDを通知する&lt;/li&gt;
&lt;li&gt;販売者: enzypt上のIDと鍵の一部 (B)を付加し、購入用URLを取得する&lt;/li&gt;
&lt;li&gt;販売者→購入者: 信頼できるチャネルを通じて購入用URLを送信する&lt;/li&gt;
&lt;li&gt;購入者→enzypt: enzypt上のIDを用いて鍵の一部 (A)を含むコンテンツのメタデータを受け取る&lt;/li&gt;
&lt;li&gt;購入者→enzypt: 支払いに用いるEthereumアカウントの公開鍵を通知する&lt;/li&gt;
&lt;li&gt;enzypt→購入者: 公開鍵に紐付けたランダムな文字列を通知する&lt;/li&gt;
&lt;li&gt;購入者→enzypt: ランダムな文字列を秘密鍵で署名して送信する&lt;/li&gt;
&lt;li&gt;enzypt→購入者: トランザクションに付加すべき情報を通知する&lt;/li&gt;
&lt;li&gt;購入者→Ethereumネットワーク: 指定された金額を支払う&lt;/li&gt;
&lt;li&gt;購入者→enzypt: Ethereumのトランザクションハッシュを通知する&lt;/li&gt;
&lt;li&gt;enzypt→Ethereumネットワーク: トランザクションを確認して支払いを検証する&lt;/li&gt;
&lt;li&gt;enzypt→購入者: 支払いが検証できた場合はIPFSのハッシュを通知する&lt;/li&gt;
&lt;li&gt;購入者→IPFSノード: 購入したコンテンツをダウンロードする&lt;/li&gt;
&lt;li&gt;購入者: 鍵の一部 (A) (B)を用いて復号する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ただし、13は正当な購入者でなくともトランザクションハッシュさえ一致すればコンテンツをダウンロードできてしまうため、URLを公開して販売する用途には向いていない&lt;sup id="fnref:no-publish-url"&gt;&lt;a class="footnote-ref" href="#fn:no-publish-url" title="トランザクションハッシュが一致して、かつURLが公開されていると、購入者でなくともダウンロードして復号できてしまう。支払い済みのトランザクションハッシュは、支払い先のEthereumアカウントが分かれば容易に検索できる。"&gt;8&lt;/a&gt;&lt;/sup&gt;。本来はダウンロードの前に都度8～10のような署名の検証を挟むべきである。&lt;/p&gt;
&lt;p&gt;また、購入のたびにトランザクションを発行してチェックする単純な実装なので、ETHの価格変動や手数料の面であまり実用的ではないかもしれない。メタトランザクションの上で適切なトークンを動かした方がよいだろう。&lt;/p&gt;
&lt;h2 id="_5"&gt;フラグメントを活用する際の注意点&lt;/h2&gt;
&lt;p&gt;フラグメントはサーバに送信されない自由度の高い要素ではあるものの、仕様上または実用上の制限や注意点がいくつか存在する。&lt;/p&gt;
&lt;h3 id="_6"&gt;使用できる文字種&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://datatracker.ietf.org/doc/html/rfc3986"&gt;RFC 3986&lt;/a&gt;や&lt;a href="https://url.spec.whatwg.org/"&gt;URL Standard&lt;/a&gt;で定義されている通り、フラグメントは &lt;code&gt;#&lt;/code&gt; を含むことができない。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;fragment    = &lt;em&gt;( pchar / "/" / "?" )&lt;br&gt;
pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"&lt;br&gt;
unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"&lt;br&gt;
pct-encoded   = "%" HEXDIG HEXDIG&lt;br&gt;
sub-delims    = "!" / "$" / "&amp;amp;" / "'" / "(" / ")"&lt;br&gt;
              / "&lt;/em&gt;" / "+" / "," / ";" / "="&lt;br&gt;
&lt;a href="https://datatracker.ietf.org/doc/html/rfc3986"&gt;&lt;cite&gt;RFC 3986&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A URL-fragment string must be zero or more URL units. &lt;br&gt;
The URL units are URL code points and percent-encoded bytes. &lt;br&gt;
The URL code points are ASCII alphanumeric, U+0021 (!), U+0024 ($), U+0026 (&amp;amp;), U+0027 ('), U+0028 LEFT PARENTHESIS, U+0029 RIGHT PARENTHESIS, U+002A (*), U+002B (+), U+002C (,), U+002D (-), U+002E (.), U+002F (/), U+003A (:), U+003B (;), U+003D (=), U+003F (?), U+0040 (@), U+005F (_), U+007E (~), and code points in the range U+00A0 to U+10FFFD, inclusive, excluding surrogates and noncharacters. &lt;br&gt;
A code point is a Unicode code point and is represented as "U+" followed by four-to-six ASCII upper hex digits, in the range U+0000 to U+10FFFF, inclusive. A code point’s value is its underlying number. &lt;br&gt;
A percent-encoded byte is U+0025 (%), followed by two ASCII hex digits. Sequences of percent-encoded bytes, percent-decoded, should not cause UTF-8 decode without BOM or fail to return failure. &lt;br&gt;
&lt;a href="https://url.spec.whatwg.org/"&gt;&lt;cite&gt;URL Standard&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;例えば、&lt;a href="https://matrix.org/"&gt;Matrix&lt;/a&gt;で部屋に招待する際に用いられるサービス&lt;a href="https://matrix.to/"&gt;matrix.to&lt;/a&gt;では、フラグメントにMatrix上のアドレスを指定してURLをシェアする仕組みになっている。Matrix上のアドレスは、 &lt;code&gt;!&lt;/code&gt; で始まる内部的なID &lt;a href="https://matrix.to/#/!sAsZJiLgwBDLSpbbPB:matrix.amane.moe"&gt;&lt;code&gt;!sAsZJiLgwBDLSpbbPB:matrix.amane.moe&lt;/code&gt;&lt;/a&gt; や、 &lt;code&gt;@&lt;/code&gt; で始まるサーバ上のユーザ名 &lt;a href="https://matrix.to/#/@amane:matrix.amane.moe"&gt;&lt;code&gt;@amane:matrix.amane.moe&lt;/code&gt;&lt;/a&gt; 、 &lt;code&gt;#&lt;/code&gt; で始まる複数人が参加することを意図した公開アドレス &lt;a href="https://matrix.to/#/%23random:matrix.amane.moe"&gt;&lt;code&gt;#random:matrix.amane.moe&lt;/code&gt;&lt;/a&gt; が存在する。このうち &lt;code&gt;#&lt;/code&gt; を使用する公開アドレスをシェアする場合は、 &lt;code&gt;#&lt;/code&gt; を  &lt;code&gt;%23&lt;/code&gt; とパーセントエンコーディングしなければならない&lt;sup id="fnref:use-id-instead-of-address"&gt;&lt;a class="footnote-ref" href="#fn:use-id-instead-of-address" title="内部的なIDでシェアすることも可能だが、招待ページにそのまま表示されるので視認性が低い。"&gt;9&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;現状、多くのブラウザではフラグメントに &lt;code&gt;#&lt;/code&gt; を含んでいても問題なく動作するが、仕様に反するURLであることは知っておくべきだろう。&lt;/p&gt;
&lt;h3 id="_7"&gt;使用できる文字数&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://datatracker.ietf.org/doc/html/rfc2616"&gt;RFC 2616&lt;/a&gt;によれば、URLの最大長は仕様として定められていない。サーバは長すぎるURLを処理できなければ414(Request-URI Too Long)を返すべきと記されているものの、フラグメントはサーバに送信されない文字列のため、単にブラウザの実装（ひいてはマシンのスペック）に依存する。&lt;/p&gt;
&lt;p&gt;例えば、Internet Explorer 9以前は2083文字までしか入力できないという制限があったが&lt;sup id="fnref:ie-url-max"&gt;&lt;a class="footnote-ref" href="#fn:ie-url-max" title="Maximum URL length is 2,083 characters in Internet Explorer"&gt;10&lt;/a&gt;&lt;/sup&gt;、今日の多くのブラウザでは仕様上の制限はなく、動作が遅くなったり表示が崩れたりするだけで済むだろう。ただし、URLを受け渡すチャネルによって最大長を制限される場合もあるため、フラグメントを通じて渡す情報をむやみに大きくしない工夫が必要である。&lt;/p&gt;
&lt;h3 id="_8"&gt;受け取ったデータの検証&lt;/h3&gt;
&lt;p&gt;フラグメントを通じて受け取ったデータをJavaScriptで処理する際に、それらを完全に信用するとやっかいな脆弱性に繋がる場合がある。以下の単純な例では、フラグメントにパスを指定して画像を表示することを意図しているものの、任意のスクリプトを注入できてしまう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// #&amp;#39;onerror=&amp;#39;alert(1) でアクセスするとアラートが出る&lt;/span&gt;
&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerHTML&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;lt;img src=&amp;#39;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;location&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;substring&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;#39;&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;フラグメントを通じて単一の復号キーを渡すのみであれば、英数字や一部の記号のみを使用できるようにすることで多くの攻撃を防ぐことができるだろう。複雑なデータもJSONやXMLによる表現をBase64などでエンコードしてから渡せばよいかもしれないが、デコードして得られた内容についてはやはり検証が必要である。&lt;/p&gt;
&lt;h2 id="_9"&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;URLの末尾を構成するフラグメントは、URL中でサーバに送信されない唯一の要素である。&lt;/li&gt;
&lt;li&gt;フラグメントを適切に用いることで、ブラウザで簡易的なE2EEを実現できる。&lt;/li&gt;
&lt;li&gt;フラグメントを活用する際は、使用できる文字種や文字数に注意して実装すべきである。また、不正なデータの入力に備えて十分に検証してから処理する必要がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:url-example"&gt;
&lt;p&gt;&lt;code&gt;https://example.com/path/to/resource#fragment&lt;/code&gt; など。&amp;#160;&lt;a class="footnote-backref" href="#fnref:url-example" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:brower-fragment"&gt;
&lt;p&gt;&lt;a href="https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web#fragment"&gt;ウェブ上のリソースの識別 - HTTP | MDN&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:brower-fragment" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:isp"&gt;
&lt;p&gt;ここでは契約しているISPや経由する全てのネットワークのこと。&amp;#160;&lt;a class="footnote-backref" href="#fnref:isp" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:server"&gt;
&lt;p&gt;ここではメッセンジャーやクラウドストレージといったサービスの提供者のこと。&amp;#160;&lt;a class="footnote-backref" href="#fnref:server" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:bad-rule"&gt;
&lt;p&gt;サービスの規約によってはこの原則が否定されるかもしれない。&amp;#160;&lt;a class="footnote-backref" href="#fnref:bad-rule" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:no-diff-sync"&gt;
&lt;p&gt;もちろん、コンテナ内の一部のファイルのみ同期したりできないので効率は悪い。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-diff-sync" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:auto-remove-fragement"&gt;
&lt;p&gt;この処理はブラウザが自動で行う。&amp;#160;&lt;a class="footnote-backref" href="#fnref:auto-remove-fragement" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:no-publish-url"&gt;
&lt;p&gt;トランザクションハッシュが一致して、かつURLが公開されていると、購入者でなくともダウンロードして復号できてしまう。支払い済みのトランザクションハッシュは、支払い先のEthereumアカウントが分かれば容易に検索できる。&amp;#160;&lt;a class="footnote-backref" href="#fnref:no-publish-url" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:use-id-instead-of-address"&gt;
&lt;p&gt;内部的なIDでシェアすることも可能だが、招待ページにそのまま表示されるので視認性が低い。&amp;#160;&lt;a class="footnote-backref" href="#fnref:use-id-instead-of-address" title="Jump back to footnote 9 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ie-url-max"&gt;
&lt;p&gt;&lt;a href="https://support.microsoft.com/en-us/topic/maximum-url-length-is-2-083-characters-in-internet-explorer-174e7c8a-6666-f4e0-6fd6-908b53c12246"&gt;Maximum URL length is 2,083 characters in Internet Explorer&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:ie-url-max" title="Jump back to footnote 10 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>2021/07/01～2021/09/03</title><link href="https://ama.ne.jp/post/report-20210903/" rel="alternate"/><published>2021-09-03T18:58:00+09:00</published><updated>2021-09-03T18:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-09-03:/post/report-20210903/</id><summary type="html">&lt;p&gt;2021/07/01～2021/09/03のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;かいた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_5"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;かいている&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;「読んだ」ボタンの挙動を変更しました。&lt;ul&gt;
&lt;li&gt;サンクスページではなく、閲覧していたページに戻るようにしました。&lt;/li&gt;
&lt;li&gt;テキストブラウザでもほぼ同様の動作となるよう工夫しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;記事の行間をわずかに広くしました。&lt;ul&gt;
&lt;li&gt;細部については調整中です。手触りや改善点について&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;から教えてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PayPalのマネープールサービスが廃止予定となったため、&lt;a href="/donation/"&gt;寄付&lt;/a&gt;からリンクを削除しました。&lt;ul&gt;
&lt;li&gt;今後はMoneroや&lt;a href="https://paypal.me/4mane"&gt;PayPal.Me&lt;/a&gt;などの決済手段をご利用いただけます。&lt;/li&gt;
&lt;li&gt;寄付の受付手段については、今後検討の上整理する予定です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;に&lt;a href="https://upload.amane.moe/"&gt;アップロード&lt;/a&gt;ページへのリンクを追加しました。&lt;ul&gt;
&lt;li&gt;個人的に導入している&lt;a href="https://www.sync.com/"&gt;Sync&lt;/a&gt;を利用した実験的な機能です。&lt;/li&gt;
&lt;li&gt;誰でもかたぎりあまねにファイルを送ることができます。Syncの従業員や他の利用者にファイルの内容を知られることはありません。&lt;/li&gt;
&lt;li&gt;送信後は、コメントや信頼できるチャネルを通じてファイルの内容についてお知らせください。内容や経緯が不明瞭だったり、&lt;a href="https://www.sync.com/help/what-is-the-sync-com-web-panel/#webpanelpreview"&gt;プレビュー&lt;/a&gt;できない形式のファイルは、安全上の理由で確認が遅れたりそのまま破棄されることがあります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;その他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://amaneimages.com/"&gt;アマネイメージズ&lt;/a&gt;のバックエンドを&lt;a href="https://mediagoblin.org/"&gt;MediaGoblin&lt;/a&gt;に変更しました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://amaneimages.com/auth/register/"&gt;アカウントを作成&lt;/a&gt;すると、写真にコメントしたり削除申請を行うことができます。&lt;/li&gt;
&lt;li&gt;音声や動画にも対応しているため、今後様々なコンテンツを展開していくかもしれません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://forum.amane.moe/"&gt;ライフ 人間と科学シリーズ&lt;/a&gt; (&lt;a href="https://github.com/Plume-org/Plume"&gt;Plume&lt;/a&gt;) を数週間以内に廃止する予定です。&lt;ul&gt;
&lt;li&gt;Twitterの投稿とゆるやかに同期していましたが、あまり活用できませんでした。&lt;/li&gt;
&lt;li&gt;覚え書きとして投稿していた一部の小さな記事については、&lt;a href="https://gist.github.com/amane-katagiri"&gt;Gist&lt;/a&gt;に移すか、内容拡充の上あまねけ！に投稿します。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.amane.moe/"&gt;ニュースレター&lt;/a&gt;を開設しました。&lt;ul&gt;
&lt;li&gt;週刊～隔週刊のペースで、日記や日々のアイデア、アマネイメージズを活用した連載などをやる予定です。&lt;/li&gt;
&lt;li&gt;&lt;a href="/category/report/"&gt;おしらせ&lt;/a&gt;などでニュースレターの内容を公開するかどうかは現在検討中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;メールサーバとして&lt;a href="https://proton.me/"&gt;ProtonMail&lt;/a&gt;を使い始めました。&lt;ul&gt;
&lt;li&gt;各種ログインIDやメルマガの送信先をゆるやかに移行しています。&lt;/li&gt;
&lt;li&gt;&lt;a href="mailto:amane@ama.ne.jp"&gt;amane@ama.ne.jp&lt;/a&gt;や&lt;a href="mailto:circlemaster@hentaigirls.net"&gt;circlemaster@hentaigirls.net&lt;/a&gt;もProtonMailで送受信するようにしました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;オンラインストレージとして&lt;a href="https://www.sync.com/"&gt;Sync&lt;/a&gt;を使い始めました。&lt;ul&gt;
&lt;li&gt;最近はどこでも聞きますが、ゼロ知識証明 + エンドツーエンド暗号化の安全っぽいストレージです。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sync.com/help/sharing-files-and-folders-with-links/"&gt;共有リンクを作る&lt;/a&gt;こともできて、フラグメントを使って鍵を渡すのでサーバには秘密を保ったまま復号できるらしいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_4"&gt;かいた&lt;/h2&gt;
&lt;h3 id="_5"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/fortune-popcorn/"&gt;フォーチュン・ポップコーン&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;マッチングアプリで出会った「モモ」に言われるがまま、とある廃団地に足を踏み入れた「ハル」は、そこで進む意外な計画を知ることになる……&lt;/li&gt;
&lt;li&gt;5月の&lt;a href="https://bunfree.net/event/tokyo32/"&gt;文フリ東京32&lt;/a&gt;で発行した&lt;a href="https://hentaigirls.net/book/flowers-cafe-lottery/"&gt;花・カフェ・宝くじ&lt;/a&gt;に寄稿した作品です。表紙（1と4）も気に入っているのでぜひ見てください。&lt;/li&gt;
&lt;li&gt;短い会話を改行せずに進めていくスタイルを採用し、ポップでたのしい作品を目指しました。&lt;/li&gt;
&lt;li&gt;1338年にタイムトラベルする映画については、&lt;a href="https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A9%E3%81%88%E3%82%82%E3%82%93_%E3%81%BC%E3%81%8F%E3%80%81%E6%A1%83%E5%A4%AA%E9%83%8E%E3%81%AE%E3%81%AA%E3%82%93%E3%81%AA%E3%81%AE%E3%81%95"&gt;ドラえもん ぼく、桃太郎のなんなのさ&lt;/a&gt;をご覧ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_6"&gt;かいている&lt;/h2&gt;
&lt;p&gt;ごめんね。まだもう少しかかります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;後輩の性処理をする先輩のエンタメっぽいお話&lt;/li&gt;
&lt;li&gt;雑にドライブして星を見に行く話&lt;/li&gt;
&lt;li&gt;海で石を拾いに行く話&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>フォーチュン・ポップコーン</title><link href="https://ama.ne.jp/post/fortune-popcorn/" rel="alternate"/><published>2021-08-15T19:58:00+09:00</published><updated>2021-08-15T19:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-08-15:/post/fortune-popcorn/</id><summary type="html">&lt;p&gt;マッチングアプリで出会った「モモ」に言われるがまま、とある廃団地に足を踏み入れた「ハル」は、そこで進む意外な計画を知ることになる……&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/flowers-cafe-lottery/"&gt;花・カフェ・宝くじ&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「次は、&lt;ruby&gt;&lt;rb&gt;西鷹砂台&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;にしたかすなだい&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;、西鷹砂台」&lt;/p&gt;
&lt;p&gt;マッチングアプリで出会った女が待ち合わせ場所に指定した駅――&lt;ruby&gt;&lt;rb&gt;保世&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ほぜ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;線の終着駅がおよそ二キロ四方の廃墟に続いているのを思い出したとき、私はやっと自分が騙されていたことに気付いた。久しぶりに好きな顔の女に会える！と舞い上がっていたせいで、列車の行き先さえも気にならなくなっていたらしい。初夏のよく晴れた日盛りに、誰もいないプラットホームで立ち尽くす自分が急に恥ずかしくなる。&lt;/p&gt;
&lt;p&gt;鷹砂台団地は、都営保世線の最北端である西鷹砂台駅から徒歩一分の好立地で、数十年前までは三万人ほどが住んでいたという。しかし、少子高齢化、老朽化、コミュニティの硬直化……様々な要因が重なり、今となっては街ごと閉鎖されてすっかり人影もなくなってしまった。浮浪者の侵入や犯罪への利用を防ぐためのガルバリウム鋼板で隙間なく囲われているせいで、今立っている高架のプラットフォームからも、薄汚れた大量の高層住宅がそのまま残されていることしか分からない。更新機構が「シャトー」ブランドとして建て替える準備をしているとも、国が買い上げて核実験の研究施設に転用するらしいとも言われているが、いずれも噂の域を出ないままだ。&lt;/p&gt;
&lt;p&gt;インターネットでよく見かけるルポ記事では、知られざる都内の秘境駅、廃墟に続く異界の駅、地下シェルターに直行する政府専用駅など、思い思いの大げさな二つ名で紹介されている。各記事の主張をまとめてみると、駅に降り立つことはできるものの、周囲が丸ごと立入禁止となっているせいで改札から出られないというだけなのだが、廃墟、怪談、陰謀論……様々な思惑と絡み合っておどろおどろしい雰囲気を放っている。&lt;/p&gt;
&lt;p&gt;私はキューピア&lt;sup id="fnref:qpia"&gt;&lt;a class="footnote-ref" href="#fn:qpia" title="好みのパーツを組み合わせて検索できるモンタージュスタイルで気軽なデートのマッチングを指向した、いわゆる ヤれる アプリである。Qの中に♡を配置したローズピンクに白文字のロゴで、Q'piaと綴る。"&gt;1&lt;/a&gt;&lt;/sup&gt;のトーク画面を開き、私がここに来る元凶となった女――モモに困惑と非難をぶつけた。&lt;/p&gt;
&lt;p&gt;『モモさん、私を騙したんですか？　ここって有名な廃墟駅じゃないですか』『騙してないよ。改札を通ったらすぐだから！』&lt;/p&gt;
&lt;p&gt;いや、その改札が通れないってことだから！と思いながら、とりあえず下に降りる階段を探す。&lt;/p&gt;
&lt;p&gt;規則的に流れる鳥のさえずりが、ゆるやかに時間を刻んでいく。このまま帰りの電車を待って水島橋くらいまで折り返せば百円ほど安く済むかもしれないが、普段は全く乗客のないホームに二時間も座っていれば流石に駅員が気付いて注意しに来るだろう。この暑さの中で耐えても、そもそもジュース代すら浮かないのだ。&lt;/p&gt;
&lt;p&gt;階段を降りると、ひんやりとした空気と共にコンパクトな駅構内が目に入る。つやのある鉄紺の小さなタイルが敷き詰められた壁のデザインは古いものの、ところどころに張替えた跡が見えるグレーの床や、上に黄色く光る案内板は、想像よりずっと綺麗で手入れが行き届いていた。左手には北改札、右手には南改札が続いているが、北改札はバリケードで塞がれて通り抜けられない。&lt;/p&gt;
&lt;p&gt;一方の南改札では、スピーカーから繰り返し流れる調子の外れたチャイムが通行可能であることを告げていた。ただし、五台ほど並んだ自動改札機は、窓口に面した細い通路を残して深緑のターポリンで覆われており、その姿すら確認できない。駅員に事情を話さなければ外には出られないということだろう。&lt;/p&gt;
&lt;p&gt;おそるおそる改札に向かうと、窓口に詰めていた初老の男が身を乗り出してこちらに訝しげな視線を向けた。くたびれた灰色のスーツを着た白髪交じりの男は制帽も被っておらず、およそ駅員には見えない。守衛のような存在なのだろうか。あるいは、駅員ではなく団地の管理職員なのかもしれない。&lt;/p&gt;
&lt;p&gt;「観光客の方？　すみませんが、この先は関係者しか入れないことになってるんですよ」&lt;/p&gt;
&lt;p&gt;「はい、ですからここで折り返しの改札をしようと思いまして。精算お願いします」&lt;/p&gt;
&lt;p&gt;できるだけ愛想よくそう告げたにもかかわらず、この &lt;em&gt;駅員&lt;/em&gt; （名札がないのでこう呼ぶしかない）はさらに私の顔をじろじろ見て首を傾げたかと思うと、今度は何度か端末を操作して面倒そうに顔を上げた。その緩慢で投げやりな所作が老化からくるものか、彼の生来のものかは分からなかったが、誰もいない駅の異界じみた雰囲気のせいでどこか不気味に見える。&lt;/p&gt;
&lt;p&gt;「……えぇと、どなたかにご用でしたら、先にそちらの精算機で &lt;em&gt;ご精算&lt;/em&gt; ください」&lt;/p&gt;
&lt;p&gt;微妙に会話にならない返答を投げつけたかと思うと、駅員はそのまま窓の向こうに引っ込んでしまう。まるで、一般人の私がここを通り抜ける資格があるかのような口ぶりだ。今日は誰も私の話を聞いてくれない。私はただこの秘境駅からさっさと立ち去りたいだけなのに！&lt;/p&gt;
&lt;p&gt;精算機というのは、窓口の横にある壁に埋め込まれた機械のことだろう。黄色いデザインで都鉄のマークと共に「のりこし精算機」と書かれている。キップの不足料金を支払って精算券と引き換えたり、トラカ&lt;sup id="fnref:traca"&gt;&lt;a class="footnote-ref" href="#fn:traca" title="都民カードと紐付いた非接触の乗車券で、個人情報の利用方法についてしばしば問題になっている。"&gt;2&lt;/a&gt;&lt;/sup&gt;に不足料金をチャージできる便利な機械だが、最近では設置されている駅の方が稀である。&lt;/p&gt;
&lt;p&gt;大きなタッチパネルには、切符での精算、トラカへのチャージと「アプリ予約の受取り」というメニューが表示されている。&lt;/p&gt;
&lt;p&gt;しかし、よく見ると少しおかしな精算機だ。そのボタンには、私がよく知っているマッチングアプリ――私が今ここにいる理由でもある――キューピアのロゴが表示されていた。半信半疑でQRコードをかざすと、OHEYAlbum&lt;sup id="fnref:OHEYAlbum"&gt;&lt;a class="footnote-ref" href="#fn:OHEYAlbum" title="自分の部屋を撮影してインテリアを紹介できる「キラキラ系SNS」としてリリースされたが、最近はVR空間のスクリーンショットを投稿するカテゴリが新設されて人気を集めている。"&gt;3&lt;/a&gt;&lt;/sup&gt;で見つかりそうなおしゃれな部屋の写真が、何枚か3Dカルーセルに載せられてくるくると回り始める。さらに、下に「抽せん」ボタンが表示されたかと思うと、「通行料！初回限定！五千円！」と虹色に光る文字がせり上がってきた。&lt;/p&gt;
&lt;p&gt;ガツンと頭を殴られたような感覚に襲われる。ここはスマートカジノなの？　国営カジノさえ頓挫したのに、こんなしがない都鉄の構内で？　せめて折り返しの精算くらい普通にやってほしい。非日常に次ぐ非日常に打ちのめされて、本来なら笑えるはずのこの滑稽な風景の前で途方に暮れていた。「今だけ！今すぐ！」とキラキラ輝き続ける広告の文字をぼんやりと見ていると、徐々に頭がボーッとしてきてしまう。&lt;/p&gt;
&lt;p&gt;――思い返してみると、駅員は「どなたかにご用でしたら」と言っていた。彼はもしかして私の行き先を知っているの？　それなら、この先に本当にモモがいるのかもしれない。この謎のガチャを引くことで、本当にモモに会えるとしたら？　そうでなくとも、この団地には何か秘密があるはずだ。このスロットマシンじみた精算機だって、ルポでは一度も見たことがなかった。誰も記事には書けなかったのか、あるいは今私の前にだけ現れたのか――&lt;/p&gt;
&lt;p&gt;いつの間にか私は、その素性の知れない &lt;em&gt;ルームキー&lt;/em&gt; の「抽せん」ボタンを押していた。すると、まばゆい光と共にカルーセルの回転速度が増し始める。帰りの電車賃のほうがはるかに安いはずなのに、「限定！お得！」の文字になぜか心が躍っているのを自覚していた。&lt;/p&gt;
&lt;p&gt;タッチパネルの表示が固まって数秒、カシャンと小気味いい音を立てて小さなプレートが吐き出された。Satanas BLACK&lt;sup id="fnref:black"&gt;&lt;a class="footnote-ref" href="#fn:black" title="黒い紙で巻かれた見た目が特徴的な外国たばこ。一箱に十本しか入っておらず、通常のタバコ箱よりも縦に長い。"&gt;4&lt;/a&gt;&lt;/sup&gt;の箱に収まる厚さ二ミリほどのアクリルを貼り合わせた黒いカードには、認証のためのアンテナコイルとチップが埋め込まれている。中心に印刷された数字の羅列は、おそらく棟番号と部屋番号だろう。ここに向かえ、ということだろうか。&lt;/p&gt;
&lt;p&gt;精算機はもう最初の野暮ったいメニュー画面に戻っていて、まるで私の見ていた光景が夢だったとでも言わんばかりに静まり返っている。ピン・ポーンと鳴り続けるチャイムが、改札を出て早く先に進めと急かしているように感じられて、私はまた足早に窓口へと向かった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;トラカと購入したルームキーを渡すと、駅員は無言でそれぞれ別の端末を通してからまた私にカードを差し出した。一方は駅でよく見る処理端末だが、もう一方はどこでも買える家庭用のカードリーダーにタッチしていたように見える。&lt;/p&gt;
&lt;p&gt;「外部との通信や撮影は制限されておりますので、ご利用の際はどうぞお気を付けください」&lt;/p&gt;
&lt;p&gt;駅員の事務的なアナウンスを背に改札を出ると、目の前の店舗スペースは一面シャッターが降りていた。小さな袖看板から、かつてコンビニとベーカリーが店を構えていたことが分かる。右手の西出口は駅前商店街に続く人通りの多い出口だったらしいが、今はこちらもシャッターで塞がれていた。&lt;/p&gt;
&lt;p&gt;東出口に進むと、団地に続く大きな歩道橋が現れる。遮るものもなく照りつける日差しと、アスファルトから立ち上る熱い空気をかき分けるように進むと、徐々に団地の全体像が見えてくる。五メートルほどある通路の両端は有刺鉄線の付いた背の高いフェンスでぐるりと囲まれていて、部外者の侵入はもちろん、入場者の脱出さえも防ぐかのように細かく赤い警報線が張り巡らされていた。橋の上から見通せる硬い金網の向こうには、片側四車線の広い道路が見渡す限りまっすぐ伸びているが、当然車は一台も走っていない。&lt;/p&gt;
&lt;p&gt;歩道橋を渡りきると、道路に面した大きな棟の二階部分に接続する。空中に突き出した茶色いタイル張りの床はいわゆるペデストリアンデッキで、屋内を経由して中庭まで抜けられるようだ。有刺鉄線のフェンスはここで団地全体を囲う鋼板の壁に引き継がれ、隙間を埋めるようにざっくりと溶接されている。&lt;/p&gt;
&lt;p&gt;ローマ字と共に鷹砂台団地と記されたゲートの向こうには、かつて団地に併設されていたであろうシャッター街が広がっていた。案内板を見る限りでは、一階は丸ごとスーパーマーケットで、二階は雑貨店や診療所が軒を連ねていたようだ。最盛期は、団地を出ずにこの商店街で生活を完結できていたのだろう。&lt;/p&gt;
&lt;p&gt;二階より上は居住区で、各階の廊下から外が見えるように窓が設けられ、横に伸ばした白黒のギンガムチェックのようなのっぺりとした壁が最上階まで続いていた。ホームからはよく見えなかったけれど、上から下まで窓に鉄格子が嵌っている。端に植物のつるをあしらったおしゃれなデザインでイメージアップを図ろうとしているものの、一歩引いて見ればまるで監獄か閉鎖病棟のようだ。&lt;/p&gt;
&lt;p&gt;『改札は通れましたけど、いったいモモさんって何者なんですか？』&lt;/p&gt;
&lt;p&gt;『あなたに会いたい素敵な女の子！　早く来てね♡』&lt;/p&gt;
&lt;p&gt;どうにも説明の付かない異常な状況なのに、モモの返答は昨日までと変わらない。お得意の軽率なハートマークを見ると、やっぱりどうしてもにまにましてしまう。しかし、安心すると同時に、やはり私はまだ騙されているのではないかと疑っていた。何一つ確証がないのだ。駅員の曖昧なアナウンス、偶然表示された購入画面、そこから偶然出てきたルームキーで部屋に入ったとしても……そこにモモはいないかもしれない。もうここまで来たら引き返すことなんてできないけど。&lt;/p&gt;
&lt;p&gt;エントランスを吹き抜ける突風に逆らって奥に進むと、広い中庭と巨大な団地の一端が目に入る。高さ五十メートル&lt;sup id="fnref:maxheight"&gt;&lt;a class="footnote-ref" href="#fn:maxheight" title="編注・建築基準法と消防法の制限があるため、実際は四十五メートルだったと思われる。"&gt;5&lt;/a&gt;&lt;/sup&gt;、幅は百メートルほどもある無骨な高層住宅がドミノのように並んでいる様子に圧倒されてしまう。自分の身体が小さくなって、リアルなジオラマに入り込んでしまったような気さえした。その横を通り抜けるように敷地の外から車道が延びていて、路肩では銀色に光る道路標識が静かに制限速度を示し続けている。&lt;/p&gt;
&lt;p&gt;さらに車道に沿って進んでいくと、「白タクには乗らないでください」という立て看板が現れる。聞き慣れない単語だ。調べてみようとスマホを取り出してみたけれど、圏外を示したままでどちらを向いてもネットには全く繋がらない。さっきまで使えてたはずなのに……と、そこでやっと、通信や撮影が制限されているという駅員の言葉を思い出した。ただ禁止されてるわけじゃなくて、本当に遮断されているらしい。&lt;/p&gt;
&lt;p&gt;白タク、タク……タクシーだろうか？　車に乗るほどの距離ではないと思うけど、この広さなら自転車くらいは持っていたほうが暮らしやすいのかも。&lt;/p&gt;
&lt;p&gt;ドミノ通りから少し進むと、ルームキーに記されているC-K-1棟が現れた。団地のほぼ南端に位置するこの巨大な居住棟は、高さこそ他の棟と同じだが、幅はたっぷり三百メートルほどもあり、制震対策のためかエレベーターホールを境にしてわずかに三つ折りに曲がっている。これまで見たものよりも比較的新しい外装で、居住者数の増加に対応するために後から建てられた棟なのだろう。&lt;/p&gt;
&lt;p&gt;さらに南に回って目の前が西側のエントランスで、日に焼けてひび割れた古い団地の地図が私を出迎えた。額を拭いながら棟を見上げると、全ての部屋に乳白色のガラスかアクリルが嵌っていて、ギラギラと眩しい光を反射している。強い光の残像のせいか、視線を動かすと窓が遅れてついてくる。カーテンの開閉も含めて、中の様子が全く分からない。普通の団地なら洗濯物や布団、あるいは盆栽でも置いてあるのだろうが、今はがらんどうで大理石の壁でも立っているようにも見える。&lt;/p&gt;
&lt;p&gt;ルームキーをかざすと、少し滑りの悪い動きでギギィと音を立てながら自動ドアが開いた。少しほこりっぽいロビーを奥に進むと、古びたエレベーターが三つ並んでいる。左から順に奇数階専用、偶数階専用、そして&lt;ruby&gt;&lt;rb&gt;管理用&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アドミン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;というラベルが貼られていた。どのエレベーターにもボタンはなく、代わりにキーをかざすための白い読み取りセンサーが埋め込まれている。&lt;/p&gt;
&lt;p&gt;試しにルームキーをかざしてみると、呼応して緑のランプが点滅し始めるものの、エレベーターは動く気配もない。あたりを見回すと、掲示板に「エレベータ呼出手順」という黄ばんだ張り紙が掲げられていて、ルームキーとトラカを順に読み込ませる必要があることを示していた。まるでオフィスビルのようなセキュリティだ。&lt;/p&gt;
&lt;p&gt;あらためてトラカをかざすと、緑のランプが点灯して扉の向こうからゴゥンと大きな音が聞こえた。エレベーターが到着するまであと少し。小さく一呼吸して、モモがいるはずの階へと向かう心の準備を整える。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;C-K-1棟は今までの棟とは異なり、廊下がフロアの真ん中を貫いているので、鉄格子越しの空は見えない。代わりに、色あせた吹き付けタイルの壁とブルーグレーに塗られた鉄扉が左右に広がっていた。およそ十メートルの間隔ではしごのように並んだ白熱色のLEDが、つやつやした銀灰色の床を照らしている。しかし、電力を節約しているせいかその光はかなり薄暗かった。&lt;/p&gt;
&lt;p&gt;不思議なことに、どの扉もドアスコープの位置に小さな窓が作られていた。十五センチメートルほどの円にくり抜かれた空間に、透明なガラスが嵌められている。住居の装飾としてはかなり異質だ。ドアスコープの覗き見対策なら、内側にカバーを付けたほうが安上がりなのに。光沢のあるミラーレースのような布で目隠しされていて中は見えないものの、この一年中夕暮れのような廊下から眺めると、まるでお月見でもしている気分になる。&lt;/p&gt;
&lt;p&gt;「さて……本当にここにモモがいるのかな」&lt;/p&gt;
&lt;p&gt;歩みを進めること数十秒、とうとうルームキーに記された1338号室に到着する。特に他の部屋と違った様子はなさそうで、本来インターホンがある位置にはエレベーターと同じカードリーダーが設置されていた。ルームキー、トラカ……と順番にかざすと緑のランプが点灯するが、すぐにドアが開くことはなく、うっすらと中でピン・ポーンというあの調子の外れたチャイムが鳴り始める。さらに数秒待つと――&lt;/p&gt;
&lt;p&gt;「ハル！　やっと来てくれた！」&lt;/p&gt;
&lt;p&gt;勢いよくドアが開き、中から涼しい風と共に小さな身体が飛び出してきた。キューピアの写真をそのままさらに可愛らしくしたような、明るい茶髪のツインテールで私好みの幼い童顔がこちらに笑顔を向ける。身長145センチ、体重38キロ、Fカップ……そうプロフィールに記していた彼女はなぜかバスローブ一枚で、隠しきれない大きな胸をさらに強調するようにベルトできゅっと締めていた。&lt;/p&gt;
&lt;p&gt;モモに促されて部屋の中に入ると、またも異様な光景が目に入る。内装はピンク、ピンク、ピンク……照明、壁紙やカーテンはもちろん、ソファやクッション、電気ケトルや冷蔵庫に至るまでペールピンクの製品で埋め尽くされていた。かすかにヒーリング・クラシックが流れる部屋を占領しているクイーンベッドには丁寧に天蓋が設えてあり、奥にはやはりピンク色の大きな枕が置かれている。&lt;/p&gt;
&lt;p&gt;ただし、追いやられるように隅に置かれた古いスロットマシンだけは、その派手な色合いをそのままにちぐはぐな雰囲気を放っていた。&lt;/p&gt;
&lt;p&gt;「……ラブホ？」&lt;/p&gt;
&lt;p&gt;いや、俗な言い方はやめよう……まるで &lt;em&gt;お姫様の監獄&lt;/em&gt; だ。テレビや電子レンジくらいはあるものの、ダイニングキッチンだったろう空間からはコンロも流し台も撤去されており、かつての生活感は明るい色の壁紙で覆い隠されていた。リノベーションにしても大胆すぎる。&lt;/p&gt;
&lt;p&gt;「ポップコーン食べてたの。ハルも食べる？」&lt;/p&gt;
&lt;p&gt;モモは、テーブルに置かれた青地に真っ赤なストライプの――資本主義っぽい――食べかけの大きなポップコーンカップを抱えてソファの端に座った。と同時に、目の前のテレビから裸で抱き合う男女の映像が流れ始める。時折聞こえるわざとらしい嬌声はなんとも耳障りに感じるが、モモは映画でも観ているかのようにリラックスした姿でその行為を眺めている。&lt;/p&gt;
&lt;p&gt;「あ、ごめん。こういうの嫌だった？」&lt;/p&gt;
&lt;p&gt;「いや、女優の顔が好きじゃなくて……あの、モモさん」&lt;/p&gt;
&lt;p&gt;「モモでいいよ。私もハルって呼ぶね」&lt;/p&gt;
&lt;p&gt;もうさっきからそう呼んでるじゃない、と思いながらテレビに目線を戻すと、ちょうど映像が切り替わって安っぽいBGMと共にインタビューが始まっていた。モモは「ガンガンエッチしてくれないとつまらないよね！」と言ってリモコンでテレビを消してから、またポップコーンを口に放り込む。そして「座ってよ」と手で示すので、私もソファに掛けた。&lt;/p&gt;
&lt;p&gt;「えぇと……モモ、あなたって、何者なの？」&lt;/p&gt;
&lt;p&gt;「あなたに会いたい素敵な女の子！……じゃなくて、ここで色んな人とエッチしてる。お金をもらってね」&lt;/p&gt;
&lt;p&gt;「じゃあ、私もモモをお金で買わなきゃいけないの？」&lt;/p&gt;
&lt;p&gt;「そういうことに、なるかな」&lt;/p&gt;
&lt;p&gt;モモはそれから、団地のシステムと料金について話し始めた。&lt;/p&gt;
&lt;p&gt;彼女はずっとこの部屋で（厳密には清掃のたびに向かいの部屋とを行き来して）性的なサービスを提供しているという。ここに来る前にどこにいたかは覚えていない、とも言っていた。何やら事件の匂いを感じるけれど、話し続けるモモの勢いのせいで聞き返せなかった。&lt;/p&gt;
&lt;p&gt;改札の通行料だけではなく、さらにここでモモにサービス料を払う必要があり……と、料金はどこかで聞いたようなスタイルだ。家を出たときはお店に行く予定ではなかったけど、いつの間にか巨大な――自由恋愛がはびこる――風俗街に迷い込んでいたらしい。&lt;/p&gt;
&lt;p&gt;「ごめんね。騙したつもりはなかったの。でも、私とは会えたからいいでしょ？　信じてもらえないかもしれないけど、私、ハルのことをとても気に入ってる」&lt;/p&gt;
&lt;p&gt;どうせ、彼女は誰にでもそうやって甘い言葉を囁いているのだろう。しかし、私の手を握って上目遣いですり寄るモモは、彼女の言葉が本音かなんてお世辞か気にならなくなってしまうほどの魅力を放っていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;いくらあざとい風俗嬢に騙されていたとしても、彼女が人身取引でここに連れてこられていたとしても、性欲と期待にまみれた欲求不満な私の身体には関係なかった。&lt;/p&gt;
&lt;p&gt;『私のこと弄んで、どういうつもり？　ここ最近、モモとエッチすることしか考えてなかったんだから♡』『あぁっ♡せんせいっ、騙してごめんなさい♡♡ちゃんと性欲処理しますからぁ♡♡♡』『当たり前でしょっ！　ほら、もっと早く舐めてよ。そんなんじゃイけないでしょ♡♡』&lt;/p&gt;
&lt;p&gt;私を責めるモモの手と、モモを責める私の手が絡み合い、熱い視線がばちっとぶつかる。時折ピピッと音を立てる白いパネルの中では、経過時間と値段を示すデジタル数字がちらちらと赤い光を放っていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ピンク色のバスルームから出ると、先にシャワーから上がったモモがケトルでお湯を沸かしていた。&lt;/p&gt;
&lt;p&gt;「お茶入れるね。体を冷やすと良くないから、涼しくなってきたら飲んで」&lt;/p&gt;
&lt;p&gt;ティーポットの上で細いガラスびんを一振りすると、中から茶褐色をしたハート型のタブレットが四、五粒ほど飛び出す。その上からお湯を注ぐと、タブレットがふわりと解けて中から茶葉が現れた。扱いやすいように茶葉を固めたものらしい。&lt;/p&gt;
&lt;p&gt;その作業を終えると、モモは思い出したようにポップコーンを取り上げて、またさくさくと噛みしめる。&lt;/p&gt;
&lt;p&gt;「モモって、ポップコーンが好きなの？」&lt;/p&gt;
&lt;p&gt;「んー……大好きってわけじゃないけど、味のあるところとないところがあるから」「味？」「ほら、食べてみて」&lt;/p&gt;
&lt;p&gt;そう言って、モモがポップコーンを上から一粒取り上げてあーん、と私の口に差し出す。唇で受け取って舌に載せると、ふわりとバターの匂いがした。&lt;/p&gt;
&lt;p&gt;「どう？」「ちょっと濃いけど美味しい。塩バター味ね」「じゃあ、こっち」「……ん、あんまり塩が付いてないかも。薄いね」&lt;/p&gt;
&lt;p&gt;軽やかな歯ざわりと共に油っぽい粒を飲み込む。最初の一粒は程よい味付けで、さらに食べ進めると薄くなって、底には濃い味の粒が残る……よく混ぜずに大量にポップコーンを作ると、だいたいこんな感じだろう。わざわざ食べなくても、当たり前のことのように思えた。&lt;/p&gt;
&lt;p&gt;「薄いのを引いたら濃いのを引きたくなる。濃いのを引いたら、また濃いのが欲しくなる。毎日とっても暇だから、こんなことでも刺激になる……今、かわいそうな子だと思ったでしょ？」&lt;/p&gt;
&lt;p&gt;「そんなことないよ。えぇと……そう、日常の刺激って大事だよね」&lt;/p&gt;
&lt;p&gt;「うん！　だから、ハルが来てくれてよかった。やっぱり、女の子とのエッチの方が気持ちいいから」&lt;/p&gt;
&lt;p&gt;「女の人もここによく来るの？」&lt;/p&gt;
&lt;p&gt;「たまにね。でも、やっぱりハルが一番好き。どうせ、信じないと思うけど」&lt;/p&gt;
&lt;p&gt;エッチした相手に「好き」と言われるだけで舞い上がってしまう私の単純さよ。赤くなっているであろう頬をごまかすためにテレビを点けると、はだけた花魁風の衣装を羽織った女優が畳の上で股を開いて妖艶な笑みを浮かべていた。モモの視線はまるで猫が動くものを追うように画面に向く。これも、彼女にとっての刺激なんだろうか。&lt;/p&gt;
&lt;p&gt;「でもね、こうやって満たされてると、どんどん足りなくなっちゃう。ちゃんと気持ちのいいセックスって、ずっとしていたくなるから。思い出すと、とっても寂しくなる」&lt;/p&gt;
&lt;p&gt;そう言って、モモは私の身体に腕を回す。まだ暑いはずなのに、モモの身体から伝わる熱は木漏れ日のように心地よかった。たぶん、お互いの鼓動がよく聞こえていたと思う。&lt;/p&gt;
&lt;p&gt;「だから、おじさんが好き勝手に私を組み伏せたり、抵抗できないのに叩かれたり……そういう無力感も、嫌いだけどすき。死にそうになってる間も、痛みが残ってる間も、思い出してる間も、嫌な気持ちでいっぱいになる。でも、退屈じゃなくなるから」&lt;/p&gt;
&lt;p&gt;なんと言うべきか分からなかった。彼女は退屈と性欲で日常が埋め尽くされた「かわいそうな子」なのかもしれないけど、団地の外にだって同じような理屈で日々の労働に耐えている都民がたくさんいる。でも、あなただけじゃないから安心して……と言うのも違うだろう。&lt;/p&gt;
&lt;p&gt;私が黙ったままでいると、モモがさらに言葉を続けた。&lt;/p&gt;
&lt;p&gt;「もちろん、おじさんは嫌いよ？　こんなにダサいスロットマシンで喜ぶんだもの」&lt;/p&gt;
&lt;p&gt;アンニュイな空気から一転、モモは部屋の隅を指差して唇を尖らせる。かつてのラブホテルにはパチンコ台やスロットマシンを置かなければならないルール――根拠は失念したが――があったらしいが、もはやここでは懐古主義の発散でしかないだろう。この部屋が彼女の趣味を反映したものだとしたら、あまりに大きすぎる目の上のたんこぶだ。&lt;/p&gt;
&lt;p&gt;「この部屋、桃太郎が生まれた年と一緒なんだって」&lt;/p&gt;
&lt;p&gt;急な話題転換についていけずに「えっ？」と反応すると、モモは「イチサンサンハチ、モモタロー」と棒読みで繰り返した。&lt;/p&gt;
&lt;p&gt;「本当に生まれたわけじゃないよ？　えぇとね、なんだっけ……古いアニメ映画なんだけど、1338年にタイムトラベルして桃太郎として活躍するんだって」&lt;/p&gt;
&lt;p&gt;桃太郎を見つけに行くんじゃなくて、自分が桃太郎になるのか。なんだか変な映画だ。1338年……紅巾の乱とか、そのあたりの時代かな。桃太郎の成立も同じ時期なのだろうか。&lt;/p&gt;
&lt;p&gt;「キミの名前と一緒だねって言われても、桃太郎と一緒だなんて嬉しくないし。そういえば、エッチも下手だった！」&lt;/p&gt;
&lt;p&gt;憤慨するモモの話から、ふと疑問が湧く。&lt;/p&gt;
&lt;p&gt;「モモって、本名なの？」&lt;/p&gt;
&lt;p&gt;「違うよ。あれ、ゲットウっていうの。ツキのモモ」&lt;/p&gt;
&lt;p&gt;あれ、とモモが指差す先には、斑の入った深い緑色の葉が数枚広がった白い鉢植えが置かれている。茎は太いが緑色で、樹木というよりはバナナのような南国の植物を想起させる。&lt;/p&gt;
&lt;p&gt;「可愛い花が咲くと、とってもいい匂いがするらしいの！　だから、モモ」&lt;/p&gt;
&lt;p&gt;もう少し経つと、桃の実のような形の蕾を付けるという。モモのように可愛らしい花から漂う月の桃の甘くてスパイシーな香り……と妙な想像を膨らませていると、料金パネルからピピピッと小さな音が鳴って、終了十分前であることを告げた。&lt;/p&gt;
&lt;p&gt;「そろそろ、時間だね。今日は来てくれてありがと！」&lt;/p&gt;
&lt;p&gt;私の身支度を手伝うモモは、最後に「これ、お土産！　四錠飲んだらキンキューヒニンになるから、使って」と小さくカットしたピルシートを差し出した。「どうして、ピル？」と尋ねると、腰に手を当てて不服そうに理由を話し始める。&lt;/p&gt;
&lt;p&gt;「だって、外ってすごーく怖いんでしょ？　歩いてるだけで襲われるって、テレビで言ってた。好き勝手乱暴されて妊娠までしちゃうかもしれないのに……お金も払わず逃げるなんて、どうかしてるよね」&lt;/p&gt;
&lt;p&gt;モモが言うには、団地の外ではレイプと強盗がはびこっているから、可愛い上に特に身体が弱い女の子がここで &lt;em&gt;保護&lt;/em&gt; されているのだという。だったら、どうしてお金でセックスなんてさせられてるの？と疑問に思わないあたり、どうも彼女の素性にはまだ隠されているところがあるらしい。&lt;/p&gt;
&lt;p&gt;「ハルだってとっても可愛いのに。きっと、ハルは強いからここには呼ばれなかったのね！」&lt;/p&gt;
&lt;p&gt;「あのさ……モモ」&lt;/p&gt;
&lt;p&gt;「どうしたの？　延長する？」&lt;/p&gt;
&lt;p&gt;モモには分からないところが多すぎる。もう少し彼女に寄り添うべきだと思ったけど、それでも、おそらくあと数分で聞き出せるような事情でもない。また会ったときに訊けばいいだろう。&lt;/p&gt;
&lt;p&gt;「えぇと……私も、これあげるね」&lt;/p&gt;
&lt;p&gt;渡しそびれていたオープンハートのネックレスの箱を握らせると、モモはにっこりと微笑んだ。&lt;/p&gt;
&lt;p&gt;「また来てね。きっとよ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;モモとのプレイを終えて外に出る。疑問が残る彼女の事情には後ろ髪を引かれるものの、ここ数日の欲求不満が解消されて身体はすっきりとしていた。&lt;/p&gt;
&lt;p&gt;「女子◯学生って、サイコー！」&lt;/p&gt;
&lt;p&gt;「あ、お姉さ～ん。よかったら、駅まで送るよ」&lt;/p&gt;
&lt;p&gt;両手を上げて伏せ字を叫んだポーズのままでおそるおそる振り返ると、この団地で初めての&lt;ruby&gt;&lt;rb&gt;異常者&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アベラント&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;と遭遇していた。いつの間に近づいていたんだろう。全く気付かなかった。&lt;/p&gt;
&lt;p&gt;私にスマホのレンズを向けている謎の女――青いインナーカラーがよく似合うショートヘアの女は、なぜかで安っぽいメイド服でママチャリに乗っていた。ちょうど、ディスカウントストアのコスプレコーナーで見かけるような布地の薄さだ。およそ外出に適した服とは思えないが、スレンダーな彼女にはむしろ似合っているように見えなくもない。&lt;/p&gt;
&lt;p&gt;「いや、いいです。近いんで」&lt;/p&gt;
&lt;p&gt;恥ずかしさとパニックを押し殺して足早にその場を立ち去ろうとするが、小回りの利く自転車で素早く前に回り込まれた。&lt;/p&gt;
&lt;p&gt;「そんなこと言わないでよ。あ、じゃあお腹空かない？　奢るから一緒に食べようよ」&lt;/p&gt;
&lt;p&gt;胡散臭い笑顔と安っぽいメイド服は、異常な状況に慣れてきたつもりの私でさえも受け入れがたい空気を放っていた。だいたい、私の魂の叫びを盗み聞きしたこの女は、どうしてこんなに馴れ馴れしいんだ。理不尽な恥ずかしさが、一周回ってイライラに変わる。こういう人間とは関わらないほうがいいものだ。&lt;/p&gt;
&lt;p&gt;「別に、お腹なんて空いてないです」&lt;/p&gt;
&lt;p&gt;「じゃあ、おしゃべりだけでいいから！」&lt;/p&gt;
&lt;p&gt;それは私にどんな得があるんだ。&lt;/p&gt;
&lt;p&gt;とはいえこのまま断り続けていたらホームまで、最寄り駅まで、家まで……と、ずっと付きまとってきそうな勢いにも感じられた。変なマルチ商法の勧誘だったらすぐに帰ればいいし、ここはとりあえず気が済むようにさせた方が安全かもしれない。ここはまだ、レイプと強盗がはびこってる世紀末ではないんだし。&lt;/p&gt;
&lt;p&gt;「……まぁ、奢りなら」&lt;/p&gt;
&lt;p&gt;「やった！　僕のことはサクラって呼んで。キミは？」&lt;/p&gt;
&lt;p&gt;「……ハル、です」&lt;/p&gt;
&lt;p&gt;キューピアで使っているニックネームだし、知られたって問題ないだろう。&lt;/p&gt;
&lt;p&gt;サクラと名乗る女と一緒に「集会所」という案内に沿って道を進むと、一階部分が五つほど教室のように区切られた棟に辿り着いた。その部屋の一つの前に「各種飲物・その他あります」と看板に挙げられている製品名は、既に半分が青いビニールテープで隠されており、長年そこに立っていたことを感じさせる。&lt;/p&gt;
&lt;p&gt;「あの……奢るって、&lt;ruby&gt;&lt;rb&gt;団地&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ここ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の中の話ですか？」&lt;/p&gt;
&lt;p&gt;「うん。&lt;ruby&gt;&lt;rb&gt;清掃員&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ルームキーパー&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;は来てないから安心して。それに、こんなのが残ってるのって国内でもここだけだし。一度くらい体験しておいて損はないよ」&lt;/p&gt;
&lt;p&gt;こんなの？　この何もないフリースペースに何が残ってるって？　何も聞かされないまま帰り道を大きく東に迂回させられた上に、ただの会議室でコンビニおにぎりでも渡されたなら、流石にそのまま顔にぶつけて帰ろう。そうしよう。&lt;/p&gt;
&lt;p&gt;サクラが慣れたようにがらりと立て付けの悪い引き戸を開けると、突然中に古めかしいデザインの食品や飲料の自販機が所狭しと並んでいる光景――いわゆるオートパーラーだ――が現れる。あれ？　外からはこんな機械があるようには見えなかった。真ん中には折りたたみの長机とパイプ椅子が並べられていて、簡易な飲食スペースであることが見て取れた。&lt;/p&gt;
&lt;p&gt;狐につままれた気分でおそるおそる中に入ると、甘ったるい匂いとしょっぱい匂いが混ざったむせ返るような空気で満たされている。&lt;/p&gt;
&lt;p&gt;「びっくりした？　感覚操作の研究もしてるんだよね、この団地」&lt;/p&gt;
&lt;p&gt;驚く暇もなく、感覚操作というなんとも怪しい言葉が飛び出した。彼女が言うには、団地の敷地全体に強力な電磁波を送り出すアンテナが設置されていて、脳――より厳密には視神経束と蝸牛神経――に直接作用するのだという。スマホが圏外を示しているのも実験の副作用で、間接的な証拠といえるらしい。その説明によれば、私の叫びも周囲の人間には聞こえていないので、尊厳は保たれたというもののやはり胡散臭い。&lt;/p&gt;
&lt;p&gt;「ここも、外から見ると空っぽの集会所だったでしょ？　中は&lt;ruby&gt;&lt;rb&gt;清掃員&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ルームキーパー&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の休憩所なんだよ」「鉢合わせたら捕まるじゃないですか」「平気だよ。外の清掃は朝だけだから」&lt;/p&gt;
&lt;p&gt;さらに、私がこの休憩所を見つけられなかったことが直接的な証拠だと言うけれど、散々セックスで疲れ切った身体で突然暑さの中を歩かされたのだから、見間違いだって起きやすくなるはずだ。そんな簡単なトリックさえもバレていないような顔をして、サクラは得意げに説明を続ける。&lt;/p&gt;
&lt;p&gt;「感覚を操作できるほどの電磁波を浴び続けてたら、8Gなんかより強烈なダメージになるよね。遺伝子も書き換えられちゃうかも」&lt;/p&gt;
&lt;p&gt;電磁波、遺伝子操作、8G……SNSで散々見たような単語を耳に直接並べ立てられると、流石に迫力がある。くらくらしてしまうのは、疲れのせいだけではないだろう。&lt;/p&gt;
&lt;p&gt;「じゃあ、アルミホイルで頭を覆ってみたら？」「信じてないでしょ」「そういう与太話、もうネットでいっぱい拡散されてるし」「8Gと遺伝子はもちろん冗談だって。じゃあ、やってみる？　スマホ貸してよ」「会ったばかりの怪しい人に貸すわけないでしょ」&lt;/p&gt;
&lt;p&gt;彼女の雰囲気に流されて、私の返答も早口になってしまっている気がする。サクラは「しょうがないなぁ。見てから仕込みとか言わないでよ」と言ってスマホを取り出しながらカメラを起動した。そして、画面も見ずに何もない壁に向かってシャッターを押すと、コンマ数秒遅れて画面に写真が表示される。&lt;/p&gt;
&lt;p&gt;「ほら、分かる？　ここ、僕たちには見えないシフト表だよ。フジモト、アビコ、コイケ……読める？」&lt;/p&gt;
&lt;p&gt;彼女が指した先には、確かにオレンジ色のマーカーで名前と勤務時間を示す表が貼られているのが見えた。またお得意のトリックだろう。「仕込みとか言わないでよ」というのも、安心感を誘う常套手段だ。&lt;/p&gt;
&lt;p&gt;そんなわけない！と思いながら壁に向かって探るように手を滑らせていくと、かさり――突然、目の前に油の染みた紙が現れる。思わず上がった「ひゃっ」という間抜けな声に、サクラは満足げな笑い声を上げる。しかし、シフト表だったはずの面にはざらざらとしたノイズのような白黒のパターンが印刷されているだけで、罫線すらも読み取れない。&lt;/p&gt;
&lt;p&gt;「団地を歩き回って部屋に行って寄り道して……ここまで、どうして誰にも会わなかったと思う？」「見えなかっただけってこと？」「その通り」「まさか！」&lt;/p&gt;
&lt;p&gt;驚いて振り返ると、その反応は想定済みとでも言うように、サクラはまた準備した写真を何枚か示した。廃墟を歩くスーツ姿の中年、革ジャンにデニムのおじさん、ポロシャツにチノパンの青年……ピントの合わないブレた写真のせいか、まるで心霊写真にも似た趣が感じられる。&lt;/p&gt;
&lt;p&gt;「じゃあ、偶然同じ道を向かい合って歩いたら？　空気とぶつかったと思う？」&lt;/p&gt;
&lt;p&gt;「急に目の前に出てきたように見える、かな？　そのシフト表と一緒だよ。人間の脳って、網膜の情報をそのまま見てるわけじゃないから」&lt;/p&gt;
&lt;p&gt;シフト表が突然見えたときの感覚と、サクラと出会ったときの違和感がピンと繋がった気がした。サクラはそこまでまくしたてるように説明すると、ぽんと膝を叩いて「しゃべりすぎたね。そろそろ水分！」と立ち上がって自販機に向かう。&lt;/p&gt;
&lt;p&gt;「まぁ、客同士が衝突するケースはあんまり想定してないと思うよ」「どうして？」「だって、ソープランドの廊下で談笑する客はいないでしょ」&lt;/p&gt;
&lt;p&gt;水分と称してサクラが買ってきたのは、徳利を模したボトルにおちょこが付いた日本酒と、箔押しで大きく「炎」「爆」と記された白酒――その他は主家華語でほとんど読めない――と、マヨネーズの袋が付いたシュリンクパックのあたりめだった。たぶん、水分補給にはならないと思う。&lt;/p&gt;
&lt;p&gt;サクラが無限マッチ&lt;sup id="fnref:inf-match"&gt;&lt;a class="footnote-ref" href="#fn:inf-match" title="金属製の小さな棒の先に黒い発火装置が付いており、ロックを握りながらざらざらの面に擦って火を出す。燃焼時間は短いものの、マッチ自体は燃えないのでほとんど無限に使える。"&gt;6&lt;/a&gt;&lt;/sup&gt;で少しずつその安っぽい肴を炙っていくと、ほんのり生臭くて香ばしい匂いが立ち上る。やっていることは路地裏の不法飲酒と変わらないのに、見ているとなんとなくお腹が空いてしまう。&lt;/p&gt;
&lt;p&gt;「自販機はいくつかあるけど、お酒を売ってるのはここだけなんだよね。ハルも好きなものを買っていいよ。今日は僕の奢りだから！」&lt;/p&gt;
&lt;p&gt;三百円くらい自分で出せるけど、と思いながら室内を一周する。うどん、そば、炒飯、アイスクリーム、チーズバーガー、ピザトースト……しっかり食べたい気もするけれど、合成チーズは油っこくて嫌いだ。少し迷って、無難にきつねうどんを注文した。&lt;/p&gt;
&lt;p&gt;ボタンを押すと、モーターとベルトが擦れるキュルキュルという音と共にできあがりまでのカウントダウンが始まる。結局のところ、お湯を沸かしてカップ麺を作っているだけなのに、随分と大仰な機械だ。赤い数字が動くのを見ていると、ハルの部屋にあった料金パネルを思い出してなんとなく寂しくなる。&lt;/p&gt;
&lt;p&gt;「ハルって可愛いよねぇ。僕ね、ハルみたいな顔、すごく好き」「はいはい。ありがとう」「顔だけじゃないよ。きっと、身体の相性もいいと思うんだよねぇ」&lt;/p&gt;
&lt;p&gt;酒気混じりの熱い吐息が気持ち悪い。幸運にも、完成を告げるブザーが酔っ払いの粗放な口説き文句に横槍を入れる。彼女の言葉を無視して麺をずるずると啜ると、化学調味料たっぷりのかつお風味だしの香りが口いっぱいに広がった。&lt;/p&gt;
&lt;p&gt;「この団地は初めて？」「えぇ」「すごいでしょ？」「なんなの、ここ？」&lt;/p&gt;
&lt;p&gt;世間話のつもりで投げかけた私の疑問に、酔ったサクラは怒りと喜びが混ざったような熱気を込めて立ち上がった。&lt;/p&gt;
&lt;p&gt;「分からない？　国営のガチャ風俗だよ！　カジノ計画が急に頓挫したと思ったら、まさかこんなところでひっそり金儲けしてるなんて、誰も想像できなかったでしょ？」&lt;/p&gt;
&lt;p&gt;名指しで当てられても「いや……」と冷めきった返答しかできない私なんかお構いなしに、サクラは性欲と賭博をくっつけた最高のシステムだと褒めちぎった。財政解決まっしぐら、大減税時代に突入！と大演説を垂れ流す姿を見ていると、今すぐ都知事にでも転向したほうがよさそうに思えてくる。&lt;/p&gt;
&lt;p&gt;「都民カードを仕様と照らし合わせてるときに、謎のフィールドを見つけたんだよね。その断片を辿ったら、ここの住所とネットワークを見つけたってわけ。ハルは？　どうやってここに来たの？」&lt;/p&gt;
&lt;p&gt;「……キューピアで、ここの子に騙されて」&lt;/p&gt;
&lt;p&gt;「分かるな～！　ここの子、みんな可愛いもんね。桃源郷すぎて、マンションを解約してこの団地に住んでるんだ。トラカの残高が足りなくて、今は外に出られないけど」&lt;/p&gt;
&lt;p&gt;思わず耳を疑う。ここに住んでる、って言った？&lt;/p&gt;
&lt;p&gt;「いや、こんなところに住めないでしょ」「住めるさ」「洗濯は？」「自販機のセクシーランジェリーと、無料レンタルのコスプレを拝借してる。見たい？」「いや、見たくない」&lt;/p&gt;
&lt;p&gt;じゃあ、サクラは部屋を転々としながら何日もここで自販機うどんを食べて暮らしてるホームレスってこと？　お互いが見えない特殊な空間だからこそ成り立つ脱法的な戦略だろうけど、どこまでもぶっ飛んだ女だ。&lt;/p&gt;
&lt;p&gt;「何度も使ってたら、通行料だけでも高く付くでしょ？」&lt;/p&gt;
&lt;p&gt;「毎回払うならね。でもそれは&lt;ruby&gt;&lt;rb&gt;初心者&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ヌーブ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のすることだ」&lt;/p&gt;
&lt;p&gt;得意げに言い放つサクラは、芝居ががったわざとらしい小声でその手口について述べ始める。会ったばかりの私にそんなことを話すなんて、あまりにも軽率に思えるが、私もそれを聞いて彼女をどうこうするつもりはなかった。&lt;/p&gt;
&lt;p&gt;「ちょっとシステムに細工をするとね、&lt;ruby&gt;&lt;rb&gt;管理用&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アドミン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の精算機でルームキーを引けるんだ。番号も自由に操作できる……というのは言い過ぎだけど」&lt;/p&gt;
&lt;p&gt;「&lt;ruby&gt;&lt;rb&gt;管理用&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アドミン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の精算機ですって？　そんなの一つも――」&lt;/p&gt;
&lt;p&gt;――いや、 &lt;em&gt;見えなかった&lt;/em&gt; のだ。この団地では、利用者に都合の悪いものは文字通り視界から隠されているから。それがサクラの言い分だ。&lt;/p&gt;
&lt;p&gt;もちろん、偶然その精算機を見つけたとしても、ボタンを押すだけでキーを発行するような代物ではないだろう。彼女のいう &lt;em&gt;細工&lt;/em&gt; がどんなものかは分からないけれど、そんなに簡単ではないはずだ。&lt;/p&gt;
&lt;p&gt;「人間相手にサービス料をちょろまかすのは難しいけどね。機械ならかなり楽だよ」&lt;/p&gt;
&lt;p&gt;「いずれバレるわよ。駅の人も監視してるでしょ」&lt;/p&gt;
&lt;p&gt;「あぁ、 &lt;em&gt;駅員&lt;/em&gt; のこと？　あれはただの無能な事務員だから、監査ログにさえ気を付ければ平気だよ。まったく、国家を救う一大プロジェクトなのに、予算だけは少ないんだから」&lt;/p&gt;
&lt;p&gt;口ではそう憂えてみせるけど、実際はその不具合を利用して欲望のままにやりたい放題だ。きっと、本心ではこのまま穴だらけの庭で好きなだけ女の子と遊びたいと思っているのだろう。白々しい態度が鼻についた。&lt;/p&gt;
&lt;p&gt;「ハルにも教えてあげようか」「別にいい」「どうして？」「ズルはよくないから」「やだなぁ、仕様の範囲内だよ」「それは言い訳よ」&lt;/p&gt;
&lt;p&gt;これ以上彼女といると自分の常識が狂いそうな気がして、やにわにこの場を離れたくなってしまう。結局自腹だった食事も済んだので「帰る」と立ち上がると、サクラが慌てて私を呼び止めた。&lt;/p&gt;
&lt;p&gt;「偽造トラカ。あげるよ。食事代のかわり」「偽造って？」「ダミーの都民カードと紐付いてる」「いらない」&lt;/p&gt;
&lt;p&gt;いわゆる白トラカというやつだろう。私はホームレスじゃないものと言い返すと、サクラは違う違う、と首を振った。&lt;/p&gt;
&lt;p&gt;「都民カードに風俗の利用歴が紐付くのって、結構恥ずかしくない？　もちろん、隠れフィールドだから滅多に読まれたりはしないと思うけど」&lt;/p&gt;
&lt;p&gt;「それは……確かに」&lt;/p&gt;
&lt;p&gt;忘れかけていたけれど、私は国家規模の風俗街に迷い込んでいるのだった。トラカも何度か個人情報流出事故を起こしてるし……カードを受け取ると、サクラは嬉しそうに微笑んだ。&lt;/p&gt;
&lt;p&gt;「あのさ、サクラ。感覚操作ってことは、女の子たちも本当は今見えてる姿と違ったりする？」&lt;/p&gt;
&lt;p&gt;「ここのアンテナの精度ではそこまで操作しきれないよ。見せるか、見せないか、あるいはノイズで上書きするか……今まで見たことがあるのはそれくらいかな」&lt;/p&gt;
&lt;p&gt;「そう。ありがとう」&lt;/p&gt;
&lt;p&gt;スープと箸を捨てて、容器を返却口に放り込む。プラスチックの丼の裏に「☆大当たり☆」というテープで百円玉が貼り付けられているのが見えたけれど、丼はもう私の手を離れてダストシュートの奥へと吸い込まれていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;あれから、私はしばらくあの団地には行かなかった。この前は不意打ちに近い形で入場させられただけなのだから、当然といえば当然だ。都民カードに履歴が残りかねないというのも、私にとっては大きな抑止力になっていた。&lt;/p&gt;
&lt;p&gt;もちろん、サクラに渡された偽造トラカさえ使えば、個人情報と紐付くことはない。しかし、エラーになったらどうしよう、見つかって捕まったらどうしよう……白トラカを改札に通す瞬間を想像すると、手足がひどく冷たくなって震えが止まらなかった。&lt;/p&gt;
&lt;p&gt;ところが、 &lt;em&gt;その瞬間&lt;/em&gt; は唐突に訪れる。キューピアから、モモのアカウントが消えたのだ。あの一件からモモと私は風俗嬢と客の関係にはなってしまったものの、変わらずやり取りを続けていたし、団地に興味が向かなかったのもこのせいだ。それなのに……思い出を反芻するだけで収まっていた私の性欲と期待が、むくむくと湧き上がってくるのを感じていた。&lt;/p&gt;
&lt;p&gt;あそこに行けばまた会える、きっと会える、会いたいと思っているうちに、いつの間にか私は白トラカを手に西鷹砂台へと向かっていた。残念ながら――いや、当然というべきか――精算機から吐き出されるルームキーは、モモの部屋のものではない。&lt;/p&gt;
&lt;p&gt;モモより背が大きくて、モモより胸が小さくて、モモより可愛くない。もちろん、性的なサービス自体はそれなりに気持ちいいけれど、それはむしろモモへの渇望を強めるだけだった。&lt;/p&gt;
&lt;p&gt;『ユカリです♡』&lt;/p&gt;
&lt;p&gt;「次は、絶対モモのところに行ける」&lt;/p&gt;
&lt;p&gt;『ミホで～す』&lt;/p&gt;
&lt;p&gt;「次は、きっとモモのところに行ける」&lt;/p&gt;
&lt;p&gt;『カナコでーす』&lt;/p&gt;
&lt;p&gt;「頼む、もう一回だけ……モモ……」&lt;/p&gt;
&lt;p&gt;『アリサで～す♡』&lt;/p&gt;
&lt;p&gt;「ねぇ、排出どうなってんの……これ……」&lt;/p&gt;
&lt;p&gt;精算機に向かうと指先が冷たくなって、足が震えた。入場料だけで一回一万円、サービス料は一～三万円。部屋に行かずに帰ればいいと思ったこともあるけれど、モモがどの部屋にいるか分からないのに、入場料だけ払ってルームキーを捨てるわけにはいかなかったのだ。ズルはよくないと言い放った手前、サクラに頼ることもできなかった。&lt;/p&gt;
&lt;p&gt;この頃には、モモと会えないなら、せめてモモより可愛い子でいいから……という浅ましい願いも頭をよぎっていたが、これも叶うことはなかった。&lt;/p&gt;
&lt;p&gt;明らかに小さくない出費なのに、週に三回を超えてしまって入場を断られることさえあった。団地に行かなかった夜は、何度も精算機を回す夢を見た。いつしか私は、モモに会いたくて団地に通っているのか、あの指先の冷たさを味わいたくて精算機の前に立っているだけなのか、分からなくなっていた気がする。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;違和感に気付いたのは、団地に二ヶ月ほど――回数にして二十回ほど――通った頃のことだった。この団地には、同じ顔の子が何人かいるような気がした。例えば、おとなしい性格の子と話していると、ふとその子が活発で積極的な性格だったことを &lt;em&gt;思い出す&lt;/em&gt; という現象が続いたのだ。もちろん、何度も通っているから似たような顔を勘違いしているだけかもしれないけど、それにしてはあまりに奇妙な感覚だった。&lt;/p&gt;
&lt;p&gt;そしてそれは、ある日確信となって私の前に現れる。&lt;/p&gt;
&lt;p&gt;「モモ？」&lt;/p&gt;
&lt;p&gt;あの可愛らしい顔立ちに、低い背に似合わない大きな胸。喘ぐと&lt;ruby&gt;&lt;rb&gt;子宮&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ここ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;に来るあの声で「久しぶりだね」と私に笑いかけるのだ。とうとう見つけた！　また会えたんだ！　……しかし、モモの様子がおかしい。&lt;/p&gt;
&lt;p&gt;「あ、はい。モモです。よろしくお願いします」&lt;/p&gt;
&lt;p&gt;「あれ、私のこと、覚えてる？　この前、ネックレスあげたよね？　持ってる？」&lt;/p&gt;
&lt;p&gt;「お、覚えてます！　でも、えーと……ごめんなさい。失くしちゃったかも、しれないです」&lt;/p&gt;
&lt;p&gt;失くした？　そんなわけ……と、ぺこりと頭を下げる彼女は、顔立ちこそモモに似ているものの、やはりモモとは歩き方一つ取っても――表情筋の使い方も――違う。よく見ると、私が知っているモモより少し背が小さい気がする。それに、大好きなポップコーンさえ抱えていない。不安そうに私を見上げるだけで、性欲を煽り立てるような色気もまるでなかった。&lt;/p&gt;
&lt;p&gt;「えーと……モモさんは、ポップコーンは好き？」&lt;/p&gt;
&lt;p&gt;「ポップコーン、ですか？　すみません、ほとんど食べたことありません」&lt;/p&gt;
&lt;p&gt;「じゃあ、私のことは？　好きって言ってくれたよね？」&lt;/p&gt;
&lt;p&gt;「は、はいっ！　モモ、言いました！　好きですよ、えーと……ネックレスの、お方？」&lt;/p&gt;
&lt;p&gt;「……」「す、すみません……」「いや、うん」&lt;/p&gt;
&lt;p&gt;気になることはたくさんあるけれど、これ以上目の前の少女を問い詰めても、モモについての情報は出てこないだろう。だって、この子はモモじゃないから。モモに似た、違う誰か。きっと、モモの代わりにはならない。&lt;/p&gt;
&lt;p&gt;「えーと、ごめん。今日は帰るね」「えっ、困ります」「お金はちゃんと払うから」「はい、それなら……ご満足いただけず、申し訳ありません」&lt;/p&gt;
&lt;p&gt;ふと窓際を見ると、鉢植えから広がる月桃の葉はまだ若く、蕾をつけるまではさらに数年かかることを伺わせる。斑の入った美しい葉にモモの面影を感じて、きゅっと胸が締め付けられた。&lt;/p&gt;
&lt;p&gt;一度満たされかけた私の心に降り注いだのは、ありったけの喪失感だけではない。モモが何人もいるかもしれないという不気味な不安、モモという存在自体が揺らぎだす吐きそうな感覚、 &lt;em&gt;本当の&lt;/em&gt; モモと再び会えるのかという疑問……モモのことを考えるたびに、彼女の一つ一つがこぼれ落ちていく気がした。&lt;/p&gt;
&lt;p&gt;どうすれば、どうしたら。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「サクラ。あなたなら、ここから女の子を連れ出せる？　一人でいいから」「……んむ？」&lt;/p&gt;
&lt;p&gt;遅めの昼食と称して大盛りのうどんを啜っていたサクラの動きが一瞬止まったが、すぐに残りを吸い上げるように口に流し込んだ。着替えたばかりのメイド服に琥珀色の汁が跳ねる。スープと一緒にじれったそうに麺を飲み込むと、キラキラした目で身を乗り出してきた。&lt;/p&gt;
&lt;p&gt;「ハル、かっこいい目してるね。今すぐ連れ帰られて抱かれたくなるよ」「あんたじゃない」「分かってるって」&lt;/p&gt;
&lt;p&gt;私は、サクラに先日の不可解な出来事について話した。モモが私を忘れていたこと、プレゼントも持っていなかったこと、同じ顔の子が違う性格で出てきていること……ひょっとすると、彼女らは数年で使い捨てられる存在なんじゃないかという予感がすること。サクラは時折「やっぱり、そうか」「いや、しかし」と、気になる相槌で私の話に応えていた。&lt;/p&gt;
&lt;p&gt;「要するに……ハルが最初に会った『モモ』に会いたい、と。そして、あわよくばここから連れ出し……いや、救い出したい。そうだよね？」&lt;/p&gt;
&lt;p&gt;「えぇ」&lt;/p&gt;
&lt;p&gt;ちょっと話をまとめようよ、とハルはメッセンジャーバッグからノートを取り出した。まず、二つの部屋とその中にいる二人の女の子を描く。それぞれにA子、B子と書き込んで、二人を矢印で繋いだ。&lt;/p&gt;
&lt;p&gt;「まず、違う人格の同じ子が出てくる話。これはたぶん遺伝子レベルで正しい。そして、同じ部屋からは同じ子が出てくることを考えると、複数のクローンが同時に収容されていると考えるのが自然だと思う」&lt;/p&gt;
&lt;p&gt;ハルは右上にのこぎり屋根を描き込むと、そこからさらに二人に点線を伸ばした。どうやらクローン工場のつもりらしい。&lt;/p&gt;
&lt;p&gt;「次に、彼女らが&lt;ruby&gt;&lt;rb&gt;使い捨て&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;エフェメラル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;かもしれないという話。実は僕も、その可能性は少し検討してた。みんなあまりに &lt;em&gt;適齢期&lt;/em&gt; すぎるからね。でも、判断材料がない」&lt;/p&gt;
&lt;p&gt;「どういう意味？」&lt;/p&gt;
&lt;p&gt;「そもそも、電磁波の影響なんて、普通は一生浴び続けて発現するかどうかなんだ。どんなに電磁波が強くたって、十年浴び続けて、十年後にちょっと疲れやすくなるだけかもしれないし」&lt;/p&gt;
&lt;p&gt;部屋の上に描き込んだ三つの塔から、雷のマークが数本伸びた。A子とB子の目がバツになって、いかにも体調が悪そうな様子に変わるけど、どちらも近くに書き込まれた疑問符でその不確実性が強調されている。&lt;/p&gt;
&lt;p&gt;「電磁波で衰弱死しないとしたら……」「殺処分？」「おそらくは、そう」&lt;/p&gt;
&lt;p&gt;口をついて出た物騒な言葉に、自分でも驚いていた。殺処分？　モモが？　そんなのあるわけない。でも、あの月桃は決して花を咲かせることはないのだろうという悪い予感が、どうしても拭い去れずにいた。&lt;/p&gt;
&lt;p&gt;少しの沈黙の後、ハルは続きを書くのをやめて、一旦ノートを閉じた。&lt;/p&gt;
&lt;p&gt;「まぁ、それは今気にすることじゃないよ。いちばん重要なのは……どの部屋に行くかってことかな。たぶん、ハルはどの部屋に向かったか覚えてないはずだから」&lt;/p&gt;
&lt;p&gt;「そんなわけないでしょ？　エレベーターに向かって、トラカをかざして……あれ？　でも、南の大きな建物に入ったはず……」&lt;/p&gt;
&lt;p&gt;これまで当然のように覚えていると思っていたモモの部屋のことを、なぜか私はすっかり忘れていた。だって、モモは確か、この部屋の番号が何かと同じだと言っていたはずで……なんだっけ？　思い出そうとすると肝心な部分が飛ばされて、巻き戻してもまた飛ばされる。気持ち悪い。いくら辿っても、記憶があったという記憶だけがそこに広がっていた。&lt;/p&gt;
&lt;p&gt;「だから、こうやって僕たちも電磁波に操作されてるんだよ。南の大きな棟――C-K-1棟は一階あたりおよそ四十人……全部で十五階あるとして、六百人は収容できる。下から順に探していけば、きっとどこかにはいるだろうね」&lt;/p&gt;
&lt;p&gt;「じゃあ、順番に……」&lt;/p&gt;
&lt;p&gt;「そうだね、分からなかったら順番に開けていくのが確実だよ。でも、僕だって一度に何十枚も&lt;ruby&gt;&lt;rb&gt;番号自由指定&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ナンバード&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のルームキーを出したら流石に気付かれるかもしれない」&lt;/p&gt;
&lt;p&gt;「じゃあ、一つずつランダムに引いたら？　それなら、たくさん引けるでしょう？　順番に探すよりは効率がいいかもしれないし」&lt;/p&gt;
&lt;p&gt;私の言葉を聞いて、サクラが大きなため息をつく。&lt;/p&gt;
&lt;p&gt;「ガチャの経験は？　もちろん、ここ以外でね。まぁ、TRPGでもいいけど」「ないわ。TRPGって何？」「だろうね。じゃあ思い出すしかない」&lt;/p&gt;
&lt;p&gt;そんなこと、私が一番よく分かっている。自分が行きたい場所のはずなのに、自分で思い出せないなんて。モモはなんと言っていた？　モモは、おじさんが……おじさんが嫌いで……昔の――&lt;/p&gt;
&lt;p&gt;「古いアニメ映画で……そうよ、桃太郎！　桃太郎が出てくる年と同じだった！」&lt;/p&gt;
&lt;p&gt;突然立ち上がって叫んだ私の前で、サクラは返す言葉もなくきょとんとしている。タイムトラベルで過去に戻って桃太郎になる話、モモはそんな不思議な映画の話をしていたはずだ。モモと桃太郎が並べられて不快そうな顔をして。思い出した！　思い出せた！&lt;/p&gt;
&lt;p&gt;「桃太郎？」「そう、分からない？」「桃太郎の映画ってこと？」「たぶん……そう」「いや、知らないな」&lt;/p&gt;
&lt;p&gt;「だめか～……」と落胆する私をよそに、サクラは「いや」と小さく答えて、またノートを開く。&lt;/p&gt;
&lt;p&gt;「それだけ分かれば十分。大事なのは、 &lt;em&gt;操作&lt;/em&gt; される前にメモを取ることだよ。少しシナリオを考えてみるね」&lt;/p&gt;
&lt;p&gt;サクラはガリガリとノートに「桃太郎の古いアニメ映画」と何度も書き続けている。「ごめんね、一週間はかかると思う」と告げる横顔がいつになく凛々しく見えたのを自覚して、私は急に恥ずかしくなった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;作戦決行は、彼女の宣言した通り一週間後の夕方となった。真正面からシステムをダウンさせて隙を作るという作戦は、単純かつ強力なダメージを期待できるものの、万が一失敗すれば団地を追い出されるだけでは済まないかもしれない。そうでなくとも、作戦後は&lt;ruby&gt;&lt;rb&gt;管理用&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アドミン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;端末のセキュリティは強化されてしまうだろう。&lt;/p&gt;
&lt;p&gt;ここに残っても追われることになるだけだと予見したサクラは、私たちと一緒に団地を脱出すると告げた。&lt;/p&gt;
&lt;p&gt;『まずハルは、駅の精算機でカードキーを引いて通常通りモモの部屋へ行く。しばらく経つと火事か地震の警報が鳴るから、この赤トラカでモモと一緒に屋上に出て』&lt;/p&gt;
&lt;p&gt;駅の精算機では、彼女の細工のおかげで待ち望んでいた1338号室のキーが吐き出された。両手を上げて喜びたい気持ちを抑え、平静を装って駅員にカードを渡すと、何も気付かないまま白トラカとルームキーが戻される。彼はサクラの言う通り、ただの無能だ。&lt;/p&gt;
&lt;p&gt;「モモ、久しぶり」&lt;/p&gt;
&lt;p&gt;C-K-1棟の13階、1338号室――あの日と同じ部屋――の扉が開くと、待ち望んでいた懐かしい顔が私を出迎える。&lt;/p&gt;
&lt;p&gt;「ハル！　どうしてここに？」&lt;/p&gt;
&lt;p&gt;「また来てね、って言ってたでしょ？」&lt;/p&gt;
&lt;p&gt;モモは驚きと喜びに満ちた表情で、部屋に引き入れた私の腰を強く抱きしめる。それを優しく包み込むように背中を撫でると、モモの腕の力が少しずつ弱くなっていくのが分かった。彼女は確かにそこにいて、私は彼女とここに立っている。&lt;/p&gt;
&lt;p&gt;月桃は、小さな桃の形の蕾を付けていた。&lt;/p&gt;
&lt;p&gt;「ハル、ごめんね。今日は――」&lt;/p&gt;
&lt;p&gt;モモの言葉を遮るように、ジリリリリリリリリリリリリリリリ！と、けたたましい音量のベルが鳴る。待ちに待った再会を果たしたっていうのに、いくらなんでも進行が早すぎるんじゃないか。それでも、今はサクラの書いたシナリオに従うしかない。&lt;/p&gt;
&lt;p&gt;『警報が鳴ったら、すぐにモモを部屋の外に出すこと』&lt;/p&gt;
&lt;p&gt;「モモ！　避難しよう！」&lt;/p&gt;
&lt;p&gt;そう言うよりも先に、モモはベッドの下から白い十字のワッペンが貼り付けられたオレンジ色のリュックを引っ張り出している。いわゆる防災リュックだ。床に置いたまま背負って持ち上げようとするけれど、時折ふらつく姿を見ていると、どうにも重そうに見える。&lt;/p&gt;
&lt;p&gt;「えーと……それ、重いなら置いていかない？」&lt;/p&gt;
&lt;p&gt;「ダメだよ！　もしかしたら、しばらく外で生活しなきゃいけないかもしれないでしょ？　 外は危険だもの。ハルの分もちゃんとあるから、安心して」&lt;/p&gt;
&lt;p&gt;「えぇと、そうね……じゃあ、持っていこうか」&lt;/p&gt;
&lt;p&gt;あの大きなリュックが災害用のグッズで埋め尽くされているとしたら、おそらくこの先では必要のないものでいっぱいだろう。しかし、ここで説得していたら、脱出が遅れてしまうかもしれない。とりあえず、部屋を出てから考えよう。&lt;/p&gt;
&lt;p&gt;『屋上に行けるのは&lt;ruby&gt;&lt;rb&gt;管理用&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アドミン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のエレベーターだけ。赤トラカはカードのIDを書き換えられるんだ。ここはIDだけで認証してるから、同じカードが何枚でも作れる』&lt;/p&gt;
&lt;p&gt;小さく一呼吸して、真っ赤なカードをセンサーに当てた。サクラの言う通り、ランプが緑色に点灯してエレベーターが動き始める。今は、初めてモモの部屋に向かったときよりも、ずっと緊張していた。そして、いつ本物の&lt;ruby&gt;&lt;rb&gt;管理者&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アドミン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;に出くわしてしまうか、捕まったらどうなるのか、悲観的すぎる想像に恐怖していた。手足が冷たくなって小さく震えているのが分かる。&lt;/p&gt;
&lt;p&gt;モモと一緒にエレベーターに乗り込むと、彼女はやはり不思議そうな顔をした。エレベーターが上に向かって動き始めると、肩紐を握って背負うようにきゅっと引き上げる。&lt;/p&gt;
&lt;p&gt;「ハル、どうして屋上に向かうの？」&lt;/p&gt;
&lt;p&gt;「ごめんね、モモ。私、あなたを騙してるの」&lt;/p&gt;
&lt;p&gt;「……そっか。じゃあ、これでおあいこだね」&lt;/p&gt;
&lt;p&gt;屋上階に着くと、利用者が出入りする居住区とは違って掃除の行き届いていないエレベーターホールが現れる。壁には&lt;ruby&gt;&lt;rb&gt;管理用&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アドミン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;エレベーターの扉だけではなく、残りの二つの扉があったはずの位置が白くコンクリートで埋められた跡が残っていた。かつては、居住者用エレベーターでも屋上に移動できたのだろう。&lt;/p&gt;
&lt;p&gt;重い扉を押して外に出ると、地上五十メートルの広々とした眺望が現れた。当然、床が清掃された形跡はなく、長年の雨が流れて錆びついた黒い跡がそこら中に走っている。&lt;/p&gt;
&lt;p&gt;『屋上から全部の棟を &lt;em&gt;見る&lt;/em&gt; んだ。一棟をじっくり見つめるんじゃなくて、まんべんなく眺める。そうすれば、再描画でかなりの負荷がかかるはずだから』&lt;/p&gt;
&lt;p&gt;一歩前に踏み出して、階下の景色を眺めていく。ドミノのように計画的に並べられた棟や、中庭をぐるりと囲む棟。赤いアスファルトのひび割れたテニスコートや、雑草の生えそろった小さな野球場、打ち捨てられて錆びついた大きな遊具。&lt;/p&gt;
&lt;p&gt;徐々に視線の動きと合わない風景が残像のように乱れ始め、輪切りになった街路樹の幹がフェンスにめり込む。なけなしの自然を楽しめるように壁に印刷された清流の写真や植物の絵は、道路の上でちらつきながら砂のように分解されていった。そうやって、団地のあらゆるテクスチャが壊れ始めていく。&lt;/p&gt;
&lt;p&gt;かつてここには人の暮らしと夢があったはずで、まさかその寿命を終えた後にこんな風に使われるなんて、誰も想像できなかっただろう。そのお粗末で冒涜的な延命処置がこうして綻びて壊れていく様子は、まるでこの団地の行く末を暗示しているようだった。&lt;/p&gt;
&lt;p&gt;『施設内の過半数のノードがダウンすると、システム全体の再起動が始まる』&lt;/p&gt;
&lt;p&gt;あとは、全てが壊れるまで待つだけだ。サイレンが鳴り響くまるで世界の終わりみたいな風景の中で、私はモモと手を繋いで静かにそこに立っていた。この棟が音もなく崩れ去って、光の中でモモと一つになってしまう錯覚さえ感じる。&lt;/p&gt;
&lt;p&gt;『警報が止んだら、外に出る。この警報で駅に待機してる職員が全員出てくるはずなんだ。その隙に三人で電車に乗り込む。自動運転だから、ホームまで辿り着けばこっちのものだよ』&lt;/p&gt;
&lt;p&gt;「ねぇ、モモ。私と一緒に来てくれない？　団地の外に。きっと、ポップコーンを食べるより楽しいよ」&lt;/p&gt;
&lt;p&gt;できることなら、もう少しモモとあのピンク色の部屋で二人の時間を過ごしたかった。あの部屋は暴力と性欲で退屈を覆い隠す悪循環が支配する場所だったけど、彼女が1338号室で小さくてささやかな幸せを集めていたのも、また事実だったから。&lt;/p&gt;
&lt;p&gt;「いいよ。ハルが私を守ってくれるんでしょ？　幸せにしてね」&lt;/p&gt;
&lt;p&gt;モモの答えを聞いて、私は胸を撫で下ろす。できることなら日が落ちるまでこの景色を二人でずっと眺めていたかったけど、今はそういうわけにもいかない。テクスチャは徐々に整合性を取り戻しつつあった。急がなきゃ。&lt;/p&gt;
&lt;p&gt;「走れる？」「ちょっと難しいかも」「リュックはもういらないよ。私が守るから」「……うん、そうよね！　それなら走れる！」&lt;/p&gt;
&lt;p&gt;防災リュックを屋上に残して、私たちは再び&lt;ruby&gt;&lt;rb&gt;管理用&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;アドミン&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;エレベーターに乗り込んだ。闇雲に歩き回ってもエレベーターの動きが早くなるわけではないけど、どうしても小さく足踏みしてしまう。&lt;/p&gt;
&lt;p&gt;「モモは、ここにいて幸せだった？」&lt;/p&gt;
&lt;p&gt;「えぇ。だって、ハルに出会えたんだもの」&lt;/p&gt;
&lt;p&gt;エレベーターを降りると、サクラが待ってましたと言わんばかりに仁王立ちでこちらを睨みつけていた――なぜか、黒いチャイナ服で。二人の間に流れるしっとりした空気などお構いなしという風に、手をぐるぐると回してその慌てっぷりをアピールし始める。&lt;/p&gt;
&lt;p&gt;「思ったより駅員の動きが早い！　二十秒ほどのズレがある！　急ごう、今は駅が手薄だ！」&lt;/p&gt;
&lt;p&gt;例のママチャリにまたがったサクラは、後ろに乗るように促した。指示された通りに荷台に腰掛けてみるけれど、当然モモも連れて行く必要がある。&lt;/p&gt;
&lt;p&gt;「二人いるんだけど」「譲り合って乗ってよ」「無茶言わないで！」「身体が小さいから大丈夫だって」&lt;/p&gt;
&lt;p&gt;私たちが言い合うのをよそに、モモが私の身体にしがみついて立位&lt;sup id="fnref:stand"&gt;&lt;a class="footnote-ref" href="#fn:stand" title="編注・いわゆる駅弁のことと思われる。"&gt;7&lt;/a&gt;&lt;/sup&gt;のような、対面座位のような姿勢に持ち込んだ。足を私の後ろに投げ出しているおかげで左右のバランスは取れているが、自転車にバスローブという組み合わせはマニア向けなシチュエーションに思える。&lt;/p&gt;
&lt;p&gt;「じゃあ、こうすればいいでしょ。ほら、早く出してよ、サクラさん」&lt;/p&gt;
&lt;p&gt;その光景に面食らったような表情を見せたサクラだが、すぐに我に返ってトップギアで走り始めた。脚を上下すると、見た目重視で伸縮性の悪い布地が時折ぶちぶちと音を立てる。なんでチャイナ服なの？&lt;/p&gt;
&lt;p&gt;感覚操作が無効になっているせいで、非常ベルを聞いて部屋を飛び出した利用客が、乱れた着衣のままで外に立ち尽くしているのがよく見えた。それと比べれば、私たちの密着したポーズくらいどうってことないことに思えてくる。もう少し待てば、感覚操作が再起動して &lt;em&gt;尊厳は保たれる&lt;/em&gt; だろう。&lt;/p&gt;
&lt;p&gt;「モモ、ここから先は自分の足で走るよ。できそう？」&lt;/p&gt;
&lt;p&gt;「大丈夫、走れるよ」&lt;/p&gt;
&lt;p&gt;歩道橋の前まで全速力でペダルを漕いだサクラが、ハンドルにもたれかかって呼吸を整える。流石に疲れてしまったのだろうか。&lt;/p&gt;
&lt;p&gt;「いやー、みんな重すぎ！　行くよ、ハル！　モモ！」「呼び捨てにしないで！」「モモさん！」「それでよし！」&lt;/p&gt;
&lt;p&gt;……と思ったけれど、まだまだ元気そうだ。サクラが「あと三十秒で出発！　トラカは絶対捨ててね！　適当な駅でごまかして増運賃を払うからそれで！」と叫びながら誰もいない改札を駆け抜ける。&lt;/p&gt;
&lt;p&gt;モモが団地に向かって小さく一礼をしてから、私たちもサクラの後ろに続いた。&lt;/p&gt;
&lt;p&gt;ホームに駆け上がったあたりで後ろを振り向くと、モモが十段ほど下でよたよたと這うように歩みを進めているのが見える。私に遅れて数秒後、モモは階段を上り切って大きく息を吸った。&lt;/p&gt;
&lt;p&gt;「ねぇ、ハル！　疲れて死んじゃいそう！　今の私、最高にドキドキしてる！」&lt;/p&gt;
&lt;p&gt;そう叫んで肩で息をするモモが、これまで見た中で一番の笑顔で電車に飛び乗った。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私たちが乗り込んだ電車は、定刻通り無事に西鷹砂台駅を出発した。次の駅に着くまでほんの数分間、それでもうこの団地から離れることができる。&lt;/p&gt;
&lt;p&gt;「ハル、ごめんね」「どうしたの？」「あのネックレス、リュックに置いてきちゃった」「あー……いいよ。また買ってあげる」「うん、ありがと！」&lt;/p&gt;
&lt;p&gt;ふと窓の外を見ると、小さくなっていく団地の囲いの向こうで、黒い煙が上がっているのが見えた。&lt;/p&gt;
&lt;p&gt;システムの再起動中に熱暴走でも起こしたか、あるいは電磁波の制御が効かなくなって火事でも起こったのか。どちらにせよ、あの様子ではしばらくまともに営業できないだろう。&lt;/p&gt;
&lt;p&gt;「もう、団地には戻れなくなっちゃったな」「いや、戻らなくていいでしょ」「家がないんだよ、僕は！」&lt;/p&gt;
&lt;p&gt;そういえば、この風俗狂いはホームレスになってまであの団地に通い詰めていたのだった。あのハッキングのスキルがあれば、仕事くらいすぐに見つかりそうなものだけど。彼女自身もそれは分かっているのだろう。家がないと嘆いている姿も、どこか余裕そうだった。&lt;/p&gt;
&lt;p&gt;「しばらく私の家に住む？　今回は流石にお世話になりすぎたし」「いいの？」「私は嫌だな」「モモ、私たちの恩人だから」「はぁい」&lt;/p&gt;
&lt;p&gt;家に住まわせるなら、モモの住民登録をしておいたほうがいいかな。団地の子の登録なんてしたことないけど、サクラに頼めばどうにかしてくれるだろう。パートナーシップならスマホ代も安くなりそうだし、大家さんにも説明が付くし。&lt;/p&gt;
&lt;p&gt;「じゃあ、月野モモね」「えっ？」「モモの&lt;ruby&gt;&lt;rb&gt;住民票名&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;リーガルネーム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;。ツキのモモだから。単純すぎるかな？」&lt;/p&gt;
&lt;p&gt;突然のプレゼントに嬉しそうなモモは「ううん、いいと思う！」と照れた顔を取り繕うように大きな声で答えるけれど、それから「月野モモ、月野、モモ……」と何度も反芻しているうちにまた顔が赤くなっていくのが分かる。可愛い。&lt;/p&gt;
&lt;p&gt;「いや、今回は桃太郎に救われたんだから、月野桃太郎の方がいいんじゃない？」&lt;/p&gt;
&lt;p&gt;「……ハル、私この人のこと嫌い。デリカシーないし、エッチも下手そう」「エッチが下手そうなのはなんとなく分かるかも」「まぁまぁ、三人で仲良くやろうよ」「あなたが言わないで」「モモ」「だって！」&lt;/p&gt;
&lt;p&gt;水を差されて怒ったモモが、私から身を乗り出してサクラを睨みつけるのを宥めているうちに、隣駅のアナウンスが流れて電車が止まる。&lt;/p&gt;
&lt;p&gt;「次は、新鷹砂台、新鷹砂台」&lt;/p&gt;
&lt;p&gt;私たち以外誰もいなかった車両に、ちらほらと都心に向かう乗客が乗り込んでいく。それは、私たちが少なくとも今はあの団地から逃げ切れたことを意味していた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;たのしい手書きあとがきコーナーより:&lt;br&gt;
&lt;img alt="手書き文字で「楽しくノベライズさせていただきました。ゲーム版の一周目は、電車まで大事に持っていたリュックが爆発してしまうそうです。」と、右下にかたぎりあまねのサイン" height="750" src="/images/fortune-popcorn/afterwords.png" width="1500"&gt;&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:qpia"&gt;
&lt;p&gt;好みのパーツを組み合わせて検索できるモンタージュスタイルで気軽なデートのマッチングを指向した、いわゆる &lt;em&gt;ヤれる&lt;/em&gt; アプリである。Qの中に♡を配置したローズピンクに白文字のロゴで、Q'piaと綴る。&amp;#160;&lt;a class="footnote-backref" href="#fnref:qpia" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:traca"&gt;
&lt;p&gt;都民カードと紐付いた非接触の乗車券で、個人情報の利用方法についてしばしば問題になっている。&amp;#160;&lt;a class="footnote-backref" href="#fnref:traca" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:OHEYAlbum"&gt;
&lt;p&gt;自分の部屋を撮影してインテリアを紹介できる「キラキラ系SNS」としてリリースされたが、最近はVR空間のスクリーンショットを投稿するカテゴリが新設されて人気を集めている。&amp;#160;&lt;a class="footnote-backref" href="#fnref:OHEYAlbum" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:black"&gt;
&lt;p&gt;黒い紙で巻かれた見た目が特徴的な外国たばこ。一箱に十本しか入っておらず、通常のタバコ箱よりも縦に長い。&amp;#160;&lt;a class="footnote-backref" href="#fnref:black" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:maxheight"&gt;
&lt;p&gt;編注・建築基準法と消防法の制限があるため、実際は四十五メートルだったと思われる。&amp;#160;&lt;a class="footnote-backref" href="#fnref:maxheight" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:inf-match"&gt;
&lt;p&gt;金属製の小さな棒の先に黒い発火装置が付いており、ロックを握りながらざらざらの面に擦って火を出す。燃焼時間は短いものの、マッチ自体は燃えないのでほとんど無限に使える。&amp;#160;&lt;a class="footnote-backref" href="#fnref:inf-match" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:stand"&gt;
&lt;p&gt;編注・いわゆる駅弁のことと思われる。&amp;#160;&lt;a class="footnote-backref" href="#fnref:stand" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>2021/06/01～2021/07/01</title><link href="https://ama.ne.jp/post/report-20210701/" rel="alternate"/><published>2021-07-01T18:58:00+09:00</published><updated>2021-07-01T18:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-07-01:/post/report-20210701/</id><summary type="html">&lt;p&gt;2021/06/01～2021/07/01のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_4"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;かいている&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;小説記事について、縦書き表示に切り替える機能を追加しました。（例: &lt;a href="/post/seisai/"&gt;正妻と正妻に挟まれた私のお話！&lt;/a&gt;）&lt;ul&gt;
&lt;li&gt;エディタで縦書きプレビューを表示するモチベはなかったけど、サイトはビューアだしなと思って実装してみました。&lt;/li&gt;
&lt;li&gt;実験中の機能のため、手触りや改善点について&lt;a href="/comment/new/"&gt;コメント&lt;/a&gt;から教えてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;「toggle color scheme」ボタンについて、アクセシビリティを向上しました。&lt;ul&gt;
&lt;li&gt;マウスが使えなくても、Tabキーやスペースキーでカラーテーマを切り替えられます。&lt;/li&gt;
&lt;li&gt;ボタン選択時に輪郭線を付けることで、選択状態を分かりやすくしました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;なんとなくミラーサイトをいくつかつくりました。詳しくは&lt;a href="/link/"&gt;リンク&lt;/a&gt;をご覧ください。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fastly.com/blog/summary-of-june-8-outage"&gt;6/8のFastlyサービス障害&lt;/a&gt;を踏まえて、ホスティングサービスに障害が発生した際にスイッチオーバーできる手順を整えました。&lt;/li&gt;
&lt;li&gt;Netlify DNSに障害が起きていない前提で、Firebase&lt;sup id="fnref:fastly"&gt;&lt;a class="footnote-ref" href="#fn:fastly" title="背後にいるのはFastlyです。"&gt;1&lt;/a&gt;&lt;/sup&gt;、Netlify、自宅サーバのいずれかが生き残っていれば切り替えが可能です。&lt;/li&gt;
&lt;li&gt;フェイルオーバーを実装したり、トラフィックに応じて日常的に切り替えを行う計画があります。&lt;/li&gt;
&lt;li&gt;ホスティングサービスの契約終了やドメイン（ama.ne.jp）の廃止などに備える意図もあります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;サイト全体のアーカイブをダウンロードできるようにしました。詳しくは&lt;a href="/link/"&gt;リンク&lt;/a&gt;をご覧ください。&lt;ul&gt;
&lt;li&gt;ダウンロードして展開するだけで、非公式のミラーサイトをオープンできます！&lt;/li&gt;
&lt;li&gt;アーカイブの安定性確保のために、RSSやサイトマップなどの一部のファイルは含まれていません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;自宅サーバのメンテナンス時にメッセージを表示するようにしました。&lt;ul&gt;
&lt;li&gt;今のところ、2ヶ月に1回のペースでメンテナンスを行う予定です。&lt;/li&gt;
&lt;li&gt;メンテナンス中は&lt;a href="https://status.amane.moe/"&gt;障害情報 - あまねけ！&lt;/a&gt;でサービスの稼働状況をご確認ください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Microdataを用いて、メンテナンス告知や記事などの一部のコンテンツにメタデータを付加しました。&lt;ul&gt;
&lt;li&gt;Google検索などで検索結果がリッチに表示されたら嬉しいなと思っていますが、まだ反映されていないみたいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_3"&gt;かいた&lt;/h2&gt;
&lt;h3 id="_4"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/deterministic-zip/"&gt;deterministicなZIPファイルをつくる&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;前述のサイト全体のアーカイブを生成する際に、調査・実験したことについてまとめた記事です。&lt;/li&gt;
&lt;li&gt;なんとなく&lt;a href="https://zenn.dev/amane/articles/fc454d5e471ffc"&gt;Zennに転載してみました&lt;/a&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/peaceful-virtual-sex/"&gt;バーチャルセックスでは暴力が存在しないって本当ですか？&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;時事ネタはあんまりやらないんですが、自由で安全なVRセックス元年！に対する素朴な危機感を書きました。&lt;/li&gt;
&lt;li&gt;この月報を書き始める少し前に別のVRバンザイ記事が出ていて、時事ネタらしい体験ができた気がします。&lt;/li&gt;
&lt;li&gt;VRって買い切りのサロンみたいなもんなのかなぁ、と最近は思っています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_5"&gt;かいている&lt;/h2&gt;
&lt;p&gt;書きたい気持ちと構想と少しの本文があるが、あらゆることをしていて進んでいない。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;後輩の性処理をする先輩のエンタメっぽいお話&lt;/li&gt;
&lt;li&gt;雑にドライブして星を見に行く話&lt;/li&gt;
&lt;li&gt;海で石を拾いに行く話&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:fastly"&gt;
&lt;p&gt;背後にいるのはFastlyです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:fastly" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="report"/></entry><entry><title>バーチャルセックスでは暴力が存在しないって本当ですか？</title><link href="https://ama.ne.jp/post/peaceful-virtual-sex/" rel="alternate"/><published>2021-06-08T20:06:00+09:00</published><updated>2021-06-08T20:06:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-06-08:/post/peaceful-virtual-sex/</id><summary type="html">&lt;p&gt;暴力排除平和空間&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://nlab.itmedia.co.jp/nl/articles/2105/31/news141.html"&gt;「バーチャルセックス」体験したらすごかったし人類を滅ぼしかねないと思った話&lt;/a&gt;という記事を読み、いくつか感想をツイートしたところ、著者であるバーチャル美少女の&lt;a href="https://twitter.com/nemchan_nel"&gt;ねむ&lt;/a&gt;氏から直接&lt;a href="https://twitter.com/nemchan_nel/status/1401791876672286721"&gt;リプライ&lt;/a&gt;をいただいたので、気付いたことをまとめておく。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;なお、筆者はVR空間の可能性を否定したり、現実でもバーチャルでもセックスに暴力を持ち込みたいと考えているわけではない。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;記事の概要&lt;/h2&gt;
&lt;p&gt;記事としては、ねむ氏のバーチャルセックス体験と、バーチャルセックスに関する考察を述べており、2021年は「バーチャルセックス元年」となるだろうという展望を述べて締めくくっている。&lt;/p&gt;
&lt;p&gt;まず、VR風俗&lt;a href="https://x-oasis.com/"&gt;X-Oasis&lt;/a&gt;+動画配信サイト&lt;a href="https://live.fc2.com/"&gt;FC2ライブ&lt;/a&gt;でバーチャルAV女優の&lt;a href="https://twitter.com/vxtuberkarin"&gt;Karin&lt;/a&gt;氏がねむ氏にサービスを行う様子を公開生配信したことと、それに伴う衝撃的な体験の様子を述べている。さらに、&lt;a href="https://twitter.com/himeno_anri"&gt;姫乃あんり&lt;/a&gt;氏、バ美肉風俗嬢の&lt;a href="https://twitter.com/feath_yugioh"&gt;feath&lt;/a&gt;氏とも同様にバーチャルセックスの公開生配信を行ったことを紹介している。&lt;/p&gt;
&lt;p&gt;これらの体験により、ねむ氏は次のようなバーチャルセックスに関する考察を得たという。その考察によれば、バーチャルセックスのメリットは、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;遠く離れた相手と行為に及べること&lt;br&gt;
自分と相手の現実の性別の制約から開放されること&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;であり、さらに、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;妊娠・感染・暴力の三大リスクが排除されます。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;とも述べている。デメリットとしては、VRデバイスの所有が必要だとか、VR感覚の適性を求められるということが挙げられているが、これはあまり本質的なデメリットには見えない。技術の進歩とコモディティ化で徐々に解決されていくだろう。&lt;/p&gt;
&lt;h2 id="_2"&gt;「暴力が排除される」とは？&lt;/h2&gt;
&lt;p&gt;先の記事では、バーチャルセックスは、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;妊娠・感染・暴力の三大リスクが排除されます。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;というメリットがあると述べられている。裏を返すと、現実でのセックスではこれらのリスクが残っているということだ。確かに、妊娠や性感染症は男性用コンドームなどである程度リスクを低減できるものの、装着ミスや相手の不協力によって比較的簡単に破られうる。バーチャルセックスはお互い &lt;em&gt;その場にいない&lt;/em&gt; から、物理的に精子が流れ込んだり、細菌やウイルスが付着することもない。&lt;/p&gt;
&lt;p&gt;しかし、暴力が排除されるとはどういう意味だろうか？　これについて、ねむ氏から以下のような言及を受けた。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「バーチャルセックスでは暴力が存在しない」がよく分からない。バーチャルセックスできるようなつがいはリアルでも暴力なくセックスできるんじゃないの？　セックスに暴力を持ち込む人間からセックスを取り上げる取り組みってことなのかしら。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401769731112148994"&gt;1401769731112148994&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;@amane_katagiri 結婚しているリアルカップルでもDVが問題になっているくらいなので、そんなことはないかなと思います。とはいえ、バーチャルセックスでも言葉や権力による暴力は排除できませんね。 &lt;a href="https://news.yahoo.co.jp/byline/itokazuko/20120925-00021817/"&gt;https://news.yahoo.co.jp/byline/itokazuko/20120925-00021817/&lt;/a&gt;&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/nemchan_nel/status/1401791876672286721"&gt;1401791876672286721&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;なるほど、「言葉や権力による暴力は排除でき」ないというのは正しそうだ。しかし、私が言いたかったのはもっと別のところにある。&lt;/p&gt;
&lt;p&gt;バーチャルセックスから暴力が排除されている、というのはどういうことか。技術的には、妊娠や性感染症と同じく、 &lt;em&gt;その場にいない&lt;/em&gt; おかげで物理的な破壊力を行使できないということだろう。私はVRにはあまり詳しくないけれど、物理的な破壊力を伝達できるVRデバイスを見たことはまだない。&lt;/p&gt;
&lt;p&gt;しかし、技術の進歩によって物理的な破壊力を行使できるようになるかもしれない&lt;sup id="fnref:attack"&gt;&lt;a class="footnote-ref" href="#fn:attack" title="物理的な打撃を加えるデバイスを装着したり、脳に直接痛みを与える信号を送るなどして。"&gt;1&lt;/a&gt;&lt;/sup&gt;。そうしてVR空間に暴力を持ち込めるようになったとしたら、それはもはや、ねむ氏のいう &lt;em&gt;バーチャルセックス&lt;/em&gt; ではなくなるのだろうか？　暴力がないことは、バーチャルセックスをバーチャルセックスたらしめている特徴だろうか？&lt;/p&gt;
&lt;p&gt;それはあまりに一面的すぎる解釈に思える。VR空間は単に暴力を排除するためではなく、物理的・空間的・距離的な問題、そして肉体的な問題を緩和するために作られているはずだ。&lt;/p&gt;
&lt;p&gt;では、ねむ氏の述べる「バーチャルセックスでは暴力が排除される」とはどういう意味なのか？　いくつか考えられる。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;技術が未発達だから、バーチャルセックス上で物理的な暴力は実現 &lt;strong&gt;できない&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;倫理に反するから、バーチャルセックス上で暴力は実現できないようにデザイン &lt;strong&gt;するべき&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;私は、バーチャルセックス上で暴力を振るう人を &lt;strong&gt;見たことがない&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1の意味であれば、技術の進歩によって「バーチャルセックスでは暴力が排除される」とは言いがたくなり、最終的には現実のDVやレイプのような問題として語られるようになるだろう。&lt;/p&gt;
&lt;p&gt;2の意味であれば、バーチャルセックスを行うVR空間というのは、いわゆる排除アートのように特定の行為を実現できないように作られた世界だといえる。もちろん、セックスに暴力を持ち込みたくない/持ち込まれたくない人にとっては、これは平和で理想的な空間だろう。&lt;/p&gt;
&lt;p&gt;どちらにせよ、現状のバーチャルセックスでは、暴力を振るいたい人はその衝動を抑えつつコミュニケーションする必要があり、ねむ氏がバーチャルセックスのメリットとして述べている内容はメリットたりえない。となれば、そもそもセックスに暴力を持ち込みたい人はこのような場に集まらないだろう。そのような人たちにとっては、&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;肉体という余計なフィルターを通さず、アバターという魂の姿で触れ合う行為は、ある意味ではリアルな行為よりも「えっち」だと感じました。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;というねむ氏の体験とは正反対の、腕を出せない半透明のベールに包まれたとでもいうべき不完全な体験となるはずだ。これをもって「バーチャルセックスでは暴力が排除される」と述べているとすれば（これが3の意味である）、バーチャルセックスは限られた人のためのものなのだと考えざるをえない。&lt;/p&gt;
&lt;p&gt;暴力がないのはいいことだから、システムから見えないように排除してしまった方がいい？　そうかもしれない。では、小児性愛者は消えるべき？　3Pって倫理的なんですか？　そのような判断の繰り返しから形作られた場は、私の素朴な感性からいえば、むしろ記事冒頭で述べられているような「抑圧の象徴」に見えてならない。&lt;/p&gt;
&lt;h2 id="_3"&gt;おまけ: 気付き一覧&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;避妊セックスでは生殖と性行為を分離したことにならないの……？&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401769000749592578"&gt;1401769000749592578&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;「バーチャルセックスでは暴力が存在しない」がよく分からない。バーチャルセックスできるようなつがいはリアルでも暴力なくセックスできるんじゃないの？　セックスに暴力を持ち込む人間からセックスを取り上げる取り組みってことなのかしら。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401769731112148994"&gt;1401769731112148994&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;「バーチャルセックスならセックスをオープンにできます」と「避妊と性感染症予防をすればセックスをオープンにできます」は、ほとんど同じことを言っていると思うけど、まぁVRは肉体を捨てられてえらいのでそこが違うのかもしれない&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401771575951585282"&gt;1401771575951585282&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;&amp;gt; 極端な話、もはやバーチャルセックスは「嫌らしくない」「はしたなくない」「秘め事ではない」という考え方もできるかもしれません。そうなるとセックスは一般的な自己表現手段の1つとなり、例えば一般人でも情事の共有や公開が一般的になるかもしれません。&lt;br&gt;
これかなり嘘っぽい&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401771894924136451"&gt;1401771894924136451&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;「リスクがなくなったんであなたの情事は恥ずかしくないっすよ！」ってかなり無茶なこと言ってる気がする&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401772716605132801"&gt;1401772716605132801&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;例えば、セックスに暴力を持ち込むのが好きな人のために頑張ってバーチャルセックス上で暴力（物理的な打撃を加えるのか脳に直接信号を送るのかは分からないけど）を実現したとすると、もう「バーチャルセックスに暴力は存在しない」とは言えなくなるよね&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401847793258418178"&gt;1401847793258418178&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;「バーチャルセックス上で暴力は実現できない（技術が未発達だから）」「バーチャルセックス上で暴力は実現できない（倫理に反するから）」「バーチャルセックス上で暴力を振るう人を見たことがない」は全部違うよね&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401848288337301505"&gt;1401848288337301505&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;倫理に反することを実現できないように作られた世界って、排除アートみたいなもんでいろいろ考えたくなるところがある&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401848591522488325"&gt;1401848591522488325&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;バーチャルセックスでは、暴力を振るいたい人でさえも「肉体という余計なフィルターを通さ」ずにコミュニケーションすることになるわけだけど、現状はそれがメリットにはならないよね&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401850174331187206"&gt;1401850174331187206&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;で、それがバーチャルセックスをバーチャルセックスたらしめている特徴なんですか、と&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401850215888408583"&gt;1401850215888408583&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;まぁ妊娠や性感染症を防げるのはほとんどの場合メリットでしょう、そこは分かる&lt;br&gt;
&lt;cite&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1401850601214865411"&gt;1401850601214865411&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:attack"&gt;
&lt;p&gt;物理的な打撃を加えるデバイスを装着したり、脳に直接痛みを与える信号を送るなどして。&amp;#160;&lt;a class="footnote-backref" href="#fnref:attack" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>deterministicなZIPファイルをつくる</title><link href="https://ama.ne.jp/post/deterministic-zip/" rel="alternate"/><published>2021-06-03T19:32:00+09:00</published><updated>2021-06-03T19:32:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-06-03:/post/deterministic-zip/</id><summary type="html">&lt;p&gt;非公式ミラーサイトのために&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#zip"&gt;ZIPファイルの構造&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nondeterministiczip"&gt;nondeterministicなZIPファイル&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;ファイルの内容が異なる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;ファイルの属性が異なる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;ファイルの格納順が異なる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;今日から使えるスクリプト&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;今日から使えるライブラリ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;故障かな？と思ったら……&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#sort"&gt;sortの動作に差がありませんか？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;既存のアーカイブに対してファイルを追加・更新・削除していませんか？&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;先日、なんとなく&lt;a href="/"&gt;あまねけ！&lt;/a&gt;の&lt;a href="/link/"&gt;ミラーサイト&lt;/a&gt;を作りました&lt;sup id="fnref:canonical"&gt;&lt;a class="footnote-ref" href="#fn:canonical" title="リンクがばらけないようにcanonical属性でhttps://ama.ne.jp/...に集約しています。"&gt;1&lt;/a&gt;&lt;/sup&gt;。さらに、なんとなくサイトのアーカイブも配布してしまおうと思い、各サイトからZIPファイルをダウンロードできるようにしました。&lt;/p&gt;
&lt;p&gt;このアーカイブからミラーサイトを生成するというユースケースを考え、これらのZIPファイルのSHA256ハッシュを配置することで、アーカイブの更新を検知できるようにしています。しかし、配置されたハッシュを確認したところ、各CIで生成されるZIPファイルが環境ごと、あるいは同CIでの実行ごとに変化していることに気付きました。&lt;/p&gt;
&lt;p&gt;ZIPファイルは生成時に意識すべきフォーマット上の特性が多く、ZIPファイル生成がnondeterministicになってしまうという投稿&lt;sup id="fnref:ndzipa"&gt;&lt;a class="footnote-ref" href="#fn:ndzipa" title="bash - zip non-deterministic result in linux - Stack Overflow"&gt;2&lt;/a&gt;&lt;/sup&gt; &lt;sup id="fnref:ndzipb"&gt;&lt;a class="footnote-ref" href="#fn:ndzipb" title="php - Zip files contain same files but have different hashes? - Stack Overflow"&gt;3&lt;/a&gt;&lt;/sup&gt;や、deterministicなZIPファイルを得るためのテクニックに関する投稿&lt;sup id="fnref:ndzip1"&gt;&lt;a class="footnote-ref" href="#fn:ndzip1" title="内容物が同一なのにハッシュ値の異なる ZIP ファイルが出来ないようにするには（あるいは、AWS Lambda へ同一コードを update することを防ぐには） - Qiita"&gt;4&lt;/a&gt;&lt;/sup&gt; &lt;sup id="fnref:ndzip2"&gt;&lt;a class="footnote-ref" href="#fn:ndzip2" title="Building Deterministic Zip Files with Built-In Commands | by Pat Wilson | Medium"&gt;5&lt;/a&gt;&lt;/sup&gt;をいくつか見つけることができました。&lt;/p&gt;
&lt;p&gt;そして、以下の点に注意すれば、ほとんどの環境で同じバイナリのZIPファイルを生成できることが分かりました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;タイムスタンプを揃える&lt;/li&gt;
&lt;li&gt;拡張フィールドを捨てる&lt;/li&gt;
&lt;li&gt;格納順を揃える&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これらの特性を意識して、同じファイル群に対してdeterministicなZIPファイルを生成できるスクリプト&lt;a href="https://gist.github.com/amane-katagiri/66a8ef1770103f878f9b09e4415a2a37"&gt;deterministic-zip.sh&lt;/a&gt;を作成しました。&lt;/p&gt;
&lt;p&gt;以下、詳細です。&lt;/p&gt;
&lt;h2 id="zip"&gt;ZIPファイルの構造&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/ZIP_(%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88)#%E6%A7%8B%E9%80%A0"&gt;ZIP (ファイルフォーマット) - Wikipedia&lt;/a&gt;によれば、ZIPファイルは以下のような構造でファイルおよびメタデータを格納しています。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ファイルエントリ: ファイルの実体とメタデータ（エントリごとに繰り返し）&lt;ol&gt;
&lt;li&gt;ローカルファイルヘッダ&lt;/li&gt;
&lt;li&gt;ファイルデータ&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;セントラルディレクトリエントリ: ファイルエントリの位置とメタデータ（エントリごとに繰り返し）&lt;/li&gt;
&lt;li&gt;セントラルディレクトリ終端レコード: セントラルディレクトリの位置とメタデータ&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="nondeterministiczip"&gt;nondeterministicなZIPファイル&lt;/h2&gt;
&lt;p&gt;ZIPファイル生成においてdeterministicであるとは、異なる環境や異なる実行時刻で同じファイル群に対して何度ZIPファイルを生成しても、それらがバイナリとして等しくなることを指しています。この記事では、SHA-256ハッシュが等しければdeterministicだとみなすことにしましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
sha256sum&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;2c8bb67800202dc213f0fad5d7604c1a930a270937e880e2c3fab17e185d3cb8  ./archive1.zip
2c8bb67800202dc213f0fad5d7604c1a930a270937e880e2c3fab17e185d3cb8  ./archive2.zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;同じファイル群から異なるバイナリ――nondeterministicなZIPファイルが生成される原因としては、以下のようなものが考えられます。&lt;/p&gt;
&lt;h3 id="_2"&gt;ファイルの内容が異なる&lt;/h3&gt;
&lt;p&gt;ファイル名に実行時刻を含んでいたり、毎回異なるランダムなトークンを含むファイル群に対しては、当然ですが常に異なるZIPファイルが生成されます。これは、deterministicかどうかの議論以前に、そもそも想定通りの動作といえます。&lt;/p&gt;
&lt;h3 id="_3"&gt;ファイルの属性が異なる&lt;/h3&gt;
&lt;p&gt;ファイルエントリやセントラルディレクトリエントリに書き込まれるメタデータのうち、ZIPファイルの生成時に注意しなければならない属性は以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;タイムスタンプ&lt;/li&gt;
&lt;li&gt;パーミッション&lt;/li&gt;
&lt;li&gt;拡張フィールド&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ファイルの内容が同じでも、これらの属性に差があれば異なるZIPファイルが生成されます。&lt;/p&gt;
&lt;p&gt;このうち、拡張フィールドはzipコマンドの &lt;code&gt;-X&lt;/code&gt; オプションによって設定を省略できます。しかし、タイムスタンプは拡張フィールドではないため、常にファイルの日時で設定されます。タイムスタンプを無視する必要がある場合は、touchコマンドなどで揃えておく必要があります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c1"&gt;# タイムスタンプを 1980-01-01 00:00 に揃える&lt;/span&gt;
&lt;span class="c1"&gt;# （ZIPのタイムスタンプは1980-01-01 00:00から始まる）&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;./target_dir&lt;span class="w"&gt; &lt;/span&gt;-exec&lt;span class="w"&gt; &lt;/span&gt;touch&lt;span class="w"&gt; &lt;/span&gt;-t&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;198001010000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;+

&lt;span class="c1"&gt;# 拡張フィールドを捨ててアーカイブする&lt;/span&gt;
zip&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;archive.zip&lt;span class="w"&gt; &lt;/span&gt;./target_dir
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;タイムスタンプやパーミッションを忠実に再現する必要がある場合は、これらの属性が等しい限りにおいてdeterministicなZIPファイルが生成することができます。&lt;/p&gt;
&lt;h3 id="_4"&gt;ファイルの格納順が異なる&lt;/h3&gt;
&lt;p&gt;ZIPファイルの中で格納する場所が明確に決まっているのは、セントラルディレクトリ終端レコードのみです。ファイルエントリは、セントラルディレクトリエントリの前ならどのような順番で格納してもかまいません。すなわち &lt;code&gt;zip -r&lt;/code&gt; などのコマンドによって格納順が変わる可能性があります。&lt;/p&gt;
&lt;p&gt;格納順を厳密に定義する必要があれば、zipコマンドの &lt;code&gt;-@&lt;/code&gt; オプションによってファイルリストを渡せます&lt;sup id="fnref:filelist"&gt;&lt;a class="footnote-ref" href="#fn:filelist" title="zip(1): package/compress files - Linux man page"&gt;6&lt;/a&gt;&lt;/sup&gt;。これにより、ファイルリストの上から順に格納されることを &lt;em&gt;期待&lt;/em&gt; できます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c1"&gt;# 格納順を揃えてアーカイブする&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;./target_dir&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;C&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-@&lt;span class="w"&gt; &lt;/span&gt;archive.zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;また、セントラルディレクトリエントリはファイルエントリと同じ順番で並んでいる必要はありません&lt;sup id="fnref:central"&gt;&lt;a class="footnote-ref" href="#fn:central" title="新しいZIPファイルを生成している限りは、セントラルディレクトリエントリとファイルエントリが同じ順番で格納されていることを 期待 できますが、もちろん最終的には実装によって決まります。"&gt;7&lt;/a&gt;&lt;/sup&gt;。ファイルエントリの順番が同じでも、セントラルディレクトリエントリの順番が異なれば、生成されるZIPファイルは変化します。&lt;/p&gt;
&lt;h3 id="_5"&gt;その他&lt;/h3&gt;
&lt;p&gt;セントラルディレクトリエントリやセントラルディレクトリ終端レコードでは、ファイルやアーカイブ全体に対するコメントを埋め込めるため、これらに差があれば異なるZIPファイルといえます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;mktemp&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;./output/
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;111&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane_1.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;222&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane_2.txt
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-exec&lt;span class="w"&gt; &lt;/span&gt;touch&lt;span class="w"&gt; &lt;/span&gt;-t&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;198001010000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;+

&lt;span class="c1"&gt;# archive1.zip&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;C&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-@&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip

&lt;span class="c1"&gt;# archive2.zip&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;C&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-@&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;comment.&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-z&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip

&lt;span class="c1"&gt;# comparison&lt;/span&gt;
sha256sum&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip
diff&lt;span class="w"&gt; &lt;/span&gt;-up&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;zipinfo&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;zipinfo&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;a3f71de17bbb6841b2e148c2587e768567521ec7219f27073262dd745be03046  ./archive1.zip
70c6b9c3d540eec1c1b358ce10d3cf318214ee59342742575fa7169e2a7acd5f  ./archive2.zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gd"&gt;--- /dev/fd/63  2021-06-03 11:17:02.820000000 +0900&lt;/span&gt;
&lt;span class="gi"&gt;+++ /dev/fd/62  2021-06-03 11:17:02.820000000 +0900&lt;/span&gt;
&lt;span class="gu"&gt;@@ -1,5 +1,5 @@&lt;/span&gt;
&lt;span class="gd"&gt;-Archive:  ./archive1.zip&lt;/span&gt;
&lt;span class="gd"&gt;-Zip file size: 344 bytes, number of entries: 3&lt;/span&gt;
&lt;span class="gi"&gt;+Archive:  ./archive2.zip&lt;/span&gt;
&lt;span class="gi"&gt;+Zip file size: 352 bytes, number of entries: 3&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;drwxr-xr-x  3.0 unx        0 b- stor 80-Jan-01 00:00 output/
&lt;span class="w"&gt; &lt;/span&gt;-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane_1.txt
&lt;span class="w"&gt; &lt;/span&gt;-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane_2.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_6"&gt;今日から使えるスクリプト&lt;/h2&gt;
&lt;p&gt;以下のようなスクリプトを用いると、ここまで述べた特性を意識した方法でアーカイブを生成できます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/sh&lt;/span&gt;

&lt;span class="nv"&gt;ARCHIVE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

find&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$TARGET&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-exec&lt;span class="w"&gt; &lt;/span&gt;touch&lt;span class="w"&gt; &lt;/span&gt;-t&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;198001010000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;+
find&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$TARGET&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;C&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-@&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$ARCHIVE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/amane-katagiri/66a8ef1770103f878f9b09e4415a2a37"&gt;deterministic-zip.sh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以下のように使用すると、どの環境でも &lt;code&gt;ba81afb46018e2b69210ce7fd2409c53540f0df8a0c8c03a82b73850b62af40c&lt;/code&gt; というSHA256ハッシュのZIPファイルが生成されるはずです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;mktemp&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;./output/
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;111&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane_1.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;222&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane_2.txt

./deterministic-zip.sh&lt;span class="w"&gt; &lt;/span&gt;./archive.zip&lt;span class="w"&gt; &lt;/span&gt;./output
sha256sum&lt;span class="w"&gt; &lt;/span&gt;archive.zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;このスクリプトは、zipコマンドがファイルリストと異なる順番でファイルエントリを格納したり、セントラルディレクトリエントリとファイルエントリを異なる順番で格納したりする場合には正しく動作しません。&lt;/p&gt;
&lt;p&gt;また、スクリプト内の各コマンドの挙動によっては正しく動作しない可能性があります（後述）。ただし、こちらはzipinfoコマンドで差分を検出できます。&lt;/p&gt;
&lt;p&gt;現在、あまねけ！の各ミラーサイトで配布されているZIPファイル（約26MB）はこのコマンドで生成されています。ただし、&lt;a href="https://vercel.com/"&gt;Vercel&lt;/a&gt;はデプロイ用のコンテナにzipコマンドがなく、&lt;a href="https://pages.cloudflare.com/"&gt;Cloudflare Pages&lt;/a&gt;は25MB以上のファイルを配信できない&lt;sup id="fnref:25mb"&gt;&lt;a class="footnote-ref" href="#fn:25mb" title="Limits · Cloudflare Pages docs"&gt;8&lt;/a&gt;&lt;/sup&gt;ので、これらのサイトには配置していません。&lt;/p&gt;
&lt;p&gt;以下から、2つのサイトで配布されているZIPファイルのハッシュ値が等しいことを確認できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ミラー1&lt;sup id="fnref:mirror1"&gt;&lt;a class="footnote-ref" href="#fn:mirror1" title="現在のオリジナルサイトです。"&gt;9&lt;/a&gt;&lt;/sup&gt;: &lt;a href="https://ama.ne.jp/appendices/archive/amanejp.zip.sha256sum.txt"&gt;ama.ne.jp/...sha256sum.txt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ミラー2: &lt;a href="https://amanejp.netlify.app/appendices/archive/amanejp.zip.sha256sum.txt"&gt;amanejp.netlify.app/...sha256sum.txt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_7"&gt;今日から使えるライブラリ&lt;/h2&gt;
&lt;p&gt;同様の操作を行うライブラリが各言語で実装されているようです。用途によってはこちらの方が使いやすいかもしれません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://crates.io/crates/deterministic-zip"&gt;deterministic-zip - crates.io: Rust Package Registry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pypi.org/project/deterministic-zip/"&gt;deterministic-zip · PyPI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/deterministic-zip"&gt;deterministic-zip - npm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://www.npmjs.com/package/deterministic-zip"&gt;deterministic-zip - npm&lt;/a&gt;は自前でZIPファイルの生成処理を行っており、腕力を感じます。残りの2つはZIPファイルの生成処理を別のライブラリに委譲しており、ファイルエントリやセントラルディレクトリエントリの順番に関して、今回作ったスクリプトと同じ &lt;em&gt;期待&lt;/em&gt; をしているようです。&lt;/p&gt;
&lt;h2 id="_8"&gt;故障かな？と思ったら……&lt;/h2&gt;
&lt;p&gt;よく気を付けてZIPファイルを生成しても、異なるバイナリが生成されてしまう場合があります。その場合は、zipinfoの結果を比較して、ファイルの格納順と属性に差がないか確認しましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
diff&lt;span class="w"&gt; &lt;/span&gt;-up&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;zipinfo&lt;span class="w"&gt; &lt;/span&gt;archive1.zip&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;zipinfo&lt;span class="w"&gt; &lt;/span&gt;archive2.zip&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;結果をソートしてから比較しては &lt;strong&gt;いけません&lt;/strong&gt;。同じファイルが異なる順で出力される場合は、ファイルの格納順が異なっています。&lt;/p&gt;
&lt;p&gt;zipinfoの結果に差がなければ、実際に展開して差分を見てみましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
unzip&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;archive1&lt;span class="w"&gt; &lt;/span&gt;archive1.zip
unzip&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;archive2&lt;span class="w"&gt; &lt;/span&gt;archive2.zip
diff&lt;span class="w"&gt; &lt;/span&gt;-upr&lt;span class="w"&gt; &lt;/span&gt;archive1&lt;span class="w"&gt; &lt;/span&gt;archive2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;これらにも差がなければ、ぜひコメントから教えてください。&lt;/p&gt;
&lt;h3 id="sort"&gt;sortの動作に差がありませんか？&lt;/h3&gt;
&lt;p&gt;GNU coreutilsのsortは、&lt;code&gt;LC_ALL=C&lt;/code&gt; の下では各入力を1バイトずつ比較します&lt;sup id="fnref:ascii"&gt;&lt;a class="footnote-ref" href="#fn:ascii" title="sort(1): sort lines of text files - Linux man pageを参照。ASCIIの文字コードは、..., -, ., /, 0, 1, 2, _, ...という順に並んでいます。"&gt;10&lt;/a&gt;&lt;/sup&gt;。sortの実装が異なっていたり、ロケールの指定が誤っているなどの原因によって比較順に差があれば、常に異なるZIPファイルができあがります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;mktemp&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;./output/amane
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;aaa&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane/amane.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;bbb&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;000&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane0.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;111&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane_1.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;222&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane_2.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;333&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane-3.txt
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-exec&lt;span class="w"&gt; &lt;/span&gt;touch&lt;span class="w"&gt; &lt;/span&gt;-t&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;198001010000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;+

&lt;span class="c1"&gt;# archive1.zip with LC_ALL=C&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;C&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-@&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip

&lt;span class="c1"&gt;# archive2.zip with LC_ALL=en_US.UTF-8&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-@&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip

&lt;span class="c1"&gt;# comparison&lt;/span&gt;
sha256sum&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip
diff&lt;span class="w"&gt; &lt;/span&gt;-up&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;zipinfo&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;zipinfo&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;f3c6aa100250a1d5011fe87fc764fd41f808465f2f2f33d0e4b8724ff94f1664  ./archive1.zip
ffb0e28e26cd7f01441cdb87f8fa876571d1c2c7e4c68ef08b2db8a7e20aea11  ./archive2.zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gd"&gt;--- /dev/fd/63  2021-06-03 00:58:38.240000000 +0900&lt;/span&gt;
&lt;span class="gi"&gt;+++ /dev/fd/62  2021-06-03 00:58:38.240000000 +0900&lt;/span&gt;
&lt;span class="gu"&gt;@@ -1,11 +1,11 @@&lt;/span&gt;
&lt;span class="gd"&gt;-Archive:  ./archive1.zip&lt;/span&gt;
&lt;span class="gi"&gt;+Archive:  ./archive2.zip&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;Zip file size: 912 bytes, number of entries: 8
&lt;span class="w"&gt; &lt;/span&gt;drwxr-xr-x  3.0 unx        0 b- stor 80-Jan-01 00:00 output/
&lt;span class="w"&gt; &lt;/span&gt;drwxr-xr-x  3.0 unx        0 b- stor 80-Jan-01 00:00 output/amane/
&lt;span class="gd"&gt;--rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane-3.txt&lt;/span&gt;
&lt;span class="gd"&gt;--rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane.txt&lt;/span&gt;
&lt;span class="gd"&gt;--rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane/amane.txt&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane0.txt
&lt;span class="w"&gt; &lt;/span&gt;-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane_1.txt
&lt;span class="w"&gt; &lt;/span&gt;-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane_2.txt
&lt;span class="gi"&gt;+-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane-3.txt&lt;/span&gt;
&lt;span class="gi"&gt;+-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane/amane.txt&lt;/span&gt;
&lt;span class="gi"&gt;+-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane.txt&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;8 files, 24 bytes uncompressed, 24 bytes compressed:  0.0%
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="_9"&gt;既存のアーカイブに対してファイルを追加・更新・削除していませんか？&lt;/h3&gt;
&lt;p&gt;既存のアーカイブに対して新たな格納順でファイル群を渡しても、格納順は変更されずに内容のみ更新される可能性があります。また、ファイルの削除時にセントラルディレクトリエントリのみ削除されたり、ファイルエントリとセントラルディレクトリエントリの格納順に差異ができれば最終的なZIPファイルは異なります。&lt;/p&gt;
&lt;p&gt;リソースの制限やシステム上の要請がなければ、常に &lt;em&gt;フレッシュな&lt;/em&gt; ZIPファイルを生成することを勧めます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;mktemp&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;./output/amane
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;aaa&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane/amane.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;bbb&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;000&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane0.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;111&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane_1.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;222&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane_2.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;333&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;./output/amane-3.txt
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-exec&lt;span class="w"&gt; &lt;/span&gt;touch&lt;span class="w"&gt; &lt;/span&gt;-t&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;198001010000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;+

&lt;span class="c1"&gt;# archive1.zip (create)&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;en_US.UTF-8&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-@&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip

&lt;span class="c1"&gt;# archive1.zip (update) and archive2.zip (create)&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;C&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-@&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip
find&lt;span class="w"&gt; &lt;/span&gt;./output&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\0&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LC_ALL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;C&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;zip&lt;span class="w"&gt; &lt;/span&gt;-@&lt;span class="w"&gt; &lt;/span&gt;-X&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip

&lt;span class="c1"&gt;# comparison&lt;/span&gt;
sha256sum&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip
diff&lt;span class="w"&gt; &lt;/span&gt;-up&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;zipinfo&lt;span class="w"&gt; &lt;/span&gt;./archive1.zip&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;zipinfo&lt;span class="w"&gt; &lt;/span&gt;./archive2.zip&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ffb0e28e26cd7f01441cdb87f8fa876571d1c2c7e4c68ef08b2db8a7e20aea11  ./archive1.zip
f3c6aa100250a1d5011fe87fc764fd41f808465f2f2f33d0e4b8724ff94f1664  ./archive2.zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gd"&gt;--- /dev/fd/63  2021-06-03 01:03:57.450000000 +0900&lt;/span&gt;
&lt;span class="gi"&gt;+++ /dev/fd/62  2021-06-03 01:03:57.450000000 +0900&lt;/span&gt;
&lt;span class="gu"&gt;@@ -1,11 +1,11 @@&lt;/span&gt;
&lt;span class="gd"&gt;-Archive:  ./archive1.zip&lt;/span&gt;
&lt;span class="gi"&gt;+Archive:  ./archive2.zip&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;Zip file size: 912 bytes, number of entries: 8
&lt;span class="w"&gt; &lt;/span&gt;drwxr-xr-x  3.0 unx        0 b- stor 80-Jan-01 00:00 output/
&lt;span class="w"&gt; &lt;/span&gt;drwxr-xr-x  3.0 unx        0 b- stor 80-Jan-01 00:00 output/amane/
&lt;span class="gi"&gt;+-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane-3.txt&lt;/span&gt;
&lt;span class="gi"&gt;+-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane.txt&lt;/span&gt;
&lt;span class="gi"&gt;+-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane/amane.txt&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane0.txt
&lt;span class="w"&gt; &lt;/span&gt;-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane_1.txt
&lt;span class="w"&gt; &lt;/span&gt;-rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane_2.txt
&lt;span class="gd"&gt;--rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane-3.txt&lt;/span&gt;
&lt;span class="gd"&gt;--rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane/amane.txt&lt;/span&gt;
&lt;span class="gd"&gt;--rw-r--r--  3.0 unx        4 t- stor 80-Jan-01 00:00 output/amane.txt&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;8 files, 24 bytes uncompressed, 24 bytes compressed:  0.0%
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_10"&gt;その他&lt;/h2&gt;
&lt;p&gt;以下のような特性を持つアーカイブは、いつでもnondeterministicなZIPファイルと似た現象が起こりえます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ファイルの格納順を自由に指定できる&lt;/li&gt;
&lt;li&gt;ファイル名やファイルの内容以外の属性も格納できる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例えば、&lt;a href="https://wicg.github.io/webpackage/draft-yasskin-wpack-bundled-exchanges.html"&gt;Web Bundles&lt;/a&gt;は複数のレスポンスをまとめて配信できるフォーマットであり、レスポンスヘッダや格納順などに注意する必要がありそうです。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:canonical"&gt;
&lt;p&gt;リンクがばらけないようにcanonical属性でhttps://ama.ne.jp/...に集約しています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:canonical" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ndzipa"&gt;
&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/62524167/zip-non-deterministic-result-in-linux"&gt;bash - zip non-deterministic result in linux - Stack Overflow&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:ndzipa" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ndzipb"&gt;
&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/11603615/zip-files-contain-same-files-but-have-different-hashes"&gt;php - Zip files contain same files but have different hashes? - Stack Overflow&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:ndzipb" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ndzip1"&gt;
&lt;p&gt;&lt;a href="https://qiita.com/knaka/items/c8673dfb4ed1b83d3585"&gt;内容物が同一なのにハッシュ値の異なる ZIP ファイルが出来ないようにするには（あるいは、AWS Lambda へ同一コードを update することを防ぐには） - Qiita&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:ndzip1" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ndzip2"&gt;
&lt;p&gt;&lt;a href="https://medium.com/@pat_wilson/building-deterministic-zip-files-with-built-in-commands-741275116a19"&gt;Building Deterministic Zip Files with Built-In Commands | by Pat Wilson | Medium&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:ndzip2" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:filelist"&gt;
&lt;p&gt;&lt;a href="https://linux.die.net/man/1/zip"&gt;zip(1): package/compress files - Linux man page&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:filelist" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:central"&gt;
&lt;p&gt;新しいZIPファイルを生成している限りは、セントラルディレクトリエントリとファイルエントリが同じ順番で格納されていることを &lt;em&gt;期待&lt;/em&gt; できますが、もちろん最終的には実装によって決まります。&amp;#160;&lt;a class="footnote-backref" href="#fnref:central" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:25mb"&gt;
&lt;p&gt;&lt;a href="https://developers.cloudflare.com/pages/platform/limits"&gt;Limits · Cloudflare Pages docs&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:25mb" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:mirror1"&gt;
&lt;p&gt;現在のオリジナルサイトです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:mirror1" title="Jump back to footnote 9 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ascii"&gt;
&lt;p&gt;&lt;a href="https://linux.die.net/man/1/sort"&gt;sort(1): sort lines of text files - Linux man page&lt;/a&gt;を参照。ASCIIの文字コードは、..., &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;.&lt;/code&gt;, &lt;code&gt;/&lt;/code&gt;, &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;_&lt;/code&gt;, ...という順に並んでいます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:ascii" title="Jump back to footnote 10 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>2021/05/11～2021/05/31</title><link href="https://ama.ne.jp/post/report-20210531/" rel="alternate"/><published>2021-05-31T19:48:00+09:00</published><updated>2021-05-31T19:48:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-05-31:/post/report-20210531/</id><summary type="html">&lt;p&gt;2021/05/11～2021/05/31のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;かいた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_5"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;かいている&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://whois.jprs.jp/?key=ama.ne.jp"&gt;ama.ne.jp&lt;/a&gt;のドメイン更新に合わせて、&lt;a href="/donation/"&gt;寄付&lt;/a&gt;ページでこれまでの寄付と経費の履歴を公開しました。&lt;ul&gt;
&lt;li&gt;いつも応援いただきありがとうございます。&lt;/li&gt;
&lt;li&gt;いただいた寄付はあらゆる活動に役立っていますが、「個人に収まる範囲」で「明確に金額が分かる」ものがドメインくらいだったので、とりあえず並べています。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。&lt;/a&gt;名義での活動については、合同誌の編集・発行など個人に収まらない範囲の活動も多いため、ここでは計上していません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/link/"&gt;リンク&lt;/a&gt;ページを追加しました。&lt;ul&gt;
&lt;li&gt;かたぎりあまねが提供・管理しているサイトやサービスを一覧にしています。&lt;/li&gt;
&lt;li&gt;すきなサイトやべんりなサービスもいくつか挙げました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;寄付ページで行と列が膨らんだので、tableのスタイル（行の色と列のスクロール）を更新しました。&lt;/li&gt;
&lt;li&gt;壊れていた一部のリンクを修正・削除しました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;その他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://bunfree.net/event/tokyo32/"&gt;第三十二回文学フリマ東京&lt;/a&gt;に出展しました。&lt;ul&gt;
&lt;li&gt;引き続き、&lt;a href="https://hentaigirls.net/book/"&gt;通販&lt;/a&gt;をやっています。&lt;/li&gt;
&lt;li&gt;「&lt;a href="https://bunfree32.hentaigirls.net/"&gt;花・カフェ・宝くじ&lt;/a&gt;」については、&lt;a href="https://hentaigirls.net/book/flowers-cafe-lottery/request/"&gt;PDF版をリクエスト&lt;/a&gt;できます。&lt;/li&gt;
&lt;li&gt;自由文化作品化はもう少し先になる予定です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://status.amane.moe/"&gt;障害情報&lt;/a&gt;を確認できるようにしました。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://uptimerobot.com/"&gt;UptimeRobot&lt;/a&gt;というサービスを使っています。&lt;/li&gt;
&lt;li&gt;一定間隔でHTTPリクエストを投げて応答を見てくれるみたいです。&lt;/li&gt;
&lt;li&gt;自宅のインターネットが2日間ほど死んでいたので、今後の状況把握・周知のためにつくりました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;jelatofishというランダム画像生成ライブラリを作っています。&lt;ul&gt;
&lt;li&gt;なんとなく&lt;a href="https://packages.debian.org/buster/xstarfish"&gt;xstarfish&lt;/a&gt;をRustで実装しています。素朴に移植しましたが結構重いです。&lt;/li&gt;
&lt;li&gt;開発途中ですがWebAssemblyとして配置してみました。&lt;a href="https://xstarfish-rust-wasm.netlify.app/"&gt;Hello jelatofish!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;WebAssembly版はOutOfMemoryが出てしまう一部機能を無効にしています。&lt;/li&gt;
&lt;li&gt;そのうちxstarfishの紹介記事を書こうと思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_4"&gt;かいた&lt;/h2&gt;
&lt;h3 id="_5"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/lily-letter-film/"&gt;百合お手紙・百合フイルムとふりかえり&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;前半はたのしくてためになるグッズの解説を目指しました。後半は手癖のお気持ち文章と宣伝です。&lt;/li&gt;
&lt;li&gt;&lt;a href="/images/lily-letter-film/og.jpg"&gt;迱里ヶ崎のサムネイル&lt;/a&gt;が好きすぎる。好きすぎませんか？&lt;/li&gt;
&lt;li&gt;&lt;a href="/comment/202105241944/"&gt;コロナで香りを感じられないことは全く考えてなかった&lt;/a&gt;です。&lt;/li&gt;
&lt;li&gt;文フリ当日にコンセプト解説を3分間くらい聞いて結局買わなかった人間たちがいましたが、たぶん狐か何かのたぐいだったと思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/null-postal-code/"&gt;どこでもない郵便番号は存在しますか？&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;いいえ。&lt;/li&gt;
&lt;li&gt;直前のふりかえり記事のおまけなので、演習問題に挙げられた郵便番号は「百合お手紙」に登場するものです。&lt;/li&gt;
&lt;li&gt;きちんとした創作世界を作る場合は、郵便番号はリアルに合わせず10桁くらいにしたほうがいい感じになると思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_6"&gt;かいている&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;後輩の性処理をする先輩のエンタメっぽいお話&lt;/li&gt;
&lt;li&gt;雑にドライブして星を見に行く話&lt;/li&gt;
&lt;li&gt;海で石を拾いに行く話&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>どこでもない郵便番号は存在しますか？</title><link href="https://ama.ne.jp/post/null-postal-code/" rel="alternate"/><published>2021-05-22T11:29:00+09:00</published><updated>2021-05-22T11:29:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-05-22:/post/null-postal-code/</id><summary type="html">&lt;p&gt;いいえ&lt;/p&gt;</summary><content type="html">&lt;p&gt;いいえ。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;郵便番号とは&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;郵便区番号&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;町域番号&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;「存在しない」郵便番号&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;「どこでもない」郵便番号&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;演習問題&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;参考&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;郵便番号とは&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.post.japanpost.jp/zipcode/zipmanual/p04.html"&gt;郵便番号・バーコードマニュアル&lt;/a&gt;によれば、郵便番号とは以下のような特徴を持つ番号である。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;7桁の算用数字を使用して表記される。&lt;/li&gt;
&lt;li&gt;3桁目と4桁目の間にハイフンを入れる。&lt;/li&gt;
&lt;li&gt;ある郵便番号は1つの町域（町、字、大口配達先、超高層ビル）に対応する。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_2"&gt;郵便区番号&lt;/h3&gt;
&lt;p&gt;郵便番号が7桁になったのは、1998年のことである&lt;sup id="fnref:7digit"&gt;&lt;a class="footnote-ref" href="#fn:7digit" title="郵便番号が7桁になったのはいつからですか？ - 日本郵便"&gt;1&lt;/a&gt;&lt;/sup&gt;。それまでは、1968年の郵便番号導入以降3桁（大規模局）と5桁（それ以外の局）の地域が混在していた&lt;sup id="fnref:35digit"&gt;&lt;a class="footnote-ref" href="#fn:35digit" title="郵便番号 - Wikipedia"&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;郵便番号の上3桁または5桁は、旧郵便番号から引き継いだ郵便区番号を表している。郵便区とは、配達を受け持つ郵便局の単位で区切った範囲である。&lt;a href="https://www.post.japanpost.jp/zipcode/dl/bangobo/zip_bgb.pdf"&gt;郵便区番号一覧&lt;/a&gt;によれば、およそ市または特別区の単位で郵便区が設定されていることが分かる。&lt;/p&gt;
&lt;p&gt;ここで注目すべき点は、郵便番号の上2桁が郵便区番号をまとめた地域番号となっているということである。00（北海道関連）から99（山形県関連）まで、おおよそ都道府県をベースにした地域でまとめられている。この地域番号は00～99まで隙間なく割り振られており、郵便番号の上2桁を取り出せばどの地域か必ず判明する。&lt;/p&gt;
&lt;h3 id="_3"&gt;町域番号&lt;/h3&gt;
&lt;p&gt;旧郵便番号がそれぞれ7桁になるように町域番号を付加することで、あらゆる郵便番号は7桁となった。旧3桁地域の4桁目と5桁目については、以下のようなルールで運用されている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;00、08～09、80～84、88～89は郵便区内の大ブロックを表す。&lt;/li&gt;
&lt;li&gt;85～87は大口配達先や私書箱の個別番号を表す。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;町域番号は町や字、大字だけではなく、大口配達先の個別番号や超高層ビルの階層に割り振られることもある。&lt;/p&gt;
&lt;h2 id="_4"&gt;「存在しない」郵便番号&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.post.japanpost.jp/zipcode/dl/roman-zip.html"&gt;郵便番号データ&lt;/a&gt;を用いることで、存在しない郵便番号の候補を抽出できる。&lt;/p&gt;
&lt;p&gt;最も大きな郵便番号ブロックが必要なら、郵便番号データに存在しない上3桁を取り出すといいだろう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
diff&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-oP&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(?&amp;lt;=^&amp;quot;)[0-9]{3}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;KEN_ALL_ROME.CSV&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;uniq&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;seq&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;%03g&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;999&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-oP&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(?&amp;lt;=^\+)[0-9]+&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;以下のような結果が得られる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;000
008
009
032
109
...
748
908
909
977
978
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;この上3桁に任意の4桁の数字を付加すれば、存在しない郵便番号を作ることができる。もちろん、現行の郵便番号運用ルールには気を払うべきだろう。&lt;/p&gt;
&lt;p&gt;もしもっと小さなブロックが欲しいのなら、上5桁で取り出すこともできる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
diff&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-oP&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(?&amp;lt;=^&amp;quot;)[0-9]{5}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;KEN_ALL_ROME.CSV&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;uniq&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;seq&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;%05g&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;99999&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-oP&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(?&amp;lt;=^\+)[0-9]+&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;以下のような結果が得られる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;00000
00001
00002
00003
00004
...
99995
99996
99997
99998
99999
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;3桁の結果と比較すると、999で始まる郵便番号は存在するが、999-99で始まる郵便番号は存在しないということが分かる。&lt;/p&gt;
&lt;h2 id="_5"&gt;「どこでもない」郵便番号&lt;/h2&gt;
&lt;p&gt;しかし、存在しない郵便番号は、例外なくいずれかの地域に所属してしまう。先述の通り、郵便番号の上2桁が地域番号としてあらゆる都道府県に割り振られているからだ。&lt;/p&gt;
&lt;p&gt;実際、存在しない上2桁を取り出す以下のスクリプトは何も返さない。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
diff&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-oP&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(?&amp;lt;=^&amp;quot;)[0-9]{2}&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;KEN_ALL_ROME.CSV&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sort&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;uniq&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;seq&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;%02g&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;99&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-oP&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(?&amp;lt;=^\+)[0-9]+&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;とはいえ、創作の中で7桁の郵便番号を用いる限りは、おそらく日本か日本によく似た地域を想定することが多いだろう。そう考えれば、むしろ舞台設定の助けになるのかもしれない。&lt;/p&gt;
&lt;h2 id="_6"&gt;演習問題&lt;/h2&gt;
&lt;p&gt;以下の郵便番号がどこの地域に属するか推測しよう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/lily-letter-film/#_9"&gt;269-4202&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/lily-letter-film/#_9"&gt;429-4215&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/lily-letter-film/#_9"&gt;977-0868&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_7"&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.post.japanpost.jp/zipcode/zipmanual/p04.html"&gt;郵便番号・バーコードマニュアル 郵便番号 | 日本郵便株式会社&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.post.japanpost.jp/zipcode/dl/bangobo/zip_bgb.pdf"&gt;郵便番号簿PDF（2020年度版）表紙等付属資料&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.post.japanpost.jp/zipcode/dl/roman-zip.html"&gt;郵便番号データダウンロード 住所の郵便番号（ローマ字） zip形式 - 日本郵便&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:7digit"&gt;
&lt;p&gt;&lt;a href="https://www.post.japanpost.jp/question/36.html"&gt;郵便番号が7桁になったのはいつからですか？ - 日本郵便&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:7digit" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:35digit"&gt;
&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/%E9%83%B5%E4%BE%BF%E7%95%AA%E5%8F%B7#%E6%97%A5%E6%9C%AC"&gt;郵便番号 - Wikipedia&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:35digit" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>百合お手紙・百合フイルムとふりかえり</title><link href="https://ama.ne.jp/post/lily-letter-film/" rel="alternate"/><published>2021-05-20T22:46:00+09:00</published><updated>2021-05-24T17:51:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-05-20:/post/lily-letter-film/</id><summary type="html">&lt;p&gt;茅川県下城市迱里ヶ崎字神巻4429-36&lt;/p&gt;</summary><content type="html">&lt;h2 id="_1"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;去る2021年5月16日、&lt;a href="https://bunfree.net/event/tokyo32/"&gt;第三十二回文学フリマ東京&lt;/a&gt;で「百合お手紙」と「百合フイルム」というたのしい企画をやりましたが、あんまり上手に宣伝できなかったのでここで供養します。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;はじめに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;百合お手紙&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;イントロ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;タテの構造&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_15"&gt;ヨコの構造&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_16"&gt;百合フイルム&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_17"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_18"&gt;タテの構造&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_23"&gt;ヨコの構造&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_24"&gt;解説&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_25"&gt;雑記&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_26"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_2"&gt;百合お手紙&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;ある少女が友人に宛てたお手紙を模したかわいい封筒セットです。小さな物語をやさしい香りに乗せてお届けします。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://bunfree32.hentaigirls.net/#characters"&gt;花・カフェ・宝くじ特設ページ&lt;/a&gt;より&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="_3"&gt;イントロ&lt;/h3&gt;
&lt;p&gt;発端は、瑞希の一言だった。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「千穂子ちゃん。本当はお里に帰らずお一人で過ごすのでしょう？」&lt;br&gt;
「……私は、何をしたらいいかしら？」&lt;br&gt;
「お外の写真が見たいの」&lt;br&gt;
&lt;cite&gt;「百合お手紙」注文カードより&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;珱丘県長尾生市の鳩徳女学院では、明日から4つの生徒寮の1つである南天寮の改修工事が始まることになっていた。&lt;/p&gt;
&lt;p&gt;相園千穂子と小野寺瑞希は、南天寮の202号室で同じ時間を過ごすルームメイトである。活動的な千穂子と内気な瑞希は、お互いに足りないところを支え合うパートナーとして信頼し合っていた。 &lt;em&gt;病気&lt;/em&gt; のせいでなかなか学院の外に出られない瑞希は、千穂子が語る街のこと、山のこと、海のことを熱心に聞きたがった。&lt;/p&gt;
&lt;p&gt;大規模な改修工事が続くため、南天寮は明日から5日間昼夜を問わず立ち入りが禁じられる。その間、本来なら南天寮の全生徒が親元に戻って改修工事の完了を待つことになっていた。しかし、瑞希を含めた数人の生徒は実家に帰ることができないため、他の寮の空室を一時的に借りて早めのゴールデンウィークを過ごすことが決まっていた。&lt;/p&gt;
&lt;p&gt;一時帰宅の対象である千穂子は、彼女の父が所有している迱里ヶ崎（茅川県下城市）の別荘で過ごすという旨を届け出ていたが、実際は家族と過ごすどころか別荘にさえ立ち寄らず、密かに予約した迱里ヶ崎の旅館に一人で滞在するつもりである。千穂子は誰にも言わずに出立の準備を進めていたが、その目論見を瑞希に見抜かれてしまったのだった。&lt;/p&gt;
&lt;p&gt;瑞希としては、千穂子の嘘を先生に言い付けて彼女を貶めようとするつもりはなかったし、その思いは千穂子も分かっていた。言葉がなくても伝わるふたりの関係に甘えるように、瑞希は旅先で撮った写真を送るよう千穂子に頼み込むのだった。&lt;/p&gt;
&lt;p&gt;彼女は、千穂子がファインダー越しに切り取るフィルム写真の質感をよく気に入っていたのだ。&lt;/p&gt;
&lt;h3 id="_4"&gt;タテの構造&lt;/h3&gt;
&lt;p&gt;百合お手紙は重層的で少し複雑な構造になっている。この構造を外から順に挙げていこう。&lt;/p&gt;
&lt;h4 id="_5"&gt;お買い上げシール&lt;/h4&gt;
&lt;p&gt;&lt;img alt="お買い上げシールが貼付された百合お手紙外装ウラ" height="563" src="/images/lily-letter-film/nichiban.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.nichiban.co.jp/general/stationery/packaging_work/store_tape_big/"&gt;ニチバン ST-C&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;後述の外装と共に、あなたとお手紙の世界を絶縁する構造である。&lt;/li&gt;
&lt;li&gt;お買い上げシールがお手紙の世界を封印する錠だとすれば、外装は我々の世界と繋がる扉といえる。&lt;/li&gt;
&lt;li&gt;黄色いテープに黒い猫と赤い文字を使った特徴的なパターンがあなたの目を引くはずだ。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_6"&gt;外装&lt;/h4&gt;
&lt;p&gt;&lt;img alt="封筒の宛先が透けて見える百合お手紙外装オモテ" height="563" src="/images/lily-letter-film/aeon.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.topvalu.net/items/detail/4549414044904/"&gt;塩素漂白をしていない 無漂白クッキングシート&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;お買い上げシールと共にお手紙を包む油紙（グラシン紙、パラフィン紙、薄葉紙）である。&lt;/li&gt;
&lt;li&gt;油紙はほんの少し透けていて、封筒に書き込まれた住所の一部を覗き見ることができる。&lt;/li&gt;
&lt;li&gt;第三者のお手紙を&lt;a href="https://hentaigirls.net/"&gt;弱小サークル&lt;/a&gt;が持っているのはなぜか？という問いに答えを与える。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_7"&gt;ライセンス表記&lt;/h4&gt;
&lt;p&gt;&lt;img alt="差出人が書かれた百合お手紙封筒ウラと同封したライセンス表記オモテ" height="563" src="/images/lily-letter-film/seven.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.sej.co.jp/services/print.html"&gt;セブンイレブン マルチコピー機&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ライセンス情報（裏）とハッシュタグ「#百合お手紙」（表）を表示した短冊である。&lt;/li&gt;
&lt;li&gt;他の構造とは異なり、事務上の表示すべき情報を簡素に記した異質な存在である。&lt;/li&gt;
&lt;li&gt;このように、必須情報の記載が浮いて異質な存在となる現象を &lt;strong&gt;必要性の逆転&lt;/strong&gt; という。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_8"&gt;封筒&lt;/h4&gt;
&lt;p&gt;&lt;img alt="切手に消印が捺された百合お手紙封筒オモテと同封したライセンス表記ウラ" height="563" src="/images/lily-letter-film/edc-eny2.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://etranger.co.jp/SHOP/0001-eny2-p-06.html"&gt;etranger di costarica ENY2-P-06&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;お手紙の世界を構成する最も外側の構造であり、手書きの宛先・切手・消印・差出人・封緘シールを含んでいる。&lt;/li&gt;
&lt;li&gt;フラップはのり付けされているが、あなたに提供された時点で既に開封されており、なぜ文学フリマで他人のお手紙を頒布しているのか？という問いにストーリーを与える。&lt;/li&gt;
&lt;li&gt;オモテ面が透けて見えるため、外装の一部を構成しているともいえる。&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id="_9"&gt;宛先・差出人&lt;/h5&gt;
&lt;p&gt;&lt;a href="https://www.pentel.co.jp/products/ballpointpens/gelink/nockenergel/"&gt;ぺんてる BLN75-A/BLN75Z-A/BLN75AW&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;架空の郵便番号と住所を設定し、別荘地から学院に配達されるお手紙を再現した。&lt;/li&gt;
&lt;li&gt;別荘地: 269-4202 茅川県下城市迱里ヶ崎字神巻4429-36&lt;/li&gt;
&lt;li&gt;学院: 429-4215 珱丘県長尾生市東冶町白嘶堂7-1 鳩徳女学院 南天寮 202号室&lt;/li&gt;
&lt;li&gt;ちなみに、「存在しない郵便番号」は作れるが「どこでもない郵便番号」は作れない&lt;sup id="fnref:postal-number"&gt;&lt;a class="footnote-ref" href="#fn:postal-number" title="これについては別の記事にまとめる（追記: どこでもない郵便番号は存在しますか？にまとめました）。"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id="_10"&gt;切手&lt;/h5&gt;
&lt;p&gt;&lt;a href="https://www.shop.post.japanpost.jp/shop/g/gKT43260"&gt;84円普通切手・ウメ&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;お手紙の世界に十分なリアリティを与えるため、本物の未使用切手を丁寧に貼付している。&lt;/li&gt;
&lt;li&gt;消印日から考えると82円普通切手を使わなければならなかったが、十分な数を入手できなかったため84円切手で代用した（展示用のサンプルには82円切手を使っている）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id="_11"&gt;消印&lt;/h5&gt;
&lt;p&gt;&lt;img alt="84円普通切手と消印を拡大した様子" height="563" src="/images/lily-letter-film/spc.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://spc.askul.co.jp/hanko/gom"&gt;パプリ フリーサイズ印&lt;/a&gt;, &lt;a href="https://www.shachihata.jp/products/detail.php?product_id=6480"&gt;シヤチハタ HGT-2-GR&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;架空の地名「迱里ヶ崎」の郵便局の消印風のスタンプを制作した。&lt;/li&gt;
&lt;li&gt;デザインは&lt;a href="https://www.postalmuseum.jp/publication/research/research_11_11.pdf"&gt;櫛形日付印&lt;/a&gt;と&lt;a href="https://www.post.japanpost.jp/whats_new/2008/0415_01_c03.html"&gt;ハト印&lt;/a&gt;（実際にはクラゲ印だが）を模している。&lt;/li&gt;
&lt;li&gt;消印の古びた質感を表現するため、あえて弔事用薄墨スタンプ台を用いて押印した。&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id="_12"&gt;封印・封緘シール&lt;/h5&gt;
&lt;p&gt;&lt;img alt="百合お手紙封筒ウラの封緘部を拡大した様子" height="563" src="/images/lily-letter-film/daiso2.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.tombow.com/products/aqua_pit-2/"&gt;トンボ PT-WT&lt;/a&gt;, ダイソー デザインシール ラッコ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;実際に郵便物として配達されるべきお手紙のため、液体のりでしっかりと封をした。&lt;/li&gt;
&lt;li&gt;さらに、千穂子が選んだ瑞希の気に入りそうなシールで封緘されている。&lt;/li&gt;
&lt;li&gt;受け取った瑞希が自身で封を切っているため、頒布開始時点から開封された状態で提供されている。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_13"&gt;写真&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://www.daiso-sangyo.co.jp/shop/map?c=c4"&gt;ダイソー 写真プリント&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="百合お手紙に封入されている写真の一例（赤い花の写真、空と海の写真）" height="563" src="/images/lily-letter-film/daiso.jpg" width="750"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;イントロで瑞希が千穂子に送るよう頼み込んだフィルム写真である。&lt;/li&gt;
&lt;li&gt;千穂子が迱里ヶ崎で大量に撮影した海と花の写真から、よく撮れた数枚を選び取って同封している。&lt;/li&gt;
&lt;li&gt;もちろん、実際はフィルム風に加工した写真プリントだが、お手紙の世界に閉じ込めた時点でその事実は消失する。&lt;/li&gt;
&lt;li&gt;保護のため透明な袋に収納しているが、これは千穂子が付けたもの &lt;strong&gt;ではない&lt;/strong&gt; 。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_14"&gt;本文&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://etranger.co.jp/SHOP/0001-basis-27-02.html"&gt;etranger di costarica BASIS-27-02&lt;/a&gt;（またはクラックス WP50・E25）, &lt;a href="https://www.pentel.co.jp/products/ballpointpens/gelink/nockenergel/"&gt;ぺんてる BLN75-A/BLN75Z-A/BLN75AW&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="百合お手紙に封入されている本文の一例（2019年4月22日）" height="563" src="/images/lily-letter-film/edc-basis.jpg" width="750"&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;2019年4月22日 天気・快晴 気温・24度&lt;/p&gt;
&lt;p&gt;瑞希さんへ&lt;/p&gt;
&lt;p&gt;寮の改修工事が始まって、お昼の間は差し支えも多いでしょう。&lt;br&gt;
重機や金槌の音が、お耳に響いていないか心配です。&lt;/p&gt;
&lt;p&gt;こちらは、午前のうちに神巻の別荘に着きました。&lt;br&gt;
今夜は、お手伝いの古賀さんが旬の花鯛を煮付けて夕食に&lt;br&gt;
してくれるそうです……なんて。&lt;/p&gt;
&lt;p&gt;（以下省略）&lt;br&gt;
&lt;cite&gt;百合お手紙より&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;最も内部の構造であり、手書きの本文を含む百合お手紙の本質的な構造である。&lt;/li&gt;
&lt;li&gt;千穂子が持っていたノートや便箋を使っているため、ほんのりと彼女の匂いが残っている。&lt;/li&gt;
&lt;li&gt;お手紙の世界に閉じ込められることで、千穂子と瑞希の物語に強烈なリアリティを与える。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_15"&gt;ヨコの構造&lt;/h3&gt;
&lt;p&gt;百合お手紙の世界は、千穂子が瑞希に宛てた全4通の封書で構成されている。あなたが注文した時点では、何通目のお手紙を入手できるかは分からない。いわゆるブラインド仕様である。&lt;/p&gt;
&lt;p&gt;なぜ？　我々は、一山いくらで入手したお手紙を、その世界の外で売りさばく &lt;em&gt;古物商&lt;/em&gt; だからだ。そこに物語を見いだすのはあなたの自由だが、我々はどのお手紙を手渡しているかを区別するほどその世界に &lt;em&gt;興味がない&lt;/em&gt; から、種類ごとに分けて選ばせる必要はないと思っている――&lt;/p&gt;
&lt;h2 id="_16"&gt;百合フイルム&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;35mmカラーネガフィルムを模したかわいいシートです。インテリア、しおり、現像、妄想などにお使いください。&lt;br&gt;
&lt;cite&gt;&lt;a href="https://bunfree32.hentaigirls.net/#characters"&gt;花・カフェ・宝くじ特設ページ&lt;/a&gt;より&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="_17"&gt;概要&lt;/h3&gt;
&lt;p&gt;百合フイルムは、千穂子が撮影した写真のフィルムを3枚ずつカットしてスリーブに収めたものである。&lt;/p&gt;
&lt;p&gt;百合お手紙は、日常生活で活用することを意図したものではない。引き出しにずっとしまっておいてもいいし、手紙の山に混ぜて放置してもいいが、少なくとも毎日読んだり壁に貼っておくものではない。百合お手紙の世界を壊れないように取り出して、気軽に使える実用性を与えたのが百合フイルムである。実用性――コルクボードに貼ったり、しおりとして使ったり、風景から撮影のシチュエーションを妄想したりするには十分な品質だが、現像については鮮明な像が得られないので注意しておくべきだ。&lt;/p&gt;
&lt;p&gt;なぜリバーサルフィルムではないのか？　千穂子の気持ちになって考えてみよう。&lt;/p&gt;
&lt;h3 id="_18"&gt;タテの構造&lt;/h3&gt;
&lt;p&gt;基本的に百合お手紙の構造を模しているが、それほど複雑ではない。&lt;/p&gt;
&lt;h4 id="_19"&gt;お買い上げシール・外装&lt;/h4&gt;
&lt;p&gt;&lt;img alt="お買い上げシールが貼付された百合フイルム外装ウラ" height="563" src="/images/lily-letter-film/nichiban2.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.nichiban.co.jp/general/stationery/packaging_work/store_tape_big/"&gt;ニチバン ST-C&lt;/a&gt;, &lt;a href="https://www.topvalu.net/items/detail/4549414044904/"&gt;塩素漂白をしていない 無漂白クッキングシート&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;百合お手紙を模したものであり、内側を概念的に保護するための構造ではない。&lt;/li&gt;
&lt;li&gt;単に運搬中にスリーブが傷つくことを避けるための包装である。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_20"&gt;ライセンス表記&lt;/h4&gt;
&lt;p&gt;&lt;img alt="光に透ける百合フイルムシートオモテと同封したライセンス表記オモテ" height="563" src="/images/lily-letter-film/seven2.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.sej.co.jp/services/print.html"&gt;セブンイレブン マルチコピー機&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ライセンス情報（裏）とハッシュタグ「#百合フイルム」（表）を表示した短冊である。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_21"&gt;スリーブ&lt;/h4&gt;
&lt;p&gt;&lt;img alt="光に透ける百合フイルムシートウラと同封したライセンス表記ウラ" height="563" src="/images/lily-letter-film/hosho.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.whitephoto.co.jp/catalogue/filmpack/filmpack.html"&gt;ホーショー FP-061&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;6カット用フィルムパックを半分に切ってシートを封入した。&lt;/li&gt;
&lt;li&gt;乳白色のシートが入っており、光に透かすとフィルム風シートが綺麗に輝く。&lt;/li&gt;
&lt;li&gt;壁に貼ったりしおりに加工する際に、シートが傷つくことを防ぐカバーとなる構造である。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_22"&gt;フィルム風シート&lt;/h4&gt;
&lt;p&gt;&lt;img alt="光に透ける百合フイルムシート（赤い花の写真、空と海の写真のネガが3枚、上下に「YURI」や「HENBI」という文字やバーコード、パーフォレーションを模した透明なパターン）" height="563" src="/images/lily-letter-film/cheriton.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.cheriton.co.jp/pages/output.html"&gt;チェリトン OHPフィルムコピーサービス&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;35mmカラーネガフィルムを模したオレンジ色のデザインとなっている。&lt;/li&gt;
&lt;li&gt;上部には「YURI」やバーコード風のパターンを含むプリントを施している。&lt;/li&gt;
&lt;li&gt;下部には「HENBI&lt;sup id="fnref:henbi"&gt;&lt;a class="footnote-ref" href="#fn:henbi" title="変態美少女ふぃろそふぃ。の公式略称であるところの「変美」のローマ字表記である。"&gt;2&lt;/a&gt;&lt;/sup&gt;」を表すパターンや赤色や緑色のラインを含むプリントを施している。&lt;/li&gt;
&lt;li&gt;パーフォレーションの穿孔は予算と手間の問題で断念したため、透明なまま残っている。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_23"&gt;ヨコの構造&lt;/h3&gt;
&lt;p&gt;百合お手紙の写真をフィルムに落とし込んだ作品という性質上、同様に全4種で構成されている。こちらもブラインド仕様で頒布したが、やはり百合お手紙に倣っただけでそうすべきストーリー上の要請はあまり強くない。&lt;/p&gt;
&lt;h2 id="_24"&gt;解説&lt;/h2&gt;
&lt;p&gt;この企画は、「エスの境界　戦前百合小説集&lt;sup id="fnref:like-a-lily"&gt;&lt;a class="footnote-ref" href="#fn:like-a-lily" title="https://booth.pm/ja/items/971223"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:like-a-lily-2"&gt;&lt;a class="footnote-ref" href="#fn:like-a-lily-2" title="++(2022-06-06) 現在は再編集・増補改訂版の普及版　エスの境界が刊行されている。++"&gt;4&lt;/a&gt;&lt;/sup&gt;」から大いにインスピレーションを得て、2019年末葉～2020年初頭に着想されたが、&lt;a href="https://bunfree.net/event/tokyo30/"&gt;第三十回文学フリマ東京&lt;/a&gt;の中止に伴っていったん凍結されたものである。当時、同封する写真を集めるための撮影旅行にも出かけた。&lt;/p&gt;
&lt;p&gt;当初は「旅行先から女に絵はがきを出す気持ち悪い女の手紙」というコンセプトだったが、（オリジナルの印刷物だと感じさせずに）商品としての絵はがきを再現するのが難しいと判断し、フィルム写真を封書に同封するという現在の構造に落ち着いた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;さて、ここまで百合お手紙の構造の解説を読んでもなお、黄・黒・赤をあしらった俗っぽいお買い上げシールに眉を顰めている者は、百合お手紙の構造への理解が――あるいは、一般的な事物に対する読解力が足りないのかもしれない。&lt;/p&gt;
&lt;p&gt;すぐに予想できるのは、外側についての批判であろう。百合お手紙がこんなに良い作品だとしても、こんなダサいシールを貼ったら台無しじゃないか！と思う者がいるかもしれないし、油紙の外装に対して同じようなことを感じる者もいるかもしれない。&lt;/p&gt;
&lt;p&gt;おそらく彼らはこう言うだろう――もっと百合を感じさせる包みにすれば分かりやすいのに！と。しかし、このようにお手紙の世界と我々を隔てる外装がなければ、内側に広がる世界がブースに漏れ出てしまう。すなわち、千穂子と瑞希の物語が意図せず&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。&lt;/a&gt;の文脈に取り込まれ、お手紙の世界の価値が低下する。この趣のない外装が、外側と内側を空間的かつ時間的に区切る重要な構造物であることは明らかだ。&lt;/p&gt;
&lt;p&gt;外装は概要を示すべきであるという考え――これは一種の現代病なのかもしれない。タイトルが内容の要約になっている作品に慣れ親しみすぎて、外装と内容の乖離を忌むべき不協和と捉えているのだろう。&lt;/p&gt;
&lt;p&gt;もちろん、彼らの言うとおりに百合お手紙を可愛いラッピングで包むこと自体は物理的には可能だが、もはやそれは内容物の延長であって外装とはいえない。開封した時点で役目を終えるはずのグッズを包む箱やブリスターを丁寧に保存していた経験は、あなたにもあるのではないか？　すると、内装の一部が &lt;em&gt;むき出し&lt;/em&gt; になった箱やブリスターを、さらに別の外装に包んで保存したくなるはずだ。それはまさに、単なる外装を内容物の延長として取り扱っているということに他ならない。&lt;/p&gt;
&lt;p&gt;我々は、我々のコンテンツをむき出しのまま他人のドメインに売り渡すことに慣れすぎて、ひょっとすると外装の存在さえ煩わしくなっているのかもしれない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;あるいは、手書きの封書をベースに世界を構成すること自体を古い発想と称して（しかも、最悪の順序で！）批判する者もいるだろう。&lt;/p&gt;
&lt;p&gt;――紙に手書きとかもう古いよ。LINEのスクショの方がリアルでは？　Twitterでもみんなでおしゃべりできる時代なのに。ビデオチャットならもっと近くに感じられて満たされるね。直接会わないから感染症の心配もないし。画面越しで世界中の人と交流できる私たちって、対面じゃないと満足できないlaggardsより先進的だよね。行きずりのテレセックスなら健康的だし！&lt;/p&gt;
&lt;p&gt;……本当に？　もしそうなら、文学フリマなんてさっさと終わらせばいいのかもしれない（あるいは、評論フリマあたりに改名するか）。確かに、YouTubeを開けば「応援」と称して金が飛び交う行きずりのテレセックス・リアリティ・ショーが見られるし、VRChatで好きなアバターを使って &lt;em&gt;リアルに触れ合う&lt;/em&gt; ことができるのだから、ここに誰かの考えた妄想の書き起こしなんて入り込む隙間はないだろう。そういう人間にとっては、もう誰にも &lt;em&gt;そんなものを読んでいる時間はない&lt;/em&gt; のだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;百合お手紙で重要なのは、本文を記した紙（ノートの切れ端あるいは便箋）にほんのり匂いが付けられているということである。&lt;/p&gt;
&lt;p&gt;我々の書いた作品のほとんどは、あまねけ！や&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。公式サイト&lt;/a&gt;でWebページやPDFファイルとして読むことができる。あなたが書籍用紙ナチュラルの匂いで興奮あるいは絶頂する体質ではない限りは、これで印刷版とほとんど変わらない体験を得ることができるだろう。&lt;/p&gt;
&lt;p&gt;しかし、百合お手紙はそうではない。あまねけ！ではまだあなたに香りを届けられないし、外装を解いて百合お手紙の世界に、そして千穂子の香りに触れるという経験も与えられない。もちろん、ポジティブに言い換えれば、あなたは実物を入手しないと得られない体験を受け取ることができるのだ。&lt;/p&gt;
&lt;p&gt;さらに、千穂子の手元を離れた手紙の匂いは少しずつ減っていく。一定期間が経過したら同じ香りで焚きしめ直すことはできるかもしれないが、やはり出し入れを繰り返すうちに少しずつ劣化していくだろう。匂いの減衰と共に価値が減っていくというのは、&lt;a href="http://web-media.blue-puddle.com/degradation/"&gt;人為的に古ぼけていくWebページ&lt;/a&gt;などとは異なるもっと静かで無造作な現象である。&lt;/p&gt;
&lt;p&gt;本当は、何もかも台無しになってしまう前にたくさんの人に読んでほしい。たぶん、手紙から何の香りもしなくなった頃に全てスキャンしてアーカイブするだろうけれど、それはもはや無意味な化石として放棄されるに違いない。&lt;/p&gt;
&lt;h2 id="_25"&gt;雑記&lt;/h2&gt;
&lt;p&gt;コロナ禍中の文フリはとにかく最悪で、基本的には知り合いかインターネット経由の集客しか期待できない。新刊なら5冊、多くても10冊くらいあれば足りる。というか、最近はどこでやってもそうなるだろう。&lt;/p&gt;
&lt;p&gt;ブースの丁寧な飾り付けが全く来客数に寄与せず、インターネット・バズ・パワーだけがものを言うなら、物理開催にどんな意味があって、なぜわざわざ来場者が（もちろんコントロールされた &lt;em&gt;密&lt;/em&gt; の下で！）集まっているのかよく分からない。死とか殺すとか巨大な言葉で包んで白黒の綺麗な絵を貼り付けた同人小説が累計1000冊以上売れているそうだが、これも基本的にはツイッター・バズに振った戦略だろう。白黒の線で書かれた綺麗な絵が見たいだけなら、そのお金で吉富昭仁などの漫画を買うべきだと思うが。&lt;/p&gt;
&lt;p&gt;カレー屋も見本誌コーナーも懇親会も存在しない文フリは、長居させない！探索させない！交流させない！が基本なので、サークル参加側としては旨味がほとんどない。どんなに良いPOPと良い表紙と良いグッズを用意しても、ほとんどの入場者はそもそも探索する気がないんだからどうしようもないのだ。サッと冷やかすだけなら、意地の悪そうなオタクくんが腕組みをしているブースよりも、コスプレ風味の女3人が座るブースの方が話してて楽しそうだと考えるのは想像に難くない。&lt;/p&gt;
&lt;p&gt;もちろん、役に立つ――例えばウマ娘プリティダービーの攻略評論でも出せばたくさん注目してもらえるだろう。これらが文学といえるのかはよく分からないものの、評論やエッセイみたいな分野は文フリの中ではまだまだ伸びると思う。提供できる価値が分かりやすくて最高！　次回から評論をやろうかな。&lt;/p&gt;
&lt;p&gt;ヘラヘラと「ほんのり百合っぽい雰囲気で～……」とか「百合文芸アンソロジー」とか言っとけば何かを説明した顔になれるジャンルのブースに座ってると、とにかく気が狂う。運よく気が狂わなくても、たぶんバランス感覚は狂う。百合って何ですか？　おれってもうダメですか？&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;やはり、百合お手紙はコロナ禍中の企画としてはまだ難しすぎたのだろうか。この構造は、少なくとも異常なスピードで歩きながらブースを眺める異常者に読み解けないのは確かであり、もっとゆっくり回れるようになってから大々的に告知すべきだったのかもしれない。&lt;/p&gt;
&lt;p&gt;――異常なスピードとは？　同人誌即売会では折りたたみの机をぐるりと細長く配置した「島」が複数配置されており、目的のブースに移動するにはたいてい（興味もない有象無象の！）島と島の間を通らなければならない。当然、見本誌を読む気すらないサークルが集まる島なら&lt;ruby&gt;&lt;rb&gt;通路の真ん中&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ランウェイ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;をまっすぐ抜ければいいはずだが、ご丁寧に一方の島に寄って &lt;em&gt;異常なスピード&lt;/em&gt; で歩きながら展示に一通り目を通したふりをする異常者がいる。常人の視点に例えると、新幹線から見える景色のスピード感だと思ってもらえばよい。&lt;a href="https://727.co.jp/kanban/"&gt;727の立て看板&lt;/a&gt;の1/100にも満たない小さなブースを一瞬眺めたところで、彼らがどんな有益な情報を受け取れるのかは全く想像できないが、きっと即売会で鍛えたよほどの速読力（ぢから）があるのだ――&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;さて、開催後に売れ残った在庫を整理していたが、本格的に押し入れがパンパンになってきた。そろそろ無心で印刷版を頒布するのは取りやめるべきフェーズに入ってきたようだ。無駄な紙は環境にも悪い。&lt;/p&gt;
&lt;p&gt;百合お手紙は、わざわざ紙を使う意味を再考し、紙を最大限に活用する方法を模索するための実験的な取り組みでもあった。紙で作らなければならない作品はたくさんあるが、そのほとんどは単なる文章の外に価値を見いだしている（多くのオンデマンド同人誌印刷サービスは、そういう付加価値のない作品のためのものだ）。&lt;/p&gt;
&lt;p&gt;そもそも、我々が印刷版を提供しているのはなぜだろうか？　我々にとっては定期的な&lt;ruby&gt;&lt;rb&gt;発行イベント&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;しめきり&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を打ち立てるため、読者にとっては「紙で読みたい」という希望がある &lt;em&gt;はず&lt;/em&gt; だからだ。昔、ディスプレイは光のせいで疲れて読みにくいので紙の本を出してほしい、と言われたことがあった。なるほどそんな需要もあるか、と思いながらこれまで印刷版を提供し続けているが、そう主張した彼らは今でも印刷版を読み続けてくれているだろうか？　もちろん、彼らがこれからも我々の印刷版を入手する保証があるわけではないし、我々がこれから先も印刷版を提供し続ける保証もない。誰かの需要を考えるというのは、少なくとも趣味の範囲では本質的にあまり意味のないことだ。&lt;/p&gt;
&lt;p&gt;無駄な在庫を抱えるくらいなら、最低ロット20冊の印刷所を使うのをやめればいいのだろうが、（文伸印刷株式会社とCQB.JPの同人誌印刷・同人誌支援プロジェクトであるところの）&lt;a href="https://comicmall.jp/"&gt;コミックモール&lt;/a&gt;の使い勝手がよすぎてなかなかやめられない。進捗状況の報告が少なくて不安になるタイミングはあるが、最低限の連絡は来るので3回くらい使えば慣れるはずだ。あなたの卒業研究もおおよそそんな感じだったろう。&lt;/p&gt;
&lt;p&gt;在庫を抱えたくないなら1冊ずつオンデマンド印刷できるサービスを使えばいい、と考える者もいるかもしれない。しかし、&lt;a href="https://factory.pixiv.net/books"&gt;ものづくりがもっと楽しくなるグッズ制作サービス&lt;/a&gt;に頼って資本に与するくらいなら、我々はいくらでも在庫を抱えるし、印刷せずにPDFを出しておけばいいとさえ思っている。あれは印刷所公式価格からの値引きが過ぎる上に、そもそも値引いた後もあまり安くないのでほとんど意味がない。&lt;/p&gt;
&lt;h2 id="_26"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;「百合お手紙」と「百合フイルム」というたのしいグッズを作ったので&lt;a href="https://hentaigirls.net/book/"&gt;公式サイト&lt;/a&gt;で買ってください。500円や1000円が惜しければ送料のみで送るので、&lt;a href="https://amane.im/#contacts"&gt;連絡先&lt;/a&gt;までDMなどをください。&lt;/p&gt;
&lt;p&gt;新刊「花・カフェ・宝くじ」も買ってほしいですが、800円が惜しければ &lt;em&gt;PDF版をリクエスト&lt;/em&gt; できます&lt;sup id="fnref:free"&gt;&lt;a class="footnote-ref" href="#fn:free" title="追記: 既に自由文化作品化されました。"&gt;5&lt;/a&gt;&lt;/sup&gt;。こちらは関わっている人が多いので、印刷版を無料で送付することはできません。&lt;/p&gt;
&lt;p&gt;それはそれとして、未だにコミックモールから「花・カフェ・宝くじ」の印刷代の請求が来ていない。これってトリビアになりませんか？&lt;sup id="fnref:trivia"&gt;&lt;a class="footnote-ref" href="#fn:trivia" title="追記: 2021/05/22にちゃんと請求が来ました。"&gt;6&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:postal-number"&gt;
&lt;p&gt;これについては別の記事にまとめる（追記: &lt;a href="/post/null-postal-code/"&gt;どこでもない郵便番号は存在しますか？&lt;/a&gt;にまとめました）。&amp;#160;&lt;a class="footnote-backref" href="#fnref:postal-number" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:henbi"&gt;
&lt;p&gt;&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。&lt;/a&gt;の公式略称であるところの「変美」のローマ字表記である。&amp;#160;&lt;a class="footnote-backref" href="#fnref:henbi" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:like-a-lily"&gt;
&lt;p&gt;https://booth.pm/ja/items/971223&amp;#160;&lt;a class="footnote-backref" href="#fnref:like-a-lily" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:like-a-lily-2"&gt;
&lt;p&gt;&lt;ins&gt;(2022-06-06) 現在は再編集・増補改訂版の&lt;a href="https://likealily.booth.pm/items/3850746"&gt;普及版　エスの境界&lt;/a&gt;が刊行されている。&lt;/ins&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:like-a-lily-2" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:free"&gt;
&lt;p&gt;追記: 既に&lt;a href="https://hentaigirls.net/book/flowers-cafe-lottery/"&gt;自由文化作品化&lt;/a&gt;されました。&amp;#160;&lt;a class="footnote-backref" href="#fnref:free" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:trivia"&gt;
&lt;p&gt;追記: 2021/05/22にちゃんと請求が来ました。&amp;#160;&lt;a class="footnote-backref" href="#fnref:trivia" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>2021/04/06～2021/05/11</title><link href="https://ama.ne.jp/post/report-20210511/" rel="alternate"/><published>2021-05-11T12:09:00+09:00</published><updated>2021-05-11T12:09:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-05-11:/post/report-20210511/</id><summary type="html">&lt;p&gt;2021/04/06～2021/05/11のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;かいた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_5"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;かいている&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;記事一覧ページで冒頭をプレビューとして表示できるようにしました。&lt;ul&gt;
&lt;li&gt;details/summaryタグに対応していない一部のブラウザでは、常にプレビューが表示されるようになりました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;印刷時に適用されるスタイルを改善しました。&lt;/li&gt;
&lt;li&gt;壊れていた一部のリンクを修正・削除しました。&lt;/li&gt;
&lt;li&gt;リアクションボタンを大きくしてから、たくさんレシートプリンタが動くようになったみたいなのでうれしいです。&lt;ul&gt;
&lt;li&gt;あまねけ！ではあなたを追跡するあらゆるスクリプトを排除しているので、読んだら明示的におしえてください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;その他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://bunfree.net/event/tokyo32/"&gt;第三十二回文学フリマ東京&lt;/a&gt;の準備を進めました。次の日曜日に頒布予定です。&lt;a href="https://bunfree32.hentaigirls.net/"&gt;告知サイト&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;「フォーチュン・ポップコーン」というたのしくてポップなお話をかきました。&lt;/li&gt;
&lt;li&gt;「百合お手紙」というちょっと後ろめたい気持ちになる封筒セットをつくっています。&lt;/li&gt;
&lt;li&gt;「百合フイルム」という35mmカラーネガフィルムを模したかわいいシートをつくっています。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/messages/compose?recipient_id=977819009302151168&amp;amp;text=%E3%80%8C%E8%8A%B1%E3%83%BB%E3%82%AB%E3%83%95%E3%82%A7%E3%83%BB%E5%AE%9D%E3%81%8F%E3%81%98%E3%80%8D%E3%81%8C%E7%99%BA%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%9F%E3%82%89%E6%95%99%E3%81%88%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82"&gt;入手可能になったらおしらせ&lt;/a&gt;できるそうです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pages.cloudflare.com/"&gt;Cloudflare Pages&lt;/a&gt;でのホスティングをテストしました。&lt;ul&gt;
&lt;li&gt;デプロイの設定は非常に簡単で、良い体験を得られました。&lt;/li&gt;
&lt;li&gt;CloudflareのCDNに載るので高速に表示できます。&lt;/li&gt;
&lt;li&gt;ただし、無料範囲では現状のリダイレクトおよびヘッダ付加の設定を引き継ぐのが難しいようです。&lt;/li&gt;
&lt;li&gt;今のところ移行する計画はありません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_4"&gt;かいた&lt;/h2&gt;
&lt;h3 id="_5"&gt;あまねけ！&lt;/h3&gt;
&lt;p&gt;/* （今月書いた記事はありません） */&lt;/p&gt;
&lt;h2 id="_6"&gt;かいている&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;後輩の性処理をする先輩のエンタメっぽいお話&lt;/li&gt;
&lt;li&gt;雑にドライブして星を見に行く話&lt;/li&gt;
&lt;li&gt;海で石を拾いに行く話&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>2021/03/11～2021/04/06</title><link href="https://ama.ne.jp/post/report-20210406/" rel="alternate"/><published>2021-04-06T07:37:00+09:00</published><updated>2021-04-06T07:37:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-04-06:/post/report-20210406/</id><summary type="html">&lt;p&gt;2021/03/11～2021/04/06のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;かいた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_5"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;かいている&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;faviconをフラットなデザインに変更しました。&lt;/li&gt;
&lt;li&gt;ゴチャゴチャしてきたので、テーマを整理しました。&lt;ul&gt;
&lt;li&gt;画面上部のライフ表示を削除しました。1ヶ月以内に書かれた記事には引き続き &lt;img alt=":love_letter:" class="emoji" height="16" src="/emojis/1f48c.png" width="16"&gt; アイコンが表示されています。&lt;/li&gt;
&lt;li&gt;シェア用のパーツを削除しました。&lt;/li&gt;
&lt;li&gt;デフォルトのリアクションボタンを2つに減らし、クリックしやすいように幅を大きくしました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;その他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;日々のメモ・アイデア蓄積環境を更新しました。使い勝手がよさそうなら記事にまとめてみようと思います。&lt;ul&gt;
&lt;li&gt;目的は利便性の向上、Markdownの採用、サービス依存からの脱却などです。&lt;/li&gt;
&lt;li&gt;過渡期に&lt;a href="https://js.wiki/"&gt;Wiki.js&lt;/a&gt;を採用しましたが、日本語対応の弱さや機能不足により今は使っていません。&lt;/li&gt;
&lt;li&gt;新旧の対応は以下の表の通りです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;対象&lt;/th&gt;
&lt;th&gt;旧&lt;/th&gt;
&lt;th&gt;新&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;日々のメモ&lt;/td&gt;
&lt;td&gt;&lt;a href="https://keep.google.com/"&gt;Google Keep&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://joplinapp.org/"&gt;Joplin&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TODO・タスク&lt;/td&gt;
&lt;td&gt;&lt;a href="https://keep.google.com/"&gt;Google Keep&lt;/a&gt;, &lt;a href="https://docs.kanboard.org/"&gt;Kanboard&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://joplinapp.org/"&gt;Joplin&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;アイデアの蓄積&lt;/td&gt;
&lt;td&gt;&lt;a href="https://scrapbox.io/"&gt;Scrapbox&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://joplinapp.org/"&gt;Joplin&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;定期的な予定&lt;/td&gt;
&lt;td&gt;&lt;a href="https://calendar.google.com/"&gt;Googleカレンダー&lt;/a&gt;, &lt;a href="https://docs.kanboard.org/"&gt;Kanboard&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://docs.kanboard.org/"&gt;Kanboard&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="_4"&gt;かいた&lt;/h2&gt;
&lt;h3 id="_5"&gt;あまねけ！&lt;/h3&gt;
&lt;p&gt;/* （今月書いた記事はありません） */&lt;/p&gt;
&lt;h2 id="_6"&gt;かいている&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://bunfree.net/event/tokyo32/"&gt;第三十二回文学フリマ東京&lt;/a&gt;に向けて作品や企画を進行中です。&lt;/li&gt;
&lt;li&gt;現時点で取り掛かっているお話は、公開までもう少し時間がかかります。&lt;ul&gt;
&lt;li&gt;後輩の性処理をする先輩のエンタメっぽいお話&lt;/li&gt;
&lt;li&gt;雑にドライブして星を見に行く話&lt;/li&gt;
&lt;li&gt;海で石を拾いに行く話&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>2021/02/03～2021/03/11</title><link href="https://ama.ne.jp/post/report-20210311/" rel="alternate"/><published>2021-03-11T19:28:00+09:00</published><updated>2021-03-11T19:28:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-03-11:/post/report-20210311/</id><summary type="html">&lt;p&gt;2021/02/03～2021/03/11のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;かいた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_4"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;かいている&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/"&gt;あまねけ！&lt;/a&gt;のライフ &lt;img alt=":love_letter:" class="emoji" height="16" src="/emojis/1f48c.png" width="16"&gt; は現時点で2です。&lt;/li&gt;
&lt;li&gt;自由文化作品のページを&lt;a href="https://hentaigirls.net/"&gt;変態美少女ふぃろそふぃ。公式サイト&lt;/a&gt;に移動しました。&lt;ul&gt;
&lt;li&gt;りりよるシリーズに収録した作品については、引き続きあまねけ！でHTML版を提供しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt; メディア特性を用いて、初期表示時のカラーテーマを環境に合わせて切り替えるようにしました。&lt;ul&gt;
&lt;li&gt;詳しくは&lt;a href="/post/prefers-dark-light/"&gt;color-schemeとprefers-color-schemeのつかいかた&lt;/a&gt;にまとめたので、お読みください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;なんとなくシェア用のパーツを追加しました。&lt;ul&gt;
&lt;li&gt;とりあえずTwitter/Facebook/LINE/はてなブックマークです。&lt;/li&gt;
&lt;li&gt;どこでも使える紹介用テキストも提供しています。 &lt;code&gt;user-select: all&lt;/code&gt; で選択&amp;amp;コピーしやすいようになっていますが、ブラウザによって挙動が異なるので対応中です。&lt;/li&gt;
&lt;li&gt;そのうち消すと思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_3"&gt;かいた&lt;/h2&gt;
&lt;h3 id="_4"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/trial-with-exp/"&gt;体験談と体験版&lt;/a&gt; をかいてもらいました。&lt;ul&gt;
&lt;li&gt;体験版がどのような目的で作られており、どのような手法で作るべきかについて述べています。&lt;/li&gt;
&lt;li&gt;本編ではなく体験版に注目するというユニークな視点で、おすすめのR-18作品を紹介しています。&lt;/li&gt;
&lt;li&gt;autochorissexualと関係がありますか？　たぶんないと思います。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/prefers-dark-light/"&gt;color-schemeとprefers-color-schemeのつかいかた&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;&lt;code&gt;color-scheme&lt;/code&gt; と &lt;code&gt;prefers-color-scheme&lt;/code&gt; の目的と記法について紹介しています。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color-scheme&lt;/code&gt; は、暗いカラーテーマのサイトならとりあえず追加しておくのがおすすめです。&lt;/li&gt;
&lt;li&gt;擬似クラス &lt;code&gt;:has()&lt;/code&gt; が実装されればルート要素に &lt;code&gt;color-scheme&lt;/code&gt; を設定できるようになるので、状況はかなり良くなります。&lt;/li&gt;
&lt;li&gt;ブラウザのUIがダークモードだからってサイトまで暗くするなや（例: &lt;a href="https://twitter.com/Hawklaver/status/1351506630311960579"&gt;1351506630311960579&lt;/a&gt;）という気持ちもあるようなので、カラーテーマ切り替え機能はある程度残していきたいですね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_5"&gt;かいている&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;後輩の性処理をする先輩のエンタメっぽいお話をかいています。&lt;/li&gt;
&lt;li&gt;デカい集合住宅での暮らしについて考えています。&lt;/li&gt;
&lt;li&gt;雑にドライブして星を見に行く話を引き続きかいています。&lt;/li&gt;
&lt;li&gt;海で石を拾いに行く話を引き続きかいています。&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>color-schemeとprefers-color-schemeのつかいかた</title><link href="https://ama.ne.jp/post/prefers-dark-light/" rel="alternate"/><published>2021-03-09T19:45:00+09:00</published><updated>2021-03-09T19:45:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-03-09:/post/prefers-dark-light/</id><summary type="html">&lt;p&gt;カラーテーマを自動で切り替える&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#color-theme"&gt;color-theme によるカラーテーマの指定&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;スタイルシートでの指定&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#meta"&gt;metaタグでの指定&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#prefers-color-scheme"&gt;prefers-color-scheme による優先カラーテーマの取得&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;あまねけ！での対応&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#color-scheme"&gt;color-scheme の採用&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#prefers-color-scheme_1"&gt;prefers-color-scheme の採用&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;おまけ: チェックボックスでスタイルを切り替える&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;参考&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;metaタグまたはスタイルシートで &lt;code&gt;color-scheme&lt;/code&gt; を設定することで、ブラウザにカラーテーマを指定することができる。&lt;/li&gt;
&lt;li&gt;メディア特性の &lt;code&gt;prefers-color-scheme&lt;/code&gt; を用いることで、ユーザがどのようなカラーテーマを要求しているかを取得できる。&lt;/li&gt;
&lt;li&gt;あまねけ！では &lt;code&gt;prefers-color-scheme&lt;/code&gt; を用いてカラーテーマを自動で切り替え、従前より提供していた手動での切り替え機能も引き続き使用できるようにした。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="color-theme"&gt;&lt;code&gt;color-theme&lt;/code&gt; によるカラーテーマの指定&lt;/h2&gt;
&lt;h3 id="_2"&gt;スタイルシートでの指定&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme"&gt;CSSプロパティの &lt;code&gt;color-scheme&lt;/code&gt;&lt;/a&gt; を設定すると、ブラウザにカラーテーマを指定することができる。&lt;code&gt;color-scheme&lt;/code&gt; には以下の属性を設定できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;normal&lt;/code&gt; &lt;sup id="fnref2:default-light"&gt;&lt;a class="footnote-ref" href="#fn:default-light" title="多くのブラウザでは明るいカラーテーマとなる。"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;light&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dark&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;light&lt;/code&gt; および &lt;code&gt;dark&lt;/code&gt; はスペース区切りで2つ以上並べることができ、この場合は先に指定したカラーテーマを推奨していることを示せる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;root&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="k"&gt;color-scheme&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;dark&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;light&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;カラーテーマを指定することで、自前でスタイルシートを用意することなくスクロールバーやフォーム要素を含むページの色合いを切り替えることができる。ただし、 &lt;code&gt;color-scheme&lt;/code&gt; はFirefox&lt;sup id="fnref:firefoxver"&gt;&lt;a class="footnote-ref" href="#fn:firefoxver" title="現時点での最新バージョンはFirefox 86.0である。"&gt;2&lt;/a&gt;&lt;/sup&gt;およびInternet Explorerには対応していない。そのため、Firefoxが対応するまでは暗いカラーテーマのスタイルシートを用意しておく必要があるかもしれない。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;color-scheme&lt;/code&gt; は&lt;a href="https://www.w3.org/TR/css-color-adjust-1/#color-scheme-prop"&gt;全ての要素に適用可能&lt;/a&gt;とされている。しかし、body要素以下に &lt;code&gt;color-scheme: dark&lt;/code&gt; を適用しつつ、ルート要素（ &lt;code&gt;:root&lt;/code&gt; または &lt;code&gt;html&lt;/code&gt; ）には &lt;code&gt;color-scheme: dark&lt;/code&gt; を指定しなかった場合は、文字色や背景色が変わらないなどの致命的な不具合がみられた&lt;sup id="fnref:chromever"&gt;&lt;a class="footnote-ref" href="#fn:chromever" title="Google Chrome 88.0で確認した。"&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;h3 id="meta"&gt;metaタグでの指定&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;color-scheme&lt;/code&gt; は&lt;a href="https://developer.mozilla.org/ja/docs/Web/HTML/Element/meta"&gt;metaタグ&lt;/a&gt;でも設定でき、ルート要素に対して &lt;code&gt;color-scheme&lt;/code&gt; プロパティを設定するのと同じ効果を持つ。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;meta&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;color-scheme&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;dark light&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="prefers-color-scheme"&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt; による優先カラーテーマの取得&lt;/h2&gt;
&lt;p&gt;メディア特性の &lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/@media/prefers-color-scheme"&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt;&lt;/a&gt; を用いることで、ユーザーがどのようなカラーテーマを優先的に要求しているかを取得できる。 &lt;code&gt;prefers-color-scheme&lt;/code&gt; は以下の値を持ちうる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;light&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dark&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt; をメディアクエリで用いることにより、ユーザの要求に合わせてスタイルを切り替えることができる。例えば、以下のようなスタイルシートはユーザの優先カラーテーマに合わせて背景色を切り替える。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c"&gt;/* 暗いカラーテーマ */&lt;/span&gt;
&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;screen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;prefers-color-scheme&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;dark&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;/* 明るいカラーテーマ */&lt;/span&gt;
&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;screen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;prefers-color-scheme&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;light&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt; は多くのブラウザで対応しているものの、残念ながらInternet Explorerには対応していない&lt;sup id="fnref:firefoxmdn"&gt;&lt;a class="footnote-ref" href="#fn:firefoxmdn" title="MDNの prefers-color-schemeではFirefox Androidも未対応になっているが、手元のFirefox Daylight 86.1.1では動作している。"&gt;4&lt;/a&gt;&lt;/sup&gt;。上記のように全てのカラーテーマを &lt;code&gt;prefers-color-scheme&lt;/code&gt; メディアクエリに閉じ込めてしまうと、未対応のブラウザではいずれのスタイルも適用できないため、必要に応じてどちらかのテーマにフォールバックさせてもよいかもしれない。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c"&gt;/* 明るいカラーテーマ（またはデフォルト） */&lt;/span&gt;
&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;screen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;/* 暗いカラーテーマ */&lt;/span&gt;
&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;screen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;prefers-color-scheme&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;dark&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_3"&gt;あまねけ！での対応&lt;/h2&gt;
&lt;p&gt;あまねけ！では、これまでページ上部に toggle color scheme ボタン（切り替えボタン）を設置して、ブラウザのデフォルトカラーテーマ&lt;sup id="fnref:default-light"&gt;&lt;a class="footnote-ref" href="#fn:default-light" title="多くのブラウザでは明るいカラーテーマとなる。"&gt;1&lt;/a&gt;&lt;/sup&gt;とオリジナルの暗いカラーテーマを切り替えられるようにしていた。&lt;/p&gt;
&lt;h3 id="color-scheme"&gt;&lt;code&gt;color-scheme&lt;/code&gt; の採用&lt;/h3&gt;
&lt;p&gt;まず、オリジナルの暗いカラーテーマを廃止し、 &lt;code&gt;color-scheme&lt;/code&gt; を用いてカラーテーマを切り替えることを検討したが、以下の理由で不採用とした。そのため、スクロールバーの色は従来通り明るいままとなっている&lt;sup id="fnref:scrollbar-color"&gt;&lt;a class="footnote-ref" href="#fn:scrollbar-color" title="ただし、 color-scheme の指定とは関係なく、スクロールバーの色がbody要素の背景色に追従するブラウザ（Firefoxなど）もある。"&gt;5&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;metaタグでの &lt;code&gt;color-scheme&lt;/code&gt; の指定は、読み込み後に手動で切り替えることができない。&lt;/li&gt;
&lt;li&gt;CSSプロパティでの &lt;code&gt;color-scheme&lt;/code&gt; の指定は、&lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/:has"&gt;疑似クラス &lt;code&gt;:has()&lt;/code&gt;&lt;/a&gt; がなければ手動で切り替えることができない。&lt;/li&gt;
&lt;li&gt;一部のブラウザでは &lt;code&gt;color-scheme&lt;/code&gt; でのカラーテーマの切り替えに対応していない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし、ここでいう「手動で切り替える」とはスタイルシートのみを用いて切り替えることを指しており、JavaScriptでのプロパティの書き換えなどは含まない。&lt;/p&gt;
&lt;h3 id="prefers-color-scheme_1"&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt; の採用&lt;/h3&gt;
&lt;p&gt;次に、 &lt;code&gt;prefers-color-scheme&lt;/code&gt; を用いて初期表示時のカラーテーマを自動で切り替えることを検討した。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt; に合わせて初期表示時のカラーテーマを設定した場合、切り替えボタンを用いた以下のような切り替えパターンが考えられる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;明るいカラーテーマで表示する場合&lt;ul&gt;
&lt;li&gt;(A) &lt;code&gt;prefers-color-scheme&lt;/code&gt; に未対応で切り替えボタンを偶数回クリックした&lt;/li&gt;
&lt;li&gt;(B) &lt;code&gt;prefers-color-scheme: light&lt;/code&gt; で切り替えボタンを偶数回クリックした&lt;/li&gt;
&lt;li&gt;(C) &lt;code&gt;prefers-color-scheme: dark&lt;/code&gt; で切り替えボタンを奇数回クリックした&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;暗いカラーテーマで表示する場合&lt;ul&gt;
&lt;li&gt;(D) &lt;code&gt;prefers-color-scheme&lt;/code&gt; に未対応で切り替えボタンを奇数回クリックした&lt;/li&gt;
&lt;li&gt;(E) &lt;code&gt;prefers-color-scheme: light&lt;/code&gt; で切り替えボタンを奇数回クリックした&lt;/li&gt;
&lt;li&gt;(F) &lt;code&gt;prefers-color-scheme: dark&lt;/code&gt; で切り替えボタンを偶数回クリックした&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これまでの実装と影響範囲を考慮し、最終的には以下のような実装を行った。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;screen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;prefers-color-scheme&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;light&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c"&gt;/* (E) 奇数回クリックした際の挙動（暗いカラーテーマ） */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;screen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;prefers-color-scheme&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;dark&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c"&gt;/* (F) 偶数回クリックした際の挙動（暗いカラーテーマ） */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h4 id="prefers-color-scheme_2"&gt;&lt;code&gt;prefers-color-scheme&lt;/code&gt; に未対応のブラウザへの対処&lt;/h4&gt;
&lt;p&gt;切り替えのロジック上、全てのパターンを網羅するには &lt;code&gt;prefers-color-scheme&lt;/code&gt; に未対応のブラウザと &lt;code&gt;prefers-color-scheme: dark&lt;/code&gt; であるブラウザを区別する必要がある。しかし、 &lt;code&gt;prefers-color-scheme&lt;/code&gt; に未対応のブラウザでは &lt;code&gt;prefers-color-scheme&lt;/code&gt; を含むメディアクエリを一切使用できず、 &lt;code&gt;prefers-color-scheme&lt;/code&gt; に未対応かどうかを明示的には検出できない。&lt;/p&gt;
&lt;p&gt;この問題は、明るいカラーテーマをブラウザに頼らず明示的に設定することで解決できる。具体的には、フォールバックのスタイルには偶数回で明るく、奇数回で暗く切り替えるように設定し、 &lt;code&gt;prefers-color-scheme: dark&lt;/code&gt; のスタイルでそれらを逆に上書きすればよい。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;screen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c"&gt;/* (A,B) 偶数回クリックした際の挙動（明るいカラーテーマ） */&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c"&gt;/* (D,E) 奇数回クリックした際の挙動（暗いカラーテーマ） */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;media&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;screen&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;prefers-color-scheme&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;dark&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c"&gt;/* (C) 奇数回クリックした際の挙動（明るいカラーテーマ） */&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c"&gt;/* (F) 偶数回クリックした際の挙動（暗いカラーテーマ） */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;しかし、明るいカラーテーマを指定する手間と古いブラウザに対応するメリットを比較して、今回は &lt;code&gt;prefers-color-scheme&lt;/code&gt; に未対応のブラウザには対処しないことにした。今後、これらの環境では切り替えボタン自体が表示されない。もし切り替えボタンが使えなくなって困っていたら、すぐに対処するのでコメントなどで知らせてほしい。&lt;/p&gt;
&lt;h4 id="_4"&gt;強制ダークモードへの対処&lt;/h4&gt;
&lt;p&gt;また、サイトの &lt;code&gt;color-scheme&lt;/code&gt; 指定にかかわらずブラウザのデフォルトカラーテーマを暗いものに切り替える機能、いわゆる強制ダークモードを適用している場合は、切り替えボタンをクリックしても2つの暗いカラーテーマ（ブラウザのデフォルトとサイトのオリジナル）しか使用できない。これについても、オリジナルの明るいカラーテーマを指定すれば解決できる。とはいえ、強制ダークモードを適用したいユーザが明るいカラーテーマを希望することは少ないと考えられるため、こちらも特に対処しない。&lt;/p&gt;
&lt;h2 id="_5"&gt;おまけ: チェックボックスでスタイルを切り替える&lt;/h2&gt;
&lt;p&gt;チェックボックスの状態を区別する &lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/:checked"&gt;&lt;code&gt;:checked 擬似クラスセレクタ&lt;/code&gt;&lt;/a&gt;と&lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/General_sibling_combinator"&gt;一般兄弟結合子 &lt;code&gt;~&lt;/code&gt;&lt;/a&gt;を用いることで、CSSの機能だけでチェックボックスの状態に応じてスタイルを切り替えられる。現在、あまねけ！ではこの手法でカラーテーマを切り替えている。&lt;/p&gt;
&lt;p&gt;この手法の欠点は、チェックボックスより階層が上の要素にはスタイルを当てられないということである。現状主要なブラウザで使用できる範囲では、JavaScriptを用いて親を辿らなければならない。「ある状態のチェックボックスを子に持つようなbody要素」のようなセレクタには、&lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/:has"&gt;疑似クラス &lt;code&gt;:has()&lt;/code&gt;&lt;/a&gt; の実装が必要である。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;html&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;head&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;チェックボックスでスタイルを切り替える&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;title&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;checkbox&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;toggle&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nd"&gt;checked&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;#&lt;/span&gt;&lt;span class="nn"&gt;main&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;#eee&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;style&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;head&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;toggle&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;checkbox&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;main&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;チェックボックスでスタイルを切り替える&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;html&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://gist.githack.com/amane-katagiri/d52284d464386bdfdac8be109c5d4534/raw/72e4908b38619fffbd62200eaeccc77e7f2db810/"&gt;ブラウザで表示&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="_6"&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hail2u.net/blog/meta-name-color-scheme.html"&gt;meta要素のname=color-schemeについて — Hail2u&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme"&gt;color-scheme - CSS: Cascading Style Sheets | MDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/@media/prefers-color-scheme"&gt;prefers-color-scheme - CSS: カスケーディングスタイルシート | MDN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:default-light"&gt;
&lt;p&gt;多くのブラウザでは明るいカラーテーマとなる。&amp;#160;&lt;a class="footnote-backref" href="#fnref:default-light" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:default-light" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:firefoxver"&gt;
&lt;p&gt;現時点での最新バージョンはFirefox 86.0である。&amp;#160;&lt;a class="footnote-backref" href="#fnref:firefoxver" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:chromever"&gt;
&lt;p&gt;Google Chrome 88.0で確認した。&amp;#160;&lt;a class="footnote-backref" href="#fnref:chromever" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:firefoxmdn"&gt;
&lt;p&gt;&lt;a href="https://developer.mozilla.org/ja/docs/Web/CSS/@media/prefers-color-scheme"&gt;MDNの &lt;code&gt;prefers-color-scheme&lt;/code&gt;&lt;/a&gt;ではFirefox Androidも未対応になっているが、手元のFirefox Daylight 86.1.1では動作している。&amp;#160;&lt;a class="footnote-backref" href="#fnref:firefoxmdn" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:scrollbar-color"&gt;
&lt;p&gt;ただし、 &lt;code&gt;color-scheme&lt;/code&gt; の指定とは関係なく、スクロールバーの色がbody要素の背景色に追従するブラウザ（Firefoxなど）もある。&amp;#160;&lt;a class="footnote-backref" href="#fnref:scrollbar-color" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>体験談と体験版</title><link href="https://ama.ne.jp/post/trial-with-exp/" rel="alternate"/><published>2021-03-02T22:38:00+09:00</published><updated>2021-03-02T22:38:00+09:00</updated><author><name>stewpot</name></author><id>tag:ama.ne.jp,2021-03-02:/post/trial-with-exp/</id><summary type="html">&lt;p&gt;言葉+視覚+メタ=体験版&lt;/p&gt;</summary><content type="html">&lt;p&gt;体験版で購入するよう誘惑してくれる作品がもっと増えてほしいですね。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;体験版とは&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;冒頭抜粋型&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;見どころ抜粋型&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;体験談と体験版&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;DLsiteのようなダウンロード販売サイトにおいて、マンガ、同人CG集、同人音声、ゲームなどの &lt;strong&gt;体験版&lt;/strong&gt; というと、我々が想像するのは以下のようなコンテンツだろう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;製品版の冒頭を抜き出したもの（ &lt;strong&gt;冒頭抜粋型&lt;/strong&gt; ）&lt;/li&gt;
&lt;li&gt;製品版から特定のシーンを抜き出して繋ぎ合わせたもの（ &lt;strong&gt;見どころ抜粋型&lt;/strong&gt; ）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このようなコンテンツは、閲覧に購入が必要な &lt;strong&gt;製品版&lt;/strong&gt; のサブセットである。タイトルや内容説明のテキストを配置したり、シーンやトラックのリストを画像に起こすことはあるかもしれないが、このような場合でもあくまで製品版を主、体験版を従とした主従の関係にある。&lt;/p&gt;
&lt;p&gt;一方で、このような製品版の切り抜きとしての体験版の域を超えており、製品版を宣伝するための独立したコンテンツとして成立している体験版も多く流通している。本記事では、その中でも製品版に登場するキャラクターが視聴者に語りかける  &lt;strong&gt;インタビュー型&lt;/strong&gt; の体験版について複数の例を挙げ、その内容を紹介する。&lt;/p&gt;
&lt;h2 id="_2"&gt;体験版とは&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;体験版&lt;/strong&gt; とは、閲覧に購入が必要なコンテンツである &lt;strong&gt;製品版&lt;/strong&gt; についての統制された情報である。 &lt;strong&gt;販売者&lt;/strong&gt; にとっては製品版を購入させるための宣伝手段の一つであり、 &lt;strong&gt;購入者&lt;/strong&gt; にとっては内容が分からない製品版の価値を予測する手段の一つとなる。&lt;/p&gt;
&lt;p&gt;ここで、製品版は購入するまで内容が分からないコンテンツであるというのは重要なポイントである。購入しなくても内容が分かるコンテンツにおいては、体験版は購入させる手段ではなく、インプレッションを集めるための手段となってしまうからだ。購入とクリックでは動機もコストも違う。&lt;/p&gt;
&lt;h3 id="_3"&gt;冒頭抜粋型&lt;/h3&gt;
&lt;p&gt;さて、体験版を作る単純で基本的な手法として、製品版の冒頭を抜粋するというもの（ &lt;strong&gt;冒頭抜粋型&lt;/strong&gt; ）がある。すなわち、画像なら数枚、文章なら数百文字、音声なら数分間、ゲームなら最初のステージやシーンを視聴できるようにして、無料で配布するというものだ。販売者がどこまで内容を明らかにするかを決められるという点で、いわゆる違法アップロードとは本質的に異なる。&lt;/p&gt;
&lt;p&gt;例えば、メディアプラットフォームのnoteでは、記事の前半を体験版として区切るための有料ラインという機能がビルトインで用意されている&lt;sup id="fnref:note"&gt;&lt;a class="footnote-ref" href="#fn:note" title="例: サクラなんて待ちたくない！同人誌をたくさん売りたいあなたが知りたい爆売れ最短マップ"&gt;1&lt;/a&gt;&lt;/sup&gt;。また、イラストコミュニケーションサービスのpixivでは、クリエイターが自らのパトロンサービスに投稿した記事の一部を抜粋して投稿している&lt;sup id="fnref:pixiv"&gt;&lt;a class="footnote-ref" href="#fn:pixiv" title="例: #支援者限定の小説・SS一覧"&gt;2&lt;/a&gt;&lt;/sup&gt;。この例においては、pixivの作品が支援プランに加入させるための体験版となっているといえるだろう。Twitterでしばしば見られる「〇〇が〇〇する話」スタイルの広告も、コミックスを購入させるために第一話を体験版として公開するものが多い。&lt;/p&gt;
&lt;p&gt;このような手法は、購入者の「続きが気になる→購入したい！」という感情を刺激することをねらっている。多くのコンテンツは先頭から視聴されることを期待している&lt;sup id="fnref:afterwords"&gt;&lt;a class="footnote-ref" href="#fn:afterwords" title="もちろん、結末やあとがきから読む人を否定するものではない。"&gt;3&lt;/a&gt;&lt;/sup&gt;し、先頭から途中まで視聴させることで文字通りコンテンツを &lt;em&gt;体験&lt;/em&gt; させることができる王道の手法といえるだろう。しかし、冒頭抜粋型にはいくつかデメリットがある。&lt;/p&gt;
&lt;p&gt;まず、販売者は冒頭で十分に盛り上がるようによく気を付けて作品を構成しなければならない。宣伝手段に合わせて作品を構成することが必ずしも誤っているわけではないが、そのせいで作品の幅が狭まれば最終的に悪い結果をもたらすだろう。音声作品を例に挙げると、長々と世界観や状況説明を繰り広げるプロローグ部分を体験版として提供するのはかなり効果が薄い。このようなプロローグは製品版の一部としては重要だが、体験版としては盛り上がりがなく、また不要な情報を多く含んでいるからだ。言い換えると、以降のトラックを聴かせるための材料であって、作品自体を購入させるための材料ではない。&lt;/p&gt;
&lt;p&gt;また、購入者は冒頭のみで後半の内容や構成を予測しなければならない。これは、多くのケースで不正確かつ不安定なものになりがちである。いわゆる有料ラインは、販売者にとって良い製品版ではなく良い体験版を作るモチベーションとなるからだ。すなわち、面白い製品版を作ることよりも続きが気になる体験版を作ることに興味が向いてしまう。巧妙に細工された体験版は、製品版とは全く異なる顔をしている。&lt;/p&gt;
&lt;h3 id="_4"&gt;見どころ抜粋型&lt;/h3&gt;
&lt;p&gt;そこで、体験版を作るもう一つの基本的な手法として、冒頭に限らず特定のシーンを抜き出して繋ぎ合わせるもの（ &lt;strong&gt;見どころ抜粋型&lt;/strong&gt; ）を考える。盛り上がるシーンや各トラックの冒頭を抜き出し、時系列順に並べて無料で視聴できるようにするのが典型的な構成だ。やはりこれも購入者の「続きが気になる→購入したい！」という感情の動きをねらっている。&lt;/p&gt;
&lt;p&gt;見どころ抜粋型は、冒頭抜粋型における単一の有料ラインのように単純な戦略ではなく、どこからどの程度抜き出すかを（多くの場合複数）選択する必要がある。そのため、サービス側の機能ではなく、販売者自身によって製品版とは別に構成した体験版を提供するのが一般的である。盛り上がるシーンを抜き出した体験版は、同人CG集に多く見られる&lt;sup id="fnref:doujincg"&gt;&lt;a class="footnote-ref" href="#fn:doujincg" title="例: RJ274676, RJ307316"&gt;4&lt;/a&gt;&lt;/sup&gt;。音声作品においても、各トラックの冒頭を抜き出した体験版が数多く存在している&lt;sup id="fnref:dojinvoice"&gt;&lt;a class="footnote-ref" href="#fn:dojinvoice" title="例: RJ260793, RJ279187"&gt;5&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;見どころ抜粋型を用いることで、冒頭抜粋型におけるデメリットを解消できる。まず、販売者は冒頭の展開の素早さに縛られる必要がなくなり、結果として自由な作品作りに集中することが可能となる。また、購入者は冒頭に限らず様々な場面の情報を得られるため、体験版から得る印象が製品版の実態と一致することを期待できる。しかし、冒頭抜粋型にはなかった別のデメリットについても注目しなければならない。&lt;/p&gt;
&lt;p&gt;つまり、適切なシーンを抜き出して並べるのは想像以上に難しく、運が悪ければ冒頭抜粋型よりも効果が薄くなってしまう。善良な販売者であれば、販売者と購入者が持つ情報の差を意識し、製品版に関する適切なイメージを与えようとするはずだが、統制された情報の組み合わせは複雑で多岐にわたる。見どころを十分に与えなければ当然体験版としての効果は薄くなるし、見どころを公開しすぎても購入者の体験を損なう可能性がある。&lt;/p&gt;
&lt;p&gt;例えば、体験版として構成されたコンテンツが製品版の上澄みを集めた要約となっている場合、購入者は製品版を購入したメリットを十分に実感できない可能性がある。極端にいえば、集客効果をねらって体験版で全ての見どころを提供してしまうと、製品版との差異は見どころを接続する退屈なシーンだけとなってしまうからだ。すると、体験版から得られる最大瞬間風速的な爽快感がピークとなり、製品版の実態は相対的に低く見えてしまう。これは、全ての見どころを体験版に詰め込む愚かな販売者を仮定しているわけではなく、販売者が想定する見どころと購入者が期待する見どころに差があれば簡単に起きうる現象である。&lt;/p&gt;
&lt;h2 id="_5"&gt;体験談と体験版&lt;/h2&gt;
&lt;p&gt;ここまで、製品版からどのように抜き出すかによって体験版を分類してきた。しかし、体験版を提供する目的に照らすと、必ずしも体験版を製品版のサブセットで構成する必要はない。体験版を提供する目的は、販売者にとって製品版を広く宣伝し、購入者にとって安心して購入するためであることから、それを達成できるのであればどんな内容でもよい。&lt;/p&gt;
&lt;p&gt;ここからは、製品版のサブセットで構成されない体験版の一例として、製品版に登場するキャラクターが購入者に語りかけるタイプの体験版（ &lt;strong&gt;インタビュー型&lt;/strong&gt; ）を紹介する。&lt;/p&gt;
&lt;p&gt;インタビュー型の体験版について理解するために、まずは &lt;strong&gt;体験談&lt;/strong&gt; の性質を持つ作品について紹介する。ここでいう体験談とは、性的な経験が豊富なキャラクターAが、性的な経験に劣るキャラクターBに対してAの経験について話したり、Bではないキャラクターで性的な経験を実演する形式である。AがBに直接性的な働きかけを行うわけではなく、Bがあくまで傍観者として言葉や視覚で興奮してしまうという点に大きな特徴がある。Bは読者が感情移入しやすいように、特徴のないキャラクターとして描かれることが多い。&lt;/p&gt;
&lt;p&gt;体験談の性質を持つ作品として、具体的には以下のようなものが挙げられる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;【浮気JD】童貞奪ってあげた彼氏裏切って浮気セックスインタビュー①【悪びれる素振りなし♡】&lt;sup id="fnref:jd"&gt;&lt;a class="footnote-ref" href="#fn:jd" title="http://toshishishita.blog.fc2.com/blog-entry-225.html"&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:jd2"&gt;&lt;a class="footnote-ref" href="#fn:jd2" title="【浮気JD】童貞奪ってあげた彼氏裏切って浮気セックスインタビュー⑧（完結）【悪びれる素振りなし♡】（http://toshishishita.blog.fc2.com/blog-entry-232.html）で完結済"&gt;8&lt;/a&gt;&lt;/sup&gt;は、雑誌（あるいはネットメディア？）のインタビュアーが元カレを寝取られ奴隷として飼う女子大生にインタビューする作品である。インタビュアーが興奮していることを見抜かれ、時折奴隷になるよう煽られる。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pixiv.net/novel/show.php?id=13186333"&gt;伝説のビッチ　その１&lt;/a&gt;&lt;sup id="fnref:bitch"&gt;&lt;a class="footnote-ref" href="#fn:bitch" title="現時点での最新は伝説のビッチ　その5"&gt;6&lt;/a&gt;&lt;/sup&gt;は、伝説のビッチと称される女性に取材して自らの性的な武勇伝を語ってもらう作品である。インタビュアーは刺激の強い経験を聞かされながら、時折目の前で興奮を煽られつつ取材が続けられる。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ262834.html"&gt;お姉さんからのオナサポ音声～エッチなお話してあげるね♪～&lt;/a&gt;は、お姉さんに過去のプレイ遍歴を聞かされながらオナニーする作品である。後半のトラックで射精するパートがあるが、お姉さんは指一本触れないため体験談の性質は消失しない。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ195929.html"&gt;お姉さんのお仕事紹介〜おっぱい調教・洗脳編2〜&lt;/a&gt;は、とある組織でヒーローにおっぱい調教をしている女性に調教の様子を見学させてもらう作品である。&lt;/li&gt;
&lt;li&gt;また、拙作の&lt;a href="https://www.pixiv.net/novel/show.php?id=13801940"&gt;アブノーマルフレンド（ルミの場合）&lt;/a&gt;は、援交JKに自らのプレイ遍歴を聞かされる作品である。言葉だけで興奮させられてしまい、指一本触れられずにオナニーで射精してしまう。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは概してキャラクターBが傍観者のまま言葉や視覚で興奮させられ、また興奮している事実を指摘され、場合によっては意図しない絶頂に導かれる作品である。このような体験談の性質を生かしたコンテンツを体験版として製品版の外に出すことで、「キャラクターAが傍観者たる視聴者を言葉や視覚で興奮させる」という構造が簡単に実現できる。インタビュー型の体験版においては、体験談におけるキャラクターBは購入者と同一視することができ、その場合は想定視聴者の特徴だけではなく、体験版を視聴している事実さえも言及されうる。&lt;/p&gt;
&lt;p&gt;体験談という特殊なシチュエーションの性質上、インタビュー型の体験版は性的な経験が豊富なキャラクターAと視聴者と同一視できるキャラクターBが登場する作品でなければ採用できない形式ではあるが、取り入れることで体験版に適した性質を備えることができる。&lt;/p&gt;
&lt;p&gt;つまり、製品版に登場するキャラクターが視聴者に向かって語りかけるという状況を自然に演出できるため、販売者の立場で示す単なる広告よりも作品の雰囲気を伝えやすくなる。キャラクターが作品の見どころについて直接解説することで、製品版の一部を抜き出すよりも安全で効率的な宣伝を実現できるのである。もちろん、キャラクターAが視聴者を認識したり、話しかけたりするという挙動がふさわしくない作品においては、あくまで作品内の世界にいるキャラクターBに語りかけているという形式にすればよい。&lt;/p&gt;
&lt;p&gt;体験談の性質を持つ体験版として、具体的には以下のようなものが挙げられる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ317740.html"&gt;短小早漏おちんちんに許しを与えてくれないシスターにオナ指示カウントダウンされる世界&lt;/a&gt;の体験版は、シスターが自分の仕事を紹介し、話を聴いたリスナーが興奮していることを指摘する。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ196770.html"&gt;エスルリ～少女に支配されちゃうバカばっかなドM向けアダルトボイス～&lt;/a&gt;の体験版は、リスナーに向けて製品版の概要を説明した上で、言葉だけで興奮していることを指摘し、屈辱的な表現でリスナーをなじるという内容になっている。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ176056.html"&gt;DTコンプレックス～非モテ系男子必殺女子～援交JK藤村アイリ『キミの大事なお金、ぜ～んぶ貢がせてあげるね、働きアリくん♪』&lt;/a&gt;の体験版は、作品のタイトルと絡めてリスナーをなじった上で作品の概要を説明し、射精をちらつかせるが、最終的には製品版を購入するよう誘導する。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ144672.html"&gt;サキュバスの3つの誘惑小話&lt;/a&gt;の体験版は、サキュバスがリスナーに向けて製品版の概要を語り始めるが、途中で切り上げて去ってしまう。この作品は、本編も地下牢に囚われたサキュバスの性的な体験談を語るという内容になっている。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ144568.html"&gt;寸止め何回できるかな?&lt;/a&gt;の体験版は、作品の概要を説明し、興奮したリスナーに射精をちらつかせて製品版を購入するよう誘導する。&lt;/li&gt;
&lt;li&gt;また、拙作の&lt;a href="https://www.pixiv.net/novel/show.php?id=13782288"&gt;体験版（踏みつけ処刑台 〜M男向け同人AVの撮影打ち合わせのつもりだったのに、お金も精子も全部搾られちゃった僕〜）&lt;/a&gt;は、体験版だけでコンテンツとなりうることを示すための実験的な作品である。シナリオの紹介と想定視聴者層への言及、製品版の購入を煽るメッセージを含んでいるが、製品版は存在しない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今回例に挙げたものは全て音声作品だが、もちろん多くのフォーマットの作品に適用できる。&lt;/p&gt;
&lt;p&gt;これらの体験版は、随所に製品版の概要が含まれているものの、製品版の抜き出しで構成されているわけではなく、製品版とは別に収録・制作したコンテンツである。すなわち、それ単体で視聴されることを意識して発信される独立したコンテンツであり、究極的には架空の体験版を集めた作品が製品版として成立しうる可能性を孕んでいる。&lt;/p&gt;
&lt;h2 id="_6"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;ここまで、製品版のサブセットとして構成される典型的な二種類の体験版について解説した上で、製品版に登場するキャラクターが購入者に向けて内容説明を行う &lt;strong&gt;インタビュー型&lt;/strong&gt; の体験版を紹介した。インタビュー型の体験版は、一方が傍観者となる体験談の性質を取り入れることで、体験版として適した性質を備えることができる。本記事では、体験談の性質を持つ作品とインタビュー型の体験版を持つ作品の両方について具体的なタイトルを紹介した上で、体験版が持つ新しい可能性について触れた。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:note"&gt;
&lt;p&gt;例: &lt;a href="https://note.com/tabscat/n/n7131e82b6523"&gt;サクラなんて待ちたくない！同人誌をたくさん売りたいあなたが知りたい爆売れ最短マップ&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:note" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:pixiv"&gt;
&lt;p&gt;例: &lt;a href="https://www.pixiv.net/tags/%E6%94%AF%E6%8F%B4%E8%80%85%E9%99%90%E5%AE%9A/novels?s_mode=s_tag"&gt;#支援者限定の小説・SS一覧&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:pixiv" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:afterwords"&gt;
&lt;p&gt;もちろん、結末やあとがきから読む人を否定するものではない。&amp;#160;&lt;a class="footnote-backref" href="#fnref:afterwords" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:doujincg"&gt;
&lt;p&gt;例: &lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ274676.html"&gt;RJ274676&lt;/a&gt;, &lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ307316.html"&gt;RJ307316&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:doujincg" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:dojinvoice"&gt;
&lt;p&gt;例: &lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ260793.html"&gt;RJ260793&lt;/a&gt;, &lt;a href="https://www.dlsite.com/maniax/work/=/product_id/RJ279187.html"&gt;RJ279187&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:dojinvoice" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:bitch"&gt;
&lt;p&gt;現時点での最新は&lt;a href="https://www.pixiv.net/novel/show.php?id=14575214"&gt;伝説のビッチ　その5&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:bitch" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:jd"&gt;
&lt;p&gt;http://toshishishita.blog.fc2.com/blog-entry-225.html&amp;#160;&lt;a class="footnote-backref" href="#fnref:jd" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:jd2"&gt;
&lt;p&gt;【浮気JD】童貞奪ってあげた彼氏裏切って浮気セックスインタビュー⑧（完結）【悪びれる素振りなし♡】（http://toshishishita.blog.fc2.com/blog-entry-232.html）で完結済&amp;#160;&lt;a class="footnote-backref" href="#fnref:jd2" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>2020/12/30～2021/02/03</title><link href="https://ama.ne.jp/post/report-20210203/" rel="alternate"/><published>2021-02-03T23:57:00+09:00</published><updated>2021-02-03T23:57:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-02-03:/post/report-20210203/</id><summary type="html">&lt;p&gt;2020/12/30～2021/02/03のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;かいた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_5"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;かいている&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;h3 id="_2"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;あまり記事を書かなかったので、遅れ気味の月報になりました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/"&gt;あまねけ！&lt;/a&gt;のライフ &lt;img alt=":love_letter:" class="emoji" height="16" src="/emojis/1f48c.png" width="16"&gt; は現時点で2です。&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/new/"&gt;リクエスト&lt;/a&gt;による初めての記事がリリースされました: &lt;a href="/post/cocoac/"&gt;パラ=セックス&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;リクエストによって書かれた記事には、リクエストしていただいた方の名前を表示するようにしました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Kyashへのリンクを削除して、代わりに銀行口座を記載しました。&lt;/li&gt;
&lt;li&gt;サイトを最大幅768pxで表示するようにしました。&lt;/li&gt;
&lt;li&gt;改行の入ったコメントおよびリプライを表示できるようにしました。&lt;ul&gt;
&lt;li&gt;これまで、いただいたコメントは改行を取り除いてから公開していましたが、長文のコメントでは見にくいため調整しました。&lt;/li&gt;
&lt;li&gt;リプライも同様です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;小説記事の圏点をemタグでマークアップするようにしました。&lt;ul&gt;
&lt;li&gt;多くのブラウザでの表示は変わりませんが、セマンティクスが向上しています。&lt;/li&gt;
&lt;li&gt;圏点に対応していないテキストブラウザでも、強調表示されるようになりました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;emタグで強調する際に斜体で装飾するのをやめました。&lt;ul&gt;
&lt;li&gt;小説記事では上記の通り、その他の記事では引用符で囲んで強調しています。&lt;/li&gt;
&lt;li&gt;斜体を握りつぶすフォント（メイリオなど）への対策と、デザイン向上が目的です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;記事内のメタ情報をemタグで強調するのをやめました。&lt;ul&gt;
&lt;li&gt;暫定的にコメントブロック風の装飾を施しています。&lt;/li&gt;
&lt;li&gt;適切なマークアップを施すことを検討中です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_3"&gt;その他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/Plume-org/Plume"&gt;Plume&lt;/a&gt;のインスタンスを立てました: &lt;a href="https://forum.amane.moe/"&gt;ライフ 人間と科学シリーズ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;Rustで書かれていて楽しいなと思って選びました。&lt;/li&gt;
&lt;li&gt;今のところ、Twitterの投稿とゆるやかに同期しています。&lt;/li&gt;
&lt;li&gt;本来は分散型ブログなのですが、タイトルにツイートを並べて本文に補足情報を（Markdownで！）書けば、他の分散SNSともそれなりに相性がよさそうです。&lt;/li&gt;
&lt;li&gt;人とつながらないTwitterのような使い心地を目指して&lt;a href="https://gist.github.com/amane-katagiri/b7333e1718ffb96a57cac99fa9c10e66"&gt;CSSに変更を施し&lt;/a&gt;ています。&lt;/li&gt;
&lt;li&gt;分散SNSでフォローしていただくか、お好きなフィードリーダーで購読していただければ嬉しいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://matrix.org/"&gt;Matrix&lt;/a&gt;のインスタンスを立てました: &lt;a href="https://matrix.to/#/@amane:matrix.amane.moe"&gt;@amane:matrix.amane.moe&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;いちおう、みんなで話せる部屋も作りました: &lt;a href="https://matrix.to/#/%23random:matrix.amane.moe"&gt;#random:matrix.amane.moe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://app.element.io/"&gt;matrix.orgでアカウントを作成する&lt;/a&gt;か、&lt;a href="https://github.com/matrix-org/synapse/"&gt;自分でインスタンスを立て&lt;/a&gt;て、メッセージを送ってください。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.joinclubhouse.com/"&gt;Clubhouse&lt;/a&gt;の招待をいただいたのではじめました。招待が残っているので言ってください。&lt;ul&gt;
&lt;li&gt;生き物の7割くらいの声が好きじゃないのでどうしようもないが、どうにかします。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_4"&gt;かいた&lt;/h2&gt;
&lt;h3 id="_5"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/cocoac/"&gt;パラ=セックス&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;ココアシガレットキスをテーマにリクエストいただきました。いいテーマでよかったです。これからもよろしくおねがいします。&lt;/li&gt;
&lt;li&gt;人の手のあたたかみを保ったまま痛みを与えるのって、リモートでは結構難しくないですか？　いや、視覚で全部騙される体質ならもちろんそれでいいんですが……。&lt;/li&gt;
&lt;li&gt;たばこの火って熱いんですかね。押し付けられたことがないので分かりません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/seisai/"&gt;正妻と正妻に挟まれた私のお話！&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;コンテストだし時事ネタで頑張っていくぞと思ったら、不妊ウイルスとポリアモリーみたいな妙な組み合わせになりました。&lt;/li&gt;
&lt;li&gt;締め切り駆動執筆は本当に悪い習慣です。&lt;/li&gt;
&lt;li&gt;pixivにも同じものを投稿しました: &lt;a href="https://www.pixiv.net/novel/show.php?id=14577085"&gt;14577085&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_6"&gt;その他&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1344670698212474881"&gt;ドールの写真&lt;/a&gt; をとりました。&lt;ul&gt;
&lt;li&gt;お正月セットです。巫女服は可愛いですね。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_7"&gt;かいている&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;雑にドライブして星を見に行く話をかいています。&lt;/li&gt;
&lt;li&gt;海で石を拾いに行く話をかいています。&lt;/li&gt;
&lt;/ul&gt;</content><category term="report"/></entry><entry><title>正妻と正妻に挟まれた私のお話！</title><link href="https://ama.ne.jp/post/seisai/" rel="alternate"/><published>2021-02-03T23:51:00+09:00</published><updated>2021-02-03T23:51:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-02-03:/post/seisai/</id><summary type="html">&lt;p&gt;生殖機能を奪うウイルスが世界中に蔓延し始めてからおよそ一年……&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://www.pixiv.net/novel/contest/yuribungei3"&gt;第3回百合文芸小説コンテスト&lt;/a&gt;に応募されています。 */&lt;/p&gt;
&lt;!-- インファウイルスと呼ばれる生殖機能を奪うウイルスが世界中に蔓延し始めてからおよそ一年。大学に進学した春木場（はるきば）は、ある日高校で同じ部活だった神宮寺小町（じんぐうじこまち）からビデオチャットで恋愛の悩みを打ち明けられる。当時から神宮寺の恋愛相談に乗っていた春木場は、神宮寺の恋人である厨川雫（くりやがわしずく）がまた何かおかしなことをしたはずだと予想するが、神宮寺は詳しいことは直接会って伝えるとの一点張りでそれ以上話そうとしない。春木場はその件を幼馴染の橋場（はしば）に話してみるものの、直接会うべきかどうか、なかなか結論が出ない。結局神宮寺に会うことにした春木場は、喫茶店で「雫が急に『浮気してもいいから』と言い出した」という話を聞かされる。きっと半歩飛ばしの謎理論から出た発言だと予想した春木場は、厨川の言う通り本当に浮気してはどうかと提案した。しかし、その提案に賛成した神宮寺が指名した浮気相手は、他でもない春木場だった。厨川に一泡吹かせるためだと、春木場は二人が暮らす家へ招かれるが、そこで繰り広げられたのは……。正妻の余裕と正妻の余裕に挟まれた後輩の、奮闘の物語。 --&gt;

&lt;hr&gt;
&lt;p&gt;「春木場、久しぶりね」&lt;/p&gt;
&lt;p&gt;画面の向こうから、神宮寺先輩が私に手を振る。凛とした顔立ちに、ぱっと柔らかい笑顔が浮かんだ。あの頃、放課後のおしゃべりの合間に見せていた、本当に楽しそうなときの表情だ。私を貫いてどこか遠くを見据えるような綺麗な瞳は、今でも変わらず綺麗なままそこにあった。とはいえ、画質の悪いビデオチャットを通すと何かを見落としてしまったような気分になる。&lt;/p&gt;
&lt;p&gt;リモート講義のためにと両親が新調してくれたノートパソコンは、ウェビナーくらいなら余裕だからと預けられたけど、既にファンが回る音がうるさくって、このままテーブルを滑って離陸しそうだった。&lt;/p&gt;
&lt;p&gt;「先週も話したばかりじゃないですか」&lt;/p&gt;
&lt;p&gt;「そう？　高校の頃は、毎日顔を合わせていたから、電話だけじゃ物足りないのかもしれないわね」&lt;/p&gt;
&lt;p&gt;制服によく似合っていた腰までの長髪は、つやのある黒曜石のような髪色をそのままに、ばっさりとミディアムボブに切り揃えられていた。卒業したら髪を切るって言っていたし、SNSに上げられていた自撮りだって何枚も見たけれど、やっぱり目の前にするとちょっと心がざわついた。髪の長さが変わったくらいで、先輩がいなくなったりするわけないのに。&lt;/p&gt;
&lt;p&gt;先輩の部屋は相変わらず物が少ない。今座っているだろう壁際のデスクの後ろに見えるのは、シンプルなスチールベッドとマットレスだけで、他に何か置いてあるとすればデスクの横に四段くらいの本棚が一つか二つ、くらいだろうか。きっとクローゼットもよく整頓されていて、掃除も行き届いてるに違いない。&lt;/p&gt;
&lt;p&gt;「そんなにきちんとしてないわ。最低限のことだけよ。春木場は、相変わらず部屋が散らかってるのね」&lt;/p&gt;
&lt;p&gt;「えーと、これはまだ引っ越しの荷物の整理が終わってなくて、ですね」&lt;/p&gt;
&lt;p&gt;「もう二ヶ月も経つでしょう？　ちゃんとしないといけないわ」&lt;/p&gt;
&lt;p&gt;「はーい……」&lt;/p&gt;
&lt;p&gt;先輩――神宮寺小町は、高校の一つ上の先輩で、二年間同じ部でお世話になった人だ。幽霊部員ばかりで部と呼べるほどのしっかりとした活動はしていなかった気がするけれど、一方で先輩との時間はたくさんあった。背の高い彼女が部室に一人で座っている姿は飄々として見えるけど、話してみるとちゃんと不安や悩みを持っている普通の――年相応に恋や勉強に悩む――女の子なのだと実感する。&lt;/p&gt;
&lt;p&gt;「厨川さん、今日はいないんですか？」&lt;/p&gt;
&lt;p&gt;「お友だちと、夕食に出かけてくるって言ってたわ」&lt;/p&gt;
&lt;p&gt;そう言ってから、先輩は「いえ、本当は飲み会らしいの」とばつが悪そうに付け足した。きっと、大学の友人には夕食だと説明しているせいで、口をついて出たのだろう。夕食でも宴会でも誰かと会うなら大きな違いはない気がするけど、呪術的な大切さを兼ね備えていた。&lt;/p&gt;
&lt;p&gt;「えっ、この時期に？　なんというか、本人の自由だとは思うんですけど。先輩は怖くないんですか？」&lt;/p&gt;
&lt;p&gt;「気にしてないつもりだけど、病気はやっぱり怖いわね。雫は本当に気にしていないみたいだけれど、周りを巻き込んでしまわないか心配よ」&lt;/p&gt;
&lt;p&gt;&lt;ruby&gt;&lt;rb&gt;例のウイルス&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;インファウイルス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;は、確かに私たちの生活をネガティブに変えてしまった一方で、今まで注目されなかった技術や文化の進歩で便利になった部分も多い。そうやって、多くの人々がだんだんと新しい生活に慣れていく中で、厨川さんみたいに今まで通りの生活を送ろうとする人は白い目で見られがちだ。先輩の不安げな表情には、そういう世間の視線が厨川さんに向くことへの心配も含まれているだろう。&lt;/p&gt;
&lt;p&gt;「それに、本当は私を置いて出かけてほしくないのよ。でも、雫ってお友だちが多いから、いつでも私が一緒というわけにはいかないでしょう？」&lt;/p&gt;
&lt;p&gt;「でも、一度きちんと伝えたほうがいいですよ。出かけてほしくないって」&lt;/p&gt;
&lt;p&gt;「……そうね。春木場も、そうしたほうがいいと思う？」&lt;/p&gt;
&lt;p&gt;「はい。私なら、そうします」&lt;/p&gt;
&lt;p&gt;厨川さん――厨川雫は先輩の同級生で、私よりも先輩とずっと深い仲の、えぇと、つまり先輩の恋人だ。中学からの同級生で、私が先輩と出会うよりも前から付き合っているらしい。昔のことはよく知らないけれど、先輩からいろいろ聞いていた。&lt;/p&gt;
&lt;p&gt;つかみどころのない性格は先輩の第一印象と似ているけれど、周囲を巻き込む身に纏ったある種の――先輩とは真逆の――親しみやすさのせいか、わざわざ「先輩」と呼んだことはなかった。卒業してからショートレイヤーの茶髪をさらに明るく染め上げて、自撮りに写る先輩といいコントラストになっている。&lt;/p&gt;
&lt;p&gt;先輩はその自由さに惹かれたと言っていたけど、私に言わせるとあまりに違う部分が多すぎると思う。よく言えばさっぱりとした性格で、悪く言えば軽すぎるところがある。先輩が変な影響を受けたりしないか、五年目になった今でも少し心配だ。&lt;/p&gt;
&lt;p&gt;「春木場は、最近外に出ているの？」&lt;/p&gt;
&lt;p&gt;「近所のスーパーで、最低限の買い物はしてますよ。両親がうるさいんです。ちゃんと対策できないなら、四十二田に帰ってこいって。実家のほうが安全らしいですよ」&lt;/p&gt;
&lt;p&gt;「愛されてるのね」&lt;/p&gt;
&lt;p&gt;「いや、そんなんじゃないですよ。ただ、自分たちの感情を優先してるだけで」&lt;/p&gt;
&lt;p&gt;両親にちょっと外出した話をすると、きちんと対策するようにという前向きなアドバイスから、いつの間にか私の意識が低すぎるという説教に変わってしまう。&lt;ruby&gt;&lt;rb&gt;病気&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;インファ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;にかかったらどうするんだ、孫の顔を見せない気かと言われても、孫より目の前の生活のほうが大事だと言い返したくなる。&lt;/p&gt;
&lt;p&gt;「そうかもしれないわね。愛なんて、結局のところ自分の感情を正直に……」&lt;/p&gt;
&lt;p&gt;そこまで言いかけて、先輩は急に黙り込んだ。消えるような尻すぼみの声と、思いつめたようなため息は、彼女がどうして突然ビデオチャットに誘ってきたのかをよく物語っていた。&lt;/p&gt;
&lt;p&gt;「ねぇ、春木場。私って、やっぱり魅力がないのかしら？」&lt;/p&gt;
&lt;p&gt;再び口を開くまでの絶妙な間で、あの頃の部室の時間を思い出す。沈黙からの急な話題転換は、先輩がどうでもいいことで悩んでいるときの合図だった。学食のランチが美味しくなかったとか、小テストの点数が微妙だったとか、厨川さんが誰かと親しげにしていたとか。&lt;/p&gt;
&lt;p&gt;「どうしてですか？　先輩は魅力的ですよ」&lt;/p&gt;
&lt;p&gt;「ありがとう。でも、こんな風に訊かれたら、そう返すしかないわよね」&lt;/p&gt;
&lt;p&gt;それから、先輩は「春木場には、いつも気を遣わせているわね」と呟いて、デスクに伏してしまった。あんまり先輩っぽくない無遠慮な弱り方だ。後ろから現れた真っ白な壁も相まって、縮こまった先輩の身体がより小さく感じてしまう。&lt;/p&gt;
&lt;p&gt;「何かあったんですか、先輩。いつになく弱気ですね」&lt;/p&gt;
&lt;p&gt;「私たち、ちょっと問題が起きている……かもしれないのよ。ごめんなさい。急よね。でも、春木場くらいしか頼れなくて」&lt;/p&gt;
&lt;p&gt;やはり、どうでもいいこと――厨川さんに関する悩みらしい。先輩の恋愛相談なら、私には慣れっこだった。しかし、起き上がった先輩にどれだけ経緯を尋ねても、直接会って話したい、の一点張りで先に進まない。&lt;/p&gt;
&lt;p&gt;「さっきも言ったじゃないですか。この時期に外出するのは、リスクが大きいですよ」&lt;/p&gt;
&lt;p&gt;「でも、大事なことなのよ。大事なことだから、ちゃんと春木場に聞いてほしいの」&lt;/p&gt;
&lt;p&gt;そう言って私を見つめる先輩の目は、やはりあの頃と変わらず私を貫いていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「だって、あんな頼み方されたら断れるわけないじゃん」&lt;/p&gt;
&lt;p&gt;「でも、神宮寺さんもリスクをとってまで春木場と会いたいわけでしょ。そう考えると、一種の愛なのかもしれないね」&lt;/p&gt;
&lt;p&gt;「いや、こんなの愛じゃないって。可視化されてないだけで、おおよそ暴力の類だよ。私は巨大な暴力に従うしかないってわけ」&lt;/p&gt;
&lt;p&gt;電話の相手――幼馴染の橋場は、私が先輩と会う約束をしてしまったことについて、おおむね好意的に評価した。ただし、恋愛相談のためだけに会うつもりなら今からでも断るべきだ、とも言った。自分が直接会いたいと思わないなら、リスクをとる価値はないという意味だ。橋場らしいなと思う。&lt;/p&gt;
&lt;p&gt;きっと橋場は「あの二人が別れたって、春木場には関係ないでしょ」とでも言うんだろうけど、二人が別れてしまうのは困る。だって、私は二人が幸せになれるように、ずっと先輩の恋愛相談に付き合ってきたんだから。&lt;/p&gt;
&lt;p&gt;「そりゃあ、先輩たちはいいよ。インファにかかっても、どっちかに妊孕性が残ればなんとかなるし。最悪でも里親か養子縁組でしょ？　確率では、えーと……」&lt;/p&gt;
&lt;p&gt;「二人に両方後遺症が残る確率は四パーセントくらいかな。まだ統計が十分じゃないから、上下すると思うけど」&lt;/p&gt;
&lt;p&gt;「そう。そして、私が発症する確率はその五倍。私がとるリスクは先輩の少なくとも五倍ってことよ」&lt;/p&gt;
&lt;p&gt;「まぁ、五人に一人なら、しれっと当たらずに済みそうだけど。致死率はほぼゼロに近いし」&lt;/p&gt;
&lt;p&gt;昨年の頭から広がり始めた不思議なウイルスは、形ばかりの高熱と低すぎる致死率の代わりに、生殖機能の破壊という強すぎる後遺症のおかげで&lt;ruby&gt;&lt;rb&gt;不妊ウイルス&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;インファウイルス&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;と呼ばれるようになっていた。一度かかってしまえば強力な免疫を獲得できるらしいから、いつになるか分からないワクチンの配布を待つか、あとは人生をかけたガチャを回すかのどちらかだ。&lt;/p&gt;
&lt;p&gt;もちろん、生殖機能を必要としない人にとっては普通のウイルスでしかないわけで、厨川さんみたいに平気な顔で出かけてしまう人もいる。国家の存亡を揺るがす重大な事態が起こっているけど、感染しても自分が死ぬわけじゃなかった。&lt;/p&gt;
&lt;p&gt;目に見える影響が出るのはもう少し先の未来だ。将来何かが起こるかもしれないけど、今日明日は高熱が出るだけという特殊な状況の中で、たかだか二割、というギャンブルじみた楽観論も未だに根強い。青春が死ぬか、日本が死ぬか――極端に言えばこの二択だった。&lt;/p&gt;
&lt;p&gt;「変な博打はしたくないなぁ。私は人並みに結婚したいわけですよ。インファで不妊になったなんて、親に説明できないもの」&lt;/p&gt;
&lt;p&gt;「親なんて、気にしなきゃいいのに。結局、春木場がどうしたいかだよ」&lt;/p&gt;
&lt;p&gt;「……橋場はいいよね。頭いいし、親に頼らなくてもちゃんと一人で生きられるし」&lt;/p&gt;
&lt;p&gt;高校を卒業した橋場は、実家を離れて県内の建築の専門学校に通いながらちゃんと働いているらしい。何をしているかはよく知らないけど、お金には困っていないようだった。羨ましいことだ。&lt;/p&gt;
&lt;p&gt;「じゃあ、養ってあげようか？　春木場の学費くらいなら出せるよ」&lt;/p&gt;
&lt;p&gt;「唐突なプロポーズは、ノー！　私、友だちは大事にしたいから」&lt;/p&gt;
&lt;p&gt;「……うん、冗談だよ」&lt;/p&gt;
&lt;p&gt;橋場のほうから振ってきた冗談なのに、弱々しく呟くような反応に面食らってしまう。クロスした腕でバツを作って「ノー！」と叫ぶモーションは、私たちの間では定番だったけど、声だけじゃ伝わらなかったかな。&lt;/p&gt;
&lt;p&gt;「橋場、どうしたの？」&lt;/p&gt;
&lt;p&gt;「んー、リスクをとるからには、ちゃんと後悔なく会ってくるように。以上！」&lt;/p&gt;
&lt;p&gt;そう言い残して、橋場は電話を切ってしまった。後悔なく……橋場なりの激励だったのかな。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「雫が、急に浮気してもいいからねって言い出したのよ」&lt;/p&gt;
&lt;p&gt;駅前の喫茶店で切り出された悩みは、予想していた以上にどうでもよさそうなものだった。いや、あらゆる恋愛相談は基本的に些末で、そこにどんな意味を見出すかが大切なんだけど。&lt;/p&gt;
&lt;p&gt;「わざわざ呼び出して、変化球のノロケですか？　先輩って、そんな人でしたっけ」&lt;/p&gt;
&lt;p&gt;「えーと……ノロけたつもりはないの。急なことだから、私、その……ごめんなさい」&lt;/p&gt;
&lt;p&gt;直接この目で捉えた先輩は、やっぱりビデオチャットなんかじゃ映しきれないほど綺麗だった。もちろん、顔の大部分はレースをあしらった水色のマスクで覆われているから、鼻から下が覗き見えるのはそっとコーヒーを飲むときくらい。&lt;/p&gt;
&lt;p&gt;私は先輩の瞳が一番好きだったから、好きな場所を引き立てるように綺麗な布で飾り付けられているみたいで、むしろ嬉しくなる。それだけで、今日ここに来た価値があるというものだ。&lt;/p&gt;
&lt;p&gt;「いや、冗談です。知ってます。高校の時からこんな感じですから」&lt;/p&gt;
&lt;p&gt;要するに、また厨川さんの謎発言に振り回されているらしい。浮気してもいい、だなんて。普通なら気持ちが離れつつあるか、罠じみた別れの前触れか、そうでなければ罪悪感の解消、つまり――&lt;/p&gt;
&lt;p&gt;「あの子、浮気でもしてるんじゃないかしら？　どう思う？」&lt;/p&gt;
&lt;p&gt;――そういうことだろう。先輩が心配になる気持ちもよく分かる。でも、たぶん厨川さんは違う。いつもの気まぐれか、半歩飛ばしの謎理論か。動機は分からないけど、自分の不貞の代償に相手の不貞を許して解決したことにしようだなんて、そんな不誠実な人ではないはずだ。&lt;/p&gt;
&lt;p&gt;先輩の恋愛相談は、私が先輩の役に立てる唯一の繋がりだった。それなのに、先輩の悩みを解決しようとするたびに、いつも厨川さんにいらいらしてしまう。私だったら、そんなこと言わないのに。私だったら、もっと大切にするのに。&lt;/p&gt;
&lt;p&gt;それでも、ここが相談の場である限り、厨川さんの肩を持たないと建設的な話はできない。私は、この大切な場所を愚痴や悪口で満たしたいわけではなかった。先輩は厨川さんが好きなんだから、それをサポートするのが私の役目のつもりだ。&lt;/p&gt;
&lt;p&gt;「厨川さんに限って、そんなことはないと思いますけど。仮に浮気していたとしても、こんなに分かりやすく変な行動を見せたりしませんよ」&lt;/p&gt;
&lt;p&gt;「……見苦しいわよね。ごめんなさい」&lt;/p&gt;
&lt;p&gt;「いえ、先輩を責めるつもりで言ったわけじゃないんです」&lt;/p&gt;
&lt;p&gt;「分かってるわ。本当は、浮気くらいなら気にするつもりはないのよ。最後には、ちゃんと私のところに戻ってくるもの。でも、たまにちょっとだけ心配になるわ」&lt;/p&gt;
&lt;p&gt;最後には自分のところに戻ってくるなんて、言葉だけ聞くとひどい自惚れのように思えるけれど、その自信は何も先輩の美しさの自覚から湧いてくるわけではない。長い時間を過ごした二人を包む空気のような信頼感が生み出した言葉だから、見えない分悲しいほどに脆く崩れやすいのだ。信頼し合っているように見えて、実はこうやって誰かが心で泣いていたりする。&lt;/p&gt;
&lt;p&gt;でも、その自信が目に見えないせいで、ちょっとした言葉で不安になってしまう。それでも、パートナーを信じている気持ちは嘘じゃないから、いきなり責め立てて感情をぶつけたりはしない。嫉妬をあらわにするのは、先輩のプライドも許さないのだろう。だから、待つ、待つ、とにかく帰りを待つしかない。&lt;/p&gt;
&lt;p&gt;「なんか、正妻みたいですね」&lt;/p&gt;
&lt;p&gt;「正妻？　そうね、正妻……ふふ、そうかもしれないわね……」&lt;/p&gt;
&lt;p&gt;ふと飛び出た言葉に、先輩はきょとんとした目で応える。それから、「正妻」という言葉を何度も頭の中で巡らせて、小さく声を漏らして笑った。表情は見えないのに、マスクの下であの柔らかい笑顔を浮かべているのが目に浮かぶようだった。&lt;/p&gt;
&lt;p&gt;先輩って、本当に分かりやすくて簡単だな。実は、最初から私の言葉なんて必要ないんじゃないかとさえ思ってしまう。自分で自分の「正妻の余裕」オーラに気づくのは難しいのかもしれないけど。&lt;/p&gt;
&lt;p&gt;「楽しそうですね、先輩」&lt;/p&gt;
&lt;p&gt;「そんなことないわよ。でも、私のことが大切なら、もっと束縛するものじゃないかしら？　きっと、私がどこにも行かないって安心しきっているんだわ」&lt;/p&gt;
&lt;p&gt;正妻ってないがしろにされがちよね、と息巻く先輩の目の前に、鏡をとん、と置きたくなってしまう。束縛しないように頑張っている先輩が、自分は束縛されたいだなんて。当然、そんな意地悪はしないけれど。&lt;/p&gt;
&lt;p&gt;「それなら、本当に浮気してみたらいいんじゃないですか？　厨川さんが、ちゃんと先輩を束縛してくれるように」&lt;/p&gt;
&lt;p&gt;「本当に、浮気……考えもしなかったけど、雫が傷ついたりしないかしら？」&lt;/p&gt;
&lt;p&gt;「厨川さんは、自分で言ったことに責任を持つ人ですよ。先輩も分かっているはずです」&lt;/p&gt;
&lt;p&gt;本当のところ、厨川さんがどう思うかは分からなかったけど、自分の発言のせいで傷つくのは自業自得……そう、自業自得だと心の中で言い聞かせる。そんな葛藤を知る由もない先輩は「えぇ、そうね……確かに……」と何度か繰り返してから、ふと顔を上げてきらきらとした目で私を見つめた。&lt;/p&gt;
&lt;p&gt;「じゃあ、春木場と私が付き合いましょうよ。春木場なら、きっと雫も喜ぶと思うわ」&lt;/p&gt;
&lt;p&gt;「……えっ？」&lt;/p&gt;
&lt;p&gt;持ち上げかけたコーヒーカップが思わずがちゃ、と手から滑り落ちた。先輩には知られたくなかった動揺が、辺りに響いて私に跳ね返る。気まずさを誤魔化すようにカップとソーサーに傷がないか確認しているうちに、張り詰めた緊張が私の返答を待つ重い沈黙に変わっていくのが分かった。&lt;/p&gt;
&lt;p&gt;顔を上げると、先輩はまたマスクの下で楽しそうな笑顔を浮かべている。&lt;/p&gt;
&lt;p&gt;「えーと……厨川さんが喜んだら、意味ないんじゃないですか？」&lt;/p&gt;
&lt;p&gt;「でも、雫のいやがることはしたくないわ」&lt;/p&gt;
&lt;p&gt;「じゃあ、別に浮気なんてしなくていいんじゃ……」&lt;/p&gt;
&lt;p&gt;「だって、春木場は私のこと好きでしょう？　それとも、もう誰かと付き合っているのかしら。春木場ってとっても可愛いから、ありえないことではないけれど」&lt;/p&gt;
&lt;p&gt;突然乗り気になった先輩は、相談相手という微妙な距離感を軽々と飛び越えてきた。付かず離れずの距離で二年間上手くやってきたのに、先輩はそれを無作法にも一瞬で台無しにしてしまったのだ。やっぱり、厨川さんに悪い影響を受けているに違いない。&lt;/p&gt;
&lt;p&gt;「決めつけないでくださいよ。恋人なんていませんけど、先輩が好きだから誰とも付き合わないとか、そんなんじゃないですから。先輩はちょっと綺麗ってだけで、調子に乗りすぎです」&lt;/p&gt;
&lt;p&gt;先輩の話を聞いているうちに、私だったら……と思うこともあるけれど、それはあくまで厨川さんの言動を書き換えるだけの妄想だ。決して、私自身が先輩と付き合う想像なんかじゃない。&lt;/p&gt;
&lt;p&gt;でも、私と先輩が付き合えるなら。それも、先輩に厨川さんを諦めさせずに済むとしたら。&lt;/p&gt;
&lt;p&gt;「春木場は、私のことが嫌いなのかしら？」&lt;/p&gt;
&lt;p&gt;「好きとか、嫌いとか、私たちってそういう仲じゃありませんよ」&lt;/p&gt;
&lt;p&gt;「じゃあ、今からそういう仲になればいいじゃない。雫の驚いた顔が見られるまで、それだけでいいのよ。ねぇ、だめ？」&lt;/p&gt;
&lt;p&gt;先輩が私の手を握って、困った目つきでそう頼み込む。もう逃げられない。私はこの瞳に弱かった。&lt;/p&gt;
&lt;p&gt;「……分かりました。少しだけですからね」&lt;/p&gt;
&lt;p&gt;不承不承といった態度とは裏腹に、心臓のバクバクが止められなくて、先輩に聞こえてしまわないか心配になる。さりげなくコーヒーカップを持ち上げるのさえ怖くなって、じっと鼓動が収まるのを待つしかない。&lt;/p&gt;
&lt;p&gt;きっと、先輩の目には不思議に映ったろう。でも、それが私にできる精一杯の強がりだった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「春木場、よく来たわね。自分の家だと思ってくつろいでちょうだい」&lt;/p&gt;
&lt;p&gt;次の日、私は先輩に招かれて二人の家に訪れていた。&lt;/p&gt;
&lt;p&gt;「あ、春木場ちゃん？」&lt;/p&gt;
&lt;p&gt;「お邪魔してます、厨川さん」&lt;/p&gt;
&lt;p&gt;先輩の横に、頭一つ小さい厨川さんが飛び込むように寄り添った。二人の間に私が入ると、ちょうど階段のように並ぶことになる。胸はちょうど真逆……というか、厨川さんだけが飛び抜けて大きいだけだけど。先輩がこの下品な巨乳に惹かれていたとしたら、なんて自傷じみた想像をすると、ちょっとくらっとする。&lt;/p&gt;
&lt;p&gt;「じゃあ、春木場ちゃんとお話するから、小町は少し休んでてね」&lt;/p&gt;
&lt;p&gt;「あら、私は仲間外れなの？」&lt;/p&gt;
&lt;p&gt;「小町の恋人同士だけで、おしゃべりしたいこともあるよ。ね、春木場ちゃん？」&lt;/p&gt;
&lt;p&gt;先輩は厨川さんに言い返せず渋々引き下がると、終わったら呼んでちょうだいね、と言い残して自室へと戻っていった。それに合わせるように、厨川さんは奥のダイニングチェアに腰掛けて、私にテーブルを挟んで向かい側に座るように促した。&lt;/p&gt;
&lt;p&gt;「小町、可愛い？」&lt;/p&gt;
&lt;p&gt;「いえ、昨日付き合ったばかりなので、あんまり分かりませんけど……瞳が綺麗な人だと思います」&lt;/p&gt;
&lt;p&gt;「そう？　可愛いところもいっぱいあるんだよ。飄々として見えるんだけど、意外と感情がだだ漏れっていうか、この前も――」&lt;/p&gt;
&lt;p&gt;知ってる。知ってます。私にも見せてます、それ。話を遮って思わずそう言ってしまいそうになるけれど、今は様子見に徹することにした。&lt;/p&gt;
&lt;p&gt;「やっぱり、私が居なきゃだめっていうか、意外と抜けてるところがあるから――」&lt;/p&gt;
&lt;p&gt;しかし、相槌を打ちながら放っておくと、厨川さんは先輩との生活の自慢を繰り返すばかりで全く口が止まらない。さばさばとした性格に見えるのは単に遠慮がないだけで、その実、かなり嫉妬深い人なんじゃないだろうか。&lt;/p&gt;
&lt;p&gt;そうだとしたら、なぜ浮気をしていいなんて言ったのか分からないけど、もしかしたらこうやってマウントを取るためだとしたら……ゲーッ……それにしても、もしかして会うたびこれに耐えなきゃいけないのか。&lt;/p&gt;
&lt;p&gt;「あ、ごめん。マウント取ってるみたいでいやな感じになっちゃったね。あなたが小町と深い仲なのは、よく知ってるから」&lt;/p&gt;
&lt;p&gt;厨川さんはそう言って釈明するけれど、それだって見方を変えれば一種のマウントだ。こういうときは、何を言っても揚げ足を取られるものだと学んでほしい。厨川さんは口が上手いけど、話せば話すほど胡散臭く聞こえてくるというか、どうにも――&lt;/p&gt;
&lt;p&gt;「えーと……恋人のよさって、他人に言ってもただのノロケになっちゃうから。話し相手ができて嬉しかったんだよ。つい喋りすぎちゃった。ごめんね」&lt;/p&gt;
&lt;p&gt;「あ……わ、分かります！　先輩っていっぱい可愛いところがあるんですけど、友だちに話しても全然理解してもらえないっていうか……」&lt;/p&gt;
&lt;p&gt;――そこまでまくし立てて、私は慌てて口をつぐんだ。あまりに共感できる話題のせいで、脳より口が先に出てしまったのだ。軽率だった。好意的な反応を見るや、厨川さんは追い討ちをかけるように先輩について語り始めた。&lt;/p&gt;
&lt;p&gt;「そう、そうなの！　小町って、周りに弱さを見せようとしないから、誰も想像できないんだよね。ここでいう弱さって、もちろん可愛らしさに直結してるんだけど――」&lt;/p&gt;
&lt;p&gt;「……そうなんですよ！　分かります、分かりますけど！」&lt;/p&gt;
&lt;p&gt;それから、私は我慢するのを諦めて、厨川さんと先輩のよさについて語り合った。ひとしきり話したあとに「私たち、仲良くしましょうね」と厨川さんが差し出す手を握ると、先輩とは少し違った小さくてがっしりとした感触が広がる。いつの間にか、最初の嫉妬深くてネチネチとした印象はすっかり吹き飛んでいた。&lt;/p&gt;
&lt;p&gt;意外と分かり合える人なのかもしれない。いや、当たり前なんだけど。先輩が選んだ人なんだし。&lt;/p&gt;
&lt;p&gt;「厨川さん、先輩に浮気してもいいって言ったんですよね」&lt;/p&gt;
&lt;p&gt;「言ったよ。どうして？」&lt;/p&gt;
&lt;p&gt;「先輩が、意図が分からなくて悩んでました。あぁいうのやめてください。厨川さんって、自分が突っ走るばかりで、周りへの言葉が足りないんですよ」&lt;/p&gt;
&lt;p&gt;「あちゃー、痛いところを突くね。私のこと、小町からよく聞いてるんだ」&lt;/p&gt;
&lt;p&gt;「そうですね。まぁ……それなりに」&lt;/p&gt;
&lt;p&gt;厨川さんは腕組みをして背もたれに身体を預ける。そして、幾許か考え込んでから、沈黙を楽しむように少しずつ言葉を並べ始めた。&lt;/p&gt;
&lt;p&gt;「でもさ、束縛ってあんまり意味がないんだよね。私はどこにも行かない、小町もどこにも行かない、春木場ちゃんだって、そう。必要なのはこれだけなんだから」&lt;/p&gt;
&lt;p&gt;「それって、不安になったりしないんですか？　今日は大丈夫だけど、明日はどこかに行ってしまわないかって、怖くなったりはしませんか？」&lt;/p&gt;
&lt;p&gt;「怖くないよ。たとえ途中で離れたとしても、最後は一緒になるんだから、私たち」&lt;/p&gt;
&lt;p&gt;根拠のない未来をずばりと言ってのける目は、少しだけ先輩に似ていた。やっぱり、厨川さんも「正妻の余裕」持ちだ。どこまでも通用する自信と信頼。中途半端な誘惑には負けない強力な守り。でも、正妻と正妻って、相性が悪そうなんだけどな。だからこそ、私みたいな存在が必要だったと思えば、辻褄が合うけれど。&lt;/p&gt;
&lt;p&gt;「束縛は信頼の代わりなんだよ。束縛すれば誰かを自分のそばに固定できるかもしれないけど、それは人間関係をサボってるだけなんじゃないかな。私たちは、変わりながら生きているんだもの」&lt;/p&gt;
&lt;p&gt;「なんとなく分かる気がしますけど……私にはまだちょっと難しいかもしれないです」&lt;/p&gt;
&lt;p&gt;「私は誰にも縛られたくないし、小町を縛りたくもない。あとはひたすら信心かな。まぁ、そんなに高尚なものじゃないけどね」&lt;/p&gt;
&lt;p&gt;手のひらを合わせて擦り合わせて笑う厨川さんは、おどけたふりをしてみせるけど、見えない未来を心の底から信じているように思えた。この人たちの間に入り込む隙なんてあるんだろうか。厨川さんを驚かすために付き合っているふりをしている自分が、馬鹿らしく思えてくる。&lt;/p&gt;
&lt;p&gt;「あの、厨川さん。実は私、先輩に言われて厨川さんにドッキリを仕掛けようと――」&lt;/p&gt;
&lt;p&gt;「春木場はおかしなことを言うのね。雫が勘違いしちゃうじゃない」&lt;/p&gt;
&lt;p&gt;と、自室で待機していたはずの先輩が突然リビングに飛び出してくる。思わず立ち上がると、ダイニングチェアががたり、と音を立てて倒れてしまった。慌てて後ろを確かめて椅子を起こしているうちに、脳がやっと状況を理解し始める。&lt;/p&gt;
&lt;p&gt;「……えっ！　先輩、聞いてたんですか？」&lt;/p&gt;
&lt;p&gt;「聞いていたというか、聞こえるのよ。雫って悪趣味よね」&lt;/p&gt;
&lt;p&gt;「あははっ！　まぁまぁ。この家で互いの声が聞こえないように過ごすなんて、茶番みたいなものだよ。覚えておいて、春木場ちゃん」&lt;/p&gt;
&lt;p&gt;ふと、あらゆる方向から先輩を褒めちぎるいろいろな言葉を聞かれていたのに気づいて、急に恥ずかしくなる。&lt;/p&gt;
&lt;p&gt;厨川さんは、さっきまでのまるで何度か転生を繰り返したような達観した態度なんて嘘みたいに、涙を浮かべるほど無邪気に笑い転げていた。まさか、厨川さんはこうなることを知って、私から言葉を引き出そうとしていたのか。……やっぱり、気に食わない。&lt;/p&gt;
&lt;p&gt;「春木場って、私のことをあんな風に思っていてくれていたのね。でも、遠慮せず言わなきゃだめよ」&lt;/p&gt;
&lt;p&gt;「はーい……」&lt;/p&gt;
&lt;p&gt;こんなのまるで、私の想いを確かめるための逆ドッキリだ。それにしても、厨川さんにはそんなことを言わないところを見ると、もしかして、厨川さんはいつもあんな口説き文句のような褒め言葉を、先輩に直接言い聞かせているんだろうか。なんというか……恋人ってすごいな。&lt;/p&gt;
&lt;p&gt;「それで、春木場ちゃんは私を騙すために小町と付き合ったって言ってるけど。そうなの、小町？」&lt;/p&gt;
&lt;p&gt;「あら、そんなわけないでしょう？　春木場って、私のことが嫌いなの？」&lt;/p&gt;
&lt;p&gt;厨川さんがわざとらしく芝居がかった口調でそう尋ねると、やはり先輩はそれに応えて大げさに驚いてみせた。こんなの、一から十まで茶番だ、茶番。二人がその気なら、私だって歯の浮くような台詞で先輩の余裕を崩してみせる。&lt;/p&gt;
&lt;p&gt;「好きですよ。私、先輩の瞳が一番好きです。吸い込まれそうなほどに深くて綺麗で、ずっと見ているうちに私の全部が先輩に包まれてしまうような、そんな気持ちになるんです。だから、好き……です」&lt;/p&gt;
&lt;p&gt;「……ありがとう。嬉しいわ、春木場。じゃあ、決まりね。これから、三人で楽しく生きていきましょう？」&lt;/p&gt;
&lt;p&gt;そう言って、先輩が私を強く抱きしめた。私も抱きしめ返そうとするけれど、初めて体感する先輩の柔らかさに身体が固まって動かない。「私も私も！」と、後ろに回り込んだ厨川さんも、新手の自己紹介だと言わんばかりに下品な胸をこれでもかと押し付けてきた。……やっぱり、気に食わない。&lt;/p&gt;
&lt;p&gt;いや、待て。おかしいな、顔が真っ赤なの……多分私だけだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;あの日、先輩たちの家で三人が顔を合わせた数日後、みんなで仲良くインファウイルス――もちろん、厨川さんが持ってきたものだろう――に感染して、早くて二日、遅くて四日の発熱が続いた。厨川さんが一番早く回復して、私が一番最後だ。&lt;/p&gt;
&lt;p&gt;熱が下がった次の日、治りかけの一番油断しがちなタイミングで、二人が看病に来てくれたのは嬉しかった。一仕事終えたような清々しい表情の先輩が、心細くないようにと枕元で撫でていてくれたし。元気そうな厨川さんが「春木場ちゃん、ごめんねー」と悪びれることもなく笑っていたのは、気に入らなかったけど。&lt;/p&gt;
&lt;p&gt;とはいえ、致死率から見れば生還できたこと自体は重要ではなかった。このウイルスの真の脅威は、強力な後遺症なのだから。&lt;/p&gt;
&lt;p&gt;「橋場。日用品とか、いろいろ送ってくれてありがとう。助かったよ」&lt;/p&gt;
&lt;p&gt;「で、検査結果はどうだったの？」&lt;/p&gt;
&lt;p&gt;「私は大丈夫だった。先輩たちは、二人ともだめだったみたい」&lt;/p&gt;
&lt;p&gt;回復後の検査は感染者の義務だった。保健所に何枚か書類を提出すると、指定病院での検査の予約票が渡される。無料のCTと採血を経て一週間後に、また保健所に行けば検査結果を受け取ることができた。感染者のための検査というよりは、国が出生率予測を下方修正するためのデータを集めるためのものなのだろう。&lt;/p&gt;
&lt;p&gt;結果を知った二人は、私に後遺症が残らなかったことをとても喜んでいた。彼女たち自身の結果については――いい結果だったとしても、おそらく――気にしていないように見えた。あとで先輩に訊いてみたけれど、「知るまではドキドキするけれど、知ってしまうと興味がなくなるものね」と言っていた。&lt;/p&gt;
&lt;p&gt;「よかったね。やっぱり当たらずに済んだじゃん」&lt;/p&gt;
&lt;p&gt;そう言って、橋場は嬉しそうに最近の統計を交えて発症率の安定性について話し始めた。残りの二人に後遺症が残ったことは気にしていないようだ。まぁ、橋場にとっては面識のない二人の妊孕性なんてどうでもいいのだろう。私としても、それくらいの距離感でいいと思うけど。&lt;/p&gt;
&lt;p&gt;「うん。そもそも二割だし、三人まとめてかかる確率なんて――」&lt;/p&gt;
&lt;p&gt;「〇・八パーセント。よほど運が悪くないと、当たらないよね」&lt;/p&gt;
&lt;p&gt;橋場が私の言葉を遮るようにそう告げて、「一人だけ助かる確率なら、九・六パーセント。そう考えると、割と運が悪かったのかも」と付け足した。計算が速いというか、待ってましたと言わんばかりのタイミングだ。わざわざ覚えていたんだろうか。&lt;/p&gt;
&lt;p&gt;「私だって、それなりに心配してるんだよ。春木場の婚期に関わるんだから」&lt;/p&gt;
&lt;p&gt;「そうだよね。いつもありがと、橋場」&lt;/p&gt;
&lt;p&gt;両親は、感染の事後報告にこそ強く怒っていたものの、後遺症が残らなかったと聞くと崩れ落ちるように安堵していた。私だけ発症しなかったのは日頃の行いがよかったからだとか、子孫を残すのは助かったあなたの使命なんだからねとか、云々。&lt;/p&gt;
&lt;p&gt;「これから、どうするの？」&lt;/p&gt;
&lt;p&gt;先輩たちは、体調が落ち着いたら三人で暮らし始めようと提案してくれた。この時期に新しい暮らしを始めるのはリスクが伴いがちだけど、既に後遺症ガチャを引き終わった私たちに心配はない。両親も、「頼りになる先輩たちと暮らしたい」とだけ言えばきっと賛成してくれるだろう。&lt;/p&gt;
&lt;p&gt;そして――これはまだ両親に伝える気はないけど――もし三人で生きていく中で子供が必要になったら、私に産んでほしいと懇願された。検査結果から考えれば当然のことだし、三人で暮らす時点で同意しているとみなして先に進めてもいいようなことだと、個人的には思っていた。わざわざ先に言わずとも、必要になったときに話し合えばいいのだから。&lt;/p&gt;
&lt;p&gt;でも、そうやって流れのうちに誤魔化さないところが好きだ。&lt;/p&gt;
&lt;p&gt;「まぁ、私も先輩が好きだから、やれるところまでやってみようと思ってる。別に、今すぐに大学を辞めて産めって言われてるわけじゃないし」&lt;/p&gt;
&lt;p&gt;「厨川さんは？　春木場は好きじゃないんでしょ？」&lt;/p&gt;
&lt;p&gt;「別に、厨川さんと愛し合うわけじゃないから。一緒に暮らすだけで、今までとあんまり変わらないよ。同じ人を好きになったんだし、きっかけがなかっただけで、たぶん仲良くなれると思うんだよね」&lt;/p&gt;
&lt;p&gt;先輩を近くでずっと見てきたけど、今までは「ただの相談相手」という透明な壁が私の視界を遮ってきた。でも、その壁を先輩が破ってくれて、これからは二人の輪の中に私も飛び込むんだ。私も正妻みたいな顔をして、堂々と。だから、これからは少し遠慮がなくなるだけ。&lt;/p&gt;
&lt;p&gt;「だからね、三人で暮らせるように、もっと広いところに引っ越そうって」&lt;/p&gt;
&lt;p&gt;「……強いね、春木場は」&lt;/p&gt;
&lt;p&gt;「そんなことないよ。物件は先輩たちが詳しいし、荷解きもあんまり終わってなかったから、開けた分を詰め直したら終わりかな。かなり省エネって感じ」&lt;/p&gt;
&lt;p&gt;三人の新居は、先輩たちの家から近い物件に決まりつつあった。荷物の少ない私の家から遠い物件になるのは問題ないし、むしろ大学には近くなるので好都合だった。今よりも防音のいいところを探したせいで、バイトは増やさなきゃいけなくなりそうだ。&lt;/p&gt;
&lt;p&gt;「いや、春木場のそういう強さ、私はいっぱい見てきたつもりだよ」&lt;/p&gt;
&lt;p&gt;「そう……かな。なんか、照れるね」&lt;/p&gt;
&lt;p&gt;まるで達観したような口ぶりで、橋場はそう呟いた。橋場が私を褒めるなんて、インファにかかって熱でも出ているんじゃなかろうか。私の強さだなんて、些か過大評価の気がするけれど。&lt;/p&gt;
&lt;p&gt;「じゃあ、そろそろ切るね。厨川さんに呼ばれててさ。なんか、また二人で話したいって」&lt;/p&gt;
&lt;p&gt;「あ……うん。ねぇ、春木場。もしもの話なんだけど……」&lt;/p&gt;
&lt;p&gt;「何？」&lt;/p&gt;
&lt;p&gt;「ううん、やっぱりなんでもないや。引っ越し、頑張ってね。私が――」&lt;/p&gt;
&lt;p&gt;橋場が何か言っていたような気がするけど、訊き返したときにはもう電話は切れてしまっていた。大事なことだったら橋場からかけてくるだろうし、また明日話せばいいか。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「はー、お疲れ様。夕飯はピザでいいよね？　引っ越しの定番ってことで」&lt;/p&gt;
&lt;p&gt;「雫、今日はチーズを足しちゃだめよ。食べたあとに動けなくなっちゃうから」&lt;/p&gt;
&lt;p&gt;「了解。春木場ちゃんは？」&lt;/p&gt;
&lt;p&gt;スマホを握った雫さんが、腰をぐるりとひねってこちらを向く。すっぽ抜けそうに大げさなアクションは、今日の彼女が特に上機嫌なことを意味していた。荷解きと整理を繰り返してぐったりした私たちとは対照的に、雫さんは荷物を運ぶたびに元気になっている気がする。不思議な人だ。&lt;/p&gt;
&lt;p&gt;「えーと、シーフード以外なら何でもいいです」&lt;/p&gt;
&lt;p&gt;「オッケー。じゃあ、頼んじゃうね」&lt;/p&gt;
&lt;p&gt;雫さんは、ピザ休憩を挟んでまだまだ荷解きを続けるぞと言わんばかりに動き回っているけれど、私たちはもうギブアップ寸前だ。正直、ピザなんて食べたらチーズを増さなくても動けない気がする。&lt;/p&gt;
&lt;p&gt;「いつか、私たちだけの家を建てたりしたいね。庭付きで犬付きの大きな家をさ」&lt;/p&gt;
&lt;p&gt;「いいわね。子供部屋も広くして、三人で愛を注いであげましょうね。きっといい子に育つわ」&lt;/p&gt;
&lt;p&gt;小町はよく子供のいる未来を語って聞かせてくれるから、それまでは私はちゃんと役に立てるんだと実感できる。きっと、近い将来のうちに私はこの家に大きな貢献をすることになるだろう。初めは少し不安だったけど、今ではもうわずかな高揚心を以て迎えられるほどの現実になりつつあった。&lt;/p&gt;
&lt;p&gt;「ちょっと、電話してきます」&lt;/p&gt;
&lt;p&gt;あの電話から今日まで、引っ越しの準備やバイト探しが忙しくて橋場に電話をかける隙もなかった。一段落したタイミングで一報入れておかないと、ズルズルと引き伸ばしてずっと連絡できない気がしたから。&lt;/p&gt;
&lt;p&gt;「あれ……通じない」&lt;/p&gt;
&lt;p&gt;しかし、おかけになった電話番号は現在使われておりません……使われておりません。番号を変えたなんて言ってなかったのに。どうしたんだろう？　何度か試してみたけれど、もちろん結果は変わらない。何かあったんだろうか。&lt;/p&gt;
&lt;p&gt;「春木場ちゃーん！　管理人さんの応対お願いできるー？」&lt;/p&gt;
&lt;p&gt;「あ、はーい。今行きます」&lt;/p&gt;
&lt;p&gt;それから数日待っても、橋場からの連絡が来ることはなかったけど、きっとまたいつかふらっと会いに来るだろう。橋場はそういうやつだ。たまに橋場のことを思い出して心配になるけれど、そのたびに確信めいた自信がふっと湧いて、私を日常に引き戻していった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://www.navitime.co.jp/maps/routeResult?start=%7B%22name%22%3A%22%E5%9B%9B%E5%8D%81%E5%9B%9B%E7%94%B0%E3%83%80%E3%83%A0%22%2C%22lat%22%3A39.754813%2C%22lon%22%3A141.145764%2C%22spot%22%3A%2202022-1383436%22%2C%22road-type%22%3A%22default%22%7D&amp;amp;via=%5B%7B%22name%22%3A%22%E5%8E%A8%E5%B7%9D%22%2C%22lat%22%3A39.744228%2C%22lon%22%3A141.128824%2C%22node%22%3A%2200004533%22%2C%22road-type%22%3A%22default%22%2C%22stay-time%22%3A%220%22%7D%2C%7B%22name%22%3A%22%E6%98%A5%E6%9C%A8%E5%A0%B4%22%2C%22lat%22%3A39.693423%2C%22lon%22%3A140.943704%2C%22node%22%3A%2200003595%22%2C%22road-type%22%3A%22default%22%2C%22stay-time%22%3A%220%22%7D%5D&amp;amp;via-type=1&amp;amp;goal=%7B%22name%22%3A%22%E7%A5%9E%E5%AE%AE%E5%AF%BA%22%2C%22lat%22%3A39.495263%2C%22lon%22%3A140.425871%2C%22node%22%3A%2200004436%22%2C%22road-type%22%3A%22default%22%7D&amp;amp;unuse=domestic_flight.superexpress_train.ultraexpress_train.sleeper_ultraexpress.local_bus.highway_bus.ferry.express_train.semiexpress_train"&gt;四十四田ダム～厨川～春木場～神宮寺&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>パラ=セックス</title><link href="https://ama.ne.jp/post/cocoac/" rel="alternate"/><published>2021-01-17T17:32:00+09:00</published><updated>2021-01-17T17:32:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2021-01-17:/post/cocoac/</id><summary type="html">&lt;p&gt;ニューノーマル=コミュニケーション&lt;/p&gt;</summary><content type="html">&lt;p&gt;「Ｂ子、起きた？」&lt;/p&gt;
&lt;p&gt;キッチンから戻ってきたＡ子が「気分はどう？」と言って、テーブルの上にトレイを置いた。&lt;/p&gt;
&lt;p&gt;「ちょっと、あつい……かも」&lt;/p&gt;
&lt;p&gt;すん、と鼻を鳴らすと、数カ月の &lt;em&gt;自粛&lt;/em&gt; のせいで忘れかけていた懐かしい香りがする。ベッドに横たわったままでも、何が運ばれてきたかはよく分かった。Ａ子の作る手料理は、レバニラしか食べたことがなかったから。あとは、ゆでこぼしただけのほうれん草と、温めたレトルトご飯くらい。味が薄いというよりはただ単調で、唐辛子をたくさんかけてやっと完成する料理だと、わたしは思っている。&lt;/p&gt;
&lt;p&gt;「ねぇ、今日はピザでも頼まない？　ほんとはね、レバニラってあんまり好きじゃないの。女の子っぽくなくて、いや」&lt;/p&gt;
&lt;p&gt;「でも、 &lt;em&gt;これ&lt;/em&gt; の後はちゃんと鉄分を取るって約束でしょ？　ね、頑張って作ったから」&lt;/p&gt;
&lt;p&gt;Ａ子がわたしの顔を覗き込む。飛び込んでしまいたくなるほど綺麗な瞳の向こうにあるのは、興奮、慈愛、後悔、困惑、あとは……なんだろう？　もっと、もっと教えて。&lt;/p&gt;
&lt;p&gt;白い不織布のマスクを外して、そっと裏返す。点々と飛び散った血が、乾いて茶色く固まっていた。きっと、Ａ子の黒いウレタンマスクにもわたしの血が染み込んでいるのだろう。ベッドに敷かれたごわごわの大きな白いタオルにも、擦れて伸びた血の跡が小さな花のように広がっている。鼻を押しつけると、Ａ子と同じ柔軟剤のいい匂いがした。&lt;/p&gt;
&lt;p&gt;じくじくとした痛みが走って、また身体が熱くなる。思い出すだけでドキドキする。気を失っている間に腕に巻かれた包帯の下には、Ａ子とわたしがつけた切り傷がたくさん並んでいるはずだ。頬には四角く折ったガーゼが貼られていて、上から撫でるたびに殴られた痛みを思い出す。首についた指の跡は数日も経てば消えるけど、それまでは何度だって鏡に見とれてしまうだろう。&lt;/p&gt;
&lt;p&gt;じわ、と涙がにじんで、目尻から流れる。Ａ子は、今でもわたしが泣くのには慣れていないようだった。&lt;/p&gt;
&lt;p&gt;「Ａ子、撫でてよ。まだ、ちょっと痛むみたい」&lt;/p&gt;
&lt;p&gt;「……ん」&lt;/p&gt;
&lt;p&gt;お腹をそっとなぞるＡ子の指が、かさかさした古い火傷の跡を削り取るように辿っていく。何度も、何度も。このぽつぽつとした醜い傷だけは、Ａ子のものではなかった。わたしの痛みは、Ａ子だけのものなのに。だから、もっと消して。全部消して。嬉しい。嬉しい。Ａ子、Ａ子！&lt;/p&gt;
&lt;p&gt;わたしだって、Ａ子への欲望がリモートやバーチャルで満たされるなら、それでよかった。画面越しにＡ子の声を聴いて、彼女の &lt;em&gt;道具&lt;/em&gt; になったわたしの手で自分を痛めつけて満足できるなら、ずっとそうしていたかった。でも、画面の中のＡ子はわたしの目を見てくれないから。画面の中のＡ子はわたしに手料理を食べさせてくれないから。目の前に置かれているのは美味しくもないデリバリーのレバニラだけで、そこには誰もいなかった。離れていても心は通じるなんて、嘘だ。&lt;/p&gt;
&lt;p&gt;Ａ子が画面の向こうから届けてくれるレバニラは、最悪なことに、Ａ子の手料理よりも美味しかった。ちゃんとレバーを素揚げしてあって、味も濃くて、野菜とのバランスも完璧だから。でも、わたしはどうしても好きになれなかった。泣きながら一人で食べるご飯の味を噛み締めていると、Ａ子の匂いを忘れそうになってしまうから。&lt;/p&gt;
&lt;p&gt;「Ｂ子。泣かないで」&lt;/p&gt;
&lt;p&gt;Ａ子はそう言うと、おしゃぶりでもくわえさせるように、わたしの口にココアシガレットを挿し込んだ。唇で端を支えて舌を動かすと、ココアとハッカのすっとした匂いと一緒に、安っぽい砂糖の甘さがまとわりつく。ぼんやりと吸い口を舐めるわたしを見下ろしながら、Ａ子もゆっくりと小さなラムネ菓子をくわえた。&lt;/p&gt;
&lt;p&gt;ココアシガレットはたばこのおもちゃだ。煙は出ないし、熱くならないし、奥歯で噛み砕いたって苦くもない。心が落ち着かないときは、いつもこれがよく効く。小さな箱にたったの6本しか入っていないから、30箱入りの大きなケースを買っても、たった180本。一人でいる間はすぐにガリガリと噛んでしまうから、3日もあれば空っぽになるだろう。&lt;/p&gt;
&lt;p&gt;おもちゃは火を使わないから好きだ。パパのことを思い出さなくて済むから。&lt;/p&gt;
&lt;p&gt;「ね、キスしてよ」&lt;/p&gt;
&lt;p&gt;ココアを溶かしたみたいに甘えた目つきで見上げると、それに応えてＡ子がそっと顔が近づける。こつ、と二人の火先を合わせるだけの、おもちゃのシガーキス。火を渡すという本来の意味をすっかり失った、ただの遊びのキス。それなのに、燃え上がる先端を何度も何度も擦り合わせているだけで、くらくらと息が浅くなっていくのが分かった。&lt;/p&gt;
&lt;p&gt;Ａ子の動きが止まるまで、ずっとそうしていた気がする。ただのおもちゃに意味を与えるように、本物を上から塗りつぶすように。夢中になってＡ子を貪っているうちに、わたしの頬にぽつぽつとしずくが降りそそいでいた。たばこの火のように熱くて苦しいのに、ハッカのように冷たくて心地いい。Ａ子が落とした小さな炎が、わたしに伝って燃え上がる。&lt;/p&gt;
&lt;p&gt;そんなＡ子の涙と一緒に、食べかけのシガレットが頬に落ちた。思わずわたしの口もゆるんで、上から十字に重なるように倒れてしまう。Ａ子は少し驚いた顔をして、それから、やっと自分が泣いているのに気付いたらしい。&lt;/p&gt;
&lt;p&gt;「あ……Ｂ子、ごめん。ごめんね？」&lt;/p&gt;
&lt;p&gt;ねぇ、泣かないでよ。わたしはＡ子の頬を撫でようとしたけれど、どうしても腕が動かない。べたべたした砂糖菓子が溶けて、身体に染み込んでしまったみたいだ。太い鎖できゅっと胸が締め付けられるような、かみそりなんかじゃ傷つけられない場所が裂けるような、ずんと重い痛み。上から押さえつけても止まらない。全然止まらない。痛い、痛い！&lt;/p&gt;
&lt;p&gt;「大丈夫だよ、大丈夫だから。もっとしてよ、Ａ子……」&lt;/p&gt;
&lt;p&gt;Ａ子だけがここにいて、わたしに &lt;em&gt;本物の痛み&lt;/em&gt; を与えてくれる。嬉しくなって「この痛みも、Ａ子のものだよ」と言って彼女を見上げるけれど、それを聞いたＡ子はさらに激しく泣きじゃくってしまった。どうして、どうして？&lt;/p&gt;
&lt;p&gt;身体を燃やし尽くしてしまうかのような痛みが押し寄せて、わたしはまた気を失った。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>2020/12/01～2020/12/29</title><link href="https://ama.ne.jp/post/report-20201229/" rel="alternate"/><published>2020-12-29T21:01:00+09:00</published><updated>2020-12-29T21:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-12-29:/post/report-20201229/</id><summary type="html">&lt;p&gt;2020/12/01～2020/12/29のレポート&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おしらせ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;かいた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;あまねけ！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;外部&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;かいている&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;おしらせ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;週報～月報をやりたいなと思ったのでやります。&lt;/li&gt;
&lt;li&gt;アドベントカレンダーに参加したので、多くの記事が公開されています。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/5688"&gt;百合SS Advent Calendar 2020&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/5686"&gt;筑波大学文芸部関係者による Advent Calendar 2020&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/"&gt;あまねけ！&lt;/a&gt;のヘッダに最新記事（1ヶ月以内）の数が表示されるようになりました。&lt;ul&gt;
&lt;li&gt;同様に、1ヶ月以内に投稿した記事は &lt;img alt=":love_letter:" class="emoji" height="16" src="/emojis/1f48c.png" width="16"&gt; アイコンになっています。&lt;/li&gt;
&lt;li&gt;無みたいなツイートするよりは、まとまった記事をかいたほうが健全なはずなので……。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/new/"&gt;記事のリクエスト機能&lt;/a&gt;をリリースしました。気軽に送ってください。&lt;/li&gt;
&lt;li&gt;なんとなく&lt;a href="/donation/"&gt;寄付&lt;/a&gt;のページやpixivFANBOX&lt;sup id="fnref:fanbox"&gt;&lt;a class="footnote-ref" href="#fn:fanbox" title="https://amane-katagiri.fanbox.cc/ （2020-09-22挿入: 現在は閉鎖済み）"&gt;1&lt;/a&gt;&lt;/sup&gt;をつくりました。いつもありがとうございます。&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.patreon.com/amane_katagiri"&gt;Patreon&lt;/a&gt;もあります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_2"&gt;かいた&lt;/h2&gt;
&lt;h3 id="_3"&gt;あまねけ！&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/lastbus/"&gt;おわりのバスで&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;自覚なく性欲を向けられてる人が知恵袋に投稿した質問みたいな文章を書きたいなと思っていたら、こんな仕上がりになってしまいました。&lt;/li&gt;
&lt;li&gt;縛った手を使って自慰するのは体勢に無理があるのでは？という指摘を見て、確かに！と笑ってしまいました。&lt;/li&gt;
&lt;li&gt;増田に増田で言及したり、増田をブクマしてコメントする人って、他に何を楽しみに生きてるんでしょうか。少し気になりました。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/pool/"&gt;海が壊れる&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;りとことまりの面影を追っていたら、これを読んだ友人に手癖っすねと言われました。それなりに手癖だと思います。&lt;/li&gt;
&lt;li&gt;昔から考えていた、ライブチャットでレズプレイ2人と配信担当1人のテスト実装です。&lt;/li&gt;
&lt;li&gt;2人乗りでパッセンジャーが巨乳だとやっぱり邪魔なんですかね？　よく知りません。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/multi-channel/"&gt;マルチチャネルと懐古主義&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;昔の作品を読んでほしいな～みたいな記事です。&lt;/li&gt;
&lt;li&gt;プラットフォームにしがみつきながら文句を言い続ける声の大きいバカにRTするだけのバカが共感してバズるだけの時代が早く終わってほしいです。&lt;/li&gt;
&lt;li&gt;今後、可愛いイラストや音声が付く予定です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/door-scope/"&gt;ドアスコープ&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;ラブホで浮気セックスをしている描写と、夕日できらめくドアスコープの回想です。&lt;/li&gt;
&lt;li&gt;長い話は誰も読まないなと思ったので、短いお話を書きました。&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/sweet-1/"&gt;甘い煙に誘われて&lt;/a&gt;と方向が似た話です。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/smart-led/"&gt;やさしいひかり&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;尿意に合わせて光る不思議なLEDランプの話です。&lt;/li&gt;
&lt;li&gt;前回に引き続き、短くて面白い小話になるようにしました。&lt;/li&gt;
&lt;li&gt;デザインのモデルは、少し前にDAISOで売っていたイルミネーションリモコンライトです。固定12色とレインボー（5秒周期くらい）に光ります。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/sex-meter/"&gt;セックスメーター&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;11月に発行した&lt;a href="https://hentaigirls.net/book/next-kawaii-inversion/"&gt;next kawaii inversion&lt;/a&gt;に投稿した作品のWeb版です。&lt;/li&gt;
&lt;li&gt;記憶を失ったセクサロイドの「リリ」を匿うことになった「サナ」は、ある日リリの秘密を知ってしまう……&lt;/li&gt;
&lt;li&gt;ワンピースにピンクの麦わら帽子の可愛いセクサロイドと島を散歩します。それなりに楽しいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/denpa-culcap/"&gt;電波資本&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;昔話をしました。ラジオも全部デジタル放送になったらマジで石器時代の話になってしまう。&lt;/li&gt;
&lt;li&gt;懐かしくなったので図書館に「ぼくらの鉱石ラジオ」を借りに行きました。&lt;/li&gt;
&lt;li&gt;フォスターシーレーって、本当に電源なしでFM放送を聴取できるんでしょうか？&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_4"&gt;外部&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1339417852298756097"&gt;ドット絵&lt;/a&gt; をかきました。&lt;ul&gt;
&lt;li&gt;ニチレイの冷凍食品自販機をかきたかったのでかきました。&lt;/li&gt;
&lt;li&gt;カップヌードルの自販機や、懐かしいそば・うどんの自販機も並べています。&lt;/li&gt;
&lt;li&gt;旅行中に険悪になるのっていやですよね。&lt;/li&gt;
&lt;li&gt;pixivにも同じものを投稿しました: &lt;a href="https://www.pixiv.net/artworks/86350678"&gt;86350678&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/amane_katagiri/status/1342864703047929858"&gt;ドールの写真&lt;/a&gt; をとりました。&lt;ul&gt;
&lt;li&gt;久しぶりにボレロ制服セットを着せました。&lt;/li&gt;
&lt;li&gt;背景を白いボードにしたので、スタジオ撮影っぽい雰囲気になっています。&lt;/li&gt;
&lt;li&gt;Instagramに同じものと撮影後のオフショットを投稿しました: &lt;a href="https://www.instagram.com/p/CJRFyXcLcur/"&gt;CJRFyXcLcur&lt;/a&gt;, &lt;a href="https://www.instagram.com/p/CJRVh-DLevP/"&gt;CJRVh-DLevP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_5"&gt;かいている&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;とある駄菓子を使ったお話をかいています（リクエストより）。&lt;/li&gt;
&lt;li&gt;不器用なポリアモリーの実践みたいなお話をかいています。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:fanbox"&gt;
&lt;p&gt;https://amane-katagiri.fanbox.cc/ （2020-09-22挿入: 現在は閉鎖済み）&amp;#160;&lt;a class="footnote-backref" href="#fnref:fanbox" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="report"/></entry><entry><title>電波資本</title><link href="https://ama.ne.jp/post/denpa-culcap/" rel="alternate"/><published>2020-12-23T00:00:00+09:00</published><updated>2020-12-23T00:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-12-23:/post/denpa-culcap/</id><summary type="html">&lt;p&gt;鉱石ラジオと私&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://adventar.org/calendars/5686"&gt;筑波大学文芸部関係者による Advent Calendar 2020&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;インターネットが我々の人生を侵食するにつれて、地方生活 vs 都会生活の不毛な論争が激しくなっている。これは、インターネットが我々の物理的な距離概念を狂わせ、無効化してしまうせいだ。本来であれば知ることさえ難しい、あるいは不可能だったはずの離れた場所での暮らしぶりが、まるで隣家のそれのように感じられるようになった。また、そういう離れた場所の人間に対して、まるで隣家の騒音に苦情を述べるかのごとく強烈な罵声を浴びせることができるようになった。&lt;/p&gt;
&lt;p&gt;これにより、自分の生活を「隣家」に誇示し、あるいは「隣家」の生活に嫉妬する人が非常に多くなってしまったのだ。日本国では居住移転の自由が認められているが、不幸なことにそれを盾にして「地方生活に不満があるなら、今すぐ都会生活を始めよ！」と地方生活者を嘲る都会生活者もいるらしい。&lt;/p&gt;
&lt;p&gt;地方生活と都会生活の大きな違いの一つに、文化資本が挙げられるという。&lt;/p&gt;
&lt;p&gt;文化資本とは何か？　モノとしての本や美術品、形のない思想や芸術の素養、学歴などの文化的資産を、親から子に相続されうる資本として捉えた概念である。都会では美術館や博物館、学習塾や習い事にアクセスしやすく文化的素養を持った子が育ちやすいが、地方では映画館に行くのも一苦労だしガリ勉はいじめられるし娯楽がセックスくらいしかない……ので、都会で暮らしたほうがお得！という理屈らしい&lt;sup id="fnref:citizen"&gt;&lt;a class="footnote-ref" href="#fn:citizen" title="ただし、映画館や美術館の映画や美術品は誰かが独占・秘匿している資産ではない。"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;かくいう私も、大学進学で初めて関東（とはいえ茨城県南部だが）に引っ越してきた人間である。それまでは、岩手県の沿岸南部でインターネットで暴れることもなくひっそりと暮らしていた。文化資本という言葉を知ったのは大学に進んでからだが、思い出してみると、両親は地方生活なりに私が本や芸術にアクセスできるようサポートしてくれていたと思う。&lt;/p&gt;
&lt;p&gt;内陸に出かけるたびに、古着屋と古本屋がくっついたハローマックの居抜きみたいな店に連れて行かれた。去年の文フリでなかなか見つけられずにいたSONYの3.5インチフロッピー10枚組&lt;sup id="fnref:floppy"&gt;&lt;a class="footnote-ref" href="#fn:floppy" title="第二十八回文学フリマ東京で、作品を収録したフロッピーディスクを配布した。1125270163295596544, 1125332709272776704"&gt;2&lt;/a&gt;&lt;/sup&gt;とか、PC-98版の「下級生」とか、買い手がつかないだろう中古品が雑多に積まれていたのを覚えている。&lt;/p&gt;
&lt;p&gt;当時から電子工作に興味があったのは、そういう取り組みの成果だったのだろうか。クリスマスプレゼントとして復刻版電子ブロック&lt;sup id="fnref:extension"&gt;&lt;a class="footnote-ref" href="#fn:extension" title="フルカラーLEDやフォトダイオードのブロックが付いた拡張パックが付属していた。"&gt;3&lt;/a&gt;&lt;/sup&gt;も買い与えられた。その構造上ブロック同士の接触が悪化しがちで、組んだ後に浮かせたり押し込んだりしているうちに遊ぶのが億劫になってしまったが。&lt;/p&gt;
&lt;p&gt;軽率な「実験」もいろいろした。50Hzの電源を直流用モーターに繋いだら、回転方向が1秒に50回入れ替わって楽しいんじゃないか（どういうこと？）という予想を立てて、模型用モーターをコンセントに接続したのだ。もちろん、青白い火花が散ってモーターは使えなくなってしまった。怪我もなくブレーカーも落ちなかったのは不幸中の幸いだろう。電気分解だと言い張って食塩水に9V電池を繋げて放置していたら、いつの間にか液漏れしてぶっ壊れていたりもした。死ななくてよかったね。&lt;/p&gt;
&lt;p&gt;古本屋では、当時でも明らかに古すぎて役に立たない技術書を買い漁っていた。「子供の科学」はBASIC特集の回だった。Windows 98のデフラグツール解説書は、カラフルなセクタが整列していく様子が綺麗だったという思い出くらいしかない。家でパソコン（Windows XP）が使えるようになったのは、それよりずっと後のことだ。&lt;/p&gt;
&lt;p&gt;たまに図書館にも行っていた。青い鳥文庫とか、子供向けの技術解説書とか、HTMLタグの辞典とか、いろいろを読んでいた。その中でもよく印象に残っているのが、「&lt;a href="https://www.e-hon.ne.jp/bec/SA/Detail?refShinCode=0100000000000028321754"&gt;ぼくらの鉱石ラジオ&lt;/a&gt;」という本だった。返却した後にどうしても欲しくなって、わざわざ取り寄せて購入したのを覚えている。&lt;/p&gt;
&lt;p&gt;鉱石ラジオは、典型的には電源なしで中波のAM放送を受信するための装置である。コイルのみのL回路、あるいはコイルとコンデンサを組み合わせたLC回路（同調回路）にアンテナとアースを接続し、整流効果のある鉱石（鉱石検波器）を通してクリスタルイヤホンを鳴らすという、ラジオ受信機の中ではかなり単純な回路で構成されている。&lt;/p&gt;
&lt;p&gt;&lt;img alt="最も簡単な鉱石ラジオの回路図" height="450" src="/images/denpa-culcap/radio_circuit.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;小学4年生の私は、著者が深夜に聴いたという不思議な放送&lt;sup id="fnref:radio"&gt;&lt;a class="footnote-ref" href="#fn:radio" title="電離層の変化によって、遠方からの電波がよく届くようになる。"&gt;4&lt;/a&gt;&lt;/sup&gt;についてのエピソードや、美しい鉱石ラジオの写真の数々にすっかり夢中になった。だから、その夏は鉱石ラジオの自作と聴取で自由研究をすることにした。ただし、検波できそうな鉱石を手に入れるのは難しい。さらに調べてみると、鉱石検波器の代わりにゲルマニウムダイオードを使ってもいいようだ。結局、鉱石ラジオではなく、ゲルマラジオとして提出することになった。&lt;/p&gt;
&lt;p&gt;その頃には家にパソコンとADSLが導入されていたから、インターネットでゲルマニウムダイオードとバリコン、セラミックイヤホン、コイルに巻くための太い銅線を注文した。送料と代引手数料で総額が1.5倍くらいになった。親はクレジットカードを持っていなかった。&lt;/p&gt;
&lt;p&gt;トイレットペーパーの芯に竹串を添えて、銅線を揃えて巻く。竹串を下に巻いた部分が盛り上がるから、その部分の被覆を紙やすりで削ることで、銅線の一端をスライドして共振周波数を操作できるようになるのだ。それを小さな長方形のベニヤ板に取り付け、辺と四隅に画鋲を挿してその上ではんだ付けをした。本に載っていた綺麗な鉱石ラジオからは程遠かったが、立派なゲルマラジオの出来上がりだ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="スライダーつきソレノイドコイルの実装例" height="450" src="/images/denpa-culcap/solenoid.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;とはいえ、鉱石ラジオの受信性能を決めるのは同調・検波回路ではなく、アンテナやアースによる電波の受信機構である。アンテナは、とりあえず近所のホームセンターで追加購入したビニル被覆線を家中に這わせればよさそうだ。問題はアースだった。「ぼくらの鉱石ラジオ」によれば、アースは必須ではないけれど、家電用のアース端子や水道管に接続すれば受信性能が上がるという。しかし、なぜか家にはアース端子が見つからなかったし、床上から探れるような位置にある水道管が金属製だったのはかなり昔の話だ。アースへの接続は諦めた。&lt;/p&gt;
&lt;p&gt;アンテナを張り、セラミックイヤホンを耳に装着し、バリコンを回してみる……が、何も聞こえない。接触不良？　アースを接続していないから？　不安な気持ちになりながら、まずはアンテナ線をこたつのコードに巻きつけた。スイッチを入れて、切って、入れて、切って……イヤホンからカリッカリッとしたノイズが聞こえる。金属が擦れて火花が出ると電波になることは知っていた。つまり、ゲルマラジオ自身は確かに動作していて、単に電波強度が十分ではなかったのだ。&lt;/p&gt;
&lt;p&gt;それから頑張ってひねり出したアイデアは、アンテナを電話線に巻きつけるというものだった。ビニル線を50回ほど密に巻きつけて、祈りながらイヤホンを耳に当てた。かすかに何かが聞こえる。聞こえるが、どんな話をしているかは全く分からない。それでも、手元のポケットラジオの音声と比べてみると、確かに同じ放送を受信しているのだ。&lt;/p&gt;
&lt;p&gt;とりあえず、ラジオ受信機として使えそうなことは分かった。では、どうすれば鮮明に聴こえるか。盛岡や仙台&lt;sup id="fnref:city"&gt;&lt;a class="footnote-ref" href="#fn:city" title="当時の僕にとっては都会だった。"&gt;5&lt;/a&gt;&lt;/sup&gt;にでも行けば電波がたくさん飛んでいるんじゃないかという仮説も立てたが、夏休みは既に終わりかけていた。今思えば、電子ブロックで中波のAM変調送信機を組めばよかったのかもしれない。しかし、レシピには超短波のFM変調送信機しか載っていなかったし、これからブロックを組んでトライアルアンドエラーするほどの気持ちの余裕もない。結局、自由研究には「アンテナを電話線に巻きつけたら、かすかに聞こえるようになった」と記載するしかなかった。&lt;/p&gt;
&lt;p&gt;震災後の今となっては、市内でFM放送局が開かれたので超短波なら十分に受信できるだろう。例えば、フォスターシーレー方式の鉱石FMラジオがあれば十分に聴取できるかもしれない&lt;sup id="fnref:fmtest"&gt;&lt;a class="footnote-ref" href="#fn:fmtest" title="しかも、電子ブロックのレシピでテストできた。"&gt;6&lt;/a&gt;&lt;/sup&gt;。できることなら、みんなの前で地元タレントの軽快なトークを聴かせるという最高のデモをこなす小学生になりたかった。&lt;/p&gt;
&lt;p&gt;今思い出すと、電波の入手しやすさも一種の文化資本だったのだろうか。地方生活では電波の入手さえも難しかったと思うと、都会生活への憧憬がいつの間にか憎悪に変わるのも仕方ないことなのかもしれない。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:citizen"&gt;
&lt;p&gt;ただし、映画館や美術館の映画や美術品は誰かが独占・秘匿している資産ではない。&amp;#160;&lt;a class="footnote-backref" href="#fnref:citizen" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:floppy"&gt;
&lt;p&gt;第二十八回文学フリマ東京で、作品を収録したフロッピーディスクを配布した。&lt;a href="https://twitter.com/amecokaeruda/status/1125270163295596544"&gt;1125270163295596544&lt;/a&gt;, &lt;a href="https://twitter.com/kaidako/status/1125332709272776704"&gt;1125332709272776704&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:floppy" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:extension"&gt;
&lt;p&gt;フルカラーLEDやフォトダイオードのブロックが付いた拡張パックが付属していた。&amp;#160;&lt;a class="footnote-backref" href="#fnref:extension" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:radio"&gt;
&lt;p&gt;電離層の変化によって、遠方からの電波がよく届くようになる。&amp;#160;&lt;a class="footnote-backref" href="#fnref:radio" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:city"&gt;
&lt;p&gt;当時の僕にとっては都会だった。&amp;#160;&lt;a class="footnote-backref" href="#fnref:city" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:fmtest"&gt;
&lt;p&gt;しかも、電子ブロックのレシピでテストできた。&amp;#160;&lt;a class="footnote-backref" href="#fnref:fmtest" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>セックスメーター</title><link href="https://ama.ne.jp/post/sex-meter/" rel="alternate"/><published>2020-12-22T22:16:00+09:00</published><updated>2020-12-22T22:16:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-12-22:/post/sex-meter/</id><summary type="html">&lt;p&gt;記憶を失ったセクサロイドの「リリ」を匿うことになった「サナ」は、ある日リリの秘密を知ってしまう……&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/next-kawaii-inversion/"&gt;next kawaii inversion&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1"&gt;1&lt;/h2&gt;
&lt;p&gt;「あー、もしもし、ピンクキャブです。今から『リリ』が伺いますんで、準備お願いします」&lt;/p&gt;
&lt;p&gt;床やテーブルのあちらこちらに転がった空き缶を片付ける土曜の昼下がり。やっとのことで掃除を終えた私に、電話口で輸送係の若い男の声がそう告げた。&lt;/p&gt;
&lt;p&gt;ベッド、オッケー。ソファ、オッケー。都心の狭いマンションの一室が、いつもより数段広く感じる。&lt;/p&gt;
&lt;p&gt;部屋着はいつものジャージではなく、おろしたてのライトグリーンのルームウェアにした。ゆったりした前開きの七分袖とショートパンツで、さっと着やすくてすぐ脱ぎやすい。フリルが少なくてもこもこしてないシンプルなものを選んだし、無理して頑張ってる感じもなくて自然な演出……のつもり。&lt;/p&gt;
&lt;p&gt;インターホンが鳴ったので玄関に向かって、小さく深呼吸をする。&lt;/p&gt;
&lt;p&gt;「……よし」&lt;/p&gt;
&lt;p&gt;ドアを開ける。&lt;/p&gt;
&lt;p&gt;むわっとした夏の熱い空気と共に目に入ったのは、淡いピンクの短いワンピースと、ウエストをきゅっと締める大きなリボン結びの白いベルトだった。それから、裾からちらちら覗く健康的な太ももに、さわやかな印象の布地を押し上げてセクシーを添える胸元に視線が移る。飾り気のないキャンバストートと細いベルトのかかった白いフラットサンダルは、いかにも夏らしい透き通ったイメージを与えていた。&lt;/p&gt;
&lt;p&gt;シルバーグレーの長髪は、紫のインナーカラーをそっと隠してその毛先だけがくるりと内側にカールしている。前髪は短く切り揃えられていて、PR-B世代&lt;sup id="fnref:prb"&gt;&lt;a class="footnote-ref" href="#fn:prb" title="匿名掲示板ではたくあん世代と呼ばれている。"&gt;1&lt;/a&gt;&lt;/sup&gt;に特徴的な太めの眉がよく見える。やっぱり可愛い。&lt;/p&gt;
&lt;p&gt;「こんにちは。リリといいます」&lt;/p&gt;
&lt;p&gt;サービスロイドっぽい甘めの顔が私を見上げて、値踏みするような目を向ける私を気にも留めないふうに、うやうやしく一礼した。声帯型発声器ではなく喉のスピーカーから鳴る声も、この世代の大きな特徴である。&lt;/p&gt;
&lt;p&gt;リリと名乗る少女を派遣した「ピンクキャブ」は、無店舗型性風俗特殊営業（一号の二）――いわゆるデリヘル――だ。キャストをホテルや自宅に呼んで性的なサービスをしてもらうことができる。&lt;/p&gt;
&lt;p&gt;ただ、ピンクキャブに所属しているのは人間ではなく、みんなセクサロイド……いや、サービスロイドなのだ。&lt;/p&gt;
&lt;p&gt;セクサロイドというのは、カタログには明記されない非公式の分類である。正しくは、人間として接する必要のある仕事&lt;sup id="fnref:hworks"&gt;&lt;a class="footnote-ref" href="#fn:hworks" title="いわゆる接客、保育（または教育）、看護（または介護）の三大感情労働をベースに説明されることが多い。"&gt;2&lt;/a&gt;&lt;/sup&gt;のために作られた人間型のロボットを、広くまとめてサービスロイドと呼ばなければならない。ただし、ほとんどの仕事には全く必要のない装備にかなりのコストがかかっているので、どんな呼び名であれ大抵は性産業に従事しているのが現実だ。&lt;/p&gt;
&lt;p&gt;「お姉さん。私、入ってもいいですか？」&lt;/p&gt;
&lt;p&gt;「あ、えと……『リリさん、入ってください』」&lt;/p&gt;
&lt;p&gt;名前を呼ばないと部屋にも入ってきてくれないのってコミュ障には厳しいですよね、と思いながら棒読みで呼びかける。いつもながらなかなか慣れない。リリは私の言葉を認識してから、小さく三歩で玄関に入ると同時に私の胸に飛び込んできた。&lt;/p&gt;
&lt;p&gt;「本日は、呼んでいただきありがとうございます」&lt;/p&gt;
&lt;p&gt;うわ、うわっ、いい匂いする。&lt;/p&gt;
&lt;p&gt;バニラの香りの後ろにそっとシトラスを添えて、爽やかな甘さが目の前に迫ってくる。さらにその奥から、ほんのりミルクっぽいミステリアスな香りがそっと私を包み込んで、彼女にシリコンの身体とは思えない奥行きと実在を与えていた。&lt;/p&gt;
&lt;p&gt;「え？　ちょ、ちょっと……」&lt;/p&gt;
&lt;p&gt;いきなり押し寄せる「女の子」の感触に、思わず一歩後ずさりしてしまう。やっぱりセクサロイドってすごい。&lt;/p&gt;
&lt;p&gt;まだコースも決めてないし、触っちゃったら輸送係が出てきて怒られるのでは、と行き場を失った両腕はふらふらと揺れるだけ。そして「あ、えっ……？」と慌てているうちに、ばたりとドアが閉められた。外を通る車の音さえ聞こえなくなって、突然静けさの中に二人きり。単なるサービスなのは分かっていても、ドキドキしてしまう。&lt;/p&gt;
&lt;p&gt;「り、リリさん……？」&lt;/p&gt;
&lt;p&gt;よし、そっちがその気ならと決心を固め、そーっとリリを包むように腕を……と同時に、リリが私をすり抜けた。そのまま奥に進んでサンダルを脱ぎ、くるりと向きを変えて揃える。そしてまた私の動きを待つ状態に入った。その丁寧な一挙手一投足が、まるでこれは単なるあいさつですよとでも言っているような気がして、急に顔が熱くなる。&lt;/p&gt;
&lt;p&gt;いや、そんなオプションは頼んでないんですが！と思いながら、私も慌ててぶかぶかのつっかけを脱ぎ捨てた。サービスロイド式のあいさつに内心高揚しつつも、自分の童貞っぽい振る舞いを思い返すと情けなくなる。私の後ろを歩くリリに「あ、アプリのクーポンって使えますか？」なんて、ムードもへったくれもない質問をしてしまうくらいには、まぁまぁテンパっていた。&lt;/p&gt;
&lt;p&gt;「『リリさん、ソファに座ってください』」&lt;/p&gt;
&lt;p&gt;許可を得たリリは、数時間前まで私が眠り込んでいたソファにふわりと腰を下ろす。顔面騎乗オプションのときはこんな感じかなんて思いながら隣に座ると、リリがトートバッグからタブレットを取り出して操作を始めた。&lt;/p&gt;
&lt;p&gt;「お姉さん、コースはどうしますか？」&lt;/p&gt;
&lt;p&gt;「えっと……『あまあま』で、クーポンで目隠しも」&lt;/p&gt;
&lt;p&gt;何度かタップしたのち、「細かい指定はこちらでお願いします」とタブレットを私に手渡す。パステルピンクを基調としたポップなメニュー画面をタップすると、性格・プレイスタイル、プレイ内容、オプション……と、どんどん細かな指定に進んでいく。&lt;/p&gt;
&lt;p&gt;独特なネーミングのオプションについて尋ねると、慣れた様子で淡々と解説してくれる。それでも、可愛い子の口から飛び出す下品な言葉の暴力は、もはや前戯と言っても過言ではない。しかも、プレイ時間に入ってないからさらにお得だと思う。&lt;/p&gt;
&lt;p&gt;「――こっちは、私の指を使って……えっと、どうしました？　何か変ですか？」&lt;/p&gt;
&lt;p&gt;「へ、変じゃないよ。可愛いね……白くて、腕とか」&lt;/p&gt;
&lt;p&gt;「ありがとうございます。脚も、可愛いですよ？」&lt;/p&gt;
&lt;p&gt;そう言って照れ隠しのようにぱたぱたと揺らす生脚に、思わず視線が移ってしまう。&lt;/p&gt;
&lt;p&gt;「お姉さん。よければ、クーポンこっちにしませんか？」&lt;/p&gt;
&lt;p&gt;リリが横からタブレットを覗き込んで、さっと画面をスクロールする。私が選んでいたのは、クーポンを使えば無料になるAレンジ。リリが指さす「黒ストッキング着用」オプションは、同じクーポンでは半額止まりのBレンジだ。 &lt;em&gt;使う&lt;/em&gt; 範囲が広いほど整備の手間が増えるので、もちろんレンジも高くなる。その理屈でいえば、脚全体を自由にできるオプションが高くなるのは当然だ。&lt;/p&gt;
&lt;p&gt;しかし、レンジに応じて満足度も上がっていくとは限らない。そもそも、ストッキングを履かせて撫でたり舐めたり破いたりなんて、抱恩&lt;sup id="fnref:houon"&gt;&lt;a class="footnote-ref" href="#fn:houon" title="今から二世代前の元号。君主の即位に合わせて定める旧来の元号とは関係がなく、元号協会がおよそ二十五年ごとに制定・発表している非公式のもの。"&gt;3&lt;/a&gt;&lt;/sup&gt;の変態おじさんじゃあるまいし。脚なんか撫でたって――&lt;/p&gt;
&lt;p&gt;「ストッキングを履いた私の脚、とっても触り心地がいいですよ？　お姉さんの脚と絡め合ったりしたら、もっと気持ちいいと思うんですけど」&lt;/p&gt;
&lt;p&gt;「じゃ、じゃあ、そっちでお願いします……」&lt;/p&gt;
&lt;h2 id="2"&gt;2&lt;/h2&gt;
&lt;p&gt;ピピッ、ピピッ、ピピッ――タブレットが放つ無機質な電子音で目覚める。待機モードのリリを眺めていたらいつの間にか眠っていたらしい。やっぱり二時間コースは長かったかな。&lt;/p&gt;
&lt;p&gt;「そして、まだ見つかっていない各地の砲台跡には、既に失われたはずの兵器の残骸が残っていると言われています。人々を引きつける霊的な力と呼ぶほかないパワーが無条件に我々の感情に訴えかけ――」&lt;/p&gt;
&lt;p&gt;タイマーを止めると、安っぽいナレーションのバラエティ番組が聞こえてくる。土曜の夕方はこういう低予算の微妙な番組ばっかり。失われたはずの兵器の欠片をすべて集めると……なんて、こんなのもう流行らないでしょと思いながら、さっとテレビを消す。&lt;/p&gt;
&lt;p&gt;リリはまだ待機モードのままだ。眠っているように見えるのはただのモーションで、実際に電源が切れているわけではない。だから、アラーム音くらいならすぐに反応して目覚めるはずだけど、センサーが鈍い個体なのかもしれない。&lt;/p&gt;
&lt;p&gt;「『リリさん、起きてください』……あれ？」&lt;/p&gt;
&lt;p&gt;しかし、それから何度か名前を呼びかけても、リリは目を覚まさない。どうしたんだろうと思いながらそっと顔を覗き込むと、右目の下に三つ横に並んだインジケータが緑色に光っていた。内部ストレージへのアクセスを示す真ん中のランプが頻繁に明滅しているのを見ると、何かトラブルが起きて再起動しているようだ。一般的なサービスロイドは、人間と遜色ない動作を実現するためにエラーが起きても異常終了しないように設計されているので、こういう現象はなかなか珍しい。&lt;/p&gt;
&lt;p&gt;キャスト起因のトラブルならちょっとくらい時間オーバーしても大丈夫だろうけど、仮にこのまま起動しなかったら、私が壊したと言いがかりをつけられてもおかしくない。まだアクセスランプの動きは変わらないままだ。お願いだから早く目を覚ましてよ、と思いながらリリの手を握った。&lt;/p&gt;
&lt;p&gt;「あれ、ここは……？」&lt;/p&gt;
&lt;p&gt;しかし、その心配は杞憂だったらしく、数分のうちにリリが目を開けた。インジケータは緑色に光ったまま、目だけがキュルキュル動いて周囲を探索している。そして、リリはそのまま身体を動かさずに「あっ」と小さく呟いた。&lt;/p&gt;
&lt;p&gt;「どうしたの？　えっと、『リリさん、起きてください』」&lt;/p&gt;
&lt;p&gt;「お店、摘発されたみたいです。たぶん、セントラルサーバごと消されたんだわ」&lt;/p&gt;
&lt;p&gt;リリは一瞬私を向いて短くそう言い放ち、上半身をまっすぐ起こして辺りを見回した。ベッド、壁、床……空中を見つめて静止、床、壁、ベッド……空間認識フェーズからやり直しているところを見ると、オンサイトデータまでクリアして完全に再起動したらしい。&lt;/p&gt;
&lt;p&gt;「セントラルサーバ？」&lt;/p&gt;
&lt;p&gt;「ピンクキャブのキャストは、業務中のデータをセントラルサーバにしか置かないことになってるの。だから、勤務記録とかお客さんの情報は私たちのストレージには載ってないんです」&lt;/p&gt;
&lt;p&gt;さらに話を聞くと、&lt;ruby&gt;&lt;rb&gt;管理ネットワーク&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;セントラルサーバ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;からの特権アクセスで通信プロファイルを削除されたという。緊急時に通信を遮断する可能性があることは、前々から伝えられていたらしい。当局の捜査がサービスロイドや機密情報にまで及ばないように切り離すための処置なのだろう。&lt;/p&gt;
&lt;p&gt;「GPSも使えなくなってるみたい。どうしよう……」&lt;/p&gt;
&lt;p&gt;さっきまでお店との連絡に使っていたはずのタブレットは、もう使い物にならないらしい。リリが画面をなぞる手に焦りがにじむ。さっきとキャラが違うけど、これが素のリリってことなんだろうか。&lt;/p&gt;
&lt;p&gt;インターネットに接続できなくて状況が分からないというので、スマホの背面にタッチしたリリの青く光る指先に、&lt;ruby&gt;&lt;rb&gt;近接通信&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ニアバイ&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;で無線LANのパスワードを渡した。&lt;/p&gt;
&lt;p&gt;「けど、なんで摘発されたの？」&lt;/p&gt;
&lt;p&gt;しかも、用意周到に証拠隠滅の準備まで。まるで、初めから捕まることを見越していたかのようだ。&lt;/p&gt;
&lt;p&gt;「知らないわ。もしかしたら、倫理規定違反かも。少なくとも、時間外使用はもはや言い逃れできないレベルだったから」&lt;/p&gt;
&lt;p&gt;倫理規定――サービスロイド使用倫理規定は、ピンクキャブのようにセクサロイドを扱うデリヘルが最も気を遣う規則だ。サービスロイドを守るという建て付けで、一定の条件を満たすあらゆる自律型ヒューマノイドに対して、一律に &lt;em&gt;人間風の&lt;/em&gt; 強い保護を与えることを定めている。しかし、メンテナンスやパーツ交換が容易で疲れることもないロボットを守るという視点では、理不尽で無意味な規制というほかない。&lt;/p&gt;
&lt;p&gt;だから、サービスロイドをもっと活用したいと思っていても、まるで人間が行う旧式の労働に歩みを合わせるように、ルールのためにルールを守るという状況が続いている。特に、サービスロイドを性処理に使うことについてはまだ世間からの風当たりが強く、少々強引な処罰の適用も容認されているのが現状だ。&lt;/p&gt;
&lt;p&gt;「ねぇ、私、どうすればいいの？　警察行かないとダメ？」&lt;/p&gt;
&lt;p&gt;リリの声が涙ぐむ。涙を流せないサービスロイドは、こうやって声をフィルタしたり、手で顔を覆ったりすることでしかその感情を表現できない。そのせいで、ロボットとの交流に不慣れな層からは「大げさな嘘泣き」と揶揄されることもある。&lt;/p&gt;
&lt;p&gt;しかし、今私の目の前にいるのは、帰るべき場所を失って途方に暮れる小さな女の子でしかなかった。&lt;/p&gt;
&lt;p&gt;「最終的には、行かなきゃダメかもね」&lt;/p&gt;
&lt;p&gt;「私、警察に調べられて、&lt;ruby&gt;&lt;rb&gt;残骸データ&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ファントム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を抜かれたら……もう、いらない子になるの？」&lt;/p&gt;
&lt;p&gt;「リリはいらない子なんかじゃないよ。でも……」&lt;/p&gt;
&lt;p&gt;警察。なんとなく覚悟はしていたつもりだけど、リリ自身からその言葉を聞くと急に現実味を帯びてくる。セントラルサーバがどれほど強固なものかは分からないけど、警察だっていつまでも重要な証拠を野放しにしておくほど甘くはないはずだ。&lt;/p&gt;
&lt;p&gt;仮にリリが証拠品として押収されれば、返ってくるのはどんなに早くても裁判の後、最悪の場合は没収されてそのまま処分されてしまうことだってありうる。逮捕された経営者がまたデリヘルを開業できる可能性はかなり低いだろう。そうなれば、リリ自身の言う通り彼女はいらない子になってしまうかもしれない。&lt;/p&gt;
&lt;p&gt;「私、いらない子になるのはいやだわ。ねぇ、少しだけここに置いてくれない？　なんでもするから」&lt;/p&gt;
&lt;p&gt;リリがすがりつくように私に抱きついた。不安そうなか細い声に合わせて、その背中も小さく震えている。まるで身体を対価に宿を探す家出少女みたいなセリフだけど、今はそれを楽しむ余裕もない。&lt;/p&gt;
&lt;p&gt;「あー、落ち着いて。分かった、分かったから」&lt;/p&gt;
&lt;p&gt;リリの頭を何度か撫でる。&lt;/p&gt;
&lt;p&gt;こんな可愛い子が引き取り手も見つからずに廃棄されてしまうのは心苦しいし、仮に警察が親身になって次の行き先を探してくれるとしても、やはり時間はかかるだろう。&lt;/p&gt;
&lt;p&gt;それに、このまますぐに引き渡してしまうのは少しもったいない。もう伝票は支払い先もろとも消えてしまったわけだし。届け出るのはもう少し後でよさそうだ。&lt;/p&gt;
&lt;p&gt;「リリ。とりあえず、お風呂に入らない？　その……いろいろ、汚れてるだろうし」&lt;/p&gt;
&lt;p&gt;リリが私を見上げて、小さく頷いた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「狭くてごめんね。熱くない？」&lt;/p&gt;
&lt;p&gt;「ううん、これくらいなら平気。確かに、二人で入るとちょっと狭いけど……なんか、安心するわ」&lt;/p&gt;
&lt;p&gt;声が水面に響く。普通の単身向けマンションの浴槽では、髪をまとめた身体の小さなリリを前に抱きかかえるように浸かるのがやっとだ。&lt;/p&gt;
&lt;p&gt;リリはさっきまでのよく訓練された接客態度なんてすっかり忘れてしまったように、肩を落としてため息をつくばかり。「お風呂に入らない？」なんて自分でもかなり突飛な提案だったと思うけど、傷心のサービスロイドにも優しさは効くらしい。&lt;/p&gt;
&lt;p&gt;昔はカラスの行水くらいのシャワーを浴びることができれば防水性能としては十分だったという話を聞くと、サービスロイドと一緒にお風呂に浸かれるなんて本当にいい時代になったと思う。もちろん入浴剤は使えないし、湯上がりは体表からシャッターの溝までよく乾かす必要があるけれど。&lt;/p&gt;
&lt;p&gt;リリが腕を動かして、ちゃぷちゃぷと波を立てる。まるで自分の居場所を確かめるかのように。体表にかかった水はすぐに弾かれて、小さなしずくとなって流れていく。まさに玉のような肌といった感じだ。&lt;/p&gt;
&lt;p&gt;しかし、よく見ると左肩から上腕にかけて、ぐるりと帯のように二本の傷跡が走っているのが分かった。左腕だけだ。もちろん、人間のようにみみず腫れや変色があるわけではないけれど、水がかかるたびにその溝につぅと染み込むせいで、細い筋のように光って目立つ。&lt;/p&gt;
&lt;p&gt;サービスロイドが自傷行為なんてするだろうかと思いながら、その切れ目をそっと撫でると、リリが「どうしたの？」と振り向く。&lt;/p&gt;
&lt;p&gt;「いや、えーと……リリはもう、ピンクキャブのお客さんのことは忘れてるんだっけ？」&lt;/p&gt;
&lt;p&gt;なんとなく、傷口のことを掘り下げるのはやめた。誰かがリリに傷を付けた話を聞きたいわけではなかったし、そもそもリリはもう覚えていないだろうから。&lt;/p&gt;
&lt;p&gt;「そうね。さっき誰かの運転でここまで来て、サナとベッドでいろいろしたことは辛うじて覚えてるけど、これも&lt;ruby&gt;&lt;rb&gt;残骸データ&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ファントム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;だもの。まるで、私の記憶じゃないみたい」&lt;/p&gt;
&lt;p&gt;リリが手の甲に頭を当ててこつこつと軽く叩く。一人称視点の映像は残っているけど、記憶のリンクが途切れて中途半端だから、他人が撮ったように感じるのだろうか。&lt;/p&gt;
&lt;p&gt;「セックスは、まだ好き？」&lt;/p&gt;
&lt;p&gt;「前は好きだったと思うけど、今はあんまり分からないわ」&lt;/p&gt;
&lt;p&gt;きっと、彼女が私の部屋に来た経緯さえも、いずれ新しい記憶に再マークされて消えていくはずだ。夢のように、ぼんやりと。少し寂しいけど、警察に引き渡すことを考えれば少しの痕跡も残らないほうがいいのかもしれない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;浴室を出たリリの肩にバスタオルをかけると、「ありがと」と言って笑った。&lt;/p&gt;
&lt;p&gt;くたびれたライトグリーンの布地が、首から肩の丸みを帯びたラインに沿って彼女の身体を隠している。タオルに包まれてくしゅくしゅと身体を拭く姿がどうしようもなく愛おしくなって、身体が濡れているのも気にせずにリリを抱きしめていた。&lt;/p&gt;
&lt;p&gt;「拭いてくれるの？」&lt;/p&gt;
&lt;p&gt;「んー……そうだね。そうしよっか」&lt;/p&gt;
&lt;p&gt;バスタオルの上から起伏に合わせてそっと背中を撫でる。それから、脇、谷間、下乳、へそ、……と水が溜まりそうな場所を順番に拭いていった。セクサロイドは他に比べて凹凸が多いから、整備にも手間がかかる。&lt;/p&gt;
&lt;p&gt;「ちょっと、くすぐったいわね」&lt;/p&gt;
&lt;p&gt;ドライヤーは体表からおよそ二十センチ離してまんべんなく、一箇所に当て続けないように、とにかく動かし続ければ大丈夫……と、古い入門書に書いてあった気がするけど、最近の肌素材はどうなんだろう。ちゃんとサービスロイドを迎えられるような家なら、少なくとも型落ちのボディドライヤーくらい置いてあるはずだから、あんまり褒められたやり方ではないのかもしれない。&lt;/p&gt;
&lt;p&gt;「サナ、ありがとう。私は何を着たらいいかしら？」&lt;/p&gt;
&lt;p&gt;「えーと、ちょっと待ってね……」&lt;/p&gt;
&lt;p&gt;リリがここに来たときのワンピースは、部屋着にするには流石にもったいない。とはいえ、せっかくなら可愛い服を着てほしいけど、私の在庫にはそんなもの……と、そういえば。&lt;/p&gt;
&lt;p&gt;「じゃあ、これ着てみて」&lt;/p&gt;
&lt;p&gt;手に取ったのは、さっきまで私が着ていたルームウェアと一緒に買った、少し高めのもう一着だ。紺色のサテン生地を使ったセーラーっぽい襟のワンピースで、控えめな光沢で大人の女性にもおすすめと紹介されていた。&lt;/p&gt;
&lt;p&gt;届いてすぐに試着したものの、思った以上にテラテラする生地が私にはどうにも似合わなかったので、そのまましまっておいたのだ。&lt;/p&gt;
&lt;p&gt;「えぇ。ありがとう」&lt;/p&gt;
&lt;p&gt;リリは私がいるのも気にせずに、パンツを履いてブラを着け、ルームウェアに袖を通していく。こういう着替えの瞬間って、裸よりも魅力的だからどうしてもまじまじ見てしまう。&lt;/p&gt;
&lt;p&gt;そもそも、サービスロイドの下着って機能的には不要なものだから、もはや生着替えの相手を興奮させる布切れでしかないのだ。彼女のアンダーヘアが濃いのだって、誰かが魅力的だと思ったからわざわざそう手を加えたわけで、私の心を掴んで離さないのも当然といえる。&lt;/p&gt;
&lt;p&gt;じっ……と見つめる視線に気づいたリリが「どう？」と裾をつまんでみせた。サテンのルームウェアに包まれたリリはきらきらしていて、やっぱり控えめな光沢のサテンなんて宣伝文句は嘘だったことが分かる。夜の相手を喜ばせるために着るやつだ、これ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;リリのお手入れを終えて部屋に戻ると、窓の外がすっかり暗くなっていた。&lt;/p&gt;
&lt;p&gt;落ち着いたら、何だか急にお腹が空いてきた気がする。とりあえず何か食べておこうと思いながら戸棚を開けると、買い置きの常備食はまだたくさん残っている。わざわざ料理を作るような気分でもないし、適当に缶詰とか温めて……後はお酒でごまかそう。&lt;/p&gt;
&lt;p&gt;「お夕飯？　私も手伝うわ」&lt;/p&gt;
&lt;p&gt;リリが冷蔵庫と戸棚から取り出した夕食の列を覗き込む。期間限定のストロング缶に続くのは、ツナ缶、コーン缶、焼き鳥缶……およそ手伝ってもらうことはなさそうなラインナップだけど、盛り付けくらいちゃんとしておくか。&lt;/p&gt;
&lt;p&gt;「これ、どうするの？　こっちからぎゅっと引っ張れば底ごと外れるけど、流石にそれは違うわよね」&lt;/p&gt;
&lt;p&gt;皿を出しておいてと言うより先に、リリが怪訝な表情でコンビーフ缶を取り上げて私に渡す。缶の側面を切り取るいわゆる「巻き取り鍵」は、意外にもサービスロイドの標準ナレッジには載っていないらしい。彼女の言う「ぎゅっと引っ張る」はおそらく人間の力ずく以上のパワーだから、やはりそれは流石に違う。&lt;/p&gt;
&lt;p&gt;「知らないわ。だって、私は食べ物なんて食べないもの」&lt;/p&gt;
&lt;p&gt;「この鍵を横の爪に挿して、帯に沿って回すと開くの。やってみる？」&lt;/p&gt;
&lt;p&gt;渡された缶をそのままリリに戻すと、しばらくいろいろな角度から缶を観察して、やっと合点がいった様子で爪に鍵を引っ掛けた。そして、帯を巻き取らずに器用に鍵を引っ張って帯を剥いていく。まるで、練ったピザ生地でも引っ張って細長く延ばしているみたいだ。注意して引っ張らないと帯がちぎれてしまいそうだけど、彼女の四肢制御はその曲芸を危なげなく遂行している。&lt;/p&gt;
&lt;p&gt;「――と、これでいい？」&lt;/p&gt;
&lt;p&gt;「えーと……ちょっと違うけど、結果は同じだから大丈夫だよ。ありがとう」&lt;/p&gt;
&lt;p&gt;だらしなく伸びた帯と一緒に、開封されたコンビーフ缶が渡される。小さく丸めようにも切り口で指を切ってしまいそうだし、そのままごみ袋に入れたらビニールが破れてしまいそうだ。缶詰を開けるたびにごみの処理を気にしなきゃいけないのも面倒だし、後でちゃんとした開け方を教えてあげなきゃ。&lt;/p&gt;
&lt;p&gt;各々の中身を皿に空けて、レンジに突っ込んだ。背後から、リリが箸や調味料をテーブルに並べる音が聞こえてくる。なんかこういうの、同棲してるみたいで落ち着くな……と考えてから首を振った。リリとの時間を楽しむのも大事だけど、今後どうするべきかについてちゃんと考えないとね。&lt;/p&gt;
&lt;h2 id="3"&gt;3&lt;/h2&gt;
&lt;p&gt;「だからさぁ……リリみたいなセクサロイドなら絶対に妊娠しないじゃん。それって、ある種の救いだと思わない？」&lt;/p&gt;
&lt;p&gt;リリの今後についてちゃんと考え……と思っていたはずが、気づいたときには完全に飲みすぎていた。人間相手だろうがサービスロイド相手だろうが、初対面で開陳すべきではない見解を述べている自覚が、私にもある。&lt;/p&gt;
&lt;p&gt;食べ物はもちろんお酒も飲まないリリは、晩酌の始まりと変わらない様子で、時折相槌を打ちながら私の話を聞いている。たぶん軌道修正したほうがいいんだろうなと思いつつ、これも一種の感情労働だし、きっとリリも慣れているだろうと勝手に結論づけて、その心地いい雰囲気に身を委ねてしまっていた。&lt;/p&gt;
&lt;p&gt;「プレグロイドなら子供を産めるわ。それに、私は子供を育てたりしてみたいって思うけど。変かしら？」&lt;/p&gt;
&lt;p&gt;「もちろん、リリみたいな人もいると思う。でもさぁ、私は子供なんて産みたくない。育てるのも、たぶん無理。私と同じように考えてる人も、たくさんいるよ」&lt;/p&gt;
&lt;p&gt;言い切ったけど、本当のところはどうだろう。個人主義の発展と未婚化・晩婚化の進行は止まらないけど、少子化はむしろ改善の兆しを見せている。ある程度の収入があれば、独身でも配偶子バンクで足りない精子や卵子を購入し、妊娠から育児はプレグロイドに任せっきりにできるようになったからだ。&lt;/p&gt;
&lt;p&gt;おかげで、自分が産みたくなくても、自分が育てたくなくても、子供だけは &lt;em&gt;製造&lt;/em&gt; できるようになった。でも、そこまでして子孫を残そうとする理由が、私には分からない。&lt;/p&gt;
&lt;p&gt;「だって、人間って結婚して子孫を残さないと滅亡するんでしょ？　じゃあ、結婚したほうがいいじゃない」&lt;/p&gt;
&lt;p&gt;「いや、まぁ……乱暴に言えばそうなんだけどさ」&lt;/p&gt;
&lt;p&gt;リリが不思議そうに首をかしげる。言ってることが全部間違っているわけじゃないんだけど、話が微妙に噛み合っていない気がする。結婚、出産、夫婦円満、子孫繁栄……うーん、初期化の時に古い結婚願望が埋め込まれてたのかもしれない。ピンクキャブはいったい何を考えてるんだろう。悪趣味だなぁ。&lt;/p&gt;
&lt;p&gt;「だから私、サナと結婚するわね」&lt;/p&gt;
&lt;p&gt;そう言って、リリがぽすん、と私に寄りかかる。記憶喪失のデリヘル嬢に求婚されるなんて……悪趣味だなぁ。&lt;/p&gt;
&lt;p&gt;「……リリって、ちょっと急だよね」&lt;/p&gt;
&lt;p&gt;「だって私、サナが好きよ？」&lt;/p&gt;
&lt;p&gt;ほんのり残ったバニラの香りが不意に鼻をかすめて、数時間前まで彼女とめちゃくちゃなセックスをしていた光景をありありと思い出させる。「いっぱい孕ませてね♡」「サナの赤ちゃんできちゃうっ♡」……いや、言ってないだろ。&lt;/p&gt;
&lt;p&gt;結婚したって子供はできないよ、どこかでもらってくればいいじゃん、みたいなやり取りを何度かしているうちに、一本、また一本と缶が空けられていく。サービスロイドの接待ってすごい。&lt;/p&gt;
&lt;p&gt;「ところで、サナ。このお腹の模様、何か分かる？　お風呂のとき、じっと見てたよね」&lt;/p&gt;
&lt;p&gt;スカートの裾をめくって下腹部を撫でるリリ。パンツと一緒に見せつけられた彼女の&lt;ruby&gt;&lt;rb&gt;お腹の模様&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;コネクタシンボル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;は、ピンクのハートに百合の花だ。予約のとき、顔写真から全身写真に切り替えて物色していたのでよく印象に残っている。&lt;/p&gt;
&lt;p&gt;同じ型番のサービスロイドは外見がよく似ているから、服や髪を取り外したり電源を落としても区別できるように、肌にシリアルナンバーやバーコードを刻印するのが一般的だ。大抵は肩や腕に飾り気のない黒いバーコードがプリントされている。&lt;/p&gt;
&lt;p&gt;しかしセクサロイドだけは別で、管理上の利便性と &lt;em&gt;人間っぽさ&lt;/em&gt; への配慮との兼ね合いから、下腹部にタトゥーのような華美なデザインを彫り込んでいることが多い。しかも、ピンクや紫といった &lt;em&gt;いかにも&lt;/em&gt; なカラーリングを多用することで、むしろ客の興奮を煽るデザインとして評価されるようになったという。&lt;/p&gt;
&lt;p&gt;「――だから、ちょっとデリヘルに慣れてる人は、みんなその&lt;ruby&gt;&lt;rb&gt;模様&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;シンボル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が好きなんだよね」&lt;/p&gt;
&lt;p&gt;「そっか……セクサロイドの、マークなんだ……」&lt;/p&gt;
&lt;p&gt;リリは、もう消えてしまった記憶に思いを馳せるように、&lt;ruby&gt;&lt;rb&gt;模様&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;シンボル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;をしみじみと撫でている。&lt;/p&gt;
&lt;p&gt;こうして私がリリの過去に触れなかったら、彼女はもう自分がセクサロイドであることすら忘れていたのだろうか。消されるはずの&lt;ruby&gt;&lt;rb&gt;残骸データ&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ファントム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を、彼女の知らないぼんやりとした過去で上書きしたところで、リリを縛り付けるだけなのに。&lt;/p&gt;
&lt;p&gt;「そういえば、バッテリーはまだ平気？　充電しようか？」&lt;/p&gt;
&lt;p&gt;ふと、リリがここに来てから一度も充電していないことを思い出す。&lt;ruby&gt;&lt;rb&gt;お腹の模様&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;コネクタシンボル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;は、名前通り充電コネクタのシャッターにプリントされているのだ。&lt;/p&gt;
&lt;p&gt;「じゃあ、お願いするわ」&lt;/p&gt;
&lt;p&gt;リリが手をかざすと、宇宙船のハッチのようによくコントロールされた動きで、ハートマークの周囲を四角く切り取ってシャッターが開く。そして、中から16.8ミリメートルの標準電源ジャックが現れた。&lt;/p&gt;
&lt;p&gt;サービスロイドの内部にアクセスできる充電コネクタは、 &lt;em&gt;本来の&lt;/em&gt; 使用目的に耐えうるように作り込まれている性器よりもむしろ大事な場所で、ちょっと強い電流を流せばすぐに壊れてしまう。だから、そんな部分に充電ケーブルを挿すことを許されるのは、ある種の信頼の現れとされている。&lt;/p&gt;
&lt;p&gt;プラグを挿し込むと、右目のインジケータがゆっくりと赤く点滅し始めた。&lt;/p&gt;
&lt;p&gt;「ねぇ、サナはどうしてデリヘルを使ってるの？　パートナーはいないの？」&lt;/p&gt;
&lt;p&gt;「あー、いや……昔、リリみたいな可愛い可愛い風俗嬢に入れ込んじゃって……あ、人間のね」&lt;/p&gt;
&lt;p&gt;別に面白い話じゃないけどさ、という前置きの割には、原稿でも用意していたのかと思うほどすらすらと言葉が出ていく。&lt;/p&gt;
&lt;p&gt;ミキはいろいろな顔を持った人だった。お店では私を優しく包み込んでくれるお姉さんのように、外では友達みたいに一緒に楽しく遊ぶこともあれば、恋人みたいにベッドで甘え合うこともあった。つぎ込んだお金はお店のときと変わらないか、それより多かったと思う。それでも、誰かに心をさらけ出して、それを受け入れてもらうのはとても幸せだった。&lt;/p&gt;
&lt;p&gt;ミキは運転席が似合う人だった。遊園地、砂浜、温泉……彼女の運転で（もちろんほとんどオートパイロットだけど）いろいろなところに出かけた。途中からいちいちレンタカーを借りるのも煩わしくなって、ミキと出かけるためだけに小さな車も買った。&lt;/p&gt;
&lt;p&gt;夕日のきれいな岬の展望台で、遠い目をしたミキが「私たち、十年後もこのままだったら一緒になろうよ」と言いながら、なぜか少しだけ泣いていたのをよく覚えている。&lt;/p&gt;
&lt;p&gt;でも、そんな日々は、ミキが「私、結婚するんだよね」という一言で突然終わりを告げる。だって、私たちって所詮お金の関係じゃん。サナならこんなことしなくても、もっといい人が見つかるから。そんなありふれた別れの言葉を残して、ミキは私の前からいなくなった。&lt;/p&gt;
&lt;p&gt;「相手は風俗嬢だもん。客として出会ったら、もうそれ以上にはなれないよ。そんなの分かってる。でも、私だけは違うって思ってた。それから、人を好きになるのがちょっと怖くなっちゃったんだよね」&lt;/p&gt;
&lt;p&gt;「嫌なこと思い出させちゃったわね。ごめんなさい」&lt;/p&gt;
&lt;p&gt;リリが私の頭を撫でる。最後に会ったあの日も、ミキがこんな風に慰めてくれたっけ。ぼんやりする意識の中で、まるでミキに包まれているような錯覚に包まれて、視界にじわり、と涙がにじむ。&lt;/p&gt;
&lt;p&gt;「セクサロイドなら私を裏切ったりしないし、セックスは気持ちいいし……もうこれでいいかなって。あー、好きだったんだけどね……」&lt;/p&gt;
&lt;p&gt;勝手な自分語りを披露した上に泣き出すとか、最悪の酔っぱらいだな。泣いているのをごまかすようにごろりとソファの端に寝転ぶと、隠れていた眠気が現れて急に視界を暗くする。&lt;/p&gt;
&lt;p&gt;「ごめんね、自分の話ばっかり。でも、どうせリリだって、私のことただの客だと思ってるんでしょ？　結婚しようとか、適当なことばっかり――」&lt;/p&gt;
&lt;p&gt;矢継ぎ早に飛び出す私の言葉を遮るように、リリが自分のルームウェアの袖で私の涙を拭う。私に覆いかぶさるリリの顔を見上げると、彼女はじっと唇を噛んで私を見つめていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「久しぶりね、サナ」&lt;/p&gt;
&lt;p&gt;「ミキ。今さら、どうしたの？」&lt;/p&gt;
&lt;p&gt;夢を見ているのだ、とすぐに分かった。目の前にいるはずもない人が立っていたから。辺りを見回すと、自分が海辺の展望台でベンチに座っていることに気づく。ミキは私の前で手すりに寄りかかっていて、その後ろで夕日が沈もうとしている。&lt;/p&gt;
&lt;p&gt;展望台を満たす空気はあの日よりもきらきらで、自分の姿さえもはっきりと見えない。&lt;/p&gt;
&lt;p&gt;「どうしたのって、あなたが呼んだんじゃない」&lt;/p&gt;
&lt;p&gt;「あれ、そうだっけ……ごめん」&lt;/p&gt;
&lt;p&gt;立ち上がると、光の粒が顔にあたって気持ちいい。手すりから身を乗り出すと、記憶よりもずっと高くて、思い出よりもずっとぼんやりとした大海原が広がっていた。&lt;/p&gt;
&lt;p&gt;「風が気持ちいいわね」&lt;/p&gt;
&lt;p&gt;ミキが私の隣に立っている。彼女と同じ景色を分け合えるだけで、私は幸せだった。それが永遠に続いてほしかっただけなのに、どこで間違ったのだろう。ちらと横を見ると、やっぱりミキは泣いていた。&lt;/p&gt;
&lt;p&gt;「ミキ、どうしていなくなったの？　私、信じてたのに」&lt;/p&gt;
&lt;p&gt;「ねぇ、サナ。私は裏切らないよ。だから、ずっと一緒にいよう？」&lt;/p&gt;
&lt;p&gt;突然、隣にいたはずの声が前から聞こえてくる。そして、ふわりとバニラの香りが鼻をくすぐった。あれ、ミキってこんな香水つけてたことあったっけ……と思いながら顔を上げると、なぜかリリが私を見下ろして泣いている。ぼろぼろとこぼれ落ちる冷たい涙が、降り注ぐたび私の顔を熱くする。&lt;/p&gt;
&lt;p&gt;リリは顔を歪めて私に何か訴えているけど、何を言っているかは聞こえない。待ってリリ、私はただ――何か、大事なことを叫ぼうとして、そこで目が覚めた。&lt;/p&gt;
&lt;h2 id="4"&gt;4&lt;/h2&gt;
&lt;p&gt;「昨日午後、都内の派遣型風俗店『ピンクキャブ』が摘発され、経営者の男が逮捕されました――」&lt;/p&gt;
&lt;p&gt;次の日の朝。目覚めると、テレビでピンクキャブの摘発について報道していた。&lt;/p&gt;
&lt;p&gt;「――この風俗店では、従業員の確保のために組織的なサービスロイドの拉致が繰り返されており、改造を加えた上で性的な業務に従事させたとして、窃盗とサービスロイド使用管理法違反の疑いで――」&lt;/p&gt;
&lt;p&gt;「えっ……えっ？」&lt;/p&gt;
&lt;p&gt;寝起きのぼんやりとした頭に届いた衝撃的なニュースに、私は思わず起き上がっていた。サービスロイドの拉致、改造……これ、倫理規定違反どころの騒ぎではないんじゃないか？　私が匿っているリリは、ピンクキャブの実情を暴く重要証拠であると同時に、本当の所有者が探し続けている被害品かもしれないということだ。&lt;/p&gt;
&lt;p&gt;「これ、結構マズいことになったなぁ」&lt;/p&gt;
&lt;p&gt;「どうしたの、サナ？」&lt;/p&gt;
&lt;p&gt;隣を向くと、リリが布団にくるまって私を見上げている。枕元に目をやると、紺のサテンと下着がきれいに畳まれていた。あれ、布団の下は裸ってこと？　おかしいなと思いながら自分の姿を確認すると、私もパンツしか着けていない。かなり飲みすぎていたような気がするけれど、何をしたんだっけ……と、頭を働かせ始めると徐々に後ろから頭痛が追ってきた。&lt;/p&gt;
&lt;p&gt;「えーと、だから、リリはピンクキャブが所有しているように見せかけて、実際のところ本当は別のところから来たんだって。そのせいで――」&lt;/p&gt;
&lt;p&gt;リリは頷きながら要領を得ない私の説明を聞いていたけど、インジケータ&lt;sup id="fnref:indi"&gt;&lt;a class="footnote-ref" href="#fn:indi" title="通常は左から電源状態、ストレージアクセス、ネットワークアクセスを示している。制御が簡単なので開発時はよく使用されるが、工場出荷後は充電中を除いて消灯されていることが多い。"&gt;4&lt;/a&gt;&lt;/sup&gt;を見るに、たぶんほとんどの内容をネットニュースから補完していたと思う。&lt;/p&gt;
&lt;p&gt;「でも、私はサナと一緒にいたいわ。ピンクキャブのことも、それより昔のことも、もう覚えてないから」&lt;/p&gt;
&lt;p&gt;「リリの気持ちは嬉しいけど、もう二人だけの問題じゃないよ。前の持ち主がリリを探してるかもしれないし」&lt;/p&gt;
&lt;p&gt;「……そうよね。私みたいな犯罪者の道具をずっと匿っていたら、あなたまで逮捕されちゃうものね」&lt;/p&gt;
&lt;p&gt;いじけた口調で答えるリリが膝を抱えてころん、と横に転がった。「サナって薄情だわ。私がセクサロイドだから？」と私を見上げる姿はどうしようもなく可愛いし、今すぐにでも愛してあげたくなる。&lt;/p&gt;
&lt;p&gt;でも、今はそうも言っていられない。&lt;/p&gt;
&lt;p&gt;「違う……って言いたいけど、確かに警察はちょっと怖いよ。今のリリはどうやっても盗品なわけだし、警察が本気を出したら見つかっちゃうと思う」&lt;/p&gt;
&lt;p&gt;ちょっとしたデリヘルの摘発の証拠品なら、一週間ほど恋人気分を味わってから警察に引き渡したって、厳重注意くらいで済むだろうという期待があった。しかし、組織的な窃盗事件の被害品ともなれば、きっと本腰を入れて捜査するだろう。そうなれば、リリを隠していたことで協力者として疑われる可能性だって出てくる。&lt;/p&gt;
&lt;p&gt;「誰にも見つからなかったら、私はここにいていいの？」&lt;/p&gt;
&lt;p&gt;「そりゃあ……絶対に見つからないなら、私だって一緒にいたいよ」&lt;/p&gt;
&lt;p&gt;「じゃあ、私の身体をちゃんと調べてよ。誰にも見つからないように、私の過去を全部消して」&lt;/p&gt;
&lt;p&gt;私の言葉に応えるように、リリがにわかに起き上がった。そして、ばさりと布団を脱ぎ捨てる。全身があらわになった彼女はやはり何も身に着けていなかったが、その気迫に押されてもはや気にもならなかった。&lt;/p&gt;
&lt;p&gt;リリがテーブルから私のスマホを取り上げると、指先から青い光を送り込む。およそ五秒。それが終わると「私の深いところまでアクセスできる鍵、送ったから。早くして」と私に手渡して、リリはそのまま仰向けに横たわった。&lt;/p&gt;
&lt;p&gt;スマホには見慣れないアプリの起動画面が表示されている。PR-B向けの開発者向け管理アプリらしい。既に英数字を組み合わせた数十文字のシークレットが設定されており、タップすると利用可能な情報が一覧で表示される。&lt;/p&gt;
&lt;p&gt;「えっと、何から手を付ければいいの？」&lt;/p&gt;
&lt;p&gt;「とりあえず、プライバシーとかセキュリティとか、そのあたりかしら。終わったらストレージと身体を順番に見ていってくれる？」&lt;/p&gt;
&lt;p&gt;えーと、Security and Privacy……英語は得意じゃないけど、これくらいは読める。メニューを開くとズラリとチェックボックスのリストが表示されるので、有効になっていない項目を探してチェックしていく。ランダミ……ワイファイ？　よく分からないけど、有効にしておこう。&lt;/p&gt;
&lt;p&gt;次に、ストレージ。サービスロイドが搭載する高密度三次元ストレージは、超高性能のLPUと共にサービスロイドをサービスロイドたらしめる中心部だ。身体を構成している &lt;em&gt;外側&lt;/em&gt; のデバイスはチェックボックスやボタンで制御できるけど、ストレージの構造はそんなに単純ではない。&lt;/p&gt;
&lt;p&gt;ストレージには、記憶の実体とそれらを接続する複雑なリンクが含まれている。簡単に言うと、端緒となる実体から大量のリンクを辿ることで、順番に記憶の流れを読み進めていくことができる。記憶は細切れに書き込まれていることが多いし、よく知られた形式で表現されているとも限らない。&lt;/p&gt;
&lt;p&gt;その複雑なデータ構造のせいで、ごくまれに&lt;ruby&gt;&lt;rb&gt;残骸データ&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ファントム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;と呼ばれる閉じたリンクが残ることがある。今回のように突然サーバから切り離されれば、サーバ上のデータを指すリンクや役に立たないキャッシュは全て&lt;ruby&gt;&lt;rb&gt;残骸データ&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ファントム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;になってしまうだろう。それらを別のデータを上書きすればサービスロイドは &lt;em&gt;忘れて&lt;/em&gt; しまう。&lt;/p&gt;
&lt;p&gt;最後は全身か。まず、Device Informationによれば、リリのシリアルナンバーは……ゼロだけが十五桁続いているらしい。この分だと、ありふれた番号に見える端末番号も書き換えられているのだろう。流石はサービスロイド専門の窃盗団と言うほかない。このあたりはそのままでよさそうだ。&lt;/p&gt;
&lt;p&gt;「リリ、これって何？」&lt;/p&gt;
&lt;p&gt;それから、デバイス一覧で上から下まで眺めていると、腰とお尻の間のあたり――ちょうど充電コネクタの裏側に不自然な空間があるのを見つけた。リリをうつ伏せに寝かせて、指でなぞってシャッターの溝を探す。&lt;/p&gt;
&lt;p&gt;「ちょっと、くすぐったいからあんまり触らないでよ」&lt;/p&gt;
&lt;p&gt;「ごめんね。でも、一応見ておかないと。えーと……」&lt;/p&gt;
&lt;p&gt;よく見ると、人間でいう仙骨――やはり、充電コネクタの裏だ――のあたりにシャッターくらいの大きさの四角い溝があった。&lt;/p&gt;
&lt;p&gt;画面上ではグレーアウトしていて一見アクセスできないように見えるけど、タップするとメニューがポップアップする。続けて「不明なデバイスに関する警告」やら「互換性に関する警告」をいくつかスルーすると、あっけなくキュイッと小さな音を立ててシャッターが開いた。&lt;/p&gt;
&lt;p&gt;中を覗き込む。シャッターの内部は浅い空洞になっていて、黒く塗られた金属板で空間が四角く区切られている。突き当たりの壁からは、きつくよじった黄色い被覆の針金が、鈍い銀色の丸いコインのようなパーツを貫いて五センチほど飛び出していた。コインには四つの数字が二桁ずつ刻まれていて、上から順に年と月だとすれば、およそ五年前の日付と読める。&lt;/p&gt;
&lt;p&gt;「ここ、デバイス一覧に見当たらないんだけど、リリは何か知ってる？」&lt;/p&gt;
&lt;p&gt;「アプリから見えないなら、私にも分からないわ。私が持ってる鍵より深いアクセスが必要なのかも」&lt;/p&gt;
&lt;p&gt;リリも知らない場所なのか。よく見ると奥が扉になっていて、小さなラッチで閉じられているのが見える。ただ、ラッチの穴に針金の端が通されており、開けようとすると針金のループに引っかかってしまうようだ。分解禁止シールのようなものだろうか。&lt;/p&gt;
&lt;p&gt;「ここ、開けてみるね」&lt;/p&gt;
&lt;p&gt;でも、鍵が掛かっているわけでもないし、とりあえず針金を解いて中を確認してみよう。コインを回して黄色い螺旋を解こうとする……と、突然リリの身体が大きく跳ねた。&lt;/p&gt;
&lt;p&gt;「い、痛っ！　う、あがっ……ちょ、ちょっと待って――」&lt;/p&gt;
&lt;p&gt;身体をねじってのたうち回るリリ。手足が打ち付けられるたびに、ベッドが大きな音を立てて軋んだ。慌ててコインから手を離すと、リリの発作は急激に収まっていく。&lt;/p&gt;
&lt;p&gt;「リ、リリ！　？　どうしたの？」&lt;/p&gt;
&lt;p&gt;「そ……そこは、大丈夫だから。お願い、もう触らないでちょうだい」&lt;/p&gt;
&lt;p&gt;リリは苦しそうに肩を上下させ、絞り出すような声でそう告げた。彼女は今…… &lt;em&gt;痛がって&lt;/em&gt; いる？&lt;/p&gt;
&lt;p&gt;サービスロイドに痛覚を与えるときは、それが目的に適しているか、痛覚を与えることによる利益が不利益を上回るか、痛覚以外に実現する手段がないか&lt;sup id="fnref:hpain"&gt;&lt;a class="footnote-ref" href="#fn:hpain" title="サービスロイド・ペイン三原則という。"&gt;5&lt;/a&gt;&lt;/sup&gt;について、十分な検討とレビューが必要とされている。常識的な利用範囲であれば、却下されるのが当たり前だろう。痛みは自己維持機能に対する最大級の警告であり、程度によっては制御を失うことさえあるからだ。&lt;/p&gt;
&lt;p&gt;それにもかかわらず、リリは確かに強烈な痛みを与えられていた。このまま無理に針金を解き続けていたら、私さえも巻き込んで暴れまわっていただろう。&lt;/p&gt;
&lt;p&gt;しばらくしてカシュッ、と肌が擦れる音が聞こえた。穏やかに揺れる背中を見て、リリが自分でシャッターを閉じたのだと分かる。&lt;/p&gt;
&lt;p&gt;「……リリ、大丈夫？」&lt;/p&gt;
&lt;p&gt;「ごめんね、サナ」&lt;/p&gt;
&lt;p&gt;起き上がって私に抱きつくリリが、何か言いたげな表情で伏し目がちに私を見上げた。私は何も答えずに、震える彼女の手を背中に感じながら抱き締め返すことしかできない。どうしてか、気づくと私も声を出さずにぼろぼろと泣いていた。&lt;/p&gt;
&lt;h2 id="5"&gt;5&lt;/h2&gt;
&lt;p&gt;それから数日経っても、捜査の手が私に迫ることはなかった。気を抜かずに、リリを家から出さないよう注意していたおかげかもしれない。家にいる間、リリはテレビでやっていた砲台跡の都市伝説――例えば、十五島の封鎖騒ぎは核兵器回収のためだった、とか――を調べたり、結婚情報誌のブライダルフェアで熱心にチャット相談をしたりしていた。あの様子だと、きっと後で私のメールボックスが結婚式場の広告の嵐になることだろう。&lt;/p&gt;
&lt;p&gt;その日は、いつもより飲み過ぎていた自覚があった。缶詰と缶チューハイを流し込みながら、リリと他愛のない会話を楽しむ。それが、ここ最近の夜の過ごし方だった。&lt;/p&gt;
&lt;p&gt;「そういえば、この鍵ってどこまでアクセスできるの？」&lt;/p&gt;
&lt;p&gt;発端は、そんな些細な疑問だった。リリからピンクキャブの痕跡を消し去るために与えられた鍵は、その役割を終えた後も管理アプリとともにそのままスマホに残されている。たまに見返してみるけれど、そもそもサービスロイドにバンドルされているだけの非公開のアプリだから、マニュアルも不十分で全貌がよく分からずにいた。&lt;/p&gt;
&lt;p&gt;「私が知覚している場所なら、どこでもアクセスできるわよ。私自身では操作できないけどね」&lt;/p&gt;
&lt;p&gt;例えば、と前置きして、リリは説明を始めた。&lt;/p&gt;
&lt;p&gt;基本的には、ストレージを操作すればサービスロイドの挙動はいかようにも変更できるらしい。しかし、ストレージは極めて複雑な構造をしているので、人為的に手を加えたところで、データが消し飛ぶか&lt;ruby&gt;&lt;rb&gt;残骸データ&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;ファントム&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;に変化することがほとんどだという。これにより、サービスロイドの恒常性や一貫性がある程度担保されている。&lt;/p&gt;
&lt;p&gt;ただし、中には多くの開発者が繰り返し試すことで確立された手法もいくつか存在する。比較的簡単なのは、感度の調整だという。身体中のセンサ値にフィルタをかけることで、あらゆる刺激を快感に変えたり、思考レベルを操作したりできるようだ。これが本当の電子ドラッグってやつだろうか。……合法だといいんだけど。&lt;/p&gt;
&lt;p&gt;「あ……やばっ♡」&lt;/p&gt;
&lt;p&gt;リリの指示通りに生成した操作用の疑似スライダーの値を上げていくと、突然リリの身体が跳ねる。あからさまな変化に静かな興奮を味わいながら「可愛いね、リリ」と頭を撫でてあげると、今度は私に抱きついて股間を擦り付け始めた。&lt;/p&gt;
&lt;p&gt;「あー……サナ、結婚して……♡」&lt;/p&gt;
&lt;p&gt;リリは脳が幸せで満たされたような表情で、貪るように腰を振り続けている。まるで、目にハートマークが浮かんでいるのが見えるようだった。世のセクサロイドオーナーは、きっとみんな毎晩こんなことをしているのだろう。やっぱり、悪趣味だなぁ。&lt;/p&gt;
&lt;p&gt;「うん、とっても幸せ……」&lt;/p&gt;
&lt;p&gt;うっとりとした表情のリリの手を握ると、また何度かびくびくと震えた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「……とまぁ、こんな感じね」&lt;/p&gt;
&lt;p&gt;よわよわなリリをひとしきり楽しんでから感度調整を解くと、彼女は何事もなかったかのように説明を再開した。&lt;/p&gt;
&lt;p&gt;「ねぇねぇ、リリ。そこには何が入ってるの？　どうして私には教えてくれないの？」&lt;/p&gt;
&lt;p&gt;それからは、そっとリリの腰を撫でても、もう彼女は平然と座ったままだ。一方、私にはリリのように簡単に切り替えられるスイッチはないから、彼女が平熱に戻ってからもすっかり調子に乗ったままだった。&lt;/p&gt;
&lt;p&gt;「別に、面白いものなんて入ってないわ。わざわざ見る必要なんてないわよ」&lt;/p&gt;
&lt;p&gt;「いいじゃん。教えてよ～、リリ」&lt;/p&gt;
&lt;p&gt;「サナ、やめて！　急にどうしちゃったの？」&lt;/p&gt;
&lt;p&gt;リリが私の手を振り払う。普段なら、私の言う通りに家事でもセックスでもこなしてくれるはずなのに、今日はちょっとしたお願いさえ聞いてくれない。まるで、いつも当たり前に使っていたはずの椅子が突然壊れたみたいに、ちょっといらいらする。&lt;/p&gt;
&lt;p&gt;「リリ、私の言うことが聞けないの？」&lt;/p&gt;
&lt;p&gt;私の言葉を聞いたリリの動きがぴくん、と止まった。&lt;/p&gt;
&lt;p&gt;さらに下を向いて数秒じっと考え込んでから、きっ、と私を睨みつける。今まで見たこともないような、強い拒否感を示すだけの表情を突きつけられても、あのときの曖昧な思考の私ではもう引き下がれなかった。&lt;/p&gt;
&lt;p&gt;「……分かったわ。好きにして。その鍵なら、痛みだって消せるはずだもの」&lt;/p&gt;
&lt;p&gt;「ほんとに……やるからね」&lt;/p&gt;
&lt;p&gt;ベッドにうつ伏せになったリリの腰で、シュイッという小さな摩擦音とともにシャッターが開く。ぽっかり空いた黒い空間の中には、前と同じように黄色い針金の封印が転がっていた。&lt;/p&gt;
&lt;p&gt;痛覚の調整は、ほとんど快感レベルの調整の応用だった。あの日私を驚かせたリリの痛覚はいとも簡単に遮断され、もう針金に触れたことにすら気づかない。くる、くると根本から螺旋を解くうちに、今度は鉛色のコインが引っかかることに気づく。そうか、ラッチの近くで切らなきゃいけないのか。&lt;/p&gt;
&lt;p&gt;工具箱に向かう足、ニッパーを探す手、おそるおそる封印を切り落とす切っ先……気づくと全身が震えていた。私はとんでもないことをしようとしているのではないか。今思えば、ここで目を覚ませばよかったのだろう。彼女の中で最大級の痛覚とリンクしている針金を無痛のままで取り外し、インシュロックでも装着しておけばよかったのだ。&lt;/p&gt;
&lt;p&gt;しかし、私は好奇心のままに中を覗き込んでしまった。&lt;/p&gt;
&lt;p&gt;扉の向こうは意外にもシンプルだった。中には数字が刻印された機械式のラチェットドラムがいくつか並んでいて、古い電気メーターのように何かをカウントしていた。よく見ると、それぞれの数字の意味を示す小さなラベルが無造作に貼られている。&lt;/p&gt;
&lt;p&gt;「総使用時間、――秒。総使用人数、――人。ノック、――回。リリ、これって……」&lt;/p&gt;
&lt;p&gt;「セクサロイドの私がどれだけお客様に &lt;em&gt;ご奉仕&lt;/em&gt; したか、ちゃんとカウントしてるのよ。売上高が届け出た料金表と合っているかを突き合わせるためにね」&lt;/p&gt;
&lt;p&gt;くぐもった涙声が、顔を見せないリリの悔しさや悲しさを直接私に突き立てる。軽率に開かれた黒い箱の中から、彼女の不安や憎しみが飛び出していく気さえした。&lt;/p&gt;
&lt;p&gt;リリが隠していたのは、腰に埋め込まれたセックスメーターだけではなく、セクサロイドとしての自分そのものだった。しかし、それに気づいたときにはもう遅い。彼女は過去さえも忘れようとしていたのに、私の手で扉がこじ開けられてしまったのだから。&lt;/p&gt;
&lt;p&gt;「どう？　私の秘密を暴けて、面白い？」&lt;/p&gt;
&lt;p&gt;まるでバケツいっぱいの水を浴びせられたように、急激に酔いが覚めていく。&lt;/p&gt;
&lt;p&gt;「えーと、リリ……」&lt;/p&gt;
&lt;p&gt;今さら意味のないことだとは理解しつつ、慌ててシャッターを閉じる。リリはむくりと起き上がって、じっと私を見つめた。いや、見つめているというには無感情すぎて、今はただ目玉をこちらに向けているだけと言っても過言ではなかった。&lt;/p&gt;
&lt;p&gt;「……どうしたの？　早く好き勝手に私をいじりまわせばいいじゃない。どうせ、私はセクサロイドだもの。受け入れるしかないんでしょ？」&lt;/p&gt;
&lt;h2 id="6"&gt;6&lt;/h2&gt;
&lt;p&gt;リリはあの日から、何も話さなくなった。彼女には飲食も排泄も入浴も必要ないから、放っておくとずっと部屋の隅に座ったままだ。膝を抱えて座っていてもインジケータは動作したままなので、まるで隣に置かれたルーターと会話しているようにも見える。&lt;/p&gt;
&lt;p&gt;彼女が身体を動かす唯一のタイミングは、バッテリーが切れる直前だけ。サービスロイドは自らを充電できないように制限されている&lt;sup id="fnref:slaving"&gt;&lt;a class="footnote-ref" href="#fn:slaving" title="ただし、鍵のような凹凸パターンが施された固定型の充電アダプタを取り付けることで、プラグを設置した場所でのみ自ら充電できるようになる。通常は、腰部の拡張用空間（リリは既にセックスメーターが入っている）に鍵穴のようなコネクタを取り付ける。"&gt;6&lt;/a&gt;&lt;/sup&gt;ので、「サナ、お願い」と私に充電プラグを挿すように頼まなければらないのだ。&lt;/p&gt;
&lt;p&gt;私は、リリに何と言うべきか分からなかった。酒に酔ってやったことだから仕方ない、なんて言うつもりはなかったけど、どうしてあんなことをしてしまったのか、私にも分からない。ごめんねリリ、でも過去なんて気にしないで、私には隠さなくていいから……何を言ったとしても、彼女は悔しそうに私を睨みつけるだろう。&lt;/p&gt;
&lt;p&gt;あるいは、リリだって苦しんでいるんだから、彼女の言う通り強力な鍵で好き勝手にストレージを操作して、記憶ごと消せばいいんじゃないか？　サービスロイドの忘れる権利は倫理規定でも保障されている。私の手できれいさっぱり無かったことにしてあげたほうが、彼女だって幸せなんじゃないか……と、どこからともなく浮かぶ身勝手な考えを振り払うように首を振った。&lt;/p&gt;
&lt;p&gt;その一線は、超えちゃだめだ。そんなことをしたら、私とリリは人間と道具の関係に成り下がってしまう。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;黙ったままのリリを眺めて三日ほど経った昼。ピーンポーンと、突然インターホンが鳴った。リリが初めてここに来た日を思い出すけど、今日は誰かが来る予定はもちろん、荷物が届く予定もない。&lt;/p&gt;
&lt;p&gt;ドアスコープを覗くと、スーツ姿の中年男が一人立っている。何だか嫌な予感がした。&lt;/p&gt;
&lt;p&gt;「こんにちは。今、お時間よろしいですか？　私、こういうものです」&lt;/p&gt;
&lt;p&gt;ドアを開けると、刑事を名乗る男が警察手帳を広げてみせた。とうとう、来てしまったのか。リリは……部屋の奥でルーターの隣に座ったままだから、たぶん大丈夫。&lt;/p&gt;
&lt;p&gt;「今、行方不明のロボットを探してまして。こんな外見なんですが、心当たりありませんか？　デリヘルで使われてまして……あ、デリヘルって分かりますかね？　部屋に入っていくのを見たとか、すれ違ったとか」&lt;/p&gt;
&lt;p&gt;渡された写真は、茶髪のリリ……正確には、PR-Bのカタログ写真だろう。と思ったが、これは最新のPR-BXのものだ。「防犯カメラでも付いてれば、髪型や服装も分かったんですが」と言っているあたり、正確な型番やどのようにカスタマイズされているかは、まだ分かっていないらしい。それほどピンクキャブの後処理が優秀だったということか。&lt;/p&gt;
&lt;p&gt;「下の階のアクセスポイントにロボットのシリアルナンバーが残っていたとかで、来たとしたらこの辺りらしいんですよ。あぁ、もちろん全戸回ってるんですがね。私は機械に疎いものでよく分からんのですが」&lt;/p&gt;
&lt;p&gt;適当に「そうなんですか。お疲れさまです」なんて相槌を打ちながら、後ろでぎゅっと手を握る。リリのシリアルナンバーは抹消されていたはずだけど……何が見つかったんだろう。画面から隠されているだけで、本当はどこかに番号が残っていたのかもしれない。&lt;/p&gt;
&lt;p&gt;いや……でも、そんなセンシティブな情報を簡単にネットワークに送信したりするだろうか。聞き込み捜査に携わるような刑事が常に真実をもって私に接するとは限らないし、まだ隠している情報もあるはずだ。&lt;/p&gt;
&lt;p&gt;こんなことで動揺しちゃ、ダメだ。&lt;/p&gt;
&lt;p&gt;「普段からリモートワークなもので、あまり外出してなくて……すみません、ちょっと分からないです」&lt;/p&gt;
&lt;p&gt;「そうですか。お仕事は何を？」&lt;/p&gt;
&lt;p&gt;それから、何度か意味のなさそうな質問――回答の中身よりは応答の態度や挙動を見るような――を繰り出した後、手帳に何かを書き込んだ。聞き込みはそれであっさりと終了し、刑事は「わざわざお時間取らせてすみません。もし何かありましたらこちらまで」と名刺を渡して去っていった。&lt;/p&gt;
&lt;p&gt;ゆっくりとドアを閉めて鍵をかけ、目を閉じてさらにゆっくり息を吸い、吐き……その場にへたり込む。よかった。なんとかなった。リリにも教えたほうがいいだろうと思いながら顔を上げると、目の前にリリが立っていた。&lt;/p&gt;
&lt;p&gt;「私、もう警察に行くわ。サナに迷惑かけたくない」&lt;/p&gt;
&lt;p&gt;久しぶりに聞いたリリの声は、いつもよりずっと平坦で、ずっと悲しい声だった。そうだ。一番苦しんでいるのは、警察に追われている彼女自身だ。&lt;/p&gt;
&lt;p&gt;立ち上がってリリを抱きしめる。彼女の身体はいつもよりずっと小さくて、ずっと冷たい気がした。 苦しい感情を一つ一つ捨てていくたびに、彼女は少しずつ機械に戻っていくのだろうか。そうだとしたら、私はリリのために何ができるのだろう。&lt;/p&gt;
&lt;p&gt;「リリ。車、運転できる？」&lt;/p&gt;
&lt;p&gt;「……え、えぇ。オートパイロットのサポートくらいなら、標準ナレッジにあるけど」&lt;/p&gt;
&lt;p&gt;「警察に行く前に、十五島に行こうよ、リリ。きっと、楽しいからさ」&lt;/p&gt;
&lt;p&gt;気づくと、私はつんのめるようにリリの肩を掴んでいた。彼女は面食らった表情で私を見つめている。「楽しいから」なんて言いながら、私は笑顔でぼろぼろ泣いていた。&lt;/p&gt;
&lt;p&gt;私はただ、リリとの思い出が欲しかったのかもしれない。リリが捨てた感情を一つ一つ拾い集めて、楽しい時間で上書きしたかったのかもしれない。それが独りよがりな願いだとしても、リリに受け入れてほしかったのかもしれない。そうでもなければ、十五島なんて言い出すわけがなかった。&lt;/p&gt;
&lt;p&gt;リリはきょとんとした顔つきで数秒固まった後、「いいわね。楽しいなら、すぐに行きましょうよ」と言って、少し笑った。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「リリ、ごめんね。勝手に秘密を開けちゃって。もう、あんなことしないから」&lt;/p&gt;
&lt;p&gt;「私、怒ってないわ。サナがずっと黙ったままだから、どうしたらいいか分からなくて」&lt;/p&gt;
&lt;p&gt;日付が変わる頃に出発したのは、人目を避けるのはもちろん、夜のドライブが好きだったからだ。静かな車内と情報のない夜景を、馴染みのないラジオで満たしていく。リリの運転なら、昼も夜も関係なかった。たまに喋って、それからまた黙って、そういう空気が好きだった。&lt;/p&gt;
&lt;p&gt;リリは穏やかな表情でハンドルに手を添えていた。その姿がミキに重なって見えたのが、たまらなく嫌になる。&lt;/p&gt;
&lt;p&gt;「……そっか」&lt;/p&gt;
&lt;p&gt;「私、サナに嫌われたくないの。知らない人といっぱいセックスする子だって、思われたくない」&lt;/p&gt;
&lt;p&gt;リリは運転に集中したふりで、呟くようにそう告げる。そして、前を向いたまま「セクサロイドのくせに、変よね」と自嘲した。&lt;/p&gt;
&lt;p&gt;彼女が抱えている過去は、大きすぎるものなのかもしれない。リリを救うためだと言えば、それを順番に消していくのは簡単だろう。でも、私はその記憶の一つ一つを認めてあげたかった。リリがセクサロイドだとしても、私が彼女を大事に思う気持ちは同じだから。&lt;/p&gt;
&lt;p&gt;リリはきっと泣いていた。「ごめんね。私はずっとリリの味方だよ」と言って抱き締めたかった。シンセサイザとサンプリングにまみれた曲が、たっぷりと沈黙を塗りつぶしていく。&lt;/p&gt;
&lt;p&gt;「ねぇ、リリ。このまま進んでも、きっとまだ暗いうちに着いちゃうから……ちょっと、休まない？」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「このまま1729線をまっすぐ進んで、十五島大橋を渡ったらすぐ駐車場があるから、そこで降りようか。小銭は……あれ、去年から無料化されてるみたい」&lt;/p&gt;
&lt;p&gt;結局、十五島が見え始めたのはちょうど日が昇りきった少し後だった。橋の入口に建てられた料金所は、ゲートが上げられたままもう動かない。&lt;/p&gt;
&lt;p&gt;左右にきらきらと輝く海が広がって後ろへ流れていく。そっと窓を開けると、ほんのり潮の香りを帯びた空気が通り抜けていった。&lt;/p&gt;
&lt;p&gt;「リリ、お疲れさま」&lt;/p&gt;
&lt;p&gt;「ありがとう、サナ。ベッドで音楽を聴くのって、あんなに楽しいのね」&lt;/p&gt;
&lt;p&gt;車から降りて、ぐっとアスファルトを踏みしめた。夏の朝の涼しくて湿った空気が身体にまとわりついては、朝日が当たるたびにふわりと消えていく。&lt;/p&gt;
&lt;p&gt;まだ、他の車は停まっていない。まだ朝だからというのもあるだろうけど、すっかり寂れているのは明らかだった。昔は人気の観光地だったけど、三年前に砲台跡封鎖の騒ぎがあってから、もうテレビでその名前を聞くことはなくなった。もちろん、今の私たちには好都合だ。&lt;/p&gt;
&lt;p&gt;「歩くんでしょう？　ちゃんと準備しないとね。今日は暑くなるみたいだし」&lt;/p&gt;
&lt;p&gt;リリが鼻歌を歌いながら、荷物を取り出す。タオル、スポーツドリンク、かたい丸パン、缶詰……持ち物をリュックに詰めると、来る途中に買ったつばの大きな麦わら帽子を頭にかぶった。サービスロイドの髪は生え変わらないので、傷まないように帽子や日傘で直射日光を避ける必要があるのだ。&lt;/p&gt;
&lt;p&gt;「ピンクの麦わらってさ、趣味悪くない？」&lt;/p&gt;
&lt;p&gt;「どうして？　可愛いじゃない。それに、ミキさんはこんなの着けてなかったでしょ？」&lt;/p&gt;
&lt;p&gt;リリがその場でくるりと回ってみせた。白い肌とシルバーの毛先が、朝日に照らされてよく輝いている。パステルピンクの麦わら帽子を淡いピンクのワンピースに合わせると、まるでmoemoe emoTIONのジャケットアートみたいだ。&lt;/p&gt;
&lt;p&gt;ペットボトルを一口。深呼吸をして、海岸に続く遊歩道を歩き始める。案内板には遊歩道と書かれているものの、人がやっとすれ違える幅のぼろぼろの舗装に、左右は伸び放題の背の高い雑草が作る大きな壁で圧迫されているので、気分はまるで秘密の抜け道だ。&lt;/p&gt;
&lt;p&gt;「サナ、今日はとっても天気がいいわ。楽しくなりそうね」&lt;/p&gt;
&lt;p&gt;リリに倣って振り返ると、道の向こうにぐっと深い青空と輝くような白い雲が見える。このまま、どこまでも行けたらいいのに。&lt;/p&gt;
&lt;p&gt;遊歩道を抜けると、海浜植物でびっしり覆われたなだらかな崖と、大きな入り江に広がる岩場が私たちを迎えた。崖はゆるやかなカーブを描いてずっと向こうまで続いていて、空との境界を見つめると吸い込まれそうになる。島で一番人気のスポットだったけど、今は誰もいない。&lt;/p&gt;
&lt;p&gt;年中吹き付ける強風で形成された最果てみたいな景色は、やはり今の私たちに似合っていた。&lt;/p&gt;
&lt;p&gt;岩場に降りたリリが、きょろきょろと歩き回る。風化してでこぼこになった岩場を、あちらこちらへ進んではその隙間を覗き込む。立ち止まったリリがこちらを見ると、「お花が咲いてるわ！」と言って足元を指差した。あのオレンジ色の花は、たぶんスカシユリだ。&lt;/p&gt;
&lt;p&gt;もう少し歩き進めると、今度は白い大きな建物が現れる。かつて宿泊客を迎えていた大きな門は、トラロープと高いフェンスで塞がれていた。直射日光と雨風のせいで、柱に貼られた「立入禁止」の札はもう色あせてよく見えない。ここは、広い海を望む流行りのホテルだった。&lt;/p&gt;
&lt;p&gt;このホテルも、もう廃業してしまったのか。島の衰退を考えればそんなの分かりきっていたことなのに、目の当たりにするとなぜか力が抜けてしまう。大きなため息をつきながら、思わずその場に座り込んでいた。&lt;/p&gt;
&lt;p&gt;「全部、なかったことにできたらいいんだけどな」&lt;/p&gt;
&lt;p&gt;「この島を残して、私たち以外全部消しちゃえばいいわ。砲台跡、探しましょうよ」&lt;/p&gt;
&lt;p&gt;そう言って、リリがペットボトルとタオルを差し出す。じりじりと夏の日差しが強くなってきていた。汗一つかかないリリを見ていると、まるで彼女が本当に全てを消し去ってくれそうな、妄想じみた希望が浮かんでくる。&lt;/p&gt;
&lt;p&gt;「あんな話、嘘に決まってるじゃん。今日はただの旅行のつもりだよ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;入り江を抜けて少し内陸に進むと、徐々に古いコンクリートで覆われた足場が増えてくる。さらに坂を降り、階段を登って島の中心部に向かうと、伸び放題の植え込みでぐるりときれいな円に区切られた場所にたどり着いた。内側は比較的新しい輝きを放つ白いコンクリートタイルが敷き詰められており、真ん中にはよく磨かれた四角い黒御影石が据えられている。&lt;/p&gt;
&lt;p&gt;「……で、ここが砲台跡だったんですが」&lt;/p&gt;
&lt;p&gt;「きれいな公園ね。廃墟だなんて嘘みたいだわ」&lt;/p&gt;
&lt;p&gt;いや、確かに数年前まで廃墟マニアの間では奥が入り組んだ大迷宮として知られていたはずだ。しかし、目の前の砲台跡はやはり既に埋め立てられていて、砲弾庫や要塞への入り口はすっかり消えていた。スマホで現在地を確認すると、地図上は「砲台跡」のままだけど、石碑にはしっかりと「十五島砲台跡記念公園」と書かれている。&lt;/p&gt;
&lt;p&gt;おかしい。兵器回収説はただのデマや陰謀論の類だったはずなのに。&lt;/p&gt;
&lt;p&gt;「リリ、ちなみに……空間エネルギーは？」&lt;/p&gt;
&lt;p&gt;「下の方から、微かに反応があるわ。たぶん、ずっと深くまでコンクリートで塞がれてるから、天然由来のものと区別がつかないレベルだけど」&lt;/p&gt;
&lt;p&gt;リリはおもむろにしゃがみ込むと、敷かれたタイルの一枚をこつこつ叩いた。コンクリートは効率よくエネルギーを遮蔽するだけではなく、自ら天然由来のエネルギーを放つので隠匿にも有効だと聞いたことがある。&lt;/p&gt;
&lt;p&gt;「もしかしたら、そのまま放置されてるかもしれないわね。もしかしたら、だけど」&lt;/p&gt;
&lt;p&gt;曖昧な口調は、いつものリリらしくない。可能性は残されているということか。しかし、本当にここで何か重要なものが見つかったとして、回収せずに放置することなんてあるだろうか？&lt;/p&gt;
&lt;p&gt;例えば、移動できないほど大きくて、破壊できないほど堅固だとしたら。あるいは、もはや安全に破壊できないほどのエネルギーを溜め込んでいるとしたら。長期間にわたって島を閉鎖するよりも、誰も使えないように塞いでしまうほうが簡単なのかもしれない。仮にそんな兵器を持ち出したとしても、現代では持っているだけで危険に晒されるだろうから。&lt;/p&gt;
&lt;p&gt;「ねぇ、サナ。あれ、何かしら！」&lt;/p&gt;
&lt;p&gt;――と、コンクリートの地面を見つめて考える私をよそに、リリが公園の奥に向かって駆け出した。&lt;/p&gt;
&lt;p&gt;リリが走った先を見ると、三段ほど高い &lt;em&gt;ステージ&lt;/em&gt; に人がくぐれるくらいの金属製のアーチが立てられていて、真鍮の鐘が吊るされている。これは……いわゆる愛の鐘だ。ひょっとして、この公園は風評被害を打破するための最後の切り札だったってこと？&lt;/p&gt;
&lt;p&gt;「この鐘を鳴らすと永遠に結ばれるんですって！　サナ、ここで結婚式しましょうよ！」&lt;/p&gt;
&lt;p&gt;私に向かって手を振るリリには、「あーあ、ばっかみたい」と呟く私の声は聞こえない。こんなセンスのない観光スポットに、失われたはずの兵器なんて隠されているわけがない。&lt;/p&gt;
&lt;p&gt;「結婚式なんてしなくていいじゃん。今からみんな消しちゃうんだから」&lt;/p&gt;
&lt;p&gt;「どうして？　私、一度でいいから結婚式してみたかったのよね。他に誰もいなくたって、別にいいわ」&lt;/p&gt;
&lt;p&gt;そう言って、嬉しそうにその場でくるくると回ってみせる。「鐘、鳴らしましょうよ」とアーチの下で待つ彼女について石段を登ると、こんこんと軽い足音が響いた。汗ばむ額を拭ってから彼女の前に立つと、リリは帽子を取って私を見上げる。&lt;/p&gt;
&lt;p&gt;「私、コンビーフだってちゃんと開けられるようになったもの。きっと、あなたの役に立つわ」&lt;/p&gt;
&lt;p&gt;リリが鐘に繋がった綱を握った。その手に右手をそっと重ねて鐘を鳴らすと、その伸びやかな響きを島中に伝えるように、さらさらとした風が吹いていった。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:prb"&gt;
&lt;p&gt;匿名掲示板ではたくあん世代と呼ばれている。&amp;#160;&lt;a class="footnote-backref" href="#fnref:prb" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:hworks"&gt;
&lt;p&gt;いわゆる接客、保育（または教育）、看護（または介護）の三大感情労働をベースに説明されることが多い。&amp;#160;&lt;a class="footnote-backref" href="#fnref:hworks" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:houon"&gt;
&lt;p&gt;今から二世代前の元号。君主の即位に合わせて定める旧来の元号とは関係がなく、元号協会がおよそ二十五年ごとに制定・発表している非公式のもの。&amp;#160;&lt;a class="footnote-backref" href="#fnref:houon" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:indi"&gt;
&lt;p&gt;通常は左から電源状態、ストレージアクセス、ネットワークアクセスを示している。制御が簡単なので開発時はよく使用されるが、工場出荷後は充電中を除いて消灯されていることが多い。&amp;#160;&lt;a class="footnote-backref" href="#fnref:indi" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:hpain"&gt;
&lt;p&gt;サービスロイド・ペイン三原則という。&amp;#160;&lt;a class="footnote-backref" href="#fnref:hpain" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:slaving"&gt;
&lt;p&gt;ただし、鍵のような凹凸パターンが施された固定型の充電アダプタを取り付けることで、プラグを設置した場所でのみ自ら充電できるようになる。通常は、腰部の拡張用空間（リリは既にセックスメーターが入っている）に鍵穴のようなコネクタを取り付ける。&amp;#160;&lt;a class="footnote-backref" href="#fnref:slaving" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>やさしいひかり</title><link href="https://ama.ne.jp/post/smart-led/" rel="alternate"/><published>2020-12-20T14:22:00+09:00</published><updated>2020-12-20T14:22:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-12-20:/post/smart-led/</id><summary type="html">&lt;p&gt;生体データに気を付けて&lt;/p&gt;</summary><content type="html">&lt;p&gt;「Ｂ子、絶対に見逃しちゃダメだよ？」&lt;/p&gt;
&lt;p&gt;不思議なことに、私はＡ子の言葉に操られるようにその瞬間をじっと待っていた。数分離れた隙に台無しになってしまったらどうしようと、ほんの十歩先にあるトイレに行くのを我慢してしまうほどに。&lt;/p&gt;
&lt;p&gt;こたつの上に、Ａ子からもらったプレゼントが置かれている。つやつやした黒くて四角いプラスチックケースの真ん中をくり抜いて、ゆるやかに盛り上がったカーブを描く乳白色の拡散キャップがはめ込まれた小さなLEDランプ。Ａ子のところにも同じ――ただし、ケースが白い――ものがあるはずだ。&lt;/p&gt;
&lt;p&gt;充電コネクタさえ見つけにくいシンプルすぎるデザインなのは、私よりもＡ子自身の好みで選んだからだろう。それ自体は構わないのだけど、スイッチさえ見つからないのはもはや設計ミスと言ったほうが正しいのかもしれない。今もほんのり黄色く光ったまま、消すことも明るさを調節することもできずにいた。&lt;/p&gt;
&lt;p&gt;Ａ子が帰ってから一時間ほど経った。普段なら、みかんの入ったバスケットと大袋入りのクッキー、書きかけのレポート……いろいろとごちゃごちゃしているはずだけど、今はこのLEDランプだけがテーブルを占領している。Ａ子が美味しいからと勧めてきたオレンジティーの残りも、冷蔵庫にしまっておいた。&lt;/p&gt;
&lt;p&gt;「……あ、光った」&lt;/p&gt;
&lt;p&gt;すると、唐突にその瞬間が訪れた。高輝度のフルカラーLEDが、半透明のカバーを通して綺麗な青色に三回点滅する。Ａ子からメッセージが来た合図だ。さっきARグラスにインストールしたアプリを経由して、ランプを制御しているらしい。テーブルに手をかざすと、ARウィンドウからトーク履歴が飛び出した。&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; Ｂ子、ちゃんと光ってる？&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; うん。 &lt;img alt=":blue_heart:" class="emoji" height="16" src="/emojis/1f499.png" width="16"&gt; が3つだよね？&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; &lt;img alt=":blue_heart:" class="emoji" height="16" src="/emojis/1f499.png" width="16"&gt; &lt;img alt=":ok:" class="emoji" height="16" src="/emojis/1f197.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; 通知が来てない間はどう？&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; なんか黄色？オレンジ？に光ってるけど、あんまり明るくない &lt;img alt=":orange_heart:" class="emoji" height="16" src="/emojis/1f9e1.png" width="16"&gt; かも &lt;img alt=":duck:" class="emoji" height="16" src="/emojis/1f986.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; &lt;img alt=":orange_heart:" class="emoji" height="16" src="/emojis/1f9e1.png" width="16"&gt; &lt;img alt=":ok:" class="emoji" height="16" src="/emojis/1f197.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;Ａ子とのやり取りが続くたびに、ランプが青く点滅する。せっかくのフルカラーLEDなのに、青色しか使えないのは寂しいなと思ってＡ子に理由を聞いてみたら、「クリスマスのイルミネーションっぽいから」と言っていた。クリスマスカラーなら赤と緑だと思うけど、確かに街で見るのは青い光かもしれない。&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; Ａ子のランプも光ってるの？&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; こっちも &lt;img alt=":blue_heart:" class="emoji" height="16" src="/emojis/1f499.png" width="16"&gt; が3つだよ &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;「そっか。Ａ子も、私と同じ光を見てるんだ……」&lt;/p&gt;
&lt;p&gt;ふと、部屋の電気を消してみる。&lt;/p&gt;
&lt;p&gt;暗闇の中で、メッセージアプリとLEDだけが浮き出るように明るく光っている。通知に合わせて点滅するLEDは、駅前で見るイルミネーションと比べれば暗くて寂しい光だけど、Ａ子と分かち合ってると思うだけでなんだか温かい気持ちになる。&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; 通知に合わせて光るのって面白いね&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; 光らなくても、ARグラスなら通知が来たってすぐ分かるのに&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; グラスを外してるときも通知が見えて便利 &lt;img alt=":v:" class="emoji" height="16" src="/emojis/270c.png" width="16"&gt; &lt;img alt=":smirk:" class="emoji" height="16" src="/emojis/1f60f.png" width="16"&gt; &lt;img alt=":v:" class="emoji" height="16" src="/emojis/270c.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; Ｂ子のメッセいつでも読みたい &lt;img alt=":smirk:" class="emoji" height="16" src="/emojis/1f60f.png" width="16"&gt; かも &lt;img alt=":duck:" class="emoji" height="16" src="/emojis/1f986.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; &lt;img alt=":smirk:" class="emoji" height="16" src="/emojis/1f60f.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; &lt;img alt=":duck:" class="emoji" height="16" src="/emojis/1f986.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;トーク画面を閉じると、ランプだけが何度も明滅して、まるで目の前でＡ子が話しているみたいでドキドキする。どんなことを話しているのか、どんな気持ちなのか、どんな格好なのか……それは分からないけど、私とのおしゃべりを楽しんでくれていたらいいな、と思う。&lt;/p&gt;
&lt;p&gt;ランプに顔を近づけて、白いキャップをそっと撫でる。Ａ子のおしゃべりを見ているうちに、だんだんと黄色い光が強くなってきていた。それも、ただ明るくなるだけではなく、脈打つように揺らめきながらその輝きを増している。まるで、蝶がさなぎを捨てて飛び立つかのように。&lt;/p&gt;
&lt;p&gt;この光はＡ子の分身か、あるいは私の分身か。&lt;/p&gt;
&lt;p&gt;「Ｂ子のメッセいつでも読みたい、かも……だって」&lt;/p&gt;
&lt;p&gt;例えば、私がＡ子に感じているドキドキが黄色い光に変わっているとしたら。この光を見ているＡ子に私の鼓動が伝わってしまうとしたら。&lt;/p&gt;
&lt;p&gt;今日は不思議な日だ。また光が強くなる。いつも一緒にいるはずなのに、どうしてこんなにドキドキするんだろう――&lt;/p&gt;
&lt;p&gt;「……あ、トイレに行きたいんだった」&lt;/p&gt;
&lt;p&gt;――Ａ子とのおしゃべりに夢中になっているうちに、すっかり尿意が限界を迎えていた。Ａ子へのドキドキではなく、尊厳のピンチに対するシグナルだったらしい。&lt;/p&gt;
&lt;p&gt;窮地を脱してトイレから戻ると、なぜかテーブルの上のランプが今日一番の明るさで赤い光を放っていた。部屋の雰囲気ががらりと変わって、まるでARグラスがクラッシュしたときみたいだ。しばらく眺めてみるけれど、LEDはずっと赤く光ったまま。流石に故障だろうと思って、写真と一緒にメッセージを送ってみたけどなかなか返ってこない。&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; 明日、Ａ子の家行っていい？&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; ランプが赤 &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; のまま消えなくなっちゃった。修理して &lt;img alt=":pray:" class="emoji" height="16" src="/emojis/1f64f.png" width="16"&gt; &lt;img alt=":pray:" class="emoji" height="16" src="/emojis/1f64f.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; あれ？寝落ちた？&lt;/p&gt;
&lt;p&gt;赤い部屋って、静かに座っているだけでもなんだか不安な気持ちになる。再び部屋の電気を点けてランプを眺めていると、しばらくしてＡ子からそっけないメッセージが返ってきた。&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; 故障だと思う&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; でもごめん&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; 明日、部屋の掃除しなきゃいけないから無理かも&lt;/p&gt;
&lt;p&gt;&lt;img alt=":a:" class="emoji" height="16" src="/emojis/1f170.png" width="16"&gt; &lt;img alt=":pray:" class="emoji" height="16" src="/emojis/1f64f.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=":b:" class="emoji" src="/emojis/1f1e7.png" width="16" height="16"&gt; そっか。頑張って &lt;img alt=":pray:" class="emoji" height="16" src="/emojis/1f64f.png" width="16"&gt;&lt;/p&gt;
&lt;p&gt;Ａ子ってば、どうしちゃったんだろう。そう思いながらふとテーブルに目をやると、壊れたランプが少し遅れて青い点滅を放っていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/5688"&gt;百合SS Advent Calendar 2020&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>ドアスコープ</title><link href="https://ama.ne.jp/post/door-scope/" rel="alternate"/><published>2020-12-12T19:52:00+09:00</published><updated>2020-12-12T19:52:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-12-12:/post/door-scope/</id><summary type="html">&lt;p&gt;まるでダイヤモンドみたい&lt;/p&gt;</summary><content type="html">&lt;p&gt;「ごめんなさい。私ったら、また寝てしまったのね」&lt;/p&gt;
&lt;p&gt;大きなベッドで目を覚ましたユミが、ソファに腰掛けてそわそわと待つ私に気付いて声をかける。&lt;/p&gt;
&lt;p&gt;眠っているユミを見ていたら、きっと彼女を求めて泣きじゃくってしまうだろうから、私は彼女に背を向けて待っているしかなかった。ラブホテルのつまらない有線放送さえも、今は息の詰まるような静寂をかき消す唯一の救いに思える。&lt;/p&gt;
&lt;p&gt;「はい、薬。遅くなっちゃったから、夕食分は飛ばして。次は明日の朝だから。忘れないでね」&lt;/p&gt;
&lt;p&gt;起き上がったユミに歩み寄って、お気に入りのケイト・スペードのポーチを差し出す。ポーチを勝手に開けるとユミはひどく機嫌が悪くなるから、薬のシートを取り出すのはいつも彼女自身の仕事だった。それでも、ユミがどんな薬を飲んでいるのか、いつ飲むべきなのか、私はよく知っている。&lt;/p&gt;
&lt;p&gt;ユミがベッドを降りて私の隣に座った。栓を開けたミネラルウォーターのボトルを差し出すと、ユミは「ありがとう」と言って私に寄りかかる。赤や黄色の錠剤を飲み終わるのを待って、私は本題を切り出した。&lt;/p&gt;
&lt;p&gt;「ねぇユミ、もうやめない？　こんなこと、彼も悲しむよ」&lt;/p&gt;
&lt;p&gt;「またその話？　彼は何も知らないわ。それに、セックスってこんなに気持ちいいんだもの。誰が不幸になるっていうのよ」&lt;/p&gt;
&lt;p&gt;「元カノを捕まえてセックスのためだけに会うのって、すごく不幸なことだよ……そう、不幸だよ……」&lt;/p&gt;
&lt;p&gt;自分に言い聞かせるように呟く私を見て、彼女は人差し指を唇に当てて考えるふりをする。「ふーん」と吐息を漏らすユミには、私の苦しみなんてどうでもいいに決まっていた。&lt;/p&gt;
&lt;p&gt;ユミは私の全てを知っていて、私はユミのすべてを知っている。ずっとそうだと思っていた。それでよかったはずなのに。&lt;/p&gt;
&lt;p&gt;「でも、あなたって私のことが好きでしょう？　それってすごくしあわせなことだと思うの。あなたは、間違いなく私の人生に必要な人よ。何だってしてあげたいくらいに」&lt;/p&gt;
&lt;p&gt;そう言って、ユミが私の手を握った。起き抜けのユミはいつも機嫌がよくて、まるで私を本当の恋人のような目で見てくれる。その瞬間だけは、彼女も私もお互いのために自分を捧げる夢みたいな想像をかき消さずにいられた。&lt;/p&gt;
&lt;p&gt;「じゃあ、私……また、ユミの部屋に行きたいんだけど」&lt;/p&gt;
&lt;p&gt;「……それはダメ。あなたも、分かってるでしょう？」&lt;/p&gt;
&lt;p&gt;しかし、そんな時間は長くは続かない。ユミはお気に入りのティータイムを邪魔されたみたいに不満げに鼻を鳴らすと、すっと立ち上がって身支度を始めてしまった。冷たそうな背中に「ユミ、ごめんね」と呼びかけたところで、数秒前の甘い瞬間が返ってくることはない。&lt;/p&gt;
&lt;p&gt;私だけがここに取り残されて、そっと彼女の足元を見ていることしかできなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;一度だけ、ユミの部屋に行ったことがある。小さなマンションの五階、東向きの1DK。紺色のテーブルクロスのかかった大きなダイニングテーブルに、背もたれのついたウッドチェアが二つ。「そこ、本当は彼が座るところなの。バレたら怒られちゃうかしら？」と言って笑った。&lt;/p&gt;
&lt;p&gt;正面には、ティースプーンを弄ぶユミと、ガラスのクッキージャーいっぱいに詰められた手作りのカラメルビスケット。ゆったりしたオリーブ色のワンピースに身を包んだユミが、また何枚かビスケットを取り出して私の皿に置いた。その一つ一つの動きに見とれているうちに、何時間も、何日も経ってしまうような、身体がゆっくりと深い紅茶の海に沈んでいくような不思議な感覚を覚えた。&lt;/p&gt;
&lt;p&gt;「私、そろそろ帰らないと」&lt;/p&gt;
&lt;p&gt;「あら、泊まっていけばいいじゃない。彼には友達が来たって言っておくから」&lt;/p&gt;
&lt;p&gt;「え、でも……」&lt;/p&gt;
&lt;p&gt;「こんな時、私たちって便利よね。友達だとか、恋人だとか、勝手に決められちゃうんだもの」&lt;/p&gt;
&lt;p&gt;ユミがクッキージャーの蓋を閉じる。私は彼女に何と答えるべきか分からなかった。次第に私の周囲を満たす重い沈黙から逃げるようにふと横を見ると、ドアの一点がきらきらと輝いていた。暖かい橙色を縁取って、青や緑の光条が伸びている。首を傾けると、七色の放射がゆら、ゆらと揺れた。まるで、泡のように世界が裂けて虹色の空が流れ込んできてしまいそうだ。&lt;/p&gt;
&lt;p&gt;突然飛び込んできた強い光線のせいか、目の端からつぅ、と涙が落ちる。&lt;/p&gt;
&lt;p&gt;「ドアスコープに夕日が当たって、部屋に光が入り込むのよ。ちょうど去年の今頃もこんな感じだったわ。ラッキーね、あなた」&lt;/p&gt;
&lt;p&gt;日没に合わせて、ドアスコープが少しずつ輝きを失っていく。それはほんの数分のできごとだった。世界の裂け目が刺すような赤い光に変わってから、ふっと消えてしまう。テーブルに落ちていた深い影が霧散するように逃げ出して、ユミはスイッチが切れたみたいにうつむいた。ユミは薄闇の中で、何を考えていたのだろう。&lt;/p&gt;
&lt;p&gt;なぜか、もう二度と同じ光景は見られないだろうと思った。&lt;/p&gt;
&lt;p&gt;「不思議よね。まるで、まぶたのない瞳みたい。どうしてこんなに無防備なのかしら。見たくないと思っても、視界から消し去ることさえできなくて――」&lt;/p&gt;
&lt;p&gt;そう言いかけて、ユミは死んだように眠ってしまった。彼女の眠り癖は、決まってこういう大事な瞬間に起こるのだ。いつだって、私を取り残して。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;思い出してみると、あのテーブルに彼女と向き合って座ったのは、別れてからちょうど一ヶ月経ったあの日の夕方だけだ。それからは、喫茶店かレストランか、ショッピング、あとはホテル。ユミは、私の部屋の壁が薄いのをひどく気にしていた。&lt;/p&gt;
&lt;p&gt;「やっぱり、彼にあなたのこと言ってみるわ。あなたと違って、私の全部を受け入れてくれるかもしれないし」&lt;/p&gt;
&lt;p&gt;「受け入れてくれなかったら、どうするの？」&lt;/p&gt;
&lt;p&gt;ユミが「そうねぇ……」と考え込むけど、私にとっては意味のない質問だった。彼がそんな提案を受け入れるわけがないって、分かっていたから。&lt;/p&gt;
&lt;p&gt;こんなに魅力的な女性を独り占めできないなんて。それを自分の口から認めなきゃいけないなんて。&lt;/p&gt;
&lt;p&gt;「もう、別れちゃおうかしら。そうしたら、また付き合えるわね、私たち」&lt;/p&gt;
&lt;p&gt;背中にぞわり、と期待と絶望をまとった電撃のような震えが走る。ユミのセックスは、決して彼女の身体を満足させるためのものでもなければ、誰かに愛を与えるものでもなかった。自分に向けられた視線を、ユミにぶつけるはずだった欲望を、彼女と分かち合うために捧げられた人生を、ただ一方的に吸い上げるだけのある種の儀式だった。&lt;/p&gt;
&lt;p&gt;だから、私の愛の全てを差し出したって終わらない。私では足りなくなったのなら、また他の誰かから吸い上げるのだろう。今、彼女が私の目の前に期待をぶらさげているように。そんなの、一度だって私に耐えられるわけがない。だから、私は彼女から逃げた……はずだった。&lt;/p&gt;
&lt;p&gt;「……そんなこと言わなくていいよ、わざわざ。私は、このままでいいから」&lt;/p&gt;
&lt;p&gt;すべてを終わらせてしまいたくなる衝動を押し殺して絞り出すようにそう告げると、ユミは「そう？」と楽しそうに笑った。&lt;/p&gt;
&lt;p&gt;ユミはいつも、私を残してひとりでドアの向こうに消えていく。楽しい時間を唐突に奪い取るようにして。のっぺりとしたグレーのドアに付いているのは、ルームサービスを受け渡す開閉式の小さな窓だけだ。&lt;/p&gt;
&lt;p&gt;ユミがラブホテルでしか会ってくれないのは、ここが時間で区切られた場所だから。私がお金を払って彼女のために作った場所だから。&lt;/p&gt;
&lt;p&gt;自動精算機に一万円札が吸われていく。私の願いは、ユミと彼氏を別れさせることでも、ユミとよりを戻すことでもなかった。今はこれだけが、彼女が私にくれた輝きを失わずにいられる呪いだと、私と彼女を繋ぎ止める絆だと信じるしかなかったから。&lt;/p&gt;
&lt;p&gt;あの日彼女の家で見た光は、私に何を教えてくれたのだろう。このドアを開けてユミを引き止めたら、彼女は私だけを見てくれるだろうか。もしそうだとしても、あのまっすぐな光が失われてしまった今では、もう私には何の希望も見えなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/5688"&gt;百合SS Advent Calendar 2020&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>マルチチャネルと懐古主義</title><link href="https://ama.ne.jp/post/multi-channel/" rel="alternate"/><published>2020-12-08T04:01:00+09:00</published><updated>2020-12-08T04:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-12-08:/post/multi-channel/</id><summary type="html">&lt;p&gt;おしらせ&lt;/p&gt;</summary><content type="html">&lt;h2 id="_1"&gt;追加作品について&lt;/h2&gt;
&lt;p&gt;あまねけ！に以下の作品が追加されました。2016年～2018年に発行された自由文化作品のHTMLページ版（リマスター）です。読んだことがなければぜひ読んでください。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="/post/happiness-missile/"&gt;しあわせミサイル&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/happiness-guideline-1/"&gt;しあわせガイドライン&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/happiness-guideline-2/"&gt;しあわせガイドライン 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/strawberry-doll-1/"&gt;ストロベリィドール&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="/post/strawberry-doll-2/"&gt;ストロベリィドール 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/post/strawberry-doll-3/"&gt;ストロベリィドール 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;記事の作成日時は対応する&lt;a href="https://amane.im/#works"&gt;自由文化作品&lt;/a&gt;の公開日時に合わせているため、この記事でお知らせすることにしました。&lt;/p&gt;
&lt;h3 id="_2"&gt;&lt;a href="/post/happiness-missile/"&gt;しあわせミサイル&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;2018年発行。しあわせシリーズ第2弾。しあわせエネルギーで生きる人たちや、そうでない人たちのお話です。リューゲン島のデカい保養所がモデルになっています。東京オリンピックの結末を予言していたとして一部で盛り上がりました。&lt;/p&gt;
&lt;h3 id="_3"&gt;&lt;a href="/post/happiness-guideline-1/"&gt;しあわせガイドライン&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;2017年発行。しあわせシリーズ第1弾。政府によってマニュアル化されたしあわせから逃げようとする2人の女子高校生のお話です。さて、逃げられるかな？　冒頭の環境宣言文みたいなのを頑張って書いてた頃だと思います。&lt;/p&gt;
&lt;h3 id="_4"&gt;&lt;a href="/post/strawberry-doll-1/"&gt;ストロベリィドール&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;2016年発行。数年ぶりに再会した2人が、ざくざくと血液だらけのエッチをします。本当はお人形遊びで我慢しなきゃいけなかったのに……。最近書いているものとは結構印象が違う気がします。もしかして、こういうのを書いたほうがいいですか？&lt;/p&gt;
&lt;h2 id="_5"&gt;マルチチャネル化について&lt;/h2&gt;
&lt;p&gt;今回、ダウンロードせずに作品を読める新たな閲覧方法を提供しましたが、あなたは「ama.ne.jp」というドメインの外には出ていません。これをマルチチャネルと呼ぶべきかは微妙ですが、ある種の進歩には違いないはずです。&lt;/p&gt;
&lt;p&gt;PDFで読むのは億劫だったけど、これなら……と、このどれか1つでも読み始めた人がいるなら、この記事は大成功です。ありがとうございます。&lt;/p&gt;
&lt;p&gt;私は、できることならプラットフォームには与したくないし、中央集権的SNSを盛り上げたくもないと思っています。それでも、即売会は回を重ねるたびに巨大化し、VTuberは事務所に束ねられ、SNSはユーザーを囲い込み続けます。個人サイトの運用は旧道沿いの定食屋と同じように衰退の一途で、2020年は利害が交錯する巨大なプラットフォームの運営組織に命を預けるのが当たり前だそうです。えっ、本当に？&lt;/p&gt;
&lt;p&gt;理想的には、あなたはあなた自身でサイトを所有し、それらの更新をきめ細かいフィードで提供すべきです。しかし、あなた1人で便利な巨大プラットフォームを降りたとしても、誰もあなたの後には続かないでしょうし、運が悪ければ共感性に欠けた人として攻撃されてしまうかもしれません。それはとても苦しいことだし、大多数の側に立っている方が「楽」だし「合理的」で「効率的」ですよね。誰も貧乏くじは引きたくないものです。そんな人々の気持ちを吸い上げて、プラットフォームはどんどん膨れ上がっていきます。&lt;/p&gt;
&lt;p&gt;さて、これまでどの作品を読んだこともないし、これからどの作品を読むつもりもない人へ。次は、何をすればいいですか？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;検索性の低い文庫ページ画像を添付してツイートすればいいですか？&lt;/li&gt;
&lt;li&gt;「スレッド」機能を活用して、短いツイートのインスタントなリズムでストーリーを展開するといいですか？&lt;/li&gt;
&lt;li&gt;（カジュアルに使うのは面倒なのに、ちょっと凝ったことをしようとすると圧倒的に機能が足りない）小説向けプラットフォームにアップロードした方がいいですか？&lt;/li&gt;
&lt;li&gt;可愛らしいイラストや聞き心地の良い声による朗読が付属しているべきですか？&lt;/li&gt;
&lt;li&gt;&lt;a href="/comment/new/"&gt;それとも……？&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="ugoki"/></entry><entry><title>海が壊れる</title><link href="https://ama.ne.jp/post/pool/" rel="alternate"/><published>2020-12-06T14:06:00+09:00</published><updated>2020-12-06T14:06:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-12-06:/post/pool/</id><summary type="html">&lt;p&gt;ライブチャット&lt;/p&gt;</summary><content type="html">&lt;p&gt;「Ｂ子、もう行くぞ！　早く出てこいって」&lt;/p&gt;
&lt;p&gt;冬に入りたての冷たい夕暮れの中で、イライラしたＡ子の声と共に乱暴にドアノブを回す音が響く。浮いたレバーがあちこちにぶつかって、不快な金属音がＢ子の部屋を満たした。とはいえ、都心の繁華街から徒歩数分の狭苦しいマンションには、これくらいの騒音で苦情を申し立てるような繊細な住人はいない。&lt;/p&gt;
&lt;p&gt;「Ａ子、そんなところで騒がないでよ！　あぁ、せっかちなのって、本当に嫌だわ」&lt;/p&gt;
&lt;p&gt;四階にあるＢ子の部屋のドアノブは、ここに引っ越してきた当初よりも明らかにゆるくなっていた。このドアノブが壊れたら、修理費用は「恋茶」のタピオカミルクティでおよそ二十五杯分。Ｃ子によれば、その十パーセントが材料費、二十パーセントが交通費で、残りは作業費だという。&lt;/p&gt;
&lt;p&gt;どうせＡ子を怒鳴りつけたところでこの乱暴さは治らないし、抜け落ちたらＣ子を呼んで直してもらえばいい、とＢ子は思った。&lt;/p&gt;
&lt;p&gt;「時間通りに来るって言ったんだから、開けとけよな」&lt;/p&gt;
&lt;p&gt;諦めて自分で鍵を開けたＡ子が、ずかずかと部屋に上がり込む。&lt;/p&gt;
&lt;p&gt;Ｂ子は昼に買ったサーモンナゲットの残りを口に放り込み、それをシリカ水で流し込んでから、ピンクのボトルをぐしゃりと潰した。Ｂ子はコンビニに行くと三回に二回はこの「特製モゲット五個入り（紫）」を買っているが、Ａ子には大豆たんぱくと魚肉が混ざったパサパサで生臭い塊の美味しさがどうしても分からなかった。&lt;/p&gt;
&lt;p&gt;「うるさいわね。あんたって、治安感覚が狂ってるんじゃないの？　私に言わせれば、下に置いてきたバイクの心配をしたほうがいいと思うけど」&lt;/p&gt;
&lt;p&gt;「アレはＣ子がセキュリティ付けてくれたからいいんだよ。勝手に触ったら、ドカン！だからな」&lt;/p&gt;
&lt;p&gt;「そうよね。スクーターからミニミサイルが出るなんて、いかにもバカが考えそうなアイデアだもの」&lt;/p&gt;
&lt;p&gt;Ｂ子の言う通り、Ａ子がこうして急ぐのはバイク（正確には、Ｃ子が大幅な改造を加えた125ccのスクーターだが）を下に停めているからであり、それは同時に小さな遠出が始まる合図でもあった。Ｂ子にも当然それは分かっていて、もう家を出る準備は終わっていた。&lt;/p&gt;
&lt;p&gt;「すぐ行くから、下で待ってなさいよ」&lt;/p&gt;
&lt;p&gt;そう言うと、Ｂ子は白いサッチェルバッグにポータブル加湿器を突っ込んだ。肌にナノミストを染み込ませるだけではなく、化粧水や水素水を噴霧できたり、さらには七色に光る優れものだ。&lt;/p&gt;
&lt;p&gt;「Ｂ子、またそんな服着てんの？　今から &lt;em&gt;海を壊す&lt;/em&gt; ってのに、そんな格好でいいのかよ」&lt;/p&gt;
&lt;p&gt;Ａ子の言う通り、Ｂ子はいつもと変わらないお人形さんのような服装だった。ふわりと広がる裾にぐるりと白い線が入ったベリーカラーのワンピースが、黒髪の大きなツインテールによく馴染んでいる。さらに、薔薇の模様の入った白い厚手のオーバーニーと、リボンのように巻かれたジャカード織のピンクのストールがその身体を包み込む。ストールを外した時に着けられるように、バッグには大きな金色の鍵のモチーフを下げたペンダントが入っていた。&lt;/p&gt;
&lt;p&gt;Ｂ子はさらにその上からベージュのピーコートを着込んだが、今からしっかり北風に当たることを考えると、寒さ対策にはまだ少し足りないかもしれない。&lt;/p&gt;
&lt;p&gt;Ａ子によれば、Ｂ子は持ち前の巨乳を活かしてファンからいいね！を集めているだけの薄っぺらい女だというが、Ｂ子は「脱いでないだけマシじゃない！」と反論していた。さらに「だらしない腹を見せたくないだけじゃん」「今はむしろ、そういうのが人気だからいいの！」……と続く。&lt;/p&gt;
&lt;p&gt;「水着もちゃんと持ったわよ。あんたこそ、普段どおりのコーデじゃないの」&lt;/p&gt;
&lt;p&gt;そう言って、Ａ子の顔を指さす。くせの強い茶髪は、運転のじゃまにならないように無理やりポニーテールにまとめられている。テカテカした紺色のスタジャンにゆったりした黒いデニムパンツは、こちらもいつもと同じ冬の装いだった。ポケットにはスマホとタバコとライターしか入っていないし、メットインは出処の分からないがらくただらけで、水着が入るような隙間はないはずだ。&lt;/p&gt;
&lt;p&gt;「いやいや、あたしだってちゃんと着てきたっつーの」&lt;/p&gt;
&lt;p&gt;Ａ子がスタジャンのボタンを開けると、荒いディザのかかった犬の写真がプリントされた濃いパープルのパーカーが現れる。さらに「ほら」とインナーと一緒に裾をめくると、引き締まった綺麗なお腹に続いて青い三角ビキニがあらわになった。&lt;/p&gt;
&lt;p&gt;「ちょっと……二十歳超えても頭は小学生のままね。本当に心の底から尊敬するわ」&lt;/p&gt;
&lt;p&gt;「じゃあ、早く出ようぜ。もうＣ子も向かってるってよ」&lt;/p&gt;
&lt;p&gt;Ｂ子はさらに「まぁ、可愛いじゃない。ちゃんと盛れてるし」と続けるつもりだったが、言葉に詰まっているうちにＡ子が玄関に向かってしまう。鏡の前でバッグを背負いながら「……なによ、もう」と、小さくため息をついた。&lt;/p&gt;
&lt;p&gt;玄関に使い古した白いスニーカーと黒い編み上げのショートブーツが並ぶ。Ａ子の後に続いて外に出たＢ子は、日没を迎えた夜空の寒さに小さく震え上がった。都会のど真ん中でさえこの空気なのだから、今から向かう廃港には雪が降っていてもおかしくない。Ｃ子の指示通り水着は持っていくけれど、こんな気温でビキニなんて着たら凍死は確実だった。&lt;/p&gt;
&lt;p&gt;Ｂ子によれば、Ｃ子はもともとＡ子の友達で、三人でつるむようになってからもその印象はあまり変わらずにいた。Ａ子とは前から二人で遊ぶ仲だったが、Ｃ子とは二人で出かけたことさえなかったからだ。一方で、Ｃ子は二人の有料配信の準備や撮影をこなす技術担当だったから、彼女らが演じる &lt;em&gt;ショー&lt;/em&gt; についてはよく知っていた。&lt;/p&gt;
&lt;p&gt;Ｂ子がタンデムステップに足を掛けてシートにまたがる。風除け（Ｃ子によればv8.3144-SNAPSHOT）の有効半径を目視で確認しつつ目の前の腰を掴むと、Ａ子が後ろを向いた。&lt;/p&gt;
&lt;p&gt;「やっぱＢ子って二人乗り向いてねーよな。胸はデカいし重いし服はヒラヒラだし。Ｃ子がこいつを改造してなかったら、そもそもスカートなんて履けな――」&lt;/p&gt;
&lt;p&gt;「うるさいわね！　いいから早く出しなさいよ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Ａ子たちが港に着くと、既にＣ子がポケット投光器（最大10000ルクス・材料費として12,617円）に照らされながら海を壊す準備を始めていた。&lt;/p&gt;
&lt;p&gt;「あ、ＡちゃんＢちゃん。早かったねぇ」&lt;/p&gt;
&lt;p&gt;振り返ったＣ子に、Ａ子が「よっ」と軽やかに手を振る。Ｂ子と一緒に投光器を背にして立つと、強力な光が当たる素肌がほんのりと暖かくなった。&lt;/p&gt;
&lt;p&gt;猫のイラストがパズルのように並べられたカラフルなレジャーシートの上には、手持ち花火セット（7,080円）、打ち上げ花火セット（11,800円）、ビデオカメラ（153,164円・減価償却中）、三脚（9,440円）、ノートパソコン（Ｃ子の私物）、モバイルルーター（Ｃ子の私物）などと一緒に、家庭用の打ち上げ花火を装填できる小さなバズーカが置かれている。&lt;/p&gt;
&lt;p&gt;そのバズーカには、Ｃ子が好きな「ラブファイターシュガースター」のステッカーが大量に貼られていた。Ａ子によれば、Ｃ子は自分が開発中のデバイスにシールを貼るのが大好きらしい。&lt;/p&gt;
&lt;p&gt;Ｃ子の前に、二人よりも一回り背が小さい影が伸びている。実験の邪魔にならないように短く切り揃えられた黒髪は、サイドの毛先が明るい緑色に染まっていた。白いワンピースにピンクの麦わら帽子をかぶったその姿は、寂れた夜の港よりも明るい砂浜の方が似合っているのかもしれないが、小柄な身体に背負われた大きな黒いリュックのせいで透き通るような夏の印象はすっかり薄れている。&lt;/p&gt;
&lt;p&gt;Ｂ子は、ワンピースと麦わら帽子という季節外れの組み合わせにどうこう言うつもりはなかった。しかし、洗練されたコーデを台無しにする無駄なリュックと、それを気にも留めないＣ子の無神経さに少し腹が立っていた。&lt;/p&gt;
&lt;p&gt;と、彼女がＣ子のリュックについて問い詰めるよりも先に、Ａ子が横から口を挟んだ。&lt;/p&gt;
&lt;p&gt;「Ｃ子、リュックは下ろせよ。そっちの方が夏っぽいって」&lt;/p&gt;
&lt;p&gt;「ちょっと、Ａ子――」&lt;/p&gt;
&lt;p&gt;「んー……そうかも！　ありがと、Ａちゃん」&lt;/p&gt;
&lt;p&gt;Ｃ子は笑顔でリュックをレジャーシートの上に置き、さらにそこから同じようなシールが貼られた太い筒を取り出した。おそらくバズーカに装填して射出する花火のような装置のはずだが、Ｃ子の手の中で揺れるたびにちゃぷちゃぷと液体の音が聞こえる。&lt;/p&gt;
&lt;p&gt;楽しそうなＣ子を尻目に、先を越されたＢ子はＡ子を睨みつけていた。気付いたＡ子が「何見てんだよ？」と応酬するが、さらに「うっさい！」と返すＢ子自身にも、何にイラついているかはよく分からずにいた。&lt;/p&gt;
&lt;p&gt;「Ｃ子。 &lt;em&gt;パパ&lt;/em&gt; はどう誤魔化したん？　今日も電車で来たんだろ？」&lt;/p&gt;
&lt;p&gt;「あ、トラカのこと？　一枚くらい偽造するなら簡単だよ。大量に生産したいなら、香港に行ったほうがいいと思うけど」&lt;/p&gt;
&lt;p&gt;Ｃ子が &lt;em&gt;花火&lt;/em&gt; をバズーカに装填する。今日の撮影計画によれば、このバズーカで海を壊してから、花火を使って投稿に使う映像の撮影や有料配信を行うらしい。冬に花火を楽しむ映像が絶対バズるはずというのは、Ｂ子のアイデアだった。&lt;/p&gt;
&lt;p&gt;Ｃ子によれば、Ｂ子が自信満々に出したアイデアが今まで大ヒットしたことはないという。&lt;/p&gt;
&lt;p&gt;トラカは都民カードと紐付いた非接触ＩＣの乗車券である。個人情報なしでは乗車できないこのシステムは、小中学生の通学や塾通いに支障がないか、彼らの保護者が &lt;em&gt;見守る&lt;/em&gt; にはとても好都合だった。Ｃ子のパパは、大学生になった今でも彼女の乗車履歴をよく気にしている。&lt;/p&gt;
&lt;p&gt;「海、壊れたらどうする？　そのまま水着で配信してもいいかもな」&lt;/p&gt;
&lt;p&gt;そう言うと、Ａ子がにやりと不敵な笑みを浮かべてジャケットとパーカーを脱ぎ捨てる。彼女が下に水着を着ているなんて知らなかったＣ子は少し驚いたが、しばらく見つめているうちに、指でなぞりたくなるようなゆるやかな起伏にいつの間にかドキドキしていた。&lt;/p&gt;
&lt;p&gt;「おぉ……さむ……」&lt;/p&gt;
&lt;p&gt;数秒前の思い切りの良い脱ぎっぷりが嘘のように、Ａ子が自分の身体を抱いて震えだす。やはりほぼノーガードのビキニでは、冬の海風に耐えられるわけがない。それでもＡ子は「Ｂ子もＣ子も早く着替えろよ」と急かすので、Ｂ子は何度か文句を吐いてからしぶしぶ物陰を探しに向かった。&lt;/p&gt;
&lt;p&gt;「あのバカ、マジで許さないんだから……」&lt;/p&gt;
&lt;p&gt;かつて港の設備の一部だった道具小屋を見つけたＢ子は、おそるおそる中に入るとレジャーシートを広げて足場を確保した。そして、隙間から風が吹くたびに「お……ふっ……」と寒さに震えながら、十五分ほどでどうにか着替えを終えた。&lt;/p&gt;
&lt;p&gt;上からコートを羽織ったＢ子が二人の元へ戻ると、簡易なヒーターを兼ねた強力な投光器の下で、Ａ子の健康的なビキニの横に、紺のスクール水着に身を包んだＣ子の姿を見つけた。よく見ると、二人とも額にきらきら光る偏光ゴーグルを身に着けている。&lt;/p&gt;
&lt;p&gt;「それも、パパの趣味？」&lt;/p&gt;
&lt;p&gt;Ｂ子が名札を指さすと、Ｃ子は「そんな感じ」と肩をすくめた。成人したての大学生が着るような水着ではないものの、Ｃ子の身体にはよく似合っているし、この気温の下で大きな布面積は明らかに有利だった。&lt;/p&gt;
&lt;p&gt;「えーと……反動でいっぱい光が出るから、Ｂちゃんもこれ着けたほうがいいかも。失明するほどじゃないんだけど……」&lt;/p&gt;
&lt;p&gt;そう言って、Ｃ子が二人と同じ偏光ゴーグルをＢ子に手渡した。Ｂ子はしげしげとその無骨なアクセサリーを隅々まで眺めると、とうとう「嫌よ。こんなダサいの着けたくないわ」と突き返してしまう。「危ないから着けて」「ダサいから嫌」と、そんなやり取りを何度か繰り返した後、結局Ｃ子が折れて「せめて目は瞑っててね」と頼み込んだ。&lt;/p&gt;
&lt;p&gt;「ＡちゃんＢちゃん。今から、みんなで海に向かってこれを撃つの。そうしたら、すぐ始まるから」&lt;/p&gt;
&lt;p&gt;Ｃ子がバズーカを肩に載せ、その横からＡ子とＢ子がバズーカに手をかける。発射口は、Ｃ子の指示通りに五十メートル程先の水面を指している。Ｃ子の呼吸に合わせて照準が前後しているが、水面にさえ着弾すれば問題なかった。&lt;/p&gt;
&lt;p&gt;「じゃあ、いくよ……」&lt;/p&gt;
&lt;p&gt;しばし緊張を伴った静寂が流れた後、誰からともなく引き金を引くと、パシュッと風を切る小さな音と共に強烈な光が辺りを包み込んだ。&lt;/p&gt;
&lt;p&gt;肉眼でその閃光を浴びたＢ子は「きゃっ！」と叫んでその場にうずくまってしまう。バランスを崩したバズーカはＣ子の肩を離れ、したたかにコンクリートの地面に打ち付けられた。バズーカは発射口から真っ二つに割れてしまったが、それは既に &lt;em&gt;始まって&lt;/em&gt; いたから、Ｃ子にとっては役目を終えた道具の行く末なんてもうどうでもよかった。&lt;/p&gt;
&lt;p&gt;それから遅れること数秒、Ｃ子のお手製花火が着弾した水面が大きく揺れて、ほんのり光を帯びた液体があふれ始める。それはおおよそ無色透明だったが、ずっと遠くに目をやるとわずかにエメラルドグリーンに染まっているのが分かった。&lt;/p&gt;
&lt;p&gt;その不思議な潮汐はみるみるうちに港を満たしていき、いつの間にか三人の足元を覆っていく。しかし、その液体は彼女らの靴を濡らすこともなく、まるでパンケーキにかかったシロップのように陸の方へ流れていった。&lt;/p&gt;
&lt;p&gt;Ａ子が思わず「すげぇ」と声を漏らす通り、それは決して日常では出会えない不思議で不可解な光景だった。Ｃ子にとっては実験室で何度も見た現象だったが、大海原を埋め尽くすその景色に新たな感動を覚えている。そして、こんなに綺麗な景色をシェアできないなんて、とＢ子に無理にでもゴーグルを渡さなかったことを後悔していた。&lt;/p&gt;
&lt;p&gt;しゃがみこむＢ子の視界が回復した頃には、既に大きな波が彼女の首元まで迫っていた。Ｂ子は思わずのけぞるけど、彼女の顔に水がかかったような感触はない。状況を理解するより先に、彼女の身体はすっかりエメラルドの水面に浸かってしまった。&lt;/p&gt;
&lt;p&gt;この時、思わず上を見上げたＢ子によれば、Ａ子は穏やかな光の中で遠くを見つめて立ち尽くしていたという。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;エメラルドの海はみるみるうちにその高さを増して、とうとう三人の背を大きく超えて見渡す限り一面を満たしていたが、やはり彼女たちの呼吸に影響はなかった。&lt;/p&gt;
&lt;p&gt;「ねぇ、Ｃ子。妙なことが起きているみたいだけど、どうして私たちは生きてるの？」&lt;/p&gt;
&lt;p&gt;「あ、えっと……流体力学的に計算してて……あ、タンデムシートに空気が流れ込まないのも同じ原理なんだけど、ちゃんと説明する？」&lt;/p&gt;
&lt;p&gt;Ｂ子が首を振ると、Ｃ子は身振り手振りでやさしい説明を始めた。Ｂ子の理解できた範囲では、この特殊な液体の発生点が球面上の一つなら、距離に応じて圧力が増していき、最終的に反対側の点に集まるのだという（ただしＣ子の補足によれば、地球は正確に対称ではないので一点には集まらない）。つまり、地球の裏側ではあらゆる物体が押し寄せて大騒ぎになるだろうということだった。&lt;/p&gt;
&lt;p&gt;「で、海が壊れると、結局どうなるの？」&lt;/p&gt;
&lt;p&gt;「少しずつ、少しずつ、全部混ざり合うよ。なんか、私たちみたいじゃない？」&lt;/p&gt;
&lt;p&gt;Ａ子は二人の会話を聞きながら、水中でクロールのように腕を振り回していた。指先に感覚をよく集中させると、動作の始まりと終わりにほんの少し抵抗があるのが分かる。周囲が空気よりも重い何かで満たされている感覚は糸のようにふわふわと漂っていて、気を抜くと水の中にいるのを忘れてしまうほどだ。Ｃ子の荷物が流されている様子はないし、手の中のスマホも問題なく動き続けていた。&lt;/p&gt;
&lt;p&gt;ふと、Ａ子は辺りが明るく、暖かくなっていることに気付いた。唯一の光源だった投光器の電源はいつの間にか落とされていて、港の隅から隅までほんのりした光で照らされている。Ａ子自身は寒さに慣れてきたつもりだったが、ただ単に海の温かさで満たされていただけだったのだ。&lt;/p&gt;
&lt;p&gt;「えーと……だから、私たちはしばらく大丈夫だよ」&lt;/p&gt;
&lt;p&gt;「しばらく？　いつまでこんなのが続くんだよ？」&lt;/p&gt;
&lt;p&gt;「どうだろうね？　どうだろう……どうだろうね、えーと、うん。とりあえず、花火で遊ばない？　投稿用のクリップも撮影しなきゃいけないし」&lt;/p&gt;
&lt;p&gt;そう言うと、Ｃ子は四角い黒地に白字で「毒」と書かれた白いＴシャツを着て、ビデオカメラの準備を始めた。Ａ子は打ち上げ花火セットから派手そうな数本を抜き取って、数十センチごとに地面に並べている。両手に花火を握ったＢ子はカメラの前でポーズを決めて、Ｃ子がファインダー越しにそれを見ながら微調整を繰り返していた。&lt;/p&gt;
&lt;p&gt;それから、三人はしばらく花火を楽しんだ。Ｃ子は点火した線香花火を何度も観察し、火球がほとんど落ちなくなる現象をノートに書き留めて静かに喜んでいる。Ａ子は赤い光を噴き出す花火を振り回し、火花を浴びそうになったＢ子がわめき散らしていた。&lt;/p&gt;
&lt;p&gt;その横でもくもくと吐き出される白煙が、水に流されてすぐに消えていく。大気の粘度では明らかに起こらない現象だったから、Ｃ子はまた小さく喜んだ。綺麗な写真を残すにはこの上ない環境だった。&lt;/p&gt;
&lt;p&gt;「これ、すごくいいよ！　除煙フィルタも必要ないかも。Ａちゃん、打ち上げ花火も撮っていい？」&lt;/p&gt;
&lt;p&gt;「オッケー。どれにしようかな……」&lt;/p&gt;
&lt;p&gt;Ｃ子が三脚からカメラを外して、空に向かってピントを合わせた。&lt;/p&gt;
&lt;p&gt;Ａ子が打ち上げ花火に点火する。ヒュンッ、と垂直に飛び出した小さな光が数十メートル上空で弾けると、鮮やかな青い花が放射状に開いた。火花は地面に落ちずに広がっていき、ふっと燃え尽きる。エメラルドグリーンの背景に青い煙が流れて、Ｂ子はまるで違う惑星の空を見ているような気分になった。&lt;/p&gt;
&lt;p&gt;しかし、さらに十数秒経っても、誰一人視線を地面に戻さない。花火に見とれているというには、少し奇妙だった。&lt;/p&gt;
&lt;p&gt;「すげぇ、魚が泳いでる」&lt;/p&gt;
&lt;p&gt;それから、最初に言葉を発したのはＡ子だった。目の前の湾を泳いでいたはずのアジやイワシが、はるか上空を群れになってきらきらと泳いでいる。まるで海底に立っているような光景に、Ｃ子でさえもカメラで銀の群れを追うのがやっとだった。&lt;/p&gt;
&lt;p&gt;さらに遅れて、Ｂ子が空にカメラを向ける。フォロワーが大喜びで拡散する姿が目に浮かぶようだった。写真を何枚か、十秒ほどの映像を数本撮ってから「海の中から &lt;img alt=":fish:" class="emoji" height="16" src="/emojis/1f41f.png" width="16"&gt; &lt;img alt=":tropical_fish:" class="emoji" height="16" src="/emojis/1f420.png" width="16"&gt; &lt;img alt=":beach:" class="emoji" height="16" src="/emojis/1f3d6.png" width="16"&gt; &lt;img alt=":fish:" class="emoji" height="16" src="/emojis/1f41f.png" width="16"&gt; 」とコメントを付けて投稿しようとしたところで、Ｂ子が異変に気付いた。&lt;/p&gt;
&lt;p&gt;「Ｃ子、なんかここ圏外なんだけど？」&lt;/p&gt;
&lt;p&gt;「あ……そ、そうだね。全部流されちゃうから、インターネットが通じなくなっちゃったのかも」&lt;/p&gt;
&lt;p&gt;Ｃ子はリュックから取り出したマルチバンドレシーバーをノートパソコンに繋げると、電波の測定を始めた。本当に使うかのは分からないが、港湾事務所の屋根に残された大きなループアンテナにも太いケーブルが伸びている。&lt;/p&gt;
&lt;p&gt;Ｃ子によれば、この液体の中でも電波は（むしろ大気中よりも効率よく）届くはずだったが、700MHz～5.6GHz以上の意味のありそうな電波はほとんど検出できなかった。&lt;/p&gt;
&lt;p&gt;「本州はもうすっかり落ちちゃったみたい。豊原放送局からラジオとテレビの電波が少し届いてるけど……これも、すぐ消えちゃうと思う」&lt;/p&gt;
&lt;p&gt;「じゃあ、今日は配信できないってことか。Ｂ子、どうする？」&lt;/p&gt;
&lt;p&gt;「せっかく来たんだし、どうせなら何本か撮っておきましょうよ。真冬の海で花火編、絶対売れるわよ」&lt;/p&gt;
&lt;p&gt;Ａ子はＢ子の腰に後ろから手を回して「やべー」と言ってくすくす笑う。「……急に触らないでよ」とＡ子を睨みつけるが、その腕に抵抗する力は弱い。それに気をよくしたのか「最近全然してなかっただろ？　やっぱＢ子が一番いいんだよなー」とさらに強く抱き締めた。&lt;/p&gt;
&lt;p&gt;ほんのり冷たいＡ子のお腹がＢ子の腰に触れて思わず身体が跳ねてしまうけれど、Ａ子の手がそっとそれを押さえつける。じわり、と二人の体温が混ざって広がっていくのを、お互いの肌で感じ合っていた。&lt;/p&gt;
&lt;p&gt;それを見るＣ子が何か言いたげに「その、えっと……」ともじもじしているのに気付いて、Ａ子がＢ子の横から身を乗り出した。&lt;/p&gt;
&lt;p&gt;「ん？　どうしたんだよ、Ｃ子」&lt;/p&gt;
&lt;p&gt;「えと……配信しないなら私もエッチしたいんだけど、だめ？　撮影は、してもいいから……」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/5688"&gt;百合SS Advent Calendar 2020&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>おわりのバスで</title><link href="https://ama.ne.jp/post/lastbus/" rel="alternate"/><published>2020-12-01T18:03:00+09:00</published><updated>2020-12-01T18:03:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-12-01:/post/lastbus/</id><summary type="html">&lt;p&gt;アノンド&lt;/p&gt;</summary><content type="html">&lt;p&gt;はじめまして。19歳大学生の女です。他にも同じような方がいたらお話を聞きたいと思ったので、投稿させていただきます。&lt;/p&gt;
&lt;p&gt;先日、GOTOトラベルで東京に行く機会がありました。このご時世でバイトもしにくくてお金がなかったので、移動は往復どちらも夜行バスにしました（私自身は関西の方に住んでいます）。出ているバスの本数はかなり少ない印象でしたが、使う人も少ないのか席はあまり埋まっていませんでした。&lt;/p&gt;
&lt;p&gt;目的は、あるアニメとコラボしているホテル（分かる人には分かると思います）に1泊2日と、ついでに観光してから帰るような感じです。ツイッターの知り合い（Sさんとします）が東京に詳しくて…というか東京に住んでいてちょうど日程も合ったので、観光に付き合ってもらう約束をしてツインで1部屋取ることにしました。&lt;/p&gt;
&lt;p&gt;私はSさんをすっかり女性だと思いこんでいたのですが、行きのバスでツイートを振り返ってみると、確実な証拠がなかったのでちょっとヒヤヒヤしました。まぁ、会ってみたら綺麗なOLっぽい方だったので余計な心配だったと思います。東京の女の人はみんなオシャレでカラフルな髪色なんだと思っていましたが、ミディアムボブの黒髪で、ネイルもピアスもしてないし、あんまり飾りっ気がなくてむしろ安心しました。&lt;/p&gt;
&lt;p&gt;ホテルでは、先日発売されたブルーレイBOXを鑑賞して、夜遅くまで語り合いました。正直かなり盛り上がりました。めっちゃ楽しかったです。Sさんはピクシブで二次創作のマンガを上げていたりするので、その話も色々聞けました。&lt;/p&gt;
&lt;p&gt;それで、ここからが本題です。&lt;/p&gt;
&lt;p&gt;3日目、私は21時のバスで広島に戻る予定だったのですが、いろいろなところを無理して回ったのと、夕食に入ったお店で飲みすぎてしまったせいで、乗車時間に間に合わなかったのです。普段なら西口からもう一本出ているそうなのですが、コロナのせいで休止したそうです。&lt;/p&gt;
&lt;p&gt;このバスに乗らないと到着が火曜の朝になってしまうので困ります（オンライン講義だし、月曜は午後からだったので実際なんとかなるんですが）。Sさんが言うには、バス代は出すから今夜は私の家に泊まっていくといいよ、とのことでした。&lt;/p&gt;
&lt;p&gt;それから、酔っていてよく覚えていないのですが、Sさんが自宅に連れて行くと言ったはずなのに私はいつの間にかホテルのベッドに寝ていました。ここがどこかと聞いたら、終電がなくなったからラブホテルで我慢してねと言っていたような気がします。&lt;/p&gt;
&lt;p&gt;横になっているうちに徐々に酔いが覚めて、Sさんが私の背後でごそごそと動いているのに気づきました。その瞬間は分からなかったのですが、どうやら私を後ろ手で縛っていたようなのです。&lt;/p&gt;
&lt;p&gt;Sさんは私が目覚めないようにゆっくりとした動きで這い回り、私の胸や股間を触りました。私が思わずピクッと反応するのを楽しんでいたようです。時間が経つうちに、Sさんの動きはどんどん大胆になっていきましたが、私はじっと寝たふりをしていました。今思うと、Sさんは私がもう目を覚ましていることに気付いていたのかもしれません。&lt;/p&gt;
&lt;p&gt;Sさんはひとしきり私の体を撫で回すと、今度は私の指を使って一人エッチを始めました。肉っぽくて湿った柔らかい感触は、自分と同じようなもののはずなのに結構気持ち悪かったです。たまにローターっぽい音も聞こえました。&lt;/p&gt;
&lt;p&gt;Sさん何してるんですか？と起き上がればやめてくれたと思います。でも、なかなか言い出せませんでした。その時は、ホテル代もバス代も出してもらってるし、旅行中ずっと親切にしてくれたし、殺されるわけじゃないし別にいいかなと思っていました。&lt;/p&gt;
&lt;p&gt;この時期に一人で外に逃げたとして、このままではバスに乗るお金もありませんでしたし。&lt;/p&gt;
&lt;p&gt;結局、Sさんが疲れて私への行為を切り上げるまでじっと眠ったふりで待っていました。次の朝、Sさんは何事もなかったかのように私にバス代（とお小遣いと言ってさらに一万円札を押し付けられました）を渡し、駅で別れました。&lt;/p&gt;
&lt;p&gt;Sさんはいわゆるレズビアンだったようです。こうして酔った女性をホテルに連れ込むのも慣れているみたいで、私は親切なふりをして近づいたSさんに騙されていたのです。&lt;/p&gt;
&lt;p&gt;でも、Sさんに私のデリケートなところを触られること自体は、別に嫌な気持ちにはなりませんでした（もちろん縛られたのはムカつきましたが）。だからといって、恋愛感情があるわけでもないんです。綺麗な女の人に優しく触られるのってなんか気持ちいいな…みたいな。マッサージされているのと似たような感覚でした。&lt;/p&gt;
&lt;p&gt;私はこれまで男性が好きだと思っていました。彼氏がいますし、エッチも普通にしています。女性とのエッチに抵抗感がなかったのは、酔っていたからなのでしょうか。それとも、私が寝たふりで受け身だったからでしょうか。恋愛感情のないエッチもしたことがないので、自分でもよく分からないのです。&lt;/p&gt;
&lt;p&gt;同じような経験がある方がいましたら、教えてほしいです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;女性同士でラブホテルに入るのって普通ですか？&lt;/li&gt;
&lt;li&gt;女性同士で恋愛感情のないエッチをしたことはありますか？&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/5688"&gt;百合SS Advent Calendar 2020&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>ラブホパネルとレーダーチャート</title><link href="https://ama.ne.jp/post/bunfree-lovehotel-2/" rel="alternate"/><published>2020-11-27T18:14:00+09:00</published><updated>2020-11-27T21:53:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-11-27:/post/bunfree-lovehotel-2/</id><summary type="html">&lt;p&gt;嘘評論&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="/post/bunfree-lovehotel-1/"&gt;前半&lt;/a&gt;から続く。&lt;/p&gt;
&lt;p&gt;&lt;img alt="クロスをかけた長机の上に置かれている、お手製ラブホパネル、メタルラックに紫色の布で目隠しをした受け取り窓口" height="563" src="/images/bunfree-lovehotel/overview.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;このラブホパネルは、見て分かる通りCOVID-19の感染対策のために作られている。本来は、自動販売機のように人手を介さずに作品を排出するシステムを想定していたが、制作時間の都合と今後の展望を考慮し、今回は感染対策の徹底を果たせる段階で終えることにした。&lt;/p&gt;
&lt;p&gt;感染対策の徹底という目的だけなら、他にもいくつか策があると思う。しかも、そのほとんどはラブホパネルを作るよりも簡単である。しかしながら、ビロビロした安っぽいビニールを目の前に吊るすのは（実はあなたが思っている以上に）ダサいし、キャッシュレス決済は出店者全員がせーの！で導入しない限りは来場者に面倒を強いることになる。&lt;/p&gt;
&lt;p&gt;同人誌即売会のように、小さな店を多数回る前提の場所で最もよいキャッシュレス決済システムは、出店者が発行した注文カードを運営が取りまとめて支払わせるというものだ。幸運なことに、同人誌は本来その場で受取る必要のない性質のものだし、家で落ち着いて読みたいのならまとめて配送した方が明らかに効率がよい。同様のシステムは技術書典などで既に実装されているが、決済のタイミングがブースでの購入時ではないという点で大きく異なる。&lt;/p&gt;
&lt;p&gt;さらに、これは副次的なメリットだが、 &lt;em&gt;お祭りの空気&lt;/em&gt; に乗せられて受け取ってしまった注文カードでも、支払う前に本当に欲しいものか考え直すことができる。もちろん、これまでそういう &lt;em&gt;お祭りの空気&lt;/em&gt; で儲けてきた出店者にとっては、この上ない災難になるだろうが。&lt;/p&gt;
&lt;p&gt;いや、もしかしたら、あなたの知っている同人誌即売会では、運営にそんなことをする余裕はないのだと言い張るかもしれない。&lt;/p&gt;
&lt;p&gt;もしそうなら、扱いきれないほどに大きくなった即売会は、もっと小さな単位に解体すればよいのだ。巨大なSNSは解体してフェデレーションすればよいと主張されてきたのと同じで、ごく簡単な話だ。&lt;/p&gt;
&lt;p&gt;大きくなりすぎた同人誌即売会は、その場で何かを発見するイベントではなく、カタログなりインターネットなりで事前に調査したブースを回るだけのイベントに変質している。あなたが一人で回り切れなくなった同人誌即売会は、出店者を「立ち寄るべきすばらしいサークル」と「同人誌即売会の賑わいに添えられた枯れ木」の2つに分割する。つまり、あなたが立ち寄りも探索もしないサークルは、ただの背景か興味のない盆踊り大会と同じということだ。&lt;/p&gt;
&lt;p&gt;さらに、情報が氾濫する現代であなたの目に留まるほど十分に告知を行っているようなサークルなら、通販もよく整備されていると考えるのが自然だ。そう考えると、巨大化した同人誌即売会を擁護するあなたは、もはや &lt;em&gt;お祭りの空気&lt;/em&gt; を味わいたいだけ、ということになる。&lt;/p&gt;
&lt;p&gt;だからどうしろというわけでもないけどね。お祭りは楽しいのでいいんじゃないでしょうか。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;さて、最後に、我々がどうして同人誌を作るのかを &lt;strong&gt;集める&lt;/strong&gt; という観点から考えてみようと思う。&lt;/p&gt;
&lt;p&gt;我々が同人誌を作るのは、読者とのインタラクションを通じて以下の3つを集めたいと考えているからだ。ただし、その度合いは人によって大きく異なるだろう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;お金&lt;/li&gt;
&lt;li&gt;時間&lt;/li&gt;
&lt;li&gt;感情&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="特にお金を重視するAさんと、特に感情を重視するBさんについて示したレーダーチャート" height="460" src="/images/bunfree-lovehotel/triangle.png" width="600"&gt;&lt;br&gt;
&lt;a href="/images/bunfree-lovehotel/triangle-radar.png"&gt;空のレーダーチャート&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;十分なお金さえ払えば、全てが円滑に動かせると思っている人は非常に多い。あなたは、5000兆円さえあれば、いつでも好きな作者に好きな作品を書かせることができると素朴に思っているはずだ。でも、それだけでいいの？　あなたの大好きな作者はお金儲けのためだけにやってるの？&lt;/p&gt;
&lt;p&gt;もちろん、お金だけが動いて時間や感情が全く動かないというケースは少ない。感情の動きをお金で示すことは、現代社会においては効率的だしトラブルが起きにくい手法だ。お金を払って買った作品をそのまま捨てる人はあまりいないだろうし、売れていればそれなりに感想だって来るだろう。&lt;/p&gt;
&lt;p&gt;この三角形のバランスを意識しなければならないのは、むしろ十分にお金を集めたあとに、「売れた割に感想が来ないな……」と思い始めてからなのかもしれない。&lt;/p&gt;
&lt;p&gt;作者と読者の間でこの認識のズレがあると、絶妙だった関係は簡単にバランスを崩す。例えば、時間だけではなく感情を集めたかったなろう作者が筆を折ったり、お金だけではなく感情を集めたかった作者が&lt;a href="https://m-molockchi.fanbox.cc/posts/1311201"&gt;執筆活動を無期限休止し&lt;/a&gt;たりする。彼らは、自分の三角形と実際に得られた三角形のズレに耐えられなくて去っていったのだ。&lt;/p&gt;
&lt;p&gt;これは、お金のために同人誌を作ることへの批判 &lt;strong&gt;ではない&lt;/strong&gt; 。作者が悲しんでるから感想を送ってあげよう、と人情に訴えかけるような話でもない。もっと根本的に、対価として何を支払うべきかを改めて考えるべきだという話である。可処分時間が減っている現代では、お金よりも時間や感情を費やすほうが難しいし、時間や感情を集めることのほうがむしろ価値があるのかもしれない。&lt;/p&gt;
&lt;p&gt;漫画村が撲滅されて久しい。本来はお金を払うべき漫画を無料で読み漁っていた人たちが批判に晒されたが、時間や感情を費やさなかったせいで（不作為で）作家を潰してしまった人たちは、これを見て何かを感じていただろうか？　たぶん、感じなかっただろう。お金さえ払えば、時間や感情を費やす義務はなくなるからだ。&lt;/p&gt;
&lt;p&gt;僕の場合、同人誌なんて無料で公開すればいいと思っている。とりあえず、印刷してしまった分は印刷代の回収と銘打って有料で頒布しているけれど、あなたが私の作品を大好きでたくさん時間と感情を使ってくれるなら、別に無料で渡したって惜しくはない。もし仮に時間や感情の先払いで決済できるなら、そうしていただろう。ただし、現実世界では約束/契約で後払いさせることしかできないし、そうすることで時間や感情は変質してしまうかもしれない。お金と違って、価値保蔵機能も強制通用力もないのだから。&lt;/p&gt;
&lt;p&gt;それでも、現代社会はお金で繋がる &lt;em&gt;希薄な関係&lt;/em&gt; をよしとしているし、それ以外の関係のネットワークはプライベートなものとしてごく狭い範囲で独占されている。みんなと &lt;em&gt;仲良く&lt;/em&gt; しない限り、あなたはどこにいても生き残れない。&lt;/p&gt;
&lt;p&gt;あなたは、どんな三角形ですか？　あるいは、どんな三角形を渡す準備ができていますか？&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;そもそも、印刷する必要があるのか？という問いはかなり難しい。「同人誌を読むなら絶対紙で！」と主張する人も、まさか自分の声が見向きもしないサークルに届いているとは思うまい。気に入った作品がPDF版しか発行されていないと知って「紙で読みたいから印刷してください！」と直談判する熱量がある人は、かなり貴重な存在だろう。&lt;/p&gt;
&lt;p&gt;我々がそういう &lt;em&gt;潜在読者&lt;/em&gt; の購買機会をどれほど意識すべきかを決定するには試行錯誤が必要だし、実際に&lt;a href="https://forms.gle/n7pKeyPbYCkqJ6MK9"&gt;アンケート&lt;/a&gt;を設置して反応を待ったりもした。しかし、これまで特に回答はなかったので、少なくとも同人サークルを運営する上で優先的に意識する意味はなさそうだ。刷り続けてもいいし、刷らなくてもいい。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;希薄な関係&lt;/em&gt; とはそういうものだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ところで、この &lt;em&gt;エッセイ&lt;/em&gt; は、ラブホパネルを作った過程の話をしたらウケるんじゃないかという案に基づいて書かれている。&lt;/p&gt;
&lt;p&gt;エッセイで重要なのは、それが本当に起こったかどうかよりも、その話が &lt;em&gt;誰かのリアルな人生である&lt;/em&gt; というラベル自身だと思う。あなたがそれを疑わず、revealしようとしなければ、事実かどうかは問題にならない。そう考えると、日常で自らが経験した些細なことを、架空のキャラクターが面白おかしくポップに動き回る漫画として表現した &lt;em&gt;絵日記&lt;/em&gt; は、ある種の解決策なのかもしれない。&lt;/p&gt;
&lt;p&gt;架空のキャラクターが動き回っている漫画に &lt;em&gt;絵日記&lt;/em&gt; というタイトルを付けたとして、それが現実で起こったかどうかは、（エッセイと同様に）重要なことではない。分かるのは、何らかのエピソードを架空のキャラクターに落とし込んだということだけだ。実際のところ、あなたがその真偽を確かめる術はないし、それをrevealしてはならないという戒律の下で生活している限りは、大きな問題にはならない。&lt;/p&gt;
&lt;p&gt;とはいえ、人が吐き出すものが経験からできあがっているとしたら、どんな創作物も究極的にはただの &lt;em&gt;絵日記&lt;/em&gt; でしかないのかもしれない。そうだとしたら、やっぱり少し悲しい。だからみなさんには、そういう &lt;em&gt;絵日記&lt;/em&gt; をたくさん描いてアップロードしてほしいと思う。&lt;/p&gt;
&lt;p&gt;さらに言えば、これはボイスチェンジャーを挟んだバーチャルな存在の構造とよく似ている。すなわち、ボイスチェンジャーの性能が十分に高いとすれば、ボイスチェンジャーを挟んだ声であることだけが明らかになり、その後ろで話している人間の性質について知られることはない。これは、ボイスチェンジャーを挟んだこと自体の判別とよく似ているが、その本質は全く異なる。フィルターの有無は常に公開されていて、そのフィルターをrevealすることだけが禁じられているのだ。&lt;/p&gt;
&lt;p&gt;そういえば、最近いろいろなところで釣りが流行っているみたいですが、何かあったんですか？　たぶん、どうでもいいことだとは思いますが……。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;[PR] &lt;a href="https://bunfree31.hentaigirls.net/#acquisition"&gt;新刊「next kawaii inversion」&lt;/a&gt;が出たので、ぜひ読んでください。買わなくてもいいです。&lt;a href="https://twitter.com/messages/compose?recipient_id=977819009302151168&amp;amp;text=%E3%80%8Cnext+kawaii+inversion%E3%80%8D%E3%82%92%E8%AA%AD%E3%81%BF%E3%81%9F%E3%81%84%E3%81%AE%E3%81%A7%E3%80%81%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E9%80%81%E3%81%A3%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82"&gt;DMを送れば&lt;/a&gt;PDF版をダウンロードできるようになっています。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://bunfree31.hentaigirls.net/#acquisition"&gt;&lt;img alt="next kawaii inversion 表紙" height="851" src="/images/bunfree-lovehotel/next-kawaii-inversion_cover.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;この表紙画像は&lt;a href="mailto:amane@ama.ne.jp"&gt;片桐 天音&lt;/a&gt;と&lt;a href="https://twitter.com/gomafu_warabi"&gt;ごまふわラビ&lt;/a&gt;によって&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされています。&lt;/cite&gt;&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>ラブホパネルとフィッシング</title><link href="https://ama.ne.jp/post/bunfree-lovehotel-1/" rel="alternate"/><published>2020-11-27T18:13:00+09:00</published><updated>2020-11-27T21:53:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-11-27:/post/bunfree-lovehotel-1/</id><summary type="html">&lt;p&gt;第三十一回文学フリマ東京でラブホパネルを展示した&lt;/p&gt;</summary><content type="html">&lt;p&gt;第三十一回文学フリマ東京でラブホパネルを展示した。&lt;/p&gt;
&lt;video controls width="360" height="640" src="/images/bunfree-lovehotel/flow.mp4"&gt;&lt;/video&gt;

&lt;p&gt;&lt;img alt="クロスをかけた長机の上に置かれている、お手製ラブホパネル、メタルラックに紫色の布で目隠しをした受け取り窓口" height="563" src="/images/bunfree-lovehotel/overview.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/hentaigirlsnet/status/1330369155673907200"&gt;1330369155673907200&lt;/a&gt;, &lt;a href="https://twitter.com/hentaigirlsnet/status/1330352947151003648"&gt;1330352947151003648&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;原理としては素直なもので、 &lt;em&gt;100円ショップで購入した&lt;/em&gt; 木箱に &lt;em&gt;100円ショップで購入した&lt;/em&gt; アルミテープを巻きつけ、 &lt;em&gt;100円ショップで購入した&lt;/em&gt; LEDストリングとAliExpressで買った&lt;a href="https://ja.aliexpress.com/item/32976502368.html"&gt;LEDの付いた四角い瞬間的なプッシュボタンスイッチ&lt;/a&gt;を押し込んだらできあがり。これを3行3列に配置すれば &lt;em&gt;かわいい&lt;/em&gt; ラブホパネルとして世に出せるというわけだ。LEDなので、展示会場で燃える心配もあんまりないと思う。よかったね。&lt;/p&gt;
&lt;p&gt;&lt;img alt="木箱を3x3に並べた様子（上の6つはアルミテープで装飾されていて、下の3つは未開封のまま）" height="528" src="/images/bunfree-lovehotel/boxes.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="木箱の内部をアルミホイルで装飾してLEDストリングとプッシュスイッチを取り付けた様子" height="536" src="/images/bunfree-lovehotel/boxes2.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;できあがった発光ボックスを、倒れにくく押しやすい角度で立てかけるために、これらのラブホパネルを置く台が必要となる。これは、 &lt;em&gt;100円ショップで購入した&lt;/em&gt; 木材と &lt;em&gt;100円ショップで購入した&lt;/em&gt; 蝶番を、 &lt;em&gt;100円ショップで購入した&lt;/em&gt; ネジで取り付けて、 &lt;em&gt;100円ショップで購入した&lt;/em&gt; ワイヤーネットを &lt;em&gt;100円ショップで購入した&lt;/em&gt; 結束バンドで固定すればよい。蝶番を用いるのは、持ち運び時に折りたためるようにするためだ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="アルミテープで装飾して発光ボックスを操作するための端子を取り付けた折りたたみ式スタンド" height="770" src="/images/bunfree-lovehotel/stand.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;一番上の発光ボックスに &lt;em&gt;100円ショップで購入した&lt;/em&gt; フックを取り付け、前段のワイヤーネットに引っ掛けることで、ラブホパネルはかなり安定する。目新しい作業はないが、とにかく根気と器用さが支配する世界なので、僕はあまり関わっていない。技術支援のごまふわラビ（&lt;a href="https://twitter.com/gomafu_warabi"&gt;@gomafu_warabi&lt;/a&gt;）氏に感謝します。&lt;/p&gt;
&lt;p&gt;&lt;img alt="発光ボックスを縦に3つ繋げてワイヤーネットにつり下げるためのフック" height="568" src="/images/bunfree-lovehotel/hook.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;本体はもちろん、制御も単純に実装されている。ボックスごとに4本ずつ引き出したケーブル&lt;sup id="fnref:gnd"&gt;&lt;a class="footnote-ref" href="#fn:gnd" title="そのうち2本は、他のボックスとひとまとめにしてGNDに接続する。"&gt;1&lt;/a&gt;&lt;/sup&gt;に適当な抵抗と2SC1815互換を生やして、Raspberry Piに接続しただけだ。9個くらいなら、わざわざダイオードを貼り付けたりしてキーマトリクスを作る必要もない。&lt;/p&gt;
&lt;p&gt;以下が制御の流れである。キャンセルを（再起動などではなく）明示的なボタンに紐づく機能として実装することで、ボタンを押すハードルを下げることをねらっている。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/bunfree-lovehotel/flow.png"&gt;&lt;img alt="ラブホパネルの状態を示すフローチャート" height="1015" src="/images/bunfree-lovehotel/flow.png" width="835"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;注文された作品を手渡すのは、今のところ人間の仕事である。できるだけ顔を合わせないように、可愛い布をかけたメタルラックの下から代金を受け取り、作品を差し出す仕組みになっている。&lt;/p&gt;
&lt;p&gt;&lt;img alt="メタルラックに紫色の布で目隠しをした受け取り窓口（ラブホパネルに対するフロント）" height="563" src="/images/bunfree-lovehotel/front.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;これで、今回の経験をもとに「100円ショップで揃う材料で作るラブホパネル」（ただしRaspberry Piと電子部品は自宅の床から拾うこと）という本を書くことができるようになった。世の中は野暮ったい但し書きをどんどん省略する方向に進んでいるし、100円ショップで揃わない素材はどこかでかき集めてくればよい。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ラブホパネルを設置したところ、来場者からいろいろな反応をいただいた。&lt;/p&gt;
&lt;p&gt;一番多いのは、チラ見してそのまま通り過ぎる人。次に多いのは、二度見するものの立ち止まらずに去っていく人。さらに、立ち止まるがボタンは押さない人、ひとしきりラブホパネルを眺めてから見本誌を読んで去っていく人……と続く。ラブホパネルだと気付いていない人もいたような気がする。&lt;/p&gt;
&lt;p&gt;ラブホパネルに気付いてクスクスと笑い合うカップルと、片方がラブホパネルに気付いたもののパートナーにはシェアせず通り過ぎるカップルは対照的で、 &lt;em&gt;関係性&lt;/em&gt; の違いを意識させられた。同人誌即売会にカップルで（より正確には、複数人で）楽しめる要素があるのかは、未だによく分からないが。&lt;/p&gt;
&lt;p&gt;興味を持ってくれた何人かには（もちろん感染対策を徹底して！）仕組みの説明をした。話を聞くうちにラブホパネルだと気付いて声を出して笑う人や、押すとランプが消灯したり点滅したりすることに「どうしてそこまでこだわったの？」とコメントする人、選んだ作品の値段がプリントされたレシートが出てきて喜ぶ人など、いろいろいた。レシートの印刷は何度かやっている企画だが、やはり分かりやすいとウケがいいのかもしれない。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ラブホテルのイメージ（豪華なベッドの写真にピンクがかったフィルターをかけたもの）" height="517" src="/images/bunfree-lovehotel/image.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;同人誌即売会は釣り（fishing&lt;sup id="fnref:phishing"&gt;&lt;a class="footnote-ref" href="#fn:phishing" title="まぁ、頑張って内容とかけ離れた表紙を作り込んだりするのはphishingっぽいけど……。"&gt;2&lt;/a&gt;&lt;/sup&gt;）のようなものだと思う。&lt;/p&gt;
&lt;p&gt;――じっと魚がかかるのを待ちながら、そっと同行者と会話して暇を潰す。騒ぎすぎると釣れるはずの魚も逃げてしまうから、少し周囲に気を払わなければならない。エサや道具はそれなりに用意しなきゃいけないし、たまには撒き餌も必要だろう。忘れた頃に食いつく気配があるから、いい感じに竿を引いて駆け引きを楽しむ。釣れようが釣れまいが、飽きたらゴミを残さず綺麗にして帰る――&lt;/p&gt;
&lt;p&gt;これはもちろん、文フリでいわゆる50部の壁を超えているサークルだとか、二次創作のコピー本を午前中に売り切ってあとはコスプレセックスみたいなサークルの話ではない。告知をしてもろくに引っかからないし、その場で &lt;em&gt;インスタントな&lt;/em&gt; 興味を引くような目玉作品もない弱小サークルの経験談である。&lt;/p&gt;
&lt;p&gt;我々は、 &lt;em&gt;インスタントな――ワンフレーズ、あるいは十数文字のあらすじに全てを詰め込むような――自己PR&lt;/em&gt; で &lt;em&gt;潜在読者&lt;/em&gt; の気を引く必要があるのだろうか？　もしそうだとすれば、我々は誰のために同人誌を作ることになるのだろう。よく分からない。&lt;/p&gt;
&lt;p&gt;ひとまず、会場ではいろいろ良い体験があったが、あまり売り上げにはつながらなかった。売れないのはまぁいいとして、チラチラ見るばっかりであんまり押しに来ないのはなぜ？と同行者に尋ねたところ、いくつか仮説が飛び出した。&lt;/p&gt;
&lt;p&gt;まず、そもそも押したくなるデザインになっていないという説。明るい会場の中では光っていてもあまり目立たないし、押せるという確信がなければ近づくこともない。これについては、支払い時だけではなく待機時にもランプを点滅させればよいのではないか、というアイデアが出た。&lt;/p&gt;
&lt;p&gt;他にも、わざわざこのご時世で文フリに来るのはみんな気取った人間なんだから、人前でラブホパネルを押したりはしないよという説も飛び出した。いや……押しなよ、そういうの好きじゃん……雰囲気だけのやつ……。&lt;/p&gt;
&lt;p&gt;「みんな古いラブホパネルなんて知らないよ」とも言われたが、それについては反対した。最近はどこも液晶画面にダサい立体的なボタンを並べたパネルに置き換わっているけど、一方で古めかしいラブホパネルもみんなの心に（架空の田舎？や架空の夏？と同様に）居座っていると思う。まぁ、架空の夏がどうこう騒いで盛り上がってるオタクくんはあんまり好きじゃないんですが……。&lt;/p&gt;
&lt;p&gt;それと、ラブホパネルの後ろに人がいるのが分かってしまうから、押したい気持ちが減るのでは？とも言われた。確かに、無人の空間で部屋を選ぶドキドキ感の演出が足りなかったのかもしれない。とはいえ、パネルをこれ以上高く大きくするのは運搬の都合上無理なので、やはり自販機の完成が待たれる。&lt;/p&gt;
&lt;p&gt;そういえば、ラブホパネルが目を引きすぎて見本誌を食ってるんだよ、という説も出てきた。それは盲点だった。同人誌即売会は本が主役、完全に忘れてた。なるほどね。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;文フリが終わった後、大塚で色々なことを話しながら歩いた。大事なことも、そうでないことも。ラブホ街の明かりがキラキラしていて気持ちいい。なんか今日は一日ラブホまみれだなと思いながら、デカくて皮がパリパリの鶏肉を食べた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="上海烤鶏で食べた鶏の丸焼き" height="800" src="/images/bunfree-lovehotel/chiken.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;美味しかった。&lt;a href="/post/bunfree-lovehotel-2/"&gt;後半&lt;/a&gt;に続く。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:gnd"&gt;
&lt;p&gt;そのうち2本は、他のボックスとひとまとめにしてGNDに接続する。&amp;#160;&lt;a class="footnote-backref" href="#fnref:gnd" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:phishing"&gt;
&lt;p&gt;まぁ、頑張って内容とかけ離れた表紙を作り込んだりするのはphishingっぽいけど……。&amp;#160;&lt;a class="footnote-backref" href="#fnref:phishing" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>風が吹くと</title><link href="https://ama.ne.jp/post/butterfly-effect/" rel="alternate"/><published>2020-11-26T13:37:00+09:00</published><updated>2020-11-26T13:37:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-11-26:/post/butterfly-effect/</id><summary type="html">&lt;p&gt;タスクバーが輝く&lt;/p&gt;</summary><content type="html">&lt;h2 id="_1"&gt;起&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/microsoft/terminal"&gt;Windows Terminal&lt;/a&gt;はそれなりに &lt;em&gt;かわいい&lt;/em&gt; けど、まだ自分でカーソルの点滅を制御できないらしいです。ターミナルのカーソルが点滅するのって、結構うるさいですよね？&lt;/p&gt;
&lt;p&gt;&lt;img alt="Windows Terminalでカーソルが点滅している様子" height="200" src="/images/butterfly-effect/terminal_blink.gif" width="400"&gt;&lt;/p&gt;
&lt;p&gt;だから、キーボードのプロパティからグローバルに点滅しないようにしてみました。実のところ、ターミナル以外では点滅してほしいんですけど、まぁ仕方ないです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="キーボードのプロパティでカーソルを点滅しないよう設定した様子" height="518" src="/images/butterfly-effect/key_bright.gif" width="465"&gt;&lt;/p&gt;
&lt;h2 id="_2"&gt;承&lt;/h2&gt;
&lt;p&gt;ターミナルが静かでいいね！　すてき！&lt;/p&gt;
&lt;p&gt;&lt;img alt="Windows Terminalでカーソルが点滅しなくなった様子" height="200" src="/images/butterfly-effect/terminal_bright.gif" width="400"&gt;&lt;/p&gt;
&lt;h2 id="_3"&gt;転&lt;/h2&gt;
&lt;p&gt;すると、各アプリの通知と紐付いたタスクバーの輝きが消えなくなってしまいました。ウィンドウを出し入れしても、通知のきっかけを解消してもダメ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="通知に合わせて光り続けたままのタスクバー" height="250" src="/images/butterfly-effect/taskbar_bright.gif" width="500"&gt;&lt;/p&gt;
&lt;p&gt;いや、流石に何……？&lt;/p&gt;
&lt;h2 id="_4"&gt;結&lt;/h2&gt;
&lt;p&gt;点滅速度を元に戻したらタスクバーの輝きは解消されましたが、Windows Terminalの挙動も元に戻ってしまいましたとさ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="キーボードのプロパティでカーソルを点滅するよう設定した様子" height="518" src="/images/butterfly-effect/key_blink.gif" width="465"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Windows Terminalでカーソルが点滅している様子" height="200" src="/images/butterfly-effect/terminal_blink.gif" width="400"&gt;&lt;/p&gt;
&lt;p&gt;おしまい。&lt;/p&gt;
&lt;h2 id="_5"&gt;補足&lt;/h2&gt;
&lt;p&gt;&lt;img alt="winverで表示したWindowsのバージョン（Windows 10, バージョン 2004, OSビルド 19041.630）" height="472" src="/images/butterfly-effect/winver.png" width="536"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Windows Terminalのバージョン（1.4.3243.0）" height="350" src="/images/butterfly-effect/winterver.png" width="350"&gt;&lt;/p&gt;</content><category term="tech"/></entry><entry><title>0.4ct</title><link href="https://ama.ne.jp/post/04ct/" rel="alternate"/><published>2020-10-04T19:34:00+09:00</published><updated>2020-10-04T19:34:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-10-04:/post/04ct/</id><summary type="html">&lt;p&gt;真夜中の通販番組&lt;/p&gt;</summary><content type="html">&lt;p&gt;高山さんのダイヤモンド・ペンダントは、少し小さい。と、思う。&lt;/p&gt;
&lt;p&gt;「それ、素敵ですね」&lt;/p&gt;
&lt;p&gt;でも、わざわざそんなことは言わない。&lt;/p&gt;
&lt;p&gt;高山さんは同じサークルの先輩で、みんなの人気者。おっとりとした性格とふわふわの笑顔で、男子の会員はもちろん、女子にだって好かれている。ボブカットのふわりとした黒髪のショートヘアに、ぱっちりした目。あとはたいてい小さくレースの刺繍が入ったお手製マスクの下に隠れていて、マスクを外すと目元の印象よりも柔らかく見える。BUBBLESをよく着ていて、絵を描く時は袖をまくる癖があった。&lt;/p&gt;
&lt;p&gt;成績に問題はなし。開示日にワイワイと不出来を自慢しあう人たちに混ざっては、しょっちゅう歓声と羨望の目に囲まれているのを見かける。実はもっと上の大学を狙っていたけど、ほんの少しだけ点数が足りなくてここに来た……という噂もある。おそらく本当のことだ。&lt;/p&gt;
&lt;p&gt;だから、私は高山さんが好きじゃない。サークルのみんなに媚を売っているから。他の人の漫画を読むばっかりで、全然自分の漫画を持ってこないから。それなのに、本当はとても面白い漫画を描いてるから。私が死ぬ気で勉強してやっと入ったこの大学を、まるで滑り止めみたいに思っているから。&lt;/p&gt;
&lt;p&gt;絵だって上手だし、講義だって片手間で簡単に聞けちゃうし。みんなにちやほやされて、褒められて。わざわざレベルの低い大学に来て、狭い社会でぬるま湯に浸かりたいだけじゃない。&lt;/p&gt;
&lt;p&gt;今日だって、なんでもない日にわざわざ見せびらかすようにペンダントを着けて、綺麗って言われるのを待っている。私の言葉が社交辞令だと分かっているくせに、高山さんはニコニコと浮かれてみせた。それがなんだかおかしくって、さらに突っ込んだ質問をしてしまう。&lt;/p&gt;
&lt;p&gt;「ううん。そうじゃなくて、ちょっと安く買えただけよ」&lt;/p&gt;
&lt;p&gt;決算期直前だったからセールで安くって、と答える高山さんが内心恥ずかしい思いをしているのは分かっていた。だって、私はもう知っていたから。あれが安売りされた正規品ではなく、ダイヤがほんの少し小さい中途半端なペンダントだってことを。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;深夜の通販番組では、よくアクセサリーの安売りをやっている。中でも、ある有名デパートが打ち出している「ほぼ0.5カラットの一粒ダイヤをあしらった」という売り文句は、この時間にテレビをつけていれば嫌でも耳に入ってきてしまう。&lt;/p&gt;
&lt;p&gt;最初は「ほぼ」って何？なんて思うのだけど、それについては商品の紹介シーンを一度見ればすぐ分かる。大げさなリアクションの販売員とタレントの会話が挟まって、5分もすればまた同じ映像が流れ始めるけど、あとはもう見なくていい。&lt;/p&gt;
&lt;p&gt;いわゆる大粒のダイヤモンドは最低でも0.5カラットは必要らしくて、そこからほんの少しでも小さくなるとガクッと価値が落ちるという。あとは、わずかな着色があるとか、インクルージョンがあるとか、いろいろ。そういうちょっと及第点に届かない粒を集めて、6本爪のペンダントトップに嵌め込んで、格安で出荷する。どうやら、そういうからくりらしい。&lt;/p&gt;
&lt;p&gt;溜め込んだ資産の有効活用か、決算前の何らかの調整かもしれないけど、不思議な商売だ。&lt;/p&gt;
&lt;p&gt;ほぼ0.5カラットとちゃんとした0.5カラットを並べた写真に「大きさはほとんど変わりません！」なんて、動画サイトのサムネイルみたいな下品なキャプションを載せた映像が幾度となく流れていく。資本主義。一億総活躍。大量消費社会。それ自体はシンプルで格調高いデザインだし、どんな広告を見て買ったってダイヤには違いないけど、販売員が白い手袋に吊るして規則的に揺らすプラチナのチェーンのきらめきさえも、だんだん安っぽく見えてくる。&lt;/p&gt;
&lt;p&gt;「こんなの見て誰が買うんだろ」&lt;/p&gt;
&lt;p&gt;あの老舗百貨店がお送りする！　通販限定商――リモコンに手を伸ばして、4度目の商品紹介をシャットアウトする。こういう寝ぼけた脳に、シンプルでストレートな情報が突き刺さると買っちゃうんだろうな。飯テロみたい。&lt;/p&gt;
&lt;p&gt;不思議なダイヤの行く末を考えながら、ふと、まるで高山さんみたいだな、なんて思う。&lt;/p&gt;
&lt;p&gt;ちょっと点数が足りなかったくらいで、こんな二流大学でのほほんと過ごしている高山さん。頭が悪くってなんとかギリギリ生きている私とは違うはずなのに、外から見た肩書きだけは一緒だ。それでも、サークルではこんなにちやほやされていて、きっとこの小さな社会では最適な生き方を選んでいる。&lt;/p&gt;
&lt;p&gt;きっと、高山さんのペンダントも同じだ。ほんの少し小さいからって、ゴミの入った凡庸なダイヤと同じ箱に放り込まれる。ありふれた輝きに埋もれることを受け入れて、たまに本物の一流と比較されたりして、それでもまるで一流みたいな顔をして座ってなきゃいけない。本当は悔しい思いをしているのかもしれないけど、そんなこと私にはまるで分からないから。&lt;/p&gt;
&lt;p&gt;だから、私は高山さんが好きじゃない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;まだ早い時間だったから、サークル室には高山さんしかいなかった。&lt;/p&gt;
&lt;p&gt;「サークル、あんまり来れなくなっちゃうの？　寂しくなるね」&lt;/p&gt;
&lt;p&gt;私がバイトを増やすという話をすると、高山さんは心配そうな素振りを見せた。身体に気をつけてね、とか。食費を切り詰めたりしちゃだめだよ、とか。困ったことがあったら言ってね、とか。そんなこと、思ってないくせに。&lt;/p&gt;
&lt;p&gt;高山さんは今日も小さなペンダントを着けていた。このところずっとだ。3回に1回、およそ週に1日。これからは週に0.3日。変わらず毎週見るかもしれないし、もう見ることはないかもしれない。それでいい。高山さんの胸元にすっぽり収まっている0.4カラットが、私はどうしようもなく嫌いだから。&lt;/p&gt;
&lt;p&gt;「だって、絵って毎日描かないと忘れちゃうじゃない。サークルに来ない日でもちゃんとお家で描かなきゃだめだよ？　私、あなたのお話好きだから」&lt;/p&gt;
&lt;p&gt;高山さんはそうやってみんなの漫画を褒める。どこが良いとか悪いとか、どこが上手いとか下手とか言わずに、好き、特にここが好き。話題に上がるのは、どうでもいいような描写だったり、しっかりこだわった構図だったり。絵が上手いなら、もっと的確なアドバイスをくれればいいのに。当たりも外れもごた混ぜの評価は、少なくとも私にとって世間話以上の何物でもなかった。&lt;/p&gt;
&lt;p&gt;それから高山さんは世間話を続けた。学食の経営がやばくて、もうすぐ潰れそう。月イチで出てくるピザソースのベーグルが美味しかったのに。MMTに興味あるって言ってたよね？　あの講義がすごく面白かったから、おすすめ。でも、隔年だから来年は受けられないね。狭山さんと中村さんって、別れたんだってね。私、付き合ったのも全然知らなかったし、別れたのもしばらく知らなかったな。そうそう、学園祭の原稿、読んだよ。すごく好き。&lt;/p&gt;
&lt;p&gt;時折なんでもノート&lt;sup id="fnref:miscnote"&gt;&lt;a class="footnote-ref" href="#fn:miscnote" title="会員なら誰でも書き込めるA4サイズの無地の落書き帳。"&gt;1&lt;/a&gt;&lt;/sup&gt;にシャープペンシルを走らせながら、高山さんは独り言みたいに話し続けた。途切れ途切れに、たまに生返事で。まるで大学生活のすべてを吐き出すように、誰も伝えるでもなく、ずっと。&lt;/p&gt;
&lt;p&gt;「私、大学やめることになったの。だから、最後に色々話したかったのよ」&lt;/p&gt;
&lt;p&gt;話し終えた高山さんは、寂しそうにそう告げた。言葉があまり耳に入らないまま、私の手にじわりと汗がにじんだ。「みんなには言わないでね」と言われても、私はただ「そうですか」と小さく返すことしかできなくて。&lt;/p&gt;
&lt;p&gt;高山さんがいつも手癖で描いている気だるそうなポニーテールの女の子を描き終えて、なんでもノートをぱたりと閉じた。しばらくして、他の会員がサークル室に集まり始める。高山さんが何事もなかったかのようにみんなと楽しく会話を交わす姿をぼんやりと眺めていても、高山さんの告白が私にどんな意味を与えたのか、まだ理解できずにいた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;あの日を最後に私はサークルに行かなくなった。&lt;/p&gt;
&lt;p&gt;そして、増やしに増やしたアルバイトの成果は、0.5カラットの一粒ダイヤに消えた。ほぼ同じ材質とデザインなのに、ほんの0.01カラットのために値段が4倍になるなんて。それでも、大粒のダイヤにはそれだけの価値があるのだ、と自分に言い聞かせた。&lt;/p&gt;
&lt;p&gt;黒い合皮の細長い箱を開け、おそるおそるチェーンを取り上げて、姿見に向かう。&lt;/p&gt;
&lt;p&gt;高山さんのよりもずっと大きくて、ずっと透明なダイヤは私の前できらきらと輝いていた。プラチナと語り合うように揺れる大きな宝石は、まるで夕陽があたる渚から掬ってきたみたい。覗き込めばまるでなんにもなかったみたいに透き通っていて、それでも、きらめきだけは内側から溢れ続けて。こんな真っ直ぐな光が私を包み込んでいて、まるで、なんて、なんで……。&lt;/p&gt;
&lt;p&gt;「……なんでこんなに似合わないんだ、私」&lt;/p&gt;
&lt;p&gt;ずっと手に入れたかった高級な宝石は、確かに値段通りの輝きを放ち続けている。まるで私のことさえ覆い隠してしまっているみたいに。ダイヤモンドだけがここにいて、私はそこからいなくなっていた。私はペンダントをかけておくだけの何か。そんな気さえした。&lt;/p&gt;
&lt;p&gt;いや、初めから薄々気が付いていた。だって、私は高山さんとは違うんだから。私にこんなアクセサリーなんて似合わない。&lt;/p&gt;
&lt;p&gt;私は静かに試着を終えて、ペンダントをそっと箱に戻す。からり、と底にぶつかってまた光が揺れる。なぜか、その大きな石ころは手に取る前よりも小さくなっているように思えた。とっても大きな一粒ダイヤのはずなのに。あんなに苦労して手に入れたのに。私はなんでこんなものを欲しがっていたんだろう。こんなの――&lt;/p&gt;
&lt;p&gt;「通販限定商品です！　ほぼ0.5カラットの一粒ダイヤをあしらった――」&lt;/p&gt;
&lt;p&gt;ふと、あの通販番組の威勢のいいアナウンスが耳に入った。そして、テレビをつけっぱなしにしていたのを思い出す。そうだった。高山さんは0.4カラットで、私は0.5カラットなんだ。だから、買ったんだ。&lt;/p&gt;
&lt;p&gt;『見てください！　0.4カラットのダイヤってこんなに小さいんです！　だから大きな0.5カラットの方がもちろん上です――』&lt;/p&gt;
&lt;p&gt;そうだ。だから、あんな中途半端なダイヤモンドとは違うんだ。そう思うと少しだけ救われたような気がして、やっと、やっと、少しだけ涙が出た。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:miscnote"&gt;
&lt;p&gt;会員なら誰でも書き込めるA4サイズの無地の落書き帳。&amp;#160;&lt;a class="footnote-backref" href="#fnref:miscnote" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>はじめました</title><link href="https://ama.ne.jp/post/stewpot-fanbox-cc/" rel="alternate"/><published>2020-09-28T00:50:00+09:00</published><updated>2020-09-28T00:50:00+09:00</updated><author><name>stewpot</name></author><id>tag:ama.ne.jp,2020-09-28:/post/stewpot-fanbox-cc/</id><summary type="html">&lt;p&gt;お気持ち&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;ins&gt;(2020-09-22) このFANBOXサイトは閉鎖しました。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- ここから本文 --&amp;gt;&lt;/p&gt;
&lt;p&gt;そろそろちゃんとえっちテキストやらないとなと思い、はじめました。&lt;br&gt;
https://***.fanbox.cc/&lt;/p&gt;
&lt;p&gt;背景として、拙作の&lt;a href="/post/uraopt/"&gt;裏コース&lt;/a&gt;という投稿が、何らかの店舗でプレイの詳細に関する資料として持ち込まれていて、後日それに気が付いたということがありました。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/binetsu_chan/status/1274647755701383169"&gt;1274647755701383169&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;私のテキストは&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;というライセンスで公開されており、タイトルと作者名さえ表示すればどのように利用してもよいと定められています。これは、営利目的でさえも同様です。キャストに演じさせても、印刷して販売しても、音声化して販売しても、私に報告する義務はありません。もちろんタイトルと作者名の表示の下で、ですが。&lt;/p&gt;
&lt;p&gt;この点でいうと、このテキストを持ち込んだ客もしくはツイートしたキャスト（またはその両方）は私との契約に反しています。ツイートや写真には私の名前がありませんし、客もそれを明示的に示していないため、キャストも出どころに関する質問に答えられないようです。&lt;br&gt;
そのせいで、このツイートが拡散されても私には何ら利益がありません（金銭的利益はもちろん、称賛や批判、名前を知ってもらうチャンスさえも）。&lt;/p&gt;
&lt;p&gt;それでも、私の書いたテキストが誰かの「役に立っている」なら、作者としてはこの上ない喜びを感じます。世の中にはもっとこのように「役に立っている」例があるのかもしれないと思わせるほどには。&lt;/p&gt;
&lt;p&gt;私のテキストが私との契約の下で利用されるのは、当たり前のことだと思っています。それが非常にゆるいライセンスに基づいているなら、それはなおさら簡単なことです。&lt;/p&gt;
&lt;p&gt;あとは、私のテキストが「役に立っている」のをどのように知るべきか、ということを検討するだけです。&lt;/p&gt;
&lt;p&gt;その手段の一つとして、「役に立つ」テキストならその実績を何らかの形で受け取るための窓口を開いてもいいのかもしれないなと思い、FANBOXを始めました。なお、ペイウォールの向こうにあるのはおそらくあまり意味のないものです。&lt;/p&gt;
&lt;p&gt;私がFANBOXに期待しているのは、支援者数という定量的な指標と、これから先の時間の使いみちについての判断材料です。ただ「役に立っている」ことを伝えるだけなら、作品に感想を書いたり、ツイートやブログで紹介するだけで足ります。そのように感情や時間を費やして手渡すだけで十分な支援になることは、昨今の厳しい経済状況の中では忘れられがちな事実です。&lt;/p&gt;
&lt;p&gt;ただし、あなたが私にお金どころか感情や時間さえも渡す気がないのなら、それはきっと「役に立っている」わけではないのだと思います。私のテキストはあなたに消費されて、それで終わりです。もしそうなら、私はあなたのために活動することはできないでしょう。それでも、私は私のために活動を続けますし、私のために時間を使います。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>WSLでYubikeyを使う</title><link href="https://ama.ne.jp/post/yubikey-on-wsl/" rel="alternate"/><published>2020-07-23T20:12:00+09:00</published><updated>2024-02-09T14:48:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-07-23:/post/yubikey-on-wsl/</id><summary type="html">&lt;p&gt;my new gear...&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この記事ではWSL1（無印）向けの設定手順を記載しており、WSL2では一部または全部の機能が動作しません。最新情報は&lt;a href="/post/yubikey-on-wsl2"&gt;WSL2でYubikeyを使う&lt;/a&gt;をお読みください。 */&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#before"&gt;before&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#after"&gt;after&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;前提&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#yubikey"&gt;Yubikey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wsl"&gt;WSL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;準備&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#gpg"&gt;gpg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#npiperelay"&gt;npiperelay&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wsl-ssh-pageant"&gt;wsl-ssh-pageant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#socat"&gt;socat&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;起動&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#on-windows_1"&gt;on Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#on-wsl_1"&gt;on WSL&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#on-wsl2"&gt;on WSL2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;この記事の生い立ち&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;参考&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;&lt;img alt="WSLからYubikeyを使う方法について、WSL→WSLのGnuPG→socat→npiperelay→Windowsのgpg-agent→scdaemon→Yubikey、またはssh→ssh-agent→wsl-ssh-pagent→Windowsのgpg-agent→scdaemon→Yubikeyという流れで接続できることを示す図（記事では触れないが、RemoteFXを通すとリモートデスクトップの接続先からでもYubiKeyを使用できることを提示）" height="525" src="/images/yubikey-on-wsl/tldr.png" width="700"&gt;&lt;/p&gt;
&lt;h3 id="before"&gt;before&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;gpg&lt;span class="w"&gt; &lt;/span&gt;--card-status
&lt;span class="go"&gt;gpg: error getting version from &amp;#39;scdaemon&amp;#39;: No SmartCard daemon&lt;/span&gt;
&lt;span class="go"&gt;gpg: OpenPGP card not available: No SmartCard daemon&lt;/span&gt;
&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;ssh&lt;span class="w"&gt; &lt;/span&gt;git@github.com
&lt;span class="go"&gt;git@github.com: Permission denied (publickey).&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;かなしいね。&lt;/p&gt;
&lt;h3 id="after"&gt;after&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;gpg&lt;span class="w"&gt; &lt;/span&gt;--card-status
&lt;span class="go"&gt;Reader ...........: Yubico YubiKey OTP FIDO CCID 0&lt;/span&gt;
&lt;span class="go"&gt;Application ID ...: ********************************&lt;/span&gt;
&lt;span class="go"&gt;Version ..........: 2.1&lt;/span&gt;
&lt;span class="go"&gt;Manufacturer .....: Yubico&lt;/span&gt;
&lt;span class="go"&gt;Serial number ....: ********************************&lt;/span&gt;
&lt;span class="go"&gt;Name of cardholder: Amane Katagiri&lt;/span&gt;
&lt;span class="go"&gt;Language prefs ...: ja&lt;/span&gt;
&lt;span class="go"&gt;Sex ..............: female&lt;/span&gt;
&lt;span class="go"&gt;URL of public key : https://keybase.io/amane/pgp_keys.asc&lt;/span&gt;
&lt;span class="go"&gt;Login data .......: amane&lt;/span&gt;
&lt;span class="go"&gt;Signature PIN ....: forced&lt;/span&gt;
&lt;span class="go"&gt;Key attributes ...: rsa4096 rsa4096 rsa4096&lt;/span&gt;
&lt;span class="go"&gt;Max. PIN lengths .: 127 127 127&lt;/span&gt;
&lt;span class="go"&gt;PIN retry counter : 3 0 3&lt;/span&gt;
&lt;span class="go"&gt;Signature counter : 0&lt;/span&gt;
&lt;span class="go"&gt;Signature key ....: **** **** **** **** ****  **** **** **** **** ****&lt;/span&gt;
&lt;span class="go"&gt;      created ....: 1970-01-01 00:00:00&lt;/span&gt;
&lt;span class="go"&gt;Encryption key....: **** **** **** **** ****  **** **** **** **** ****&lt;/span&gt;
&lt;span class="go"&gt;      created ....: 1970-01-01 00:00:00&lt;/span&gt;
&lt;span class="go"&gt;Authentication key: **** **** **** **** ****  **** **** **** **** ****&lt;/span&gt;
&lt;span class="go"&gt;      created ....: 1970-01-01 00:00:00&lt;/span&gt;
&lt;span class="go"&gt;General key info..: [none]&lt;/span&gt;
&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;ssh&lt;span class="w"&gt; &lt;/span&gt;git@github.com
&lt;span class="go"&gt;PTY allocation request failed on channel 0&lt;/span&gt;
&lt;span class="go"&gt;Hi amane-katagiri! You&amp;#39;ve successfully authenticated, but GitHub does not provide shell access.&lt;/span&gt;
&lt;span class="go"&gt;Connection to github.com closed.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;なるほどね。&lt;/p&gt;
&lt;h2 id="_2"&gt;前提&lt;/h2&gt;
&lt;h3 id="yubikey"&gt;Yubikey&lt;/h3&gt;
&lt;p&gt;今回は&lt;a href="https://www.yubico.com/authentication-standards/smart-card/"&gt;PIV&lt;/a&gt;ではなく、&lt;a href="https://support.yubico.com/hc/en-us/articles/360013790259-Using-Your-YubiKey-with-OpenPGP"&gt;OpenPGP&lt;/a&gt;コンパチブルなスマートカードとして使用します。鍵のセットアップは各自で済ませてください。&lt;/p&gt;
&lt;p&gt;最近やっと2本目を買ったのですが、なんか&lt;a href="https://support.yubico.com/hc/en-us/articles/360016649139-YubiKey-5-2-3-Enhancements-to-OpenPGP-3-4-Support"&gt;ed25519が使えるようになってて&lt;/a&gt;よかったです。やっぱり2020は最高ですね。&lt;/p&gt;
&lt;h3 id="wsl"&gt;WSL&lt;/h3&gt;
&lt;p&gt;&lt;img alt="winverで表示したWindowsのバージョン情報（Windows 10, バージョン 1909, OSビルド 18363.900）" height="472" src="/images/yubikey-on-wsl/winver.png" width="536"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/etc/os-release
&lt;span class="go"&gt;PRETTY_NAME=&amp;quot;Debian GNU/Linux 10 (buster)&amp;quot;&lt;/span&gt;
&lt;span class="go"&gt;NAME=&amp;quot;Debian GNU/Linux&amp;quot;&lt;/span&gt;
&lt;span class="go"&gt;VERSION_ID=&amp;quot;10&amp;quot;&lt;/span&gt;
&lt;span class="go"&gt;VERSION=&amp;quot;10 (buster)&amp;quot;&lt;/span&gt;
&lt;span class="go"&gt;VERSION_CODENAME=buster&lt;/span&gt;
&lt;span class="go"&gt;ID=debian&lt;/span&gt;
&lt;span class="go"&gt;HOME_URL=&amp;quot;https://www.debian.org/&amp;quot;&lt;/span&gt;
&lt;span class="go"&gt;SUPPORT_URL=&amp;quot;https://www.debian.org/support&amp;quot;&lt;/span&gt;
&lt;span class="go"&gt;BUG_REPORT_URL=&amp;quot;https://bugs.debian.org/&amp;quot;&lt;/span&gt;
&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;uname&lt;span class="w"&gt; &lt;/span&gt;-a
&lt;span class="go"&gt;Linux yakumo 4.4.0-18362-Microsoft #836-Microsoft Mon May 05 16:04:00 PST 2020 x86_64 GNU/Linux&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_3"&gt;準備&lt;/h2&gt;
&lt;h3 id="gpg"&gt;gpg&lt;/h3&gt;
&lt;p&gt;Yubikeyをgpg-agent経由で引き渡す必要があるので、両方にインストールしてください。&lt;/p&gt;
&lt;h4 id="on-wsl"&gt;on WSL&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-y&lt;span class="w"&gt; &lt;/span&gt;gpg
&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;gpg&lt;span class="w"&gt; &lt;/span&gt;--version
&lt;span class="go"&gt;gpg (GnuPG) 2.2.12&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h4 id="on-windows"&gt;on Windows&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://www.gpg4win.org/get-gpg4win.html"&gt;https://www.gpg4win.org/get-gpg4win.html&lt;/a&gt;:&lt;br&gt;
&lt;img alt="Gpg4winのダウンロード画面" height="547" src="/images/yubikey-on-wsl/gpg4win_download.png" width="655"&gt;&lt;/p&gt;
&lt;p&gt;他のコンポーネントは入れても入れなくてもいいです:&lt;br&gt;
&lt;img alt="Gpg4winのインストーラ画面でGnuPG以外のコンポーネントのチェックを外した様子" height="388" src="/images/yubikey-on-wsl/gpg4win_install.png" width="499"&gt;&lt;/p&gt;
&lt;p&gt;えっ:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;C:\Users\amane&amp;gt;&lt;/span&gt;gpg --card-status
&lt;span class="go"&gt;gpg: selecting card failed: No such device&lt;/span&gt;
&lt;span class="go"&gt;gpg: OpenPGPカードが利用できません: No such device&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;カードリーダーが複数あると &lt;em&gt;最初の&lt;/em&gt; デバイス&lt;sup id="fnref:first-device"&gt;&lt;a class="footnote-ref" href="#fn:first-device" title="certutil -scinfoあたりの順番なのかな。"&gt;1&lt;/a&gt;&lt;/sup&gt;を見に行くらしいので、&lt;code&gt;%APPDATA%\gnupg\scdaemon.conf&lt;/code&gt;に追記するといい:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;reader-port Yubico
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;そっか:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;C:\Users\amane&amp;gt;&lt;/span&gt;gpgconf --reload scdaemon

&lt;span class="gp"&gt;C:\Users\amane&amp;gt;&lt;/span&gt;gpg --card-status
&lt;span class="go"&gt;Reader ...........: Yubico YubiKey OTP FIDO CCID 0&lt;/span&gt;
&lt;span class="go"&gt;Application ID ...: ********************************&lt;/span&gt;
&lt;span class="go"&gt;Application type .: OpenPGP&lt;/span&gt;
&lt;span class="go"&gt;Version ..........: 2.1&lt;/span&gt;
&lt;span class="go"&gt;Manufacturer .....: Yubico&lt;/span&gt;
&lt;span class="go"&gt;Serial number ....: ********************************&lt;/span&gt;
&lt;span class="go"&gt;Name of cardholder: Amane Katagiri&lt;/span&gt;
&lt;span class="go"&gt;Language prefs ...: ja&lt;/span&gt;
&lt;span class="go"&gt;Salutation .......: Ms.&lt;/span&gt;
&lt;span class="go"&gt;URL of public key : https://keybase.io/amane/pgp_keys.asc&lt;/span&gt;
&lt;span class="go"&gt;Login data .......: amane&lt;/span&gt;
&lt;span class="go"&gt;Signature PIN ....: 強制&lt;/span&gt;
&lt;span class="go"&gt;Key attributes ...: rsa4096 rsa4096 rsa4096&lt;/span&gt;
&lt;span class="go"&gt;Max. PIN lengths .: 127 127 127&lt;/span&gt;
&lt;span class="go"&gt;PIN retry counter : 3 0 3&lt;/span&gt;
&lt;span class="go"&gt;Signature counter : 0&lt;/span&gt;
&lt;span class="go"&gt;Signature key ....: **** **** **** **** ****  **** **** **** **** ****&lt;/span&gt;
&lt;span class="go"&gt;      created ....: 1970-01-01 00:00:00&lt;/span&gt;
&lt;span class="go"&gt;Encryption key....: **** **** **** **** ****  **** **** **** **** ****&lt;/span&gt;
&lt;span class="go"&gt;      created ....: 1970-01-01 00:00:00&lt;/span&gt;
&lt;span class="go"&gt;Authentication key: **** **** **** **** ****  **** **** **** **** ****&lt;/span&gt;
&lt;span class="go"&gt;      created ....: 1970-01-01 00:00:00&lt;/span&gt;
&lt;span class="go"&gt;General key info..: [none]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;後で使うので&lt;code&gt;%APPDATA%\gnupg\gpg-agent.conf&lt;/code&gt;に追記してください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;enable-ssh-support
enable-putty-support
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="npiperelay"&gt;npiperelay&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;npiperelay is a tool that allows you to access a Windows named pipe in a way that is more compatible with a variety of command-line tools.&lt;br&gt;
&lt;a href="https://github.com/NZSmartie/npiperelay"&gt;&lt;cite&gt;NZSmartie/npiperelay&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Windowsの名前付きパイプをよしなにUNIXソケットにリレーする。GnuPGが使う&lt;a href="https://gnupg.org/software/libassuan/index.html"&gt;libassuan&lt;/a&gt;向けのサポートつき。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/NZSmartie/npiperelay/releases/download/v0.1/npiperelay.exe"&gt;npiperelay.exe&lt;/a&gt;を&lt;code&gt;%HOMEDRIVE%%HOMEPATH%\go\bin&lt;/code&gt;あたりに置いてください。&lt;/p&gt;
&lt;h3 id="wsl-ssh-pageant"&gt;wsl-ssh-pageant&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;GPG on Windows exposes a Pageant style SSH agent and I wanted a way to use this key within WSL.&lt;br&gt;
&lt;a href="https://github.com/benpye/wsl-ssh-pageant"&gt;&lt;cite&gt;benpye/wsl-ssh-pageant&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;PageantをよしなにUNIXソケットにリレーする。どうしてもgpg-agent経由でsshできなかったので入れました。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/benpye/wsl-ssh-pageant/releases/download/20200408.1/wsl-ssh-pageant-amd64.exe"&gt;wsl-ssh-pageant-amd64.exe&lt;/a&gt;も&lt;code&gt;%HOMEDRIVE%%HOMEPATH%\go\bin&lt;/code&gt;あたりに置いてください。&lt;/p&gt;
&lt;h3 id="socat"&gt;socat&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Multipurpose relay (SOcket CAT)&lt;br&gt;
&lt;a href="https://linux.die.net/man/1/socat"&gt;&lt;cite&gt;socat(1)&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;npipereleyでよしなにしたgpg-agentのソケットを、WSL側のgpg-agentのソケットにつなぐ。&lt;/p&gt;
&lt;p&gt;WSLでインストールしてください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-y&lt;span class="w"&gt; &lt;/span&gt;socat
&lt;span class="gp"&gt;amane@yakumo:~$ &lt;/span&gt;socat&lt;span class="w"&gt; &lt;/span&gt;-V
&lt;span class="go"&gt;socat by Gerhard Rieger and contributors - see www.dest-unreach.org&lt;/span&gt;
&lt;span class="go"&gt;socat version 1.7.3.2 on Nov 19 2017 13:56:10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_4"&gt;起動&lt;/h2&gt;
&lt;h3 id="on-windows_1"&gt;on Windows&lt;/h3&gt;
&lt;p&gt;適当にバッチファイルとして置いてください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;gpg-connect-agent reloadagent /bye &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; nul &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;exist&lt;/span&gt; &lt;span class="nv"&gt;%HOMEDRIVE%%HOMEPATH%&lt;/span&gt;\ssh-agent.sock &lt;span class="k"&gt;del&lt;/span&gt; &lt;span class="nv"&gt;%HOMEDRIVE%%HOMEPATH%&lt;/span&gt;\ssh-agent.sock
&lt;span class="nv"&gt;%HOMEDRIVE%%HOMEPATH%&lt;/span&gt;\go\bin\wsl-ssh-pageant-amd64.exe --systray --wsl &lt;span class="nv"&gt;%HOMEDRIVE%%HOMEPATH%&lt;/span&gt;\ssh-agent.sock
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;タスクスケジューラからVBScript経由で呼び出すと &lt;em&gt;かわいい&lt;/em&gt; かもしれないです:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;Set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;CreateObject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Wscript.Shell&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;cmd /c C:\path\to\start-agent.bat&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vbhide&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="on-wsl_1"&gt;on WSL&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;.bashrc&lt;/code&gt;などに追記してください:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;WIN_USERNAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;amane&amp;quot;&lt;/span&gt;

&lt;span class="nv"&gt;GO_BIN_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/mnt/c/Users/&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WIN_USERNAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/go/bin&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;WIN_GPG_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;C:/Users/&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WIN_USERNAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/AppData/Local/gnupg&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;WIN_HOME_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/mnt/c/Users/&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WIN_USERNAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;WSL_GPG_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;gpgconf&lt;span class="w"&gt; &lt;/span&gt;--list-dirs&lt;span class="w"&gt; &lt;/span&gt;socketdir&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;!&lt;span class="w"&gt; &lt;/span&gt;pgrep&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;socat.*gpg-agent.*npiperelay&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;/dev/null&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;rm&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WSL_GPG_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/S.gpg-agent&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;setsid&lt;span class="w"&gt; &lt;/span&gt;nohup&lt;span class="w"&gt; &lt;/span&gt;socat&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;UNIX-LISTEN:&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WSL_GPG_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/S.gpg-agent,fork&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;EXEC:&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;GO_BIN_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/npiperelay.exe -ei -ep -s -a &amp;quot;&amp;#39;&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WIN_GPG_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/S.gpg-agent&amp;quot;,nofork&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;/dev/null&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="nb"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;SSH_AUTH_SOCK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WIN_HOME_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/ssh-agent.sock&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;PIDとかを記録すれば、もっと丁寧に二重起動を回避できますね。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2020-07-25) スクリプトを &lt;em&gt;かわいく&lt;/em&gt; する際にミスがあり、そのまま使用すると動作しなかったため修正しました。&lt;/ins&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gd"&gt;- WIN_GPG_DIR=&amp;quot;/mnt/c/Users/${WIN_USERNAME}/AppData/Roaming/gnupg&amp;quot;&lt;/span&gt;
&lt;span class="gi"&gt;+ WIN_GPG_DIR=&amp;quot;C:/Users/${WIN_USERNAME}/AppData/Roaming/gnupg&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;(2023-09-04) GPGのバージョンアップに伴う動作ディレクトリの修正を適用しました。&lt;/ins&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gd"&gt;- WIN_GPG_DIR=&amp;quot;C:/Users/${WIN_USERNAME}/AppData/Roaming/gnupg&amp;quot;&lt;/span&gt;
&lt;span class="gi"&gt;+ WIN_GPG_DIR=&amp;quot;C:/Users/${WIN_USERNAME}/AppData/Local/gnupg&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;(2024-02-09) ソケットの配置ディレクトリを決め打ちしないようにしました。&lt;/ins&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gi"&gt;+WSL_GPG_DIR=&amp;quot;$(gpgconf --list-dirs socketdir)&amp;quot;&lt;/span&gt;

&lt;span class="w"&gt; &lt;/span&gt;if ! pgrep -f &amp;#39;socat.*gpg-agent.*npiperelay&amp;#39; &amp;gt;/dev/null; then
&lt;span class="gd"&gt;-  rm -f &amp;quot;${HOME}/.gnupg/S.gpg-agent&amp;quot;&lt;/span&gt;
&lt;span class="gi"&gt;+  rm -f &amp;quot;${WSL_GPG_DIR}/S.gpg-agent&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;  setsid nohup socat \
&lt;span class="gd"&gt;-    UNIX-LISTEN:&amp;quot;$HOME/.gnupg/S.gpg-agent,fork&amp;quot; \&lt;/span&gt;
&lt;span class="gi"&gt;+    UNIX-LISTEN:&amp;quot;${WSL_GPG_DIR}/S.gpg-agent,fork&amp;quot; \&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="on-wsl2"&gt;on WSL2&lt;/h2&gt;
&lt;p&gt;/* &lt;a href="/post/yubikey-on-wsl2"&gt;WSL2でYubikeyを使う&lt;/a&gt;を参照してください。 */&lt;/p&gt;
&lt;h2 id="_5"&gt;この記事の生い立ち&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.lenovo.com/jp/ja/notebooks/thinkpad/x-series/ThinkPad-X13-Yoga/p/22TPX13X3Y1"&gt;ThinkPad X13 Yoga Gen 1&lt;/a&gt;が届いたので、インストール手順をまとめました。今回はデュアルブートなんてせずにゲームや動画を楽しめるといいですね。&lt;/p&gt;
&lt;p&gt;最近やりました:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://store.steampowered.com/app/1289310/Helltaker/"&gt;Helltaker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://store.steampowered.com/app/555630/A_Magical_High_School_Girl/?l=japanese"&gt;魔法の女子高生&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;とりあえずWSL2を使えばそれで終わりだと思うので、終わりです。&lt;/p&gt;
&lt;h2 id="_6"&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://justyn.io/blog/using-a-yubikey-for-gpg-in-wsl-windows-subsystem-for-linux-on-windows-10/"&gt;Using a Yubikey for GPG in WSL (Windows Subsystem for Linux) on Windows 10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.antirandom.com/2020/03/ssh-on-windows-with-private-key-on-yubikey/"&gt;SSH on Windows with private key on Yubikey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codingnest.com/how-to-use-gpg-with-yubikey-wsl/"&gt;How to use GPG with YubiKey (bonus: WSL)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:first-device"&gt;
&lt;p&gt;&lt;code&gt;certutil -scinfo&lt;/code&gt;あたりの順番なのかな。&amp;#160;&lt;a class="footnote-backref" href="#fnref:first-device" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>グラナイト</title><link href="https://ama.ne.jp/post/granite/" rel="alternate"/><published>2020-05-07T19:05:00+09:00</published><updated>2020-05-07T19:05:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-05-07:/post/granite/</id><summary type="html">&lt;p&gt;完全な球体&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/full-text-views/"&gt;いっぱいテキストビュー&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="_1"&gt;喫茶店で&lt;/h2&gt;
&lt;p&gt;「で、今日こうやって私が紹介して、それでミカが買ってくれたら私に十パーセントの配当があるから――」&lt;/p&gt;
&lt;p&gt;セントラルラインに乗ってわざわざ二時間かけてやってきた喫茶店で、私はなぜかマルチ商法の勧誘を受けていた。十パーセントの配当がもらえるから、何人に売れば回収できて、半年もすれば何百万円になるから……どこかで聞いたような話ばかり。&lt;/p&gt;
&lt;p&gt;今日は全てがおかしい。数年ぶりに旧友に呼び出されていることも、私がそれに応えてここまで来てしまったことも。そのせいでおかしな儲け話に巻き込まれそうになっていることも。&lt;/p&gt;
&lt;p&gt;そして、目の前の旧友が綺麗になっていることも。&lt;/p&gt;
&lt;p&gt;アルバムで見慣れていたはずの彼女の顔は、まるで人が変わってしまったようにさっぱりと垢抜けている。その表情は都会じみた空気をまとっているものの、悪く言えば個性がなくなっていた。&lt;/p&gt;
&lt;p&gt;ふと目線を落とすと、茶色い合成木の四角いテーブルに置かれたタブレットが延々と動画を流し続けている。妙なパースの3Dグラフや資金繰りを示す折れ線が、大きく広がったり上に伸びたりしているのを見ていると、視界がぐにゃりと歪む気がした。&lt;/p&gt;
&lt;p&gt;「最近のオススメはこっちかな。サプリメントも悪くないんだけど、使用期限がないから廃棄が少なくて――」&lt;/p&gt;
&lt;p&gt;そうやって商品を説明する声も、あの頃の気弱な彼女とは全く違う。本当に儲かると言わんばかりの自信に満ちたその声は、やはり同じ人とは思えないほど変わっていた。まるでスピーカーから流しているように安定した声は妙に明るくて、聞いているだけで私たちの温度差がぐんぐん広がっていくように思えた。&lt;/p&gt;
&lt;p&gt;でも、上野でリニアを降りて地下深くからエスカレーターで改札まで上がる間、楽しそうに話す彼女はやはり昔と変わらなかった。私が先に入った一人用のパラキン&lt;sup id="fnref:palanquin"&gt;&lt;a class="footnote-ref" href="#fn:palanquin" title="エスカレーターのステップに取り付けられた昇降用のかごを指す。"&gt;1&lt;/a&gt;&lt;/sup&gt;にわざわざ乗り込んできた彼女は、確かに懐かしい空気をまとっていた。&lt;/p&gt;
&lt;p&gt;そうだとしたら、私は何をもって彼女を彼女だと思ったのだろう。どうしてあの日の彼女を懐かしんだのだろう。&lt;/p&gt;
&lt;p&gt;「どう？　悪い話じゃないと思うんだけど」&lt;/p&gt;
&lt;p&gt;そう言いながら、マミはオフホワイトのトートバッグから分厚いパンフレットを取り出して机に置いた。&lt;/p&gt;
&lt;p&gt;胡散くさい笑顔で手を取り合う男女の写真が刷られた表紙には、儲かるだとか確実だとか根拠のない自信が（おそらく法律に抵触しない範囲で）散りばめられている。&lt;/p&gt;
&lt;p&gt;「ちょっと待ちなさいよ」&lt;/p&gt;
&lt;p&gt;その表紙をひったくるように裏返すと、マミの困惑した視線が私に突き刺さった。&lt;/p&gt;
&lt;p&gt;「マミ、今日の話ってこれのことなの？」&lt;/p&gt;
&lt;p&gt;「うん。でもこれだけじゃないよ。他にもいろいろ話したくて、だから呼んだの」&lt;/p&gt;
&lt;p&gt;他に用事があったって、このネットワークビジネスのために呼んだのなら意味がない。私が聞いているのは、何の目的で呼ばれたのかってことだ。&lt;/p&gt;
&lt;p&gt;「えーと、あのねぇ……」&lt;/p&gt;
&lt;p&gt;要領を得ない彼女の発言に、私は思わず額に手を当ててしまう。マミもいらいらした時の私の &lt;em&gt;くせ&lt;/em&gt; は覚えていたらしく、パンフレットをバッグにしまってから取り繕うように笑った。&lt;/p&gt;
&lt;p&gt;「でも、リニアってすごいよね。すぐ会えるんだもん」&lt;/p&gt;
&lt;p&gt;「そうね。超電導って本当に素敵な技術だわ。今すぐにでも帰ってみんなにも教えてあげたいくらい」&lt;/p&gt;
&lt;p&gt;新型の超電導リニア特急がソーラーパネル畑の間を駆け抜けていく様子はそれなりに爽快だったし、あんな田舎からすぐに東京まで出られるのだって、確かに素晴らしいことなんだと思う。&lt;/p&gt;
&lt;p&gt;でも、こんなことになると知っていたら来なかったのに。的外れな期待をした私がバカみたいだ。&lt;/p&gt;
&lt;p&gt;「私を騙したの？」&lt;/p&gt;
&lt;p&gt;「騙してないよ。話があるから来てって言っただけ」&lt;/p&gt;
&lt;p&gt;確かに、マミは私に会う目的を告げなかった。言いにくいことなのかもしれないと、直接話さなきゃいけないことでもあるのだろうと、深読みして勝手に盛り上がっていたのは私の方だ。&lt;/p&gt;
&lt;p&gt;だから、私が勝手に勘違いしていただけ。そうなのかもしれない。でも、そんなのただの言い訳だ。&lt;/p&gt;
&lt;p&gt;「ミカ？」&lt;/p&gt;
&lt;p&gt;マミは困った表情に曖昧な笑顔を混ぜて「ごめんね？」と、理解しているのかしていないのかよく分からない様子で私の顔を覗き込んだ。&lt;/p&gt;
&lt;p&gt;「まぁ、いいわ」&lt;/p&gt;
&lt;p&gt;溜息を吐く。冷静に考えれば、マミが私を騙そうとするわけなんてない。彼女だってそのうちおかしなビジネスに巻き込まれていたと気付くだろう。&lt;/p&gt;
&lt;p&gt;それに、今さら怒ってもどうしようもないし、言った言わないの水掛け論でマミを困らせたいわけでもなかった。もう私に契約するつもりがないことはマミだって分かっているだろうから、後は話を合わせて適当なところで帰ればいい。&lt;/p&gt;
&lt;p&gt;氷が解けて薄くなったカフェラテを、カップの角からゆっくり飲み干してテーブルに置く。落ち着いたら、さっきまで意識の外にいた目の前の奇妙な料理のことが気になり始めた。&lt;/p&gt;
&lt;p&gt;「で、これって何のお肉なの？」&lt;/p&gt;
&lt;p&gt;メニューに「ステーキ」とだけ書かれていたこの料理は、色や形こそ焼かれた厚切りの牛肉に見えるけど、レアもウェルダンもない噛み心地と、溢れる消毒液のような香りはまともな食べ物とは思えない。&lt;/p&gt;
&lt;p&gt;とっても美味しくないんだけど、と小声で告げると、マミは意外そうな顔をする。同じ料理を頼んだ彼女がそんな顔をするなんて、きっと舌でも手術したんだろうと思うくらい、例えるならカルキ漬けの肉というのにふさわしい味だった。&lt;/p&gt;
&lt;p&gt;「なんだろうね？　認証は通ってるみたいだし、ただの合成肉だと思うけど」&lt;/p&gt;
&lt;p&gt;そう言ってから、マミはまた「ステーキ」を一切れ頬張った。もぐもぐ、ごくん。そして、別に美味しいけどなーと首を傾げる。ふざけているつもりはなさそうだ。私が口に手を当てて驚くのさえ、彼女には不思議らしい。&lt;/p&gt;
&lt;p&gt;メニューを見ると、店名や営業時間の情報と共に正方形のシールが貼られている。マミの言う「認証」というのはこれのことだろうか。その横に印刷されたハラール認証のマークは知っているけど、フラスコの中に歯車を置いた金色のロゴに「A7相当」と記されたマークは見たこともなかった。&lt;/p&gt;
&lt;p&gt;「口に合わなかったら自然肉にする？　言ったら変えてくれると思うよ」&lt;/p&gt;
&lt;p&gt;そういって「すいませーん！」とウェイターを呼ぶマミを慌てて止める。私には「国産自然肉ハンバーグ」の代金を払えるほどの持ち合わせはなかった。また妙なお肉が出てきても困るし。&lt;/p&gt;
&lt;p&gt;ため息をつく。マミってこんなに強引なやつだったっけ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ねぇ、マミ。あんた、整形したの？」&lt;/p&gt;
&lt;p&gt;仕方なく頼んだアイスカフェラテのおかわりを飲みながら、私は気になっていたことを尋ねた。&lt;/p&gt;
&lt;p&gt;的外れなことを聞いてしまったかもしれない。でも、駅で彼女を見た時の違和感はまだ私の中にある。いくら頑張ってメイクしたって、違う人に見えてしまうほど顔が変わってしまうとは思えなかったから。&lt;/p&gt;
&lt;p&gt;「整形？　うん……ちょっと違うけど、そんな感じ」&lt;/p&gt;
&lt;p&gt;マミはまた曖昧な答えを返す。そのはっきりしない態度は昔の彼女の面影をぼんやりと残しつつ、今はただ隠しごとの微妙な気配を感じさせるだけだ。&lt;/p&gt;
&lt;p&gt;私が何も言えずにいると、少しの沈黙が流れた後にマミが再び口を開く。&lt;/p&gt;
&lt;p&gt;「足りないんだよね、あと少し。お金が」&lt;/p&gt;
&lt;p&gt;マミはそう言いながら、ばつが悪そうな様子でタブレットをトートバックにしまいこんだ。&lt;/p&gt;
&lt;p&gt;お金が、あと少し、足りない。足りないというのは、次の整形手術のお金のことだろうか。それとも、もはや当座の生活費すら危うい状態なのか。どちらにせよ、彼女の状況は褒められたものではないだろう。どんな理由であれ、詐欺まがいの商売にまで手を染めてしまったのだから。&lt;/p&gt;
&lt;p&gt;「だから、こんな胡散臭いビジネスを始めたの？」&lt;/p&gt;
&lt;p&gt;「うん。でもこれは確実に儲かるから――」&lt;/p&gt;
&lt;p&gt;「じゃあ、なんでわざわざ私を呼んだのよ？」&lt;/p&gt;
&lt;p&gt;彼女の言葉を遮るようにそう尋ねると、マミは面食らったように目を見開いた。&lt;/p&gt;
&lt;p&gt;「だって、ミカに会いたかったから。そう言ったでしょ？」&lt;/p&gt;
&lt;p&gt;「でも、私たち……もう終わったじゃない」&lt;/p&gt;
&lt;p&gt;彼女に「会いたい」と告げられた時、私は密かに期待していた。マミがまだ私を好きで、忘れられなくて、告白するために呼んだのかもしれない。あるいは、恋人と別れたと一言告げるために。&lt;/p&gt;
&lt;p&gt;流石にそれは言い過ぎだとしても、会いたいという言葉に嘘はないと思っていた。&lt;/p&gt;
&lt;p&gt;でも、マミは？　マミにとってそれは何でもない一言で、それに呼び寄せられた私なんてお金儲けの手段でしかなかったのだろうか。&lt;/p&gt;
&lt;p&gt;「確かに私はマミにひどいことをしたわ。でも、それだってもう……だったら、仕返しのつもりなの？」&lt;/p&gt;
&lt;p&gt;「そんなこと、どうでもいいよ。むしろ感謝してるくらい」&lt;/p&gt;
&lt;p&gt;マミはどうでもいいよ、と吐き捨てるように言い放つ。私には、彼女が何を考えているのか分からなかった。&lt;/p&gt;
&lt;p&gt;「じゃあ、どうして――」&lt;/p&gt;
&lt;p&gt;「ミカに、完璧になった私を見てほしいと思って」&lt;/p&gt;
&lt;p&gt;その質問を待っていたかのように、彼女はにやりと微笑んだ。「完璧」という言葉に、おぞましい憎しみが込められているような気がした。私がしたことに人生をかけて復讐しようとでもいうように。&lt;/p&gt;
&lt;p&gt;背筋が震えるその感覚に、私は思わず立ち上がっていた。&lt;/p&gt;
&lt;p&gt;「……私、帰るわ」&lt;/p&gt;
&lt;p&gt;「あはっ、どうやって帰るの？　都民カードもないのに」&lt;/p&gt;
&lt;p&gt;都民カード、という響きで思い出す。上野で長い長いエスカレーターに乗っている間、「&lt;ruby&gt;&lt;rb&gt;無申請訪問者&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;プライベート・ビジター&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;は二名まで」という啓発のポスターを何度か見かけたのだ。それを見たマミが「最近警備が厳しいんだよね。流通の管理強化とかで」と言っていたのはこのことだったらしい。&lt;/p&gt;
&lt;p&gt;マミが改札でかざしていたピンク色のカードが「都民カード」なのだとしたら、私が東京に出入りし、滞在するには都民カードを持った誰か――これはもちろんマミのことだ――の協力が必要ということになる。つまり、今夜の私の寝床さえも、彼女の気まぐれということだ。&lt;/p&gt;
&lt;p&gt;そんなこと知らなかった。どうして教えてくれなかったのよ、と座ったままのマミを見下ろすように睨みつけると、彼女はもう一度、いたずらっぽく笑った。&lt;/p&gt;
&lt;h2 id="_2"&gt;マミの家で&lt;/h2&gt;
&lt;p&gt;やはり、私は騙されていたらしい。結局、半ば強制的にマミの自宅に連れ込まれていた。マルチ商法の勧誘さえも壮大な謀略の一端で、本当は私にもっとひどいことを仕掛けようとしているんじゃなかろうか。&lt;/p&gt;
&lt;p&gt;「マミ。そういえば、これ」&lt;/p&gt;
&lt;p&gt;「あ、そうだった。ありがと」&lt;/p&gt;
&lt;p&gt;恐る恐る紙袋を差し出すと、マミは嬉しそうにビニールの取っ手を掴んだ。&lt;/p&gt;
&lt;p&gt;中身は近所のディスカウントストアで買ったビー玉だ。東京に来る前に持ってくるよう頼まれたのだ。どうしてそんなものを欲しがるのか私には分からなかったが、これで家に帰してもらえるなら安いものだ。&lt;/p&gt;
&lt;p&gt;「別にいいけど、そんなの何に使うのよ」&lt;/p&gt;
&lt;p&gt;「ペンダントが壊れちゃって。代わりに使おうかなって」&lt;/p&gt;
&lt;p&gt;マミがそう言いながら袋の一つを取り出してビニールのネットを裂くと、メタリックな光沢を塗られた青いビー玉がぼとぼととフローリングにこぼれ落ちる。&lt;/p&gt;
&lt;p&gt;「うん、ちゃんと転がるみたい……ミカ、ありがと」&lt;/p&gt;
&lt;p&gt;急に何を始めたのだろうと彼女の顔をちらと見ると、マミはにまにまと笑っていた。ビー玉なんだから転がるのが当たり前じゃないだろうか。&lt;/p&gt;
&lt;p&gt;「球体っていうのは、恩物の中でも理想の図形なんだよ。フレーベル氏が言ってた」&lt;/p&gt;
&lt;p&gt;フレーベルについて聞き返すよりも先に、マミは恩物について話し始めた。&lt;/p&gt;
&lt;p&gt;恩物は幼児向けの知育教材で、球体に始まり、立方体、直方体、プレート、棒、リングと様々な図形で遊ぶうちに自ら学ぶ力を身につけられるのだという。それぞれの図形は人間が必要とする概念の習得に重要で、その中で最も大切なのが球体らしい。&lt;/p&gt;
&lt;p&gt;しかし、マミはどうして急にそんな話をしたのだろう。マルチ商法の時といい、東京に来たせいで変な宗教にでもハマっているんだろうか。&lt;/p&gt;
&lt;p&gt;「だから、私たちには球体が必要なの。ビー玉でもね」&lt;/p&gt;
&lt;p&gt;と、すらすらと話すマミの声を聞いていると、やはり昔と違うそのハリに違和感を覚えずにはいられなかった。&lt;/p&gt;
&lt;p&gt;「マミ、昔よりずいぶん声が良くなったみたいね。ボイストレーニングでも通ってるの？」&lt;/p&gt;
&lt;p&gt;「違うよ。声帯を機械化したの」&lt;/p&gt;
&lt;p&gt;「機械化？　どうしてそんなことしたのよ」&lt;/p&gt;
&lt;p&gt;まるでスピーカーから流しているような声、と思ったのはあながち間違いではなかったらしい。ふと「私が変な声って言ったから？」と聞きそうになったけど、なぜか言葉に詰まった。&lt;/p&gt;
&lt;p&gt;「アバター使って動画を配信しててね。毎日声を張るのが結構しんどかったから変えてみたの」&lt;/p&gt;
&lt;p&gt;そう言って、マミはタブレットを操作して動画を再生する。銀髪ショートボブのアバターが、たくさんフリルの付いたウェイトレス風の可愛らしいオレンジ色のドレスを着て踊っていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;『マミ、背中弱かったよね』&lt;/p&gt;
&lt;p&gt;『んー……手術のせいで、もう感じなくなったんだよね』&lt;/p&gt;
&lt;p&gt;『あら、そうなの』&lt;/p&gt;
&lt;p&gt;『私、もう変じゃないよね？』&lt;/p&gt;
&lt;p&gt;『えっ？　そ、そうね……変じゃ、ないわ』&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;次の日、防災無線塔からの放送で、東京が数ヶ月の完全都市封鎖に入ったことを知らされた。既に東京にいる私のような&lt;ruby&gt;&lt;rb&gt;無申請訪問者&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;プライベート・ビジター&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;も、封鎖明けまでは帰ることができなくなったということだ。&lt;/p&gt;
&lt;p&gt;「マミ、どうして言ってくれなかったのよ」&lt;/p&gt;
&lt;p&gt;「ごめんね。どうせ都民はずっと東京から出られないから、あんまり気にしてなかったの」&lt;/p&gt;
&lt;p&gt;また、騙された。そう彼女を責めるより先に、マミは笑顔で身を乗り出してくる。&lt;/p&gt;
&lt;p&gt;「それよりミカ、こっちで働かない？」&lt;/p&gt;
&lt;p&gt;向こうより稼げるよ、というマミの言葉はやはり怪しい響きを含んでいた。&lt;/p&gt;
&lt;p&gt;マルチ商法の手伝いか、あるいは身体でも売らされるのか、もしかしたらもっとひどい仕事かもしれないと身構えていたけれど、聞いてみると在宅でマミの動画配信を手伝えばいいらしい。&lt;/p&gt;
&lt;p&gt;「ちょっとした吹き出し付けたりとか、効果音を差し込んだりしてくれればいいから」&lt;/p&gt;
&lt;p&gt;「んー……そうね……」&lt;/p&gt;
&lt;p&gt;悪い話ではなかったけど、マミがどうしてこんなにも私を気にしているのかがまだ分からない。つかみどころのない彼女に全てを委ねるのは、一抹の不安もあった。&lt;/p&gt;
&lt;p&gt;でも、思い浮かぶのは、昨日まで住んでいた――県と、つまらなくて代わり映えのしない仕事の毎日。それがもう、今はずっと遠くにある。&lt;/p&gt;
&lt;p&gt;「分かったわ、やってみる。よろしくね」&lt;/p&gt;
&lt;p&gt;田舎特有の先が見えない閉塞感はもうここにはなくて、私が私として生きることを誰も否定したりしない。ありきたりな田舎者らしく、都市の自由に夢を見ていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;一緒に住むならパートナーシップ&lt;sup id="fnref:partnership"&gt;&lt;a class="footnote-ref" href="#fn:partnership" title="婚姻制度が漸次廃止されつつある中、次世代のライフスタイルに合わせて人間同士の多様な関係を公的に証明するための認定制度のこと。"&gt;2&lt;/a&gt;&lt;/sup&gt;を取った方がいいよ、とマミが言う。都民カードがないと何かと不便だし、パートナーが都民なら転入手続きも通りやすくなるらしい。&lt;/p&gt;
&lt;p&gt;「でも、まだ区役所が開いてないんじゃない？」&lt;/p&gt;
&lt;p&gt;「ふふっ、ミカって面白いね」&lt;/p&gt;
&lt;p&gt;ほとんどの手続きは都民カードとスマホがあればできるらしい。わざわざ区役所に行く人はもうほとんどいないし、窓口で手続きしたい場合はむしろ事前の予約が必要だという。&lt;/p&gt;
&lt;p&gt;だって、そんなの知らなかったもの。&lt;/p&gt;
&lt;p&gt;マミはブラウザを開いて何度かタップしながら、大昔に都民カードを紛失して以来行ってないよ、というような話をしていた。&lt;/p&gt;
&lt;p&gt;スマホでの転入手続きはとてもシンプルだった。特に&lt;ruby&gt;&lt;rb&gt;無申請訪問者&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;プライベート・ビジター&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;向けの転入手続きは、完全都市封鎖の直後からワンタップで呼び出せるようになっている。&lt;/p&gt;
&lt;p&gt;マミが「――ミカゲ」「女」「二六――年・夏」と、知っている限りの私の情報を打ち込み始めた。たまに尋ねられるのは、両親の生年月日とか、これまでの恋愛遍歴（本当に必要なのかしら）くらいで、何年も離れていたのによくそんなに私のことを覚えているなと思う。&lt;/p&gt;
&lt;p&gt;「じゃあ、アイリス撮るからこっち見て」&lt;/p&gt;
&lt;p&gt;ぱしゃり。顔写真ではなく、虹彩のダイジェストを計算して記録するのだという。&lt;/p&gt;
&lt;p&gt;『――時――分、登録が完了しました』&lt;/p&gt;
&lt;p&gt;「じゃあ、私のカードでミカのスマホを登録するから、ちょっと貸してくれる？」&lt;/p&gt;
&lt;p&gt;時報を聞いてふと時刻表示を見ると、五分ほど遅れていた。スマホの時計が狂うなんて聞いたことがないと思いながら何度かスワイプするけれど、どうにも直らない。&lt;/p&gt;
&lt;p&gt;それ見たマミが「東京はTAI&lt;sup id="fnref:tai"&gt;&lt;a class="footnote-ref" href="#fn:tai" title="国際原子時のこと。"&gt;3&lt;/a&gt;&lt;/sup&gt;ベースなんだよ」と言って、何度か都民カードをかざした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ほとんどの買い物は通販で済ませていたけど、かさばる荷物は送料が高いからスーパーに出かけることがあった。&lt;/p&gt;
&lt;p&gt;そうやってスーパーに行く途中、よく道端に倒れて動かなくなっている人がいる。ほとんどの人は血を吐いていて、ひどい時は皮膚が剥がれ落ちていることもあった。始めの頃は意識がないのを確認して救急車を呼んでいたけれど、道行く者が誰一人として目もくれないのを見ると、徐々に触れてはならないことのように思えてきてしまう。&lt;/p&gt;
&lt;p&gt;だから、最近は私も足早に通り過ぎるのだ。次通った時にはもういませんように、と祈りながら。&lt;/p&gt;
&lt;p&gt;その話をすると、マミは「変な病気が流行ってるらしいから、近づいちゃだめだよ。ミカも気をつけてね」と言う。そして、彼女が着けているのと同じビー玉のペンダントを私の首に掛けるのだ。&lt;/p&gt;
&lt;p&gt;このおまじないには、どういう意味があるのかしら。&lt;/p&gt;
&lt;h2 id="_3"&gt;電気街で&lt;/h2&gt;
&lt;p&gt;家から出なくていい仕事だから、としきりに言っていたマミが、時折ミーティングと称してどこかに出かけているのは明らかにおかしかった。&lt;/p&gt;
&lt;p&gt;朝早く出かけて、帰ってくるのは夕方くらい。スマホとカードだけで楽しそうに出かけていくマミは、およそ仕事のために出かけているようには見えない。&lt;/p&gt;
&lt;p&gt;しかも、一度だけビー玉のペンダントをどこかに忘れてきた時があった。アクセサリーを外さなきゃ進められないミーティングなんて、どこにあるんだろう。&lt;/p&gt;
&lt;p&gt;身体を売っているのか、私の知らないパートナーと会っているのかは分からない。でも、私に隠しごとをしているのは明らかだった。&lt;/p&gt;
&lt;p&gt;「ねぇ、マミ。最近どこに行ってるのよ」&lt;/p&gt;
&lt;p&gt;「あれ、言ってなかったっけ？　ミーティングだよ」&lt;/p&gt;
&lt;p&gt;もちろん、これは嘘だ。ミーティングはいつも画面越しだし、私も彼女もチーフエンジニアの顔さえ知らない。画面に映るのは、ぼんやりとした線の青髪ツインテールの女の子だけだ。髪がぴょこぴょこ揺れるのに合わせて聞こえる声だって、フォルマントをいじってフィルタされている。&lt;/p&gt;
&lt;p&gt;私たちが最先端の設備や技術を導入しているわけではなく、これが東京でのオフィス労働の実態だ。マミは時折、こうやって調べなくても分かるようなわざとらしい嘘をつく。騙されてくれるよね、とでもいうように。&lt;/p&gt;
&lt;p&gt;「……あ、そういえば、明日から一週間入院するから。配信は適当にやっておいてくれる？」&lt;/p&gt;
&lt;p&gt;「何よ、入院って」&lt;/p&gt;
&lt;p&gt;いつものことながら、マミの話はあまりに唐突だった。上着をハンガーに掛けながら、そうやって世間話のように平然と大事な話を切り出そうとするのだ。&lt;/p&gt;
&lt;p&gt;「ちょっと手術しなきゃいけなくなって。死ぬわけじゃないから大丈夫だよ」&lt;/p&gt;
&lt;p&gt;「違うわよ！　そういう大事なこと、どうして早く言ってくれないの」&lt;/p&gt;
&lt;p&gt;明日から手術だなんて、仕事仲間としても、パートナーとしても早く伝えなきゃいけないことのはずだ。手術だってミーティングだって、きっと嘘だから適当なことを言っているんだろうけど、本当だとしたらより悪い。どうしようもない怠慢だ。&lt;/p&gt;
&lt;p&gt;立ち上がって大声を上げた私を、マミは意外そうな表情で見つめる。&lt;/p&gt;
&lt;p&gt;「ミカって、普通の女の子みたいなことも言うんだね」&lt;/p&gt;
&lt;p&gt;マミはそう言って、少しだけ笑ってみせた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;次の日、マミを尾行した先にあったのは、電気街の端にある古びた雑居ビルだった。若い女性がまともな用事で出入りするような場所には思えない。&lt;/p&gt;
&lt;p&gt;しかし彼女は周りを気にする様子もなく、狭くて暗いエントランスからビルに入っていった。エレベーターに乗るのに合わせて私も廊下を進む。もう戻れないところまで来ているような、おぼつかない心地がした。&lt;/p&gt;
&lt;p&gt;「マミ、なんでこんな場所に……」&lt;/p&gt;
&lt;p&gt;階数のランプが三階に止まる。マミがエレベーターを降りたようだ。コンクリートむき出しの埃っぽい階段を一段飛ばしでゆっくり上がっていく。息を潜めて登りきった先に、自動ドアに貼られた「レンタルBOX・スフェール」という手書きの看板が目に入った。&lt;/p&gt;
&lt;p&gt;『いらっしゃいませ！　どうぞお入りください！』&lt;/p&gt;
&lt;p&gt;びくりと震える身体に遅れて、ただの自動音声だと気付く。しかし、安堵した時にはもう遅く、「レンタルBOX」の意味も分からない間に自動ドアが開いていた。&lt;/p&gt;
&lt;p&gt;そっと覗いてみるけれど、マミの姿はない。切れかけの蛍光灯がちかちかと光る薄暗い部屋は空調がよく効いているらしく、外に暖かい空気が漏れていくのが分かった。&lt;/p&gt;
&lt;p&gt;彼女と鉢合わせたら「やっぱり入院なんて嘘だったのね」とでも言ってやろうと思いながら、そろり、とドアをくぐる。&lt;/p&gt;
&lt;p&gt;目の前に広がっていたのは、整然と並べられた大量のメタルラックと、その空間を切り分けるように置かれた五十センチメートルほどのアクリルケースの一群だった。ケースには簡易的な鍵が付いていて、透明な壁の中でプラモデルやフィギュアが所狭しと身を寄せ合っている。&lt;/p&gt;
&lt;p&gt;空いたケースには「出店者大募集」という広告と共に一ヶ月あたりの料金が書かれているところを見ると、「レンタルBOX」というのはアクリルで仕切られたブースをレンタルして商品を陳列するための場なのだろう。&lt;/p&gt;
&lt;p&gt;正面の小さなレジはバックヤードの出入り口を兼ねているらしく、後ろに黒いカーテンが引かれていた。今はそこに古参そうな店員が退屈そうに座っていて、こちらを一瞥したきり何も言おうとしない。&lt;/p&gt;
&lt;p&gt;とりあえず中を一周してみると、入り口近くのプラモデルやフィギュアはカモフラージュだったと分かる。奥には水着を着た派手な髪の色の女性が大股を開いた写真が印刷されたUVRケースのジャケットだとか、フリルのほつれた下着のセットだとか、そういう成人向けの商品が大量に置かれていた。現実の肉体を撮影したアダルトビデオは違法だったはずだから、雑居ビルで隠れて営業しなければならない「そういう」お店なのだろう。&lt;/p&gt;
&lt;p&gt;少し気になったのは、そんなセクシーなブースの横に、ビー玉や大きな水晶玉をかなりの高値で売っているブースが並んでいたことだ。東京では、ガラス球の取引まで違法になったのだろうか。マミも私にビー玉を持ってくるように言っていたし、もしかしたら貴重な品物なのかもしれない。&lt;/p&gt;
&lt;p&gt;もしかして、マミはここで私があげたビー玉でも売ろうとしてるんじゃ――&lt;/p&gt;
&lt;p&gt;「お嬢さん、鉄道が好きなのかい？」&lt;/p&gt;
&lt;p&gt;と、流石に私の行動を怪しんだ店員がレジから声をかける。鉄道グッズなんて奥にひっそり飾られているだけで、一度だけ目の前を通ったきり眺めてもいない。明らかに不審な私を牽制するための呼びかけだ。&lt;/p&gt;
&lt;p&gt;「あ、いえ、別に」&lt;/p&gt;
&lt;p&gt;「……都民カード、見せてくれる？」&lt;/p&gt;
&lt;p&gt;あんまり妙な動きをするとただじゃ済まないぞ、というような口調に、身体が固まって動けなくなる。どうしよう、どうしよう……と思っていると、黒いカーテンが開いて、バックヤードから人影が現れた。万事休すか。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「すみません、――さん。その子、私のパートナーです。後をつけられちゃったみたいで」&lt;/p&gt;
&lt;p&gt;と、奥から聞き覚えのある声と共にやってきたのは、ゆったりとした水色の検査着姿のマミだった。どうやら、助かったらしい。&lt;/p&gt;
&lt;p&gt;彼女は手短に私との関係について話して、この店を脅かすような存在ではないことを告げた。大体は聞き覚えのある内容だったけど、&lt;ruby&gt;&lt;rb&gt;球体欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;クーゲル・マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;という聞き覚えのない言葉が耳に残った。&lt;/p&gt;
&lt;p&gt;名前を呼ばれた店員は二、三小言を残して（何と言っていたかは聞こえなかった）バックヤードに戻っていく。それに合わせて、マミがこちらに駆け寄ってきた。&lt;/p&gt;
&lt;p&gt;「ミカ、来てくれたんだ」&lt;/p&gt;
&lt;p&gt;「あんた、こんなところで何してるのよ」&lt;/p&gt;
&lt;p&gt;私が検査着の襟を掴んで詰め寄ろうとも、マミはまるで気にしないそぶり。逆に、私を落ち着かせるように手を握ると、じっと私の目を見つめた。&lt;/p&gt;
&lt;p&gt;「それも含めて、奥で話さない？」&lt;/p&gt;
&lt;p&gt;ちゃんと説明するから、という押しに負けて、私は手を引かれるまま奥へと進んだ。&lt;/p&gt;
&lt;p&gt;黒いカーテンをくぐると、そこにはデスクやロッカーはなく、さっきまでと同じようにメタルラックとアクリルケースが並べられていた。しかし、中に置かれているのはもう少し趣味の悪い品物だ。&lt;/p&gt;
&lt;p&gt;目の前のケースに入っているのは、人間の肘から先の模型に見える。外側には若い女性の顔写真が貼り付けられていて、まるでこの子から切り取った腕が飾られているみたいだ。&lt;/p&gt;
&lt;p&gt;上も、下も、向こうのラックもみんな人体模型と顔写真を組み合わせた同じような趣味の悪い展示ばかりで、何だか気持ちが悪い。腕、脚はまだ直視できるものの、眼球、肝臓、心臓ともなると、まるで本物の臓器みたいでちらりと見るのさえ恐ろしい。&lt;/p&gt;
&lt;p&gt;「ね、ねぇマミ……」&lt;/p&gt;
&lt;p&gt;「事務所とオペ室はこの奥だよ。ガサ入れ対策で二重底になってるの」&lt;/p&gt;
&lt;p&gt;そんなこと、どうでもよかった。今はただ、マミが私に隠していることが怖くて仕方なかった。人間をパーツに分けて切り売りするこの空間に、私はどんな意味を見い出せばいいのか。&lt;/p&gt;
&lt;p&gt;でも、何から聞けばいいんだろう。私が押し黙っていると、マミはホワイトボードを持ち出して一つ一つ事情を説明し始めた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;人間が必須元素として球体――それもできるだけ真球に近い――を必要としているのが分かったのは、彼女が東京に来てからだった。&lt;/p&gt;
&lt;p&gt;なぜなら、東京では当局による球体の収奪が続いていたから。ガラスやプラスチックの球体はもちろんのこと、ゼリーやチョコレートでさえも球体に近ければ禁止あるいは没収された。農・水・畜産物は当局の認可が下りたカット済み、あるいはキューブ型に育てられたものだけが出回っている。あの日、喫茶店で味の悪い合成肉が出てきたのも、その流通の煩雑さと厳しい基準のせいだったようだ。&lt;/p&gt;
&lt;p&gt;そんな環境の中でマミも徐々に体調を崩し、最終的に&lt;ruby&gt;&lt;rb&gt;球体欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;クーゲル・マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;という病気の存在を知ったらしい。&lt;ruby&gt;&lt;rb&gt;球体欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;クーゲル・マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;は頭痛、吐き気、ふるえ、倦怠感を初期症状とする慢性的な疾患で、何かのはずみで発作が起きると全身の細胞壁が壊れて患部が溶け落ちる&lt;sup id="fnref:toge"&gt;&lt;a class="footnote-ref" href="#fn:toge" title="細胞の棘化という。"&gt;4&lt;/a&gt;&lt;/sup&gt;のだという。&lt;/p&gt;
&lt;p&gt;球体の収奪は、都市全体を巻き込んだ人体実験のためとも、世界大戦に備えて秘密裏に政府が地下倉庫で保管するためとも言われているけど、本当の理由は分かっていない。&lt;/p&gt;
&lt;p&gt;症状を防ぐためにはやはり球体を身に着けるのが有効で、東京ではビー玉が保険外処方の一つとして認可されているらしい。しかし、これは根本的な解決策ではなく、結局は発作の恐怖と隣り合わせで生活し続けなければならないという。&lt;/p&gt;
&lt;p&gt;一度&lt;ruby&gt;&lt;rb&gt;欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;を起こした身体を根本的に完治させるためには、全身を人工臓器（あるいは&lt;ruby&gt;&lt;rb&gt;欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;のない臓器）と入れ替えるしかない。&lt;/p&gt;
&lt;p&gt;しかし、人工の臓器は身体に大きな負担がかかるため、高齢になればなるほど適応が難しくなる。そこに目を付けた業者が、比較的&lt;ruby&gt;&lt;rb&gt;欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が進んでいない若い女性から臓器を取り出し、移植を必要とする人たちに売り付け始めた。&lt;/p&gt;
&lt;p&gt;彼女らも&lt;ruby&gt;&lt;rb&gt;欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;の心配のない人工臓器に取り替えてもらえるので、違法ながら効率の良いビジネスとして成立しているという。&lt;/p&gt;
&lt;p&gt;となると、ここにある四肢や臓器は全て本物で、かつてこの顔写真の子に入っていたものだ。&lt;/p&gt;
&lt;p&gt;「お、おぇえっ……」&lt;/p&gt;
&lt;p&gt;そこまで理解すると、急に吐き気がこみ上げてきた。&lt;/p&gt;
&lt;p&gt;「私もね、顔写真と並べるのは趣味が悪いからやめてって言ってるよ？　でも、こっちのほうが売れるんだって」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「……お金儲けって、これのこと？」&lt;/p&gt;
&lt;p&gt;やっとの思いで振り絞った言葉は、とてもありきたりで、つまらなくて、くだらない。&lt;/p&gt;
&lt;p&gt;「うん。ここで少しずつ身体を&lt;ruby&gt;&lt;rb&gt;欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;に適応させてるんだ」&lt;/p&gt;
&lt;p&gt;&lt;ruby&gt;&lt;rb&gt;球体欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;クーゲル・マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;って、あんたの大切な身体を切り売りしなきゃいけないような病気なの？　だからって、こんなお店で売らなきゃいけないの？　どうして私に相談してくれなかったの？　続く言葉はいっぱいあったはずなのに、涙と一緒に口からぼろぼろとこぼれ落ちていった。&lt;/p&gt;
&lt;p&gt;「だって、こんなの普通のお店じゃ売れないでしょ。とはいえ、スフェールもここまでが限界なんだけどね」&lt;/p&gt;
&lt;p&gt;限界、と聞き返すと彼女はさらに説明を続けた。&lt;/p&gt;
&lt;p&gt;「うん。私たちは、次の場所に向かわないといけないの。かたい素材でできた、完全な球体になって」&lt;/p&gt;
&lt;p&gt;それから、マミは「次の場所」について語り始めた。&lt;/p&gt;
&lt;p&gt;脳をスキャンしてケイ素の球体に埋め込むことで、人格や記憶を保存できる上に、ほとんどの災害に耐えうる物理的な強さを得ることができる。人間としての不自由な身体を捨てて、誰にも害されない完全な球体に生まれ変わることができるという。&lt;/p&gt;
&lt;p&gt;もちろん、本来の脳とは思考スピードも異なるし、シナプスの応答曲線も微妙にずれているけど、数千年のスパンで見ると現状では最適な手段らしい。&lt;/p&gt;
&lt;p&gt;最終的には汎用ロボットボディに載せて自律的に動けるようになるし、別の肉体に戻したりできるようにもなると言われているらしいけど、それがいつになるかは分からない。&lt;/p&gt;
&lt;p&gt;とにかく、&lt;ruby&gt;&lt;rb&gt;欠乏&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;マンゲル&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;が進む前に固定しておけば、いつかは戻せるようになるはず、とだけ。&lt;/p&gt;
&lt;p&gt;「ミカには、完璧になった私を見てほしい。だからミカを東京に呼んだの」&lt;/p&gt;
&lt;p&gt;初めて東京に来た日に喫茶店で言われた言葉と同時に、背筋が震えるあの感覚を思い出す。彼女のいう「完璧」は、あの日から――いや、もっと前から球体のことを言っていたのだろう。&lt;/p&gt;
&lt;p&gt;でも、それはつまり、肉体を全て捨てるということで、彼女に宿っていたあらゆる記憶や思い出が捨てられてしまうかもしれないということだ。&lt;/p&gt;
&lt;p&gt;「じゃあ、脳も売るっていうの？」&lt;/p&gt;
&lt;p&gt;「当たり前じゃん。生ゴミにでもするの？」&lt;/p&gt;
&lt;p&gt;「違うわよ。脳を取り出したらあなたがあなたじゃなくなるんじゃないの？　それでいいの？」&lt;/p&gt;
&lt;p&gt;脳の構造を残したって、彼女がいうように彼女の人格や記憶を保持できるとは思えなかった。人間はそんなに単純なものじゃない。&lt;/p&gt;
&lt;p&gt;マミは確かにそうかもね、と笑った。&lt;/p&gt;
&lt;p&gt;「じゃあ、私の脳を誰かの身体に移してみる？　そうしたら、まだ私でいられるかな？」&lt;/p&gt;
&lt;p&gt;「何よ、それ……」&lt;/p&gt;
&lt;p&gt;「顔も違うし、声も変わって、味覚だってほとんどなくなるの……背中だって、感じなくなってたでしょ？」&lt;/p&gt;
&lt;p&gt;笑えない冗談を楽しそうに告げるマミに、私はえも言われぬ不気味さを感じていた。時折顔を覗かせる彼女の人間味のなさは、決して都会に揉まれたせいではなく、文字通り人の道を外れつつあるからだったのだ。&lt;/p&gt;
&lt;p&gt;「私はもうとっくに、あの時の私じゃないんだよ」&lt;/p&gt;
&lt;p&gt;「マミ、やめてよ。そんなマミ見たくないわ」&lt;/p&gt;
&lt;p&gt;困惑、不気味、恐怖……私がその場にうずくまっても、耳を塞いでも、マミが私に同情してくれることはない。&lt;/p&gt;
&lt;p&gt;「もう遅いよ。私の身体も限界なの」&lt;/p&gt;
&lt;p&gt;「……分かったわ。少しだけ、考えさせて」&lt;/p&gt;
&lt;p&gt;今の私には、身体を丸めて震えながらそう告げることしかできなかった。&lt;/p&gt;
&lt;h2 id="_4"&gt;公園で&lt;/h2&gt;
&lt;p&gt;夕日の公園で、ベンチに二人座っている。まるで告白のようなシチュエーションだけど、気分は全く晴れやかではなかった。&lt;/p&gt;
&lt;p&gt;「私、ミカに憧れてたんだよ。ずっと」&lt;/p&gt;
&lt;p&gt;「あんたに恨まれてるとばかり思ってた。バカみたいね」&lt;/p&gt;
&lt;p&gt;隣に座るマミが、やはり告白のような言葉を告げるけど、今はただ過去を振り返って懐かしんでいるだけだ。&lt;/p&gt;
&lt;p&gt;「言ったでしょ。完璧になった私を見てほしいって」&lt;/p&gt;
&lt;p&gt;「ねぇマミ。やっぱり――」&lt;/p&gt;
&lt;p&gt;「ミカ。今さらどうしようもないって、もうミカも分かってるでしょ？」&lt;/p&gt;
&lt;p&gt;マミが着ている白いワンピースは、検査着に着替えた後ですぐに捨てられるように、私が買って渡したものだ。もちろん、着てくれるのは嬉しいけど、それが別れを意味しているのは明らかだった。&lt;/p&gt;
&lt;p&gt;それでも、わざわざ手術の当日に呼び出されたのだから、もしかしたら気が変わって……なんて思うのは、私が浅ましいからなのか。&lt;/p&gt;
&lt;p&gt;「今日は、私のお葬式をしてほしいと思って呼んだの」&lt;/p&gt;
&lt;p&gt;「お葬式？　家族には連絡しなくていいの？」&lt;/p&gt;
&lt;p&gt;「だって、ミカは私の&lt;ruby&gt;&lt;rb&gt;家族&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;パートナー&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;でしょ？　それに、身体がないのにお葬式なんて、流石に親不孝だよ」&lt;/p&gt;
&lt;p&gt;確かにそうかもしれない。娘の身体がばらばらにされて趣味の悪い金持ちに売られているなんて、正直に伝えるほうが酷というものだ。私でさえも、まだ受け止めきれてはいないのだから。&lt;/p&gt;
&lt;p&gt;「お葬式って、見送る人たちのためにあるんだって」&lt;/p&gt;
&lt;p&gt;マミがぽつりとつぶやく。その言葉の意味が、今の私には痛いほどよく分かった。&lt;/p&gt;
&lt;p&gt;「だから、ここでお別れの言葉を言って。そうしないと、私がちゃんと帰ってこれないよ」&lt;/p&gt;
&lt;p&gt;お別れの言葉。さよなら、ありがとう、またね。&lt;/p&gt;
&lt;p&gt;私にとって、マミは何だったのだろう。友達、恋人、あるいは&lt;ruby&gt;&lt;rb&gt;家族&lt;/rb&gt;&lt;rp&gt;(&lt;/rp&gt;&lt;rt&gt;パートナー&lt;/rt&gt;&lt;rp&gt;)&lt;/rp&gt;&lt;/ruby&gt;。その全てだったような気がするし、そのどれでもなかったような気もする。今だって、どんな言葉でも決められない不思議な関係で結ばれているという確信があった。だから、今日ここで別れたって必ずまた会える――マミが完全な球体になろうとしていると知ってからは、自分にそう言い聞かせていてきた。&lt;/p&gt;
&lt;p&gt;ではマミにとって、私は何だったのだろう。肉体を捨ててまで完璧になろうとする彼女は、こんな不完全な肉体を抱えた不安定な私にどうして執着しているんだろう。彼女に取り残されて些末で矮小な世界で生きていく私のことを、どう思っているだろう。荒い息で私を抱いて離さないマミは、肉体と共に消え去ってしまうんだろうか。&lt;/p&gt;
&lt;p&gt;マミは私を遠くからずっと見つめているのに、私はマミの影さえも見つけられない。そんな想像が頭を支配して離れなかった。&lt;/p&gt;
&lt;p&gt;「ねぇ、マミ……行かないでよ……」&lt;/p&gt;
&lt;p&gt;ぼろぼろと涙を流す私を見て、マミは「ごめん。もう涙も出ないんだよね、私」と言って、ばつが悪そうに笑った。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ねぇ、いつかまた人間の身体に帰ってくるのよね？」&lt;/p&gt;
&lt;p&gt;「人間に戻せるかは、まだ分からないよ」&lt;/p&gt;
&lt;p&gt;たとえ新しい肉体を作って脳だけを戻しても、それはもう違う人間なのだと、暗に言っている気がした。&lt;/p&gt;
&lt;p&gt;でも、今日の葬儀だってただのお遊びで、ここで本当にお別れなんて思えなかった。だって、マミは生きていて、今だって確かに私の言葉を聞いているのだから。&lt;/p&gt;
&lt;p&gt;「だって、完全な球体があればあんたの魂を取り出せるんでしょう？　それを肉体に戻せば――」&lt;/p&gt;
&lt;p&gt;「魂と肉体が分離できるなんて、古典的な発想だね」&lt;/p&gt;
&lt;p&gt;私の言葉を遮って、ぴしゃりと言い放つ。不意打ちの反論に面食らっていると、マミはそのまま言葉を続けた。&lt;/p&gt;
&lt;p&gt;「私たちの肉体はずっとここにあるし、私たちの魂はこの肉体のためにある。取り出せるものじゃないよ」&lt;/p&gt;
&lt;p&gt;魂は肉体に張り付いているからもう取り出せない。そうなのかもしれない。でも、そう考えると、やっぱり人間のマミとはここでお別れなんじゃないか。&lt;/p&gt;
&lt;p&gt;アバター、魂、器……マミが動画配信の後に同じようなことを話していたのをふと思い出す。&lt;/p&gt;
&lt;p&gt;「じゃあ、やっぱりあんたは死ぬの？」&lt;/p&gt;
&lt;p&gt;「そうかもね。人間としては、死んじゃうのかも」&lt;/p&gt;
&lt;p&gt;マミはそう言いながら立ち上がって、その場でくるくると回ってみせる。それはまるで、天国から迎えが来たかのようだった。&lt;/p&gt;
&lt;p&gt;「でも、私は確かに私だから。それだけは覚えておいて」&lt;/p&gt;
&lt;p&gt;夕日を背にして、マミが私に笑いかける。それが彼女から聞いた最後の言葉になった。&lt;/p&gt;
&lt;h2 id="_5"&gt;ミカの家で&lt;/h2&gt;
&lt;p&gt;それから、まったく予定通り、一週間後の午前中にマミが石の塊になって帰ってきた。配達員のおじさんが「重いですよ」と手渡すしっかりとしたダンボール箱は、一見すると大玉のスイカでも入っていそうな立方体で、そこに十キログラムほどのずっしりとした重量感が収まっていた。&lt;/p&gt;
&lt;p&gt;私は今、マミの人生を胸に抱えているのだ。全身の力が抜けそうな妙な達成感と同時に、物言わぬ岩塊になった彼女に対する後悔の念がじわりと広がった。&lt;/p&gt;
&lt;p&gt;そっと床に箱を置く。厳重に貼り付けられた迷路みたいなガムテープを順番に剥がしていくと、丁寧に閉じられたフラップが現れた。&lt;/p&gt;
&lt;p&gt;箱を開けると、まず目に入ったのはクリアファイルに入った死亡診断書だ。&lt;/p&gt;
&lt;p&gt;かつての肉体はもうどこにもなくて、もうこの死亡を証明する紙切れだけが彼女の存在を証明している。死亡診断書には当たり障りのない死因と、適当な死亡時刻が記入されていた。&lt;/p&gt;
&lt;p&gt;マミは発泡スチロールのブロックで上下から固定されており、取り出すと完全な球体のスタイリッシュなフォルムが私を迎えた。&lt;/p&gt;
&lt;p&gt;黒くてつるつるした見た目の表面は全体が感覚器になっていて、肌全体で広い範囲の電波や振動を感じとることができるらしい。触ってみると、表面はかたくてひんやりとしている。試しにノックするように叩いてみると、中の微細な空洞を振動が駆け巡って水琴窟のような音が響いた。この刺激がマミにとって快いものなのかは分からないけど、たまに聴きたくなる音だ。&lt;/p&gt;
&lt;p&gt;箱の底には袋に入った細かい砂が敷き詰められていて、持ち上げると袋の中でさらさらと流れていくのが分かった。マニュアルに書いてあったマミの寝床だろう。たとえ球体の表面が傷ついても、この砂の上に置いておけば治癒するらしい。&lt;/p&gt;
&lt;p&gt;「あら、これって……」&lt;/p&gt;
&lt;p&gt;と、砂袋のもう一段下に、簡素なビニールで包装された布が入っていた。&lt;/p&gt;
&lt;p&gt;「――っ！」&lt;/p&gt;
&lt;p&gt;それがマミが最期に着ていた服だと気付いた時には、マミの肌にぽつぽつと大粒の涙が降り注いでいた。&lt;/p&gt;
&lt;p&gt;空っぽのワンピースは、彼女がもう人間の時間軸にいないことを物語っている。私と彼女の間には、もう埋めようもない隔絶が広がっていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;それから数日後、私はマミの死亡届を出した。彼女とのパートナーシップを結んでいたおかげで、相続の手続きまで滞りなく進められた。&lt;/p&gt;
&lt;p&gt;仕事を手伝うだけなのに、わざわざ届けを出す必要があるだろうかと思っていたけれど、最初からこのつもりだったと思えば合点がいく。役所での手続きなんてマミにとっては些末なことのはずだから、人間の姿を捨てられない私への気配りというところか。&lt;/p&gt;
&lt;p&gt;私は心のどこかで、マミが私を呼び出したのは、私の過去を責めるための壮大な復讐なのだと思っていた。しかし、マミはもうずっと私よりも先に行っていて、その姿を私に見てほしいと言ってくれた。だから、人間の時間軸や些末な過去の恨みなんてもうどうでもいいのだ。&lt;/p&gt;
&lt;p&gt;でも、残された私は？　私は人間の時間軸で、過去をくよくよ気にしながら生きていくしかないのだろうか。もし、そうだとしたら。&lt;/p&gt;
&lt;p&gt;「マミって、すごく変だわ。昔も、今も」&lt;/p&gt;
&lt;p&gt;彼女を少し転がしてから、砂を振りかけて何度か撫でてみる。すぐには応えてくれないけれど、確かにマミはこの大きな棺の中で生きていた。&lt;/p&gt;
&lt;p&gt;マミは完全な球体だなんて言っていたけど、できあがったボディは少しいびつだった。ボウリングのボールとして使う分には困らないだろうけど、少なくとも私には、彼女の上下がよく分かった。&lt;/p&gt;
&lt;p&gt;「ねぇ、マミ。私のお墓に、なってくれる？」&lt;/p&gt;
&lt;p&gt;……なんて、まだ気が早いかもね。&lt;/p&gt;
&lt;p&gt;私とマミの時間が、また少しずつ離れていく。壮大な時間を過ごすマミの横でこのまま老いていく私を、彼女はどう思うだろうか。&lt;/p&gt;
&lt;p&gt;それを考えるのは、もう少し後でも良さそうだ。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:palanquin"&gt;
&lt;p&gt;エスカレーターのステップに取り付けられた昇降用のかごを指す。&amp;#160;&lt;a class="footnote-backref" href="#fnref:palanquin" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:partnership"&gt;
&lt;p&gt;婚姻制度が漸次廃止されつつある中、次世代のライフスタイルに合わせて人間同士の多様な関係を公的に証明するための認定制度のこと。&amp;#160;&lt;a class="footnote-backref" href="#fnref:partnership" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:tai"&gt;
&lt;p&gt;国際原子時のこと。&amp;#160;&lt;a class="footnote-backref" href="#fnref:tai" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:toge"&gt;
&lt;p&gt;細胞の棘化という。&amp;#160;&lt;a class="footnote-backref" href="#fnref:toge" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>東洋のスマラカタ</title><link href="https://ama.ne.jp/post/smarakata/" rel="alternate"/><published>2020-03-13T16:04:00+09:00</published><updated>2020-03-13T16:04:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2020-03-13:/post/smarakata/</id><summary type="html">&lt;p&gt;99里&lt;/p&gt;</summary><content type="html">&lt;p&gt;刑部岬の展望台に到着したのは、十一時より少し前のことでした。車を降りると春みたいな夏みたいな曖昧な太陽と、冬みたいな春みたいな冷たい風が我々を出迎えます。大きなジープでくねくねの急勾配を進んだ先に広がるこの数キロメートルの断崖絶壁は、かつて「東洋のドーバー」と呼ばれていたようですが、全てが崩れ落ちた今となっては、たくさんの白い鉱船が停泊している港と、それらを囲む大きな灰色の防波堤しか見えません。&lt;/p&gt;
&lt;p&gt;防波堤は太平洋に向かってまっすぐ突き出していて、まるで太平洋をかき混ぜる大きなスターラーのようです。コンクリートの突堤の周りに置かれた真っ黒なテトラポッドに、きらきらと光るエメラルドの結晶が吸い込まれては砕かれていきます。&lt;/p&gt;
&lt;p&gt;春の海はエメラルドのしぶきを上げて、よく輝いていました。大きな結晶はガラスを潰したようなくしゃりという高い音で砕けて、小さな結晶はぷちぷちと弾けながら海の底へと沈んでいきます。沈んだエメラルドの砂が集まって海の底で大きな原石が生まれるというのは、もちろん私も教科書で読んだことがあります。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ここ飯岡は、世界的なエメラルドの名産地です。エメラルドの一大名産地にして、ほぼ唯一の海洋鉱山。石の鳴き声が聞こえる海。東洋のスマラカタ。高宮さんと私は、この緑の鉱石を長期間にわたって浴び続けたせいで数十年前に閉鎖されたこの刑部岬周辺の環境について、特別な調査を依頼されています。&lt;/p&gt;
&lt;p&gt;この辺りは千葉の端だからネオコロナも来ないだろう、と高宮さんが言います。そして、その自信を示すように防護マスクを外したので、私もそれに倣ってシー・ブロックだけを外しました。&lt;/p&gt;
&lt;p&gt;高宮さんは、暇な老人がエメラルド粒を集めてはグレース・ペーパーと交換しているらしいんだ、とも言っていました。換金できないような屑砂を物々交換する業者がいるらしいです。砂粒を無理やり固めて作る人工エメラルドは極めて人気がないのに、です。&lt;/p&gt;
&lt;p&gt;「仕方ないよ。たいてい、こういう海洋型の鉱脈だと大きなエメラルドはなかなか見つからないんだ。それに、原理上どうしてもインクルージョンが多くなる」&lt;/p&gt;
&lt;p&gt;「メイ・サイクルですか？」&lt;/p&gt;
&lt;p&gt;「そう。だから、本来海洋産のエメラルドは陸地を浸食するだけの厄介な存在なんだ。でも、ここは違う」&lt;/p&gt;
&lt;p&gt;コスクエス・イイオカ仮説ですね、とさらに相槌を打とうと思いましたが、これはさっき車で話したばかりなのでやめました。&lt;/p&gt;
&lt;p&gt;高宮さんは私をちらと見てから、そのまま話を続けます。&lt;/p&gt;
&lt;p&gt;「このサイクルは特異的だよ。このエメラルドがどこから来ていて、どうしてインクルージョンが少ないのか。あるいは、エメラルド粒ごとすっかり採掘してしまったら海はどうなるのか。まだ何も分かってないんだ」&lt;/p&gt;
&lt;p&gt;だから我々が調べるんだけどね、と笑う高宮さんの瞳にエメラルドが映り込みます。吸い込まれそうなほどの深い緑で満たされながら、ふと、ヒスイ海岸で見た色の方が好きだなと思いました。&lt;/p&gt;
&lt;p&gt;「同じインクルージョンの粒が集まって縞模様になるんだ。砂浜を見てごらん」&lt;/p&gt;
&lt;p&gt;高宮さんは据え付けの望遠鏡に手を置いて、覗くように言いました。私は踏み台に立ってハンドルを握り込みますが、望遠鏡は防波堤に向けられたまま、ギアがすっかり錆びついていてほとんど動きません。&lt;/p&gt;
&lt;p&gt;窓を覗き込むと、レンズはところどころ薄い緑色に着色しているものの、幸い透明なまま浜辺の景色を映し続けています。&lt;/p&gt;
&lt;p&gt;防波堤の曲がり角に滞留してできた砂浜はおおよそ明るい緑色で覆われていますが、波に平行な向きで暗い緑や青、あるいは逆に明るい白の縞模様が走っていました。その上に、時折結晶が爆ぜたような白い放射状の跡が残って、まるで打ち上げ花火を描いた砂絵のようです。&lt;/p&gt;
&lt;p&gt;「そうだね。ヒスイより軽いからより大きな結晶がたくさん砂浜に打ち上げられる。でも、遺骸はもとより、生体でさえどうも割れやすくっていけないんだ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;展望台を降りると、南側に古いチェックイン装置が立っていました。大きなガラスパネルに地図が彫り込まれていて、その横に立てられた金属柱にチップを近づけると、チェックイン情報がシェアされるようになっています。&lt;/p&gt;
&lt;p&gt;ただし、ここの装置は地図パネルを挟んで二つのチェックイン・センサーが並んでいて、二人で同時にチェックインする必要があるようです。きっと、ここが観光地だった頃に作られたカップル向けのギミックなのでしょう。&lt;/p&gt;
&lt;p&gt;「私はいいよ。そんな古いチップ持ってないし」&lt;/p&gt;
&lt;p&gt;ちょっと残念。装置の真ん中に立ち、一・五メートルほど離れた二つのセンサーに同時にチップを乗せると、通信エラーを示す赤いランプの点滅に少し遅れてオルゴールが流れ始めます。時折調子を外したメロディが、風に乗って海に、砂浜に、染み込んでいく気がしました。&lt;/p&gt;
&lt;p&gt;振り向くと、高宮さんが少し寂しそうな表情でぼんやりと立っています。私を見ていたのか、ずっと遠くの景色を見ていたのかは、もう分かりません。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>地下鉄ストア</title><link href="https://ama.ne.jp/post/metro/" rel="alternate"/><published>2019-12-09T12:26:00+09:00</published><updated>2019-12-09T12:26:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-12-09:/post/metro/</id><summary type="html">&lt;p&gt;16,777,216&lt;/p&gt;</summary><content type="html">&lt;p&gt;「ねぇＢ子さん。次の休日に地下鉄ストアに行きましょうよ。いいでしょう？」&lt;/p&gt;
&lt;p&gt;「お姉さま。帰ってきたらまずシャワーを浴びてくださいって、私いつも言っています」&lt;/p&gt;
&lt;p&gt;昼休みに聞いた「地下鉄ストア」の話は、本当だったらしい。軽薄な噂話に興味のない先輩が、冬の香りと汗の匂いをまとったままこんなことを言ってくるなんて、よっぽどのことだ。&lt;/p&gt;
&lt;p&gt;「あら、すみません。Ｃ子さんから楽しい話を聞いたものだから、つい」&lt;/p&gt;
&lt;p&gt;先輩がジャージを脱いでシャワールームに向かう。暖かい空気に蒸れた匂いが触れて集中できなくなってしまうから、やめてほしいのに。先輩はそういうことを分かってくれない。教科書をなぞる指を離して、消臭スプレーを部屋にひと回しした。&lt;/p&gt;
&lt;p&gt;ベッドに倒れ込むと、先輩がシャワーを浴びる音が聞こえてくる。しょわしょわとした不規則な音は、きっと髪を濡らしているのだろう。泡を流す時には、もうちょっと優しい音がするから。&lt;/p&gt;
&lt;p&gt;私が地下鉄ストアの存在を知ったのは、昼休みのたびに教室で私の席を占領しておしゃべりするのが大好きなクラスメートたちの会話を聞いたからだ。グループの中心、その親友っぽい子、いじられキャラの子、顔色を窺うばかりの二人……えーと、どっちがどっちだったっけ。私の席に座らないなら、どちらでもいいけど。&lt;/p&gt;
&lt;p&gt;校則を真面目に守る子って苦手だ。みんな同じ服を着ていたら、誰だか分からなくなってしまうから。髪型だって、髪の色だって揃える必要なんてない。もういっそ、ヒーロー戦隊みたいにみんな違う色になってくれればいいのに。赤、青、黄……まぁ、どうでもいいや。&lt;/p&gt;
&lt;p&gt;人間は何百万色も見分けることができるらしいし、ＮＵＣ個人番号の代わりにイメージカラーをプレゼントしたらおしゃれだと思う。普段の先輩は白すみれ、さっきの先輩はりんどう、あるいは桔梗みたいな色。たまに、かきつばた。あぁ、何色あっても足りないかもしれない。私だったらちゃんと見分けられるのに。&lt;/p&gt;
&lt;p&gt;不法占拠を追い出さずに話を聞いていると、どうやら地下鉄ストアは駅前にできた商店街のことらしい。ただし、商店街ごと地下に収められていて、地下鉄の通路か地上に新設された入り口から降りていく必要がある。若者向けと銘打っているだけあって、流行を押さえたファッション、雑貨、カフェを揃えつつ、立地の悪い区画にはマニア向けのお店も入っているという。&lt;/p&gt;
&lt;p&gt;「地下鉄ストア、Ｂ子さんも知っているでしょう？　学校中の噂になっているわ」&lt;/p&gt;
&lt;p&gt;板張りの天井を覆うように、シャワーを終えた先輩のほかほかとした香りが目の前に広がる。白すみれ色だ。先輩は私の返事を待たずに隣に座って、私が起き上がるのを待った。横から抱きつくように淡いクリーム色のルームウェアに触れると、もこもこの生地に包まれた薄い脂肪の身体が腕の中に感じられる。&lt;/p&gt;
&lt;p&gt;それに応えるように、先輩が私の手を握ってその余熱を私に渡した。&lt;/p&gt;
&lt;p&gt;「写真をもらったの。一緒に見てもらっていい？」&lt;/p&gt;
&lt;p&gt;先輩が白い封筒から何枚か写真を取り出す。一枚目はアーケードの入り口だという。丸く光るパネルが六つアーチに並んでいて、「地下鉄ストア」を一文字ずつはめ込んでいるのが分かる。アーチをくぐると、まずはファストフード。そこから、きつね色、緑、白のお店が続く。前の二つは服か雑貨、その奥は小さな本屋だろう。&lt;/p&gt;
&lt;p&gt;「あら、看板の文字が少し傾いているわ。ここよ」&lt;/p&gt;
&lt;p&gt;「えぇと、アーチの文字はこっちから赤、青、黄色です。道のブロックは、灰色、白……こっちはあずき色ですね」&lt;/p&gt;
&lt;p&gt;「ありがとう。赤と黄色って、なんだかよく似てるから嫌いだわ」&lt;/p&gt;
&lt;p&gt;それから、先輩は何枚か写真を見せてくれた。話を聞くと、メインストリートを歩きながら友達とショッピングを楽しむ、なんてことない風景だ。きっと先輩の友達たちなのだろう。でも、カメラに、あるいはカメラの持ち主に向けられた屈託のない笑顔を想像すると、一枚ずつびりびりと破りたくなってしまう。&lt;/p&gt;
&lt;p&gt;そんなことをしたら、先輩はどんな顔をするのかな。きっと、嫌というほどよく見えるだろう。&lt;/p&gt;
&lt;p&gt;「Ｂ子さん、いいでしょう？　行きましょうよ」&lt;/p&gt;
&lt;p&gt;「先輩。私、外出は嫌なんです。知っていますよね？」&lt;/p&gt;
&lt;p&gt;「えぇ、分かっていますとも。でも、私となら出かけてもいいって言ってくれたじゃありませんか」&lt;/p&gt;
&lt;p&gt;先輩が外に出たがるのはいつものことだ。先輩の友達は先輩を連れて外出するのに乗り気じゃないことも、先輩がそれを知っていて気を遣っていることも、最後は同室の私に頼むしかないのもいつものこと。そう、いつものことなのだ。だからこそ、私と先輩は少しずつすれ違っていく。&lt;/p&gt;
&lt;p&gt;どうして先輩はそんなに外出したがるんだろう。それも、新しい場所に行くだなんて。怖くて、難しくて、ちょっとしたこと足を踏み外しそうになる。そんなことをするくらいなら、ずっと部屋でじっとしていたほうがましだと思う。どこにも行かないで、ずっと私の隣にいてくれればいいのに。どうやっても思い出を共有できない私といるのは、やっぱりつまらないんだろうか。&lt;/p&gt;
&lt;p&gt;「期末考査だって近いんですから。先輩は頭がいいでしょうけど、私はもう少し勉強しなければいけないんです」&lt;/p&gt;
&lt;p&gt;真面目な先輩は、考査を理由にすれば何も言えなくなるのを知っていた。先輩は、私の成績を犠牲にしてまで私を連れ出そうとするような人ではないから。特待生の先輩が頭がいいのだって本当だし、私の勉強が遅れていることだってよく分かっているはずだ。&lt;/p&gt;
&lt;p&gt;先輩が立ち上がって私に向き直る。ずるくて卑怯な後輩に。淡い藤色だ。&lt;/p&gt;
&lt;p&gt;「……えぇ、分かりました。では、私一人で行きます」&lt;/p&gt;
&lt;p&gt;「先輩。聞き分けのないことを言わないでくださいよ。私がいなかったら、どうやって服を選ぶんですか？」&lt;/p&gt;
&lt;p&gt;先輩が一人で街に出るなんて、できるわけがない。私がいなかったら何もできないんだから。私がいなかったら電車に乗るのも苦労するし、まともな買い物だってできやしないんだ。私は先輩を見上げてじっと見つめた。そうしないと、卑怯な自分がばれてしまう気がしたから。&lt;/p&gt;
&lt;p&gt;「できるわよ。それくらいできるわ。Ｂ子さん、私のことお嫌いですか？　だから意地悪を？」&lt;/p&gt;
&lt;p&gt;「好きとか嫌いとか、そんなことを言ってるんじゃないんです。先輩だって外出は怖いでしょう？」&lt;/p&gt;
&lt;p&gt;「いいえ、好きですわ。あなたと街を歩くのが好きです。いい後輩ねって言われるもの」&lt;/p&gt;
&lt;p&gt;色が見えない先輩と、色しか見えない私。先輩は色彩のない線と形だけの世界を生きて、私は線も形もない色だけの世界を生きている。二人の世界を合わせれば一人前の世界になるんだよと、校医さんが口癖のように言っていた。でも、先輩と協力しあったって、知らない場所を歩く恐怖がなくなるわけじゃない。学園の外では誰も助けてくれないから。&lt;/p&gt;
&lt;p&gt;先輩だって、そのはずなのに。そうじゃなきゃいけないのに。&lt;/p&gt;
&lt;p&gt;「そういうの、私にはよく分からないです。先輩のほうが綺麗ですし。みんなはきっと、先輩と街を歩きたいんですよ。だから、もう――」&lt;/p&gt;
&lt;p&gt;もう……今、何を言おうとしたの？　私は思わず口を押さえるけれど、先輩は続く言葉を待っている。これは困惑か、あるいは期待か。&lt;/p&gt;
&lt;p&gt;どう誤魔化そうかと思っているうちに、紺色の沈黙がじわじわと足元から空気を埋めていって、口から、鼻から、息が詰まりそうになる。先輩が見えなくなる。どうしようもなかった。&lt;/p&gt;
&lt;p&gt;「――なんでもないです。先輩、髪やってあげます。それと……好きですから、ちゃんと」&lt;/p&gt;
&lt;p&gt;私の腕を振り払って、私の「好き」を引きちぎって、先輩がどこかに行ってしまうかもしれない。私のいない場所へ。もっと広い場所へ。先輩と出会ったときから、ぼんやりそう思っている。&lt;/p&gt;
&lt;p&gt;鈍色の海から籠の鳥が飛び立っていく。その前に、私は何ができるだろうか。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/4480"&gt;百合SS Advent Calendar 2019&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>甘い煙に誘われて 2</title><link href="https://ama.ne.jp/post/sweet-2/" rel="alternate"/><published>2019-05-07T00:45:00+09:00</published><updated>2019-05-07T00:45:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-05-07:/post/sweet-2/</id><summary type="html">&lt;p&gt;ポリ&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/flowline-flower/"&gt;flowline flower&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="nickname-2"&gt;nickname 2&lt;/h2&gt;
&lt;p&gt;まりっぺのことは、もう忘れたつもりでいた。突然私の前から姿を消した彼女のことを、いつまでも追い続けるわけにはいかなかったから。&lt;/p&gt;
&lt;p&gt;あのとき、まりっぺはどうして私にさよならを言わなかったんだろう。私のことを嫌いになったんだろうか。&lt;/p&gt;
&lt;p&gt;まりっぺは、最後に私をＣと呼んでくれた。私が赤沢さんをまりっぺと呼ぶように、私をＣと呼んでくれた。だから、半ば強引に参加させられたこの同窓会で、後ろから懐かしいあの声で「Ｃ」と呼ばれたとき、私の心は確かに四年前に戻っていた。&lt;/p&gt;
&lt;p&gt;「あら、Ｃ、久しぶりね」&lt;/p&gt;
&lt;p&gt;「……まりっぺ。どうしてここに？」&lt;/p&gt;
&lt;h2 id="secret-2"&gt;secret 2&lt;/h2&gt;
&lt;p&gt;まりっぺの部屋は、駅から十分ほどのアパートの三階にあった。振り向くと、細い道を挟んで背の低い一戸建てやアパートがひしめき合っていて、一歩踏み込むだけで誰かの生活とぶつかってしまうような狭苦しい気分になる。&lt;/p&gt;
&lt;p&gt;もう辺りはすっかり暗くなっていたけど、歩いていてもすれ違うのは残業帰りのサラリーマンくらいしかいない。窓から漏れる黄色い光と、睨むように冷たく光る街灯が、疲れた顔を上からぼんやりと照らしていた。&lt;/p&gt;
&lt;p&gt;この辺りはあんまり治安が良くないと聞いていたけど、今のところは閑静な住宅街に見える。&lt;/p&gt;
&lt;p&gt;「そう？　住んでみれば、そんなに悪くないわよ。狭いのは慣れてるし」&lt;/p&gt;
&lt;p&gt;「でも、暗くて危ないよ」&lt;/p&gt;
&lt;p&gt;街灯はそれなりに整備されているとはいえ、建物と建物の間を縫うような細い道はやっぱり見通しが悪い。この川沿いの住宅街にたどり着くまで何度か路地を通り抜けてきたけど、まりっぺみたいな若くて綺麗な女の子が通り抜けるには、少々おぼつかない箇所もあった。&lt;/p&gt;
&lt;p&gt;「あら、普段はちゃんと暗い道を避けて帰ってるわよ。でも今日は、特別だから」&lt;/p&gt;
&lt;p&gt;「特別？」&lt;/p&gt;
&lt;p&gt;「私のこと、守ってくれるんでしょ？　あの約束、もうおしまいなの？」&lt;/p&gt;
&lt;p&gt;えっ、と思わず聞き返してしまいそうになる。あの約束、と言われて思い出すのは高校二年の冬のことだ。あの時もまりっぺは、確かに「特別」と言っていた。まるで魔法の呪文みたいに。&lt;/p&gt;
&lt;p&gt;まりっぺが退学してから、私は彼女がくれた「特別」を忘れようとしていたけれど、どこかで同じくらい彼女に期待していた。私とまりっぺを結んでいた灰色の糸はもう切れてしまったはずなのに、彼女の呪文は私をずっと縛り付けている。もう一度まりっぺの「特別」になれるかもしれないと期待するだけで、もうそのことしか考えられなくなっていた。&lt;/p&gt;
&lt;p&gt;「……そんなこと、ないけど」&lt;/p&gt;
&lt;p&gt;だから今も、まりっぺがこうして遠い日の約束をちらつかせるだけで、私はそこから目が離せなくなってしまう。彼女と過ごした甘い日々がありありと思い出されて、何も言えなくなってしまうのだ。私が本当に彼女を守り抜けるかどうかには関係なく、ただ約束だけがそこにあった。&lt;/p&gt;
&lt;p&gt;でも、彼女の特別は私にはよく分からない。私だけの特別じゃなきゃ、何の意味もなかったから。私にくれた特別と、誰かにあげた特別が同じなら、それは特別なんかじゃなかった。&lt;/p&gt;
&lt;p&gt;「ねぇ、ちょっと」&lt;/p&gt;
&lt;p&gt;と、私が下を向いて黙ったままでいると、突然まりっぺが私の横から身体を押し込んでくる。ツインテールがふわりと私の顔をなぞって、ヘアミストに包まれたまりっぺの甘い香りが鼻をくすぐった。その優しい不意打ちに、私は思わず後ろへ一歩、二歩……そのよろめくような動きが滑稽に見えたらしく、後ろを向いたまりっぺが小さく笑った。ほのかに光が漏れる。&lt;/p&gt;
&lt;p&gt;「ま、まりっぺ、どうしたの？」&lt;/p&gt;
&lt;p&gt;「どうしたの、って……そこに立ってたら、ドアが開けられないわ」&lt;/p&gt;
&lt;p&gt;まりっぺは部屋の鍵を開けようとしていたらしい。いや、帰ってきたのだから当たり前だ。まりっぺが退屈そうにキーホルダーをもてあそんでいる横で、私は昔のことに夢中になってただ突っ立っていたらしい。慌ててまりっぺの横に収まるように滑り込むと、程なくして重たい音と共にドアが開いた。&lt;/p&gt;
&lt;p&gt;「少し散らかってるけど、適当にくつろいでちょうだい」&lt;/p&gt;
&lt;p&gt;靴を脱ぐ。アパートの古びた外見とは裏腹に、１Ｋの小さな部屋はまりっぺらしさで埋め尽くされていた。&lt;/p&gt;
&lt;p&gt;フローリングの上には左からベッド、ソファ、ガラステーブル、そして棚とその上に小さなテレビ。部屋の隅には大きな白いクローゼットと姿見が置かれていて、中にたくさんのドレスが入っていることが窺える。奥にはベランダに続く掃き出し窓があり、今はそこにジャガード調の柄がきらめくピンクの遮光カーテンが引かれていた。&lt;/p&gt;
&lt;p&gt;棚やベッドに置かれたたくさんのぬいぐるみのせいで、散らかったような印象も受けるけど、淡い色で統一された室内はまさにまりっぺのお城という感じだ。そんなお姫様の部屋の雰囲気を仕上げるように、ローズアロマがほんのり香っている。&lt;/p&gt;
&lt;p&gt;でも、その優しいフローラルの香りの後ろに、隠しきれないタバコの匂いがかすかに残っているのを私は見逃さなかった。床に、ソファに、壁紙に、かつてまりっぺがくゆらせていたような甘い匂いのものじゃなくて、ツンとした嫌な刺激臭を感じる。よく見ると、煙が染みているせいか、淡い花柄の壁紙の端が少しくすんで生活感を残していた。&lt;/p&gt;
&lt;p&gt;別に、まりっぺがどんなタバコを吸っていようと私は気にしない。むしろ、新しいまりっぺの匂いを歓迎してしまうだろう。問題は、それが本当に「まりっぺの匂い」なのかということだ。まりっぺに感じていた男の影の正体を、私は結局確かめられずにいたから。&lt;/p&gt;
&lt;p&gt;そして、まりっぺについてもう一つ気になることがあった。それは、彼女の舌にはまったピアスのことだ。食事の時から気になっていたけど、何度かその瞬間を見ているうちに確信した。笑うたびにちらりと覗く銀色の丸みは、かつてのまりっぺからは見つけられない明らかに異質な存在だった。ほのかに残るタバコの匂いが妙に頭に染み付いて、その穴さえも誰かが作った傷のように思えてくる。&lt;/p&gt;
&lt;p&gt;まりっぺに刻まれている誰かの跡が、可愛らしく飾られた部屋や身体の中に隠れているのが分かる。私がまりっぺの恋人だったなら、口をこじ開けてでも確かめることができただろう。でも、今の私には、それが本当にピアスなのかを尋ねることすらできなかった。その傷が誰かに隷属している証だとしたら、私はもう立ち直れないだろうから。&lt;/p&gt;
&lt;p&gt;「ソファ、座って。飲み物、コーディアルソーダでいい？」&lt;/p&gt;
&lt;p&gt;「う、うん」&lt;/p&gt;
&lt;p&gt;赤いチェックのトレイには、緑がかった琥珀色の涼やかなジュースで満たされたコップが二つ。からりと氷の音をさせながら、まりっぺは順番にコップを並べていった。&lt;/p&gt;
&lt;p&gt;準備を終えたまりっぺが私の隣に座って、のどを鳴らしてソーダを半分ほど流し込む。私もそれにつられてコップに口を付けてみると、優しい花の香りと共にほのかな甘酸っぱさが口いっぱいに広がった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;それから、私たちは色々なことを話した。高校のこと、大学のこと、専門学校のこと。新人モデルとして頑張っていること、就活がなかなか上手くいっていないこと。高校を去ったまりっぺは、東京で専門学校に通いながらモデルを目指しているらしい。&lt;/p&gt;
&lt;p&gt;一方の私は、適当な大学に進んで人生を先送りにしているうちに、夢も人生も考えられないまま社会に出なければならなくなってしまった。高校を出なくても夢を叶えられる人はいるなんて、あの頃の私に言ったら信じるだろうか。大学に行っても夢を見つけられない人がいるなんて、あの頃の私に言ったら信じるだろうか。&lt;/p&gt;
&lt;p&gt;まりっぺは、なぜかＢ子の話ばかり聞きたがった。私はＢ子のことなんてよく知らなかったし、思い出すのも嫌だったけど、まりっぺにとっては懐かしいクラスメートの一人でしかないのだろうか。あんな女のこと、どうして。&lt;/p&gt;
&lt;p&gt;しかし、自分が勝手にライバル視していたまりっぺを同窓会に呼びつけて、Ｂ子は何をしたかったんだろう。前からＢ子は嫌なやつだとは思っていたけど、まさか大人になってまでそんな子供みたいな意地悪をするとは思わなかった。&lt;/p&gt;
&lt;p&gt;と、部屋の前のコンクリートの廊下を歩く低い音が響く。ふと時計を見ると、もう日付が変わりかけていた。こんな夜遅くまで残業か、と思いながら声のトーンを落として通り過ぎるのを待っていると、まりっぺは逆にその足音に反応するように立ち上がった。&lt;/p&gt;
&lt;p&gt;「あら、来たみたい。少し待ってて」&lt;/p&gt;
&lt;p&gt;そう言って、まりっぺがチャイムも鳴らないうちに玄関に向かう。しかし、こんな時間に来るのは宅配便でも訪問販売でもない。私が「誰か来るの？」と尋ねると、まりっぺは振り向いてこう答えた。&lt;/p&gt;
&lt;p&gt;「Ａ子よ。後で紹介するわ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ずかすかと上がり込んできた女のことを、まりっぺは確かに「Ａ子」と呼んだ。&lt;/p&gt;
&lt;p&gt;「よっ、タバコ吸いに来たよ。……あれ？　誰、それ」&lt;/p&gt;
&lt;p&gt;「友達よ、友達。来るなら先に言ってよね」&lt;/p&gt;
&lt;p&gt;Ａ子は喫煙所にでも来たような口ぶりで、まりっぺの部屋に上がり込んだ。手に持っているのはフィルムに包まれた新品のタバコだろう。深紅のパッケージの表面にはホログラムが貼られていて、動くたびに蛍光灯を反射して安っぽい黄色のきらめきを放っている。&lt;/p&gt;
&lt;p&gt;Ａ子。その名前には聞き覚えがあった。いや、忘れるわけがない。まりっぺと私の大事な時間を邪魔したＡ子。私からまりっぺを奪っていったＡ子。私から「特別」を奪っていったＡ子。&lt;/p&gt;
&lt;p&gt;四年前のあの瞬間が、今目の前にまた現れようとしていた。&lt;/p&gt;
&lt;p&gt;本当なら、まりっぺにＡ子との関係をすぐにでも問いただしたかったけど、今はまだその時じゃない。Ａ子だって、思いがけない先客の私を見て何か思うところがあるだろう。もしかしたら、向こうから何か仕掛けてくるかもしれないし。&lt;/p&gt;
&lt;p&gt;Ａ子が靴を脱ぎながら、ピンクのスケートボードをドアに立てかける。まさか、ここまでスケボーで来たんだろうか。ロングの茶色いくせ毛を翻し、デニムと大きめのブルゾンで狭い道を駆け抜けるＡ子は、いかにもストリート系という感じがする。&lt;/p&gt;
&lt;p&gt;やっぱり、まりっぺにはそんな子似合わない。&lt;/p&gt;
&lt;p&gt;「ふーん。でも、マリーに友達なんていたっけ？」&lt;/p&gt;
&lt;p&gt;Ａ子の気だるげな視線が私に向く。品定めするようにゆっくりと私をなぞるその目は、敵とも味方ともつかない不思議な雰囲気を放っていた。&lt;/p&gt;
&lt;p&gt;「友達くらいいるわよ。Ｃ子、ほら、高校の友達」&lt;/p&gt;
&lt;p&gt;「Ｃ子、高校……あー……同窓会、結局行ったんだ。服、可愛いじゃん」&lt;/p&gt;
&lt;p&gt;「えぇ、行ったわ。悪い？」&lt;/p&gt;
&lt;p&gt;「別に悪くはないけどさ。どうせ、真面目ちゃんたちとは話が合わなかったでしょ？」&lt;/p&gt;
&lt;p&gt;Ａ子が壁に寄り掛かって、まりっぺにもゆっくりと舐めるような視線を送った。知らない私だからあんな視線を向けているのかと思ったけど、Ａ子にはそもそも人をじろじろと見る癖があるらしい。悪い癖だなと思う。&lt;/p&gt;
&lt;p&gt;同窓会の話は既に聞いていたようで、私のこともそこで会った同級生だとすぐに理解したらしい。それにしても、「真面目ちゃんたち」だなんて、随分知ったような口ぶりだ。まりっぺは、高校時代のことをＡ子にどう話したんだろうか。私のことや、タバコのこと……それに、Ｂ子のこととか。&lt;/p&gt;
&lt;p&gt;「そんなことないわよ。Ｃにも会えたし」&lt;/p&gt;
&lt;p&gt;「……あ、そ」&lt;/p&gt;
&lt;p&gt;Ａ子は短くそう答えると、もう話すことはないとでもいうように冷蔵庫の中を物色し始めた。しばらくすると酒がない、つまみがないと騒ぐＡ子の声がキッチンの奥から飛び出し、まりっぺもそれに応酬してごちゃごちゃとした口論を二、三繰り返す。&lt;/p&gt;
&lt;p&gt;「あのね、そんなに欲しいなら、勝手にコンビニで買ってきなさいよ！」&lt;/p&gt;
&lt;p&gt;「買う買う。途中にコンビニがあったらね」&lt;/p&gt;
&lt;p&gt;それからまりっぺは、順番に私とＡ子の紹介を始めた。&lt;/p&gt;
&lt;p&gt;私のことは高校時代の友達だと言っていたけど、タバコの話はしていなかった。一緒に帰るくらいの友達とか、なんとか。もしかして、Ａ子はタバコのことを知らないんだろうか。そうだとしたら、Ａ子はどうしてまりっぺが高校を辞めたと思っているんだろう。&lt;/p&gt;
&lt;p&gt;Ａ子。青山Ａ子は新宿で働くフリーターだという。この近くに住んでいるらしい。たまに来るのよ、とまりっぺは迷惑そうに言っていた。わざわざタバコを吸いにくるだけの仲なんて、まりっぺにも妙な友人がいるものだ。&lt;/p&gt;
&lt;p&gt;「二人とも、なんだか気が合いそうね」&lt;/p&gt;
&lt;p&gt;まりっぺは私とＡ子を交互に眺めながら、そう言って少し笑った。私には、どうにもそうは思えなかったけど。少なくとも、マリーだなんてダサいあだ名を使う女と一緒にはされたくなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;自己紹介もそこそこに、まりっぺは「着替えてくるわ」と告げてバスルームに消えていった。残されたのは、まりっぺの身体を濡らすしっとりとしたシャワーの音と、互いの名前くらいしか知らない他人同然の二人だけだ。&lt;/p&gt;
&lt;p&gt;「ソファ、座りますか？」&lt;/p&gt;
&lt;p&gt;「あー、別にいいよ。床の方が落ち着くし」&lt;/p&gt;
&lt;p&gt;ガラステーブルに頬杖をつくＡ子は、ラグの端にあぐらをかいて私に向かい合うように座っている。左手で画面をスクロールさせながらぼんやりとした視線でスマートフォンを眺めるその姿は、なぜか前に見たことがあるような気がした。&lt;/p&gt;
&lt;p&gt;沈黙が流れる。テレビを点けておけばよかった。&lt;/p&gt;
&lt;p&gt;Ａ子は私に興味がないらしい。でも、私はＡ子のことをもっと知る必要があるのだ。Ａ子にとってはＳＮＳでもチェックしていれば過ぎ去るような暇な時間かもしれないけど、私にとっては彼女のことを見定めるための重要な時間だった。&lt;/p&gt;
&lt;p&gt;手持ち無沙汰そうにもてあそぶタバコの箱が、いちいち光を反射してきらめいている。しばらくすると、Ａ子はスマートフォンを捨てるように床に置き、タバコのフィルムに手を掛けた。&lt;/p&gt;
&lt;p&gt;ぱちぱちと爪でフィルムを擦る音を響かせているところを見ると、どうやら開封テープの加工が甘かったらしい。Ａ子は何度か包装をぐるりと見回した後、私の名前を呼んで枕元のペン立てを指差した。&lt;/p&gt;
&lt;p&gt;「開かねーな。Ｃ子、そこにかみそり置いてない？」&lt;/p&gt;
&lt;p&gt;「あ、はい……これですかね」&lt;/p&gt;
&lt;p&gt;ペン立てにかみそりがあるのか、と思いながら赤紫の薄い柄を引き出すと、乳白色のカバーに包まれた刃が現れる。Ａ子は短く「ん」と答えると、受け取ったかみそりのカバーを外し、慣れた手つきでフィルムを切り取った。&lt;/p&gt;
&lt;p&gt;Ａ子はかみそりにカバーを戻し、そのままテーブルに置こうとする。すさかず私が「よかったら戻しますよ」と呼びかけると、Ａ子はそれに応えて柄を握ったまま私にかみそりを差し出した。その不躾な刃を受け取りながら、視線を上に向けたＡ子と目が合うタイミングを狙って、私は本題を切り出す。&lt;/p&gt;
&lt;p&gt;「あの……青山さんって、まりっぺの友達なんですか？」&lt;/p&gt;
&lt;p&gt;「マリーの友達？　それ、どういう意味？」&lt;/p&gt;
&lt;p&gt;質問に食いついた。フィルムを剥がす手が止まる。&lt;/p&gt;
&lt;p&gt;私を見上げるＡ子の目は、突然の質問を受けて少しずつ怪訝な目つきに変わっていった。一瞬、シャワーの音が止まって、二人の間の沈黙がぐっと強くなる。&lt;/p&gt;
&lt;p&gt;確かに、Ａ子にとっては意味の分からない質問だろう。お前は友達なのか、なんて。でも私は、四年前のまりっぺが電話口で見せたあの笑顔の正体を明らかにしたかった。四年前も、そして今もまりっぺの隣にいるこの不良じみた女が、どうして「特別」なのかを確かめたかった。&lt;/p&gt;
&lt;p&gt;「だから、まりっぺとはどういう関係なんですか？　まりっぺとは、いつ、どこで知り合ったんですか？」&lt;/p&gt;
&lt;p&gt;「なにそれ。取り調べかなにか？　そんなに気になるなら、マリーに訊けばいいじゃん」&lt;/p&gt;
&lt;p&gt;「はぐらかさないでくださいよ。言えないような関係なんですか？」&lt;/p&gt;
&lt;p&gt;私の煽るような問いかけに、Ａ子は眉をぴくりと動かして応えた。&lt;/p&gt;
&lt;p&gt;「はぁ？　そんなわけないじゃん。夜中にいきなり尋ねても怒られないくらいの関係だよ。それ以上でも、それ以下でもない」&lt;/p&gt;
&lt;p&gt;流石に私の追及がしつこいと感じたらしく、語調が少しずつ荒くなる。意図の見えない質問に苛立っているのが分かった。それからＡ子は、お前の好きにはさせないとでも言うように剥がれかけたフィルムをぐしゃぐしゃに破り捨て、ひったくるようにタバコを一本引っ張り出した。&lt;/p&gt;
&lt;p&gt;威嚇するような荒い仕草に飲まれそうになるけれど、ここで引き下がるわけにはいかない。&lt;/p&gt;
&lt;p&gt;「で、なんなのその質問？　意味分かんないんだけど」&lt;/p&gt;
&lt;p&gt;「あの、友達なら友達って言ってくださいよ。もう一回訊きます。まりっぺとは、どういう関係なんですか？」&lt;/p&gt;
&lt;p&gt;全く同じ質問に、Ａ子がとうとう大きな溜息を吐く。苛立った彼女の表情が徐々に怒りを帯びていった。射るような目つきは荒っぽくて、繊細さの欠片も感じられなかったけど、その力強さはまりっぺと少しだけ似ていた。&lt;/p&gt;
&lt;p&gt;「だから、なんだっていいじゃん。友達かどうかがそんなに気になるのかよ」&lt;/p&gt;
&lt;p&gt;「気になりますよ。だって、私は――」&lt;/p&gt;
&lt;p&gt;「……じゃあさ、恋人だったらどうすんの？」&lt;/p&gt;
&lt;p&gt;恋人？　私の言葉を遮るように、Ａ子がぽつりと呟いた。まるで取り留めのない雑談のように投げかけられた言葉が、私の心に大きな波紋を広げていく。&lt;/p&gt;
&lt;p&gt;Ａ子はすこぶる退屈だとでも言うように、指に持ったタバコをテーブルに放り投げて背伸びするように身体をのけぞらせた。そのゆったりとした動きを見ていると、余裕がないのは私だけのように思えてくる。&lt;/p&gt;
&lt;p&gt;つまり、まるでこの女が本当にまりっぺの恋人で、その事実を知らない私だけが一人で大騒ぎしているような……そんなわけないのに。そんな――&lt;/p&gt;
&lt;p&gt;「――こ、恋人なんて、そんなわけない！」&lt;/p&gt;
&lt;p&gt;駆け巡る疑念に耐えきれずに、私は思わず立ち上がっていた。彼女の罠にハマったのだと気付いた時にはもう遅い。私を見上げて鼻で笑うＡ子を見て、私は負けた、と思った。もう目の前には、冷静なＡ子と感情的な私が向き合う滑稽な構図ができあがっていた。&lt;/p&gt;
&lt;p&gt;「なんでだよ。Ｃ子だって、マリーが好きでここに来たんだろ？　私たちが付き合ってたっておかしくないじゃん」&lt;/p&gt;
&lt;p&gt;まるで私の気持ちを知っているかのような物言いだ。そうやって、言い当てるふりをして動揺を誘っているのは分かっていたけど、一度崩れた態勢を整えるのは難しい。私の中の疑心暗鬼じみた想像が広がって、少しずつＡ子のペースに巻き込まれているのが分かった。&lt;/p&gt;
&lt;p&gt;「おかしいですよ！　だって、そんなの……付き合ってるんですか？　好き、なんですか？　まりっぺのこと」&lt;/p&gt;
&lt;p&gt;「好きだよ。好きだけど、だからなんなの？」&lt;/p&gt;
&lt;p&gt;付き合ってるのか。そんなことを訊いたって、答えてくれるわけがないのは分かっていた。&lt;/p&gt;
&lt;p&gt;友達だとか付き合ってないとか、Ａ子はまりっぺとの関係を言い切るつもりはないらしい。なぜかは分からないけど、Ａ子はそうやって何も知らない私をもてあそんでいるようにも思える。本当に性格の悪いやつだ。&lt;/p&gt;
&lt;p&gt;しかし、私にもまた切り札があった。&lt;/p&gt;
&lt;p&gt;「でも……無理ですよ」&lt;/p&gt;
&lt;p&gt;「無理？　だから、なんでだよ？」&lt;/p&gt;
&lt;p&gt;「だって、まりっぺは……」&lt;/p&gt;
&lt;p&gt;だって、まりっぺは高校時代に男と付き合っていたんだから。タバコも灰皿も与えて、まりっぺに協力していたやつがいる。いや、今も付き合っているのかもしれない。まりっぺはたぶんその男と仲が良くて、だから、まりっぺはたぶん女の人とは――私たちとは――付き合わない。&lt;/p&gt;
&lt;p&gt;はっきりそう言ってしまったら、余裕そうなＡ子も流石にショックを受けるだろう。だって、彼女は携帯灰皿のことを知らないはずだから。敵ながら心配になったけど、ここまで来たらもう言うしかない。&lt;/p&gt;
&lt;p&gt;「だってまりっぺは、高校時代に男の人と付き合ってたんですから。女の人にそういう興味はないはずです」&lt;/p&gt;
&lt;p&gt;私は落ち着いて、動揺しているのをこれ以上悟られないようにそう告げた。これでもう、Ａ子の余裕は崩せたはずだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「高校時代に、男……？　あぁ、もしかして……これのこと？」&lt;/p&gt;
&lt;p&gt;「えっ……そ、それは……」&lt;/p&gt;
&lt;p&gt;Ａ子が掲げたのは、まりっぺが持っていたのと同じ形の、茶色い革の携帯灰皿だった。素材や縫製から見ても、同じブランドの色違いだろう。面食らった表情を隠せない私に、Ａ子はさらに畳み掛けた。&lt;/p&gt;
&lt;p&gt;「びっくりした？　確かにマリーはこれの黒を持ってるけどさ、あれは私があげたんだよ」&lt;/p&gt;
&lt;p&gt;「え、あ……で、でも……」&lt;/p&gt;
&lt;p&gt;息が詰まる。声が上手く出なかった。まるで追い詰められた真犯人みたいに。&lt;/p&gt;
&lt;p&gt;でも、既製品の灰皿なんて同じものがいくらでも手に入るんだから、これがすぐに決定的な証拠になるわけじゃない。偶然だってありえるし……自分の中でそんな言い訳をぐるぐると巡らせていたせいで、私の「切り札」がもはや切り札でないことに気付くまで、少し時間がかかった。&lt;/p&gt;
&lt;p&gt;「マリーがダサい携帯灰皿を持ってるから、彼氏がいるって思ったの？　残念だけど、あいつにタバコを覚えさせたのは私、その携帯灰皿の彼氏は、私なんだよ」&lt;/p&gt;
&lt;p&gt;けらけらと楽しそうに笑うＡ子。それは勝利宣言だった。随分と無骨な携帯灰皿だから、センスのない男がプレゼントしたものとばかり思っていたけど、まさかセンスのない &lt;em&gt;女&lt;/em&gt; だったなんて！&lt;/p&gt;
&lt;p&gt;「そっか、タバコの見張り役って、Ｃ子のことだったのか。マリーが吸ってたタバコって、これだろ？」&lt;/p&gt;
&lt;p&gt;そう言うとＡ子はテレビの横のコスメ収納を漁り始め、その引き出しの二段目からストロベリーが描かれた白い箱を取り出した。箱はもう開封されていて、開けると既に何本か吸われているのが分かる。Ａ子はその中から一本を取り出して、私に手渡した。&lt;/p&gt;
&lt;p&gt;葉の間にほのかに香る甘酸っぱい香り。普通のタバコよりもきゅっと細く締まった芯。確かにこれは、私がまりっぺの「非行」に付き合っていた頃に吸っていたものだ。まりっぺはこの箱から何本か取り上げて、薔薇の刺繍を縫い付けた水色のケースに入れていたのだ。&lt;/p&gt;
&lt;p&gt;「ストロベリーの香りがする輸入タバコだよ。ウチで特別に仕入れてる」&lt;/p&gt;
&lt;p&gt;Ａ子がストロベリーの箱からもう一本引き出した。火を着けて、吸って、息を吐く。テーブルからソファに広がっていくストロベリーの香りは、確かにまりっぺが私にくれたあの香りだ。私の中にじわじわと染み込む煙の味を感じながら、まりっぺが「特別」なタバコだと言っていたのを思い出していた。&lt;/p&gt;
&lt;p&gt;遠い目をしたまりっぺが、上を向いてふわりと煙を吐き出す。あの光景が、眼前によみがえってくる気がした。&lt;/p&gt;
&lt;p&gt;「あっはは、まっず！　やっぱ甘いのは不味いわ。笑えてくるほど不味い」&lt;/p&gt;
&lt;p&gt;と、まるで目の前にまりっぺがいるようなその不思議な感覚は、Ａ子の下品な笑い声で簡単に破られる。でもたまに吸いたくなるんだよね、なんて機嫌よさそうに笑いかけるＡ子は、そんな私の落胆を察するつもりもない。部屋を何度もまりっぺの香りでいっぱいにして、私の自傷じみた妄想だけをいたずらに煽っていった。&lt;/p&gt;
&lt;p&gt;Ａ子の煙に染められたまりっぺ。まりっぺの服が、肌が、目が、少しずつくすんでいく想像が頭を離れない。&lt;/p&gt;
&lt;p&gt;「も、もしかして――」&lt;/p&gt;
&lt;p&gt;「ちょっと、Ａ！　部屋では吸わないでって言ってるでしょ……って、なんでそれ吸ってるのよ」&lt;/p&gt;
&lt;p&gt;もしかして、まりっぺの舌ピアスもＡ子が開けたの？　と尋ねるより先に、頭にタオルを巻いたバスローブ姿のまりっぺが私たちの会話を遮った。&lt;/p&gt;
&lt;p&gt;お風呂上がりの上気した肌に、むわりとした熱気がまとわりついて部屋に入ってくる。しっとりとしたシャンプーの香りが、ストロベリーの煙と混ざりあって、とろけるような甘酸っぱい香りに変わった。&lt;/p&gt;
&lt;p&gt;「あー、ごめんごめん。Ｃ子が気になるって言うからさ」&lt;/p&gt;
&lt;p&gt;「そ。なら、まぁいいけど。部屋ではやめてよね」&lt;/p&gt;
&lt;p&gt;Ａ子の適当な言い訳に、まりっぺはいったんその怒りを収めてみせた。そして、Ａ子に聞こえよがしの小声で私に告げる。&lt;/p&gt;
&lt;p&gt;「Ｃ、ごめんね。部屋がタバコ臭いの、この子のせいだから」&lt;/p&gt;
&lt;p&gt;そうだろうな、と思う。男の影の正体は、もうＡ子なのだと分かってしまったのだから。壁紙の隅に染み込んだ、消しても消しても消えないＡ子の匂いを、まりっぺはどう思っているんだろう。私の前ではこうして気にするそぶりを見せるけど、もしかしたら、本当は。&lt;/p&gt;
&lt;p&gt;それから、まりっぺはいったん収めた怒りをまた引き出すように、Ａ子に向き直った。&lt;/p&gt;
&lt;p&gt;「ほらほら、外で吸ってよね！　ここ、私の部屋なんだから」&lt;/p&gt;
&lt;h2 id="rose-1"&gt;rose 1&lt;/h2&gt;
&lt;p&gt;Ａ子は不満げにぶつぶつ言いながらも、テーブルに放ってあった自分のタバコを取り上げながら立ち上がる。まりっぺの言うことはちゃんと聞くんだな、と思いながら、私もそれに倣って外に向かうことにした。まだ訊くことがあったから。&lt;/p&gt;
&lt;p&gt;ベランダへ続く窓を開けると、部屋の中にこもった湿った雰囲気が冷たい空気と入れ変わるようにカーテンの外に出ていく。五月とはいえ、まだ夜は冷える。私の足元を冷ややかな風が駆け抜けて、口論で熱くなった頭が少しずつ落ち着いていくのを感じていた。&lt;/p&gt;
&lt;p&gt;と同時に、まりっぺに感じていた男の影が、私が彼氏だと思っていたやつが、本当はＡ子だという事実が少しずつ私の中に広がっていく。苦いような、酸っぱいようなその感覚は、タバコの煙のように私に染み付いて離れない。&lt;/p&gt;
&lt;p&gt;「早く閉めてよね。風邪引いちゃうから」&lt;/p&gt;
&lt;p&gt;「はいはい……あ、Ｃ子、電気消してくれよ」&lt;/p&gt;
&lt;p&gt;Ａ子がベランダに一歩踏み入れた姿勢のままで振り向いた。その馴れ馴れしい指図にムッとしたが、まりっぺがいる手前で意地悪なことも言えまい。作戦とはいえさっきかみそりを取ってやったしな、と思いながら、テーブルの上のリモコンを何度か押した。&lt;/p&gt;
&lt;p&gt;部屋の電気が消えて、カーテンの隙間から外の仄かな光が覗く。カーテンを引っ張ってくぐるように窓を抜けると同時に、都会のささやかな夜空の自然光と、向かい合う窓から漏れる少しばかりの人工光が私を迎えた。&lt;/p&gt;
&lt;p&gt;私がベランダに出たのを確かめると、Ａ子は後ろ手でからからと窓を閉める。そして、室外機の上の暗がりから何かを取り上げて、バランス良く手すりに置いた。なんだろうと思って顔を近づけると、くすんだ灰の匂いがする。&lt;/p&gt;
&lt;p&gt;「部屋に灰皿を置くのはダサいんだってさ。だから、部屋ではこれ使うの」&lt;/p&gt;
&lt;p&gt;Ａ子は「これ」と言って、さっきの茶色の携帯灰皿を星空に重ねるように見せつけてから、そのままポケットにしまいこんだ。&lt;/p&gt;
&lt;p&gt;準備が済んだＡ子は窓に寄りかかると、また赤い蛍を光らせて一服し始めた。すぐにそこら中がきついタバコの匂いで満たされていく。弱々しい星の光が煙に隠されて、灰色の空だけが残った。まりっぺの湯上がりの甘酸っぱい匂いも、少しずつ記憶の奥に追いやられていくのが分かる。&lt;/p&gt;
&lt;p&gt;私の中のまりっぺが、少しずつ壊れていく。&lt;/p&gt;
&lt;p&gt;だって、まりっぺは優しすぎるのだ。私だったら、こんな鼻の壊れた友人は作らないだろうから。身の程知らずに上から目線で絡んでくるやつだって、真っ先に絶交するだろうから。&lt;/p&gt;
&lt;p&gt;「Ｃ子は、タバコ吸わないの？」&lt;/p&gt;
&lt;p&gt;「はい、吸わないですね。匂いが気になるので」&lt;/p&gt;
&lt;p&gt;そう皮肉で返したけど、Ａ子は「別に気にする必要なんてなくない？」と、伝わっているのか無視しているのか分からないような返事で私をいなした。&lt;/p&gt;
&lt;p&gt;「じゃあ、これ。やるよ」&lt;/p&gt;
&lt;p&gt;Ａ子が取り出したのは、紫色をした丸い鉛筆のような細長い筒だった。手に取ると少し重たくて、表面のさらさらとしたラベル越しに金属の冷たい感じが伝わってくる。これは何かと尋ねると、Ａ子は電子タバコだと言った。&lt;/p&gt;
&lt;p&gt;「えっと、だから私、タバコはちょっと……」&lt;/p&gt;
&lt;p&gt;「何も入ってないって。日本のだから。風味だけ」&lt;/p&gt;
&lt;p&gt;Ａ子はほら、と言ってその「電子タバコ」を目の前で吸ってみせた。Ａ子が吸うのに合わせて先端が赤く光って、ふっと消える。&lt;/p&gt;
&lt;p&gt;今度はＡ子が吐くのに合わせて甘ったるい香りが駆け抜けて、それから元のタバコの匂いで茶色く塗りつぶされていく。喫煙者が吸ってみせたって「何も入ってない」証明にはならないだろうけど、少なくとも今すぐ倒れるような危険な成分は入っていないようだ。&lt;/p&gt;
&lt;p&gt;「これ、どう吸うんですか？」&lt;/p&gt;
&lt;p&gt;「どう、って……吸うの、穴から。口で」&lt;/p&gt;
&lt;p&gt;暗くて分からなかったけど、よく見ると十五センチほどの筒の片方に小さな穴が開いている。これが吸い口らしい。妙な感じだ。&lt;/p&gt;
&lt;p&gt;ふーん、と思いながら吸い口をくわえて軽く息を吸い込むと、なるほど、バラの合成香料のような安っぽい甘さが口の中に広がっていく。少し煙たいけど、Ａ子の吸うタバコのような刺激臭はない。さらに吸うと、先端がゆらゆらと赤く光っているのが分かった。&lt;/p&gt;
&lt;p&gt;もやもやとした感じが気持ちいい。なるほど、タバコみたいに光るのかと思いながら先端を見つめているうちに、何だか気分が良くなってくる。&lt;/p&gt;
&lt;p&gt;さらに強く肺まで吸い込むうちに、いきなり何かがパチッと弾ける音がした。&lt;/p&gt;
&lt;p&gt;「ぐ、ぐはっ……げほっ！　げほ、げほっ……び、びっくりした……」&lt;/p&gt;
&lt;p&gt;「慌てて吸うなって。中学生かよ」&lt;/p&gt;
&lt;p&gt;驚いた拍子に煙が変なところに入り込んで、次の瞬間私は大きく咳き込んでいた。あんまり強く吸うと、中で蒸気が弾けるのだという。そんなの聞いてない。&lt;/p&gt;
&lt;p&gt;「でも、いい匂いだろ？　タバコを吸わないお子様にぴったりだよ」&lt;/p&gt;
&lt;p&gt;「う、うん……」&lt;/p&gt;
&lt;p&gt;急に咳き込んだのが恥ずかしくて、何だか気が抜けてしまった。私は電子タバコも上手に吸えないのか、と落胆とも諦めともつかない感情がぼんやりと頭を支配する。Ａ子が私に皮肉を言ったのは分かっていたけど、なぜかやり返す気にはなれなかった。&lt;/p&gt;
&lt;p&gt;優しく煙を吸い込むと、また甘ったるい香りが抜けていく。その感覚を確かめるように、私は何度も息を吸った。&lt;/p&gt;
&lt;p&gt;舌ピアスのことは、訊かなくてももうなんとなく分かっていた。まりっぺにタバコを教えたのもＡ子、ピアスを開けたのもきっとＡ子なのだ。まりっぺはＡ子のもので、私が入り込むだけの隙間はもうなかったのだ。&lt;/p&gt;
&lt;p&gt;私はまりっぺの隣にいる間、まりっぺに何かを残せただろうか。私がいなくなってからもずっと残るような、何かを。&lt;/p&gt;
&lt;p&gt;「ねぇ、Ａ子」&lt;/p&gt;
&lt;p&gt;「ん？　どうした、急に」&lt;/p&gt;
&lt;p&gt;「まりっぺのこと、よろしくお願いね」&lt;/p&gt;
&lt;p&gt;まるで死期を悟ったかのようなせりふを聞いて、遠く夜空を見つめながらタバコをふかしていたＡ子が顔をこちらに向ける。しかし、別に私の余命を気にしているわけでもなく、ちらりと私の顔を見るだけで眉一つ動かさない。&lt;/p&gt;
&lt;p&gt;「ふーん、そういう目もできるんだ」&lt;/p&gt;
&lt;p&gt;友達を売るような真面目ちゃんのくせにさ。Ａ子はそう言って、ベランダから去っていった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Ａ子はひとしきりタバコを吸って満足したらしく、私がベランダから戻ってきた時にはもう部屋からいなくなっていた。&lt;/p&gt;
&lt;p&gt;「おかえりなさい、Ｃ」&lt;/p&gt;
&lt;p&gt;「あ……う、うん。ただいま」&lt;/p&gt;
&lt;p&gt;まりっぺはもう、バスローブからレースをあしらった柔らかそうなボアのパジャマに着替え終わっていた。姿見の前で全身がピンク色のもこもこで包まれた自分の姿を確認しながら、時折裾をくいと少し引っ張ってフリルの形を整えている。&lt;/p&gt;
&lt;p&gt;可愛いなと思うと同時に、まりっぺはもうＡ子のものなのか、とぼんやり考えていた。&lt;/p&gt;
&lt;p&gt;「Ａ、あなたに挨拶もしないまま帰っちゃったわ。あら、それ……」&lt;/p&gt;
&lt;p&gt;そう言いながら、まりっぺが私の右手を指差す。その先に持っているのは、さっきＡ子がくれたローズフレーバーの電子タバコだ。返そうと思っていたのに、まるで嵐のようなやつだ。&lt;/p&gt;
&lt;p&gt;まりっぺは一瞬怪訝な表情をしてから、すぐに嬉しそうに笑った。&lt;/p&gt;
&lt;p&gt;「Ａったら、よっぽどＣのことが気に入ったのね」&lt;/p&gt;
&lt;p&gt;Ａ子が私のことを気に入った？　そんなふうには見えなかったけど。少なくとも私は仲良くするつもりはなかったし、Ａ子だってそれには気付いていただろうに。&lt;/p&gt;
&lt;p&gt;そんなことを考えながらソファに掛けると、まりっぺも私の隣に座った。&lt;/p&gt;
&lt;p&gt;「じゃあ今日は、私もローズのタバコにしようかしら」&lt;/p&gt;
&lt;p&gt;そう言うと、まりっぺは枕元から細長いピンクの箱を取り出した。そして、濃いピンク色の紙で巻かれたおしゃれなタバコを引き出す。ホログラムが巻かれた箱のきらめきはＡ子のと似ているけど、心なしかより上品な輝きに見える。&lt;/p&gt;
&lt;p&gt;部屋で吸ってもいいのと尋ねると、今日は特別よ、と言って笑った。&lt;/p&gt;
&lt;p&gt;「Ａ、たまに来るのよ。寂しいのよね、きっと」&lt;/p&gt;
&lt;p&gt;まりっぺの口元からふわり、と濃厚なローズの香りが漂う。でもその後ろには、確かにタバコの香りが潜んでいた。その甘い香りとは正反対のツンとした刺激を意識すると、嫌でもＡ子のことを思い出してしまう。&lt;/p&gt;
&lt;p&gt;いい匂いのはずなのに、その後ろに隠れる影ばかりが気になっていた。&lt;/p&gt;
&lt;p&gt;「ねぇ、Ｃ。私が女の子と付き合ってて、どう思った？」&lt;/p&gt;
&lt;p&gt;その言葉をすぐに理解できたのは、その現実に薄々勘付いていたからだろう。きゅっと胸が締め付けられるような冷ややかな悲しみと一緒に、やっぱりそうなのか、という諦めが広がっていく。覚悟はできていたはずだけど、まりっぺの口から直接聞くとやっぱり苦しい。&lt;/p&gt;
&lt;p&gt;「ど、どう……って？」&lt;/p&gt;
&lt;p&gt;「だって、私のこと好きなんでしょう？」&lt;/p&gt;
&lt;p&gt;でも、次の言葉は予想もつかないものだった。まりっぺは「違う？」と尋ねながら、私の顔を覗き込む。&lt;/p&gt;
&lt;p&gt;私がまりっぺのことを好き？　まりっぺもＡ子も、どうしてそんなことをはっきり言うんだろう。私の気持ちを知ったような口ぶりで、私の前で、まるで私の代わりみたいに。&lt;/p&gt;
&lt;p&gt;「好きじゃ……ないよ。ぜんぜん。もう、好きじゃない」&lt;/p&gt;
&lt;p&gt;私は彼女に背を向けて、絞り出すようにそう告げた。好きじゃない。まりっぺのことなんか、好きじゃない。これはもう、本当の気持ちだった。だって、Ａ子に染まったまりっぺなんて、もう。&lt;/p&gt;
&lt;p&gt;執着しても、惨めになるだけだから。&lt;/p&gt;
&lt;p&gt;Ａ子。私の前に現れて、まりっぺをさらっていったＡ子。まりっぺを好きなだけ汚して、私に見せつけるＡ子。結局まりっぺも、まるでバカな女と同じように、あんな不良みたいなやつが好きなのか。私じゃ何が足りなくて、私じゃ何がいけなかったんだろう。&lt;/p&gt;
&lt;p&gt;私だけのまりっぺが、がらがらと崩れていく。粉々になった「特別」の欠片が涙になって、私の目からぼろぼろとこぼれていった。頬を伝っていく涙を、まりっぺは掬うように撫でる。&lt;/p&gt;
&lt;p&gt;「ねぇ、Ｃ。泣かないでよ」&lt;/p&gt;
&lt;p&gt;「だって……だってまりっぺは！　タバコだって、ピアスだって、全部Ａ子の言いなりなんでしょ？　私はまりっぺのこと、強くて可愛い女の子だと思ってたのに……そんなの、そんなの……ひどすぎるよ……」&lt;/p&gt;
&lt;p&gt;「あら、ピアスってこれのこと？」&lt;/p&gt;
&lt;p&gt;泣きじゃくる私を撫でる手が止まって、まりっぺがぺろりと舌を出す。その先には、確かに丸いピアスがはまっていた。やっぱり、そうだ。存在感を強烈に主張するその傷を見て、勝手に涙があふれてくる。&lt;/p&gt;
&lt;p&gt;私は声に詰まって何も言えずにただ頷くと、ところがまりっぺは、不満げな顔で私に向き直った。&lt;/p&gt;
&lt;p&gt;「何言ってるの？　違うわよ、私は誰かに身体を傷つけさせたりしないわ」&lt;/p&gt;
&lt;p&gt;「で、でも青山さんは……」&lt;/p&gt;
&lt;p&gt;「私のことは私が決めるって言ったでしょ？　むしろＡは反対してたわよ。あの子、すごく勝手なんだから」&lt;/p&gt;
&lt;p&gt;まりっぺのピアスは、Ａ子が開けたものじゃない？　じゃあ、まりっぺが自分で決めたの？　そうだとしたら、私は大きな勘違いをしていたらしい。舌にはまった丸い銀色が急に美しい輝きに思えてきて、私はその口元から目が離せなくなっていた。&lt;/p&gt;
&lt;p&gt;「だってあの子、太ももにタトゥーがあるのよ？　だったらピアスくらい、別にいいじゃない。温泉だって入れるんだし。そう思わない？　舌が痛いって言うけど、そんなの別に――」&lt;/p&gt;
&lt;p&gt;「ま、待ってよまりっぺ！　じゃあ、そのピアスは自分で開けたってこと？」&lt;/p&gt;
&lt;p&gt;Ａ子の不満をつらつらと並べるまりっぺの言葉を遮ると、彼女はきょとんとした顔で私を見つめる。&lt;/p&gt;
&lt;p&gt;「だから、そう言ってるじゃない。私は誰のものにもならないわ。Ａのことは好きだけど……Ｃ子、あなたのことだって、好きだもの」&lt;/p&gt;
&lt;p&gt;「ま、まりっぺ……やめてよ、そんなの……」&lt;/p&gt;
&lt;p&gt;嬉しいはずの告白に、私は何故か拒否感を覚えていた。&lt;/p&gt;
&lt;p&gt;私はもうまりっぺを諦めると決めていたはずなのに、まりっぺが私に希望という毒を注入していく。私は誰のものにもならない。あなたが好き。そう言ってのけるまりっぺの意志の強い瞳が、また私の心を捉えて離さなくなる。&lt;/p&gt;
&lt;p&gt;「だって、まりっぺはＡ子と付き合ってて、だから私はもうまりっぺを諦めるしかないんだよ？」&lt;/p&gt;
&lt;p&gt;「でも私、Ｃのことが好きだわ。Ａのことも、Ｃのことも」&lt;/p&gt;
&lt;p&gt;まりっぺとの別れを決めたはずなのに、彼女に好き、と言われるたびに顔が熱くなるのを止められない。それに、いつの間にかローズの甘ったるい香りばかりが私の鼻をくすぐっていた。&lt;/p&gt;
&lt;p&gt;Ａ子のタバコ。Ａ子がまりっぺを汚したタバコ。ツンとして臭いはずなのに、もう私はその刺激を嗅ぎ分けることができなくなっていた。少しずつまたあの「特別」への渇望が、私の中にむくむくと頭をもたげているのが分かった。&lt;/p&gt;
&lt;p&gt;「やめて、やめてよ！　まりっぺ……なんで、諦めさせてくれないの……おかしいよ、こんなの……」&lt;/p&gt;
&lt;p&gt;「ねぇ、Ｃ？　私のこと、ずっと好きでいてね」&lt;/p&gt;
&lt;p&gt;微笑むまりっぺと目が合う。&lt;/p&gt;
&lt;p&gt;私はまりっぺに恐怖していた。いや、正確には、私自身に恐怖していた。彼女を求めるのを止められないこの感覚が、もがいたってもう逃げられないと諦めかけているこの感覚が、そしてこの恐怖さえも、まりっぺの前でなら心地よく感じてしまうこの感覚が、怖かった。&lt;/p&gt;
&lt;p&gt;「言ってよ。ねぇ、まりっぺ！　Ａ子にピアスを開けろって言われたって、言って、言ってよ……ねぇ……」&lt;/p&gt;
&lt;p&gt;めちゃくちゃなことを言っているのは分かっていた。でもまりっぺは、すがりついて泣きじゃくる私を引き剥がすでもなく、抱きしめてキスをしてくれるわけでもない。ただ、そのまま。&lt;/p&gt;
&lt;p&gt;私が睨むようにまりっぺを見上げると、彼女はちらと舌のピアスを見せつけるように小さく笑った。&lt;/p&gt;
&lt;p&gt;「う、うぅ……ねぇ、まりっぺ、好きだよ……だから……」&lt;/p&gt;
&lt;p&gt;私はまりっぺのこと、何も分かっていなかった。彼女はもう、私を縛って離さないつもりなのだ。この恋はもう、自分で終わらせることもできないのだと悟った時には、もう遅かった。&lt;/p&gt;
&lt;p&gt;そんな不釣り合いな私たちを、ローズの甘くて煙たい香りが優しく包み込んでいる。まりっぺが与えてくれるこの味は、こうしてずっと私を縛り続けるのだろう。私の恋が寂しく終わろうとも、きっと、ずっと。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>甘い煙に誘われて</title><link href="https://ama.ne.jp/post/sweet-1/" rel="alternate"/><published>2019-04-02T14:40:00+09:00</published><updated>2019-05-07T00:40:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-04-02:/post/sweet-1/</id><summary type="html">&lt;p&gt;思い出&lt;/p&gt;</summary><content type="html">&lt;h2 id="strawberry-1"&gt;strawberry 1&lt;/h2&gt;
&lt;p&gt;人が流れる歩道の中で、タバコの香りにつられてふと立ち止まる。&lt;/p&gt;
&lt;p&gt;街を歩いていると、ときどきこんな風に甘い匂いが鼻をくすぐることがあった。甘く煙たいストロベリーの香り。普通に歩いていたら見過ごしてしまうような、そうでなくても数歩のうちに意識の外へ追いやられるような、かすかな心地よさが私の足を止めた。&lt;/p&gt;
&lt;p&gt;私はこの匂いを知っている、と思った。鼻をすんと動かしているうちに、さっきまで食べていたサンドイッチの香ばしい匂いなんて全部吹き飛ばされてしまう。もやのかかった空気の中で、私は煙に包まれたあの頃の甘いひとときを思い出していた。&lt;/p&gt;
&lt;p&gt;ぼんやりとした頭のまま、煙の立つ向きを探してゆっくりと辺りを見回す。昼休みのビル街は憩いを求める人でいっぱいで、後ろを急ぎ歩くサラリーマンが一人、軽く舌打ちをして通り過ぎていく。普段なら後ろから睨みつけながら舌打ちを返していたところだけど、今はただ生き急ぐ時間の流れを傍観する感覚に身を委ねていた。&lt;/p&gt;
&lt;p&gt;おそらくこの甘い香りを漂わせているのは、そばにある喫煙所だろう。明るい緑色に塗られた柱に、上半分がフロストガラスで囲まれた半透明のシェルターは、彼らの身なりをそのままに顔だけを隠している。まるで犯罪者か風俗嬢みたいだな、と思う。&lt;/p&gt;
&lt;p&gt;その区画のすぐ外で、出入り口近くの柱に寄りかかっている同い年くらいの女性が目に入った。片手に持ったスマートフォンを不機嫌そうに覗き込み、いらいらした様子を隠さない。&lt;/p&gt;
&lt;p&gt;喫煙所は禁煙の波に追いやられた人でごったがえしていて、とりわけ奥はスーツ姿のおじさんばかりだ。きっと、大きな肩に挟まれた窮屈な空間でタバコを吸うのが嫌なのだろう。その気持ちは分からなくもないけど、マナーの悪い女だなと思う。&lt;/p&gt;
&lt;p&gt;甘酸っぱいストロベリーフレーバーをくゆらせているのはこの人だ。&lt;/p&gt;
&lt;p&gt;ウェーブのかかった茶色いロングヘアーにクールな瞳が隠されて、時折空を見つめながら煙を吐いている。サイケデリックなテディベアの写真が縦横にプリントされた趣味の悪いシャツに、くすんだ青のブルゾン。ライトブルーのデニムと紐の汚れた黒のスニーカーに寄り添うピンクのスケートボードは、そのフットワークの軽さを物語っている。およそ会社勤めには見えないし、下手をすると大学生ですらないかもしれない。&lt;/p&gt;
&lt;p&gt;吸って、吐いて、画面をなぞる……その動きがいちいち気だるげで、あくせくと流れる時間から浮いて見える。&lt;/p&gt;
&lt;p&gt;どうしてみんな、タバコを不味そうに吸うんだろう。まりっぺもそうだった。身体中にもくもくとした煙をまとって、そこから何が見えるのだろう。&lt;/p&gt;
&lt;p&gt;その様子をしばらく眺めていると、彼女はまだだいぶ残った吸いさしを口から離して、足早に喫煙所の中へと向かっていった。頭一つ小さなデニムパンツが灰皿まで駆け寄って、吸殻を突っ込んでから出てきたと思うと、立ち止まっていた私に視線を向ける。慌てて目を逸らすけど、誰も寄せ付けまいとする視線は確かに一瞬私を貫いていた。&lt;/p&gt;
&lt;p&gt;しかし、彼女は自分が観察されていることを意に介す様子もなく、スケートボードに乗って線路沿いの裏通りに消えていった。&lt;/p&gt;
&lt;p&gt;ストロベリーの残り香が、少しずつ灰色の煙に追い出される。ぼんやりとした懐かしさがコントラストを失って、そのまま現実に戻されていく。彼女の痕跡はもう私の記憶にしか残っていないのに、どうしてか私はその場から動けずにいた。&lt;/p&gt;
&lt;p&gt;どうしてだろう？　スケボーの彼女の視線に、まりっぺと同じものを――もしかしたら、まりっぺの面影を感じていたのかもしれない。私の隣では、いつもこの甘い匂いがしていたから。&lt;/p&gt;
&lt;h2 id="secret-1"&gt;secret 1&lt;/h2&gt;
&lt;p&gt;私がまりっぺの「秘密」を知ったのは、高校二年の冬のことだった。&lt;/p&gt;
&lt;p&gt;今でもよく覚えている。寒さと暖かさが曖昧になった放課後の穏やかな日差し。柱の向こうから聞こえる砂利を踏みしめるさくさくとした足音。そしてあの、ストロベリーの甘い香り。普段よりも少し強い風が、まりっぺの吐いた煙をそのまま私に届けてくれたのだ。&lt;/p&gt;
&lt;p&gt;「ね、ねぇ赤沢さん？　それ、タバコ……だよね？」&lt;/p&gt;
&lt;p&gt;「あら、Ｃ子だったの」&lt;/p&gt;
&lt;p&gt;まりっぺは突然の邂逅に驚く様子もないまま、顔をちらと覗いてから私の名を告げた。誰か――つまり、私の気配はもう感じ取っていたらしい。火を着けたタバコを隠す様子もなく、軽く目を閉じてまた口元に運ぶ。細い芯の中を走る煙を優しく吸って、口からもくもくと吐き出した。&lt;/p&gt;
&lt;p&gt;腰まで伸びたロングヘアは二つにまとめられていて、上を向いてふぅ、と息を吐くたびに、その動きに合わせてゆらゆらと揺れる。青みがかった煙が風に流されて、その綺麗なツインテールと混じり合っていくように見えた。煙がかき消えるとまたふわりと甘い香りが漂って、私の視界にぼんやりともやがかかる。&lt;/p&gt;
&lt;p&gt;タバコってツンとした嫌な匂いのものばかりだと思ってたけど、こんなに心地いいなんて。いつものタバコが灰色の匂いだとしたら、これはまるでピンク色の匂いだ。&lt;/p&gt;
&lt;p&gt;煙と一緒にゆったりとした時間が流れていく。それは窓際の机でまどろむ放課後よりも、駅のベンチで次の電車を待っているときよりも、もっとゆったりとしていておぼろげな時間だ。ずっと向こうに部活の練習風景が聞こえてきて、まるでここがいつもの学校から遠く離れた場所のように思えてくる。&lt;/p&gt;
&lt;p&gt;そうして煙が消える様子をひとしきり眺めていたまりっぺは、しばらくしてから私に向き直った。&lt;/p&gt;
&lt;p&gt;「それで、何か用？　さっさと先生に言いに行ったら？」&lt;/p&gt;
&lt;p&gt;「ち、違うよ。私、そんなつもりで来たんじゃない」&lt;/p&gt;
&lt;p&gt;もちろん、私が補習をサボってまで校舎裏に回り込んだのは偶然ではない。まりっぺの後ろ姿を追って歩いていたからだ。でも、決して彼女の喫煙を咎めるつもりで尾けていたわけではない。まるで路地裏をするすると歩く猫に導かれるように、奇妙な魅力が私を支配していたのだ。&lt;/p&gt;
&lt;p&gt;姿を見せちゃいけない、と思った。尾行に気付かれたら、まりっぺが私をスパイとして疑うのは当然だったから。&lt;/p&gt;
&lt;p&gt;それなのに、いつの間にか足が前に出ていた。甘い香りにつられるように、格好悪く彼女の前に姿を表してしまった。それは、喫煙という意外な光景を目撃したせいでもあるだろうし、ただ彼女に私の存在を示したかったからかもしれない。私だけは味方だよ、とでも言うように。&lt;/p&gt;
&lt;p&gt;「そう。別に、何でもいいけど」&lt;/p&gt;
&lt;p&gt;壁に寄りかかったまりっぺが私を見下ろす。ふわりとしたスカートの裾が、薄い太陽の光で綺麗なグラデーションを作り出していた。&lt;/p&gt;
&lt;p&gt;まりっぺ（当時は赤沢さんと呼んでいた）は、私のクラスメートだ。背の高いまりっぺのスカートから伸びた脚はすらっと長くて、廊下ですれ違うたびに目で追ってしまうくらい。歩く姿も美しくて、細やかな動き一つ一つにまりっぺの意識が込められているのが分かる。&lt;/p&gt;
&lt;p&gt;同じ制服を着ているはずなのに、ちんちくりんの私とは何もかもが違う。背伸びすればやっと追い付けるくらいの意志の強い瞳が、整った顔の魅力をさらに高めていた。&lt;/p&gt;
&lt;p&gt;「でも、どうしてタバコなんて……」&lt;/p&gt;
&lt;p&gt;「吸いたくなったのよ。そんなに変？」&lt;/p&gt;
&lt;p&gt;「だって、見つかったら退学だし」&lt;/p&gt;
&lt;p&gt;「いいのよ、別に。高校なんて」&lt;/p&gt;
&lt;p&gt;まりっぺはそう言って、またタバコを口にくわえた。&lt;/p&gt;
&lt;p&gt;悪い事をしているはずなのに、彼女は逃げも隠れもせずに私の前に立っている。私を脅すわけでもなく、自分の「非行」を隠すわけでもなく、その姿はまるで駅前のカフェで紅茶を飲む時のように落ち着いていた。&lt;/p&gt;
&lt;p&gt;どんな言い訳をしたって喫煙は喫煙だ。咎めなきゃいけない行為のはずなのに、今はその姿がなぜだかとても綺麗に見えた。&lt;/p&gt;
&lt;p&gt;「タバコくらいで騒がないでよ。私のことなんて誰も見てないわ」&lt;/p&gt;
&lt;p&gt;「……私、赤沢さんのタバコのこと、もう知ってるけど」&lt;/p&gt;
&lt;p&gt;「脅しのつもり？　言ってるじゃない、高校くらいやめてもいいって」&lt;/p&gt;
&lt;p&gt;鋭い視線が私を貫く。&lt;/p&gt;
&lt;p&gt;高校くらいやめてもいい、なんて。私にはまりっぺの気持ちが分からなかった。高校進学を選んだ私たちの人生は、おそらく中卒なんて考えられていないから。少なくとも、私にとってはそうだ。だから、まりっぺにもそんな人生を送ってほしくはない、と思っていた。&lt;/p&gt;
&lt;p&gt;でも、迷いも不安もないまりっぺの目を見ていると、その押し付けがましい親切心に彼女を巻き込むのが本当に正しいのか、分からなくなってしまう。&lt;/p&gt;
&lt;p&gt;「そ、そうじゃなくて……」&lt;/p&gt;
&lt;p&gt;「はっきりしなさいよ。これをネタにして、脅すつもりなんでしょ？」&lt;/p&gt;
&lt;p&gt;これ、と言いながらまりっぺが火の付いたタバコを目の前に突き出した。まるで、常識に縛られた空っぽな自分を見透かされているような気がして、私は思わず目を逸らしてしまう。&lt;/p&gt;
&lt;p&gt;私は彼女の視線から逃げるように、タバコの先から出る煙をじっと見つめていた。そうして黙ったままでいると、まりっぺは小さく溜息を吐いて、ブレザーのポケットからボタンの付いた黒い革のケースを取り出す。&lt;/p&gt;
&lt;p&gt;「……もういいわ」&lt;/p&gt;
&lt;p&gt;不機嫌そうなまりっぺは、彼女に似合わない無骨な携帯灰皿に吸い殻を押し込んで、そのままこの場から立ち去ろうとする。ざくざくとした足音がだんだん遠くなって、少しづつありふれた日常の空気が戻ってくるのを感じていた。張り詰めた空気が少しずつ緩んで、身体から力が抜けそうになる。&lt;/p&gt;
&lt;p&gt;今何か言わないと、まりっぺはもう私を見てくれなくなってしまう、と思った。&lt;/p&gt;
&lt;p&gt;「ち、違うよ！」&lt;/p&gt;
&lt;p&gt;地面をぐっと踏みしめた勢いで、思わず大きな声が出てしまう。まりっぺが足を止めてから、これが秘密のやり取りなんだと思い出して、意味もなく口に手を当てる。振り向いたまりっぺと目が合って、彼女はふふっ、と小さく笑った。&lt;/p&gt;
&lt;p&gt;「でも、もう学校では吸わないで」&lt;/p&gt;
&lt;p&gt;「あら、学校じゃなきゃいいってこと？」&lt;/p&gt;
&lt;p&gt;「うん。私……赤沢さんに、学校やめてほしくないから」&lt;/p&gt;
&lt;p&gt;そう告げながら、私は思わずまりっぺの手を握っていた。突然距離を詰めた私に、まりっぺは戸惑いの表情で私を見つめるだけで、驚いた声さえも上げられない。&lt;/p&gt;
&lt;p&gt;「ねぇ、赤沢さん。やめないで」&lt;/p&gt;
&lt;p&gt;これは私のわがままだ。分かっていた。まりっぺが高校をやめて困るのは、私の方なのだ。もし今日、校舎裏で彼女を見つけたのが私でなかったとしても、まりっぺには何も気にしないだろうから。まりっぺは、誰の救いも求めていない。まりっぺを救うふりをして、本当は私が救われたいだけなのに。&lt;/p&gt;
&lt;p&gt;まるで、プロポーズでもした後のような長い沈黙が流れた。私の告白じみたお願いを、まりっぺはどう思っているだろうか。私の髪が揺らした風が、まりっぺのスカートも揺らしていく。その一瞬一瞬が恥ずかしかった。&lt;/p&gt;
&lt;p&gt;「私のことは私が決めるわ。でも、Ｃ子が私を守りたいなら、勝手にして」&lt;/p&gt;
&lt;p&gt;ひんやりとした手が心地いい。まりっぺはいつの間にか不意打ちに崩されたはずの冷静さを取り戻して、私をじっと見つめている。&lt;/p&gt;
&lt;p&gt;「……うん。ありがとう、赤沢さん」&lt;/p&gt;
&lt;p&gt;受け入れるわけでもなく、突き放すわけでもない。まりっぺらしいその答えが何度か私の頭の中を駆け巡って、やっと実感と共に私の顔を熱くする。まりっぺと私だけの秘密ができたこと。まりっぺと手を繋いでいること。私がまりっぺに受け入れられたこと。突然訪れた幸せが、私を包み込んで離さない。&lt;/p&gt;
&lt;p&gt;結局、まりっぺが連絡先を交換しようと告げるまで、私たちはずっと見つめ合ったまま手を繋いでいた。まるで恋人みたいに。&lt;/p&gt;
&lt;p&gt;まるで、恋人みたいに。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;校舎裏での出会いから数日が経った。昼休みの教室はざわざわとした取り留めのない会話で満ちていて、とにかく落ち着かない。年度末の浮ついた解放感がひしひしと伝わってきて、今の私には鬱陶しく感じられる。こういう微妙な気分のときには図書室に行くに限るんだけど、まりっぺとのこともあってなかなか動けずにいた。&lt;/p&gt;
&lt;p&gt;教室でのまりっぺは、いつもと変わらず私の三つ後ろの席で静かにファッション誌を眺めている。教室に出入りするたびにちらりと彼女の方を見ていたけれど、目が合うことはなかった。私を信頼してくれているのか、それとも……本当に、高校をやめるつもりなのか。&lt;/p&gt;
&lt;p&gt;いや、私はちゃんとまりっぺを守ると「約束」したんだ。まりっぺが学校をやめたりしないように。まりっぺの綺麗な姿を、私と彼女の静かな時間を、誰にも見せないために。だから、まりっぺがいなくなるなんてありえない。&lt;/p&gt;
&lt;p&gt;でも、私はどうやってまりっぺを守るつもりなんだろうか。まりっぺに頼られたって、停学さえ覆すことはできないのに。できることなんて、タバコを吸っているときの見張り番くらい。私がまりっぺと一緒にいる価値があるのは、煙たくて気持ち良いあの場所にいるときだけ。私たちの関係は、密かに立つ煙と同じくらいに儚くて弱々しいのだ。&lt;/p&gt;
&lt;p&gt;まりっぺは高校くらいやめてもいい、と言っていた。私の動きに関心がない様子を見ると、それは本当の気持ちなのだろう。でも、学校をやめてどうする気なのか、親にはどう説明するのか……そこまでは、現実味がなくてイマイチ想像が付かなかった。つまり、みんなが選ばないような生き方に向き合いつつあるまりっぺの後ろ姿が、少し怖かった。&lt;/p&gt;
&lt;p&gt;「まりりーん。何読んでるの？」&lt;/p&gt;
&lt;p&gt;そんな考えを巡らせながら窓の外を眺めていると、後ろから耳障りな声が聞こえてくる。こんな時でも、Ｂ子はやはりまりっぺに馴れ馴れしい。&lt;/p&gt;
&lt;p&gt;「今月号のロルムよ。春の新作をチェックしてるの」&lt;/p&gt;
&lt;p&gt;「えー、遅くない？　私、もうめぼしいのはいくつか買ってるよ」&lt;/p&gt;
&lt;p&gt;「そうなの？　どこのブランド？」&lt;/p&gt;
&lt;p&gt;「まぁ、――とか、――くらい？　そんなに追ってるわけじゃないけど、教えてあげよっか？」&lt;/p&gt;
&lt;p&gt;「そうね、――は――だけど……私は――だから、別にいいわ」&lt;/p&gt;
&lt;p&gt;同じクラスのＢ子は、性格の悪い女だ。気の強そうな顔に、わざとらしくてうるさい声。下品に着崩した制服は似合ってないくせに自信たっぷりで、自分が一番可愛いと思ってるのが透けて見える。まりっぺの足元にも及ばないくせに。&lt;/p&gt;
&lt;p&gt;それに、まりりん、だなんて馴れ馴れしいあだ名を使うのだ。まりっぺと秘密の約束をした私でさえ、まだ名前さえ呼べていないのに。なんて図々しいやつなんだろう。取り巻きとばかり遊んでいるから、他人との距離感も分からないのだ。&lt;/p&gt;
&lt;p&gt;きっと、まりっぺだってうんざりしてるに違いない。&lt;/p&gt;
&lt;p&gt;Ｂ子はまりっぺが怖いんだ。Ｂ子をちやほやしないどころか、自分に集まるはずだった視線さえも奪いかねないまりっぺ。そんなまりっぺが自分に見向きもしないとなれば、どうにか興味を引こうとするのかもしれない。所詮、まりっぺの魅力には勝てないのに。&lt;/p&gt;
&lt;p&gt;そんなＢ子が上から目線でまりっぺに突撃していくのを見ると、腹が立って仕方ない。いつも周りにお友達を連れて楽しそうにしているんだから、そいつらと遊んでいればいいのに。&lt;/p&gt;
&lt;p&gt;「でも、まりりんにはこういうのも似合うと思うよ。どう、これとか？」&lt;/p&gt;
&lt;p&gt;「え、えぇ……ありがとう。参考にするわね」&lt;/p&gt;
&lt;p&gt;いらいらする。後ろを向いてＢ子を睨みつけてやろうか。そう思いながら、解く気もしない問題集のページの端をこつこつとシャーペンで何度か叩いていると、芯がぱきりと折れてしまった。&lt;/p&gt;
&lt;p&gt;「……はぁ」&lt;/p&gt;
&lt;p&gt;でも、今は落ちてしまった小さな欠片に気をかける余裕もない。私は溜息を吐いてから、芯のないシャーペンをまたかつかつと紙に叩きつける。&lt;/p&gt;
&lt;p&gt;おい、まりっぺが迷惑そうにしてるだろ。笑うな。喋るな。出てけよ。……今すぐ立ち上がってＢ子にそう突きつけることができれば、どんなによかったろう。でも、そんなことを叫んだら、まりっぺはどう思うだろうか。タバコを吸っていない彼女に、私は何ができるだろうか。&lt;/p&gt;
&lt;p&gt;だって、私とまりっぺは灰色の糸で結ばれているのだ。手繰っているうちに広がって消えてしまいそうな、煙のように弱々しい糸で。不意に風でも起こしてしまったら、その糸はぷつりと切れてしまうだろう。それが怖くて席を立つことすらできずにいた。&lt;/p&gt;
&lt;p&gt;「それでさー、まりりん。放課後、カラオケ行かない？　今日は――と――と、あと――くんも来るんだけど」&lt;/p&gt;
&lt;p&gt;「うーん……ごめんなさい。今日は家の用事があって」&lt;/p&gt;
&lt;p&gt;「この前もそう言ってなかった？　せっかく誘ってるのにさ〜」&lt;/p&gt;
&lt;p&gt;それから、Ｂ子は仲の良い友達みたいにへらへらと二言三言発した後、「じゃあね、まりりん！」と言って教室を去っていく。&lt;/p&gt;
&lt;p&gt;Ｂ子が退散するのを横目で見届けて、私は正直ほっとしていた。まりっぺの作り笑いを見たくないのに、私には見ていることしかできないから。静かに身を守ろうとしている自分のことを、じっと見つめていたくはなかったから。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「私、赤沢さんのこと、やっぱ苦手だわ」&lt;/p&gt;
&lt;p&gt;「Ｂちゃん、落ち着いて。ここ、一応学校のトイレなんだし」&lt;/p&gt;
&lt;p&gt;Ｂ子はまりっぺにあしらわれた後、決まってトイレで取り巻きにまりっぺの悪口を吹き込むのだ。今日も例に漏れず、怒りに任せてまりっぺの悪口をあることないこと言いふらして、取り巻きその一に宥められていた。私は個室でその様子を聞きながら、じっとＢ子の愚かさを実感している。&lt;/p&gt;
&lt;p&gt;「でもさー、私、仲良くしようとしてやってるんだよ？」&lt;/p&gt;
&lt;p&gt;「Ｂは優しいなぁ。私、顔に出ちゃうからそういうことできないもん」&lt;/p&gt;
&lt;p&gt;「あーゆーのは、どこに行っても一人だよ。マジでイタすぎ」&lt;/p&gt;
&lt;p&gt;取り巻きその二におだてられて、Ｂ子は言いたい放題だ。顔は見えないけれど、その醜悪な表情は簡単に想像できる。まりっぺの孤独な様子を指差して、私たちは仲間でよかったねと確かめあっているのだ。まりっぺは自分で一人を選んでるのに。お前らみたいに群れる必要がないだけなのに。&lt;/p&gt;
&lt;p&gt;Ｂ子は窘められたり煽られたりしながら、まりっぺの悪口を繰り返す。容姿のこと、ファッションのこと、嘘ばっかりだ。まりっぺのことなんて全然知らないくせに。&lt;/p&gt;
&lt;p&gt;話しているうちにＢ子は興奮してきたのか、途中から「赤沢」と呼び捨てにし始めていた。「まりりん」だなんて寒気のする甘い声は全部演技で、こうやって取り巻きの前で調子に乗るのがＢ子の本性なのだ。&lt;/p&gt;
&lt;p&gt;「ねぇ、Ｃ子！　あんた、赤沢のこと好きでしょ？」&lt;/p&gt;
&lt;p&gt;と、突然Ｂ子に名前を呼ばれて、身体をびくつかせてしまう。いつの間にか尾行に気付かれていたらしい。彼女たちから私の姿が見えていないのは分かっていたけど、少しでも物音を立てたら動揺が悟られてしまうと思った。黙ってやり過ごそうと思いながら身体を縮こめていると、勢いづいたＢ子はさらに言葉を続ける。&lt;/p&gt;
&lt;p&gt;「私が赤沢の悪口を言うの、いつも聞きに来てるよね。告げ口でもしてんの？」&lt;/p&gt;
&lt;p&gt;「えっ……Ｃ子ってそうなの？」&lt;/p&gt;
&lt;p&gt;「ねー、どうなの？」&lt;/p&gt;
&lt;p&gt;まりっぺがお前らみたいな卑怯な真似をするわけがない。告げ口なんて頼まれるものか。根拠のないまりっぺの悪口に一つ一つ反論してやりたい気持ちはあったけど、三人を相手にはっきり自分の言葉を伝えるような勇気はなかった。&lt;/p&gt;
&lt;p&gt;と、出るに出れない空気の中、突然ポケットの中で何かが震える。着信だ。気付かれないようにそっと携帯を取り出すと、通知欄が「赤沢まり」と白く光っているのが分かった。&lt;/p&gt;
&lt;p&gt;【今日、付き合ってくれる？】&lt;/p&gt;
&lt;p&gt;どうしてまりっぺからメッセが？　そうだ、この前連絡先を交換したんだった。突然の出来事に、少し混乱する。初めて私に送られた短いメッセージを何度も読み返しているうちに、まりっぺの「今日は家の用事があって」という言葉を思い出して、顔が熱くなった。&lt;/p&gt;
&lt;p&gt;「ご、ごめん。ちょっと行かなきゃいけないから！」&lt;/p&gt;
&lt;p&gt;私は個室の扉を開けると、いつの間にか走り出していた。後ろから聞こえる「おい、待てよ！」という声がなぜか滑稽に聞こえて、妙な笑いがこみ上げてくる。&lt;/p&gt;
&lt;p&gt;お前らにまりっぺの魅力が分かるかよ。まりっぺのことを知ってるのは私だけなんだ。分かってあげられるのは私だけなんだ。心の中でそう唱え続けているうちに、Ｂ子のことなんか気にならなくなっていた。&lt;/p&gt;
&lt;h2 id="nickname-1"&gt;nickname 1&lt;/h2&gt;
&lt;p&gt;それから私は、いろいろな場所でまりっぺの「非行」に付き合った。マンションの非常階段、人気のない公園の隅、手入れされていない神社の裏――当然、そういう場所ではいつも二人きりだ。ネットで調べたところ、何度も同じ場所を使わないのがコツなんだという。場所選び以外に人目を避ける特別な対策はしてこなかったけど、幸いなことにこれまで喫煙の現場は見つからずに済んでいた。&lt;/p&gt;
&lt;p&gt;夕日が当たる古い団地の屋上は、色々なものの時間が止まっている。建材はまだらに黒ずんでおり、所々に錆が流れ込んでマーブル模様を作っていた。雨が降ると隅に集まったごみがまた広がってしまうから、今日みたいな晴れ続きの日にしか使えない。コンクリートの床材や貯水槽の鉄骨が濡れていると、まりっぺは嫌な顔をした。&lt;/p&gt;
&lt;p&gt;まりっぺの隣でリラックスしきれない私と、私の隣で悠々とタバコをくわえるまりっぺ。微妙に噛み合わない二人の間は、いつしか沈黙で満たされていく。私はそのぎこちない空気が初々しい恋人同士みたいで好きだったし、まりっぺも、そういう奇妙な静寂を楽しんでいたと思う。週に二度か三度は、こうして青春の黄昏みたいな時間を静かに過ごしていた。&lt;/p&gt;
&lt;p&gt;まりっぺは、タバコを吸いながら私にいろいろなことを話してくれた。&lt;/p&gt;
&lt;p&gt;「私、モデルになりたいの」&lt;/p&gt;
&lt;p&gt;ロリータファッションが好きで、昔から自分で服を作っているらしい。既製服の可愛いポイントを取り入れつつ、高身長を活かしてオリジナリティを模索している、とか。ロリータのことはよく分からない。&lt;/p&gt;
&lt;p&gt;今日は、裾にぐるりとチェリーが散りばめられた黒いワンピースだ。首元にはＵ字に大きく白いフリルが入っていて、金色のボタンがよく目立つ。大きなリボンはスカートと同じチェリー模様で、まるで綺麗な返り血みたい。ツインテールを留めるシュシュは服に合わせた白黒で、そこにストロベリーのチャームを添えてシックな色合いをカバーしている。&lt;/p&gt;
&lt;p&gt;確かに、まりっぺのファッションへのこだわりはすごいと思う。私は動きやすいようにデニムとスニーカーで付き添ってるけど、まりっぺは何度言ってもふわりと広がるロングスカートだけは絶対に譲らないのだ。逃げやすさのことは二の次らしい。「見張りのあなたが動ければ、それでいいじゃない」なんて言われちゃったら、何も言い返せない。&lt;/p&gt;
&lt;p&gt;相槌を打ちながら、ぼんやりと横顔を眺める。夢の話に興じるまりっぺは、いつになく楽しそうだった。&lt;/p&gt;
&lt;p&gt;「だから、本当は高校なんて行かなくてよかったのよ。でも、パパが許してくれなかったから」&lt;/p&gt;
&lt;p&gt;まりっぺの夢を知ってもなお、せめて高校はちゃんと卒業するように言われたらしい。まりっぺがモデルになって失敗するわけなんかないのに。&lt;/p&gt;
&lt;p&gt;どこも一緒だ。&lt;/p&gt;
&lt;p&gt;母には、どこでもいいから大学は出ておいたほうがいいと言われていた。だから、私はその言葉を自分が立てた目標だと思い込みながら、なんとなく高校生らしい生活を送ってきたつもりだった。なんとなく行けそうな大学を選んで、それなりに勉強して合格する。夢とか人生のことはその後で考えても遅くない。それでなんとかなるはずだった。&lt;/p&gt;
&lt;p&gt;そんな私が、今はまりっぺの隣で非行のお手伝いだなんて。&lt;/p&gt;
&lt;p&gt;それにしても、モデルになるなら、なおさらタバコは吸わないほうがいいんじゃないだろうか。未成年喫煙のせいでミラクルティーンを降ろされたモデルもいるらしいし。&lt;/p&gt;
&lt;p&gt;「私に指図しないで。タバコを吸ってるモデルなんて世界にはたくさんいるわ」&lt;/p&gt;
&lt;p&gt;まりっぺはいらついた声でそう言ってから、いつもより少し長い吸い殻を灰皿にしまいこむ。普段ならもう一本という場面だけど、私が水を差してしまったせいで小休止となった。&lt;/p&gt;
&lt;p&gt;怒っているかもしれない、という私の微妙な意識のせいで、この沈黙が苦しく感じられる。たぶんまりっぺはもう気にしていないし、ぐちぐち責め立てる気もないことは分かっているのに、心地いいはずの静かな空気が逆に私を締め付けていた。&lt;/p&gt;
&lt;p&gt;「ご、ごめん……うん。赤沢さんなら、きっとなれるよ」&lt;/p&gt;
&lt;p&gt;「うん、ありがと。嬉しいわ」&lt;/p&gt;
&lt;p&gt;まりっぺは手持ち無沙汰な風に明るい水色のシガレットケースを弄ぶ。薔薇の刺繍をあしらったおしゃれなケースだ。古着をリメイクしたポーチやミニティッシュケースをいくつか持っていたから、これもおそらく手作りなのだろう。&lt;/p&gt;
&lt;p&gt;「ねぇ、Ｃ子の夢は？　教えてよ」&lt;/p&gt;
&lt;p&gt;ちょうどタバコを一本吸い終えて、まるで次はあなたのターンよとでもいうように私に向き直る。私の夢？　そんなの、このまま普通に高校に通って、卒業して……それから？　それから、私は何をしたかったんだっけ？&lt;/p&gt;
&lt;p&gt;とりあえず申し込んだ進学希望者向けの補習には、彼女と「約束」したあの無断欠席の日からもう行っていない。最初から強い目的意識もなくだらだら通っていただけだから、足を止めるのは簡単だった。三回休んだあたりで担当の数学教師に呼び出されたから、進路を迷い始めたのでしばらく行けません、と伝えて後は知らんぷり。&lt;/p&gt;
&lt;p&gt;悪い意味でただ前に進み続けていた私にとって、そういう嘘を吐くのは新鮮で、少し息苦しくもあった。でも、まりっぺの隣にいられるなら、もう受験さえもどうでもよかった。この瞬間は、確かに私の意志で選び取ったのだから。&lt;/p&gt;
&lt;p&gt;いつの間にか、私の生活はまりっぺを中心に回っていた。自分の夢なんて考えるのを忘れてしまうくらいに。&lt;/p&gt;
&lt;p&gt;でも、まりっぺはどうだろう。みんなの視線を集める世界的なモデルになって、颯爽とランウェイを歩く……そんな彼女の夢の中に、きっと私はいない。私は、テレビの前で彼女の凛とした姿に見とれることしかできないだろう。まりっぺに視線を送る大衆の一人として。&lt;/p&gt;
&lt;p&gt;まりっぺが高校をやめてしまわなければなんでもよかった。あの時は、それが一番の目的だったから。でも、タバコだって、私たちはすぐに堂々と吸える年齢になる。そうしたら、私とまりっぺの「約束」は終わってしまう。喫煙を言い訳にして彼女に寄り添い続けても、必ず終わりが来てしまう。&lt;/p&gt;
&lt;p&gt;「私は……まりっぺと一緒にいたい」&lt;/p&gt;
&lt;p&gt;「ま、まりっぺ？」&lt;/p&gt;
&lt;p&gt;「ねぇ、まりっぺ。まりっぺは、ずっとこうして私と一緒にいてくれるの？」&lt;/p&gt;
&lt;p&gt;「落ち着きなさいよ。Ｃ子、痛いわ」&lt;/p&gt;
&lt;p&gt;いつまでも一緒にいて、私を置いていかないで、私も連れていって……と心の中で叫んでいるうちに、ざらざらとしたコンクリートの床に手のひらが擦れる感覚がして、その痛みで我に返る。&lt;/p&gt;
&lt;p&gt;「ねぇＣ子、あなた大丈夫？」&lt;/p&gt;
&lt;p&gt;「うぁ……」&lt;/p&gt;
&lt;p&gt;まりっぺが私を見下ろしていた。一方の私は、バランスを崩して尻もちをついたらしい。その拍子に手が擦れたのだ。まりっぺは自分の身体を抱くように立っている。じっと警戒する様子を呆けた顔で眺めているうちに、まりっぺの肩を強引に掴んでいたことを思い出した。&lt;/p&gt;
&lt;p&gt;「ご、ごめんね……ごめん、赤沢さん。私ってば、なんてことを……」&lt;/p&gt;
&lt;p&gt;焦りと混乱で動けない私は、へたりこんだまままりっぺを見上げている。ちょうど夕日が沈む頃で、まりっぺの後ろから燃えるような夕焼けの光が差していた。彼女の脚から伸びた長い影が、私の上をぐにゃりと曲がって逃げていく。&lt;/p&gt;
&lt;p&gt;「あなたの夢、訊いちゃいけなかった？」&lt;/p&gt;
&lt;p&gt;「ち、違うの。ただ、私、怖かったから……」&lt;/p&gt;
&lt;p&gt;心配そうに私の顔を覗き込む。怖かった、という気持ちに間違いはないけれど、きっとまりっぺには伝わらないだろう。彼女との将来を悲観していた、なんて。でも、それでよかった。まりっぺの邪魔になるような思いを伝える意味はないし、結果の分かっているような告白をしたくはなかったから。&lt;/p&gt;
&lt;p&gt;まりっぺは少し首を傾げてから「それなら、いいんだけど」と言って、私に手を差し伸べる。そして、立ち上がった私にタバコを差し出した。&lt;/p&gt;
&lt;p&gt;「夢なんて、すぐ見つかるわ。一本吸ってみる？　気分がよくなるわよ」&lt;/p&gt;
&lt;p&gt;やっぱり、まりっぺには私が夢を見つけられなくて焦っているように見えたらしい。あながち間違っているわけではないけれど、こればかりはタバコを吸ってもどうにもならない。&lt;/p&gt;
&lt;p&gt;まりっぺのタバコは、特別なタバコなんだという。タバコ屋さんでは手に入れられない特別なタバコだから、とっても美味しいのよ、と指を揺らす。&lt;/p&gt;
&lt;p&gt;「特別、って？」&lt;/p&gt;
&lt;p&gt;「特別は、特別よ。こうやって付き合ってくれてるあなたも、特別よ？　特別だから、あなたにもあげるの」&lt;/p&gt;
&lt;p&gt;私はタバコに詳しくないから、美味しいと言われてもよく分からない。でも、普通のお店で売ってもらえないのだから、当然誰かから譲ってもらうことにはなるだろう。だから、特別と言っても、単に協力者がどこかから仕入れてまりっぺに渡しているだけなんだろうなと思った。&lt;/p&gt;
&lt;p&gt;でも、協力者って誰？&lt;/p&gt;
&lt;p&gt;麻薬の売人というのは聞いたことがあるけれど、未成年にタバコを売り捌くのは、もっと違う存在だろう。まりっぺと仲が良くて、まりっぺが困った時に頼っているような、もっとプライベートな協力者――私よりも頭が良くて、頼りがいのある誰か。&lt;/p&gt;
&lt;p&gt;革の携帯灰皿のことが頭をよぎった。まりっぺが、私以外の誰かに頼ってる？　そんなの、嫌だ。まりっぺとのさよならを覚悟しているはずなのに、私は「特別」という言葉に嫉妬していた。&lt;/p&gt;
&lt;p&gt;彼女が気まぐれで与えてくれたこの時間のせいで、私以外にも向けられた「特別」に、どうしようもない敵対心を抱いている。まりっぺの「特別」は嬉しいけど、私だけの「特別」じゃない。抑えられない独占欲の自覚が、さらに私を惨めな気持ちにしていた。&lt;/p&gt;
&lt;p&gt;「でも……」&lt;/p&gt;
&lt;p&gt;改めて、まりっぺが差し出したタバコを見つめる。いざ吸い口を向けられると、非行をしているという現実感がどっと私に襲いかかってきた。&lt;/p&gt;
&lt;p&gt;もちろん、彼女のタバコを見逃してあまつさえこうして今まで付き合ってきたことは、立派な非行だろう。でも、自分が本当にタバコに手を付けるところを想像すると、ドキドキして手の先が冷たくなった。まりっぺと同じ香りが身体中に巡る高揚感と、非行に手を染める興奮が一緒になって、太ももの辺りがぞくぞくとした。&lt;/p&gt;
&lt;p&gt;「ま、そうよね」&lt;/p&gt;
&lt;p&gt;そうして逡巡しているうちに、まりっぺは差し出したタバコを自分の口に戻してしまった。そして、くわえたタバコに火を付ける。私はライターを持っていなかったから。&lt;/p&gt;
&lt;p&gt;「ほら、Ｃ子。こっち」&lt;/p&gt;
&lt;p&gt;「ど、どうしたの、赤沢さ――ん、むっ！」&lt;/p&gt;
&lt;p&gt;私を呼ぶ声に反応して歩み寄ると、まりっぺは私を優しく抱きとめて唇を重ねた。まりっぺの吐く息は甘くてピンク色で曖昧で、それだけでもう何も考えられなくなる。頭がストロベリーの煙で満たされていくうちに、目の前にいる彼女の表情はよく見えなくなって、今なら殺されたって分からないだろう。&lt;/p&gt;
&lt;p&gt;何秒か、何十秒かそうしていた。小さく息をしているうちにふわふわとした煙の味が薄れて、徐々に夕日に包まれた屋上の風景が戻ってくる。その光景は、目を閉じる前よりもずっと綺麗だった。光がきらきらして、まりっぺの綺麗な髪の毛を一本ずつ彩っている。ぼんやりとした光の影の境目がぐっと伸びて、私と混じり合っていくように思えた。&lt;/p&gt;
&lt;p&gt;「ふふ、美味しい？　これなら、吸ったことにはならないわ」&lt;/p&gt;
&lt;p&gt;「ま、まりっぺ……ねぇ、もしかして、私のこと……」&lt;/p&gt;
&lt;p&gt;もしかして、私のこと好きなの？　そんなおこがましい疑念をねじ伏せるように、まりっぺは優しく笑っていた。&lt;/p&gt;
&lt;p&gt;「あら、ごめんなさい。電話みたい」&lt;/p&gt;
&lt;p&gt;――と、まりっぺの携帯から、どこかで聞いたことのある洋楽の着信音が聞こえる。まりっぺはひらひらと手を振ってキスの中断を告げると、後ろを向いて誰かと話し始めた。一瞬ちらりと盗み見た画面には、「Ａ子」という文字が流れていた。&lt;/p&gt;
&lt;p&gt;Ａ子？　うちのクラスにはそんな名前はいないし、まりっぺにきょうだいはいないはず。昔の同級生か、それとも幼馴染？　考えているうちに、顔から血の気が引いていくのが分かった。目の前にかかった霧がすっかり晴れて、意識が現実に戻ってくる。&lt;/p&gt;
&lt;p&gt;「もしもし、Ａ？　……うん、うん……ふふっ、なによ、それ。――」&lt;/p&gt;
&lt;p&gt;じっと耳を澄ます。近況の報告とか、ファッション誌の話とか、夕ごはんのこととか。まりっぺは「Ａ子」とそんなことを話していた。&lt;/p&gt;
&lt;p&gt;薄く聞こえる声は確かに女のものだ。それで余計に腹が立つ。携帯灰皿の男以外にも、まだ仲のいい友達がいるってことだから。綺麗なまりっぺは、レベルの低い友達とは付き合っちゃいけないのに。Ｂ子とだってちゃんと距離を置いてるのに。どうして？&lt;/p&gt;
&lt;p&gt;待ってよ。こんなの、まりっぺじゃない！　まりっぺはもっと孤高で気高い存在なのに。&lt;/p&gt;
&lt;p&gt;「Ｃ、ごめんね。ちょっと用事ができちゃった」&lt;/p&gt;
&lt;p&gt;「う、うん。また……ね」&lt;/p&gt;
&lt;p&gt;ねぇ、まりっぺ。Ａって誰？　どうしてそんなに楽しそうに笑ってるの？　私には、そんな顔したことないじゃん。まりっぺにそう詰め寄ったって、彼女の笑顔が困惑に変わって、きっとそれだけ。もうどうしようもない。&lt;/p&gt;
&lt;p&gt;まりっぺは私にくれたタバコの火を消して、手早く身支度を済ませた。そして「その傷、ちゃんと手当したほうがいいわよ」と言って私の手のひらを指差してから、足早に屋上を去っていく。&lt;/p&gt;
&lt;p&gt;残された私は、その場に立っていることしかできなかった。まりっぺが与えてくれた優しさが、夕日と一緒に沈んでいく。ピンク色の興奮がじわじわと冷えていく。春めいた凍えるような夕暮れの中で、私の青春は終わりを告げた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;まりっぺが退学した前後のことは、よく覚えていない。&lt;/p&gt;
&lt;p&gt;おそらく、私にとっては突然のことだった。新学期になるまでその事実を知らなかったのだから。結局、最後までまりっぺから別れが告げられることもなかった。&lt;/p&gt;
&lt;p&gt;先生は家庭の都合と言っていた。それは本当のことかもしれないし、誰かが――私はその時Ｂ子を疑ったけど――まりっぺの「非行」について密告したのかもしれない。ただ、まりっぺの秘密を知っているのは私だけだったはずだから、そういう窃盗じみた侵害を信じたくはなかった。&lt;/p&gt;
&lt;p&gt;まりっぺが退学しても、私以外の学校生活は問題なく回っているようだった。まりっぺを勝手にライバル視していたＢ子は喜んでいたようにも見えたし、悲しんでいるようにも見えた。トイレでまりっぺの悪口を言うことはなくなったけど、どちらにせよ、嫌なやつだ。&lt;/p&gt;
&lt;p&gt;真実はどうあれ、それからまりっぺと会うことはなくなった。連絡先は知っていたけど、先延ばしにしていたら切り出しにくくなって、そのまま。まりっぺが私を疑っていたらどうしようと考えているうちに、昔のトーク履歴を見るのさえ嫌になった。&lt;/p&gt;
&lt;p&gt;まりっぺのプロフィールのアイコンが七回変わった。今まりっぺが何をしているのかは、もう分からない。&lt;/p&gt;
&lt;p&gt;でも、一回だけまりっぺが口移しで与えてくれたあの味を、まだ忘れられずにいる。&lt;/p&gt;
&lt;p&gt;（&lt;a href="/post/sweet-2/"&gt;後半&lt;/a&gt;へ続く）&lt;/p&gt;</content><category term="lily"/></entry><entry><title>商用利用の難しさと曖昧さ</title><link href="https://ama.ne.jp/post/dont-use-nc/" rel="alternate"/><published>2019-03-12T13:43:00+09:00</published><updated>2019-03-12T13:43:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-03-12:/post/dont-use-nc/</id><summary type="html">&lt;p&gt;嘘です&lt;/p&gt;</summary><content type="html">&lt;p&gt;有料版: &lt;a href="https://note.mu/tabscat/n/nba96a31a70af"&gt;「商用利用」の難しさと曖昧さ（Picrew利用規約の変更を例として）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- ここから本文 --&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://picrew.me/"&gt;Picrew&lt;/a&gt;というユーザー投稿型のモンタージュ系画像メーカーがある。&lt;/p&gt;
&lt;p&gt;強い女メーカー&lt;sup id="fnref:8087"&gt;&lt;a class="footnote-ref" href="#fn:8087" title="https://picrew.me/image_maker/8087"&gt;1&lt;/a&gt;&lt;/sup&gt;の作者であるagt87_&lt;sup id="fnref:agt87_"&gt;&lt;a class="footnote-ref" href="#fn:agt87_" title="https://twitter.com/agt87_"&gt;2&lt;/a&gt;&lt;/sup&gt;氏が、商用利用を中止するよう法的手段の示唆を含めて警告したこととそれに関する炎上（&lt;strong&gt;強い女メーカーの件&lt;/strong&gt;）は記憶に新しい。&lt;/p&gt;
&lt;p&gt;さて、最近（2019年2月22日）、Picrewの利用規約に変更が加えられた&lt;sup id="fnref:picrew-rule-archive"&gt;&lt;a class="footnote-ref" href="#fn:picrew-rule-archive" title="アーカイブ"&gt;3&lt;/a&gt;&lt;/sup&gt;。結論から言えば、この変更は、今回の炎上にのみフィットした非常にアドホックなものである。不必要なほどに詳細でありながら、かつ必要な部分は簡略なままというちぐはぐな変更となっている。&lt;/p&gt;
&lt;p&gt;ここからは、必要に応じて解説を加えながら「商用利用」の難しさと曖昧さについて触れていく。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Picrewの利用規約&lt;sup id="fnref:picrew-added-rule"&gt;&lt;a class="footnote-ref" href="#fn:picrew-added-rule" title="なぜか実際は「利用規約」のページには明記されず「Picrewの遊び方」なるページに掲載されている。"&gt;4&lt;/a&gt;&lt;/sup&gt;に追加されたのは「商用利用の定義について」という項目である。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;個人、法人にかかわらず、直接的・間接的に金銭等の利益を得る目的でのご利用は、商用利用となります。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;まずは「商用利用」の素朴な定義である。この定義で足りるなら、強い女メーカーの件が起こることはなかっただろう。&lt;/p&gt;
&lt;p&gt;この定義は非常に広く、曖昧である。そもそも「利益を得る目的でのご利用」とはなんなのか？　現代において、何一つ利益を生まない活動とはどのようなものだろうか。自室で行われる自慰行為でさえ値段を付けて販売されうる中で、Picrewはどんな利用方法を想定しているのだろう。&lt;/p&gt;
&lt;p&gt;Picrewの示す「遊び方」を含め、現代において「非商用利用に限る」旨を含んだライセンスのほとんどは曖昧で、その運用はお気持ちに任されていることが多い。&lt;/p&gt;
&lt;p&gt;さて、Picrewの言うように「間接的に」利益を得る行為さえ禁止されるとすれば、本来ならほとんどの活動が否定されるはずだ。しかし、現実はそうなってはいない。そのような運用では、Picrewのサービス自体に意味がなくなるからだ。&lt;/p&gt;
&lt;p&gt;Picrew自身も何が「商用利用」に当たるかを検討しかねていることは、以下の但書に現れている。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;商用のご利用例&lt;br&gt;
/* 省略 */&lt;br&gt;
・アフィリエイトを設置している、サイト、アプリ等でのご利用&lt;br&gt;
*1 レンタルブログなどサービス運営者がアフィリエイト等を設置している場合で、Picrewのユーザーに金銭等の利益が発生しない場合は、該当しません。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;この条件については、Picrewもかなり悩んだであろう。強い女メーカーの件に迎合しなければならないとすれば、「（コンテンツを編集する主体が）アフィリエイトを設置したサイト」を（コンテンツを編集する主体にとっての）商用利用としつつ、「（サーバーを運営する主体が）アフィリエイトを設置したサイト」を（コンテンツを編集する主体にとっての）非商用利用としなければならないからだ。&lt;/p&gt;
&lt;p&gt;しかし、サーバー運営者がPicrewにて生成された画像を設置されたサイトで利益を得ることは、「直接的・間接的に金銭等の利益を得る目的でのご利用」ではなかったか？　それは「利益を得る目的」ではない？　では、彼らはなんのために無意味な広告を設置してサイトの景観を汚しているのだろう。&lt;/p&gt;
&lt;p&gt;この但書は強い女メーカーの件にのみ適応したものであり、いくらでも抜け道が考えられる誤った規約である。例えば、サーバーを運営する主体が、コンテンツを編集する主体を騙って画像のアップロードを繰り返したととしたら？&lt;/p&gt;
&lt;p&gt;間違ったことを明記するのは、明記しないことよりも悪い。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;以下のご利用例は一例であり、各画像メーカーの説明文に、利用範囲に関する記載がある場合はそちらが優先されます。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ここには、Picrewの隠しきれない責任逃れの姿勢が現れている。「商用利用」の中途半端な外延的定義を与えたふりをして、その曖昧さに対する責任を画像メーカーの作者に転嫁しているのだ。「商用利用」の定義は難しいが、状況を限定した具体例を考えるのは比較的簡単である。しかし、それはやはり定義とはいえない。&lt;/p&gt;
&lt;p&gt;もう一度言う。間違ったことを明記するのは、明記しないことよりも悪い。&lt;/p&gt;
&lt;p&gt;さらに、この規約にはもう一つの問題が残っている。たとえ利用規約に厳密な「商用利用」の定義を与えたとしても、各画像メーカーの定義でいくらでも撹乱できてしまうということだ。&lt;/p&gt;
&lt;p&gt;魅力的な画像メーカーが、商用利用の枠組みに引きずり込もうという悪意をもって設置されたトラップとしたら？　次の使用中止を求める警告が向けられるのを恐れて、我々はPicrewの使用をやめるほかないだろう。&lt;/p&gt;
&lt;p&gt;我々は「商用利用」の曖昧さを誰にも押し付けてはならないし、扱いきれないなら捨てるほかない。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;以下の場合は、商用が許可されていない場合であってもご利用頂けます。&lt;br&gt;
・引用の要件を満たすなど、法律に従って適正にご利用頂く場合&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ここに至っては、そもそも記載の必要がない。これは、強い女メーカーの件で「適切な引用は違法ではない！」という声が多くあったためだろう。しかしながら、Picrewが法律によって認められた行為を許可あるいは禁止する権限はない。間接的ではあるが、強い女メーカーの件に追従した姿勢がよく現れている。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ここまで説明した通り、Picrewが行った利用規約の変更は全くの無意味だった。強い女メーカーの件をモデルとして、次の被害が現れたらまた規約を不必要に詳記しようというのだろう。&lt;/p&gt;
&lt;p&gt;彼らは強い女メーカーの件を短期的に収束させようとするだけではなく、厳密な「商用利用」について考え、適切な規約を示さねばならない。さもなくば、さらなるお気持ち運用からの大事故を生むことになるだろう。&lt;/p&gt;
&lt;p&gt;ルールはお気持ちから生まれることもあるが、お気持ちそのものではない。「いっぱい使ってもらって気持ちよくなりたい！」「でも、自分のふんどしで相撲を取られたくない！」という素直な気持ちに寄り添い続けても、誰も幸せにはならない。&lt;/p&gt;
&lt;p&gt;ただし、適切な「商用利用」に向き合えるほど人間は賢くないし、現代人にはそうするだけの余裕ももう残っていない。これは非常に残念なことだ。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:8087"&gt;
&lt;p&gt;https://picrew.me/image_maker/8087&amp;#160;&lt;a class="footnote-backref" href="#fnref:8087" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:agt87_"&gt;
&lt;p&gt;https://twitter.com/agt87_&amp;#160;&lt;a class="footnote-backref" href="#fnref:agt87_" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:picrew-rule-archive"&gt;
&lt;p&gt;&lt;a href="http://archive.fo/q27mY"&gt;アーカイブ&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:picrew-rule-archive" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:picrew-added-rule"&gt;
&lt;p&gt;なぜか実際は「&lt;a href="https://support.picrew.me/terms"&gt;利用規約&lt;/a&gt;」のページには明記されず「&lt;a href="https://support.picrew.me/about_picrew_player"&gt;Picrewの遊び方&lt;/a&gt;」なるページに掲載されている。&amp;#160;&lt;a class="footnote-backref" href="#fnref:picrew-added-rule" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>同人誌爆売れ最短マップ</title><link href="https://ama.ne.jp/post/concept-diagram/" rel="alternate"/><published>2019-02-18T17:17:00+09:00</published><updated>2019-02-18T17:17:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-02-18:/post/concept-diagram/</id><summary type="html">&lt;p&gt;ジョークです&lt;/p&gt;</summary><content type="html">&lt;p&gt;有料版: &lt;a href="https://note.mu/tabscat/n/n7131e82b6523"&gt;サクラなんて待ちたくない！同人誌をたくさん売りたいあなたが知りたい爆売れ最短マップ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- ここから本文 --&amp;gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;はじめに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;「質」から「量」の時代へ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;売れたい！「量」的目標を達成するには？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;感想がほしい！「質」的目標を達成するには？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;「量」から「質」の時代へ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;ここまでのまとめ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;分かりやすい同人誌を書くには？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;さらに進んだ話題&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_9"&gt;体験版の増加&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;ジャンルの選択&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;あなたは、同人活動をしていますか？&lt;/p&gt;
&lt;p&gt;では、同人誌を発行したことはありますか？&lt;/p&gt;
&lt;p&gt;その同人誌を、即売会で頒布したことは？&lt;/p&gt;
&lt;p&gt;近年、多くの人が同人誌を発行しています。漫画、イラスト、小説、評論、ルポ、技術解説……それぞれの人生があるように、それぞれの個性溢れる同人誌が巷を賑わせています。それに伴って様々なジャンルの同人誌即売会が開催され、多くの交流が生まれているようですね。&lt;/p&gt;
&lt;p&gt;同人誌を発行するのは、もはや珍しいことではなくなりました。最近では、コンビニでも同人誌印刷にフレンドリーなサービスが始まるなど、技術や予算、熱意などの問題によって同人誌の発行に取り掛かれないということは減りつつあります。&lt;/p&gt;
&lt;p&gt;同人誌を発行するハードルは、確実に下がっています。しかし、それは同時に大量参入による競争の激化――すなわち、その「次」のハードルの上昇につながっているといえるでしょう。&lt;/p&gt;
&lt;p&gt;例えば、数日間にわたって巨大な会場で開かれる即売会では、事前に定めたルートや予算に沿って周回し「お目当て」の同人誌を集めることが恒例行事となっています。さらに効率を上げるために、指示役と購入役を分担する複数人のグループを構成して全員の利益最大化を企図することもあります。これはまさに合戦です。&lt;/p&gt;
&lt;p&gt;この「効率的な」戦略の下では、あなたの同人誌が手に取られるまで、そして売れるまでのハードルは非常に高くなったといえるでしょう。&lt;/p&gt;
&lt;p&gt;「じゃあ、どんな同人誌を書けば売れるのよ？」&lt;/p&gt;
&lt;p&gt;当然の疑問です。&lt;/p&gt;
&lt;p&gt;このような問いに対して、たいてい我々は今の流行を教えて解決したことにしようとします。今はこのジャンルが流行っていて、このネタが、今期アニメが……。&lt;/p&gt;
&lt;p&gt;そうでなければ、あなたの書きたいものを書けばいいんだよ、という甘い言葉を掛けているのかもしれません。&lt;/p&gt;
&lt;p&gt;でも、それって本当に求められてる回答ですか？　そうして生まれるのが、売れなかったせいで恨み言を並べるサークルだとしたら？&lt;/p&gt;
&lt;p&gt;こんな時は、適切に抽象度を上げていくことで売れる同人誌の方向性を知ることができます。本記事ではその一例として、下のような概念マップを用いて説明を進めようと思います。マップを埋めながら概念や具体例を明かしていく、という構成です。&lt;/p&gt;
&lt;p&gt;この記事は、「同人誌が『選ばれる』ようになった市場」の中で、とにかく自分の同人誌を売りたい人にその方針を示すためのものです。つまり、「いっぱい売りたい」「いっぱい『いいね』が欲しい」「いっぱい感想をもらいたい」と考えている人に、最強の同人誌発行計画の一助となるような概念を、図を用いて分かりやすく説明します。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/concept-diagram/u-j-fig_001.png"&gt;&lt;img alt="爆売れ最短マップ（スタートとゴールのみ示し、残りは白抜きにしたもの）" height="849" src="/images/concept-diagram/u-j-fig_001_thumb.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なお、本記事は次の人には向いていません: もう同人活動で成功している人。たぶん、あなたが考えるだろう反論は「適切に読まれる」から成り立っています。&lt;/p&gt;
&lt;p&gt;&amp;lt;!-- ここから有料 --&amp;gt;&lt;/p&gt;
&lt;h2 id="_2"&gt;「質」から「量」の時代へ&lt;/h2&gt;
&lt;p&gt;あなたが洗濯洗剤の詰替えパックを買う時は、家にある洗剤ボトルと適合するものを購入します。まぁ、適当な洗剤をごちゃまぜに使う人もいるでしょうが、それはあまり効率的な行為ではありません。&lt;/p&gt;
&lt;p&gt;さて、あなたがいつものように詰替えパックを買いに量販店に行ったところ、お気に入りの洗剤ブランドが廃止されていたことを知りました。とても悲しいことです！　これから何日か、慣れない香りに鼻をやられなければならないのですから。&lt;/p&gt;
&lt;p&gt;とはいえ、じゃあ明日から洗濯をしないというわけにもいきません。メーカー、香り、洗浄力……総合的に判断して、あなたはしぶしぶ新しい洗剤を購入して帰っていきました。&lt;/p&gt;
&lt;p&gt;この状況と似たような選択の視線が、同人誌即売会にも強く向けられています。&lt;/p&gt;
&lt;p&gt;かつて、同人活動とは文字通り同好の士のネットワークで密な交流を楽しむいわば「質」の時代でした。しかし、現在あなたが乗り出そうとしている荒海では、同人誌が様々な側面から判定され、事前に定められたルートや予算にどう組み入れられるかを期待して待つ「量」の時代になってきています。&lt;/p&gt;
&lt;p&gt;この傾向は、あなたの自己評価にも大きな影響を与えています。たいてい、あなたが自分に（同人活動の）評価を与える場合、おそらく頒布部数、売上額、いいねの数などを見て他人と（または自分と）比較すると思います。ここで注目すべきなのは、これらは全て量的な評価だということです。&lt;/p&gt;
&lt;p&gt;でも、実はあなたはこんなことも思っています。「いいねにはもう満足したので、質に寄った濃い感想をもらいたい」と。&lt;/p&gt;
&lt;h2 id="_3"&gt;売れたい！「量」的目標を達成するには？&lt;/h2&gt;
&lt;p&gt;あなたがまず考えるのは、「よい作品を書けば売れる」という素朴なアイデアです。&lt;/p&gt;
&lt;p&gt;とにかくよい作品を書けば、きっと口コミで広まってみんなに買ってもらえる……。あれ？　でも、買わないと読めない作品を誰に宣伝してもらうつもりなのでしょうか？　お友達のインフルエンサーに広めてもらいますか？　いい考えですね。では、やってみましょう……。&lt;/p&gt;
&lt;p&gt;残念ですが、内容がそのまま売上に繋がることはあまりありません。もしもそう錯覚しているのであれば、それはあなたが持つ作者やサークルに対する信頼が厚いということです。いえ、決してそれは悪いことではありません。&lt;/p&gt;
&lt;p&gt;でも、今のあなたの売上に直結するのはずばり「分かりやすさ」です。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/concept-diagram/u-j-fig_002.png"&gt;&lt;img alt="爆売れ最短マップ（ゴール前に「分かりやすさ」を加えたもの）" height="849" src="/images/concept-diagram/u-j-fig_002_thumb.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;「はぁ？　分かりやすい作品だなんて、児童書作家へのアドバイスのつもり？」&lt;/p&gt;
&lt;p&gt;いいえ。作品を分かりやすさでラッピングするのです。分かりやすさのために、単純明快でひねりのない作品を作らねばならないということではありません。複雑で味わい深い作品だからこそ、何段かに分けて分かりやすさを引き出さねばならないのです。&lt;/p&gt;
&lt;p&gt;もう少し具体的な説明が必要ですね。&lt;/p&gt;
&lt;p&gt;作品の分かりやすさを引き出すためには、豪華なラッピングの演出に取り組む必要があります。&lt;/p&gt;
&lt;p&gt;ラッピングというのは、同人誌の内外を包み込む要素です。およそ、以下のような項目で成り立っています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;表紙&lt;/li&gt;
&lt;li&gt;タイトル&lt;/li&gt;
&lt;li&gt;値段&lt;/li&gt;
&lt;li&gt;作者、サークル&lt;/li&gt;
&lt;li&gt;紹介文、紹介マンガ&lt;/li&gt;
&lt;li&gt;評価、口コミ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;表紙は、古典的なラッピング要素です。作品の種類によってはないこともありますが、未だに作品の（非常に精度の悪い！）サマリーとして役立っています。長くて分かりにくい内容を一枚の絵で要約することは、少し考えれば意味のないことだと分かるはずですが、なぜか大衆には受け入れられています。ですから、表紙詐欺と指さされることを恐れる必要はなく、とにかくよい表紙に仕上げればよいのです。&lt;/p&gt;
&lt;p&gt;タイトルは、近年では作品のサマリーとしての役割をどんどん強めています。旧来のように抽象的なタイトルを使ってもよいですが、あらすじも読めない層のためにより短いあらすじとして使うとよいでしょう。長すぎるタイトルはしばしば揶揄の対象になりがちですが、明らかに分かりやすいのです。使わない理由はありません。&lt;/p&gt;
&lt;p&gt;豪華なラッピングと聞いて、お金を掛けて装飾過多な本を作ろうと考えた人はいませんか？　でも、値段も重要なラッピング要素です。高すぎれば売れにくいでしょうし、実は、当該ジャンルの相場より安いからといって直ちに売れるということもありません。&lt;/p&gt;
&lt;p&gt;紹介文や紹介マンガは、最も具体的なラッピング要素です。内容についてタイトルよりも長く記すことができます。ただし、あなたの作品は分かりにくいので、エッセンスが分かりやすい記号として取り出されて並べられることが多いです。そういう記号化を不快に感じることもあるでしょうが、耐えてください。知らない洗剤のボトルに書かれた難解なポエムに注意を払う人はそう多くありません。&lt;/p&gt;
&lt;p&gt;こうしてあなたの引き出した分かりやすさは、洗剤ボトルに添えられた香りや洗浄力の宣伝文句がごとく、ただちに自分自身を比較と選択の視線の下へと晒します。あなたが提示した「分かりやすさ」の総体が、その同人誌が「手に取られるか」を決定します。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/concept-diagram/u-j-fig_003.png"&gt;&lt;img alt="爆売れ最短マップ（「分かりやすさ」の前に「ラッピング」とその詳細を加えたもの）" height="849" src="/images/concept-diagram/u-j-fig_003_thumb.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;これなら、ピンときましたか？　つまり、第一目標はよい内容を盛り込むことではないのです。&lt;/p&gt;
&lt;p&gt;「よい内容に仕上げなくてもいい、ですって？　そんなわけないわ！」&lt;/p&gt;
&lt;p&gt;はい。そうですね。そんなわけないんです。大人気作家の〇〇さんは内容もきちんと評価されていますし、あなたもそれを実感しています。&lt;/p&gt;
&lt;p&gt;でも、あなたはまだ大人気作家ではありません。あなたがよい内容を作っても、それをそのまま誰かに知らしめるのはとっても難しいんです。だから、どうか、どうか、内容だけをリファインし続けて「いっぱい売れたい、いつかは売れる」だなんて考えないでください。&lt;/p&gt;
&lt;h2 id="_4"&gt;感想がほしい！「質」的目標を達成するには？&lt;/h2&gt;
&lt;p&gt;あなたは洗剤の製造業者ではないので、どれだけ自分の同人誌が売れて量的評価を得られたとしても、一方でまだ質的評価が少ないことにうんざりしているはずです。たくさんのPVといいねが集まっていても、具体的な感想がもらえないんじゃ張り合いがありませんよね。&lt;/p&gt;
&lt;p&gt;理想的には、購入者全員から十個の観点から百点満点で採点してもらい、十五個の質問にそれぞれ二百文字以上で具体的な評価を書いてもらいたいものです。では、即売会は対面で頒布できるのが利点ですから、渡すたびにそうお願いすればいいでしょうか？&lt;/p&gt;
&lt;p&gt;でも、実際はほとんどの人は感想を返してくれません。これは悲しいことです。残念ですが、普通の人はニュートラルな立場で作品について言及する動機がないのです。あなたは同人誌を発行しただけであり、新人賞に応募したわけではありません。&lt;/p&gt;
&lt;p&gt;よい作品だからといって常によい評価を得られるとは限りません。場の空気によっては不合理に酷評されたり、炎上することだってあります。&lt;/p&gt;
&lt;p&gt;これは非常に難しいことです。あなたはインターネットに詳しいですか？　我々は「どんなによい作品でもケチをつけることができる」という最悪な現実について、インターネットを通してよく知っているはずです。&lt;/p&gt;
&lt;p&gt;「私だって〇〇さんと同じようなレベルの同人誌を発行しているのに、どうしてあいつだけ売れてるのよ？　ずるいことをしてるに決まってる！」&lt;/p&gt;
&lt;p&gt;落ち着いてください。作品そのものの性質が、必ずしも反応に直結するわけではありません。&lt;/p&gt;
&lt;p&gt;たいていの人は、何かを評価する場合、無意識のうちに自分を何らかのフレームの中に押し込めています。フレームというのは、評価対象のどの部分にどれくらい反応するかという指標であり、ここにはいわゆる先入観も含まれています。フレームの調整弁が壊れると、不合理で無意味な評価を下してしまいがちです。&lt;/p&gt;
&lt;p&gt;我々は、歴史的な名作に対して「でも、作り話じゃん」と切り捨てる人を無視しようとします。それはなぜでしょうか？　我々は高度なコンテキストで「歴史的な名作を読む」フレームを共有しているからです。&lt;/p&gt;
&lt;p&gt;炎上のフレームで見られれば炎上しやすくなりますし、酷評のフレームで見られれば酷評されやすくなるでしょう。でも、どうやっても炎上も酷評も起きない作品もあるかもしれませんね。確かに、あなたはそういう作品をたくさん知っています。&lt;/p&gt;
&lt;p&gt;では、それらの作品を重箱の隅をつつくフレームで見られたらどうでしょう？　面白いストーリーを見てほしいのに、設定の細かい矛盾だけで盛り上がってしまうかもしれませんね。&lt;/p&gt;
&lt;p&gt;匿名掲示板で、自分の描いた絵を貼って評価を求めている人を見たことはありますか？　集まる評価は「スレの流れ」というフレームである程度決まってしまうにも関わらず、書き込む人たちは自らを縛るフレームの存在を否定し、かつ評価の正当性を主張しようとします。これは「ノリ」であり「空気」であり、より強力かつ明示的に示されれば「同調圧力」ということもできるでしょう。&lt;/p&gt;
&lt;p&gt;個人がそれぞれで評価をするように働きかければ、ノリや同調圧力は排除できるように見えます。でも、どうやってたくさんの個人に頒布すればいいのでしょう？&lt;/p&gt;
&lt;p&gt;もう一度言いますが、あなたは新人賞に応募したわけではないのです。大衆には、全ての作品に気を払う余裕も大義も残っていないのです。作品が選ばれるには豪華なラッピングが必要で、大衆はラッピングを通じて内容とは直接関係のない先入観を受け取っています。&lt;/p&gt;
&lt;h2 id="_5"&gt;「量」から「質」の時代へ&lt;/h2&gt;
&lt;p&gt;私はここまでずっと、同人誌を洗剤のボトルにたとえて話を進めてきました。でも、このことに違和感を覚えている人も多いでしょう。同人誌は洗剤のような生活必需品ではないし、必ずしも便利さで選ぶものでもないからです。&lt;/p&gt;
&lt;p&gt;あなたの同人誌が、量販店に並んだ有象無象の洗剤ボトルと同じように「平等に」見られている間は、おそらく質的評価の収集は捗りません。質的目標を達成するには、平等に見られる舞台から外れなければなりません。&lt;/p&gt;
&lt;p&gt;あなたは作品を通して「人間関係を構築する」ことにより、再び「適切に読まれる」ように強く働きかけることができるようになります。「適切に読まれる」とは、同人誌が「量」として無限に並べられる舞台から脱却して「質」の時代を取り戻す取り組みであり、意図したフレームで作品を見てもらうように働きかけるということです。&lt;/p&gt;
&lt;p&gt;人間関係の構築というのは、お友達をいっぱい作ろうということではありません。もちろんそれも含まれますが、タイトルや表紙、紹介文に託した量的な分かりやすさから、作品の傾向から得られるイメージに固められた質的な分かりやすさに移行しようということです。あなたという「作者」は作品の傾向を示す分かりやすい情報だということを意識してください。&lt;/p&gt;
&lt;p&gt;自らを特別視させる取り組みを、我々は「ブランディング」と呼んできました。ブランディングはラッピングの一部となります。&lt;/p&gt;
&lt;p&gt;そのように作り上げた人間関係の総体が、直接的（あなたから）または間接的（あなたと繋がっている誰かから）に、ラッピングから受け取る分かりやすさを信用できるものとするのです。これはかつて作者だけではなく、出版社、レーベル、書店が担っていた役割でもありました。同人誌の発行を個人の責任で行えるようになったことで、いわゆる「個人の信用が大事になる」時代に入ったと言うこともできます。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/concept-diagram/u-j-fig_004.png"&gt;&lt;img alt="爆売れ最短マップ（「分かりやすさ」に作者から生まれる「信頼」を加えたもの）" height="849" src="/images/concept-diagram/u-j-fig_004_thumb.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;つまり、適切に読まれるためには、最終的にはよい作者、よいサークルになる必要があるということです。適切に読まれることで、よい内容をよい内容としてきちんと評価されることにも繋がります。&lt;/p&gt;
&lt;p&gt;いえ、単にお行儀よくすればいいというわけではありません。発行する作品が信頼されるような作者になる必要があるということです。作者やサークルというのは、読者がどの作品に時間をかけるかを決めるための分かりやすい情報であり、そのような分かりやすさは売上に直結するのでした。&lt;/p&gt;
&lt;p&gt;あなたはまだ、適切に読まれるほどに名を知られていません。豪華なラッピング作りに腐心しながら、気長にやっていくしかないわけですね。&lt;/p&gt;
&lt;p&gt;たぶん、ここまで読む中で、あなたはこの法則に当てはまらないような作者や作品を探し出してコメント欄に書く準備をしていることでしょう。「〇〇さんの〇〇は面白いけど、この法則と離れてて……」という反論も、かの作品が適切に読まれるからこそ成り立つ話です。&lt;/p&gt;
&lt;p&gt;少し考えてみましょう。あなたがその作者の作品を最初に手に取った理由はなんですか？　好きなレーベルだから？　みんなから評価されているから？　それとも、昔から評価されているから？　もしかして、タレント時代の彼を知っているから？　あぁ、単に古本屋で偶然手に取ったからですか？&lt;/p&gt;
&lt;p&gt;全て正しい動機だと思います。では、あなたも同じようにファンを作ってみましょう！&lt;/p&gt;
&lt;p&gt;……さて、大人気になりましたか？　どうにも無理そうでしたら、次の節に進んでください。&lt;/p&gt;
&lt;h2 id="_6"&gt;ここまでのまとめ&lt;/h2&gt;
&lt;p&gt;同人誌をたくさん売り、よい感想をもらうためにすべきこと:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「分かりやすい」豪華なラッピングを作る&lt;/li&gt;
&lt;li&gt;「適切に読まれる」ネットワークを構築する&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_7"&gt;分かりやすい同人誌を書くには？&lt;/h2&gt;
&lt;p&gt;ここまで「分かりやすさ」が大切と述べてきました。やっと、具体的にどんな同人誌が「分かりやすい」かについて触れることができます。ただし、この記事の重要なポイントは前述した概念の部分であり、その実装はごく当たり前のことです。もう読み飛ばしてもかまいません。&lt;/p&gt;
&lt;p&gt;あなたがまず「分かりやすい利益」として考えるのは、「知識」や「体験」でしょう。お金を払うことで今後に役立つ知識を深めたり、面倒な準備なく他人の経験を自分のものにできるというのは、いわゆる自己啓発本や自伝、情報商材に通じるところがあります。&lt;/p&gt;
&lt;p&gt;そのような「知識」や「体験」を与えられる同人誌のジャンルとしては、次のようなものが考えられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;評論&lt;/li&gt;
&lt;li&gt;レビュー&lt;/li&gt;
&lt;li&gt;考察&lt;/li&gt;
&lt;li&gt;技術&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これはかなり大きな枠組みです。もちろん、アニメの深い考察を述べた文章と、コードを交えて軽快に最新技術を解説した文章を同じジャンルというつもりはありません。ただし、あなたはたいていこのような種類の同人誌のラッピングから、すぐに役立つノウハウや興味のある情報を見つけようとするはずです。&lt;/p&gt;
&lt;p&gt;大衆の知識欲は活用すべき大きな力です。結局その本を読まなかったり、読んで理解できなかったとしても、彼らはきっと満足するでしょうから。&lt;/p&gt;
&lt;p&gt;しかし、あなたがいつでもこのように知識や体験を伝授するジャンルを志向しているとは限りません。知識や体験を盛り込む、すなわち「新しいことを知りたい」という需要を満たしにくいジャンルは多いのです。&lt;/p&gt;
&lt;p&gt;そうすると、次に分かりやすい利益として注目しなければならないのは、「共有」された要素でしょう。&lt;/p&gt;
&lt;p&gt;大衆は、全く知らないことには興味がありません。しかし、少しでも知っていることには反応し、言及することができます。このような「少しでも知っている」人の大きさを「パイ」とでも呼びましょう。&lt;/p&gt;
&lt;p&gt;知識や体験の伝授を主目的としないものが多く、かつ、パイの大きなジャンルとしては以下のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;二次創作&lt;/li&gt;
&lt;li&gt;アダルトコンテンツ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらのジャンルが人気である理由は、広く共有されている要素を使って分かりやすいラッピングを簡単に作ることができるという点にあります。&lt;/p&gt;
&lt;p&gt;大衆が二次創作を読む際に注意する点は、原作の世界観、ストーリー、キャラクターの性格や外見、キャラクター同士の関係などといった既知の情報がどれほど継承または改変されているかという部分です。改変の仕方によっては、「リスペクト」なるある種の共有意識が足りないと揶揄されることになります。&lt;/p&gt;
&lt;p&gt;対象読者層によってはストーリーや世界観を無視されるものもありますが、少なくともキャラクターの外見は原作に近いことを期待されているはずです。&lt;/p&gt;
&lt;p&gt;つまり、二次創作は「自分の想定内で物語が構成されている」という保証であり、簡単に信用されうるラッピングとなるのです。この保証の本質はごく簡素なものであり、運用の多くはコミュニティに任されています。&lt;/p&gt;
&lt;p&gt;このような「悪い」驚きがないという保証のより形式的な例は、いわゆる「カップリング」に現れています。我々はカップリングを用いて物語の方向性を定め、かつ「A×B」や「AB」というラッピングとして示してきました。カップリングではしばしば非可換であることが強調され、先後が入れ替えられるなどした詐欺的な内容の作品は遅かれ早かれ排除されます。&lt;/p&gt;
&lt;p&gt;もう一つの例として、「解釈違い」という言葉があります。解釈というのは、物語やキャラクターから得られる妥当な理解のことでした。いわゆる「解釈違い」を強く自覚する人たちは、自分の経た理解への道筋をあたかも厳密に正しい証明であるように振る舞い、その信念から他者を攻撃することさえあります。&lt;/p&gt;
&lt;p&gt;この現実は、同人誌を広く公開したいあなたにとって少し恐ろしく感じるかもしれません。しかし、「解釈違い」を強く自覚する人たちは、すなわち悪い驚きがないという保証を強く求めているとも言い換えることができます。彼らに合った作品を提供することで、安心して適切に読まれるネットワークを構築することができるでしょう。&lt;/p&gt;
&lt;p&gt;また、大抵のアダルトコンテンツでは、登場人物の精神的または身体的な要素を書き並べたり、セックスシーンの有無やその詳細を記すことでラッピングとしています。それらはしばしば「タグ」として検索できるようになっており、大衆が求める要素が分かりやすい利益として抽出されていることが分かります。&lt;/p&gt;
&lt;p&gt;我々はそういう（カップリングよりも）抽象化した要素を「記号」と呼び、検索やアイデンティティの確立に役立ててきました。&lt;/p&gt;
&lt;p&gt;厳密には二次創作とは異なりますが、キャラクターや設定に限らない広い世界観、例えば「中世ヨーロッパ風世界に転生し、たくさんの女性キャラクターに囲まれて冒険を進めていく」というのも、広く「共有」されている観念です。&lt;/p&gt;
&lt;p&gt;こうしてみると「〜回泣けます」という売り文句も決してバカにできなくなってきます。大衆が求めている要素を「分かりやすい利益」としてラッピングしているのですから。&lt;/p&gt;
&lt;p&gt;ここまでの説明からピンときた方もいるでしょうが、「分かりやすさ」というのは、自分が労力を費やすはずだった「評価」と「選択」を誰かに押し付ける振る舞いに他ならないのです。大衆は簡単に楽しめる「分かりやすい」コンテンツを求めており、そうでないコンテンツはラッピングの部分で「分かりやすさ」の実装を引き受けなければなりません。&lt;/p&gt;
&lt;p&gt;なお、ここではイラストの有無について言及していませんでしたが、イラストや漫画は考える余地もなく単に分かりやすい利益です。あれば当然メリットになりますが、前述した要素でも十分に代替することができます。&lt;/p&gt;
&lt;p&gt;さて、同人活動を頑張っているあなたは、こうしたラッピングを自分自身で書かねばなりません。人によっては、自分の作品を売れるように（しばしば作品をスポイルしてでも）デコレーションすることに苦痛を感じるでしょう。しかし、作品を読んでもらうには必要なことです。つまり、誰かに見てほしいという思いが勝負を分ける、すなわち「承認欲求が大事になる」時代といえます。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/concept-diagram/u-j-fig_005.png"&gt;&lt;img alt="爆売れ最短マップ（「分かりやすさ」を詳説して全て埋めたもの）" height="849" src="/images/concept-diagram/u-j-fig_005_thumb.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;結局のところ、冒頭の「流行を見て方向性を決める」というのがあながち間違いではないことが分かってきます。でも、魚を与えるだけでは解決したことにならないのです。&lt;/p&gt;
&lt;p&gt;「二次創作エロ漫画を描けばいいってこと？　なら最初からそう言ってよね！　私はオリジナル小説を書きたかったのに……」&lt;/p&gt;
&lt;p&gt;魚を与えただけでは、こういった勘違いに正しい答えを与えることはできません。&lt;/p&gt;
&lt;p&gt;もっと図全体を見てください。あなたは作品を分かりやすさで包まねばならなかったはずです。「二次創作」「エロ」「漫画」は、消化しやすい利益に直結しますが、必ずしも内容に盛り込む必要はありません。あなたの同人誌がどうやって選ばれるかを、もう一度思い出してください。&lt;/p&gt;
&lt;p&gt;そう。あなたの同人誌は、ラッピングで選ばれるのでした。&lt;/p&gt;
&lt;p&gt;小説を書きたいのなら、挿絵や表紙、紹介マンガで包み込むことで「絵がないこと」をある程度カバーできます。&lt;/p&gt;
&lt;p&gt;どうしてもエッチな絵や話を売りたいのでなければ、キャラクターや設定、ストーリーに記号的属性を付加すればよいでしょう。例えば「共産圏」で「姉妹」が「殺し合う」というのは、非常に限定的で分かりやすい構造です。記号的な分かりやすさは、二次創作と同様に強力なラッピング効果をもたらします。&lt;/p&gt;
&lt;p&gt;記号化を行うことで、あなたの作品が魅力として持っていた複雑な相関が失われてしまうことは、また別の話ですが……。&lt;/p&gt;
&lt;p&gt;あらら、そこまでしてもまだ売れませんか？　ここまで来ると、あなたが豪華なラッピングの価値を無視したことによって起きた悲劇としか言うことができませんね。&lt;/p&gt;
&lt;h2 id="_8"&gt;さらに進んだ話題&lt;/h2&gt;
&lt;p&gt;ここまで同人誌の「分かりやすさ」と「適切に読まれる」ことの大切さについて説明しましたが、まだいくつか話題が残っています。それらについて軽く触れた上で、この記事の終わりとしましょう。&lt;/p&gt;
&lt;h3 id="_9"&gt;体験版の増加&lt;/h3&gt;
&lt;p&gt;インターネットの普及で、あなたは同人誌を発行しなくても作品を見てもらえるようになりました。&lt;/p&gt;
&lt;p&gt;SNSにイラストを一枚ずつ投稿したり、自分の意見を数枚のマンガにまとめて投稿すると、ラッピングを飛ばして先に内容を見てもらうことができるようになります。旧来は、作品から実際の内容を切り出したものを「体験版」と呼んで配布していたわけですが、その比率が体験版と呼ぶにふさわしくないほどに大きくなってきたということです。&lt;/p&gt;
&lt;p&gt;この世界観で強力に作用するのは人間関係（フォロー、フォロワー関係）の構築であり、ラッピングは簡素になりがちです。一枚のイラストや数枚のマンガ、短い動画はそれ自身がラッピングとなりうる手軽さを備えているのです。&lt;/p&gt;
&lt;p&gt;そういう「手軽な」作品を発表することが一般的となった世界でも、やはりフレームからは逃れられませんが、ラッピングの概念はかなり変わってきます。&lt;/p&gt;
&lt;p&gt;このような場合でも、タイトルやキャプションを「分かりやすく」することで、作品を見てもらえる確率を増やすことはできるでしょう。ただ、これらの（内容とは直接関係なかったはずの）ラッピングに実際の内容が含まれてしまうため、この記事の概念でカバーできる範囲を大きく超えています。&lt;/p&gt;
&lt;h3 id="_10"&gt;ジャンルの選択&lt;/h3&gt;
&lt;p&gt;この記事では、ラッピングを豪華にすることで自らを競争に晒すことが必要という話を繰り広げてきました。&lt;/p&gt;
&lt;p&gt;でも、そういうことを望まない人もいるでしょう。ただの趣味だから、人と交流するのが苦手だから、自信がないから……様々な事情があるはずです。同人活動はいろいろな人に開かれた自由な活動ですから、穏やかに生きることを第一目標としてもいいのです。&lt;/p&gt;
&lt;p&gt;同人誌を「とにかく」たくさん売りたいわけではないあなたにとっては、少しマッチョな記事だったかもしれませんね。すみません。&lt;/p&gt;
&lt;p&gt;ただし、同人誌をたくさん売るにはどうしても大きな市場が必要です。競争を避けたいのなら、目標を下げてどのジャンルで同人誌を発行するかを見直してみるとよいでしょう。この記事はそもそも「同人誌が『選ばれる』ようになった市場」での話ですから、その傾向が弱いジャンルではいくらでも（その市場の規模を限度に）活躍できる可能性が残っています。&lt;/p&gt;
&lt;p&gt;どうしても「たくさんの同人誌から選ばれたい」あなたにとっては、少し受け入れがたい提案かもしれませんが……。&lt;/p&gt;
&lt;h2 id="_11"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;あなたは、「ラッピング」で「分かりやすさ」を主張して、快を得ればよいということが分かりました。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/concept-diagram/u-j-fig_005.png"&gt;&lt;img alt="爆売れ最短マップ（全て埋めたものの再掲）" height="849" src="/images/concept-diagram/u-j-fig_005_thumb.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;この図の細かい部分に注意を払わないでください。図中の具体的例は時代によって、ジャンルによって大きく変わります。&lt;/p&gt;
&lt;p&gt;あなたに必要なのは、より大きな概念の把握と、それを実装に落とし込む力なのです。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>ミックスサンド・ベイキング 2</title><link href="https://ama.ne.jp/post/mix-sand-baking-2/" rel="alternate"/><published>2019-01-19T17:02:00+09:00</published><updated>2019-01-19T17:02:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-01-19:/post/mix-sand-baking-2/</id><summary type="html">&lt;p&gt;後編&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/sugar-jelly/"&gt;Sugar Jelly&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;（&lt;a href="/post/mix-sand-baking-1/"&gt;前半&lt;/a&gt;から続く）&lt;/p&gt;
&lt;h2 id="3"&gt;3&lt;/h2&gt;
&lt;p&gt;「りとちゃんと、まりちゃんと、三人で付き合いたいの」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;確かに、ＰＡＲＫは三人揃ってこそ今までやってこれた。だから、私たちの危機は、私自身の危機でもある。当たり前だけど、それってすごく厄介なことよ。&lt;/p&gt;
&lt;p&gt;「だからね、まりちゃん、りとちゃん。私は三人で、私たちで、もっとＰＡＲＫをやっていきたいの」&lt;/p&gt;
&lt;p&gt;テーブルを挟んで私と向き合うことこは、いつになく真剣な表情で私を見つめている。&lt;/p&gt;
&lt;p&gt;「ねぇ、ことこ。一体、何を言ってるの？」&lt;/p&gt;
&lt;p&gt;いつものことだけど、ことこの説明は飛躍しすぎていてついていけない。彼女の頭ではすっかりできあがったお話も、要点を散らかしちゃったら台無しだ。&lt;/p&gt;
&lt;p&gt;「ずっと、三人一緒がいいの。離れたくないの」&lt;/p&gt;
&lt;p&gt;「それは分かったわ。でも、もっと根本的に……」&lt;/p&gt;
&lt;p&gt;「すごく変なことを言ってるのは分かってる。でも、それを私たちの『普通』にしていきたいの。私たちには私たちのやり方があるし、少しずつ探せばいいはずだから」&lt;/p&gt;
&lt;p&gt;「ことこ。それじゃ分からないわ」&lt;/p&gt;
&lt;p&gt;「う……ごめん……」&lt;/p&gt;
&lt;p&gt;ちょっと落ち着いてよね。早口のことこって、面白いけど疲れるわ。&lt;/p&gt;
&lt;p&gt;ことこは「もっと先に進みたい」って言っていた。でも、私たちがこれ以上どこに行けばいいのかなんて、私には分からない。&lt;/p&gt;
&lt;p&gt;ことこが持ち込んできた「提案」は、思っていたよりもずっと大きくて、それでいてすぐに解決しなきゃならない難題だったらしい。まるで、砂浜に打ち上げられたクジラみたいにね。&lt;/p&gt;
&lt;p&gt;「私、三人が離れ離れになるのだけは絶対に嫌なの。りとちゃんは？そう思うよね？」&lt;/p&gt;
&lt;p&gt;「うん。離れるのは、違うと思う。でも、ことこ――」&lt;/p&gt;
&lt;p&gt;必死に説明することこの横で、りとが平気な顔で座っているのがどうしようもなく嫌になる。りとはそうやって、いつも余裕そうにしてるから。&lt;/p&gt;
&lt;p&gt;まるで、全部が他人事だとでもいうようにして。&lt;/p&gt;
&lt;p&gt;前にも――もちろん、バブルドームの外に出たことが防衛隊にバレた時に――こういうことがあった。防衛隊に拘束されてから、ことこが泣きそうな顔でＰＡＲＫが無くなるかもと言い出したのを思い出す。&lt;/p&gt;
&lt;p&gt;「ねぇ、まりちゃんは？どう思う？」&lt;/p&gt;
&lt;p&gt;身を乗り出して私に尋ねることこは、私がことこの話を理解してるかは全く気にしていないみたいだった。好きなこと、大事なこと、目の前の危険……考えすぎて周りが見えなくなるのって、ことこの悪いくせだわ。&lt;/p&gt;
&lt;p&gt;「ことこ。もっとちゃんと言わないと、分からないよ？」&lt;/p&gt;
&lt;p&gt;りとも合わせて立ち上がって、その隣でことこをなだめている。ことこは肩を撫でられて少し落ち着いたらしく、身体をソファに戻して深呼吸をした。&lt;/p&gt;
&lt;p&gt;「そうね、ことこ。全然話が見えないわ」&lt;/p&gt;
&lt;p&gt;「違うの。私、ただ三人でずっと仲良くしたいだけで……」&lt;/p&gt;
&lt;p&gt;やっぱりだめみたいね。&lt;/p&gt;
&lt;p&gt;「それは分かったわ。でも、どうして今さらそんなことを言い出すの？ね、ほら、りとだって――」&lt;/p&gt;
&lt;p&gt;「――りとちゃんにはもう、話したの」&lt;/p&gt;
&lt;p&gt;ことこが私の言葉を遮る。&lt;/p&gt;
&lt;p&gt;それを聞いてりとに視線を向けると、りとはそれに気付いたようにふいと目を逸らした。いなすような動きに、頭がかっと熱くなる。&lt;/p&gt;
&lt;p&gt;ことこはそんな視線のやり取りに気付かずに話し続けているけれど、そんな忙しない声も急に耳に入らなくなった。&lt;/p&gt;
&lt;p&gt;なによ、なによ。ちくちくと、心に嫌な刺激が走る。ガラステーブルの冷たい距離感が、りとと向き合うこの構図が、二人と私を遠く隔てる壁に感じられた。&lt;/p&gt;
&lt;p&gt;二人でこそこそ私に隠れて何かをしているんじゃないかって、そんな根拠のない妄想が浮かんでは消えていく。&lt;/p&gt;
&lt;p&gt;私だって別に意地悪を言いたいわけじゃない。落ち着いて話がしたいのに、感情が前に出てくるのを止められない。私が放った言葉でことこが落ち込んでるのも知っている。りとがあんまり大事なことを言ってくれないのも、慣れてきたつもりだ。&lt;/p&gt;
&lt;p&gt;でも、私じゃだめなの？私はやっぱり仲間外れなの？&lt;/p&gt;
&lt;p&gt;「なによ。知らないのは私だけだっていうの？」&lt;/p&gt;
&lt;p&gt;「そ、そうじゃないよ。ただ、まりちゃんにはしっかり伝えたかったから、まずりとちゃんに相談しようと思って」&lt;/p&gt;
&lt;p&gt;「だって、そうじゃない。今日だって私抜きで、こそこそお出かけ？とっても、楽しそうだわ！」&lt;/p&gt;
&lt;p&gt;ばかみたい、ばかみたい。隠し事ばっかりだ。&lt;/p&gt;
&lt;p&gt;「違う、違うの。まりちゃん、ちゃんと聞いて？」&lt;/p&gt;
&lt;p&gt;ことこのはっきりしない様子にイライラする。&lt;/p&gt;
&lt;p&gt;「ずっと聞いてるわ！何が違うのかは全然分からないけどね！」&lt;/p&gt;
&lt;p&gt;そう言いながら思わず立ち上がろうとしたけれど、急な動きに立ちくらんで足がふらりと揺れてしまう。&lt;/p&gt;
&lt;p&gt;そんな私を見て立ち上がるりとの「まり、危ない！」という声さえ嫌になって、私はぐっと床を踏みしめた。&lt;/p&gt;
&lt;p&gt;「あぁ、本当に嫌だわ！目の前が真っ暗になったみたい」&lt;/p&gt;
&lt;p&gt;「まり、落ち着いて。ことこも」&lt;/p&gt;
&lt;p&gt;「りともりとよ。これは三人のことじゃない。どうしてそんなに平気でいられるのよ？」&lt;/p&gt;
&lt;p&gt;私を言いくるめようとする &lt;em&gt;りと&lt;/em&gt; に指をさす。&lt;/p&gt;
&lt;p&gt;こんなの、落ち着いていられる方が狂ってるわ。狂ってるのはりとの方よ。なんでも知ってるようなその顔は、ＰＡＲＫの行く末などどこ吹く風とでも言いたげだ。&lt;/p&gt;
&lt;p&gt;「だって、慌てたってどうにもならないよ」&lt;/p&gt;
&lt;p&gt;「だからって、落ち着いていられる？もし、りとが仲間外れにされてもそんな顔できるの？」&lt;/p&gt;
&lt;p&gt;「うん。三人なら、きっと大丈夫だよ。ことこだって口下手だけどちゃんと考えてるし、まりも落ち着いて」&lt;/p&gt;
&lt;p&gt;「あー……もういい。分かったわ。りと、結局あんたはＰＡＲＫなんてどうでもいいのよ」&lt;/p&gt;
&lt;p&gt;「そんなことないって。まり、ちょっと変だよ？」&lt;/p&gt;
&lt;p&gt;「変なのはりとよ！もっと真面目に考えたらどう？りとって、いつもそうやって――んむっ！」&lt;/p&gt;
&lt;p&gt;衝撃に目を瞑る。とうとう怒ったりとが飛びかかってきたのかも、と思いながらそっと目を開けた時、私の反論は文字通り塞がれていた。&lt;/p&gt;
&lt;p&gt;「――！」&lt;/p&gt;
&lt;p&gt;ラブファイターシュガースターでも、こんなシーンがあった気がするわ。頭の中に少し残った冷静な部分で、ふとそんなことを考えていた。&lt;/p&gt;
&lt;p&gt;「ん……っ」&lt;/p&gt;
&lt;p&gt;「ちょ、ちょっと……りとちゃん！」&lt;/p&gt;
&lt;p&gt;あの時、ことこが渋谷で見つけた魔法のステッキは確かに貴重な「おたから」だったけど、ことこはどうしてあんなに執着したのかしら？あれを捨てて逃げていたら、私たちは今頃――&lt;/p&gt;
&lt;p&gt;「――ぷはっ。げほ、げほっ！」&lt;/p&gt;
&lt;p&gt;「落ち着いた、まり？」&lt;/p&gt;
&lt;p&gt;りとが私から離れると同時に、こらえていた私の息が一気に流れ出す。ソファに倒れ込むように座り込んだ私には、何が起きたのか理解できなかった。&lt;/p&gt;
&lt;p&gt;「り、りとちゃん。――」&lt;/p&gt;
&lt;p&gt;「――、ことこも、――？」&lt;/p&gt;
&lt;p&gt;「で、でも……まだ――、だから」&lt;/p&gt;
&lt;p&gt;頭の隅で二人の意味ありげな会話が通り過ぎていったけど、それを処理するには流れ込む情報が多すぎる。&lt;/p&gt;
&lt;p&gt;怒りの熱さがぐるぐると頭を回っているところに、りとが流し込んできたものが加わってさらに顔を熱くした。私にはどうにもならない奔流が、私の中を駆けていく。&lt;/p&gt;
&lt;p&gt;「な、なにを、したのよ……ねぇ、りと、おかしいわ……」&lt;/p&gt;
&lt;p&gt;「まり、覚えてる？私としたこと」&lt;/p&gt;
&lt;p&gt;立ち上がったままのりとを下から睨みつけると、りとはなおも穏やかな表情で私を見下ろしていた。&lt;/p&gt;
&lt;p&gt;覚えてると訊かれて思い当たるのは、最近よく見る変な夢のことだ。まさか、あれが全部……&lt;/p&gt;
&lt;p&gt;「夢じゃなかったっていうの？」&lt;/p&gt;
&lt;p&gt;囁くような優しい声、耳にかかる息、柔らかい肌が擦れるむずむずとした感覚。まるで恋人同士がするようなそのじゃれあいを、私はずっと夢だと決めつけていた。でも、私が覚えていないだけで――例えば、私がお酒を飲んでいたとしたら？&lt;/p&gt;
&lt;p&gt;「そうだよ、まり。私たち、まりを仲間外れになんてしないよ。だから落ち着いて」&lt;/p&gt;
&lt;p&gt;「……なによ、それ」&lt;/p&gt;
&lt;p&gt;最近の違和感の正体がすとんと落ちて、代わりにその現実に対する拒否感が胸を覆っていく。私の大事なところが、りとに台無しにされたこと。あまつさえ、私にそんなイベントの記憶が残っていないこと。そして、この胸が苦しい感覚をりと自身には分かってもらえていないこと。抱えきれない現実が、私に襲いかかってくる。&lt;/p&gt;
&lt;p&gt;「なんなのよ。あんたたち……」&lt;/p&gt;
&lt;p&gt;気付くと、私の目から大粒の涙が流れていた。泣くつもりなんて、なかったのに。&lt;/p&gt;
&lt;p&gt;「ま、まりちゃん……」&lt;/p&gt;
&lt;p&gt;「そっか。私のこと、二人で笑ってたんだ」&lt;/p&gt;
&lt;p&gt;「笑ってなんてないよ！私、ただ……」&lt;/p&gt;
&lt;p&gt;「三人でＰＡＲＫ？ことこ、よくも私の前で、そんなこと言ってくれたわね」&lt;/p&gt;
&lt;p&gt;ことこは名前を呼ばれると身体をびくっと震わせて、それきり黙ってしまった。後ろめたいことがあるから、そうやってびくびくしてるに決まってる。&lt;/p&gt;
&lt;p&gt;二人でグルになって私を陥れようだなんて！&lt;/p&gt;
&lt;p&gt;「もういいわ。二人で仲良くやればいいじゃない。ＰＡＲＫなんて、もうおしまいよ！」&lt;/p&gt;
&lt;p&gt;駆け出した私は誰にも止められない。「まりちゃん、待って！」と叫ぶ声も、ずっと遠くに離れていく。いくら走っても足りる気がしなかった。&lt;/p&gt;
&lt;p&gt;このまま、バブルドームを抜け出して世界の果てまで逃げられればいいのに。りとも、ことこもいない場所に。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「はぁ、はぁ……」&lt;/p&gt;
&lt;p&gt;荒い息を整えながら、バブルドームの冷たい壁に寄りかかった。半透明の無機質な硬さが、逃げられない現実を思い出させる。&lt;/p&gt;
&lt;p&gt;私たちの現実は、バブルドームの中にある。私たちはここから逃げられない。私の生活の果てはここにある。かくれんぼには狭いくらいの空間が、私の生活の全て。&lt;/p&gt;
&lt;p&gt;バブルドームの端っこに来たところで、何からも逃れられないのは分かってる。いずれ、二人が私を見つけるだろう。でも今は、汗と涙でぼろぼろになったひどい顔を、誰にも見せたくなかった。&lt;/p&gt;
&lt;p&gt;「私だけ？知らなかったのは、私だけなの……？」&lt;/p&gt;
&lt;p&gt;空を見上げると、ドーム越しのぼんやりとした夕暮れが顔を照らす。散りばめられた色とりどりの装飾が、まるで星空のように私を覆っている。&lt;/p&gt;
&lt;p&gt;バブルドームに差す星の光が緑・赤・青……ひとしきりゆらめいて、目尻から流れた涙が地面に落ちていく。スクーパーズが襲来してから、こんなに泣いたことってあったかしら。&lt;/p&gt;
&lt;p&gt;世界が壊れて、家族と離れて、壊れそうな心に甘い結晶を振りかける。砂糖漬けになった心が湿って、乾いて、その繰り返し。壊れゆく世界の中で、心が少しずつ固いもので覆われていく。&lt;/p&gt;
&lt;p&gt;それが簡単に叩き壊されて、こんな風に自分のことで泣ける日が来るなんて。&lt;/p&gt;
&lt;p&gt;「バカみたい……バカみたい！」&lt;/p&gt;
&lt;p&gt;私が川崎を離れてすぐ――ことこが原宿に移住してくる前――ＰＡＲＫにはりとと私しかいなかった。とはいえ、二人で暮らしていたのはほんの数週間だけだったし、今となってはもうずっと昔の話だけど。&lt;/p&gt;
&lt;p&gt;初対面のりとが、最低限の家事分担を済ませてから、そのまま黙ってベースメントで荷解きを始めてしまったのを思い出す。これから一緒に暮らすのに、私とおしゃべりする気もないなんて、口数が少ない変な子だと思ったものだ。&lt;/p&gt;
&lt;p&gt;かと言って、自己主張ができないというわけでもなく、ふとしたきっかけで言い合いになったりもした。りとの冷めた視線に腹を立てたこともあったけど、しばらく一緒に過ごして、結局のところ周りに興味がないだけだと気付いたのだった。&lt;/p&gt;
&lt;p&gt;それから、ことこがＰＡＲＫに移住してきたのだ。ことこは明るくって、りとにも臆せず甘えていくし、私の話し相手としても不足ない。ことこと一緒に暮らし始めてから、二人よりも三人の方が上手くやっていける、という確かな実感があった。&lt;/p&gt;
&lt;p&gt;一人でいるのが好きなりと、明るくて元気なことこ、そしておしゃべりな私。性格が違う三人だけど、ＰＡＲＫをやっていく上ではそれもいいスパイスだと思っていた。だから、それなりに上手くやってこれた……はずなのに。&lt;/p&gt;
&lt;p&gt;「りとってば、何を考えてるのよ……」&lt;/p&gt;
&lt;p&gt;別に、私に隠れてりとがことこと仲良くしていたって構わない。ことこなら、きっと私よりもりとと上手くやっていけるのかもしれない。&lt;/p&gt;
&lt;p&gt;でも、こんなのってある？二人で暮らしたいなら、二人で勝手にすればいいじゃない！何も言わないで、私を傷つけてまで追い出そうっていうの？&lt;/p&gt;
&lt;p&gt;「これから、どうすればいいのかしら」&lt;/p&gt;
&lt;p&gt;夕日が沈んで、ドームに貼り付いた装飾もすっかり暗くなった。蒸し暑い空気だけが残されて、気だるさと一緒に身体を包み込んでいく。&lt;/p&gt;
&lt;p&gt;バブルを通して見る星のきらめきは、とても弱々しくて頼りない。ドームの夜はとても暗いから、安心して出歩けるのは明るいストリートくらいだろう。武器もなしにこんなドームの端に来るなんて、度胸試しもいいところだ。&lt;/p&gt;
&lt;p&gt;りとと一緒に出歩くことはあったけど、その時もスケボーと武器の準備は万端だったし。&lt;/p&gt;
&lt;p&gt;でも、りとにはもう頼れない。大きなスケボーに二人乗りで夜闇を駆けたのも、物陰に潜むスクーパーを退治して回ったのも、もう昔のことだ。今ここでスクーパーズが現れても、もう私にはどうしようもない。&lt;/p&gt;
&lt;p&gt;もう、どうなったっていい。そう思いながら顔を上げると、狭い路地から影が飛び出してくるのが目に入った。&lt;/p&gt;
&lt;p&gt;とっさに体勢を整えようにも、どうにも身体に力が入らない。現れたのは、ギャングかスクーパーズか、いや、もしかしたら――&lt;/p&gt;
&lt;p&gt;「……！」&lt;/p&gt;
&lt;p&gt;「まり。ここにいたんだ」&lt;/p&gt;
&lt;p&gt;この声は、りとだ。さっと飛び出した影は、スケボーに乗ったりとだった。&lt;/p&gt;
&lt;p&gt;緊張と安堵で心臓がばくばく言っているのが分かる。生命の危険は過ぎ去ったけど、薄暗い闇の中から浮かび上がる聞き慣れた声に、むしろその鼓動は一層高まっていた。&lt;/p&gt;
&lt;p&gt;「……あら、りと。早かったわね」&lt;/p&gt;
&lt;p&gt;私はその動揺を知られないように、寄りかかった身体をゆっくりと起こしてりとに歩み寄った。背中に回したぎょにそライフルには、予備のソーセージがいっぱいに詰められている。&lt;/p&gt;
&lt;p&gt;「何も持たないで出ていったから、心配したよ」&lt;/p&gt;
&lt;p&gt;「そう？敵なんか、一体も来なかったわ」&lt;/p&gt;
&lt;p&gt;りとがスケボーを蹴り上げて、アスファルトと一緒に小気味いい音を立てる。スピード重視の小さなエンジン付きスケボーのデッキテープが目に入って、隠したはずの涙がじわじわと視界を歪めた。&lt;/p&gt;
&lt;p&gt;「帰ろう、まり。ことこも心配してるよ」&lt;/p&gt;
&lt;p&gt;「なによ、今さら。ＰＡＲＫはおしまい、これでいい？」&lt;/p&gt;
&lt;p&gt;「おしまいじゃないよ。早く戻ろう？」&lt;/p&gt;
&lt;p&gt;私に向けられたりとの目は、やっぱり慌てているようにも怒っているようにも見えない。スケボーで駆け回ったせいで息は乱れているみたいだけど、今はそれすら気に食わなかった。&lt;/p&gt;
&lt;p&gt;「おしまいよ。私がいなくなればいいんでしょう？」&lt;/p&gt;
&lt;p&gt;「三人じゃないと、ＰＡＲＫはやっていけないよ」&lt;/p&gt;
&lt;p&gt;「ちょっと待ってよ。りと、あんたがそれを言うの？私たちをぶち壊した、あんたが？」&lt;/p&gt;
&lt;p&gt;「ぶち壊してなんか、ないってば」&lt;/p&gt;
&lt;p&gt;りとの返答がぶっきらぼうになって、怒り始めているのが分かる。けんかの始まりはいつもこうだ。りとの感情を逆撫でするような言葉ばかりが口から出ていって、止められない。&lt;/p&gt;
&lt;p&gt;ことこがいなかったら、こうやってけんかばかり。&lt;/p&gt;
&lt;p&gt;ねぇ、ことこがいたら。&lt;/p&gt;
&lt;p&gt;「大体、ことこはりとのことが好きなんでしょ？ことこも可哀想よね。好きな子が他の子にちょっかいを出す軽い子だったなんて！」&lt;/p&gt;
&lt;p&gt;「まり！流石にそれは言いすぎだよ」&lt;/p&gt;
&lt;p&gt;りとの語気が強くなって、ちかちかとした感覚が蘇る。ワインを詰めた水鉄砲を携帯していたら、きっとまた大爆発していたところだ。&lt;/p&gt;
&lt;p&gt;「じゃあ、何？りとは本気で私が好きだっていうの？」&lt;/p&gt;
&lt;p&gt;「好きだよ。好きだけど、だから何なの？」&lt;/p&gt;
&lt;p&gt;「な、何って……そんなにはっきり言わないでよ！」&lt;/p&gt;
&lt;p&gt;りとを責めるつもりで放った言葉だったから、ストレートな答えに面食らってしまう。&lt;/p&gt;
&lt;p&gt;「……ごめん。今、すっごくいらいらしてるから」&lt;/p&gt;
&lt;p&gt;「あら、奇遇ね。私もよ！」&lt;/p&gt;
&lt;p&gt;りとの不機嫌そうな表情に応えるように、私はりとを睨みつけた。りとはそんな私の視線にも動じる様子はなく、面倒そうに溜息を吐く。&lt;/p&gt;
&lt;p&gt;ヒートアップしかけた二人の間に、少しの沈黙が流れた。&lt;/p&gt;
&lt;p&gt;「じゃあ、ことこはどうするのよ」&lt;/p&gt;
&lt;p&gt;「どうもしないよ。ことこだって、まりが好きって言ってたじゃない」&lt;/p&gt;
&lt;p&gt;「何それ？意味不明すぎ」&lt;/p&gt;
&lt;p&gt;ことこはりとが好きで、りとと一緒になって私を陥れようとした。でも実は、当のことこは私のことが好きで、りとも私が好きだったの？&lt;/p&gt;
&lt;p&gt;そんなの、めちゃくちゃだ。&lt;/p&gt;
&lt;p&gt;もちろん私だってことこは嫌いじゃないし、りとのことだって……りとのことだって、たぶん、好きだ。あんな乱暴をされていたと知る前は、りとを見てドキドキしたこともあった。今だって――いや、今はもう、ドキドキなんてしないけど！&lt;/p&gt;
&lt;p&gt;ことこみたいに分かりやすい可愛らしさは少なくても、りとがすごく魅力的な女の子だってことは、私が一番よく分かっているつもりだった。&lt;/p&gt;
&lt;p&gt;「ねぇ、そんなおかしなことってある？りとは変だと思わないの？」&lt;/p&gt;
&lt;p&gt;だからこそ、あんなおかしなことをして、あんなおかしな告白を受け入れさせようとするりとに腹が立っていた。&lt;/p&gt;
&lt;p&gt;「変じゃない。ことこなりの告白だよ」&lt;/p&gt;
&lt;p&gt;「変よ。そもそも、告白は二人でするものだわ」&lt;/p&gt;
&lt;p&gt;三人でする告白なんて、ふざけてる。大事な気持ちのやり取りは二人でするものだ。&lt;/p&gt;
&lt;p&gt;誰と誰が好きとか、誰が何番目に好きとか、そういうのは恋の分からない小さい子がするから許されるのに。&lt;/p&gt;
&lt;p&gt;「まり。常識に縛られないで。私たちは私たちなりに考えてやっていこうよ」&lt;/p&gt;
&lt;p&gt;「常識？バカ言わないで」&lt;/p&gt;
&lt;p&gt;みんながお互い好き同士で、それをはっきりさせないのが「私たちらしい」ですって？常識なら何でも無視すればいいってもんじゃないわ。&lt;/p&gt;
&lt;p&gt;でも、何より気に食わないのは、二人がその「常識に縛られない考え方」を共有できているってことだ。二人だけが分かり合っている雰囲気も、私がないがしろにされてるみたいでむしゃくしゃする。&lt;/p&gt;
&lt;p&gt;「あんたたちは何にも分かってないわ。 &lt;em&gt;りと&lt;/em&gt; と &lt;em&gt;ことこ&lt;/em&gt; が私が好きっていうのも、どうせ嘘なんでしょ？」&lt;/p&gt;
&lt;p&gt;「――っ！ま、まり！いい加減にしてよ」&lt;/p&gt;
&lt;p&gt;私の言葉に反応して、りとがみるみる怒っていくのが分かった。私を見上げるりとの視線が、静かに突き刺さる。&lt;/p&gt;
&lt;p&gt;そうやって、なかなか見えないりとの感情が露わになると、穏やかな彼女の表情が崩れると、少しだけ安心した。でもそれは、同時に私をひどくイライラさせるのだ。&lt;/p&gt;
&lt;p&gt;「それはこっちのセリフよ！三人でとか好きだとか、そんな風に言いくるめれば私が落ち着くとでも？」&lt;/p&gt;
&lt;p&gt;「まりっていつもそうだよね。どうでもいいことばっかり気にしてさ、肝心な時に――」&lt;/p&gt;
&lt;p&gt;「あぁ、もう！あんたって本当に分かんないやつね！」&lt;/p&gt;
&lt;p&gt;二人でこそこそしないで。私をちゃんと見て。私のこと、もっと大事に扱って！もう止まらない。&lt;/p&gt;
&lt;p&gt;言葉を遮って、私はりとに指を突きつけた。&lt;/p&gt;
&lt;p&gt;「一応言っておくわ、りと。私はね、私が一番じゃなきゃイヤなの！どんな時でもね！」&lt;/p&gt;
&lt;p&gt;王子様が来てくれると思ってた。昔は……そうね、スクーパーズが来るまでは、ずっと。&lt;/p&gt;
&lt;p&gt;お姫様が王子様と結ばれて幸せになる絵本もいっぱい読んだし、友達と理想の王子様の話をしたこともあった。忙しそうな両親は私の理想の将来とは違ったけど、ママは何かにつけて「素敵な王子様が迎えに来るわ」なんて私に言い聞かせていたものだ。&lt;/p&gt;
&lt;p&gt;原宿に移住してからも、ママの言葉はぼんやりと私の思考を覆っていた。いつかスクーパーズが退治されて、みんなが自由に暮らせるようになったら、きっと。&lt;/p&gt;
&lt;p&gt;きっと、どこからともなく王子様が現れて、私は花嫁になるの。丘の上の教会で、綺麗なドレスを着て、みんなが祝福してくれるの。&lt;/p&gt;
&lt;p&gt;「だから、私の夢を笑わないでよ……りと……」&lt;/p&gt;
&lt;p&gt;だからこそ、りとの言う「私たちらしさ」には納得できなかった。私の夢を笑われているみたいで腹が立った。&lt;/p&gt;
&lt;p&gt;「絶対に笑わないよ。まり、だから泣かないで」&lt;/p&gt;
&lt;p&gt;「――っ、触んないで！ほっといてよ」&lt;/p&gt;
&lt;p&gt;りとが私の頬に触れる感触で、自分が涙を流しながら喚いていたことに気付く。&lt;/p&gt;
&lt;p&gt;涙って、こんなに出るんだ。そんなことを意識してしまうと、さらに涙が溢れ出してくる。声を上げて泣くなんて、恥ずかしい。見られたくない。&lt;/p&gt;
&lt;p&gt;でも、声が抑えられなくなる。&lt;/p&gt;
&lt;p&gt;「私……ううん、私たちはまりの夢を笑ったりしないよ」&lt;/p&gt;
&lt;p&gt;しゃがみこんだ私の頭を、りとの手が押さえるように撫でつける。上から聞こえてくるりとの優しい声は、嘘を吐いているようには思えなかった。&lt;/p&gt;
&lt;p&gt;「じゃあ、りとは、私の王子様になってくれるの？」&lt;/p&gt;
&lt;p&gt;「うん。でも、私だけじゃなくて、ことこも王子様だよ」&lt;/p&gt;
&lt;p&gt;「……私の王子様は、二人もいないわ」&lt;/p&gt;
&lt;p&gt;私は思わず顔を上げる。私を見下ろす &lt;em&gt;りと&lt;/em&gt; と目が合って、そのまま。&lt;/p&gt;
&lt;p&gt;「いるよ。私たち、三人だもん。まりだって、王子様になっていいんだよ」&lt;/p&gt;
&lt;p&gt;「ばかみたい。ことこの受け売り？」&lt;/p&gt;
&lt;p&gt;「違うよ。私なりの解釈っていうか……ことこも、あんまり分かってないみたい」&lt;/p&gt;
&lt;p&gt;それから、りとはことこの「提案」について、改めて彼女なりの解釈を加えながら教えてくれた。&lt;/p&gt;
&lt;p&gt;一対一で付き合う関係が絶対じゃないこと。みんなが納得すれば、何人で付き合っても誠実だってこと。そういうお付き合いについて、昔の人も悩んでいたこと。&lt;/p&gt;
&lt;p&gt;それが、ことこの考えている未来に一番近いってこと。&lt;/p&gt;
&lt;p&gt;王子様が二人もいたら、きっとけんかになってしまうだろう。でも、それがりととことこなら？二人が王子様だったなら、私を奪い合うのかしら？&lt;/p&gt;
&lt;p&gt;それとも、三人で上手くやっていけるのかしら？今までとは違う関係で、今まで通り三人で。&lt;/p&gt;
&lt;p&gt;「結局、みんな離れ離れになっちゃうのが怖いのかも」&lt;/p&gt;
&lt;p&gt;「それは……そうだけど」&lt;/p&gt;
&lt;p&gt;今、私が勢いに任せてＰＡＲＫから去ったとして、明日から生き延びることができるかは分からない。このままじゃ原宿で夜を凌ぐのもままならないし、バブルの外ならなおさらだ。&lt;/p&gt;
&lt;p&gt;ことこには思わずあんなことを言ってしまったけど、三人でＰＡＲＫをやっていきたい、やっていくしかないという気持ちも当然分かっていた。&lt;/p&gt;
&lt;p&gt;「私は、まりの花婿姿も見てみたいよ？」&lt;/p&gt;
&lt;p&gt;そう言って、りとが私に手を差し伸べる。&lt;/p&gt;
&lt;p&gt;そんな優しさに素直に応えるのも恥ずかしくて、私はりとの顔を見ないようにその手をとって立ち上がった。&lt;/p&gt;
&lt;p&gt;「なんて最悪なプロポーズなのかしら。りとらしいけど」&lt;/p&gt;
&lt;p&gt;「でも、ほんとの気持ちだよ？」&lt;/p&gt;
&lt;p&gt;「私は、誰かの代わりになったりしないわ」&lt;/p&gt;
&lt;p&gt;「ことこの代わりなんかじゃない。私たちは、誰が誰の代わりにもならないよ」&lt;/p&gt;
&lt;p&gt;そんなこと、言われなくたって分かってる。でも、みんなが花嫁だとか、みんなが花婿だとか、そんな理想論が簡単に実現できるようにも思えなかった。&lt;/p&gt;
&lt;p&gt;「ねぇ、私たち、これまで三人でいっぱい色んなことをしてきたわ」&lt;/p&gt;
&lt;p&gt;続きを促すように、りとが頷く。&lt;/p&gt;
&lt;p&gt;「でも、今回ばっかりはすごく不安なの。ＰＡＲＫがだめになってしまわないかって」&lt;/p&gt;
&lt;p&gt;「私たちなら大丈夫だよ。ことこもいるし、私もいるから」&lt;/p&gt;
&lt;p&gt;「えぇ、そうよね……それは、分かってるけど」&lt;/p&gt;
&lt;p&gt;バブルの近くの探検も、ずっと遠くの探索も、危険は色々あったけどなんとか生き延びてきた。ＰＡＲＫだって、三人でいつもベストなものを作り上げてきたつもりだ。りととことこがいれば、このめちゃくちゃな世界の中でも生きていける気がしていた。&lt;/p&gt;
&lt;p&gt;だから、きっと。&lt;/p&gt;
&lt;p&gt;私にできるかしら。口の中からそんな言葉が出そうになったけど、いつの間にか溶けて消えていた。&lt;/p&gt;
&lt;p&gt;「分かったわ。ちょっとだけ、私たちなりの『非常識』をやってみましょ」&lt;/p&gt;
&lt;p&gt;王子様が二人いるのも、悪くないかもね。私がそう言うと、りとは「まり、ありがと」と小さく笑いかけた。&lt;/p&gt;
&lt;p&gt;「ま、楽しくなかったらすぐやめるけどね」&lt;/p&gt;
&lt;p&gt;「うん、それがいいよ」&lt;/p&gt;
&lt;p&gt;たんっ、と軽やかにシューズを鳴らしたりとが、ずっと抱えていたスケボーを地面に下ろす。辺りはすっかり暗くなっていた。もう帰らなきゃ。&lt;/p&gt;
&lt;p&gt;これからの私たちがどうなるのかは分からないけど、今はただ、ＰＡＲＫに戻ってゆっくりしたかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ＰＡＲＫへの帰り道。りとが構えたぎょにそライフルが、歩くたびにかちゃかちゃと音を立てる。私はその陣形に収まるように、スケボーの後ろをついて歩いていた。&lt;/p&gt;
&lt;p&gt;「ねぇ、りとってほんとに私のこと好きなの？」&lt;/p&gt;
&lt;p&gt;「好きだよ。さっき言ったじゃん」&lt;/p&gt;
&lt;p&gt;「あら、そう」&lt;/p&gt;
&lt;p&gt;りとが私を好きだなんて、思ってもいなかった。性格も全然違うし、何かあるとすぐけんかになっていたから。ことこがいなかったら、二人の共同生活は一年と待たずして解消されていたことだろう。&lt;/p&gt;
&lt;p&gt;もしかして、私が好きでちょっかいをかけていたのかしら？りとも可愛いとこあるじゃない。&lt;/p&gt;
&lt;p&gt;でも、どうしてあんなにはっきり告白したのに、私の前で平気でいられるのかしら。その余裕さは、やっぱり気に入らなかった。&lt;/p&gt;
&lt;p&gt;「もしかして……一緒にお風呂に入ってる時とかも、私のこと気になってたの？」&lt;/p&gt;
&lt;p&gt;「んー、そんなことないよ。ことこもいるし」&lt;/p&gt;
&lt;p&gt;好きな子のあられもない姿なのに……とは思ったけど、確かにそうかもしれない。シャンプーハットを装着して頭を洗うことこを見ていると、まるで家族でお風呂に入っているような気分になるし。&lt;/p&gt;
&lt;p&gt;「あっ、そうだ。まり」&lt;/p&gt;
&lt;p&gt;私がひとしきり &lt;em&gt;りと&lt;/em&gt; の言葉を引き出し終わったところで、今度はりとが振り向いて私に呼びかける。&lt;/p&gt;
&lt;p&gt;「私が来なかったらどうする気だったの？こんな危険な場所なのに、武器も持っていかなかったよね」&lt;/p&gt;
&lt;p&gt;「どうにもできないのは、りとも分かってるでしょ？ＰＡＲＫを飛び出した時は、もうどうなってもいいって思ってたくらいよ」&lt;/p&gt;
&lt;p&gt;「ふーん……そっか」&lt;/p&gt;
&lt;p&gt;答えを聞いたりとは、私をじっと見つめてから、不機嫌そうに首を横に振る。そして、とうとうため息を吐いた。&lt;/p&gt;
&lt;p&gt;「まりのそういうとこ、やっぱり嫌かも」&lt;/p&gt;
&lt;p&gt;「は、はぁ？さっきは好きって言ってたじゃない！」&lt;/p&gt;
&lt;p&gt;「……あー、うん。ちゃんと好きだよ、好き好き」&lt;/p&gt;
&lt;p&gt;面倒そうに答えるりとは、あしらうようにくるりと背中を向けて歩き始めた。&lt;/p&gt;
&lt;p&gt;「ちょっと、待ちなさいよ。……何なのよ、もう！」&lt;/p&gt;
&lt;p&gt;すたすたと歩くりとの横に並ぶ。私を流れる夏の空気が、いつもよりすがすがしかった。&lt;/p&gt;
&lt;h2 id="4"&gt;4&lt;/h2&gt;
&lt;p&gt;ベースメントに戻ると、さっきまで三人で掛けていたソファの端で、ことこが子供みたいに泣きじゃくっていた。&lt;/p&gt;
&lt;p&gt;薄暗い部屋の中で、ガラステーブルの周りだけが明るく照らされている。ことこはその光から逃げるように、上からタオルケットを被って小さくうずくまっていた。&lt;/p&gt;
&lt;p&gt;「……っ、うぁ……りとちゃん、まりちゃん……」&lt;/p&gt;
&lt;p&gt;ひくひくと苦しそうに息を吸うことこが、細かく肩を震わせる。呼吸さえもままならないその姿は、触ったら壊れてしまいそうなほどに弱々しい。そんなことこを見ていたせいか、また涙がじわりとこみ上げてきて、私は拳をぐっと握りしめた。&lt;/p&gt;
&lt;p&gt;ことこがこんなに泣いているのは初めてだ。ＰＡＲＫを失いかけた時、りとが行方不明になった時、私がことこに言い過ぎちゃった時……色々あったけど、今までのことこなら、歯を食いしばってどうにか泣かないようにしていたから。&lt;/p&gt;
&lt;p&gt;だからこそ、なおさら今が私たちにとって大事なタイミングなんだと意識する。&lt;/p&gt;
&lt;p&gt;「ことこ、ただいま。まりも帰ってきたよ」&lt;/p&gt;
&lt;p&gt;りとはそう呼びかけると、まるで自分の役割を終えたとでもいうように、そのまま座り込んでスケボーの手入れを始めてしまった。&lt;/p&gt;
&lt;p&gt;「ちょっと、りと……」&lt;/p&gt;
&lt;p&gt;小声で呼びつけると、りとは私を見上げてにへらと笑う。 &lt;em&gt;ことこ&lt;/em&gt; とのことは、私に任せるつもりらしい。&lt;/p&gt;
&lt;p&gt;こういう時って、普通は三人で反省会でもするんじゃないの？そんなにのびのびしてると、逆に感心しちゃうわ！&lt;/p&gt;
&lt;p&gt;「その……ことこ、悪かったわね」&lt;/p&gt;
&lt;p&gt;スケボーのウィールをくるくる回してオイルを差すりとを尻目に見ながら、ことこの揺れる背中に向かって呼びかける。帰ってからのことは &lt;em&gt;りと&lt;/em&gt; が取り持ってくれるとばかり思っていたから、最低限の言葉しか出てこない。&lt;/p&gt;
&lt;p&gt;ことこは私たちが帰ってきたのに気付くと、振り向いて涙でいっぱいの顔をこちらに向けた。ばさりと青色の帽子が落ちて、びしょ濡れの瞳が目に入る。&lt;/p&gt;
&lt;p&gt;「ま、まりちゃん。あのね――っ！こ、これは違うの」&lt;/p&gt;
&lt;p&gt;それから、ことこは泣いているのを隠すように慌てて目を拭った。隣に座りながら「目が腫れるから拭いちゃだめよ」と諭すと、ことこは小さく頷く。&lt;/p&gt;
&lt;p&gt;タオルケットから顔を離して私を見上げることこの顔には、不安と焦燥が映っていた。&lt;/p&gt;
&lt;p&gt;「ご、ごめんね。私、まりちゃんを傷つけちゃった……」&lt;/p&gt;
&lt;p&gt;「どうしたのよ、ことこ。クラゲでも目に入った？」&lt;/p&gt;
&lt;p&gt;「あ……そ、そうかも！え、えへへ……」&lt;/p&gt;
&lt;p&gt;ことこが弱々しい笑い声を上げる。無理に笑っている様子は痛々しいけど、いつも明るいことこがしおらしく謝っているよりはずっとよかった。&lt;/p&gt;
&lt;p&gt;「ことこの考えてること、りとに色々聞いたわ。ちゃんと言ってくれなきゃ、分からないじゃない」&lt;/p&gt;
&lt;p&gt;私がそう口をとがらせると、ことこは「ごめんね、まりちゃん」だなんて、また下を向いてしまう。&lt;/p&gt;
&lt;p&gt;なによ、調子狂うわね。いつもみたいに冗談めかして笑ってくれればいいのに、これじゃまるで私が本当に怒ってるみたいじゃない。&lt;/p&gt;
&lt;p&gt;「冗談よ、冗談。もう分かったから、いいわ」&lt;/p&gt;
&lt;p&gt;「そ、そうだよね！私、ちょっと焦ってるのかも」&lt;/p&gt;
&lt;p&gt;分かってる。ことこはまだ冗談を言う余裕がなくて、今は私がことこを元気づけなきゃいけない場面だってこと。でも、こういう時にどうすればいいのかは、やっぱり分からない。&lt;/p&gt;
&lt;p&gt;いつまでもうじうじしてることこにも腹が立つけど、こんな時まで素直に謝れない自分にもイライラしていた。&lt;/p&gt;
&lt;p&gt;「ね、ねぇことこ……」&lt;/p&gt;
&lt;p&gt;言葉が続かない。後ろからシューズを磨く音が聞こえてきて、次の言葉を急かされているような気分になる。沈黙でいっぱいになったソファは、座っているだけで息苦しい。&lt;/p&gt;
&lt;p&gt;そんな重たい時間が流れてから、ことこが顔を上げた。&lt;/p&gt;
&lt;p&gt;「でも、まりちゃんをだましたりとか、そんなことは絶対にしないから。さっき三人で話したことは、絶対に冗談じゃなくて……」&lt;/p&gt;
&lt;p&gt;「分かってるわ。私たちは私たちなりに、でしょ？」&lt;/p&gt;
&lt;p&gt;さっきまでけんかしていたりとの言葉を、今度はそのまま繰り返す。初めに聞いた時はすごく気に食わなかったはずなのに、今はまるで自分の言葉のように口から出ていた。&lt;/p&gt;
&lt;p&gt;私の言葉を聞いたことこは、一瞬きょとんとして、それから目を見開いた。そして、残った涙もそのままに、みるみる明るい表情を取り戻していく。&lt;/p&gt;
&lt;p&gt;「そ、そうなの！資料によると、昔から色んなお付き合いの形が考えられててね、それを応用すれば、三人でずっと一緒にいられると思うんだ。だから――」&lt;/p&gt;
&lt;p&gt;ことこが私の手をぎゅっと包み込んでぶんぶんと揺らす。まるでことこの尻尾になったみたい。&lt;/p&gt;
&lt;p&gt;私たちなりに。私たちなりの。私たちだからこそ。振り返ってみると、ＰＡＲＫはずっとそうやって進んできた。焦ってたのは、私の方なのかもしれない。&lt;/p&gt;
&lt;p&gt;「ことこ。いっぺんに言われても分からないわよ」&lt;/p&gt;
&lt;p&gt;「あっ……ごめん。えへへ……」&lt;/p&gt;
&lt;p&gt;さっきとは違う、安心する笑い声。緩んだ両手から、ことこの安堵が伝わってくるようだ。&lt;/p&gt;
&lt;p&gt;ことこの説明を聞いてみると、りとの話はほとんどことこの受け売りだった。まぁ、私の花婿姿を見てみたいっていうのは……そうね、りとのオリジナルらしいけど。&lt;/p&gt;
&lt;p&gt;私がりとに襲われているのを見てしまってから、ずっと悩んでいたみたい。それから一人で色んなことを調べたり、色んな本を読んだりして、何とか三人で上手くやっていく方法を探していたのだという。やっぱりことこは、一人で悩んでいたのだ。&lt;/p&gt;
&lt;p&gt;結局、りとが悪かったんじゃない！&lt;/p&gt;
&lt;p&gt;「でね、まりちゃん。その……」&lt;/p&gt;
&lt;p&gt;と、楽しそうに（ときどき真面目に）話し続けていたことこが、突然言葉に詰まってしまう。と同時に、 &lt;em&gt;ことこ&lt;/em&gt; と繋がったままの私の右手が、またきゅっと握り込まれた。&lt;/p&gt;
&lt;p&gt;ちら、と気付かれないようにことこに視線を送る。ことこの目が泳ぐのに合わせて、ひんやりしていた両手が少しずつ温かくなって、私の体温より熱くなっていた。&lt;/p&gt;
&lt;p&gt;「なぁに？はっきり言ってくれなきゃ分からないわ」&lt;/p&gt;
&lt;p&gt;分からないなんて、嘘だ。今から何が始まるかなんてすっかり知っていたけど、知らないふりで焦らしてしまう。ことこからじわじわ伝わる熱が、私を意地悪な気持ちにさせていた。&lt;/p&gt;
&lt;p&gt;うー、と小さく唸っていることこの顔を覗き込む。目が合うと、ことこは小さく頷いた。&lt;/p&gt;
&lt;p&gt;「まりちゃんとりとちゃんと、三人で付き合いたいの。それじゃ……だめかなぁ？」&lt;/p&gt;
&lt;p&gt;そう言い終えてから、恥ずかしそうに下を向いてしまう。ことこは手をずっと強く握ったままで、身体を縮めるように腕を自分の方へきゅっと寄せた。&lt;/p&gt;
&lt;p&gt;告白としては、ちょっとイマイチだ。私の理想の王子様は、こんなに自信なさげな告白なんてしないもの。&lt;/p&gt;
&lt;p&gt;でも、 &lt;em&gt;ことこ&lt;/em&gt; らしい言葉だなって思う。&lt;/p&gt;
&lt;p&gt;「うーん、そうね……」&lt;/p&gt;
&lt;p&gt;握った手を揺らしながら、考えるふり。ことこの微妙な不安につけこんで、仕上げのようにゆっくり焦らしてみせる。&lt;/p&gt;
&lt;p&gt;「ま、いいわ。ことこの考え、もっと聞かせてよね」&lt;/p&gt;
&lt;p&gt;「まりちゃん……！嬉しいよ！え、えへへ……」&lt;/p&gt;
&lt;p&gt;私の返事を聞いたことこが、また顔を上げてぱっと明るい笑顔を見せる。さっきから忙しい子ね。&lt;/p&gt;
&lt;p&gt;「期待してるわ、ことこ」&lt;/p&gt;
&lt;p&gt;「うん！私、頑張るから」&lt;/p&gt;
&lt;p&gt;ここ数週間の違和感がすっかり消えて、肩の荷が下りた気分だ。ほぅ、と軽く息をつくと、いつもの調子が戻ってきた感じがする。&lt;/p&gt;
&lt;p&gt;「ちょっと、りと！あんたも、そろそろこっちに来たらどうなの？」&lt;/p&gt;
&lt;p&gt;そう言いながら振り向くと、りともちょうどスケボーのメンテナンスを終えるところだった。赤いキャップのスプレー缶をしまい込むりとは、片付けの手を緩めずに顔を上げる。&lt;/p&gt;
&lt;p&gt;「ふふっ……はいはい。まりは元気いっぱいだね。さっきまであんなに泣いてたのに」&lt;/p&gt;
&lt;p&gt;「うるさいわね。もう誤解は解けたわよ。あんたこそ、ちゃんと &lt;em&gt;ことこ&lt;/em&gt; の話を聞いたら？」&lt;/p&gt;
&lt;p&gt;からかうような笑い声も、今は心地いい。バタン、と工具箱が閉まる音が聞こえて、作業の終わりを告げる。&lt;/p&gt;
&lt;p&gt;「私はもうお昼に告白されたもん。ね、ことこ？」&lt;/p&gt;
&lt;p&gt;「う、うん……」&lt;/p&gt;
&lt;p&gt;と、りとがソファに寄りかかって、後ろからことこの肩に腕を回す。ことこもそれに応えるようにして、私に重ねていた手の片方をりとに添えた。&lt;/p&gt;
&lt;p&gt;りとがことこの頬に顔を寄せて囁いているのを見ると、まるで本当の恋人同士に見えてしまう。ちゃんと &lt;em&gt;ことこ&lt;/em&gt; を真ん中にして三人で手を繋いでいるはずなのに、私だけがちょっと離れているような気持ち。&lt;/p&gt;
&lt;p&gt;「なによ、やっぱり二人で楽しくやってたんじゃない」&lt;/p&gt;
&lt;p&gt;「ま、まりちゃん……違うよぉ」&lt;/p&gt;
&lt;p&gt;勝手な寂しさに身を任せて拗ねてみせると、慌てたことこがまた私の手を握ってくれる。振られた &lt;em&gt;りと&lt;/em&gt; はことこの頭を撫でながら、今にも笑い出しそうな表情で私を見つめていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ことこの告白が終わってから、りとも交えて三人で少しだけ真面目な話をした。並んで座るりとと私に向かい合うように、ことこが座っている。&lt;/p&gt;
&lt;p&gt;「――だから、まとめるとそんな感じ。だから、ちゃんとお互いの予定を伝えあったり……とにかくコミュニケーションが大事なの」&lt;/p&gt;
&lt;p&gt;「ちょっと待って。それって、今までと何が違うのよ？」&lt;/p&gt;
&lt;p&gt;「えっと……意識、かなぁ？」&lt;/p&gt;
&lt;p&gt;「い、意識？」&lt;/p&gt;
&lt;p&gt;ここまで、ことこから示されたのはルールというよりマナーのようなことばかり。私たちが、私が、明日から何をすればいいのかも、どうすれば三人で付き合ったことになるのかも分からなかった。&lt;/p&gt;
&lt;p&gt;でも、考えてみると、普通の恋人だって契約書を書いたりはしないし、ましてやどこかに登録を出したりはしないのだ。結婚ですら、防衛隊の名簿課に届ける必要はなかった。&lt;/p&gt;
&lt;p&gt;とはいえ、二人で付き合うのが当たり前だったから、私たちの新しい関係を確かにしてくれるものがないのは少し不安を感じる。新しいことは、やっぱり少しだけ怖かった。&lt;/p&gt;
&lt;p&gt;「お互いにお互いが好きって信頼しあう、とか？」&lt;/p&gt;
&lt;p&gt;「あら。私たち、ずっと信頼しあってるじゃない」&lt;/p&gt;
&lt;p&gt;「それは、そうだけど……」&lt;/p&gt;
&lt;p&gt;三人で、三人で……と構えていたから、意識だけ変われば解決、と言われても面食らってしまう。&lt;/p&gt;
&lt;p&gt;「うーん……例えばね、まり」&lt;/p&gt;
&lt;p&gt;言葉に詰まることこに、りとが助け舟を出す。私の名前を呼んで立ち上がったりとが、ソファに回り込んで私の後ろに立った。&lt;/p&gt;
&lt;p&gt;「こうやって、いきなりぎゅっとしてもいいんだよ」&lt;/p&gt;
&lt;p&gt;「い、いきなり何よ？」&lt;/p&gt;
&lt;p&gt;そして、後ろから私を包むように抱く。首元に感じるりとの体温が――暑苦しいはずなのに――ひんやりした心地よさを思わせる。&lt;/p&gt;
&lt;p&gt;「んー？まり、怖がってるみたいだから。ことこの言ってること、あんまり分かってないでしょ？」&lt;/p&gt;
&lt;p&gt;髪と囁き声が擦れて耳がくすぐったい。思わず変な声が出そうになるけれど、 &lt;em&gt;ことこ&lt;/em&gt; と同じやり方で丸め込まれるのも、何だか気に食わなかった。&lt;/p&gt;
&lt;p&gt;「あら、りとも分かってないんじゃないの？」&lt;/p&gt;
&lt;p&gt;「ふふ。うん、そうかも。これから、私たちのスタイル見つけなきゃね？」&lt;/p&gt;
&lt;p&gt;付き合うと言っても、私たちはあんまり変わらないんだと思う。明日からも、一緒に暮らして、一緒にＰＡＲＫをやっていくだけで。&lt;/p&gt;
&lt;p&gt;でも、もっと素直になりたい。ちょっと大胆になりたい。こうやって背中に感じる熱を、ちゃんと受け入れられるように。&lt;/p&gt;
&lt;p&gt;「あんまり気にしなくていいんだよ。昔の人とか、決まりきったルールとか、私たちには必要ない」&lt;/p&gt;
&lt;p&gt;「それで、本当にやっていけるのかしら？」&lt;/p&gt;
&lt;p&gt;「大丈夫だよ、まり。ことこもいるし。三人でやっていけばいいよ」&lt;/p&gt;
&lt;p&gt;と、りとに合わせてテーブルの向こうに視線を送ると、どうも &lt;em&gt;ことこ&lt;/em&gt; と視線が合わない。何だか私たちに見とれているみたいだ。少しして、やっと視線に気付いたことこが私たちに手を振った。&lt;/p&gt;
&lt;p&gt;「ことこ、のぼせちゃったの？」&lt;/p&gt;
&lt;p&gt;「ううん、違うの。なんか幸せだな〜って……あ、そうだ！」&lt;/p&gt;
&lt;p&gt;ことこが突然、「いいこと」でも思いついたような表情で立ち上がる。&lt;/p&gt;
&lt;p&gt;「新しいバスボム、ちょっと試してみない？」&lt;/p&gt;
&lt;p&gt;クラゲフェアの在庫が入った箱を探し始めることこ。手のひらに乗せて見せてくれたのは、新作の青いバスボムだった。爽やかな水色にシーソルトとお肌にいいオイルが添えられているらしい。&lt;/p&gt;
&lt;p&gt;「ことこって、ほんと一緒に入りたがりやさんよね」&lt;/p&gt;
&lt;p&gt;「だって久しぶりなんだもん、みんなでお風呂！」&lt;/p&gt;
&lt;p&gt;皮肉で返しても、ことこは「えへへ〜」と笑うだけ。横を見ても、「うん。じゃあ、一緒に入ろっか」だなんて楽しそうだ。&lt;/p&gt;
&lt;p&gt;もう！りとったら、ことこには甘いんだから。&lt;/p&gt;
&lt;h2 id="5"&gt;5&lt;/h2&gt;
&lt;p&gt;「やっぱり、私とのお風呂でそんなこと考えてたのね！」&lt;/p&gt;
&lt;p&gt;お風呂を上がってから、まりの機嫌がすこぶる悪い。どうしてだろうと考えてみたけど、おそらく、私と &lt;em&gt;ことこ&lt;/em&gt; でまりにいたずらしたからだろう。&lt;/p&gt;
&lt;p&gt;さっき、ちゃんと三人で付き合うって話もしたから、もう受け入れてくれるのかなって思ったんだけど。まりのことは、やっぱりよく分からない。&lt;/p&gt;
&lt;p&gt;「もう &lt;em&gt;まり&lt;/em&gt; は彼女だし、いいかなって」&lt;/p&gt;
&lt;p&gt;「そ、そうだけど……でも、だめなものはだめ。ムードってものがあるでしょ？」&lt;/p&gt;
&lt;p&gt;逃げるようにお風呂を去ったまりは、ヘアタオルにバスローブを身に着けて私たちを待ち構えていた。仁王立ちで怒っている姿には、いつもの可愛いバスローブは似合わない。&lt;/p&gt;
&lt;p&gt;ちょっとえっちでやっぱり可愛く見えるその姿に、どうも気が抜けてしまう。でも、ここで「まりも流されてたじゃん」なんて言おうものなら、また家出なんてことにもなりかねないのは明白だった。&lt;/p&gt;
&lt;p&gt;「私も、まりちゃんにすりすりしてみたかったんだ〜」&lt;/p&gt;
&lt;p&gt;と、ことこが後ろから &lt;em&gt;まり&lt;/em&gt; の腰に抱きついた。久しぶりに三人でお風呂だったから、とっても楽しそう。&lt;/p&gt;
&lt;p&gt;背中から伝わるその勢いに、 &lt;em&gt;まり&lt;/em&gt; もひるんでしまうけど、慌てて首を振って我に返った。&lt;/p&gt;
&lt;p&gt;「からかうのはやめて。私は真面目に言ってるの」&lt;/p&gt;
&lt;p&gt;こういう時のまりは、すごく面倒だなって思う。私はただ、したいようにしてるだけだから。&lt;/p&gt;
&lt;p&gt;「……別にいいじゃん、キスくらい」&lt;/p&gt;
&lt;p&gt;「あ、あんたね！私の大事な貞操を『別に』だなんて！」&lt;/p&gt;
&lt;p&gt;ぼそりと呟いた不満が、また &lt;em&gt;まり&lt;/em&gt; の怒りを再燃させる。&lt;/p&gt;
&lt;p&gt;やっぱりまりは、お姫様なのだ。自分が一番で、いっぱいちやほやされたくて、どんな時でもエレガントにエスコートされたいお姫様。&lt;/p&gt;
&lt;p&gt;でも私は、そんな &lt;em&gt;まり&lt;/em&gt; の手助けをしたいわけじゃない。三人で助け合って生きていくために、「弱いまりを守ってあげる」つもりはなかった。&lt;/p&gt;
&lt;p&gt;実のところ、私はあんまり王子様に向いてないのかも。&lt;/p&gt;
&lt;p&gt;「それに、ことこには、む、む……胸まで触られるし！」&lt;/p&gt;
&lt;p&gt;そんなことを考えている間にも、まりの強い口調は収まらず、いつの間にかことこに飛び火していた。&lt;/p&gt;
&lt;p&gt;「ご、ごめんね、まりちゃん……嫌だった？」&lt;/p&gt;
&lt;p&gt;「嫌じゃ、ないわ。でもね……嫌じゃないのが、なんか嫌なの。まるで私じゃないみたいで」&lt;/p&gt;
&lt;p&gt;ことこは困った顔でまりを見上げたまま、腕は離さない。そういう甘え方に、まりは弱かった。&lt;/p&gt;
&lt;p&gt;嫌じゃないけど、嫌。なんてお姫様らしい悩みだろう。まりは深刻そうにしているけど、私から見るとその悩みは小さなことに思えてしまう。&lt;/p&gt;
&lt;p&gt;「うん。ごめんね、まり」&lt;/p&gt;
&lt;p&gt;私もまりに抱きついて、そのままの姿勢で頭を撫でる。まりは一瞬泣きそうな顔になってから、ふいと目を逸らして頬を膨らませた。&lt;/p&gt;
&lt;p&gt;「優しくして丸め込もうったって、そうは行かないから」&lt;/p&gt;
&lt;p&gt;「でも、三人でやっていこうって言ったもん。まりのこと、ちゃんと考えるからさ。ほら、食事にしよ？」&lt;/p&gt;
&lt;p&gt;テーブルに置かれたミックスサンドは、ことこの担当だ。まりは「ミックスサンドって、やっぱり嫌いよ」なんて不機嫌そうに溜息を吐きながら、バスローブのままソファに掛ける。&lt;/p&gt;
&lt;p&gt;「今日はクラゲ入りなの！コリコリしてて美味しいよ」&lt;/p&gt;
&lt;p&gt;まりは「まぁ、不味くはないけど」なんて呟きながらサンドイッチを口に運んでいく。バブル中を駆け回ったせいで、お腹はぺこぺこだったらしい。&lt;/p&gt;
&lt;p&gt;そんなまりの姿を横目に見ながら、私もクラゲサンドにかぶりつく。イワシの匂いを流し込むように麦茶を飲み干すと、クラゲの香りと一緒に夏の味がした。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="extra-items"&gt;EXTRA: ITEMS&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;古びたミシン&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;まりがずっと使っている小型のミシン。本来はかなり頑丈な機種だが、とても古いのでことこが定期的に修理しないと使えない。微妙な力の加減が必要で、特にりとが使うとしばしば壊してしまう。&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;りとのリメイクポーチ&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;りとがいつも携帯している &lt;em&gt;まり&lt;/em&gt; の手作りポーチ。大掃除の時に見つかった &lt;em&gt;りと&lt;/em&gt; の古着を加工して作られている。原宿の一般的な街歩きに必要なグッズの他に、おやつのぎょにそが入っている。&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;青いシャンプーハット&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;ことこが毎日使っている青いシャンプーハット。何度か買い替えているが、毎回いつも子供用の小さなものを買っている。一度だけ卒業しようとしたことがあったが、結局失敗してしまった。&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="extra-links"&gt;EXTRA: LINKS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.pixiv.net/novel/show.php?id=10647313"&gt;ミックスサンド・ベイキング&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://park-harajuku.net/items/571618ff9821cc715e000f8b"&gt;PARK:HARAJUKU Crisis Team! 日本語ver 単行本&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;URAHARA&lt;sup id="fnref:urahara"&gt;&lt;a class="footnote-ref" href="#fn:urahara" title="https://urahara.party/"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:urahara"&gt;
&lt;p&gt;https://urahara.party/&amp;#160;&lt;a class="footnote-backref" href="#fnref:urahara" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>ミックスサンド・ベイキング</title><link href="https://ama.ne.jp/post/mix-sand-baking-1/" rel="alternate"/><published>2019-01-19T17:01:00+09:00</published><updated>2019-01-19T17:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-01-19:/post/mix-sand-baking-1/</id><summary type="html">&lt;p&gt;前編&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/sugar-jelly/"&gt;Sugar Jelly&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="a"&gt;a&lt;/h2&gt;
&lt;p&gt;クラゲはふわふわと舞うのです。ふわふわ、ふわふわと。&lt;/p&gt;
&lt;p&gt;水中のクラゲはそう大きな声で鳴かないそうですから、やはり私は水槽を前にしてもクラゲの鳴き声に気付けなかったのです。あるいは、水槽のクラゲはもうずっと前から弱っていたのかもしれません。&lt;/p&gt;
&lt;p&gt;クラゲは原宿でも、ふわふわと飛ぶのでしょうか？きっと、寒い冬の夜をゆっくり散歩すれば見られるのでしょう。澄んだ海の中で。今のバブルドームは嫌というほど濁っていて、この澱んだ空気はクラゲには――当然、彼女にも――暑すぎますから。&lt;/p&gt;
&lt;p&gt;間違ってクラゲに触れてしまったら、簡単に壊れてしまうのです。死んだら幼生に還るクラゲもいると聞いたことがありますが、そういうクラゲはいつ生きていて、いつ死ぬのでしょうか。&lt;/p&gt;
&lt;p&gt;生き返ったクラゲは、本当に死ぬ前と同じなのでしょうか。私には分かりません。だって、砂糖漬けになったクラゲは、もうクラゲではないのですから。&lt;/p&gt;
&lt;h2 id="b"&gt;b&lt;/h2&gt;
&lt;p&gt;最近妙な夢を見る。りとの夢だ。&lt;/p&gt;
&lt;p&gt;その夢には色んな場所が出てくるけれど、なぜかいつも、そこでりととお酒を飲んでいる。二人きりの夜で、他には誰もいない。ことこさえも。&lt;/p&gt;
&lt;p&gt;ある時はスケボーのメンテナンスをするのを眺めながら、別の時はソファに座って流行りのホラー映画を観ながら、一緒にお酒を飲む。そう、原宿の外で探検している間に酒盛りなんてのもあったわね。&lt;/p&gt;
&lt;p&gt;夢の中のりとはいつもより少し大胆だ。平気な顔で「これ、桜餅みたいな香りのお酒だって」だなんて、強いウォッカを持ってきたりする。お酒に弱い私のことなんてお構いなしに。&lt;/p&gt;
&lt;p&gt;そうして、お酒に酔った彼女は私に悪いちょっかいをかけてくる。私の耳に吐息たっぷりの熱い声で囁いたり、私の身体を優しく触って痛めつけるのだ。&lt;/p&gt;
&lt;p&gt;私は慣れない快感に身体をくねらせて、それをりとがくすくすと笑う。腕に力を込めてりとから逃げようとするけれど、酔った私では彼女を押し返すことも叶わない。&lt;/p&gt;
&lt;p&gt;諦めてりとに身体を任せてしまうと、いつの間にかスケボーもお酒も映画も、私の視界から消えてしまう。そういう「日常」が見えなくなってしまうのが少し怖い。&lt;/p&gt;
&lt;p&gt;りとは余裕そうな笑顔で私を好き放題にするし、一方の私はその責めに必死で抵抗しているのを隠せない。そんな風に立場の差を見せつけられるのが、私が必死になってるのを見られるのが、たまらなくイライラした。&lt;/p&gt;
&lt;p&gt;夢のことを思い出す度に、私の頬が熱くなる。現実のりとに触れるだけで、少しだけ胸が高鳴る。りとのやわらかい肌の感触や、私の身体を走るピリピリとした刺激、りとが私を見つめる楽しそうな視線。&lt;/p&gt;
&lt;p&gt;そういう感覚が全部、夢にしてはやけにリアルで。&lt;/p&gt;
&lt;p&gt;「本当に、嫌になるわ」&lt;/p&gt;
&lt;p&gt;夢は願望の現れだなんていうけど、あれはきっと嘘ね。私、あんなこと考えていないもの。&lt;/p&gt;
&lt;p&gt;それにしても、ことこが一度も出てこないのって、なんだか変ね。ことこと街歩きをした日くらい、夢に出てきたっていいのに。&lt;/p&gt;
&lt;h2 id="1"&gt;1&lt;/h2&gt;
&lt;p&gt;「さて。飾り付け、これくらいでいいかしら？」&lt;/p&gt;
&lt;p&gt;ＰＡＲＫを包み込む朝が、いつもと少しだけ違う。まるで明日から夏が始まるような、何かしたくてむずむずしてしまう空気が流れている。&lt;/p&gt;
&lt;p&gt;今日はちょうど、春と夏の境目だ。&lt;/p&gt;
&lt;p&gt;バブルの中には梅雨がないから、肌寒い春がそのまま暑い夏に移り変わっていく。バブルの外で降る雨は、私をそっと冷やしてくれるのかしら。こんなに蒸し暑いと、何でもいいから浴びたくなってしまう。&lt;/p&gt;
&lt;p&gt;「お店がすっかり、クラゲまみれだね」&lt;/p&gt;
&lt;p&gt;レジに座ったりとが、改めてフロアをぐるりと見回した。&lt;/p&gt;
&lt;p&gt;そう、今週はクラゲフェアなのだ。りとの言うとおり、フロアがたくさんのクラゲグッズで埋め尽くされている。&lt;/p&gt;
&lt;p&gt;廃墟で見かけたクラゲの話を聞いたことこは、目を輝かせて図鑑の色々な写真を見せてくれた。聞いてみると、不老不死のクラゲがいるらしくって、一度見てみたかったみたい。りとと二人で見た水槽のクラゲとは、だいぶ形が違うみたいだったけど。&lt;/p&gt;
&lt;p&gt;そこからアイデアを得たことこが、「クラゲフェアで大儲け！」作戦を思いついたってわけ。&lt;/p&gt;
&lt;p&gt;「最近暑いからね。涼しげな方がいいかな〜なんて」&lt;/p&gt;
&lt;p&gt;「見た目が涼しげなのはいいけど、気温の方もちゃんと下げてほしいわね」&lt;/p&gt;
&lt;p&gt;初夏の空気はワクワクするけど、こんなに蒸し暑いとほんと嫌になっちゃう。&lt;/p&gt;
&lt;p&gt;どうしてバブルドームには、新しくてまともなエアコンが入らないの？ちまちま修理してないで、さっさと交換しちゃえばいいのに！&lt;/p&gt;
&lt;p&gt;「エアコンはあんまり切りたくないんだけど、ちょっと電気代と相談しないと……」&lt;/p&gt;
&lt;p&gt;そう言ってお金を確認するりと。赤字スレスレなのはみんな分かっていたけど、りとはわざとらしく溜息を吐いて、ふるふると首を振った。&lt;/p&gt;
&lt;p&gt;「『電気代フェア』にでも改名したほうがいいかもね」&lt;/p&gt;
&lt;p&gt;「じゃあ、電気クラゲも注文すればよかったかな？」&lt;/p&gt;
&lt;p&gt;冗談に冗談で答えることこの声が、いつもより楽しそう。&lt;/p&gt;
&lt;p&gt;飾り気のない白い壁や棚が、今日は新しい商品と新鮮なデコレーションでいっぱいだ。久しぶりのフロアの模様替えに、みんなが心躍っていた。&lt;/p&gt;
&lt;p&gt;コンセプト作り、商品選び、飾り付け……一つのテーマに向かって頑張るの、やっぱり私たちらしいって感じがするわ。もちろん、新しい商品をたくさん並べて、いっぱい儲けられそうだからっていうのもあるけれど。&lt;/p&gt;
&lt;p&gt;商品の配置と飾り付けはもう終わっている。細かい調整を済ませば、開店準備完了ってとこね。&lt;/p&gt;
&lt;p&gt;「まりの作ったくらげのモビール、やっぱり可愛いね」&lt;/p&gt;
&lt;p&gt;りとが頬杖をついたまま天井を見上げた。ぼんやりした視線の先では、ＰＡＲＫオリジナルの特製インテリアがゆらゆらと揺れている。&lt;/p&gt;
&lt;p&gt;「そう？リアルさを大事にしながら、オーガンジーでスカートを履かせてみたの」&lt;/p&gt;
&lt;p&gt;フロアの真ん中に吊るされたふわふわの傘が、ティアドロップのクリスタルと一緒にきらきらと輝く。サーキュレーターの風がクラゲに当たるたびに、薄いスカートが海の中にいるみたいにゆらめくのだ。&lt;/p&gt;
&lt;p&gt;うん。自分でも、とっても綺麗に仕上がったと思ってるわ。細かい作業なら任せておいて。&lt;/p&gt;
&lt;p&gt;「うん。すっごく幻想的だよね。やっぱり、まりちゃんにお願いしてよかった」&lt;/p&gt;
&lt;p&gt;「あら、嬉しいわね。ありがと、ことこ」&lt;/p&gt;
&lt;p&gt;自分が作ったものを褒められるって、やっぱり嬉しい。私ができることは、私がしっかり頑張らないとね。&lt;/p&gt;
&lt;p&gt;「ことこの商品選びも、なかなかイケてると思うわ」&lt;/p&gt;
&lt;p&gt;「うん。センスいいね。こだわりを感じるよ」&lt;/p&gt;
&lt;p&gt;「そうかな？えへへ〜」&lt;/p&gt;
&lt;p&gt;実際、ことこに任せた発注はよく整っていた。青を基調とした陳列に黄色や白のグッズが差して、クラゲのイメージとは違ってカラフルに仕上がっている。&lt;/p&gt;
&lt;p&gt;ことこがフェアの計画中にずっとコンピュータを叩いていた理由、よく分かった気がするわ。&lt;/p&gt;
&lt;p&gt;「私は、これが一番好きかな」&lt;/p&gt;
&lt;p&gt;そう言って、りとがレジに並んだクラゲをひょいと一つ手に取った。無色透明のガラスでできたペーパーウェイトの中に、真っ赤なクラゲが閉じ込めてある。&lt;/p&gt;
&lt;p&gt;「うん。それオススメなんだ〜。クラゲの部分もガラスで出来てるんだけど、一つ一つの色合いが全然違うの」&lt;/p&gt;
&lt;p&gt;ことこが言うには、ガラスの色や温度をわざとばらばらにしているみたいで、それぞれが世界に一つだけのクラゲなんだという。確かに、りとのお気に入りは暗めの赤色でひときわ鈍く輝いていて、あの時の怪物クラゲを思い出させる。&lt;/p&gt;
&lt;p&gt;りとは手の中のクラゲをひとしきり眺めた後に、気だるそうに身体を起こして、ことこに向かって腕を伸ばした。&lt;/p&gt;
&lt;p&gt;「ことこ、これ貰ってもいい？」&lt;/p&gt;
&lt;p&gt;「うん。もちろんいいよ！」&lt;/p&gt;
&lt;p&gt;りとは「ありがと、大事にするね」と答えてから、満足げな表情でピンク色の付箋をクラゲの頭に貼り付けた。&lt;/p&gt;
&lt;p&gt;小さくて可愛い怪物がクラゲの列に戻されて、ガラスがぶつかる時の小気味いい音がする。自分だけ「売約済」のラベルを貼られて、なんだか誇らしげだ。&lt;/p&gt;
&lt;p&gt;「まりちゃんも、欲しいのあったら持っていってね？」&lt;/p&gt;
&lt;p&gt;「うーん、そうね……」&lt;/p&gt;
&lt;p&gt;話を振られて、棚に置かれた商品を改めて眺めてみる。&lt;/p&gt;
&lt;p&gt;とりあえず手に取ったのは、水で満たされた不思議な置物だ。透明な筒の中に、細い脚がたくさん生えたプラスチックのおもちゃが入っている。ちょうど、手に収まるコップくらいの大きさだ。&lt;/p&gt;
&lt;p&gt;筒の上の黒い蓋には「クラゲチューブ」と書かれていて、封入されているのはクラゲのイミテーションらしい。&lt;/p&gt;
&lt;p&gt;ミニチュア水族館のつもり？&lt;/p&gt;
&lt;p&gt;持ち上げて、裏に付いていたスイッチに触れると、底から照らされる光に合わせてビニールのチューブが水中で踊りだした。変な動きねぇ。&lt;/p&gt;
&lt;p&gt;「ふわふわっていうより、ぐねぐねって感じね」&lt;/p&gt;
&lt;p&gt;「電池で動くクラゲだって。本物を飼うのは難しいらしいから、気分だけでも楽しめるように作られたみたい」&lt;/p&gt;
&lt;p&gt;「クラゲらしさがなくって、これはイマイチね」&lt;/p&gt;
&lt;p&gt;「あれ〜？そうかなぁ……？」&lt;/p&gt;
&lt;p&gt;小さな水槽を泳ぎ回る七色のチューブは、初めて見たクラゲの繊細さが懐かしくなるほどに荒々しい。もし水族館が残っていたら、今すぐ本物のクラゲを見に行きたいくらいだわ。&lt;/p&gt;
&lt;p&gt;ずっと北の方には、クラゲをたくさん展示している水族館があったみたい。私たちが行くまで、残っていたらいいんだけど。&lt;/p&gt;
&lt;p&gt;「ほかにもいいもの、いっぱいあるから！ほら、ね？」&lt;/p&gt;
&lt;p&gt;そう言って、ことこは私の背中をぐいぐいと押してフロアを回らせようとする。お気に入りのグッズを見つけてもらえないのは、商品担当のプライドが許さないらしい。&lt;/p&gt;
&lt;p&gt;「わ、分かったわよ。もうちょっと見てみるから」&lt;/p&gt;
&lt;p&gt;食器やハンカチは、グッズとしては定番ね。水色や黄色の素材にデフォルメしたクラゲの絵がプリントしてあって、ポップな感じ。&lt;/p&gt;
&lt;p&gt;でも、どのクラゲにもくりくりとした黒い目と口角の上がった線が描き込まれていて、ちょっと慣れない。りとと見たクラゲは、もっと寡黙で寂しげな感じだったから。&lt;/p&gt;
&lt;p&gt;「――こういうの、子供向けなのかしら？」&lt;/p&gt;
&lt;p&gt;「水族館から出てきたグッズは、子供向けが多いみたい」&lt;/p&gt;
&lt;p&gt;大昔にクラゲブームがあったらしくて、供給過剰の新古品もかなり多い。いつもは状態のよくない中古品ばかり入荷してる（拾ってきてるとも言うわね）から、フロアの雰囲気もいつもとだいぶ違う。&lt;/p&gt;
&lt;p&gt;「赤いくらげにも、顔が付いてたら面白かったかも」&lt;/p&gt;
&lt;p&gt;「あら。りとったら、ホラー映画の観すぎじゃない？」&lt;/p&gt;
&lt;p&gt;あの子犬サイズの怪物にしっかり顔が付いていて、目線がぶつかっちゃったりなんてしたら……ちょっとゾッとしちゃう。&lt;/p&gt;
&lt;p&gt;「まりも、ホラー映画好きでしょ？」&lt;/p&gt;
&lt;p&gt;「りとが観たいっていうから付き合ってるのよ？」&lt;/p&gt;
&lt;p&gt;「ふふっ、そうだね。ありがと、まり」&lt;/p&gt;
&lt;p&gt;映画の観すぎっていうよりは、ホラーゲームのやりすぎなのかもしれないけど。ホラーゲームだと、どうしてもりとの銃さばきに勝てなくって――&lt;/p&gt;
&lt;p&gt;「――ちょ、ちょっとりとちゃん！」&lt;/p&gt;
&lt;p&gt;と、会話を遮るようにして、ことこがりとに声を掛けた。レジはそんなに離れていないのに、フロア中に響くような大声だ。急ぎの用事でもあるのかしら。&lt;/p&gt;
&lt;p&gt;「どうしたのよ、ことこ。そんなに大きな声で」&lt;/p&gt;
&lt;p&gt;「まだ朝食前なのに、元気だね」&lt;/p&gt;
&lt;p&gt;「あっ……いや、違うの！ちょっと、思い出したから」&lt;/p&gt;
&lt;p&gt;我に返ったことこが、私とりとの視線を集めているのに気付いて急に慌てだす。身振り手振りで何かを伝えようとしているけど、動きが素早すぎて伝わらないところ、いつものことこって感じね。&lt;/p&gt;
&lt;p&gt;「ごめんね。えっと、もう開店直前なんだけど、まだ準備ができてないっていうか、お願いしたいことがあってね、それで、それで……」&lt;/p&gt;
&lt;p&gt;「ことこ、落ち着いて」&lt;/p&gt;
&lt;p&gt;「あ……うん。看板を、外に置いてきてほしいの」&lt;/p&gt;
&lt;p&gt;「「……看板？」」&lt;/p&gt;
&lt;p&gt;お願い自体は変なことじゃないのに、その脈絡のなさに混乱してしまう。りとも私と同じことを感じていたらしく、すっきりしない顔で立ち上がった。&lt;/p&gt;
&lt;p&gt;「ことこ、これだよね？」&lt;/p&gt;
&lt;p&gt;りとが私の視線と同じ向きに指をさす。&lt;/p&gt;
&lt;p&gt;看板というのは、クラゲフェアの開催を伝える立て看板のことだろう。&lt;/p&gt;
&lt;p&gt;黒いパネルに水色のペンでふわふわと踊るクラゲは、りとが描いたものだ。その横に「クラゲフェアです　ナウ・オン・セール！」と細めのゴシックで記されている。最近は、妙なウェイトのダサい日本語フォントが流行っているらしい。&lt;/p&gt;
&lt;p&gt;「そ、そう！花壇の水やりもお願いしたいな、なんて」&lt;/p&gt;
&lt;p&gt;ことこの様子がどこかおかしい。&lt;/p&gt;
&lt;p&gt;こういう時のことこって、だいたい一人で変なことを考えているのよね。看板の話自体にはおかしなところがないのに、どこか不自然に見えた。&lt;/p&gt;
&lt;p&gt;「あー……そっか。うん、分かった。行ってくるね」&lt;/p&gt;
&lt;p&gt;たぶん、りともこの不自然さを感じているけれど、それをわざわざ追及するつもりもないのだろう。りとったら、ことこには甘いんだから。&lt;/p&gt;
&lt;p&gt;レジを離れたりとは、腰の高さほどのアルミフレームを両手に抱えて外に向かう。それに合わせるようにして、ことこがレジをすり抜けてバックヤードに引っ込んだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;実は、あのパネルの裏には劇画チックな赤いくらげの絵が描いてある。まるでお化け屋敷のような立て看板は、夏の訪れも相まって納涼感こそよく出ているけど、残念ながらクラゲフェアの宣伝には使えない。前面に押し出されたホラー要素は、ギャップというにはあまりにイメージと離れすぎていた。&lt;/p&gt;
&lt;p&gt;完成した看板を見て、フェアのコンセプトと違うという話をしたらそこでまたひと悶着。りとは「ホラーな感じが出ないじゃん」と不満げだったけど、コンセプト重視のことこの意見も頼ってなんとか押し切ったのだ。&lt;/p&gt;
&lt;p&gt;「りとって、絵は上手なんだけど、たまに理解に苦しむわ」&lt;/p&gt;
&lt;p&gt;少しして、商品でいっぱいの陳列かごを抱えて戻ってきたことこに、私は独り言のように呼びかけた。&lt;/p&gt;
&lt;p&gt;「そう？りとちゃんの絵、私は好きだよ」&lt;/p&gt;
&lt;p&gt;すっかり落ち着いた様子のことこが、かごを置いてレジ越しに言葉を返す。&lt;/p&gt;
&lt;p&gt;「あら、もちろん私だって嫌いじゃないわ」&lt;/p&gt;
&lt;p&gt;面と向かうと上手に言えないけど、りとの技量に文句があるわけではなかった。実際、ボツにしてしまった看板だってすごい上手だったし。店内に立てられた &lt;em&gt;りとお手製&lt;/em&gt; ポップは、文句のない出来栄えだ。&lt;/p&gt;
&lt;p&gt;好意を伝えたり、褒めたりするのって、私には少し難しい。いつだって、皮肉と言い訳でぐるぐる巻きにしてぶつけてしまうから。&lt;/p&gt;
&lt;p&gt;「じゃあ、りとちゃんに好きって伝えないとね？」&lt;/p&gt;
&lt;p&gt;「まぁ、気が向いたら、ね」&lt;/p&gt;
&lt;p&gt;好きだなんてはっきり伝えるのを想像すると、夢のことを妙に意識してしまう。ありもしないことを思い出して、勝手に顔が熱くなってしまう。&lt;/p&gt;
&lt;p&gt;りとがとんたんと階段を降りる音が少しずつ遠くなる。ふいと窓に視線を向けると、示し合わせたように足音が聞こえなくなった。&lt;/p&gt;
&lt;p&gt;「まりちゃん、大丈夫？なんだか顔が赤く――」&lt;/p&gt;
&lt;p&gt;「ね、ねぇ！ことこ、何を持ってきたの？」&lt;/p&gt;
&lt;p&gt;心配そうな表情をかき消すようにして、今度は私が話を遮る。ことこはきょとんとした後に、笑顔でスカートのポケットに手を伸ばした。&lt;/p&gt;
&lt;p&gt;「私のおすすめ商品『クラゲチップス』だよ！」&lt;/p&gt;
&lt;p&gt;ことこがポケットからがさがさと取り出したのは、透明な欠片がたくさん入った小袋だ。レジに置かれた白いかごいっぱいに並べられた商品と――既に開封されていることを除けば――同じものらしい。&lt;/p&gt;
&lt;p&gt;袋に「バジルペッパー味」とプリントされているのを見ると、「クラゲチップス」の名の通り、お菓子であることが分かる。&lt;/p&gt;
&lt;p&gt;「食べるの？クラゲを？」&lt;/p&gt;
&lt;p&gt;「うん！昔は食用にしてたみたいだよ。あ、もちろんこれは合成たんぱくなんだけどね。加工に秘密があって、サクサクとコリコリが両方楽しめるの」&lt;/p&gt;
&lt;p&gt;わざわざクラゲを食べようだなんて、合成肉みたいに食糧危機から生まれたアイデアなのかしら。&lt;/p&gt;
&lt;p&gt;合成肉も初めはゲテモノ扱いだったらしいけど、私たちが生まれた頃には安くて美味しいという触れ込みで生活によく馴染んでいた。ハムやソーセージ、妙に四角いお肉、大げさな「天然」ラベルのないものは、たいてい合成肉を使っている。&lt;/p&gt;
&lt;p&gt;ただし、お魚は養殖技術と品種改良のおかげで合成するより安上がりになるらしく、ほとんどが「天然モノ」のままだ。&lt;/p&gt;
&lt;p&gt;聞き慣れないマイナーな動物のお肉も、出回っているのはほとんどが合成たんぱくから作られた「復刻版」らしい。このクラゲもそうなのだろう。&lt;/p&gt;
&lt;p&gt;「これ、どうやって食べるの？」&lt;/p&gt;
&lt;p&gt;「普通のお菓子だから、そのまま食べられるよ」&lt;/p&gt;
&lt;p&gt;ことこがクラゲチップスの袋を開けて、クラゲの欠片を口へ放り込んだ。少し遅れて、バジルの香りがふわっと漂ってくる。&lt;/p&gt;
&lt;p&gt;食品コーナーに並んでいるのは、オレンジ味、ぶどう味、バジルペッパー味、青のり味……あら、バナナパクチー味もあるじゃない！&lt;/p&gt;
&lt;p&gt;「えーと、これは何の味？」&lt;/p&gt;
&lt;p&gt;「こっちは塩漬けだよ。水で戻してサラダのトッピングにしてもいいし……そうだ！カップ麺の海苔の代わりに使ったらどうかなぁ？」&lt;/p&gt;
&lt;p&gt;「ことこって、ほんとに食いしんぼさんよね」&lt;/p&gt;
&lt;p&gt;「えへへ、お腹空いちゃって。まりちゃんも食べてみる？」&lt;/p&gt;
&lt;p&gt;そう言って、ことこはかごから新しい袋を取り上げた。&lt;/p&gt;
&lt;p&gt;「お砂糖に漬けてあるの。ちょっと甘すぎるかもしれないけど、こっちもそのまま食べてＯＫだよ」&lt;/p&gt;
&lt;p&gt;クラゲは見た目の通り水分がたくさん入ってるから、普通は塩漬けにするみたい。ただのチップスは湿気を吸いやすいから、料理に使うなら塩漬け、お菓子なら砂糖漬けがおすすめらしい。&lt;/p&gt;
&lt;p&gt;ピンク色のチェック模様で飾られた袋には、カラフルなゼリーやアイスクリームの写真が添えられている。涼しげなお菓子に使うといいみたいね。&lt;/p&gt;
&lt;p&gt;「大丈夫。成分的にも問題ないみたいだから」&lt;/p&gt;
&lt;p&gt;「そ。ならいいわ」&lt;/p&gt;
&lt;p&gt;袋をじっくり眺めていたせいで、疑っているように見えたらしい。わざわざそんなことを言われると、逆に怪しく見えちゃうけど。&lt;/p&gt;
&lt;p&gt;ま、たっぷりの調味液でごまかした激安合成肉よりはましよね。私はぴりぴりと開けたチャックの隙間から、一番小さな欠片を口に放り込んだ。&lt;/p&gt;
&lt;p&gt;「あ……シナモンが効いてて美味しい」&lt;/p&gt;
&lt;p&gt;舌に当たるざらざらとした砂糖の感覚が心地いい。じわりと甘さが走って、噛むたびに歯ごたえと香辛料の刺激がついてくる。&lt;/p&gt;
&lt;p&gt;クラゲそのものにはあんまり特徴的な風味はないけれど、独特の食感はおすすめポイントね。&lt;/p&gt;
&lt;p&gt;合成肉のケミカルな風味を消すために、強めのスパイスで香りをまぶすのはよくあるやり方だ。一緒について回る薄い磯の香りは、たぶん後から付けられたものだろう。&lt;/p&gt;
&lt;p&gt;「ただいま。水やりも終わったよ」&lt;/p&gt;
&lt;p&gt;「あ、りとちゃん。おかえり〜」&lt;/p&gt;
&lt;p&gt;コリコリとした食感を楽しんでいると、準備を終えて戻ってきたりとがひょこっと顔を出す。&lt;/p&gt;
&lt;p&gt;「外から見ていくと、やっぱり少し印象違うね」&lt;/p&gt;
&lt;p&gt;改めてゆっくりと店内を眺めながら戻ってくるりとを見て、レジに収まっていたことこが立ち上がろうとする。りとは私の隣で「いいよ、座ってて」と言いながら、そのまま壁に寄りかかった。&lt;/p&gt;
&lt;p&gt;「二人とも、何の話してたの？」&lt;/p&gt;
&lt;p&gt;「看板が可愛いねって言ってたの。ね、まりちゃん？」&lt;/p&gt;
&lt;p&gt;そう言って私に話を振るものだから、りとの視線も私に向けられてしまう。&lt;/p&gt;
&lt;p&gt;「そ、そうね。なかなか悪くないと思うわ」&lt;/p&gt;
&lt;p&gt;壁や天井にふらふらと視線を向けながら、精一杯の答えを絞り出す。さっきことこと話していたことが、なかなか口から出ていかない。ボツになった看板に言い過ぎたのもあって、少し気まずかった。&lt;/p&gt;
&lt;p&gt;「うん、ありがと。ことこ、まり」&lt;/p&gt;
&lt;p&gt;でも、りとはそんな私の気持ちなどどこ吹く風というように、さらりとお礼を返す。そして、りとは私たちが手に持っているクラゲ菓子に気付いて指をさした。&lt;/p&gt;
&lt;p&gt;「それ、配給？変わり種の合成肉、久しぶりだね」&lt;/p&gt;
&lt;p&gt;「ううん、配給品じゃないの。どうしても食べてみたかったから、フェアに合わせて入荷してみたんだ〜」&lt;/p&gt;
&lt;p&gt;復刻版の合成肉は高いごちそうとして、あるいは安い代用品としてしばしば配給に紛れ込んでいた。それぞれの当たり外れは大きいにせよ、単調になりがちな配給のいいアクセントになっている。&lt;/p&gt;
&lt;p&gt;「この前のは、固くてあんまり好きじゃなかったわ」&lt;/p&gt;
&lt;p&gt;「たぶん、クジラかな？保存の仕方が悪かったかも」&lt;/p&gt;
&lt;p&gt;クジラはすごく大きい動物で、昔はよく食べていたみたい。かつては、原宿の近くにもクジラ専門レストランがあったらしいし、美味しい料理法もあるのかしら。&lt;/p&gt;
&lt;p&gt;「その前の合成肉は？あれは美味しかったよね」&lt;/p&gt;
&lt;p&gt;「あのすごく柔らかいやつ？確か、ウナギだったわね」&lt;/p&gt;
&lt;p&gt;ウナギという名前は、あんまり美味しそうな名前ではなかったから逆によく覚えていた。かつては、骨も無くて柔らかい脂の乗ったお魚だったらしい。&lt;/p&gt;
&lt;p&gt;でも、どうして骨が無かったのかしら？ことこの説明は難しくてよく分からなかった。&lt;/p&gt;
&lt;p&gt;「ウナギは高級品だったみたいだよ。合成品が出回ってよかったねぇ」&lt;/p&gt;
&lt;p&gt;「でも、ミックスサンドは具材のバランスが命なのよ？」&lt;/p&gt;
&lt;p&gt;高級品だったという割には、配給日前のミックスサンドで適当に消費されていたのを思い出す。まぶされた和風のたれは美味しかったけど、実のところウナギの食感はあんまり覚えていなかった。&lt;/p&gt;
&lt;p&gt;お金がない時は、いつだってミックスサンド。今週も、家中からかき集めた余り物で作った気まぐれサンドイッチが続いているのだ。&lt;/p&gt;
&lt;p&gt;「じゃあ、クラゲフェアでしっかり稼がないとね！」&lt;/p&gt;
&lt;p&gt;「そうね。エアコンも食生活も救わなきゃ」&lt;/p&gt;
&lt;p&gt;立ち上がったことこが腕を突き上げると、シャツの裾がふわりと舞い上がる。と同時に、ぐぅ、とことこのお腹が鳴いた。&lt;/p&gt;
&lt;p&gt;「食べ物の話してたら、お腹空いてきちゃったわね」&lt;/p&gt;
&lt;p&gt;「じゃあ、バックヤードで朝食にしようよ。お客さん、まだ来てないみたいだし」&lt;/p&gt;
&lt;p&gt;もう開店の時間は過ぎていたけれど、外を歩く人通りはまばらだ。夏の朝は、いつもより少し遅い。&lt;/p&gt;
&lt;h2 id="3"&gt;3&lt;/h2&gt;
&lt;p&gt;午後になると、ちらほらとお客さんがやってくる。店内の雰囲気ががらりと変わったＰＡＲＫに、初めてのお客さんも常連さんもいい反応を示してくれた。&lt;/p&gt;
&lt;p&gt;夏の間、客足のピークは――特に、近所のショップの子たちが遊びに来てくれるのは――夕方近くになることが多い。お昼過ぎなんて、一番暑くて日に焼けちゃう時間帯だもの。ほんっと、バブルドームが古すぎるのが諸悪の根源よね。&lt;/p&gt;
&lt;p&gt;こんなに日差しの強い午後なのに、ついさっき、りととことこが二人で買い出しに出かけていった。&lt;/p&gt;
&lt;p&gt;私は涼しくなってから行くように勧めたけれど、ことこはどうしてもと言い張って聞かなかったのだ。結局、りとも荷物持ちとしてついていくことになった。&lt;/p&gt;
&lt;p&gt;当然、私はお留守番。とっても暇な店番だ。日焼け止めクリームも完璧ってわけじゃないもの。&lt;/p&gt;
&lt;p&gt;二人が外に出かけて、私が一人で残って店番をする。&lt;/p&gt;
&lt;p&gt;思い出してみると、最近はこうやって一人でぼんやりする時間が少なかった気がする。いつもと違う店の中、一人で話し相手もなく、暇な時間がゆったりと流れていく。静かな海の音に囲まれて……何だか、落ち着かない。&lt;/p&gt;
&lt;p&gt;やっぱり、今日は少しだけ変な日だ。&lt;/p&gt;
&lt;p&gt;ことこのおかしな言動が、私に波乱の予感を与えているのかもしれない。こういう時のことこは、いつも一人で大きな問題を抱えてるから。一人で頑張ろうとするところ、直ってないのよね。&lt;/p&gt;
&lt;p&gt;「さて、お縫製の続きでもしようかしら」&lt;/p&gt;
&lt;p&gt;手持ち無沙汰で落ち着かない時間を過ごすのに耐えかねて、私はレジにミシンを持ち込むことにした。少しずつ進めていた夏服が、そろそろ完成するところなのだ。&lt;/p&gt;
&lt;p&gt;「もう少しね」&lt;/p&gt;
&lt;p&gt;小さい頃から、ずっと自分で服を作ってきた。自慢できる特技と言ってもいい。&lt;/p&gt;
&lt;p&gt;ママにミシンを借りて縫っていた頃は、服を買うお金がないから頑張ったものだった。今ではもう、節約のためというよりも、自分が納得する服を手に入れる一番の近道だと思ってる。&lt;/p&gt;
&lt;p&gt;それに、私がＰＡＲＫに貢献できるのはお洋服くらいだから。ことこみたいに頭脳派の戦略も立てられないし、りとみたいにポップなイラストでお客さんを集めたりもできない。だから私は、来てくれたお客さんが喜ぶような最新の服を作らなきゃ。&lt;/p&gt;
&lt;p&gt;古着のほころびを直すくらいなら &lt;em&gt;りと&lt;/em&gt; も &lt;em&gt;ことこ&lt;/em&gt; もできるけど、少し込み入ってくるとすぐに私の出番になる。もちろん、デザイン画はりとに手伝ってもらうこともあるし、そこは頼りにしてるわ。&lt;/p&gt;
&lt;p&gt;それとは逆に、私がりとを手伝って店内の飾り付けを作ることもある。全体の計画はことこが練ってくれるから、安心して作業できるの。&lt;/p&gt;
&lt;p&gt;りとってたまに合わないところがあるけど、こうやって三人一緒に頑張れるのってすごくいいことよ。&lt;/p&gt;
&lt;p&gt;当のりとには、面と向かって言えないけど。&lt;/p&gt;
&lt;p&gt;「二人とも、何してるのかしら」&lt;/p&gt;
&lt;p&gt;りととことこが二人だけで外に出かけているのは珍しい。どちらかといえば、二人で出かけるのが多いのは私とことこの方だ。ショッピングをしたり、食べ歩きをしたり、うわさ話を交換しあったり。はしゃぐことこは色んな話を聞かせてくるけど、たまにありえない空想のお話ばかりになってイライラしちゃうこともある。&lt;/p&gt;
&lt;p&gt;ことこが熱心に語り出す夢見がちな海外旅行計画も、スクーパーズが来なかったら実現していたのかもしれない。そうしたら、こんなバブルの中で閉塞感に満ちた生活を送ることもなかっただろう。&lt;/p&gt;
&lt;p&gt;でも、スクーパーズがいない世界で、私たちは出会うことができたのかしら？&lt;/p&gt;
&lt;p&gt;「……あっ、やだ」&lt;/p&gt;
&lt;p&gt;慌ててミシンから足を離すと、ほとんど縫い終わっていた軌跡が少しだけぶれて止まっていた。規則的なミシンの音にとりとめのない考えが重なって、手元への注意が薄れていたらしい。&lt;/p&gt;
&lt;p&gt;ほどいて縫い直そうか、それとも上から何かを縫い付けてしまおうか？普段ならすぐに糸を抜いて、薄く残る針の跡でさえ気にしてしまうところだけど、今日はどうしてか気怠い空気が私を包み込んで離さなかった。&lt;/p&gt;
&lt;p&gt;「なんか、昔を思い出すわね」&lt;/p&gt;
&lt;p&gt;ぶれたミシンの跡は、昔を思い出させる。まだ上手にミシンを扱えなかったあの頃を。&lt;/p&gt;
&lt;p&gt;川崎でママやパパと一緒に暮らしていた頃は、お姉ちゃんとしてみんなのお世話をしなきゃならなかった。それだけ我慢も多かったし、自分の好きなことをしたせいで叱られるのは、今でもすごく嫌だと思う。&lt;/p&gt;
&lt;p&gt;みんなは、今頃どうしているのかしら？&lt;/p&gt;
&lt;p&gt;そんなに悪い思い出じゃないけれど、帰りたいかと訊かれるとやっぱり「ノー」ね。家を離れる直前は治安もよくなかったし。&lt;/p&gt;
&lt;p&gt;曲がったミシンの糸の軌跡を見つめて、指でなぞる。&lt;/p&gt;
&lt;p&gt;「やっぱり、縫い直しましょ」&lt;/p&gt;
&lt;p&gt;ちくちくと糸を解いてから布をぴんと張った。どれだけ擦ってみても、影になった針の跡はもう消えない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私がミシンで作るのは、自分の服だけではない。お店で売る服はもちろんだけど、りとやことこの持ち物を作ってあげることもある。&lt;/p&gt;
&lt;p&gt;実は、今日りとが提げていったショルダーバッグにも、私が作ったポーチが入っていた。&lt;/p&gt;
&lt;p&gt;私がミシンで初めて完成させたのは、自分の服を使ったポーチだった。あのポーチにも、さっきみたいに歪んだ軌跡が走っていたわね。&lt;/p&gt;
&lt;p&gt;古着をポーチに作り変えるのは、原宿に来るよりもずっと前に覚えたテクニックだ。いつでも布を買ってもらえるわけじゃなかったし、着られなくなった服をずっとしまっておくのも寂しい気がしたから。&lt;/p&gt;
&lt;p&gt;それから、小さくなった服を裁断して新しいアイテムに作り変えるのは私の習慣になった。とはいえ、身体が成長して服が入らなくなるなんてことはもうない。今ではむしろ、ほつれたままチェストに突っ込まれたりとの服をリメイクすることが多いくらいだ。ことこもそれを見て、「私にも作って〜」なんて頼んでくる。&lt;/p&gt;
&lt;p&gt;こういう時に、ことこは全身で喜びを表現してくれるけど、りとはやっぱりそっけない。&lt;/p&gt;
&lt;p&gt;シャンプーもボディソープも、りとにとっては昨日の夕食くらいにどうでもいいことだ。私のポーチも、それと同じ。口でこそ「可愛いね」とは言うけれど、りとは、自分がどうでもいいと思ったことはとことん気にしない子だから。&lt;/p&gt;
&lt;p&gt;それでも、自分の作ったものがずっと使えてもらえるのって、やっぱり少しだけ嬉しいわ。&lt;/p&gt;
&lt;p&gt;「これくらいでよさそうね。ちょっと合わせてみましょ」&lt;/p&gt;
&lt;p&gt;ばさり、と完成品を広げて鏡の前でひらひらと振ってみせる。縫い直した部分の仕上げも終わって、思い描いていた通りの爽やかな夏服ができあがっていた。フリルの付いた淡いブルーのワンピースは、クラゲフェアからインスピレーションを得て作り始めたものだ。白黒のポルカドットが添えられて、思った通りのレトロな雰囲気を引き出している。これなら――&lt;/p&gt;
&lt;p&gt;「これなら、りとも可愛いって言ってくれるかしら……」&lt;/p&gt;
&lt;p&gt;――って、違う！首を振って変な想像をかき消した。&lt;/p&gt;
&lt;p&gt;変よね。りともことこも、いつも可愛いって言ってくれるんだから、今更照れることなんてないのに。&lt;/p&gt;
&lt;p&gt;「こんにちは〜。まりちゃん、いるかな？」&lt;/p&gt;
&lt;p&gt;と、お店の入口から声がした。久しぶりのお客さんだ。できたての服を片手に、鏡の前から離れて振り向くと、原宿らしいカラフルなリボンが目に入る。&lt;/p&gt;
&lt;p&gt;「いらっしゃいま……って、さゆみんじゃない！」&lt;/p&gt;
&lt;p&gt;エプロンドレスの聞き慣れた声は、クレープ屋さんのさゆみんの声だった。クーラーボックスを提げて配達に回る姿は、もはや原宿ではおなじみと言ってもいい。&lt;/p&gt;
&lt;p&gt;「すっかり暑くなっちゃったねー。お店があんまり暇だから、遊びにきちゃった」&lt;/p&gt;
&lt;p&gt;「屋台だと仕方ないわよね。うちも今日からフェアなんだけど、売上はぼちぼちってとこ」&lt;/p&gt;
&lt;p&gt;ショップの子たちの間では、署名を集めて防衛隊にエアコン修理を急がせようという話になっているらしい。実はみんなお店の売上なんかどうでもよくて、決起集会とは名ばかりの飲み会を開いて大騒ぎしたいだけらしいけど。&lt;/p&gt;
&lt;p&gt;「クラゲフェア、だっけ？ＰＡＲＫの雰囲気がすっかり変わってて、びっくりしちゃった」&lt;/p&gt;
&lt;p&gt;「そうなのよ。ちょっと色々あってね」&lt;/p&gt;
&lt;p&gt;くらげやことこのアイデアについて教えると、さゆみんは「ことこちゃんらしいね」と軽く笑う。そして、私が左手に抱える服を指さした。&lt;/p&gt;
&lt;p&gt;「それ、新作？」&lt;/p&gt;
&lt;p&gt;「そうなの。たまには時間を掛けて自分だけの服を作ってみようと思って」&lt;/p&gt;
&lt;p&gt;「すっごく可愛いよ！気合入ってるね」&lt;/p&gt;
&lt;p&gt;そうでしょそうでしょ、と心の中で答えながら鼻を高くした。りとに褒められたって、照れずにこうやって得意げにしていればいいのだ。&lt;/p&gt;
&lt;p&gt;さゆみんはひとしきり新作を眺めてから、クーラーボックスからごそごそとピンク色の箱を取り出した。&lt;/p&gt;
&lt;p&gt;「そんなまりちゃんに、差し入れ。新作のクレープだよ」&lt;/p&gt;
&lt;p&gt;小さな発泡スチロールのケースがレジに置かれる。表面のひんやりとした感覚が空気を伝わってきて、蒸すような暑さが少し和らいだ。&lt;/p&gt;
&lt;p&gt;「ありがとう！今、りともことこも出かけてるから、後でいただくわ」&lt;/p&gt;
&lt;p&gt;「あ……りとちゃんとことこちゃんには、もう渡したの」&lt;/p&gt;
&lt;p&gt;「あら、そうなの？」&lt;/p&gt;
&lt;p&gt;どうやら、買い物途中の二人とすれ違っていたらしい。なかなか帰ってこないと思ったら、さゆみんとおしゃべりしていたようだ。&lt;/p&gt;
&lt;p&gt;「りととことこ、何か言ってた？」&lt;/p&gt;
&lt;p&gt;「木陰でもやっぱり暑いねーとか、そんな感じ？まりちゃんはお店にいるって聞いたから、寄ってみたの」&lt;/p&gt;
&lt;p&gt;「そ、そう……」&lt;/p&gt;
&lt;p&gt;木陰？下で涼めるほど大きな木は、公園くらいにしかない。二人は買い出しに出ているはずだけど、荷物が多くて休憩でもしているのかしら。&lt;/p&gt;
&lt;p&gt;やっぱり何か、少し変ね。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「――ちゃん、まりちゃん。起きて」&lt;/p&gt;
&lt;p&gt;「ん……あら、ことこ。帰ってたの」&lt;/p&gt;
&lt;p&gt;店番をしているうちに、いつの間にか寝てしまっていたらしい。外はいつの間にか暗くなりかけていて、うだるような暑さは少しだけ和らいでいる。&lt;/p&gt;
&lt;p&gt;さゆみんの持ってきたクレープの包み紙は、レジの横に綺麗に畳んで置かれていた。&lt;/p&gt;
&lt;p&gt;「まりちゃん。ちょっと、話したいことがあるの」&lt;/p&gt;
&lt;p&gt;身体を起こすと、ことこが深刻そうな表情で私を見下ろしている。その後ろでは「ラ・ラ・クイーン」の紙袋を片手に提げたりとが、退屈げに壁に寄りかかっていた。&lt;/p&gt;
&lt;p&gt;「りとも一緒？」&lt;/p&gt;
&lt;p&gt;「うん、三人の話だから」&lt;/p&gt;
&lt;p&gt;後ろに視線を向けると、ことこの代わりにりとがそう答える。三人の話、だなんて随分と仰々しい。&lt;/p&gt;
&lt;p&gt;「どうしたの？そんなに改まっちゃって。クラゲフェアなら順調に進んでるわよ」&lt;/p&gt;
&lt;p&gt;「えっとね、お店の話じゃなくて……」&lt;/p&gt;
&lt;p&gt;「分かったわ。ベースメントで話しましょ」&lt;/p&gt;
&lt;p&gt;なによ、軽い冗談じゃない。何だかはっきりしないことこの態度に、少しイライラした。&lt;/p&gt;
&lt;p&gt;カウンターを整理してからレジに鍵を掛ける。ひっくり返された「本日の営業は終了しました」の札が、射し込んだ夕日の光を反射してよく輝いていた。&lt;/p&gt;
&lt;p&gt;（&lt;a href="/post/mix-sand-baking-2/"&gt;後半&lt;/a&gt;へ続く）&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="extra-links"&gt;EXTRA: LINKS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://park-harajuku.net/items/571618ff9821cc715e000f8b"&gt;PARK:HARAJUKU Crisis Team! 日本語ver 単行本&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;URAHARA&lt;sup id="fnref:urahara"&gt;&lt;a class="footnote-ref" href="#fn:urahara" title="https://urahara.party/"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:urahara"&gt;
&lt;p&gt;https://urahara.party/&amp;#160;&lt;a class="footnote-backref" href="#fnref:urahara" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>ペパーミント・バスタイム</title><link href="https://ama.ne.jp/post/peppermint-bath-time/" rel="alternate"/><published>2019-01-19T17:00:00+09:00</published><updated>2019-01-19T17:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-01-19:/post/peppermint-bath-time/</id><summary type="html">&lt;p&gt;ことこのえっちなモノローグ&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/sugar-jelly/"&gt;Sugar Jelly&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="a"&gt;a&lt;/h2&gt;
&lt;p&gt;私が誰かと仲良くしても、あなたとの仲が変わるわけじゃないの。あなたが彼女と仲良くしても、私との仲は変わらずにいてほしいな。私たちを包む幸せは、独占したり所有したりできないものだから。欲張って手のひらで掬い取ろうとしても、溢れて全部こぼれてしまう。&lt;/p&gt;
&lt;p&gt;どうすれば、三人で生きていけるかな？&lt;/p&gt;
&lt;h2 id="1"&gt;1&lt;/h2&gt;
&lt;p&gt;私の一日は、ＰＡＲＫの開店準備から始まる。&lt;/p&gt;
&lt;p&gt;りとちゃんとまりちゃんは、今日も原宿の外へ調査に出かけている。今回は北の方に行くって言っていた。だから、昨日から私は一人でお店を回している。ハンガーラックを動かして、床のモップ掛けをして、レジのセッティングまでこなしているのだ。&lt;/p&gt;
&lt;p&gt;誰もいないＰＡＲＫは、いつもより広くて静かだ。&lt;/p&gt;
&lt;p&gt;慣れないはたき掃除を頑張ってみても、棚の上まで届かない。背伸びする鏡越しの私は、その寂しい広さを持て余しているようにも見える。そんな私の雰囲気を感じ取った白子ちゃんたちが、時折周りを跳ねて心配してくれるけど、逆にふらついたちっぽけな私の孤独さを意識させられてしまう。&lt;/p&gt;
&lt;p&gt;「何かいいもの、持って帰ってきてくれるといいなぁ」&lt;/p&gt;
&lt;p&gt;調査隊員として給料や物資の配給を受けられるようになった今でも、お金の問題（それも、来月の家賃という短期的な問題！）はいまだに私たちを悩ませている。&lt;/p&gt;
&lt;p&gt;そんなかつかつの生活を支える重要な活動の一つが、廃墟に散らばる貴重な「おたから」の収集だ。許可を受ければそのままお店に陳列できるから、今となっては重要な収入源になっていた。&lt;/p&gt;
&lt;p&gt;本当は白子ちゃんたちだけじゃなくて、たくさんの札束がそこらじゅうでダンスを披露してくれてもいいくらい。でも当然、いつも通りキャッシュドロワーの中は寒々しいままだ。&lt;/p&gt;
&lt;p&gt;小鳥ちゃんと白子ちゃんたちに囲まれながら商品の整理をする。今一番売れてる商品は、シッポちゃんというもこもこのマスコットだ。手のひらサイズで手触りがいいキーホルダー付きのぬいぐるみ。持ち運ぶうちに気に入ってくれたお客さんが、家に並べて飾るために一ダースくらい買っていくこともあるのでなかなか侮れない。&lt;/p&gt;
&lt;p&gt;昨日も何個か売れたから、その分を入り口のシッポちゃんグッズコーナーに補充しておいた。&lt;/p&gt;
&lt;p&gt;その後に、小鳥ちゃんの刺繍が入ったポロシャツを、こっそりとまりちゃんのオリジナルプリントＴシャツと入れ替える。自分がデザインした商品がたくさん売れると夕飯がちょっと豪華になるのだ。本当は壁にかかったショップ・ロゴのシャツと交換したかったんだけど、踏み台がないと手が届かないのでやめた。&lt;/p&gt;
&lt;p&gt;そうして何度か商品の補充と配置の調整を繰り返すうちに、開店時間が近づいてきた。最終チェックとして、指で作った枠を覗き込みながら全体的なバランスを確認する。&lt;/p&gt;
&lt;p&gt;店内をぐるりと見回していると、まりちゃんのシャツが視界に入ってふと私の手が止まる。&lt;/p&gt;
&lt;p&gt;「まりちゃん、上手くやってるかな」&lt;/p&gt;
&lt;p&gt;ここ数週間は二人がいないと少しだけ気が楽になっていた。どうしてだろう？休憩せずに続けていた作業から急に解放されたような、穏やかだけど手持ち無沙汰で退屈な感覚だ。&lt;/p&gt;
&lt;p&gt;「どうして、かな？」&lt;/p&gt;
&lt;p&gt;どうして――だなんて言ってみせるけど、本当はなぜなのかよく分かっていた。&lt;/p&gt;
&lt;p&gt;そうだ。まりちゃんの様子がちょっとおかしいからだ。このことが、最近ずっと頭から離れない。りとちゃんとの距離が変わった……というか、避けている。明らかに。&lt;/p&gt;
&lt;p&gt;三人で夕食を食べる時には、あんまり軽口を叩かなくなった。逆にりとちゃんがお出かけしてる時は、私相手に一日の出来事を感情たっぷりに喋ってくれるのだ。まるで黙っていた時間を取り戻すようにして。&lt;/p&gt;
&lt;p&gt;まりちゃんが私を誘ってお出かけする回数も増えたけど、私にべったりというわけでもなくって。たぶん、りとちゃんと二人にならないように努めてるんだと思う。&lt;/p&gt;
&lt;p&gt;何より一番大きいのは、一緒にお風呂に入ってくれなくなったことだ。これまでは、お風呂が狭いからとか、今日はシャワーの日だからとか、もっともらしい理由を付けて断っていたんだけど、最近は単に「気分じゃないの」としか言わなくなった。&lt;/p&gt;
&lt;p&gt;でも、まりちゃんがりとちゃんを嫌いになったわけではないのもよく分かっている。りとちゃんと私が二人でお風呂に入るのをなんとなく嫌がってるみたいだし、まりちゃんがよく気にしている「りとちゃんの『気まぐれシャンプー』リスト」の記録も続けているみたい。&lt;/p&gt;
&lt;p&gt;「二人とも、私のために争わないで……なんて」&lt;/p&gt;
&lt;p&gt;私に構ってくれるのはありがたいことだけど、私を真ん中にしてけんかになったら嫌だなとも思う。もともと言い争いをしやすい二人だから、りとちゃんがちょっと仕掛けたら簡単にけんかになってしまうだろう。&lt;/p&gt;
&lt;p&gt;最近のまりちゃんは、私のことをりとちゃんから逃げる隠れ蓑にしている……と思う。そういう後ろめたさのせいで、きっとまりちゃんはいつもよりけんかに油を注いでしまうはずだ。そういう時に私は言い返したりできないけど、りとちゃんならますます燃え上がってしまうだろう。&lt;/p&gt;
&lt;p&gt;原宿の空はずっと変わらないままなのに、私たちは段々と変わっていく。そんなことを日々感じている。これがただのちょっと長い夕焼けだったらどんなにいいだろう。三人の中で誰かと誰かが内緒で仲良しになったり、段々と疎遠になったり、いつの間にか敵同士になっていたり。それってすごく嫌なことだ。&lt;/p&gt;
&lt;p&gt;私は三人でずっと仲良くしたいのに。三人で一緒にご飯を食べて、一緒にお風呂に入って、ぐっすり眠って。&lt;/p&gt;
&lt;p&gt;「今日だって、きっと――」&lt;/p&gt;
&lt;p&gt;くるり、とプリーツスカートを翻しながら、ハートのもこもこポケットに手を突っ込んだ。&lt;/p&gt;
&lt;p&gt;「――きっと、昨日もりとちゃんに好き放題されてたんだろうなぁ……はぁ」&lt;/p&gt;
&lt;p&gt;レジに入って、真っ白な壁に寄りかかる。もし、ここにいるのがまりちゃんだったら。彼女はりとちゃんと私のことを考えてくれるでしょうか？ＰＡＲＫで一人、何も言わないレア・アイテムに囲まれて。&lt;/p&gt;
&lt;h2 id="2"&gt;2&lt;/h2&gt;
&lt;p&gt;私が二人の「秘密」を初めて目撃したのは、一ヶ月くらい前のことだ。&lt;/p&gt;
&lt;p&gt;あの日の夜、私は一人で本を読んでいた。&lt;/p&gt;
&lt;p&gt;私が一人の時間を過ごしている時は、たいてい二人もそれぞれで好きなことをしている。りとちゃんはそっとＰＡＲＫを抜け出して、カラースプレーとスケボーで原宿を駆けに行く。まりちゃんはオリジナルの型紙を片手に、新しい服のデザインにミシンを走らせる。そうやって、いつも平和に夜が過ぎていく。&lt;/p&gt;
&lt;p&gt;ただ、その日は少しだけ違った。&lt;/p&gt;
&lt;p&gt;普段はそれぞれの趣味を楽しむ二人も、ごくたまにだけど一緒に映画を観ることがある。探索で見つけたディスクの鑑賞は、りとちゃんとまりちゃんが一緒に楽しめる数少ない娯楽の一つだ。&lt;/p&gt;
&lt;p&gt;実はもう、原宿の中には受け身で楽しめるような娯楽があまり残っていない。昔の音楽や映像はほとんど失われてしまったし、残っているのは本や雑誌くらいかな。&lt;/p&gt;
&lt;p&gt;内容さえ気にしなければ、昔のテレビ番組を非公式に録画したビデオ・アーカイブなら原宿のあちこちで入手できる。ただ、どれも画質が悪い上につまらない（「日本サイコー！」みたいな映像ばっかり！）ので、残念だけどフロアのテレビを飾る素材にしかならない。&lt;/p&gt;
&lt;p&gt;そんな中で回収するビデオの「おたから」はとても魅力的だ。観終わったらコピーしてお店に並べておくこともできる。&lt;/p&gt;
&lt;p&gt;とはいえ、私は夜に映画を観ると途中で眠くなっちゃうから、レイトショーはいつも二人だけのイベントだ。&lt;/p&gt;
&lt;p&gt;その日の私は、前々から読んでいたフランス語の教科書を読み終えて、日記を書いてから席を立った。二人におやすみを言うために。&lt;/p&gt;
&lt;p&gt;リビングのドアに手を掛けて、部屋の中をそっと覗く。すると、テレビの光に照らされた二人の不思議な光景が目に入った。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;二人は映画を見ていたはずなのに、いつの間にか身体を絡めてソファに倒れ込んでいる。&lt;/p&gt;
&lt;p&gt;「――――。まり、――――？」&lt;/p&gt;
&lt;p&gt;「――、――？――わよ！」&lt;/p&gt;
&lt;p&gt;初めは二人とも寝ているのかと思ったけど、ひそひそとした話し声が聞こえてくるので起きているみたい。穏やかなりとちゃんの口調に対して、まりちゃんは怒ったような強い調子で答えている。&lt;/p&gt;
&lt;p&gt;倒れたのは不意のアクシデントだったらしく、まりちゃんは身体を起こしてソファに座り直した。それに合わせて、りとちゃんも起き上がってまりちゃんにもたれかかる。&lt;/p&gt;
&lt;p&gt;今日はまりちゃんが苦手なホラー映画の日だから、驚いた拍子に倒れ込んじゃったのかも。怒ったふりで恥ずかしいのをごまかすのはいつものことだし、ホラー映画をしっかり怖がるのだっていつも通りだ。&lt;/p&gt;
&lt;p&gt;映画の時間を邪魔しないように、私は部屋に一歩踏み込んだ足をそっと後ろに戻した。耳をそばだてると、二人だけの秘密の会話が聞こえてくる。&lt;/p&gt;
&lt;p&gt;「やめて、りと。まだ映画が終わってないわ」&lt;/p&gt;
&lt;p&gt;「ふふ。まり、映画なんか観てないじゃん」&lt;/p&gt;
&lt;p&gt;どうやら図星だったらしく、そんなこと……と、まりちゃんが言いよどむ。確かに、りとちゃんとまりちゃんは映画なんてそっちのけで、じっと視線を交わしているように見える。二人の顔はいつもよりずっと近くて、妖しげな雰囲気に包まれていた。&lt;/p&gt;
&lt;p&gt;どうしてこんなことになってるんだろう？私は少し困惑しながら、ソファの周りやテーブルを見回した。&lt;/p&gt;
&lt;p&gt;テーブルの上には、銀色の缶や緑色のびんが何本も無造作に置かれている。りとちゃんが飲む缶のお酒はいつもと同じくらいの量だけど、まりちゃんはいつもより多く飲んでいるみたい。&lt;/p&gt;
&lt;p&gt;まりちゃんはお酒にも &lt;em&gt;おしゃれ&lt;/em&gt; を求めているので、買ってくるのは可愛らしいびんの甘いお酒ばかり。でも、配給と一緒に届く缶入りの合成酒はその正反対だ。大量生産の無骨な味とデザインはまりちゃんが受け付けないので、だいたいりとちゃんが飲んでいる。&lt;/p&gt;
&lt;p&gt;私はあんまりお酒は好きじゃない。日記に書けることが減っちゃいそうな気がして。&lt;/p&gt;
&lt;p&gt;「ちゃんと観るわよ……怖いシーンが終わったら、ね」&lt;/p&gt;
&lt;p&gt;「もうクライマックスだから、ずっと怖いシーンだよ？」&lt;/p&gt;
&lt;p&gt;さっきから、りとちゃんもまりちゃんも全くテレビを見ていない。酔った二人はつまらない――もしかしたら本当に怖いのかもしれないけど――映画には全く興味がないようだった。&lt;/p&gt;
&lt;p&gt;映画に合わせて、暗く明るく照らされる二人の顔。じっと見つめていると、そのキスの距離から目が離せなくなる。&lt;/p&gt;
&lt;p&gt;「ひゃっ！やっぱり観るの、やめようかしら……」&lt;/p&gt;
&lt;p&gt;まりちゃんだけは、時々大きな音に反応して身体をびくっと揺らしている。りとちゃんはそんなまりちゃんを見て、どんな顔をしているのかな。&lt;/p&gt;
&lt;p&gt;「うん、無理しなくていいと思う。まり、怖い映画苦手なのに、観たがりだもんね」&lt;/p&gt;
&lt;p&gt;「今、密かに流行ってるみたいだったから、ちょっとね」&lt;/p&gt;
&lt;p&gt;「じゃあ明日、ことこと一緒にまた観よっか」&lt;/p&gt;
&lt;p&gt;そう言って、りとちゃんはリモコンで映画を止めて、テレビの電源も切ってしまった。待機状態を示す、小さな赤いランプが点灯する。&lt;/p&gt;
&lt;p&gt;リビングを照らしていた唯一の明かりが消えて、目が慣れるまでは何も見えなくなってしまう。&lt;/p&gt;
&lt;p&gt;ＢＧＭが止んですっかり静かになった部屋の中で、二人はずっと黙っている。どちらも映画を観ていなかったし、もう眠くておしゃべりする気も起きないのかも。&lt;/p&gt;
&lt;p&gt;じゃあ、そろそろおやすみを言おうかな……としたところで、口を開いたのはりとちゃんだった。&lt;/p&gt;
&lt;p&gt;「まりと映画観るの、私は好きだよ」&lt;/p&gt;
&lt;p&gt;「あら、急にどうしたの？」&lt;/p&gt;
&lt;p&gt;「うんうん。こうやって、まりとくっつけるし」&lt;/p&gt;
&lt;p&gt;りとちゃんはそう言って、のそりと身体を動かしてみせた。徐々に目が慣れ始めて、まりちゃんの首に腕を回したのが分かる。&lt;/p&gt;
&lt;p&gt;「だから、やめてってば。こんなの、ことこに見られたら説明できないわよ？」&lt;/p&gt;
&lt;p&gt;「ことこも一緒にする？って言えばいいじゃん」&lt;/p&gt;
&lt;p&gt;名前を呼ばれて一瞬ぴくっとしてしまう。気付かれるような音は立てずにすんだけど……私が、一緒に……？&lt;/p&gt;
&lt;p&gt;「呆れた。あなた、飲みすぎてるの？」&lt;/p&gt;
&lt;p&gt;「まりだって。いつもよりすっごく顔、赤いよ」&lt;/p&gt;
&lt;p&gt;「安酒のがぶ飲みと比べないでほしいわね。私のはいい酔い方をするお酒なの。りとのとは違うわ」&lt;/p&gt;
&lt;p&gt;「ふふっ、それ面白いね、まり。そんなの、飲んじゃえば全部同じだよ」&lt;/p&gt;
&lt;p&gt;りとちゃんは右腕をまりちゃんの首に回したまま、左手でテーブルの上に広がる缶の一つを手に取る。見せつけるようにゆっくりと引き寄せてから、ぐい、と残った中身を飲み干した。&lt;/p&gt;
&lt;p&gt;静かに缶を置いてから、またまりちゃんの目を見つめる。&lt;/p&gt;
&lt;p&gt;「だって今日のまり、ふわふわしてる。隙だらけだよ」&lt;/p&gt;
&lt;p&gt;そう言って、りとちゃんはまりちゃんを抱き寄せる。キスの距離がぐっと詰められて、そのまま――&lt;/p&gt;
&lt;p&gt;「だから、ことこが起きてるかも――んむっ！」&lt;/p&gt;
&lt;p&gt;――そのまま、唇が重なった。まりちゃんの反応は一瞬遅れて、りとちゃんの急な動きをそのまま受け入れることになってしまう。&lt;/p&gt;
&lt;p&gt;それからはりとちゃんの思うがままだ。静かなリビングに響く水っぽい音と、しゅるしゅるとした衣擦れに、暗闇で揺れる二人の影がソファに倒れて重なった。&lt;/p&gt;
&lt;p&gt;ひとしきりもぞもぞと動いた後に、りとちゃんがまりちゃんの耳に口を寄せる。&lt;/p&gt;
&lt;p&gt;「か、勝手にすれば？もう、知らないわよ」&lt;/p&gt;
&lt;p&gt;りとちゃんが何と言ったかよく聞こえなかったけど、こそこそと、触るよ？と耳元で囁いたらしい。&lt;/p&gt;
&lt;p&gt;たっぷり酔ったまりちゃんは、もう流れされるがまま。お酒には強くないはずなのに、今日はホラー映画の恐怖を紛らわすためにたくさん飲んでしまったのかもしれない。&lt;/p&gt;
&lt;p&gt;「んっ……うぅ、ふぁっ……」&lt;/p&gt;
&lt;p&gt;まりちゃんは押し殺すような声を漏らしながら、映画の時とは全然違う跳ね方でりとちゃんの責めに応えている。&lt;/p&gt;
&lt;p&gt;「まり、びくびくしてる。気持ち良い？」&lt;/p&gt;
&lt;p&gt;「ち、ちが……映画の音にびっくりしてるのよ……っ！」&lt;/p&gt;
&lt;p&gt;「ふふっ……まり、可愛いね」&lt;/p&gt;
&lt;p&gt;りとちゃんに抱かれるまりちゃんは、とってもえっちだった。スタイルのいいまりちゃんが身体をくねらせている様子を見ると、何だか不思議な気分になる。&lt;/p&gt;
&lt;p&gt;ごくっ。&lt;/p&gt;
&lt;p&gt;息が荒い身体の動きに任せて、思わず少しだけ手があらぬ方向に動いてしまう。少しだけ、ふらりと動いた手がドアを離れて、自由になった金具がぎぃと音を立てる。&lt;/p&gt;
&lt;p&gt;ま、まずい……！&lt;/p&gt;
&lt;p&gt;「あれ、ことこ。いるの？」&lt;/p&gt;
&lt;p&gt;私はそろそろと足音を立てないようにして、急いでその場を立ち去る。見つからないか心配で急ぎ足になってしまうけど、りとちゃんは追いかけてくるつもりはないようだった。&lt;/p&gt;
&lt;p&gt;逃げ切った私は、後ろ手で寝室のドアを締めてそのまま寄りかかる。緊張の糸が切れて、急に辺りの静けさが私を包み込んだ。&lt;/p&gt;
&lt;p&gt;ばくばくとした心臓の音で、私が確かにりとちゃんとまりちゃんの新たな関係を目撃してしまったことを意識させられる。&lt;/p&gt;
&lt;p&gt;「りとちゃん……今の、何だったの？」&lt;/p&gt;
&lt;p&gt;おやすみどころか、顔を合わせることもできなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;次の日。こんな朝に限って、目はぱっちりと覚めている。私は初めて二度寝したふりで朝を迎えることになった。どんな顔をしてテーブルにつけばいいのか分からなかったから。食事当番じゃなくて良かった。&lt;/p&gt;
&lt;p&gt;「おはよう、ことこ」&lt;/p&gt;
&lt;p&gt;りとちゃんが、二度寝から覚めた起き抜けの私をじっと見つめる。少し沈黙が流れてから「ご飯、できてるよ」と笑いかけた。昨日のことについて話してくれるつもりはないみたい。&lt;/p&gt;
&lt;p&gt;まりちゃんも二人の秘密については教えてくれそうにもなかったけど、りとちゃんとは少し様子が違った。&lt;/p&gt;
&lt;p&gt;「ひゃっ！」&lt;/p&gt;
&lt;p&gt;「どうしたの、まり？ちょっと手がぶつかっただけだよ」&lt;/p&gt;
&lt;p&gt;「え、えぇ、そうよね……」&lt;/p&gt;
&lt;p&gt;まりちゃんは、昨夜のことをよく覚えていないみたいだった。まりちゃんはもともとお酒に強くないから、飲みすぎると記憶が曖昧になることがある。&lt;/p&gt;
&lt;p&gt;昨日のことも、ぼんやりとした思い出の中に沈んでしまっているのかも。りとちゃんと恥ずかしいことをしている夢でも見ていたんじゃないかと思っているのかもしれない。&lt;/p&gt;
&lt;p&gt;「あー……今日のお風呂、私は一人で入るわね」&lt;/p&gt;
&lt;p&gt;こうして、みんなが作る三角形がちょっとだけ歪んでいく。あの日から、まりちゃんは少し変わってしまったのだ。&lt;/p&gt;
&lt;h2 id="3"&gt;3&lt;/h2&gt;
&lt;p&gt;変わったのは、二人だけじゃない。私も変わりつつある。&lt;/p&gt;
&lt;p&gt;あれから、りとちゃんがまりちゃんを襲っているのを見ることはなくなった。でも、そのたった一回の衝撃が何度も私を揺さぶっている。&lt;/p&gt;
&lt;p&gt;私がまりちゃんのことを考えている間に、ぐるぐると頭を駆けていく気持ちは何だろう？りとちゃんの近くにいるのが羨ましい。りとちゃんに触ってもらえて羨ましい。まりちゃんばっかり、ずるい。&lt;/p&gt;
&lt;p&gt;羨ましい。ずるい。他には？&lt;/p&gt;
&lt;p&gt;「私も……まりちゃんに、触ってみたい」&lt;/p&gt;
&lt;p&gt;両手をもじもじさせながら初めて口に出した恥ずかしい気持ちが、空気と一緒に私を震わせる。からっぽのフロアに響く声は、私の頬を熱くするだけで、誰にも聞こえない。誰にも聞いてほしくない。&lt;/p&gt;
&lt;p&gt;私はまりちゃんのことを、もう友達として見られなくなってしまったのかもしれない。&lt;/p&gt;
&lt;p&gt;私はずっと、りとちゃんが好きなのだと思っていた。そして、まりちゃんのことも同じくらい好きだった。でも、二人に対しての好きは少しずつ違っていて、まりちゃんはＰＡＲＫの良い同僚、良い友達のつもりだった。&lt;/p&gt;
&lt;p&gt;そんな中で、りとちゃんに愛されているまりちゃんを見たら、私は当然のように嫉妬する……はずだ。でも今の私には、嫉妬と同じくらい、満ち足りた気持ちと不安な気持ちとが同居していた。&lt;/p&gt;
&lt;p&gt;私はりとちゃんが好きで、それなのにまりちゃんも好き？でも、まりちゃんへの気持ちは友達だったんじゃないの？&lt;/p&gt;
&lt;p&gt;「そうだよ。三人、三人で……でも、三人でえっちなことをしていたら、それは『誠実』なのかな……？」&lt;/p&gt;
&lt;p&gt;三角形をもっと綺麗な形に変えられるなら、私は何だってする。もっと綺麗な形の三角形を作れるように、私は私の思いを整理する。&lt;/p&gt;
&lt;p&gt;色々な理由を付けて今回の探索をお休みにしたのも、こういう気持ちを整理するためだ。半分は。&lt;/p&gt;
&lt;p&gt;もう半分は、二人の関係の進展に期待して。えっちのために送り出したなんて言ったら、まりちゃんは怒っちゃうかも。顔を真っ赤にして怒るまりちゃんのことを想像すると、少しだけ楽しくなる。&lt;/p&gt;
&lt;p&gt;ねぇ、りとちゃん。知ってる？私、本当はすごくえっちな子だったみたい。でも、まだ秘密なの。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ありがとうございました、と軽く礼をして今日の営業をおしまいにする。窓ガラスにお客さん向けの笑顔が映るのが見えて、外がまだ少し明るいなと思いながら浮ついた気持ちでステップを踏んだ。&lt;/p&gt;
&lt;p&gt;「エー、タロウ。フランス語で話して」&lt;/p&gt;
&lt;p&gt;外国語会話アプリとのおしゃべりは、閉店後の密かな楽しみの一つだ。いつもはみんなでフロアの片付けをするから、あんまりのびのび練習できない。だから今日は早くお店を閉めて、残りを趣味の時間に使うことに決めていた。&lt;/p&gt;
&lt;p&gt;タロウというのは、ＰＡＲＫに置いてある半身の腕なしマネキンに載せられたスマートスピーカーの愛称だ。廃墟探索で拾ってきたものを少し修理したら使えるようになったので、昼間はフロアの真ん中で名物店員と化している。発掘品としてはレア度が高いものではないけど、まともに動かしているのは私たちの店くらいだろう。&lt;/p&gt;
&lt;p&gt;発売当時はまだ全世界がインターネットで繋がっていたみたいだけど、ネット回線が失われた今となっては、バックヤードに置いてあるサーバーの情報くらいしか取り出せない。防衛本部が持っているデータベースとか、各所で見つけたディスクの中身はコピーしてあるから、たいていの質問には答えてくれる。&lt;/p&gt;
&lt;p&gt;語学学習用のアプリはタロウにもともと入っていたもので、そこから話す言語に合わせて色々な国のお話をしてくれるようにちょっと改造した。私のことばを聞いて答えてくれるのは今のところタロウだけだ。りとちゃんにロシア語で話しかけても、不思議そうな顔をして頭やお腹を撫でてくれるだけだから。&lt;/p&gt;
&lt;p&gt;りとちゃんはあんまり勉強に興味がない。お店で使うレジ打ちくらいの知識ならまだしも、普段使わない外国語なんてなおのことだ。何度話しかけたって通じないのは分かっているのに、色々な言葉で話しかけてしまう。そうやって、りとちゃんに「わたし」を見せると少しだけ安心する。私の言葉を聞いてほしいと思う。&lt;/p&gt;
&lt;p&gt;私が本を読んでいる時にわくわくしているのと同じように、りとちゃんはスケボーに乗って夜の原宿を駆け抜けながら「生きている」はずだから。そういうのびのびとした気ままな感性に、私は惹かれているんだろう。&lt;/p&gt;
&lt;p&gt;まりちゃんもそうだ。おめかしをしてお出かけするのが好き。可愛い服を作るのが好き。おしゃべりするのも大好き。きっと……りとちゃんのことも好き。素直で分かりやすい感情表現をするまりちゃんだからこそ、魅力的なクリエイティブを発揮できるのだろう。&lt;/p&gt;
&lt;p&gt;世界が壊滅した今、今日や明日を生きるのに必死な中でお勉強だなんて。たまにそんな風にやけになってしまうこともあるけれど、私から溢れる私の気持ちを大事にしないと、自分を見失ってしまうような気がする。自分の知らない世界のこと、自分の知らない自分のこと、自分の知らないりとちゃんのこと、まりちゃんのこと。&lt;/p&gt;
&lt;p&gt;本当はもっと二人のことを知りたい。二人と仲良くしたい。だから――&lt;/p&gt;
&lt;p&gt;「あー……タロウ。今日はおしまい」&lt;/p&gt;
&lt;p&gt;フランス語セットにない語調を検知したタロウの目が点滅し、日本語の検出に移行する。タロウの動きが何秒か止まってから、語学アプリが終了する音がした。&lt;/p&gt;
&lt;p&gt;お店を早めに閉めて語学の上達に努めるというのは表向きの目的で、本当はもう一つの目的がある。&lt;/p&gt;
&lt;p&gt;実は、タロウにはまだ秘密の機能があった。&lt;/p&gt;
&lt;p&gt;「オーケー、タロウ。りとちゃんにつないで」&lt;/p&gt;
&lt;p&gt;しかも、二人がいると絶対に起動できない機能だ。タイミングを見計らって秘密のパスフレーズを告げると、点滅が止まって「りとちゃん」が起動する。同じように「まりちゃんにつないで」と平坦な声で告げると、何度かチカチカした後にタロウの目から光が放たれた。&lt;/p&gt;
&lt;p&gt;「り、りとちゃん。こんばんは」&lt;/p&gt;
&lt;p&gt;【久しぶり、ことこ。最近あんまり呼んでくれなかったね】&lt;/p&gt;
&lt;p&gt;【ねぇ、ことこ。私もお久しぶり、なんだけど？】&lt;/p&gt;
&lt;p&gt;「うん、久しぶりだね。こんばんは、まりちゃん」&lt;/p&gt;
&lt;p&gt;仄明かりを放つりとちゃんとまりちゃんが私の前に立つ。くるっとターンするまりちゃんの体重を感じさせないふわりとした動きが、彼女らがホログラムであることを際立たせる。&lt;/p&gt;
&lt;p&gt;りとちゃんとまりちゃんの声でしゃべるホログラムは、私が考えていたよりも精巧に仕上がっていた。私がのめり込んで何度も呼び出してしまうほどには。&lt;/p&gt;
&lt;p&gt;タロウに搭載されたアシスタント・アバター起動用アプリには、説明文の最後に「ホームビデオを永遠の思い出に」と書かれている。その説明の通り、パッドで撮影したごく普通のムービーを取り込んで二人の声と外見を合成してくれた。それこそ、永遠の思い出になるような。&lt;/p&gt;
&lt;p&gt;【それデ、今日はどうしたのよ、ことこ】&lt;/p&gt;
&lt;p&gt;【また、これからの三人の話？】&lt;/p&gt;
&lt;p&gt;「うん。そうなの。すごく悩んでて」&lt;/p&gt;
&lt;p&gt;合成された声は完璧なものではない。でも、その微妙なイントネーションの違いのおかげで、まだ現実と混同せずにいられるのかもしれない。&lt;/p&gt;
&lt;p&gt;【そうよねぇ。わざわざ私たちを隠し撮りしてまで、こんなものを作っちゃうんだもの】&lt;/p&gt;
&lt;p&gt;【私は別にいいよ。三人のコと、もっと考えても】&lt;/p&gt;
&lt;p&gt;【あら、別に私も嫌ってわけじゃないわ】&lt;/p&gt;
&lt;p&gt;「私ね、ずっと三人でいられたら良いなって思ってて」&lt;/p&gt;
&lt;p&gt;遠い昔の私は、何もしなくても三人がずっと幸せにやっていけると思っていた。でも、そんな簡単な話があるはずがない。&lt;/p&gt;
&lt;p&gt;「まりちゃんは、りとちゃんが好き？」&lt;/p&gt;
&lt;p&gt;【嫌いじゃないけど、気が合うタイプじゃないわね】&lt;/p&gt;
&lt;p&gt;【そうかな？私はまりのこと、好きだよ】&lt;/p&gt;
&lt;p&gt;【ふーん、そ？悪い気はしないけど】&lt;/p&gt;
&lt;p&gt;【そうやって、照れてツンツンしちゃうところもね】&lt;/p&gt;
&lt;p&gt;【おちょくってるの？私、ことこのほうが素直で好きよ】&lt;/p&gt;
&lt;p&gt;【そうだね。ことこの素直で明るいところ、私も好きだよ】&lt;/p&gt;
&lt;p&gt;「う、うん！私も二人のこと、好きだよ」&lt;/p&gt;
&lt;p&gt;私がそう言うと、まりちゃんはわざとらしいほどの驚いた表情で、少しだけ沈黙を保った。&lt;/p&gt;
&lt;p&gt;【でも、あなたが本当に好きなのはりとでしょう？】&lt;/p&gt;
&lt;p&gt;【そうなの、ことこ？】&lt;/p&gt;
&lt;p&gt;「そんなことないよ！私は二人とも大好きで……」&lt;/p&gt;
&lt;p&gt;【じゃあ、りとと私、どっちが好き？】&lt;/p&gt;
&lt;p&gt;【やめなよ、まり……でも、ちょっと気になるかも】&lt;/p&gt;
&lt;p&gt;「本当に、どっちも同じくらい好きだよ」&lt;/p&gt;
&lt;p&gt;でも、二人に対する好きはそれぞれちょっと違って。違うはずで。違うはずだった。&lt;/p&gt;
&lt;p&gt;「私、りとちゃんには私の全部を見てほしいって思ってる」&lt;/p&gt;
&lt;p&gt;【全部見てほしい、ね。なんて美しい愛なのかしら】&lt;/p&gt;
&lt;p&gt;【あれ。まり、嫉妬してる？】&lt;/p&gt;
&lt;p&gt;【どうして、こんなことでジェラシーを感じなきゃならないのかしら？そもそも――】&lt;/p&gt;
&lt;p&gt;次に続くまりちゃんの言葉を覚悟して、胸がきゅっと締め付けられる。&lt;/p&gt;
&lt;p&gt;【そもそも、全部だなんて、私にはそんな思いを受け止めきれるか分からないもの】&lt;/p&gt;
&lt;p&gt;「うん。そう……だね」&lt;/p&gt;
&lt;p&gt;【私は、できるだけ受け止めてあげたいな】&lt;/p&gt;
&lt;p&gt;【そ。じゃあ、りととことこで仲良くやればいいじゃない】&lt;/p&gt;
&lt;p&gt;【ちょっとまり、それどういう意味？】&lt;/p&gt;
&lt;p&gt;【分かってるくせに。私はお邪魔虫ってことでしょう？】&lt;/p&gt;
&lt;p&gt;「まりちゃん、違うの」&lt;/p&gt;
&lt;p&gt;りとちゃんには特別な「好き」を、まりちゃんには友達の「好き」を向ける。そうだった。この前までは。&lt;/p&gt;
&lt;p&gt;私は一拍置いてから、まりちゃんの幻影に向かって何度目か分からない告白をする。&lt;/p&gt;
&lt;p&gt;「最近ね、まりちゃんの全部が見たくなってきちゃったの」&lt;/p&gt;
&lt;p&gt;【な、何よ、急に……】&lt;/p&gt;
&lt;p&gt;【私もまりのこと、もっと知りたいかも】&lt;/p&gt;
&lt;p&gt;【ことこもりとも、ごまかさないで。どっちが好きか、って話だったでしょ？】&lt;/p&gt;
&lt;p&gt;「それは……」&lt;/p&gt;
&lt;p&gt;【私、りともことこも嫌いじゃないわ。でも、自分が一番じゃないと気が済まないたちなの】&lt;/p&gt;
&lt;p&gt;そこだけは分かってちょうだい、と付け足した。&lt;/p&gt;
&lt;p&gt;【やっぱり、ことこが決めないと、だめだよ】&lt;/p&gt;
&lt;p&gt;【そうね。いつまでこんなことを繰り返すつもりなの？】&lt;/p&gt;
&lt;p&gt;「うん、ごめんね。りとちゃん。まりちゃん」&lt;/p&gt;
&lt;p&gt;【気にしないで。またね、ことこ】&lt;/p&gt;
&lt;p&gt;【まぁいいわ。また会いましょう、ことこ】&lt;/p&gt;
&lt;p&gt;りとちゃんとまりちゃんが私のシナリオ通りに会話を終える。仕事を終えたホログラムが消えて、タロウの機械的なアナウンスが店内に響いた。私は糸が切れたようにその場にぺたりと座り込み、軽く溜息を漏らしてしまう。&lt;/p&gt;
&lt;p&gt;「ふぁ、はぁ……」&lt;/p&gt;
&lt;p&gt;私はこういうことを何度か――何度も――していた。&lt;/p&gt;
&lt;p&gt;アシスタント・アバターには、アバターのモデルの性格を元にして自律的に会話を進めるような機能はない。そのおかげで、私が書いた台本の同じセリフを何度も読み上げてもらうばかりになっていた。何も決めずに会話を繰り返せるのが、二人と一緒にぬるま湯に耽っているのが心地良かった。&lt;/p&gt;
&lt;p&gt;「 &lt;em&gt;ことこ&lt;/em&gt; が決めないと、だめだよ」&lt;/p&gt;
&lt;p&gt;たくさん聞いた言葉でも、いつか私が決めなきゃならないのだと意識するとちょっとだけ苦しくなる。&lt;/p&gt;
&lt;p&gt;私は、まりちゃんと敵同士になってりとちゃんを取り合わなきゃいけないのかな？それとも、私がりとちゃんを諦めて、まりちゃんと幸せになっているのを見続ければいいのかな？考えすぎて頭がぐるぐるしてしまう。&lt;/p&gt;
&lt;p&gt;いっそ、りとちゃんにこの思いを告白してしまえばいいと考えたこともある。そうやって、りとちゃんとは特別な関係になって、まりちゃんとは仲の良い友達のままでいる。そんな不均衡な三角形のバランスが良いと思っていたのは、頂点にいるつもりだった「かつての」私だけ。最後には全部だめになって、簡単に崩れてしまうのは目に見えていた。&lt;/p&gt;
&lt;p&gt;そんなの当たり前だ。だって、脆い理想に寄り添っていた私でさえ、まりちゃんが気になり始めているのだから。&lt;/p&gt;
&lt;p&gt;本ではいっぱい読んだ色々なことも、いざ私に降りかかると抱えきれないものなのだと分かってしまう。私の中に渦巻いているのは、友情？それとも、恋愛かな？&lt;/p&gt;
&lt;p&gt;私は、もっと二人のことを綺麗な視線で見ていると思っていた。こんなことなら、りとちゃんとまりちゃんの秘密を見なければよかったのに！&lt;/p&gt;
&lt;p&gt;私たちは、誰かが誰かを諦めなきゃいけないのかな。三人一緒にはいられないのかな。私がりとちゃんを諦めたら、私だけが取り残されてしまうの？&lt;/p&gt;
&lt;p&gt;「そうしたら、私が二番目になって――」&lt;/p&gt;
&lt;p&gt;二番目、と口走ってから思わず口を押さえる。&lt;/p&gt;
&lt;p&gt;「うー……りとちゃん……まりちゃん……」&lt;/p&gt;
&lt;p&gt;うなだれる私の声に反応してぽぽん、と不意にアプリ起動音が響いた。今度はホログラムが放たれることなく二人の声が流れ始める。&lt;/p&gt;
&lt;p&gt;【ねぇ、まり。ことこにいたずらしちゃおっか？】&lt;/p&gt;
&lt;p&gt;【いいわね、ベッドで両側から挟み撃ちにしちゃう？】&lt;/p&gt;
&lt;p&gt;【そうそう。ことこは耳が弱いから――】&lt;/p&gt;
&lt;p&gt;「……っ！」&lt;/p&gt;
&lt;p&gt;急にリアルな声で話しかけられて、私は思わずタロウの電源コードを引っこ抜いてしまう。彼から放たれる色々な光の点滅がすぐに失われ、同時にファンも止まってしまった。&lt;/p&gt;
&lt;p&gt;今のは、二人らしいセリフを自動でしゃべってくれる「フル・オート」モードだ。作りかけのせいもあって、よく想定外の暴走を始めてしまうので取り扱いに困っている。&lt;/p&gt;
&lt;p&gt;「ふ、二人から、耳を……」&lt;/p&gt;
&lt;p&gt;フロアが急に静かになって、静音ファンの弱い回転音が急に恋しくなる。二人のことを考えてどきどきしている心臓のことも今は意識したくなかった。&lt;/p&gt;
&lt;p&gt;お風呂に入って落ち着かなきゃ。今日はミントのお風呂にしよう。頭をすっきりさせないと。&lt;/p&gt;
&lt;h2 id="4"&gt;4&lt;/h2&gt;
&lt;p&gt;お風呂は好きだ。その日あった良くないことを洗い流して、身体が全部良いことで包まれていくような気がする。毎日が楽しいことばかりなら、お風呂だって何倍も楽しくなるはずなのに。&lt;/p&gt;
&lt;p&gt;頭からざぶっとお湯を浴びて鏡を見つめる。水に濡れた私の髪がぺたりと張り付いて、何だか変な感じ。&lt;/p&gt;
&lt;p&gt;バスルームにはみんなの個性が詰まっている。だから、三人で入るお風呂はもっと好き。棚に並ぶシャンプーひとつとっても、値段やデザイン、成分……注目するところは人それぞれだ。&lt;/p&gt;
&lt;p&gt;例えばまりちゃんは、香りや高級感を重視して選んでいる。いかにも女の子っぽい可愛いデザインのボトルに惹かれるみたい。お風呂場に並んだピンク色やオレンジ色のボトルは、他でもないまりちゃんその人のものだ。&lt;/p&gt;
&lt;p&gt;私は可愛いデザインよりも、ボタニカルとかノンシリコンとか、髪に優しい成分を気にしちゃう。植物成分のシャンプーは優しいけど保湿力に欠けるので、最近ははちみつを配合したシャンプーを買っている。ほんの少し優しい香りがするのも好き。&lt;/p&gt;
&lt;p&gt;一方で、りとちゃんの気まぐれシャンプーはＰＡＲＫの不思議の一つだ。みんなで廃墟探索をしているうちに、いつの間にか在庫が増えている。りとちゃんが言うには「だって、髪は毎日洗わないといけないでしょ？」ということらしい。&lt;/p&gt;
&lt;p&gt;りとちゃんが買ってくるシャンプーにはたいてい値引きのシールが貼ってある。買い出し当番の度に、ワゴンを適当に漁って買ってきているのだろう。ワゴンに回ってくるのはデザインも中身もごく普通のシャンプーだけど、赤と黄色のシールのせいでとても安っぽく見える。&lt;/p&gt;
&lt;p&gt;りとちゃんの場合に限っては、むしろ拾ってくるシャンプーの方が個性的だ。いつかの探索で、日本語が書かれていない（あれは中国語だった）シャンプーや歯磨き粉を拾ってきたのを見たまりちゃんは、流石に呆れて言葉も出なかったみたい。&lt;/p&gt;
&lt;p&gt;まりちゃんはよく「女の子なんだから髪くらい気を遣ったほうが良いわよ」と言うけれど、りとちゃんはどこふく風と聞き流してしまう。このことで一度けんかになったこともあるくらいだ。&lt;/p&gt;
&lt;p&gt;綺麗な髪で原宿を駆けたらきっとみんなが振り向くのにね、と私に残念そうな顔でこぼすのも何度目だろう。りとちゃんが自分の髪に気を遣わないせいで、むしろまりちゃんのほうがころころ変わるシャンプーの様子をよく把握していた。&lt;/p&gt;
&lt;p&gt;りとちゃんの気まぐれを押さえつけて、無理やりきちんとしたシャンプーを選ばせるのは難しいだろう。きっと、自分の好みを譲らないまりちゃんとけんかになってしまうから。&lt;/p&gt;
&lt;p&gt;それを解決する折衷案が「気まぐれシャンプー」リストだ。新しいシャンプーがりとちゃんの肌に合わなかった時に――あるいはりとちゃんの「気まぐれ」で――自分のシャンプー遍歴をまりちゃんに確かめるのだ。&lt;/p&gt;
&lt;p&gt;りとちゃんが使ったことのあるシャンプーリストから選ぶことにすれば、まりちゃんも好みを押し付けられない。まりちゃんはたまに不満そうな顔をするけれど、今のところこれが一番上手く行っている。&lt;/p&gt;
&lt;p&gt;悪いシャンプーはリストにバツ印を付けて、前に使った「まだましな」シャンプーを探したり買ったりする。今のりとちゃんシャンプーも、まりちゃんに確かめたリストから買ってきたものだ。&lt;/p&gt;
&lt;p&gt;「本当に仲良しだよね、二人とも」&lt;/p&gt;
&lt;p&gt;シャンプーボトルに引っ付いた剥がれかけの三割引シールが、りとちゃんの生活感を感じさせる。ボトルの凹凸を軽くなでて、それからポンプをかしゅっと押した。とろりとした冷たい液体が手に広がるのが心地良い。&lt;/p&gt;
&lt;p&gt;かしっ。もう一度ポンプを押すと、狙いが少し外れて手のひらからこぼれそうになる。&lt;/p&gt;
&lt;p&gt;指で掬ったりとちゃんのシャンプーは、いかにも化学製品っぽい匂いがする。お風呂のペパーミントと混ざって、何だか慣れない香りだ。&lt;/p&gt;
&lt;p&gt;いつもと違う洗い上がりになるのが分かっていても、もう手に取ったシャンプーはボトルに戻せない。&lt;/p&gt;
&lt;p&gt;りとちゃんをぐりぐりと両手に広げているうちに、心の中に後ろめたいわくわくも広がっていく。変な妄想が駆け巡って、りとちゃん色に染められていく私を想像してしまう。&lt;/p&gt;
&lt;p&gt;もし、りとちゃんが煙草を吸うようになったら、私は煙の匂いも好きになるのかな。冬の寒空の下、顔を近づけて、私も煙草に火を付けて……。&lt;/p&gt;
&lt;p&gt;私はそんな心地良い煙たさを包み込むようにして、わしわしと髪を洗い始めた。&lt;/p&gt;
&lt;h2 id="5"&gt;5&lt;/h2&gt;
&lt;p&gt;お風呂を上がった私は、タオルも巻かずに洗面台に立っていた。いつもと違う仕上がりの髪の毛をわさわさと撫でつける。&lt;/p&gt;
&lt;p&gt;「うはー、りとちゃんの匂いだ〜！」&lt;/p&gt;
&lt;p&gt;手に取った時は慣れない匂いのシャンプーも、髪を乾かしてみればお風呂上がりの良い香りを演出してくれるみたい。さっきとは違って、ミントと混ざったおかげですっきりとした良い匂いになっていた。&lt;/p&gt;
&lt;p&gt;首を左右に振って背伸びをして、身体を動かしながらりとちゃんの「今月の匂い」を楽しむ。&lt;/p&gt;
&lt;p&gt;今回のりとちゃんシャンプーは割と普通だったけど、指通りが少しだけきしきししている。やっぱり私の細い髪にはちょっと合わないみたい。&lt;/p&gt;
&lt;p&gt;「じゃあ、そろそろ着替えて寝ようかな」&lt;/p&gt;
&lt;p&gt;服も着ずに夢中で髪をくるくるいじっていた私が、ふっと鏡の中からいなくなる。&lt;/p&gt;
&lt;p&gt;昔、タオルも巻かずに二人の前に出て、まりちゃんに怒られたことがあった。あの時は確か、シャワーの栓が壊れて止められなくなったんだっけ。本当は元栓を閉めてしまえば焦らずに修理できたんだけど、大慌てで知らせに行ったのを思い出す。&lt;/p&gt;
&lt;p&gt;パジャマと一緒にまとめられた下着を取り出して、丁寧に広げてみせる。誰もいないはずなのに、思わず辺りをきょろきょろ見回してしまう。&lt;/p&gt;
&lt;p&gt;それもそのはず、今私の手で広げられているのが、まりちゃんのパンツだからだ。&lt;/p&gt;
&lt;p&gt;お互い間違わないようにオリジナルの下着を作りましょう、と提案したのはまりちゃんだった。一緒に暮らすようになってから、割とすぐに。寝室は特にごちゃごちゃしていているから、個性のないアイテムは風景に埋もれてすぐに見つからなくなってしまう。&lt;/p&gt;
&lt;p&gt;もともと、散らかりやすい部屋の中では特徴のあるグッズを使うようにしようという話はしていた。おかげでそれぞれの趣味をのびのびと楽しむことができたし、三人の個性も強くなった気がする。&lt;/p&gt;
&lt;p&gt;だから、私たちがそれぞれの道を進んでいくたびに、お互いのことが分かってくる。違うものを見ているからこそ、だんだんとお互いの魅力が見えてくる。&lt;/p&gt;
&lt;p&gt;おしゃれへのこだわりや、明るくておしゃべりな性格。射撃が上手で、私よりとっても強いところ。それに、えっちな……女の子らしいところも見てしまったわけだし。&lt;/p&gt;
&lt;p&gt;まさか魅力の発掘が、パンツの勝手なシェアに行き着くとは誰も思わなかっただろうけど。&lt;/p&gt;
&lt;p&gt;「まりちゃん、怒るかな？」&lt;/p&gt;
&lt;p&gt;気付かれないようにしないとね。&lt;/p&gt;
&lt;p&gt;足を通して、太ももを通して、ゴムを軽く伸ばしてお尻にかぶせる。当然、お手製とはいえ下着としての実用性は守られているから、あっけなく装着できてしまう。&lt;/p&gt;
&lt;p&gt;鏡に戻ってきた私が、パンツ一枚で嬉しそうな顔をしてくるくる回りだす。&lt;/p&gt;
&lt;p&gt;まりちゃんは、ピンクの布地にレースが付いて、緑のチェック柄で縁取られている。私には少しだけ大きい。すとんとした私の身体と違って、まりちゃんが魅力的なプロポーションなのが手に取るように分かる。&lt;/p&gt;
&lt;p&gt;「りとちゃんは、こういうのが好きなのかな……はぅ……」&lt;/p&gt;
&lt;p&gt;するりとお尻を走った指で、自分が思ったよりも敏感になっていることに驚いてしまう。&lt;/p&gt;
&lt;p&gt;思わずへたりこんでしまった私の中に、まりちゃんを触るりとちゃん、りとちゃんに触られるまりちゃん、いろいろな感覚が混線して頭がぐちゃぐちゃになる。そのまま身を委ねて曖昧な感覚に溺れたくなってしまう。まだ、寝る前の勉強もしないといけないのに。&lt;/p&gt;
&lt;p&gt;そっと手を滑らせて、レースの部分を撫でてみせる。&lt;/p&gt;
&lt;p&gt;今日も綺麗だね、まり。りと、どこ触ってるのよ。ことこが見てるじゃない。いいじゃん。見せてあげようよ。ちょ、やだ、りと――&lt;/p&gt;
&lt;p&gt;「これは、ちょっとヤバいかも……」&lt;/p&gt;
&lt;p&gt;ぼふっ、とベッドの柔らかさに包まれて、色々なことを考えたくなる。もこもこのパジャマに袖を通している間も、布地が擦れていちいち身体を揺らしてしまう。&lt;/p&gt;
&lt;p&gt;まりちゃんとぴったり肌が触れていることを意識させられながら、結局私は悶々とした気持ちで寝室に向かうことになったのだった。&lt;/p&gt;
&lt;h2 id="6"&gt;6&lt;/h2&gt;
&lt;p&gt;ぼんやりと思う。私たちには、私たちのやり方がある。&lt;/p&gt;
&lt;p&gt;「りとちゃんまりちゃん。報告書に書けないことはしないほうがいいよ……？」&lt;/p&gt;
&lt;p&gt;探索から帰ってきた二人は、何事もなかったかのように北方探索のお話を聞かせてくれた。文字を食べるクラゲが水槽にたくさんいたけど、その存在を隠し通すつもりなのだという。&lt;/p&gt;
&lt;p&gt;「そうかもね。でも、可愛いクラゲの平穏と静寂を守れたから、朝はとっても気分が良かったの！ね、りと？」&lt;/p&gt;
&lt;p&gt;「ふふ。これからはちゃんと気を付けなきゃね、まり」&lt;/p&gt;
&lt;p&gt;でも私は、探索に出かける前に倉庫のお酒が一本減ったのを知っている。りとちゃんがそのお酒を飲んだことも分かっている。あわよくば、もっと楽しいこともしたのだろう。&lt;/p&gt;
&lt;p&gt;いいんだ。全部、私が望んだこと。これからの関係は私たちが作っていくの。また、一緒にお風呂に入ろうって、ちゃんと言わなきゃ。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="extra-items"&gt;EXTRA: ITEMS&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;ことこのスケジュール帳&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;ことこが愛用しているスケジュール帳。普段の予定はパッドで管理しているので、この手帳にはあまり書き込みがない。一ヶ月分の予定が書き込める見開きページには、赤・青・緑のハートが一枚ずつ貼ってある。&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;黒いノートパソコン&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;ことこがよく日記の下書きに使っているノートパソコン。もとは探索中に発掘したもので、少し修理するだけで使えるようになった。スペックはそれなりだが、けんかに巻き込まれても壊れなかったほどのタフさを誇る。&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;ページが抜けた日記帳&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;ことこがほぼ毎日書いている日記帳。一度だけりとに読ませようとしたことがあるが、そのまま突き返されてしまった。実は、一部のページが丁寧に切り取られており、その部分はもう誰も読むことができない。&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="extra-links"&gt;EXTRA: LINKS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.pixiv.net/novel/show.php?id=10647286"&gt;ペパーミント・バスタイム&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://park-harajuku.net/items/571618ff9821cc715e000f8b"&gt;PARK:HARAJUKU Crisis Team! 日本語ver 単行本&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;URAHARA&lt;sup id="fnref:urahara"&gt;&lt;a class="footnote-ref" href="#fn:urahara" title="https://urahara.party/"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:urahara"&gt;
&lt;p&gt;https://urahara.party/&amp;#160;&lt;a class="footnote-backref" href="#fnref:urahara" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>メルマガとしてのパトロンサービス</title><link href="https://ama.ne.jp/post/mailmaga/" rel="alternate"/><published>2019-01-17T17:44:00+09:00</published><updated>2019-01-17T17:44:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-01-17:/post/mailmaga/</id><summary type="html">&lt;p&gt;ふるさと納税は好きですか？&lt;/p&gt;</summary><content type="html">&lt;p&gt;有料版: &lt;a href="https://www.patreon.com/posts/merumagatoshiten-24036014"&gt;メルマガとしてのパトロンサービス&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;「Sugar Jelly」の入稿を終えてから、色々とぼんやりと考えることが増えてきた。&lt;/p&gt;
&lt;p&gt;入稿を終えて――とは言ったものの、別に毎日コンスタントに原稿に取り組んでいたわけではない（もしそうなら、もっと長大な作品にできたろう）。けれど、どことなく、こう……いつも追われているようなもやもやした感覚が消えずに心のどこかにあるという状態は、誰もが経験したことがあるだろう（そうだといいな）。休める時に休むのは才能だし、それはメリハリをつけるということでもある。&lt;/p&gt;
&lt;p&gt;さて、私が昨年の7月にPatreonのアカウントを開いてから、半年が経った。その当時からいわゆるパトロンサービスは日本でも普及しており、今もその勢いは衰えていない。目に見えない「応援」を「支援」として形にできるサービスは素晴らしいと思うし、私もその力はよく実感している。&lt;/p&gt;
&lt;p&gt;その一方で、パトロンサービスでやり取りされているのが本当に「応援」なのかと言われると、かなり疑問を覚えるところだ。&lt;/p&gt;
&lt;p&gt;ふるさと納税でAmazonギフト券を返礼品とした自治体が注目を集めた。最近、同じようなことがパトロンサービスでも起こっているのだと思う。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;進捗日記を限定公開&lt;/li&gt;
&lt;li&gt;発行した同人誌に支援者としてクレジット&lt;/li&gt;
&lt;li&gt;高画質版を限定公開&lt;/li&gt;
&lt;li&gt;文字入り差分を限定公開&lt;/li&gt;
&lt;li&gt;設定画を限定公開&lt;/li&gt;
&lt;li&gt;オリジナルアクリルキーホルダーを限定販売&lt;/li&gt;
&lt;li&gt;お礼を込めた描き下ろし同人誌をお届け&lt;/li&gt;
&lt;li&gt;……&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下に行けば行くほど厳しくなってくる（かな？）。&lt;/p&gt;
&lt;p&gt;こうなってくると、応援のためのサービスというよりは、「メルマガ」の新たな形と捉えたほうがよいのかもしれない。有形無形の利益が得られるから、定期的にお金を払っているという構図だ。メールというシステムは既に廃れているのだから、メルマガも形を変えて移り変わっている。&lt;/p&gt;
&lt;p&gt;当然、「買って応援」という言葉があるくらいだし、たとえメルマガだったとしても購読するのは「応援」の一形態であるという反論もあるだろう。それもそうだ。返礼品目当てのふるさと納税でも、村は潤うのだし。（でも、そういう人がふるさと納税の返礼品にお熱だったらすごく面白い。）&lt;/p&gt;
&lt;p&gt;しかし、普通は「購入」するのなら、その形は分かりやすいほうがよい。分かりやすいというのは、どれに対していくら支払われたかが分かる、ということである。&lt;/p&gt;
&lt;p&gt;「購入」をわざわざ月額課金に代えるのは、リボ払い的破滅マインドからくるアイデアだろうか。「薄く払う」という気軽さは、払わせる方から見るととても使いやすい。&lt;/p&gt;
&lt;p&gt;多くのパトロンサービスでは、返礼の告知記事であれ応援への感謝記事であれ、個別の記事を「購入」できない。これは、「支援」が「購入」ではなく「応援」であると強調するためのシステム上の欺瞞であろう。眉唾ものの儲け話満載のメルマガでさえ、一定期間内に発行する回数の目安を定めているし、個別の記事を購入できるようになっているものだ。&lt;/p&gt;
&lt;p&gt;（ここから個人的な話になる。）実は、このような「購入」の言い換えに過ぎない「応援」は、自由文化作品化活動と非常に相性が悪い。活動下では、成果物は無料で公開されるべきだからである。この問題は我々（変態美少女ふぃろそふぃ。）特有のものであり、多くのクリエイターには当てはまらないけれども。&lt;/p&gt;
&lt;p&gt;こういう過熱したふるさと納税的なムーブメントがいつまで続くのかはあまり分からないが、早く終わってほしいなと感じる。&lt;/p&gt;
&lt;p&gt;「閲覧数やハートの数は多いけど、ほとんど具体的な感想をもらえないのでやめました」と話すネット小説家のように「パトロンサービスを通じて本当に応援されているのか自信がなくなってきた」と話すクリエイターが出てきたらいいなと思う。そうなってからが本番かもしれない。&lt;/p&gt;
&lt;p&gt;小説はその性質から考えて成果物しか出せないし、成果物は無料で公開したい。実のところ、パトロンサービスで大金持ちになりたいわけでもないし、そんなに困っているわけではないけれど、やっぱり生きるのは難しいなと思う。&lt;/p&gt;
&lt;p&gt;プロットを公開すればいいのか？　厳しい。&lt;/p&gt;
&lt;p&gt;&lt;a href="/post/monetize/"&gt;参考&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;追記&lt;/ins&gt;: もしかしたら、パトロンサービスはクラウドファンディングからこぼれた出力の受け皿となり、クラウドファンディングが持つ役割の一部を吸収しつつあるのかもしれない。計画性や魅力に欠ける中途半端な出力の（量的な）総体を月額課金のご褒美にするという構図が、現代の需要にフィットしているとも言えそうだ。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>不定形の城塞</title><link href="https://ama.ne.jp/post/amorphous/" rel="alternate"/><published>2019-01-16T11:01:00+09:00</published><updated>2019-01-16T11:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2019-01-16:/post/amorphous/</id><summary type="html">&lt;p&gt;かたちなきもの&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;解釈&lt;/strong&gt; という言葉がある。解釈という言葉自体は、文章や作品を読み取って理解する取り組みや、そこで得られた内容を指している。&lt;/p&gt;
&lt;p&gt;ただし、実際にはその用法は多岐にわたる。非常に強い権威を与えているように見せかけて、その運用は非常に稚拙ということも多い。時たま聞かれる &lt;strong&gt;強い解釈&lt;/strong&gt; とか &lt;strong&gt;解釈が深い&lt;/strong&gt; という表現&lt;sup id="fnref:weak"&gt;&lt;a class="footnote-ref" href="#fn:weak" title="あるいは、それに対する 弱い解釈 とか 浅い解釈 という罵倒。"&gt;1&lt;/a&gt;&lt;/sup&gt;は、このような詐欺的活動の一助となる。&lt;/p&gt;
&lt;p&gt;そういういわゆる &lt;strong&gt;深い解釈&lt;/strong&gt; は、しばしば二次創作という形で表現される。この場合、ある作品の受信者がそのまま新たな作品の発信者となると考えてよい。&lt;/p&gt;
&lt;p&gt;ただ、ここで大きな問題が残っていることに気付かねばならない。それは解釈の検証可能性である。&lt;/p&gt;
&lt;p&gt;二次創作というのは新たな物語であり、一つの道筋に従って展開される別個の世界である。ここでは、作者の思考の経路や葛藤は整理され、ふつうは切り落とされている。作品から読み取れる内容だけでは（その他のメタデータ&lt;sup id="fnref:meta"&gt;&lt;a class="footnote-ref" href="#fn:meta" title="作者のツイート群やなかよしネットワークの情報。"&gt;2&lt;/a&gt;&lt;/sup&gt;なしには）、作者と自分の思考経路が一致しているかどうかを検証できない。&lt;/p&gt;
&lt;p&gt;解釈は思考経路であり、思考経路は解釈である。少なくとも、結果である二次創作は、経路である解釈（を直接書きつけた文章）よりも検証の精度は低くなるだろう。つまり、結果の提示は解釈の提示ではないし、結果の一致は解釈の一致ではない。&lt;/p&gt;
&lt;p&gt;しかし、現実には、解釈が検証できるかどうかを無視しつつ解釈を重視するねじれたネットワークが存在する。&lt;/p&gt;
&lt;p&gt;そういう詐欺的ネットワークでは、「解釈が深いとエラい」というイデオロギーが深く根付いている。それなのに、解釈を重視しているはずの二次創作には解釈の解説文が添付されないし、またそうすることはナンセンスなのである。この構造上の空虚さが、ネットワークを強く守り抜いている。&lt;/p&gt;
&lt;p&gt;二次創作に込められた解釈をありがたがるネットワークでは、「作品に込められた解釈を理解できないとすればあなたが悪いのだ」という構造がごく簡単に築かれている。創作物に込められた &lt;strong&gt;不定形の解釈&lt;/strong&gt; を生み出した作者だけでなく、それを使役することを許された読者も利益を得ているのだ。ここで、解釈というのはネットワークを維持する燃料となり、あるいはイデオロギーを共有しない他者を排除する防護壁となる。&lt;/p&gt;
&lt;p&gt;これは、空虚で強い表現を掛け声に使うことで、巨大なおみこしにアクセスできると言い換えることもできる。土着信仰を失ったお祭りは、ハロウィンを介して東京の一ヶ所に人を集めるだけでなく、このようにインターネットを介して人を接続するのだ。&lt;/p&gt;
&lt;p&gt;人はもはや本来の意味での「解釈」を必要としていないのに、他者の上に立ち排除するための武器あるいは要塞としての「解釈」は未だに有効なのである。これは、長期的に見ておそらく悪い（もしくは面白い）結果を招くだろう。&lt;/p&gt;
&lt;p&gt;あなた方は、定量的評価を重視しながら、これからも巨大なおみこしを空虚に担ぎ続けることはできるだろうか？　もしそうなら、それはよい才能であると思う。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:weak"&gt;
&lt;p&gt;あるいは、それに対する &lt;strong&gt;弱い解釈&lt;/strong&gt; とか &lt;strong&gt;浅い解釈&lt;/strong&gt; という罵倒。&amp;#160;&lt;a class="footnote-backref" href="#fnref:weak" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:meta"&gt;
&lt;p&gt;作者のツイート群やなかよしネットワークの情報。&amp;#160;&lt;a class="footnote-backref" href="#fnref:meta" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>団地</title><link href="https://ama.ne.jp/post/national-pregnancy/" rel="alternate"/><published>2018-12-08T21:37:00+09:00</published><updated>2018-12-08T21:37:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-12-08:/post/national-pregnancy/</id><summary type="html">&lt;p&gt;生殖免許はありますか？&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;video autoplay loop muted width="600" height="315" src="/images/national-pregnancy/top.webm"&gt;ベランダに面する窓にウサギ、サル、クマ、コアラ、風船、虹などのかわいいイラストが貼り付けられたレンガ調タイルの住宅&lt;/video&gt;&lt;/p&gt;

&lt;hr&gt;
&lt;p&gt;「ねぇ、ナナロク。そろそろ、子供作らない？」&lt;/p&gt;
&lt;p&gt;「またその話？」&lt;/p&gt;
&lt;p&gt;「センターがうるさいんだってば、ずっと」&lt;/p&gt;
&lt;p&gt;私が76784291739271号に子供をせがむのは実に簡単な理由で、つまりは私の社会的地位の向上のためだった。&lt;/p&gt;
&lt;p&gt;ナナロクは、綺麗な女だ。遺伝子が優良か――残す価値があるかどうか――は単なる容姿や学力で決まるわけではないとされていながらも、ナナロクは顔で選ばれたとしか思えない。それほどまでに、身体が弱くて、バカで、性格の悪い女だった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;整然と並んだ団地の大きな一棟の、小さく区切られた一室で私たちは暮らしている。画一的で効率の良い住居はどこも薄汚れたレンガ風の外壁で囲まれていて、私が移住してきてから何一つ変わっていない。とうとう足が帰路に必要な歩数を覚えてしまったのか、無意識でも家に帰れるようになってしまった。&lt;/p&gt;
&lt;p&gt;真夜中に窓を開けると、向こうの棟に玄関を照らす蛍光灯がよく輝いているのが見えて、少し寂しい。&lt;/p&gt;
&lt;p&gt;暮らしに不満はないけれど、変化のない毎日はそんなに楽しいとは思えない。この狭い部屋に誰かが遊びに来るわけでもないし、私だって誰かの部屋に遊びに行きたいわけではなかった。この部屋の住所は「126-021-005 02208」となっているけれど（部屋番号はこの前の都市住居法の改正で五桁になった）、実際には住民番号を入力すれば手紙も荷物も届くから誰も自分の住所は覚えていない。&lt;/p&gt;
&lt;p&gt;人類が居住を許される区域は年々狭まっていた。私だってこんな狭い部屋で二人暮らしを続けるのは嫌だけど、抜け出したってどこに行けるわけでもない。とはいえ、そもそも百万人を一つの都市で抱えようとするのは、あまり余裕のある計画ではなかった。&lt;/p&gt;
&lt;p&gt;聞くところによれば、地球が緩やかな絶滅（テレビではこれをよくニーマルニーマルと呼んでいた）へと向かおうとしているらしい。エネルギー資源の枯渇に異常気象、それに加えて急激な太陽変動ときた。要するに、地球に人類を養うだけの余裕がなくなったのだ。&lt;/p&gt;
&lt;p&gt;結果として、最終的に二百数十億にまで膨れ上がった世界人口は、大量の核兵器の力で大きく減らされることとなった。始まりはその場しのぎの戦争だったけど、あれは必要なことだったと皆が言う。&lt;/p&gt;
&lt;p&gt;確かに、暴力的な手段とはいえ地球への負担を減らすことはできたけど、やはり地球には大きな爪痕が残されることになる。放射能汚染による居住可能区域の減少と、大規模な爆発が繰り返されたことによるさらなる気象変動が引き起こされたのだ。&lt;/p&gt;
&lt;p&gt;もはや人間が暮らせなくなった大地と私たちを分けるようにして、都市を包む巨大なドームが設置された。ドームの中にいれば、少なくとも（物理的な）生存は保障される。ただ、都市全体を快適な状態に保つには莫大なエネルギーが必要となるはずだ。この先どこからエネルギー資源を確保できるのか、この巨大なシェルターをどれだけ維持できるのかは、末端の私たちには知らされていなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;子供を産んで育てることは、実質的に禁じられていた。そうでもしないと、我々が我々を絶滅させることになるだろう。&lt;/p&gt;
&lt;p&gt;ただし、自分の遺伝子を残したいという素朴な生物学的欲望は、辛うじて「生殖免許」として残されていた。そして、優良な遺伝子を除いては、自らのコピーを後世に伝える方法は残されていなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「あのさ。ミミは、本当に子供が欲しいの？」&lt;/p&gt;
&lt;p&gt;「欲しいよ。私だって、何のために育児免許取らされたか分からないし」&lt;/p&gt;
&lt;p&gt;「いや、育児免許を取ったのはミミが不良遺伝子だったからじゃん」&lt;/p&gt;
&lt;p&gt;「はぁ？！」&lt;/p&gt;
&lt;p&gt;目も合わせずに答えるナナロクは、パチパチと爪を切りながらその無関心さをアピールする。悪意に悪意を重ねた「不良遺伝子」なんていう悪口に、思わず大きな声が出てしまう。&lt;/p&gt;
&lt;p&gt;優良遺伝子保持者はみんなこうなのか？　遺伝子の「強さ」でマウントを取り合う文化でもあるのかもしれない。&lt;/p&gt;
&lt;p&gt;とはいえ、「非優良遺伝子保持者」が「優良遺伝子保持者」に比べて待遇が悪いことは否定できなかった。非優良遺伝子保持者が出生以外で社会に貢献するには、男性なら不本意な運労をするか、女性ならそれに加えて育児に携わらなければならない。現在の問題に取り組むか、未来への投資に取り組むか、ということだ。&lt;/p&gt;
&lt;p&gt;「うっさいな。いちいち叫ばないでよ」&lt;/p&gt;
&lt;p&gt;ひとしきり爪を切ったナナロクが、本当に興味がなさそうな様子で落とした爪を拾い上げる。&lt;/p&gt;
&lt;p&gt;「私はね、あんたがセンターに連行されて卵子を引っこ抜かれないように、わざわざ忠告してあげてんの！」&lt;/p&gt;
&lt;p&gt;「あー、うん。ありがたいご忠告、本当にありがとうございます」&lt;/p&gt;
&lt;p&gt;マグカップを持ったナナロクが、私の隣に座り込む。ソファが小さくきしんで揺れた。コーヒーの香りが鼻をくすぐって、叫びたい衝動が少しだけ収まる。私の機嫌が悪くなっていることも、放っておくと面倒なことになることも、それなりには理解しているらしい。&lt;/p&gt;
&lt;p&gt;まぁ、もちろんそのマグカップは私の分ではないんだけど。ナナロクはたっぷりのブラックコーヒーを苦そうに啜って、その白いカップをゆっくりテーブルに置いてから、軽く伸びをする。&lt;/p&gt;
&lt;p&gt;「だから、そろそろ子供作ろうよ。私がちゃんと育てるからさ」&lt;/p&gt;
&lt;p&gt;「逮捕されそうになったら、その場で死ねばいいじゃん。そんなに生きたい？」&lt;/p&gt;
&lt;p&gt;「私は苦しまずに死にたいけどね。優良遺伝子保持者さんは、人生がお気楽で本当に羨ましい」&lt;/p&gt;
&lt;p&gt;生殖はあくまで自由意志によるものとされた。ほとんどの優良遺伝子保持者は、「自由意志で」子供を残して都市の運営に貢献している。優良遺伝子保持者が免除されている多くの責務は、その生殖能力の活用と引き換えになっているからだ。たいていの優良遺伝子保持者は複数の相手と何度も子を為し、それ以外の者たちから――特に男性からは――羨望の目で見られていた。&lt;/p&gt;
&lt;p&gt;たまにナナロクみたいなやつもいるけど、そういうやつはとてもレアで、とても異常だ。都市運営にあんまり非協力的だと、センターが令状を発して連行した上で、精子や卵子を採取されることになる。&lt;/p&gt;
&lt;p&gt;そして、この部屋にはそういう強制処分を匂わせる警告状が何度も届いていた。&lt;/p&gt;
&lt;p&gt;「じゃあ、私が死ぬ時にさ、ミミも一緒に死のうよ。ミミと一緒なら苦しくないし」&lt;/p&gt;
&lt;p&gt;私の顔を覗き込むナナロクは、まるで面白い遊びを思いついた被保護住民のように無邪気な声で私にそう提案した。&lt;/p&gt;
&lt;p&gt;「バカ言うなって。優良遺伝子の喪失が社会にどれだけダメージを与えると思ってんの」&lt;/p&gt;
&lt;p&gt;「……あはっ。確かに、社会は大事かもね。それなら、ミミは残していくよ」&lt;/p&gt;
&lt;p&gt;私が優良遺伝子の喪失に関わったとなれば、どんな酷い待遇が待ち受けているか分からない。バカなナナロクでもそれくらいは知っているだろう。&lt;/p&gt;
&lt;p&gt;笑いながらつまらない冗談を吐くナナロクは、本当に腹が立つ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;クローン技術はおそらく失われていた。より正確に言えば、遺伝子を調整する技術が発達しきっていなかった。だから、いわば「オーガニック」の優良遺伝子保持者は重宝されていた。&lt;/p&gt;
&lt;p&gt;ドームに住む人たちは、先の見えないことに対する漠然とした不安を抱えていたから、優れた人類を生み出すことに強い期待を寄せていた。デジタル狐像を撫でても、電子線香を焚いて祈っても、どうにもならないのは分かっていた。&lt;/p&gt;
&lt;p&gt;新たな生殖は、人類の夢を背負っていた。だから、私がナナロクに子供をせがむのは単に社会に迎合するためだ。社会の期待に応えなければ、この都市では生きていけないから。&lt;/p&gt;
&lt;p&gt;私が死んだ後の人類の未来なんて、どうでもよかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ねぇ、ミミ。もしも、ミミが優良遺伝子だったら、ちゃんと子供作ってたと思う？」&lt;/p&gt;
&lt;p&gt;「何それ？　まぁ、大喜びで妊娠してたと思うよ。もしも、なんて言われても意味がないけど」&lt;/p&gt;
&lt;p&gt;「そうだよね。うん、ミミはそうだよね」&lt;/p&gt;
&lt;p&gt;唐突にそう尋ねたナナロクは、そうだよね、そうだよねと繰り返しながら、納得するように何度も頷いている。&lt;/p&gt;
&lt;p&gt;「急にどうしたの。インタビュアーの練習？　そんな運労、入れてたっけ」&lt;/p&gt;
&lt;p&gt;「いや、外には行きたくない。息が苦しくなるし」&lt;/p&gt;
&lt;p&gt;「じゃあ、何？」&lt;/p&gt;
&lt;p&gt;「ん？　別に、ただの世間話だよ。ミミ、なんか難しい顔してたから」&lt;/p&gt;
&lt;p&gt;見抜かれたような心地がして、思わず頬に手を当てる。&lt;/p&gt;
&lt;p&gt;考えてみると、テレビも付けずに二人でくつろぐ夜なんて、久しぶりだった。&lt;/p&gt;
&lt;p&gt;いつもなら、「あの街この街まっしぐら」（もう何度も再放送されている）を観ながら適当なことを喋っていれば、いつの間にか時間が過ぎていた。もうとっくに廃墟になっている街の、もうとっくに閉店している喫茶店の内装について難癖をつける。いかにも頭が空っぽなコメントを投げつけても、タレントは何も文句を言わない。&lt;/p&gt;
&lt;p&gt;毎日のニュースはあまり見ないようにしていた。ナナロクに付き合って見る夕方のニュース番組には、刺激的なトピックは一つもない。凶悪事件も起こらない、火山も噴火しない、逮捕も革命も起きない。だからこそ、地球が緩やかに滅びているのが分かった。&lt;/p&gt;
&lt;p&gt;だからこそ、夜が来るのが怖かった。&lt;/p&gt;
&lt;p&gt;「まぁね。私も、自分が優良遺伝子保持者だったらなって、たまーに考える」&lt;/p&gt;
&lt;p&gt;もしも、私が「優秀」だったなら、喜んで社会に希望を残しただろう。そうするだけで、生きることを許されるのだから。&lt;/p&gt;
&lt;p&gt;たくさんの優秀な遺伝子と交ざって、未来に資産を残す。それは、優秀な遺伝子の持ち主にしかできない専門運労だ。運労に必死に取り組むのが正しいことかは分からないけど、それは私に生きる意味をくれるだろう。そして、きっと今より心も生活も満たされることだろう。&lt;/p&gt;
&lt;p&gt;「そうだね。ミミなら、きっと上手くやれたよ」&lt;/p&gt;
&lt;p&gt;きっと上手くやれた、とナナロクは言う。私に寄せた同情か、あるいは無責任な予言のつもりだろう。ナナロクはよく、そういうやり方で私を激励していた。未来への期待が溢れる時代でもなければ、無邪気に夢を見る年齢でもなくなったのに。&lt;/p&gt;
&lt;p&gt;「私はさ、家も出たくないし、誰かがここに来るのも嫌だから。やっぱりセンターからしたら落ちこぼれの優良遺伝子だからさ、私って」&lt;/p&gt;
&lt;p&gt;ナナロクが、空になったマグカップをゆらゆらと揺らす。カーペットに落ちる影が、しきりに形を変えて落ち着かない。&lt;/p&gt;
&lt;p&gt;優良遺伝子かどうかは、生まれた時点で決まっているとも、その後の人生の様子で評価が補正されるとも言われている。でも、もし私の生き様を勘案しても「優秀」ではなかったなら、どうしてナナロクの方が「優秀」だったんだろう。&lt;/p&gt;
&lt;p&gt;「やればできる子、とでも？」&lt;/p&gt;
&lt;p&gt;「まぁ、ヤればデキるんじゃない？　正直、誰かが代わってくれるなら、代わってほしいよ」&lt;/p&gt;
&lt;p&gt;「何言ってんの。子供を産むだけで褒められるんだよ？　そんな簡単な仕事なら、私が代わりたいくらい」&lt;/p&gt;
&lt;p&gt;冴えない人生だったとしても、自分が残した子孫が勝手に自分の評判を高めてくれる。上手い話すぎて怪しいくらいだ。&lt;/p&gt;
&lt;p&gt;「でも、バカな遺伝子って判定されたのはミミでしょ？」&lt;/p&gt;
&lt;p&gt;「あっ！　またバカって言ったな！」&lt;/p&gt;
&lt;p&gt;「ちょっと待ってよ。それは事実じゃん」&lt;/p&gt;
&lt;p&gt;「事実だから何？！　いいよねぇ、あんたは！　やろうと思えばすぐパコって子供産めるんだもんね！」&lt;/p&gt;
&lt;p&gt;「ミミ！　それは言うなってば！」&lt;/p&gt;
&lt;p&gt;ナナロクが、私に応酬するように大きな声を上げる。&lt;/p&gt;
&lt;p&gt;いつものナナロクなら、私につられて感情的になったりはしないのに、子供の話になるとときどき声を荒らげることがあった。とはいえ、子供が嫌いというわけでも、センターへの反抗心があるわけでもないらしい。どうやら、自分に課せられた生殖免許が気に入らないらしいのだ。つまり、ただただ「子供を産みたくない」のだという。&lt;/p&gt;
&lt;p&gt;どうして社会に背いてまでその運労を拒むのかは分からないけど、確かにこの現状は彼女の遺伝子にとっては落ちこぼれというほかない。&lt;/p&gt;
&lt;p&gt;「あーあ！　セックスの快楽に出産の喜びだなんてバカな女の欲望フルセットだな！」&lt;/p&gt;
&lt;p&gt;「ミミ。やめて」&lt;/p&gt;
&lt;p&gt;ナナロクが立ち上がった私を止めようと腕を掴むのも構わずに、さらに天井に向かって叫んだ。&lt;/p&gt;
&lt;p&gt;「一方の私は、生まれた時から万年処女確定！　何のためにメスとして生まれたのか分かんな――ぎぁっ！」&lt;/p&gt;
&lt;p&gt;と、息をすっかり吐き出し終わるより前に、無理やり肺が折り畳まれて踏まれた猫のような声が搾り出される。身体を左右に動かして、ナナロクが私を抱きしめていると分かったのは、それから少し後のことだった。&lt;/p&gt;
&lt;p&gt;「ミミ、落ち着いてよ。セックスなら私ともできるからさ」&lt;/p&gt;
&lt;p&gt;「バカ！　あんたなんかに抱かれたくない！」&lt;/p&gt;
&lt;p&gt;「でも、ミミって私のこと好きだよね？」&lt;/p&gt;
&lt;p&gt;「……は？　何が？」&lt;/p&gt;
&lt;p&gt;唐突な話題の転換に、頭がついていかない。私はただ、ナナロクの喧嘩を買っただけだ。&lt;/p&gt;
&lt;p&gt;「私が一番好きなの、ミミだし」&lt;/p&gt;
&lt;p&gt;「あー、はいはい。そうね。あんたは家から出ないもの」&lt;/p&gt;
&lt;p&gt;顔を合わせない問答に、少しだけ安心しながら言葉を返す。ナナロクが私をどう思っていようと構わないはずなのに、耳元がくすぐったい。&lt;/p&gt;
&lt;p&gt;「でも、ミミって、私がどこかに行っても戻ってくるって信じてくれてるっていうか……そう！　正妻の余裕、あるよね！」&lt;/p&gt;
&lt;p&gt;ナナロクが抱きしめた私を引き剥がす。そして、私の目を見ながら、もう一度「正妻の余裕、分かる？」と尋ねた。&lt;/p&gt;
&lt;p&gt;彼女は面白いアイデアを思いつくと、必ず嬉しそうな表情で私の顔を覗き込むのだ。彼女のいう「正妻の余裕」というのは、昔デジタルディスクで観たドラマのセリフの引用だろう。その時も、ナナロクは私に同じようなことを言っていたから。&lt;/p&gt;
&lt;p&gt;「正妻の余裕、ね！　そうですか。私たちはラブラブで、私だけ都合のいい女って言いたいわけだ！」&lt;/p&gt;
&lt;p&gt;「都合よくなんかないよ。私もミミを大事にするから」&lt;/p&gt;
&lt;p&gt;「精液臭い手で触られた女が、生意気な子供連れて帰ってきて、私を大事にします？　死ぬほどつまんないジョークだな！」&lt;/p&gt;
&lt;p&gt;「だから、それは義務なんでしょ！？　相手がいないなら、私だって子供なんか産めないよ！」&lt;/p&gt;
&lt;p&gt;「じゃあ、私が好きとか言ってないで、もっと――」&lt;/p&gt;
&lt;p&gt;がちゃん。私の言葉を待たずに、ナナロクの指から白いマグカップが滑り落ちた。真っ二つになったカップが、乾いたコーヒーで濡れた中身を露わにする。粉々になった破片はカーペットに潜り込んでしまって、もう取り出すこともできないだろう。&lt;/p&gt;
&lt;p&gt;「ナナロク。それが、あんたの答え？」&lt;/p&gt;
&lt;p&gt;「違うよ、ミミ。今のはわざとじゃなくて、ただ……」&lt;/p&gt;
&lt;p&gt;「もういい。センターでもなんでも行けばいいよ」&lt;/p&gt;
&lt;p&gt;「ねぇ、ミミ。私がどこかの誰かとセックスして、知らない子供を妊娠しても、本当にいいの？　ミミは本当に、私のこと好きじゃないの？」&lt;/p&gt;
&lt;p&gt;「……知らない。勝手にすれば」&lt;/p&gt;
&lt;p&gt;ナナロクは本当にバカで、本当に性格が悪くて、本当に、綺麗な女だ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/2944"&gt;百合SS Advent Calendar 2018&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>天狗が見ている</title><link href="https://ama.ne.jp/post/lookat/" rel="alternate"/><published>2018-12-07T20:57:00+09:00</published><updated>2018-12-07T20:57:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-12-07:/post/lookat/</id><summary type="html">&lt;p&gt;解釈違いやめてください&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;「面白さ」とは何だったか？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;「面白さ」の表現&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;「面白さ」の統計&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;「面白さ」の最適化&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;「作品を作る」とは何だったか？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_6"&gt;読者に寄り添うということ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;作品を生成するということ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;作品を事後評価するということ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;誰に向けて作るのか？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_10"&gt;読者を分解するということ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;読者を分解できないということ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_12"&gt;最適解&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;/* 注意！　この記事は、ライセンス表示を除いて全てフィクションです。 */&lt;/p&gt;
&lt;h2 id="_1"&gt;「面白さ」とは何だったか？&lt;/h2&gt;
&lt;p&gt;我々が漫画、アニメ、小説――創造的な作品を鑑賞したり制作したりするにあたって、最初に到達するのは、「面白さ」の絶対性という誤謬です。&lt;/p&gt;
&lt;p&gt;あなたの周りに、こういった考えを持っている人はいませんか？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;あらゆる作品の「面白さ」の要素は、その作品内で完結している&lt;/li&gt;
&lt;li&gt;あらゆる作品を「面白さ」の一次元軸&lt;sup id="fnref:line"&gt;&lt;a class="footnote-ref" href="#fn:line" title="そうでなくても、少なくとも解釈可能なレベルの空間。参考: 1033811429663502336"&gt;1&lt;/a&gt;&lt;/sup&gt;に載せることができる&lt;/li&gt;
&lt;li&gt;あらゆる個人は、集団や周辺環境に影響されることなく、あらゆる作品の「面白さ」を正しく判断できる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このような発想は、作品の「面白さ」が作品自身で完結しており、さらに作品固有の絶対量として記述できるという信念から自然に得られるものです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="背景知識や属性によって面白さの評価が変わることを示す図" height="530" src="/images/lookat/variance.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;a href="https://github.com/twitter/twemoji/blob/master/assets/svg/1f393.svg"&gt;mortar_board&lt;/a&gt;, &lt;a href="https://github.com/twitter/twemoji/blob/master/assets/svg/1f4d6.svg"&gt;book&lt;/a&gt;, &lt;a href="https://github.com/twitter/twemoji/blob/master/assets/svg/1f60e.svg"&gt;sunglasses&lt;/a&gt;, &lt;a href="https://github.com/twitter/twemoji/blob/master/assets/svg/1f60d.svg"&gt;heart_eyes&lt;/a&gt; and &lt;a href="https://github.com/twitter/twemoji/blob/master/assets/svg/1f913.svg"&gt;nerd&lt;/a&gt; by &lt;a href="https://twemoji.twitter.com/"&gt;Twitter, Inc and other contributors&lt;/a&gt; are licensed under a &lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;.&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;さて、ここで作品の「面白さ」の変動について考えてみましょう。ある大人気作家Xさんが著した作品Yについて、3人の読者から評価を得ることができました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aさんは、Xさんの作品を初めて購入した一般的な読者です。もちろんYはそれ単体でも楽しめますが、Xさんの過去作品を知っていればもっと楽しめる部分がいくつかありました。&lt;/li&gt;
&lt;li&gt;Bさんは、Xさんのファンです。過去作品は全て購入していますし、Xさんのインタビュー記事も欠かさず読んでいます。作品に描かれた内容を十分に楽しむことができました。&lt;/li&gt;
&lt;li&gt;Cさんは、主に考察記事を掲載するブログを運営しているブロガーです。幅広い知識を元に、作品に書かれた内容から多くの示唆や感情の推移を引き出して、Yをすっかり味わい尽くすことができました。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このような場合、誰が作品の本当の「面白さ」を過不足なく把握できているでしょうか？　幅広い知識で考察記事を書くことができるCさんでしょうか？　それとも、作品に描かれたことを忠実に味わったBさんでしょうか？　それとも……誰も作品の真の「面白さ」を知ることはできなかったのでしょうか？&lt;/p&gt;
&lt;p&gt;もう一つ例を挙げましょう。あるあるネタというのは、視聴者や観客の共感を得ることで笑いを誘う芸の一種です。例えば、遊びに行った友達の家の天井が低いとか、階段が急だとかいうことをネタとして披露するわけです。&lt;/p&gt;
&lt;p&gt;あるあるネタを楽しむ大前提として、そのネタに共感できる背景を持っている必要があります。裏を返せば、そういう背景を持っていない人にとっては、たぶんその芸は「面白くない」のです。楽しめない人がいるということは、あるあるネタは「面白くない」芸なんでしょうか？&lt;/p&gt;
&lt;!-- ここに解釈違いの例を入れたかったが、流れ上かなり無理矢理になるのでやめた（悪意の総量規制） --&gt;

&lt;h3 id="_2"&gt;「面白さ」の表現&lt;/h3&gt;
&lt;p&gt;こういったことを考慮すると、作品の「面白さ」評価基準Eは、作品Xと読者aの関係で表せることが分かります&lt;sup id="fnref:also"&gt;&lt;a class="footnote-ref" href="#fn:also" title="「面白さ」だけではなく、多くの作品評価量に当てはまります。"&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img alt="$$E = f\left(X, a\right)$$" height="91" src="/images/lookat/001.png" width="161"&gt;&lt;/p&gt;
&lt;p&gt;ただし、実際には、作品の「面白さ」は読者だけではなく、その周辺環境――世界を含めた関係で表す方が自然です。&lt;/p&gt;
&lt;p&gt;それはなぜですか？　「世界」の影響を受けない人はおそらくいませんし、口コミや他人の評価で作品を選び、さらにそれが評価に影響を与えることは実にありふれているからです。また、そうすることで、作家の死没後に作品が有名になる、といった作品や読者自身の性質を離れた事象を記述できるようになります。&lt;/p&gt;
&lt;p&gt;ここに至っても、作品Xが本来持ちうる「面白さ」の絶対量、つまりf(X)の存在を信じて疑わない人がいます。あるいは、この式の存在は認めながらも、読者の平均値を与えたり、読者について周辺化することで「面白さ」の絶対量に代えることができる、という人もいます。&lt;/p&gt;
&lt;p&gt;さて、それを認めると、もう一つの問題が顔を出すことになります。我々は、いったいどんな読者集合を仮定すればいいのでしょうか？　全人類の存在を考慮して評価すればいいのでしょうか？　数十億人の周辺化はたいへんそうですね。&lt;/p&gt;
&lt;p&gt;それについては次節で触れます。&lt;/p&gt;
&lt;h3 id="_3"&gt;「面白さ」の統計&lt;/h3&gt;
&lt;p&gt;「面白さ」を「世界」で定式化したおかげで、これをある種の統計モデルとして表現することができるようになりました。現実と乖離した非常に強い仮定を置けば、「面白さ」を平均と分散で特徴づけられた正規分布として表すこともできます。&lt;/p&gt;
&lt;p&gt;ここで、ある作品A〜Cの「面白さ」について、P群（N=38）とQ群（N=38）から得られた評価をプロットします。&lt;/p&gt;
&lt;p&gt;&lt;img alt="_P群とQ群が作品A～Cの面白さを評価したところ、作品AのみQ群での評価が低かったケース" height="375" src="/images/lookat/boxplot.png" width="750"&gt;&lt;/p&gt;
&lt;!--
p1 &lt;- rnorm(38, 3.5, 0.5)
p2 &lt;- rnorm(38, 4.0, 0.5)
p3 &lt;- rnorm(38, 4.2, 0.5)
q1 &lt;- rnorm(38, 1.9, 0.5)
q2 &lt;- rnorm(38, 3.95, 0.5)
q3 &lt;- rnorm(38, 4.25, 0.5)

boxplot(list(A=p1, B=p2, C=p3), main="P群", ylim=c(0, 5))
boxplot(list(A=q1, B=q2, C=q3), main="Q群", ylim=c(0, 5))

t.test(p1, q1, var.equal=T)
t.test(p2, p2, var.equal=T)
t.test(p3, p3, var.equal=T)
--&gt;

&lt;p&gt;作品Bと作品Cは2群でほぼ変化がありません。t検定によれば、有意水準5%で平均値に有意な差はないといえます(p=1)。一方、作品Aは2群で大きな差があるように見えます。t検定によれば、有意水準5%で平均値に有意な差があるようです(p &amp;lt; 2.2e-16)。&lt;/p&gt;
&lt;p&gt;さて、2群で大きく評価が変わってしまった作品Aは、いったいどんな作品なのでしょうか？&lt;/p&gt;
&lt;p&gt;実は、作品Aは、ある中学校の2年D組のEくんと同組Fくんで結成されたコンビ「高輪ゲートウェイズ」のオリジナル漫才です。他の2作品は、中学生に大人気のお笑いコンビのライブ映像でした。&lt;/p&gt;
&lt;p&gt;もうお分かりでしょうが、P群はEくんとFくんのクラスメート（N=38）、Q群はこの中学校とは全く関係ない中学2年生（N=38）です。&lt;/p&gt;
&lt;p&gt;範囲の狭い「身内ネタ」を見ても、ほとんどの人はつまらないと思うでしょう。彼らの漫才が通用するのはせいぜい同じ中学校の同学年の生徒までです。では、高輪ゲートウェイズの漫才はやっぱり「面白くない」のでしょうか？　そうではありません。彼らのクラスメートで閉じている限りは「面白い」のです。作品が想定外の読者に届いてしまうのは、まさに悲劇というほかありません。&lt;/p&gt;
&lt;p&gt;このような場合に、作品に閉じ込められた「面白さ」を取り出そうとする思想は、あらゆる作品の評価を難しくします。これは、Nが大きくなっても同じことです。Nの範囲が自分から見える狭い「世界」であれば問題は顕在化しませんが、そこから出た時に（外向きの）合理的な説明を与えられなくなるでしょう。&lt;/p&gt;
&lt;p&gt;逆に、狭い「世界」の視点は利点と捉えることもできます。つまり、身内であり続ける限りは、外での評価について気にする必要はないのです。広く受け入れられている「身内ネタ」や「身内ノリ」は、視聴者を巻き込むことで大きな身内を形成している、という説明を与えることもできます。&lt;/p&gt;
&lt;p&gt;しかし、「面白さ」は相対的である、という話だけでは不十分です。この説明だけでは、プロのお笑い芸人の漫才と、中学生レベルの英語教諭モノマネの差がほとんどないことになってしまいます。ここで必要となる視点が、「読者」を含んだ「世界」を加えた「面白さ」の指標なのです。読者の特徴や読者数を比較することで、どちらがより一般的に「面白い」かを判断することが可能になります&lt;sup id="fnref:unc"&gt;&lt;a class="footnote-ref" href="#fn:unc" title="たいてい、我々はそれを無意識のうちに行っています。"&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;p&gt;では、我々は誰を対象にして作品を作ればよいのでしょうか？　それはどこまで行っても限りなく自由です。単に誰に向けて書くのかを考え、何人くらいの読者に向かっているのかを意識するだけで、期待と現実の差による落胆や、無駄な印刷費の出費を避けることができます。&lt;/p&gt;
&lt;p&gt;当然、ミリオンセラーを狙うなら、N=1000000程度を想定しなければならないでしょうが……。&lt;/p&gt;
&lt;h3 id="_4"&gt;「面白さ」の最適化&lt;/h3&gt;
&lt;p&gt;ここまで読んだあなたは、読者集合を設定した上での「面白さ」の最適化問題を考えることができるようになりました。読者集合Aの下で、最もよい評価を受けることができる作品Yは、以下の式で表すことができます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="$$Y = \argmax_X \frac{\sum_i^{|A|} f\left(X, a\left(i\right)\right)}{|A|}$$" height="91" src="/images/lookat/002.png" width="381"&gt;&lt;/p&gt;
&lt;p&gt;なお、この式では、実際にあなたがどんな作品を生み出せるかについては一切考慮されていません。例えば、特定の読者集合の下では漫画だけが「面白い」作品として受け入れられるかもしれませんが、それはあなたが漫画を描く能力があることを意味しません。&lt;/p&gt;
&lt;p&gt;当然、Nが大きくなると最適化は難しくなるでしょう。ただし、読者a(i)をより一般的な表現に分解できるなら、Nの大きさを気にする必要はありません。また、Nが小さくても、a(i)の分析が困難ならさらに難しい問題となります。&lt;/p&gt;
&lt;p&gt;Nをあまりに大きくしすぎると、作品とは関係ない部分が重要になるかもしれません。例えば、登場人物の肌の色をばらつかせたりする「テクニック」を知らないと不利になることがあります。ですから、いつでもNを大きくすればいいわけではなく、自分に適した読者の大きさを考える必要があります。読者集合の設定とその「面白さ」の広がりは、ノーフリーランチ定理としてよく知られています。&lt;/p&gt;
&lt;h2 id="_5"&gt;「作品を作る」とは何だったか？&lt;/h2&gt;
&lt;p&gt;ここで、具体的な読者設定の前に「作品を作る」という行為自体を振り返ってみます。&lt;/p&gt;
&lt;h3 id="_6"&gt;読者に寄り添うということ&lt;/h3&gt;
&lt;p&gt;まず、我々はたいてい「誰に読んでもらうか」を考え、作品の方向性を決めます。もちろん読者を想定せずとも作品を作ることはできますが、読者の視点で内容が練られない粗雑な文章になりがちです。&lt;/p&gt;
&lt;p&gt;対象となる読者が決まれば、彼らに合わせた視点を持って執筆を始めることができます。視点獲得の難しさは、作者とのダイバージェンスの大きさによって決まります。特に、自分自身や自分自身と同じような人をターゲットとするなら、訓練はほとんど必要ありません。&lt;/p&gt;
&lt;h3 id="_7"&gt;作品を生成するということ&lt;/h3&gt;
&lt;p&gt;作品の方向性が決まったら、実際の制作に取り掛かることになります。想定している読者に対して、「面白さ」の最大化あるいは別の評価基準の最大化、あるいはそれらを束ねた複数の評価基準の最大化を行います。ここでどれだけ読者を単純に表現できるかによって、最適化の難易度が大きく変わります。&lt;/p&gt;
&lt;p&gt;作られた作品は評価予測器と接続され、作品に方向性を調整するためのフィードバックを与えます。ここが最も難しい部分です。&lt;/p&gt;
&lt;p&gt;ただし、自分自身をターゲットにしているなら、常に自分を評価予測器として用いることができるので非常に簡単です。そうでなければ、発表前に想定読者からフィードバックを得られない限り、あなたが想定読者をエミュレートするしかありません。&lt;/p&gt;
&lt;h3 id="_8"&gt;作品を事後評価するということ&lt;/h3&gt;
&lt;p&gt;作った作品がどれだけ売れたか、どんなフィードバックが得られたかを記録し、今後の評価予測に役立てます。&lt;/p&gt;
&lt;h2 id="_9"&gt;誰に向けて作るのか？&lt;/h2&gt;
&lt;p&gt;さて、作品を作るにあたって、方向性の決定と評価のエミュレートにおいて読者の設定が重要になるということを述べてきました。本節では、具体的な読者の設定方法のヒントについて考えます。&lt;/p&gt;
&lt;p&gt;我々が想定する読者は、様々な性質で特徴づけられます。以下は、性質の例です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;実在するか、しないか。&lt;/li&gt;
&lt;li&gt;フィードバックがもらえるか、もらえないか。&lt;/li&gt;
&lt;li&gt;あなたから見て変化するか、しないか。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;あなたの視点から見て読者が変化するかどうかは、とても重要なことです。変化しないのなら、あなたの中にある読者像を評価のエミュレートに使い続けることができます。絶対的に変化しないかどうかは、あまり関係ありません。&lt;/p&gt;
&lt;p&gt;フィードバックがもらえるのは実にラッキーなことです。もはや、作品の評価予測器を信頼できないエミュレータで代替する必要はありません。しかし、現実的には、読まれてもそもそもフィードバックをもらえないか、具体的なフィードバックが得られないことが多いです。&lt;/p&gt;
&lt;p&gt;実は、任意で寄せられたフィードバックによる評価はバリアンスが大きくなることが知られています。普通の人は、ニュートラルな立場で作品について言及する動機がないからです。そのため、悪い評価といい評価に集中し、標本分散が大きくなりがちです。&lt;/p&gt;
&lt;p&gt;読者という存在は変化しうるものであり、その反応も非常に把握しづらいものです。いつの間にか趣味が変わっているかもしれませんし、あなたにはよい評価だけ送信しているかもしれません。読者とのダイバージェンスが変化しているかどうかすらも、まだ分からないのです。&lt;/p&gt;
&lt;p&gt;こうなると、まず始めに、読者が作品に対してどういう反応を示すかということを、より小さくて単純な事例に分割したくなるはずです。&lt;/p&gt;
&lt;h3 id="_10"&gt;読者を分解するということ&lt;/h3&gt;
&lt;p&gt;読者が何を「面白い」と思うかを把握できれば、「面白い」作品が作れる、というのは自然な発想です。読者が「面白い」と思う要素を一つ一つ切り離すことができれば、自分の作品のオリジナリティを保ちつつ、読者の目を引く作品を作ることができるようになります。&lt;/p&gt;
&lt;p&gt;ただし、いつでも想定読者を分解できるとは限りません。多くの場合、これは得られる知識を重視するジャンル（評論、技術書、ノウハウ本）や、アダルトコンテンツなどで可能な戦略です。&lt;/p&gt;
&lt;p&gt;これらのジャンルに共通する特徴として、作品の要素が分離可能であるということが挙げられます。例えば、「ディープラーニングで駅名生成やってみた！」という記事があったとしましょう。読者はおそらく得られた結果やサンプルコードを読むのに時間を使い切ってしまい、本文に織り交ぜられたジョークに注目する人はそう多くないでしょう。この記事においては、知りたい知識と筆者の楽しいユーモアは完全に分離できるといえます。&lt;/p&gt;
&lt;p&gt;アダルトCG作品でも、肌の色や陰毛の有無をキャラクター性から分離することで、褐色差分や陰毛差分といったバリエーションが作られているのをよく見かけますね。このような配布形態は、肌の色や体毛の情報をキャラクター性に組み込んで、本質的に分離不可能なものとした作品においては成り立たないでしょう。肌の色や体毛でキャラクターは決まらない？　本当か？&lt;/p&gt;
&lt;p&gt;また、多くのアダルトコンテンツは豊富なタグで検索できるようになっており、それぞれの作品から視聴者が注目したい要素が分離されていることが分かります。&lt;/p&gt;
&lt;p&gt;このように、目的が明らかだったり、分離可能な要素を持っているジャンルでは、読者の分解が容易になります。「こういう技術を知って仕事に活かしたい」とか、「こういうセックスシーンを読みたい」という具体的な気持ちを作品に反映するのは、単に「『面白い』作品を読みたい」という漠然とした気持ちを叶えるよりはいくらか簡単です。&lt;/p&gt;
&lt;p&gt;例えば、誰もが知りたいノウハウをキャッチーな絵で漫画化したらたくさん売れるでしょう。これは、読者の「そのノウハウを知りたい」という気持ちに注目し、「キャッチーな漫画」で読みやすく仕上げるから売れるわけです。漫画に織り交ぜられたテンポのよい会話やギャグパートは、「ノウハウを知る」という目的に添えられた箸休めにしかならないでしょう。&lt;/p&gt;
&lt;p&gt;ただし、これは作品が「知識型」だから成り立つことであり、エンタメ寄りの作品がキャッチーな絵だったからといって常に売れるわけではないのです。&lt;/p&gt;
&lt;h3 id="_11"&gt;読者を分解できないということ&lt;/h3&gt;
&lt;p&gt;読者を分解できれば、誰でも「面白い」作品を作れるということは分かりました。しかし、作品の分野によっては読者の分解が難しいことがあります。それどころか「読者」と「世界」の分離すら叶わないことがあります。特に、エンタメ作品ではその傾向が顕著です。&lt;/p&gt;
&lt;p&gt;そして、残念なことに「世界」には作者も含まれています。つまり、作者が嫌いなので作品も「面白くない」という評価を下してしまう人もおそらくいるでしょう。それとは逆に、作者の人柄が好きなので作品が「面白い」という人もいるでしょう。&lt;/p&gt;
&lt;p&gt;このような場合では、作品の「面白さ」を追求するよりも、作者としてのキャラクターの露出を工夫したほうがよいかもしれません。&lt;/p&gt;
&lt;p&gt;さらに残念なことに、「世界」には周りの読者も含まれています。彼らは相互作用しあって大きなうねりを形成します。その中で、もはや作品の存在自体はおみこしに載せられた御神体以上の意味はありません。おみこしを担いで熱狂した群衆になら、小さなトルネードポテトを1000円で売りつけることも可能でしょう。&lt;/p&gt;
&lt;p&gt;このような読者は「ニュートラルな視点で見ている」と思い込みながら、作者や周辺環境を考慮した評価を下してしまうことがあります。例えば、曖昧な表現や大げさな表現を使うことで、容易にこのような状況を引き起こすことができます。このような状態で作品についての意味のある評価を取り出すのは難しいでしょうし、そもそも作品自身を調整することによって得られる効果の範囲が非常に狭まります。&lt;/p&gt;
&lt;p&gt;こういった場合には、読者に対して仮定しなければならないことが非常に増加します。先に記した「面白さ」の最適化のための式はもう無意味となってしまいました。a(i)とa(i+1)が互いに影響を及ぼすかもしれないからです――つまり、もはやそれぞれの観測は独立ではありません。&lt;/p&gt;
&lt;p&gt;そのようなケースでは、読者に対する素朴な分割や、独立を仮定した素朴なエミュレートは意味をなしません。&lt;/p&gt;
&lt;p&gt;とはいえ、読者を想定した相対的な「面白さ」に注意する、というフレームワークはまだ失われません。大きな読者集合Aの下で作品Xの「面白さ」評価基準f(X, A)を最適化すればよいのです。これで、少なくとも迷走した独りよがりな作品になるのを防ぐことはできるでしょう。&lt;/p&gt;
&lt;p&gt;ただ、あなたに力があるのなら、自分が作りたい作品のブームを引き起こす方が簡単かもしれません。そうすることができれば、作品の評価予測が非常に簡単になります。&lt;/p&gt;
&lt;p&gt;あなたが好きなジャンルでは、大げさな言葉や曖昧な言葉を振り回して、意味のない喘ぎ声を上げたりしていませんか？　みんなでワイワイすることが楽しくて、作品をおみこしに載せて満足していませんか？　お前は、誰なんだ？　自分の言葉で、語れ、ウゥ……。&lt;/p&gt;
&lt;p&gt;でも、もしそのようなトラディショナル・ジャパニーズ・乱交パーティが繰り広げられていたとしても、それはそれでかまいません。それも一つの楽しみ方なのです。読者に合わせて進化しなければ、作品の未来はないのですから。&lt;/p&gt;
&lt;h2 id="_12"&gt;最適解&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;ツイッターをやめ、インスタに街や食い物や海の写真をアップロードし、自分や自分が好きな人に向けて自分が大好きな創作を書く。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:line"&gt;
&lt;p&gt;そうでなくても、少なくとも解釈可能なレベルの空間。参考: &lt;a href="/tweet/1033811429663502336"&gt;1033811429663502336&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:line" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:also"&gt;
&lt;p&gt;「面白さ」だけではなく、多くの作品評価量に当てはまります。&amp;#160;&lt;a class="footnote-backref" href="#fnref:also" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:unc"&gt;
&lt;p&gt;たいてい、我々はそれを無意識のうちに行っています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:unc" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>しあわせミサイル</title><link href="https://ama.ne.jp/post/happiness-missile/" rel="alternate"/><published>2018-11-21T15:40:00+09:00</published><updated>2018-11-21T15:40:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-11-21:/post/happiness-missile/</id><summary type="html">&lt;p&gt;オリンピック&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/lilie-von-prora/"&gt;Lilie von Prora&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;彼女にべったりこびりついた &lt;em&gt;しあわせ&lt;/em&gt; は、なかなか落ちなかった。思い出してみると、私たちのエリアは特にＨＰＳが良かったし、どうしようもない副作用なのだろう。&lt;/p&gt;
&lt;p&gt;「お姉ちゃん、花火綺麗だね！」&lt;/p&gt;
&lt;p&gt;ポップな絵柄の手持ち花火が、長い火花を出してよく光る。妹はその真っ赤な光を楽しそうに振り回しては、何度か私の顔を見て笑っていた。時折、火花が妹の顔を良く照らして、上気した頬が夜闇に浮かび上がる。&lt;/p&gt;
&lt;p&gt;花火は、思っていたよりもずっと明るかった。クォーツが放つ燐光をかき消すようなその光に、私は何を託せばいいのだろう。&lt;/p&gt;
&lt;p&gt;砂浜に振りまかれた花弁は散り散りになって、どこかへ消えていく。それが今の私たちの様子を暗示しているようにも見えて、どこか物悲しかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私たちがこの浜辺のリゾートに連れてこられたのは、ほんの数ヶ月前――（ＧＮＣ暦で）ＤＡＰ年のＡ期――のことだ。私が数年ぶりに家に戻って間もなく、妹と共にこの国営保養地への移送命令が下ったのだ。おそらくは、成績低下を危惧したエリア長の策略だったのだろう。&lt;/p&gt;
&lt;p&gt;父と母は優しく微笑んでいたけれど、どうしても私に向けられたようには思えなかった。&lt;/p&gt;
&lt;p&gt;団地からの排除は、社会的な死を意味していた。妹もそれは良く分かっていただろう。弾けるような明るさを &lt;em&gt;強いられている&lt;/em&gt; にも関わらず、焦燥と不安を隠し切れずにいるのを私は見逃さなかった。しばらく団地から離れていた私にとっては、不安よりはむしろ引っ越しの面倒さの方が強かったけれど。&lt;/p&gt;
&lt;p&gt;とはいえ、リゾート自体は悪い場所ではなかった。粒の良く揃った砂が敷き詰められた砂浜に、その砂浜がずっと向こうまで透けて見える遠浅の海岸。植えられたヤシの木は人工樹で、こういう見せかけの植栽は団地とそう変わらない。汚れた空気ではまともな植物は育たないものだ。バスを降りた時に感じた呼吸の違和感は、そう離れた場所には来ていないことを暗示していた。&lt;/p&gt;
&lt;p&gt;天気が良い時はずっと向こうに陸地が見えることもある。ずっと向こう――たぶん数キロメートルから数十キロメートルくらい先――だと思うけど、汚れきった空気を通した距離感はあんまり信用ならなかった。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;自然&lt;/em&gt; のロケーションは申し分ないにせよ、気になる点もあった。全長二キロメートルほどの巨大な居住棟が、砂浜と道路を分けるようにそびえ立っているのだ。その横の長さのせいで、六階ほどの低い建造物の割には異常なほどの存在感を放っている。&lt;/p&gt;
&lt;p&gt;道路以外には見渡す限りの松林が広がっているだけで、それがさらにこの建造物の異常さを際立たせていた。&lt;/p&gt;
&lt;p&gt;こんな大きな建物はエリア内でも見たことがない。その大きさの割に、手入れはしっかりと行われているようだ。地中海の風景を思わせる真っ白な外壁は、古くて巨大ながらも定期的に塗り替えられているらしい。&lt;/p&gt;
&lt;p&gt;昔はもう少し賑わっていたのだろうか？　施設に面した道路に設置されたバス停は、縁石で塞がれてもう使われていないようだった。&lt;/p&gt;
&lt;p&gt;そんな寂れた施設の割にはよく整えられていて、不自然ではあるけれどさほど不自由は感じない。&lt;/p&gt;
&lt;p&gt;ただ、妹は団地外での生活のあれこれに慣れていないらしく、 &lt;em&gt;給仕&lt;/em&gt; を連れてきてほしいと訴えていた。入居の時に数人のスタッフに施設を案内されたけど、おそらく、ここに配置されているのは彼らだけだ。だから、専属で私たちの世話をする（まさに給仕のような）係が付けられることはなかった。&lt;/p&gt;
&lt;p&gt;妹は無口で暗いナースたちを怖がっている。 &lt;em&gt;常識&lt;/em&gt; に反するからだ。ただ、最近は諦めたのか「負けないで頑張ろうね、お姉ちゃん！」なんて悲劇のヒロインじみたことを言うようになった。&lt;/p&gt;
&lt;p&gt;笑える。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私があのとき団地を出ることを &lt;em&gt;許された&lt;/em&gt; のは、単に私が妹よりも年上だったからだ。または、私にしあわせを醸成する素質がなかったからだ。&lt;/p&gt;
&lt;p&gt;違う言い方をすれば、妹は幼かったので団地を出ることができなかった。つまり、妹がシステムに向いているかを判断するにはまだ時期が早かったのだ。&lt;/p&gt;
&lt;p&gt;私が家族の許を離れる少し前に、妹に初潮が来たことは、私と母だけの秘密だ。母は娘を二人共失いたくはなかったから、そして私も、ある程度システムに組み込まれていたから、そういう自己犠牲は仕方がなかった。&lt;/p&gt;
&lt;p&gt;団地での生活の中心には、いつもクォーツが据えられていた。各家庭に配置されたハート型のローズ・クォーツは、ほのかにピンク色の燐光をまとっており、触れると内部の光がはうように動くのが分かった。&lt;/p&gt;
&lt;p&gt;このクォーツが、みんなのしあわせの象徴だという。触れると光と共に流れ込んでくる痺れるような感覚を、みんなは「しあわせエネルギー」と呼んでいた。&lt;/p&gt;
&lt;p&gt;表面に彫られた「ねがいがかなう」の文字は不気味に輝いていて、見つめるたびに後ろめたい感覚に襲われた。教室の花瓶が粉々に砕かれているのを発見してしまったような、誰かの内臓が不用意に露出しているのを盗み見てしまったような、そんな感覚。&lt;/p&gt;
&lt;p&gt;団地に &lt;em&gt;収容&lt;/em&gt; された人たちは、一日に何度か（改正が繰り返されているが、私が家を出る前は二回で済んでいた）このクォーツに触れることを &lt;em&gt;奨励&lt;/em&gt; されていた。手のひらを押し付けるように、三秒間だけ触れるのだ。&lt;/p&gt;
&lt;p&gt;クォーツには目を開けたまま触れても良いが、一日に二度以上見つめながら触れてはならない。クォーツが放つ光が強くなるからだ。&lt;/p&gt;
&lt;p&gt;各家庭に渡されたクォーツは心の拠り所であり、娯楽であり、ある種の監視カメラでもあった。クォーツを安置するクッションの周りはいつでも清潔に保たれており、全員でその神聖さを保ち続けている。人々はクォーツに触れることで団結していたし、それが団地のＨＰＳ向上の重要なファクターとなっていた。&lt;/p&gt;
&lt;p&gt;タバコや酒をする人はそんなにいない。それがしあわせではないからだ。クォーツに触れた時に得られるある種の快感がそれらの代わりになっている、という主張は許されなかった。&lt;/p&gt;
&lt;p&gt;私を見守ってくれるクォーツに一日に何度でも触れたいと思う。しあわせだからだ。大切な家族を、自分の共同体を、この国をいつも心から好きだと思う。しあわせだからだ。&lt;/p&gt;
&lt;p&gt;嘘をつかない、不純なことはしない、クォーツを疑わない。しあわせではないからだ。どんなことがあっても、自分の団地の外に出ようとは思わない。しあわせではないからだ。&lt;/p&gt;
&lt;p&gt;国民全員を効率的にしあわせにするには、国民を集めて統一的な生活を送らせるのが最適な選択だった。少なくとも、全国の二十の巨大な団地では、そういうことが強いられていた。&lt;/p&gt;
&lt;p&gt;エリアの周りは川で囲まれていて、無邪気な男子たちは毒の沼だと呼んで騒いでいた。私は汚水が垂れ流しになっているだけだと分かっていたけど、決してそう主張することはなかった。先生がそういうデマを叱りつけなかったからだ。&lt;/p&gt;
&lt;p&gt;おそらく、私みたいな子は他にもいただろう。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;建物が赤く塗られている。Ａ棟がすっかり塗り潰され、Ｂ棟も半分以上ペンキで塗り上げられていた。&lt;/p&gt;
&lt;p&gt;その変化に最初に気付いたのは妹だ。数週間前から始まったそれは、模様替えというには唐突で、しかも派手すぎた。&lt;/p&gt;
&lt;p&gt;しかし、こういうイレギュラーに特別弱いはずの妹は、むしろそのカラーリングを歓迎した。&lt;/p&gt;
&lt;p&gt;「お姉ちゃん、赤ってテンションが上がる色なんだよ？」&lt;/p&gt;
&lt;p&gt;「それは分かるけど、やっぱり急すぎるよ」&lt;/p&gt;
&lt;p&gt;私たちの部屋はＣ棟の二〇二〇号室だ。朝から晩まで良く陽の当たる部屋で、レースのカーテンが作るふわふわとした影が波のように打ち寄せる。&lt;/p&gt;
&lt;p&gt;遮るものがないおかげで、砂浜から水平線まですっぽり窓に収まっていた。窓からは赤い外壁が目に入らないから、少しだけ安心する。&lt;/p&gt;
&lt;p&gt;小さなシングルベッドが部屋の両側に置かれ、その向こうには申し訳ばかりの小さな机が打ち付けられている。それ以外には、ごくシンプルな壁掛け時計に白い壁と木質の人工床くらいしか見えない。&lt;/p&gt;
&lt;p&gt;妹が「きちんと片付けて」と言ってくるから、机には日記やペンを置くこともできない。生活感は嫌われていた。団地では、いつもそういう不必要なまでの整理整頓を &lt;em&gt;励行&lt;/em&gt; していたのを思い出す。&lt;/p&gt;
&lt;p&gt;食事は一日に三回、配膳車に載せられて部屋の外に置かれている。少なくとも、このフロアには他に誰もいないようだった。メニュー自体に文句はないけれど、背中合わせでとる食事はそんなに気分の良いものではない。&lt;/p&gt;
&lt;p&gt;妹はたまに早起きして、配膳係のナースに向かって執拗にクォーツへのアクセスを請願していた。&lt;/p&gt;
&lt;p&gt;「まだ、かかるんですか。はい……いえ、分かりました」&lt;/p&gt;
&lt;p&gt;クォーツに触れないと分かった妹は、決まってそわそわと落ち着かない様子を見せる。それは、彼女にとって相当なストレスだっただろう。 &lt;em&gt;明るくて元気な妹&lt;/em&gt; のイメージは、彼女自身をしっかり縛り付けていた。&lt;/p&gt;
&lt;p&gt;だから私は彼女の整った爪がぼろぼろになる前に、海を歩こうと言って砂浜に連れ出すのだ。&lt;/p&gt;
&lt;p&gt;三キロメートルほどの砂の散歩道を何度か往復し、日が落ちるまで座り込んで波の音を聴く。十日に一回くらいは、そういう何もしない日があった。&lt;/p&gt;
&lt;p&gt;本当に何もしない休息日は、むしろ私のほうがそわそわする。 &lt;em&gt;奉仕&lt;/em&gt; に駆り出されている間は、休息日さえもしあわせへの活動に当てることを強いられていたから。&lt;/p&gt;
&lt;p&gt;「お姉ちゃんは、クォーツに触れなくても平気なの？」&lt;/p&gt;
&lt;p&gt;「そうね。私は、しあわせじゃなくなったから」&lt;/p&gt;
&lt;p&gt;「……そっか。また、しあわせになれるといいね」&lt;/p&gt;
&lt;p&gt;私がクォーツに触れる必要がないことを告げると、妹は心から憐れむような表情になる。妹だけではなく、たぶん、団地の誰もがそうするだろう。&lt;/p&gt;
&lt;p&gt;団地を離れていなかったら、私もこうなっていたかもしれない。 &lt;em&gt;落ち着いたお姉ちゃん&lt;/em&gt; としての、私に。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私が団地――エリアの外に出て命じられた仕事は、しあわせの生産と、二酸化炭素の削減だった。人体実験じみたしあわせの抽出は非常に過酷で、私もＢ子も疲弊しきっていた。彼女は今どうしているだろう。&lt;/p&gt;
&lt;p&gt;出身は同じだったはずだけど、第五エリアに戻ってからＢ子を見かけたことはなかった。まだ、しあわせを搾られて続けているのかもしれない。&lt;/p&gt;
&lt;p&gt;しあわせが空っぽになると、巨大な勢力に反抗する心も失われるものだ。これらの手法のどれだけがクォーツに取り入れられるのか想像すると、苦しさが紛れた。&lt;/p&gt;
&lt;p&gt;私が奉仕から解放されて家に帰ると、家を出る前とは別の給仕が付けられていた。給仕の任期はそう長いものではないし、私が戻ってくるまでの数年の間に三度は変わっただろう。均質化プログラムを正しく経た給仕は、後頭部に刻まれたアドレスでしか区別できない。&lt;/p&gt;
&lt;p&gt;新しい給仕は、私の指令を聞こうとはしなかった。それも当然で、私にまだクォーツにアクセスできる権限がなかったせいだ。外から来た私が触るとクォーツが汚れるらしく、 &lt;em&gt;治療&lt;/em&gt; が済むまで通常の生活は禁じられていた。&lt;/p&gt;
&lt;p&gt;クォーツへの接触は禁止されていながらも、両親は私がどうしても触りたがるだろうと思っていたらしい。憐れむような目つきが、その勘違いを良く物語っていた。&lt;/p&gt;
&lt;p&gt;でも、触ろうとするそぶりも見せないと分かった後は、触りたがらないことすら忌み嫌っていたけれど。&lt;/p&gt;
&lt;p&gt;「お姉ちゃん、ご飯だって」&lt;/p&gt;
&lt;p&gt;「……うん、今行くよ」&lt;/p&gt;
&lt;p&gt;変わったのは、給仕だけではなかった。&lt;/p&gt;
&lt;p&gt;私の食器がなくなっていたのだ。妹とお揃いだったピンク色の茶碗は、たった一つしか残っていなかった。客用の食器は白くて、まるで空っぽの私の心を表しているみたいで。&lt;/p&gt;
&lt;p&gt;父も母も私の涙を気味悪がって近付こうとはしなかった。たぶん妹も、私の涙に触れたらしあわせが失われると本気で思っていただろう。&lt;/p&gt;
&lt;p&gt;「あのさ……私って、そんなに汚い？　そんなにしあわせが大事？」&lt;/p&gt;
&lt;p&gt;立ち上がった私は、椅子が倒れるのも気にせずにリビングへ向かう。汚い涙を流しながら歩く私の一挙手一投足に、みんな困惑した視線を向けたままだ。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;彼ら&lt;/em&gt; は私から搾り過ぎていた。心がすっかりひび割れてからこんなところに戻されても、どうしようもない。&lt;/p&gt;
&lt;p&gt;リビングに鎮座したローズ・クォーツを持ち上げる。体積の割に重く感じる &lt;em&gt;エセ&lt;/em&gt; 御神体は、手に乗せると光が強くなり、重心がぐるぐると動いているのが分かる。ぶちぶちとコードがちぎれ、そこでやっと、母の悲鳴と父の怒鳴り声がほぼ同時に響いた。 &lt;em&gt;よそ者&lt;/em&gt; の私が何をしようとしているのか、本能じみた部分で感じ取ったのだろう。&lt;/p&gt;
&lt;p&gt;しかし、父の身を挺した飛び込みは間に合わなかった。&lt;/p&gt;
&lt;p&gt;持ち上げたクォーツを床に叩きつけると、重いものがぶつかる鈍い音と、結晶が割れる鋭い音が辺りに響く。クォーツからはピンク色の液体が漏れ出し、それがすぐに紫色に変わって結晶状に固まるのだ。いびつな自己修復が自らの神聖さをかき消して、醜いものに変えていくのがたまらなく面白かった。&lt;/p&gt;
&lt;p&gt;父は共同体での &lt;em&gt;死&lt;/em&gt; を危惧したのか、すぐに私を犯罪者として通報した。私たちの移送措置が決定されたのは、それから間もなくのことだ。&lt;/p&gt;
&lt;p&gt;娘に執着していた母さえも、私と目を合わせようとはしなかった。私たちを見送る時の両親の優しい笑顔は、監視カメラに向けたアピールだったと思う。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;夏の終わりに差し掛かり、また大きな異変が訪れた。&lt;/p&gt;
&lt;p&gt;ピンク色の海に最初に気付いたのは、また妹の方だった。真夜中に私を起こした妹が、興奮しきった様子で海の様子が変だと告げたのだ。&lt;/p&gt;
&lt;p&gt;ちょうどこの前建物の全面が赤く塗られてしまったから、おそらく寝ぼけて混同しているのだろう。そう思って相手にしなかったけれど、妹はそれからずっと起きて海を見ていたらしい。&lt;/p&gt;
&lt;p&gt;朝になって窓から外を眺めてみると、妹の妄想が現実だったと思い知ることになる。&lt;/p&gt;
&lt;p&gt;浜辺に降りると、鮮やかな色の海水にたくさんのクラゲがうようよ浮かんでいる。海水が汚染されているにも関わらず、透明度はほぼ変わらない。クラゲの向こうに海底の砂まで良く見えていた。&lt;/p&gt;
&lt;p&gt;海水は黄灰色の砂にも良く染み込んでおり、夏らしい砂浜には団地を囲う &lt;em&gt;毒沼&lt;/em&gt; のように乾いた汚れがこびりついている。&lt;/p&gt;
&lt;p&gt;夏の終わりの風物詩が、こんなにも異様な風景になるとは思わなかった。&lt;/p&gt;
&lt;p&gt;「あんまり近づくと、刺されるよ」&lt;/p&gt;
&lt;p&gt;「でも、すごく落ち着くよ。お姉ちゃんもこっち来て」&lt;/p&gt;
&lt;p&gt;「いいよ、私はここでいいから」&lt;/p&gt;
&lt;p&gt;座り込む私をよそに、妹は大はしゃぎで水遊びを楽しんでいる。裸足でぱしゃぱしゃと水を跳ね上げては、身体中に水しぶきを浴びて院内着に不規則な模様を刻んでいく。&lt;/p&gt;
&lt;p&gt;海水はほぼ均質にピンク色で、水面と空が重なって紫色の水平線が広がっていた。水の中にはクラゲと一緒にときどき紫色の塊が浮かんでおり、鉱石が割れる不吉な光景を思い出す。これ、もしかして――&lt;/p&gt;
&lt;p&gt;「お姉ちゃん、これ、クォーツじゃない？」&lt;/p&gt;
&lt;p&gt;妹が、爪先に感じる違和感を拾い上げようとする。手で砂ごと掬い上げる動きがスローに感じられて、今からでも妹の手を止められるのではないかと錯覚してしまう。もともとここはごみ一つない綺麗な砂浜だったから、海水の変化と共に訪れたその異物に嫌な予感がした。&lt;/p&gt;
&lt;p&gt;「見て見て！　やっぱり、クォーツだよ！」&lt;/p&gt;
&lt;p&gt;指の隙間から砂が零れ落ちていくうちに、その結晶の姿があらわになっていく。&lt;/p&gt;
&lt;p&gt;砂に埋まった三センチメートルほどの無造作な球体が、空気に晒されて光りだす。その塊は、ビーチグラス特有のマットな質感を備えていなかった。むしろつやつやとしており、人工物じみた光を良く反射している。さらに、そんなぎらぎらとした反射光だけではなく、内部から漏れ出る光がゆらゆらと砂に落ちて揺れていた。&lt;/p&gt;
&lt;p&gt;ただの漂着物ではないのは明らかだ。&lt;/p&gt;
&lt;p&gt;しかし、妹は漂着物の真贋を疑うべくもなく、満面の笑みでクォーツを握りしめた。一日に数秒だけ、しかも目を瞑って触らなければならないものを、こんなに摂取し続けたらどうなるかは考えていないようだった。&lt;/p&gt;
&lt;p&gt;「すごい、これ、いつもよりもしあわせエネルギーが伝わってくる……」&lt;/p&gt;
&lt;p&gt;手の隙間からは、砂浜に差すほどの強い光が飛び出し続けている。もはや妹が正気を保てるようには思えない。&lt;/p&gt;
&lt;p&gt;十数秒か、あるいは数分か。みんながこの光景を見たら、きっと妹を天使だとでも思うのだろう。&lt;/p&gt;
&lt;p&gt;妹が手のひらを開くと、クォーツが放つ光は元の弱々しい光に戻る。心なしか、内側に潜む光の動きの周期がさっきよりも早くなっているように見えた。&lt;/p&gt;
&lt;p&gt;「ふー……満足。お姉ちゃんもする？」&lt;/p&gt;
&lt;p&gt;私に歩み寄る妹の足がおぼつかない。「大丈夫だよ、お姉ちゃん」と言いながら砂浜をふらふらと歩く姿は、団地で初めに教わる &lt;em&gt;しあわせ酔い&lt;/em&gt; の症状そのものだった。&lt;/p&gt;
&lt;p&gt;「私は、いらないってば」&lt;/p&gt;
&lt;p&gt;「そっかー。気持ちいいのになぁ」&lt;/p&gt;
&lt;p&gt;すっかりしあわせエネルギーを &lt;em&gt;補充した&lt;/em&gt; 妹は砂浜に横たわり、太陽にクォーツを透かしてみせた。妹の顔には紫の光が差して、まるで海の底で横たわっているようだ。&lt;/p&gt;
&lt;p&gt;「食器のこと、ごめんね」&lt;/p&gt;
&lt;p&gt;「何の話？」&lt;/p&gt;
&lt;p&gt;「お姉ちゃんのお茶碗、捨てちゃったのは私なの」&lt;/p&gt;
&lt;p&gt;呆けた顔の妹が、口だけを動かして声を出している。&lt;/p&gt;
&lt;p&gt;奇妙なことだ。妹の記憶がどこからか呼び起こされている。何年も前に終わったはずのことを、何ら罪悪感なく行われたはずのことを、わざと揺さぶるように。&lt;/p&gt;
&lt;p&gt;何がこんなことを喋らせているのか。&lt;/p&gt;
&lt;p&gt;誰が、私を泣かせようとしているのか。&lt;/p&gt;
&lt;p&gt;「いいよ……別に」&lt;/p&gt;
&lt;p&gt;「ごめんね、お姉ちゃん」&lt;/p&gt;
&lt;p&gt;そう言って、妹が指で私の目尻をなぞる。 &lt;em&gt;汚れた&lt;/em&gt; 涙を掬って口に運ぶ。それから、妹は目を閉じた。&lt;/p&gt;
&lt;p&gt;「お姉ちゃん。次は、ちゃんとするからね」&lt;/p&gt;
&lt;p&gt;「そうね。だから、もうクォーツなんて――」&lt;/p&gt;
&lt;p&gt;どろり。そのまま、妹は溶けて無くなった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;妹がいなくなってすぐに、私はこのリゾートから去ることになった。大赦と書かれた命令書を見ても、妹を犠牲にして私が &lt;em&gt;許された&lt;/em&gt; のは明白だった。&lt;/p&gt;
&lt;p&gt;団地に戻ると、父と母もいなくなっていた。より正確には、第五エリアがほぼ壊滅していた。私の家族が見せしめに処罰されたわけではなく、まるで団地全体がもう用済みとなって廃棄されたかのように荒れ果てている。&lt;/p&gt;
&lt;p&gt;「競技場から開会式の様子をお伝えします。こちら、セントラル・トラックでは、全国三十二箇所で一斉に打ち上げる花火のタイミング調整が終了し――」&lt;/p&gt;
&lt;p&gt;私が壊したローズ・クォーツも、床の傷だけを残してなくなっていた。&lt;/p&gt;
&lt;p&gt;「これは、ＤＡ……失礼しました、二〇二〇年の集大成にふさわしいオープニングとして――」&lt;/p&gt;
&lt;p&gt;久しぶりに見たテレビのニュースでは、聞き慣れない数字の暦を読み上げていた。アナウンサーも慣れていない様子で、何度もＤＡＰ年と言い間違えている。やっと、止まっていた歴史が動き出すのだ。&lt;/p&gt;
&lt;p&gt;オリンピックのことは、伝説上のお祭りとして良く知っていた。夏の始めから夏の終わりまで開催され、しあわせが嵐となって吹き荒れて人々に祝福を与えると。&lt;/p&gt;
&lt;p&gt;でも、リゾートでの夏の始まりは何事もなく過ぎ去っていた。だから、今年ではないと思っていたのに。&lt;/p&gt;
&lt;p&gt;酷暑のせいでオリンピックの開催が延期された（たぶんこれもしあわせエネルギー上の調整だろう）と知ったのも、家に戻ってからのことだ。&lt;/p&gt;
&lt;p&gt;今思うと、そこら中が赤く塗られていた異常な光景も、開催にかかる儀式だったのかもしれない。&lt;/p&gt;
&lt;p&gt;「さぁ、打ち上げの瞬間です！　十、九、八、七、――」&lt;/p&gt;
&lt;p&gt;打ち上げ花火を模したミサイルは、人々を効率的に殺傷する。強すぎるしあわせエネルギーは、実験室で何度も事故を起こしていた。&lt;/p&gt;
&lt;p&gt;私はどんなしあわせを撃ち込まれても、きっと満たされることはないだろう。でも、会場に集まった人々はこれからしあわせミサイルに酩酊し、そのまま死んでいく。&lt;/p&gt;
&lt;p&gt;誰かが死んでも、この粛清が終わっても、私はそのまま暮らしていく。暮らさなければならない。&lt;/p&gt;
&lt;p&gt;「Ａ子。私たち、しあわせじゃなくて良かったね」&lt;/p&gt;
&lt;p&gt;花火は、思っていたよりもずっと明るかった。クォーツが放つ燐光をかき消すようなその光に、私は何を託せばいいのだろう。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>百合よ、さようなら</title><link href="https://ama.ne.jp/post/goodbye-lily/" rel="alternate"/><published>2018-09-11T09:54:00+09:00</published><updated>2018-09-11T09:54:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-09-11:/post/goodbye-lily/</id><summary type="html">&lt;p&gt;さようなら、好きでした&lt;/p&gt;</summary><content type="html">&lt;p&gt;かつて、百合は驚きと輝きをもって私を迎えてくれました。&lt;/p&gt;
&lt;p&gt;それからやや経って、百合に対する大げさな「概念言葉」とでも言うべき表現が広まる様子を眺めながら、「百合」とは何なのかと考える機会がありました。そして、シスジェンダー女性同士の関係にこだわる無意味さについて言及を続け、いつの間にか飽きていました。あそこで行われているのは、無批判な受容と無意味な連帯、あとは論理にくるんだお気持ち表明ばかりです。&lt;/p&gt;
&lt;p&gt;今のところ、百合は、見ている限りでは「シスジェンダー女性同士の関係を描いたもの」のようです。少なくとも性自認への言及はないですし、トランスジェンダーに対しても、おそらくそうです。女装キャラクターが関係の一端を担っていれば、性自認やその推移に対する言及なく必ず排斥されています。ただし、女装キャラクターが参加する百合を認める一派の中にも、性自認に対して言及している人はいないように見えます。&lt;/p&gt;
&lt;p&gt;「百合ではない」物語に「百合ベクトル」とでも呼ぶべき方向から光を当てる（これは二次創作寄りの発言ですね）ことが百合の楽しみだと表現する人もいます。それはおそらく正しい。ただ、そういう個人の取り組みを、出版社や本屋が一丸となって推進し、それ以外の要素を捨ててまとめるのが正しいのかは僕には分かりません。&lt;/p&gt;
&lt;p&gt;百合から解放せよというのは過激であるにせよ、「百合」の中の作品を適切なサブジャンルに分ける試みはあまり重要視されていないような気がします。ジャンルではなくタグを付けられたら便利そうという仲谷先生の発言&lt;!--1036832244432658432--&gt;に気を留めている人はそんなに多くない様子でした。&lt;/p&gt;
&lt;p&gt;「百合の本質」とでもいうものが関係の性別に宿るのだとすれば、お互いの性別にこだわってそれ以外を排斥する異性愛規範とそう変わるところはないのです。我々が百合の対極に置くべきなのは異性愛規範であって、異性愛ではないと思っています。「禁断の愛」や「百合以上の関係」という文言が前提としているのは「異性愛規範」であり「異性愛」ではありません。あなたが異性愛そのものが嫌いだというならば、同性同士の関係とは何が違うのか教えてほしい。&lt;/p&gt;
&lt;p&gt;この流れで言ってしまうと、異性愛規範に依った異性愛が性欲や恋愛関係に流れやすい&lt;!--1036317311794212864--&gt;というのも、そんなに間違ったことを言っているとは思えない。これに対する反論が、異性愛規範という概念を知らない人間によって行われているように見えてならない。&lt;/p&gt;
&lt;p&gt;百合が恋愛の程度を示す軸1本で書き切れる&lt;!--1036834815578791936--&gt;なら、おそらく百合は恋愛モノの一派なのでしょう。自分が寄り添うジャンルについて、アンチの存在に定義を委ね&lt;!--1036842698932543488--&gt;ているとしたら、それは最も笑われるべき定義でしょう。あなた方が関係を構成するキャラクターの身体的性別や性器の形質にこだわり続けながら、なおも大げさな表現で百合の本質や真理と言ったものに言及する限り、それは性欲の婉曲表現にしかならないでしょう（それでいいというなら、それでよかったです）。「あなたが好き」だという事実を「定義」だと勘違いしているのならば、それを意識するだけでするべきことはおしまいです。&lt;/p&gt;
&lt;p&gt;こんな話をしても、僕はまたシスジェンダー女性の関係を扱うのでしょう。ただ、それが百合の全てではないことを意識しながら。そもそもこれは、シスジェンダー女性同士の関係を描くことを否定する論理ではないのですから。&lt;/p&gt;
&lt;p&gt;実は、百合の定義に言及することは何ら必要な活動ではないのです。本当は、個別の作品を個別に楽しめばよい。百合の定義に割くエネルギーもないままに、誰かが使う百合の定義を無批判に受け入れて無を語る人間に飽き飽きしてしまった。&lt;/p&gt;
&lt;p&gt;僕は単に、最初に得た驚きと輝きを捨てたくはなかったのです。そして、みなさんが「百合の本質」と呼んでいる何かを見つめるための舞台を作りたかったのでしょう。結局僕も、寄り添っていきたかったのです。&lt;/p&gt;
&lt;p&gt;百合は僕を人間にはしてくれませんでした。でも、ありがとう、百合。ありがとう、世界。&lt;/p&gt;
&lt;p&gt;P.S. 「物語に自分が入らないという保証」が百合周辺以外でそんなに重要視されていないことは今回知った。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>ストロベリィドール 3</title><link href="https://ama.ne.jp/post/strawberry-doll-3/" rel="alternate"/><published>2018-08-25T17:32:00+09:00</published><updated>2018-08-25T17:32:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-08-25:/post/strawberry-doll-3/</id><summary type="html">&lt;p&gt;後編&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/strawberry-doll/"&gt;ストロベリィドール&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="4"&gt;4&lt;/h2&gt;
&lt;p&gt;夏の夜に包み込まれた部屋で、私達はベッドの上にいた。&lt;/p&gt;
&lt;p&gt;シャワーを浴びているうちに長くなると思っていた雨はもう止んでいたらしく、辺りはすっかり静まっている。陽が沈んだ後はエアコンの動きも弱くなって、隣の部屋も静寂を保っていることだろう。&lt;/p&gt;
&lt;p&gt;向かい合ってベッドにぺたりと座る二人。自分の荒い息遣いと、文香の静かな息遣いだけが純粋に混じりあって、一つの曲のようにも聞こえてくる。&lt;/p&gt;
&lt;p&gt;と、文香が私の頬に手を当てて自分を見るように促した。シャワーを浴びてすぐの熱い頬がひんやりとして気持ちいい。&lt;/p&gt;
&lt;p&gt;彼女はそろそろ始めましょう、と言わんばかりに真剣な目をしている。&lt;/p&gt;
&lt;p&gt;「ふ、文香。やっぱりこんなの、恥ずかしいよ」&lt;/p&gt;
&lt;p&gt;「今さら？　私なりに、きちんとお誘いは出したつもりだったんだけど」&lt;/p&gt;
&lt;p&gt;お風呂あがりの上気した顔で、文香は小首を傾げた。彼女は自分で持ってきた黄色いチェックの綿パジャマに身を包んでいる。前開きの長袖のボタンは上二つが開けられて、たまにちらちらと覗く胸元の白い肌が眩しく見えた。&lt;/p&gt;
&lt;p&gt;どうして着替えがあるのと訊いてみたら、準備がいいでしょと笑うばかりだった。始めからこうなることが分かっていたのだろうか。&lt;/p&gt;
&lt;p&gt;「やっぱり、お人形としてるようなことでも、私とするのは恥ずかしい？」&lt;/p&gt;
&lt;p&gt;「だって、セフレとか良くないって言ったその日に、これだよ？」&lt;/p&gt;
&lt;p&gt;なんか私が流されやすい女みたいで嫌だ。もちろん文香が相手だからなんだけど。&lt;/p&gt;
&lt;p&gt;「本心からの反論じゃなかったってことでしょう？　紫織はえっちだから」&lt;/p&gt;
&lt;p&gt;「文香には、純粋な乙女の気持ちが分からないよ」&lt;/p&gt;
&lt;p&gt;「優柔不断な恥ずかしがり屋を乙女って言うなら、そうなのかもね」&lt;/p&gt;
&lt;p&gt;くすくすと笑いながら、文香は私の頬から手を離して言葉を続ける。&lt;/p&gt;
&lt;p&gt;「じゃあ、紫織が恥ずかしくないように私から脱ぐわね」&lt;/p&gt;
&lt;p&gt;そう言って、文香は自分のパジャマのボタンに手を掛けた。ぷつぷつと錠前が一つずつ外されていって、徐々に黄色い布地の下に隠れた白い肌と淡い色の下着があらわになる。&lt;/p&gt;
&lt;p&gt;「あ、あ……」&lt;/p&gt;
&lt;p&gt;ちらりちらりと、ほんのりと赤くなった肌が見える度に、私の目がそちらに向いてしまう。文香もその視線が分かっているらしく、ボタンをゆっくり外したり、時折裾をめくったりして私を焦らす。へそやくびれたウエストラインを見せつけられて挑発される度に、シャワーのせいでほかほかとした私の身体に別の火照りが加えられていく。&lt;/p&gt;
&lt;p&gt;ボタンが全て外されると、文香は最後にするり、と腕を抜いてすっかり上着を脱いでしまった。腕から肩にかけての美しい白いラインに、私は溜息が出る。&lt;/p&gt;
&lt;p&gt;「文香、綺麗……」&lt;/p&gt;
&lt;p&gt;「やっぱり、あのお人形とは違う？」&lt;/p&gt;
&lt;p&gt;「当たり前だよ。文香のほうが、もっと綺麗」&lt;/p&gt;
&lt;p&gt;「ふふっ、嬉しい」&lt;/p&gt;
&lt;p&gt;文香の暖かそうな肉体には、人形のそれとは違って何よりも命を感じることができた。文香だってアヤだって、どちらも綺麗だけど、今は文香に見とれていたい。&lt;/p&gt;
&lt;p&gt;「さて、私は脱いだけど、紫織はどうするの？」&lt;/p&gt;
&lt;p&gt;「……ま、まだだよ文香。脱ぎ終わってないじゃん」&lt;/p&gt;
&lt;p&gt;「あら、下も脱いでほしいの？　いやらしい。純粋な乙女なんて、よく言ったものだわ」&lt;/p&gt;
&lt;p&gt;そう言って文香は立ち上がり、ズボンに手を掛ける。今度は焦らすことなく、一気にその手を下へと引いた。引き締まった太ももやふくらはぎも目に入るけれど、ちょうど顔の高さにあるのは下着に包まれた彼女の聖域だ。&lt;/p&gt;
&lt;p&gt;「ふ、文香っ！いい、よね？」&lt;/p&gt;
&lt;p&gt;私は思わず文香の股に顔を埋めてしまう。すっかり焦らされて、もう歯止めが効かなくなっていた。鼻から空気を吸い込むと、少しだけ湿った匂いがする。&lt;/p&gt;
&lt;p&gt;「させてあげてもいいわ。でも、条件があるの」&lt;/p&gt;
&lt;p&gt;条件、という言葉に私は文香の顔を見上げる。蛍光灯の逆光が表情を読み取るのを邪魔した。こうして彼女を見上げて不思議そうな表情を浮かべている間も、文香だけは明るく光の当たる私の表情の移り変わりをよく見ているのだろう。&lt;/p&gt;
&lt;p&gt;「私のことは、アヤって呼ぶの。いい？」&lt;/p&gt;
&lt;p&gt;そして文香は、その条件を伝える。無理難題を出して諦めさせようというつもりではないらしいけど、それを受け入れるには少し抵抗があった。&lt;/p&gt;
&lt;p&gt;「ど、どうして？」&lt;/p&gt;
&lt;p&gt;「昔はあなたにそう呼ばれていたんだもの。呼ばれたいって思うのはおかしいかしら？」&lt;/p&gt;
&lt;p&gt;「おかしくは、ないけど。じゃあ、人形のアヤはどうするの？」&lt;/p&gt;
&lt;p&gt;おかしくはない。でも、あの頃を思い出すのはお互いに辛いことだと思うし、昔のあだ名だとしても今人形に付けられているような名前を欲しがったりするだろうか。まるで生き物でもない人形に嫉妬しているみたいに。&lt;/p&gt;
&lt;p&gt;「私がいるのに、お人形さんのことを考えてるのね」&lt;/p&gt;
&lt;p&gt;「そ、そうじゃないよ。ただ……」&lt;/p&gt;
&lt;p&gt;「いいわよ。紫織がそんなにお人形とえっちしたいなら、今日は諦めるわ」&lt;/p&gt;
&lt;p&gt;迷っていると、文香が脅しにも近い言葉で私を突き放そうとする。興奮しきった今の私に、おあずけの宣言は脅しでしかない。文香にもそれは分かっているのだろう。&lt;/p&gt;
&lt;p&gt;物理的に見下されている状況が、そのまま二人の力関係になってしまったみたいだ。&lt;/p&gt;
&lt;p&gt;「あ、アヤっ！早く、しよ？」&lt;/p&gt;
&lt;p&gt;「いいわよ、シオちゃん。疲れちゃうから、座ってもいい？」&lt;/p&gt;
&lt;p&gt;私は媚びるような甘えた声で彼女に擦り寄った。口から出たアヤという名も、返ってきたシオちゃんという声も、私の中を駆け巡って胸を締め付けるような快感をもたらす。&lt;/p&gt;
&lt;p&gt;太ももに回していた腕を離すと、アヤは立ったままパンティを脱いで、それから私の前に脚を開いて座った。&lt;/p&gt;
&lt;p&gt;あらわになったアヤの秘所は、いやらしくてらてらと濡れていた。私の視線に興奮してくれていたのだろうか。一舐めすればいくらでも甘い露が溢れてきそうな光景に共鳴したせいか、私の器からも大きな波を立てた情欲が溢れていくのを感じる。&lt;/p&gt;
&lt;p&gt;「ほら。浅ましく犬みたいに這わないと、私の性器は舐められないわよ？」&lt;/p&gt;
&lt;p&gt;アヤのそれにむしゃぶりつこうとしたまさにその時、犬みたいに、と言われて私の身体が動かなくなる。急にこの状況が恥ずかしくなった。&lt;/p&gt;
&lt;p&gt;「聞こえてるの？　浅ましく犬みたいに這って、私を気持ちよくするのよ」&lt;/p&gt;
&lt;p&gt;「ね、ねぇ？　せめて、で、電気ちっちゃくして？」&lt;/p&gt;
&lt;p&gt;「ダメよ。あなたの姿がよく見えないもの。どうするの？　するの、しないの？」&lt;/p&gt;
&lt;p&gt;「……し、します」&lt;/p&gt;
&lt;p&gt;アヤの攻勢は止まない。結局私は、犬のように浅ましくアヤの性器を舐めることを意識させられながら、それをすることになってしまった。最終的に一番恥ずかしくて、屈辱的な選択肢を選ばされてしまったのだ。&lt;/p&gt;
&lt;p&gt;ぺろぺろと、舌で淫らな肉に突付くように舐めまわすと、とろけた汁が口に入ってくる。しょっぱいような、酸っぱいような、甘いような、不思議な味がするけれど、決して嫌な味ではない。いつまでも口で転がしていたくなる。&lt;/p&gt;
&lt;p&gt;でも、大事なのはそこではない。私の興奮の根源は、この味自体よりも、屈辱的な快感よりも、むしろアヤの愛液が身体に入っていっているという事実にあった。大好きな彼女と一つになれるかのような錯覚に、私はくらくらしてしまう。&lt;/p&gt;
&lt;p&gt;愛おしくなってそこに口付けすると、唇にぬめりが絡みついてそれがまた心地いい。そのぬめりを舌で舐めとると、口の中でまたあの味が広がるのだ。&lt;/p&gt;
&lt;p&gt;「唇に付いたのまで舐めちゃって……っふぁ、まるで変態の舐め犬ね」&lt;/p&gt;
&lt;p&gt;舐め犬、と言われて身体が熱くなる。舌先まで熱くなってしまったような気がして、それがアヤに伝わってしまわないかびくびくする。&lt;/p&gt;
&lt;p&gt;「犬って言われて、興奮しちゃった？　舐め方が激しくなったわ……んっ」&lt;/p&gt;
&lt;p&gt;時折漏れるアヤの嬌声に、はぁ、はぁ、と息がどんどん荒くなる。これも犬のようだと罵られることを考えると、余計に息遣いが激しくなってしまう。べろべろとなりふり構わず舐めていると、さっきよりも白くていやらしい蜜が大量に溢れてくる。アヤも気持ちよくなってくれてると思うと、それだけで奉仕しがいがあるというものだ。&lt;/p&gt;
&lt;p&gt;「シオちゃん、自分のを触りながら舐めてもいいのよ？　全部見ててあげるから」&lt;/p&gt;
&lt;p&gt;ほぼ命令じみた提案に、私は素直に従う。&lt;/p&gt;
&lt;p&gt;自分のいやらしいところに触れると、驚くほどに濡れそぼっていた。と同時に、電撃のような快感が一閃し、私は小さな悲鳴を上げてしまう。その痺れるような快楽を求めて手でまさぐりながらアヤの桃色を乱暴に舐め続けると、一人でしてる時とは――人形のアヤとしてる時とも――全く違う快感が体中を駆け巡る。&lt;/p&gt;
&lt;p&gt;「ア、アヤぁ……」&lt;/p&gt;
&lt;p&gt;「シオちゃん、もう飛んじゃいそう？　ずっと焦らしてたもんね」&lt;/p&gt;
&lt;p&gt;私はそれには答えられずに、快感の波に合わせて指の動きを激しくする。自分で慰めている下から、アヤのぬるぬるで犯されている上から、駆け上がってくる気持ちよさを全て絶頂のための刺激に回していく。&lt;/p&gt;
&lt;p&gt;「っ！あっ！んっ……ぁあ……」&lt;/p&gt;
&lt;p&gt;私のいやらしいところから全身にまっすぐ絶頂が突き抜けていって、その残り香が私の全身に残って時々弱いところを突付く。私はその間ずっとアヤの湿った唇にキスをして、その快楽が私を丸ごと覆い尽くさないように舌を蠢かし続けた。&lt;/p&gt;
&lt;p&gt;「……っ、ふぁっ……舐めるの、もうやめてもいいわよ。お疲れ様、シオちゃん」&lt;/p&gt;
&lt;p&gt;「はぁーっ、はぁっ……」&lt;/p&gt;
&lt;p&gt;ばたりと、その場にうつ伏せになる。気持ち良かったみたいね、というアヤの言葉にこくこくと頷きながら、私は肩で息をする。ぞくぞくと、快感の余波が時々身体を走っていくのを感じていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;目を瞑って快感の波が去っていくのを待っていると、頭の上からかちゃかちゃと音がした。アヤが何かしているらしい。今度は道具でも使うつもりなんだろうか。&lt;/p&gt;
&lt;p&gt;しばらくして上を向くと、彼女は右手に何かを持って私を待っていたようだった。&lt;/p&gt;
&lt;p&gt;「あれ、アヤ？　何を持ってるの？」&lt;/p&gt;
&lt;p&gt;「シオちゃん。今から仕上げをするから、見ていてね」&lt;/p&gt;
&lt;p&gt;「仕上げ？」&lt;/p&gt;
&lt;p&gt;そう言うと、アヤは流れるように前腕の辺りをつぅとなぞる。それが小さなナイフだと分かったのは、なぞられた線が赤くなり始めた時だった。&lt;/p&gt;
&lt;p&gt;「な、何してるのアヤっ！」&lt;/p&gt;
&lt;p&gt;「私の血が大好きなシオちゃんに、プレゼントをあげるのよ」&lt;/p&gt;
&lt;p&gt;私は慌てて起き上がる。それとは対照的に穏やかな表情をしたアヤは、血の付いたナイフを持たせるにはあまりに不釣り合いだった。&lt;/p&gt;
&lt;p&gt;「ば、馬鹿じゃないの！早く手当てしないと」&lt;/p&gt;
&lt;p&gt;救急箱を持ってこようとするけれど、さっきまで犬のように必死で動かしていた身体には思うように力が入らない。その間にも、アヤの左腕からは赤い体液がとくとくと流れている。&lt;/p&gt;
&lt;p&gt;「あら、舐めてくれないの？」&lt;/p&gt;
&lt;p&gt;「そんなことするわけないでしょ、ばかっ！変なばい菌が入ったらどうするのっ！」&lt;/p&gt;
&lt;p&gt;「消毒したから大丈夫よ。唾液には消毒効果もあるっていうし」&lt;/p&gt;
&lt;p&gt;どうしてか、アヤはすっかり落ち着いた様子で私に腕を差し出してくる。&lt;/p&gt;
&lt;p&gt;傷口から垂れようとする雫が蛍光灯の光を反射してきらめいた。それを見た私は、早く手当てをしなきゃいけないはずなのに、ごくり、と唾を飲んでしまう。赤い条を見つめてしまうのをやめられない。&lt;/p&gt;
&lt;p&gt;「そういう問題じゃ――」&lt;/p&gt;
&lt;p&gt;「もっともらしいことばっかり言うのね。そんなにえっちな目、してるのに」&lt;/p&gt;
&lt;p&gt;私の言葉を遮って、アヤはにやりといやらしく笑った。また見透かすような視線で、私自身に私を辱めさせる。&lt;/p&gt;
&lt;p&gt;「あっ、シーツに垂れてしまったわ。もう、早く舐めとってくれないから」&lt;/p&gt;
&lt;p&gt;せっかくシオちゃんのために出した血なのに、という言葉に、私はどうしようもなく興奮して、とうとう傷口の端から落ちようとしている雫を舐めとってしまった。&lt;/p&gt;
&lt;p&gt;「ち、血が収まるまでだからね？　ばか。ほんとに」&lt;/p&gt;
&lt;p&gt;「馬鹿って言われたの、久しぶりね」&lt;/p&gt;
&lt;p&gt;口の中にじわりと鉄の風味が広がる。この雫が、アヤの中をぐるぐる巡っていたものの一部で、今度は私の中を回っていくのだ。こんなに幸せなことがあるだろうか。シーツに二、三滴垂れた血痕を見て、もったいないと思ってしまうほどだ。&lt;/p&gt;
&lt;p&gt;今度は傷口をぺろりと舐める。切れた皮膚の感触と、そこから染む体液が舌先に伝わって、私はまたぞくぞくと背中を走る快感を味わった。&lt;/p&gt;
&lt;p&gt;丁寧に舐め続けると、段々と血の味がしなくなってくる。最後に傷に沿って一撫でしてから、私は満足して傷づくろいをやめた。&lt;/p&gt;
&lt;p&gt;「そう、アヤは馬鹿だよ。私にこんなの、思い出させて」&lt;/p&gt;
&lt;p&gt;「私の血の味、しっかり思い出した？　吸血鬼さん」&lt;/p&gt;
&lt;p&gt;ちろちろと口の中に舌を這わすと、鼻から残った血の風味がふわりと抜けていく。&lt;/p&gt;
&lt;p&gt;「すごく、美味しいよ。アヤの血。誰にも渡したくない」&lt;/p&gt;
&lt;p&gt;「案外落ち着いているのね。あの時とはだいぶ違うみたい」&lt;/p&gt;
&lt;p&gt;本当はそんなことはない。今だって、もっとなりふり構わずむしゃぶりつきたいけど、どうしてもアヤの意思を無視して襲ったあの時の光景が邪魔をする。&lt;/p&gt;
&lt;p&gt;「だいたい舐めきったから、早く手当てしよ？」&lt;/p&gt;
&lt;p&gt;唾液って口の中の雑菌が入ってて実は危ないんだよ？　腕から口を離してそう言うと、アヤがすかさずまたナイフを握って最初の傷の近くを走らせた。&lt;/p&gt;
&lt;p&gt;「な、何してるの、アヤっ！」&lt;/p&gt;
&lt;p&gt;「ほら、まだ傷があるから、もう一回舐めてもらってもいい？」&lt;/p&gt;
&lt;p&gt;「ア、アヤ……」&lt;/p&gt;
&lt;p&gt;二本目の傷から血が滲みだすのを見て、何故か涙が出た。&lt;/p&gt;
&lt;p&gt;してはいけないことなのに、心の底から興奮してしまっている。二条の真っ赤な鎖から目が離せなくなって、まるで私がその鎖に縛られているかのようだった。&lt;/p&gt;
&lt;p&gt;もう戻れないところまで来た異常に押し潰されそうになる。視界の中で、笑顔のアヤとその傷口から滲んだ血がさらにぼやけて広がっていった。&lt;/p&gt;
&lt;p&gt;「こんなの、おかしいよ……アヤが笑顔で自分の腕を傷つけて、それを私が舐めとっているなんて。こんなの……異常なのに……」&lt;/p&gt;
&lt;p&gt;「異常なのに、興奮しちゃう？」&lt;/p&gt;
&lt;p&gt;私はそれに答えるようにして、またシーツに落ちようとする血を舐めとった。&lt;/p&gt;
&lt;p&gt;「ばかばか。ほんとに……ばか」&lt;/p&gt;
&lt;p&gt;「私はあなたが私の血液を舐めて興奮していても、嫌だなんて思わないわ」&lt;/p&gt;
&lt;p&gt;「アヤは、自分の腕に傷を付けるの……嫌じゃないの？　こんなに綺麗な腕なのに」&lt;/p&gt;
&lt;p&gt;そう言いながら見上げると、彼女は私に手を伸ばし、優しく何回も頭を撫でた。立て続けにやってきた非日常の中に突然安心がやってきて、ほぁ、と小さな吐息が漏れる。&lt;/p&gt;
&lt;p&gt;「心配してくれてありがとう。でも、言ったでしょ？　何でも差し出す覚悟はあるって」&lt;/p&gt;
&lt;p&gt;「何でも、するの？」&lt;/p&gt;
&lt;p&gt;さっきもそう言ったわ、と言うアヤを見て、私の中で贅沢な欲望が首をもたげた。彼女の血で口は潤っているはずなのに、次に言おうとする言葉がもたらす緊張のせいか、すっかり口がからからに渇いてしまう。&lt;/p&gt;
&lt;p&gt;私は身体を起こして、アヤの肩に手を置く。じっ、と今度は私がアヤを見透かすような気持ちで、その穏やかな目を見つめる。&lt;/p&gt;
&lt;p&gt;「じゃあ、私のこと、好きって言ってよ。まだ、言ってないよね？」&lt;/p&gt;
&lt;p&gt;「シオちゃん、好きよ。心の底から、大好き」&lt;/p&gt;
&lt;p&gt;こうかしら、とアヤがにこりと笑う。余裕そうな姿が、さらに私を必死にする。&lt;/p&gt;
&lt;p&gt;「まだ足りないよ。私のことが好きなら、付き合ってって言って。もっと私を求めて」&lt;/p&gt;
&lt;p&gt;なんて身勝手なことを言っているんだろうと思う。でも、彼女に対して覚えていた罪悪感は、徐々に消えつつあった。それがいいことか悪いことかは分からないけど。&lt;/p&gt;
&lt;p&gt;アヤは少し黙ってから、口を開いた。&lt;/p&gt;
&lt;p&gt;「シオちゃん、私と付き合いましょう？」&lt;/p&gt;
&lt;p&gt;「う、うん。アヤ、私も――」&lt;/p&gt;
&lt;p&gt;私の答えを待たずに、アヤは私を押し倒す。彼女の体液のフルコースを味わってふわふわとした私は、悲鳴を上げる間もなく、アヤにされるがままになって三回目の長いキスををすることになる。ちゅるちゅると愛液よりも甘い汁を流しこまれて、私はまた熱い吐息を漏らすことしかできなくなった。&lt;/p&gt;
&lt;p&gt;「ねぇ、シオちゃん。私と付き合ってくれる？」&lt;/p&gt;
&lt;p&gt;「つ、付き合いまぅ……ふぁ……」&lt;/p&gt;
&lt;p&gt;やっぱりアヤには、勝てない。&lt;/p&gt;
&lt;h2 id="5"&gt;5&lt;/h2&gt;
&lt;p&gt;それから何回か私達は逢瀬を繰り返し、その度に彼女の左腕の傷を増やす異常なセックスをした。アヤは長袖の服ばかり着るようになり、半袖の時も黒いアームカバーを着用している。それも当然だ。出来て数週間も経たない生々しい傷が何本も刻まれているのが見つかれば、すぐに彼女の生活にも影響が出てくるだろう。&lt;/p&gt;
&lt;p&gt;彼女はいつも笑顔で自分の腕を傷つけた。まるで痛みを感じていないかのようだけど、傷口を舐めるときに聞こえる小さな悲鳴がそれを否定する。&lt;/p&gt;
&lt;p&gt;アヤは、毎回のデートで舐め終わる度にありがとう、と言って私を抱きしめるのだ。私にはアヤがどうして笑顔でいられるのか分からなかった。それでも私の心と身体はアヤを求め、彼女に求められるままに流れる血を吸った。&lt;/p&gt;
&lt;p&gt;街の中でも、赤い色を見るとドキドキした。そこからつぅ、と血が流れ出して落ちてしまうんじゃないかと思って目が離せなくなる。&lt;/p&gt;
&lt;p&gt;こんな異常なこと、やめなきゃいけない。いつかは誰かにバレてしまうから。そんな時に白い目で見られるのはきっとアヤの方だろう。そう思っても、妖艶な笑みで自分の腕を切りつけるアヤの魅力に、ずぶずぶとハマってしまっていた。&lt;/p&gt;
&lt;p&gt;今日もアヤとデートの予定だ。デートとは名ばかりで、いつもホテルか、私の家で抱き合ってアヤを傷つけるばかりだけど。&lt;/p&gt;
&lt;p&gt;でも、待ち合わせの時間になっても、アヤは広場に現れない。私が遅刻するのはよくあることだったけど、アヤが遅刻するのは珍しいことだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「アヤ、遅かったね」&lt;/p&gt;
&lt;p&gt;「ごめんなさい。ちょっと寝坊しちゃって」&lt;/p&gt;
&lt;p&gt;それから十分ほど待って、アヤがやってきた。アヤも寝坊するんだ、と言おうと思ったけど、私も完璧じゃないのよ、という声を思い出して言葉を飲み込んだ。アヤだって人間だもん、遅刻くらいする。&lt;/p&gt;
&lt;p&gt;「大丈夫だよ。アヤだって、たまにはそういうこともあるよね」&lt;/p&gt;
&lt;p&gt;「えぇ。私が完璧なお人形だったら、寝坊なんかしないのに。ごめんね、シオちゃん」&lt;/p&gt;
&lt;p&gt;「……どうして急に、人形の話になるの？」&lt;/p&gt;
&lt;p&gt;ぽつりと呟いた言葉に引っかかって、私は訊き返す。&lt;/p&gt;
&lt;p&gt;アヤが完璧な人形じゃないから謝るだなんて、そんなの変だ。私がアヤを人形の代わりにしてて、アヤがきちんと代わりを務められないから謝ってるみたいじゃん。&lt;/p&gt;
&lt;p&gt;「あら、そうでしょう？　シオちゃんは私のこと、血が出てしゃべるお人形くらいにしか思ってないじゃない」&lt;/p&gt;
&lt;p&gt;「な、なにそれ……やめてよ」&lt;/p&gt;
&lt;p&gt;「違うの？　私の腕をこんなにしちゃって」&lt;/p&gt;
&lt;p&gt;そう言いながらアヤは両腕をこちらに差し出してくる。長袖を着ているから見た目には分からないけど、私が血をねだって彼女自身に付けさせた、幾条もの傷のことを言っているのは間違いなかった。&lt;/p&gt;
&lt;p&gt;「対等な恋人が、こんなことするかしら？」&lt;/p&gt;
&lt;p&gt;「それは……」&lt;/p&gt;
&lt;p&gt;突き出した腕がそのままこちらに伸びて私の心臓を突くかのような想像を広げさせて、私は何も言えなくなった。&lt;/p&gt;
&lt;p&gt;「最初の傷は私がやったことよ？　でも、その後に血を啜らせてほしいってねだってきたのはあなたじゃない」&lt;/p&gt;
&lt;p&gt;私は、往来の中で私は泣きそうになる。自分の瑕疵を責められて、責任も何もなく身勝手な涙を流す子供のように。&lt;/p&gt;
&lt;p&gt;「私の痛みなんて気にしないで、自分の好きなだけ私を舐めまわしちゃって」&lt;/p&gt;
&lt;p&gt;「ご、ごめん。私、アヤの気持ちを考えてなかったよね」&lt;/p&gt;
&lt;p&gt;今すべきことは泣きじゃくって責めを回避するようなことじゃない。私は頭を下げて、素直に謝罪する。別れよう、か、距離を置こう、か。どちらにせよ調子に乗った私への罰があるのは間違いないだろう。&lt;/p&gt;
&lt;p&gt;「でも、いいのよ。私はあなたが好きだから。気にしないで」&lt;/p&gt;
&lt;p&gt;「えっ？」&lt;/p&gt;
&lt;p&gt;と、思ったら、アヤの口から発せられたのは、意外な言葉だった。&lt;/p&gt;
&lt;p&gt;「いい、の……？　怒ってたんじゃないの？」&lt;/p&gt;
&lt;p&gt;「どうして、怒らないといけないの？　毎回激しくして、痛くしてくれて嬉しいのに」&lt;/p&gt;
&lt;p&gt;頭を上げると、アヤは不思議そうな顔をしていた。&lt;/p&gt;
&lt;p&gt;「痛いのに、嬉しいの？」&lt;/p&gt;
&lt;p&gt;「そうよ。あなたの舌が傷口に当たると、脳が痺れて痛みを感じなくなるの」&lt;/p&gt;
&lt;p&gt;痛いのに、痛くないのよ、と言う彼女の目が少しだけ虚ろになったように見えた。&lt;/p&gt;
&lt;p&gt;「ア、アヤ……？」&lt;/p&gt;
&lt;p&gt;「私はシオちゃんのことが、それくらい好きなの。ね、シオちゃんは？　私を人形じゃないと思ってくれてるシオちゃんは、私のこと、どれくらい好きなの？　教えて？」&lt;/p&gt;
&lt;p&gt;アヤが私を抱きしめて、立て続けに耳元で囁いた。広場のど真ん中でアヤに密着されて身体が熱くなる。&lt;/p&gt;
&lt;p&gt;「や、やめてよアヤ。恥ずかしいよ……」&lt;/p&gt;
&lt;p&gt;引き剥がそうとしても、アヤは私を離してはくれない。私のことを痛いくらいに強く抱いて、諭すように続けた。&lt;/p&gt;
&lt;p&gt;「私は、あなたなしじゃいられないくらい、シオちゃんのことが好きよ？　だから、私は人形でいいの。あなたのそばにいられるなら、それでいいの」&lt;/p&gt;
&lt;p&gt;「や、やだよ。そんなこと言わないでよ、アヤ」&lt;/p&gt;
&lt;p&gt;「シオちゃん、泣いてるの？」&lt;/p&gt;
&lt;p&gt;ぼろぼろと、いつもは堪えられるはずの涙が急に溢れ出してきた。私はアヤの腕の中で声を上げて泣き出してしまった。広場にはまだ人がいたけれど、もう耐えられない。&lt;/p&gt;
&lt;p&gt;彼女が人形になって私だけを見てくれる、そんな未来はすごく幸せだ。&lt;/p&gt;
&lt;p&gt;でも、人形に成り果てたアヤはもう二度と自分の意志で動くことはないだろう。そういう、もう元の場所に帰れない、元に戻れないような未来を想像すると、どうしても、きゅう、と心の大事な部分を握りしめられたようになって苦しくなるのだ。&lt;/p&gt;
&lt;p&gt;アヤに付けられた傷が、ただ左腕に痛みを与えるだけじゃなくて、彼女の心も不可逆に変えていっている。それをまざまざと見せつけられて、涙が止まらなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;このあと、私はアヤに無理を言って、普通のカップルみたいにデートをした。映画を見て、カフェに入って感想を言い合い、夕食を食べて、公園でキスをする。私はアヤとこんな普通のことがしたかったのだろう。こんな風に、アヤを傷つけなくて済むことを。快感で胸が痛くならないようなことを。いつでも元に戻せるようなことを。&lt;/p&gt;
&lt;p&gt;帰り際に、もう、あなたを傷つけるのはできるだけやめにしようね、と言うと、アヤは少し黙った後にそうね、と軽く笑う。&lt;/p&gt;
&lt;p&gt;なんだ、「普通」に戻ることは、存外に簡単なことなんだと、にこにことするアヤを見ながら私は安心した。&lt;/p&gt;
&lt;h2 id="6"&gt;6&lt;/h2&gt;
&lt;p&gt;あれからまた数週間が経った。&lt;/p&gt;
&lt;p&gt;アヤは休日になると毎週のように私の家に来るようになった。恋人なんだから当然でしょ、という言葉に私が頬を赤くすることなど気にせずに。&lt;/p&gt;
&lt;p&gt;もう腕をに刃を入れたり、血を飲んだりするような、そういう危ないことは自然にしなくなっていたから、アヤは水彩をして、その横で私は課題をするのが大半になった。遅くまで作業をした後に何度かキスやペッティングに及んだこともあったけど、彼女のラブ・ジュースは私に中途半端な潤いしか与えてくれなかった。&lt;/p&gt;
&lt;p&gt;それでも私は幸せだった。彼女がそばにいて、何かに打ち込んでいるのを見ることが出来るなんて、ずっと前の私には想像がつかなかったから。&lt;/p&gt;
&lt;p&gt;透き通るような世界に筆を走らせているのを課題そっちのけで見ていると、アヤは課題をしていないことに怒っている素振りを見せながらも、今仕上げている作品について饒舌に語ってくれる。川の辺りを歩いている時に、これが綺麗だったから、とか。街を歩いていたら、この奥行きがぐっときて、とか。&lt;/p&gt;
&lt;p&gt;今描いている絵は、見た瞬間の感動をよく再現できそうな自信作になりそうだって言っていた。私はそれに素直な期待を寄せている。&lt;/p&gt;
&lt;p&gt;でも、こういうことを楽しそうに私に告げるアヤの様子から、私にはない輝きや純粋さを見出してしまう。そこには、隣に私がいる想像ができないほどにきらきらした彼女がいた。そのままアヤが私を置いて駆け出していく様子を思い浮かべて、すごく不安になる。&lt;/p&gt;
&lt;p&gt;「ねぇ、アヤ。アヤはずっと私のそばにいてくれる？」&lt;/p&gt;
&lt;p&gt;画用紙に筆を走らすアヤの様子を後ろから膝立ちで覗き込んで、私はぽつりと呟いた。&lt;/p&gt;
&lt;p&gt;「急にどうしたの？　私が水彩ばかりしてるから退屈しちゃった？」&lt;/p&gt;
&lt;p&gt;アヤは筆を動かしながら、こちらを見ずに平然とそう返した。永遠の未来を疑うべくもないというようにして。&lt;/p&gt;
&lt;p&gt;「そ、そうじゃないの！ただ、私は何も持ってないし、アヤにだってもう何もあげられてないから。どうして私のそばにいてくれるのかなって思って」&lt;/p&gt;
&lt;p&gt;「ふぅん……そっか、なるほど。シオちゃんもそういうことを考えるのね」&lt;/p&gt;
&lt;p&gt;アヤが紙から筆を離して、それからゆっくり洗ったり拭いたり、いくつか作業を終えてからパレットにぱたりと筆を置いた。&lt;/p&gt;
&lt;p&gt;そうして、彼女は振り返って座ったまま私に前から抱きつく。私は抱きしめ返す気力も持たず、力を抜いて彼女に身体を預けると、ふわりと髪の良い匂いがした。&lt;/p&gt;
&lt;p&gt;「良かったらお話をお聞きしますよ、紫織さん」&lt;/p&gt;
&lt;p&gt;アヤの楽しそうな声が耳をくすぐる。私が悩んでいるのに、とは思ったけど彼女なりに気遣ってくれているのだと思うと、また身体から力が抜けた。&lt;/p&gt;
&lt;p&gt;「嫌なことでもあった？」&lt;/p&gt;
&lt;p&gt;「なにもないよ。幸せすぎて、だから怖いの。せっかく血を舐めるのをやめて、普通のカップルみたいにして、普通のカップルの幸せを楽しんで……」&lt;/p&gt;
&lt;p&gt;彼女が見ていないと分かると、最近は簡単に涙が出るようになった。&lt;/p&gt;
&lt;p&gt;「でも、結局根っこに『女の子同士』っていう絶対に逃げられない異常があるって分かっちゃって。だから、すごく怖い、怖いよ……アヤ」&lt;/p&gt;
&lt;p&gt;普通に近づけば近づくほど、当たり前だったはずのことがどんどん異常に思えてくる。&lt;/p&gt;
&lt;p&gt;「異常なんかじゃないわ。私達は心も身体も通じあってるって、言ったでしょ？」&lt;/p&gt;
&lt;p&gt;彼女の手が私の頭に触れる。なだめようと思っているなら、それは間違いだ。アヤの視線がないところで、アヤのことを深く考えると、こうして私の心にはいくらでも雨が降るんだから。&lt;/p&gt;
&lt;p&gt;「ごめんね、アヤ。私、重いよね」&lt;/p&gt;
&lt;p&gt;「泣かないで、シオちゃん。構ってほしいなら、別に私が作業してても、後ろから抱きついて無理矢理ベッドに連れて行っていいのよ？」&lt;/p&gt;
&lt;p&gt;「私、構ってほしいわけじゃないの。ちゃんと聞いてよ、アヤ」&lt;/p&gt;
&lt;p&gt;耳元で囁くアヤを引き剥がすと、彼女はやっぱりいつもと変わらない穏やかな表情でいた――ただ一つだけ、目尻の涙を除いては。&lt;/p&gt;
&lt;p&gt;「あ、アヤ……？　もしかして、泣いて――」&lt;/p&gt;
&lt;p&gt;アヤも泣くんだ。そうだよね、女の子だもん。&lt;/p&gt;
&lt;p&gt;そう言おうとする私の口を塞ぐようにして、彼女は私を胸に抱く。無理に引っ張られて私もその場にぺたんと座り込んだ。下着の硬い感触と、その奥の柔らかいものの感触が、むぎゅりと顔を覆う。少し湿った柔軟剤の匂いを鼻に吸い込みながら、今度は私も抱きしめ返す。&lt;/p&gt;
&lt;p&gt;「ごめんね、私がシオちゃんを手放すなんて、そんなこと考えたこともなかったから。私のことで泣くほど悩んでくれるなんて、嬉しいわ」&lt;/p&gt;
&lt;p&gt;「悩むよ、アヤのこと好きだもん」&lt;/p&gt;
&lt;p&gt;アヤだって泣いてるじゃん。もごもごと胸に向かって話しかけると、熱い空気が顔にまとわりつく。&lt;/p&gt;
&lt;p&gt;「でも、あなたこそ、私から離れていっちゃわない？」&lt;/p&gt;
&lt;p&gt;この距離でなければ聞こえないほどの、いつになく自信のなさそうなか細い声に、私はまた泣きそうになる。&lt;/p&gt;
&lt;p&gt;「そんなこと、しないよ。どうしてそんな悲しいこと言うの？」&lt;/p&gt;
&lt;p&gt;「私も、そんな悲しいことを言われたのよ？　ちょっとくらい意地悪させてちょうだい」&lt;/p&gt;
&lt;p&gt;胸から顔を離してアヤの顔を見上げると、もう目尻の涙は消えていた。&lt;/p&gt;
&lt;p&gt;「アヤ、怒ってる……？　ごめんね？」&lt;/p&gt;
&lt;p&gt;「ううん、怒ってるわけじゃないの。私の不安も解消したいから、口実にしただけ」&lt;/p&gt;
&lt;p&gt;そう言いながら、私の手を握る。アヤが私の眼を見つめながら触れる手は、私に安らぎを与えてくれた。&lt;/p&gt;
&lt;p&gt;「不安？　アヤも、不安になるの？」&lt;/p&gt;
&lt;p&gt;「シオちゃんは本当に私を完璧だと思ってるのね。私にも、ちゃんと人間らしく脆いところがあるんだって、この前も言ったでしょう？」&lt;/p&gt;
&lt;p&gt;「そうだったっけ？　でも、なんか嬉しいかも、そういうの」&lt;/p&gt;
&lt;p&gt;完璧じゃないアヤは、何だかすごく愛らしい。可愛らしい。何でもないことなのかもしれないけど、そんなアヤを見れたのが私にはすごく嬉しかった。&lt;/p&gt;
&lt;p&gt;「シオちゃんに、綺麗って言われたことはあっても、可愛いだなんて言われちゃったのは初めてかもしれないわね」&lt;/p&gt;
&lt;p&gt;言われ慣れない言葉で褒められるのはすごく照れるわ、とはにかんだ。&lt;/p&gt;
&lt;p&gt;「じゃあ、可愛い可愛いシオちゃんの恋人から、一つ訊いてもいいですか？」&lt;/p&gt;
&lt;p&gt;なんでしょうか、可愛い可愛いアヤさん、と彼女に合わせて戯けると、今度は一転して真剣な表情になった。&lt;/p&gt;
&lt;p&gt;「シオちゃん、あなたは……好きなだけ血を飲ませてくれるような、とっても可愛らしいお人形さんみたいな娘に言い寄られたら、ついていっちゃわない？」&lt;/p&gt;
&lt;p&gt;「……え？　な、なにそれ」&lt;/p&gt;
&lt;p&gt;「シオちゃんがいくら血を吸っても罪悪感を覚えないような……本当のお人形さんみたいな娘には、私はなれないみたいだから」&lt;/p&gt;
&lt;p&gt;「私、血が好きなんじゃないよ？　アヤ、あなたのだから好きなんだよ？」&lt;/p&gt;
&lt;p&gt;普段より少しだけ濡れたアヤの目を見て、私はそう言った。アヤは少し黙って、また私を抱きしめる。うん、うんと何かに納得したように何度か頷いた。&lt;/p&gt;
&lt;p&gt;「そんなこと、言われなくても分かってるのにね。意地悪言ってごめんなさい」&lt;/p&gt;
&lt;p&gt;今度はアヤの方から私を離れて、私の目を見て続ける。&lt;/p&gt;
&lt;p&gt;「やっぱり私も、血を吸ってもらえなくなってからずっと不安みたい。血を捧げて、それであなたがずっと私を見てくれる保証があるなら、いくらでも差し出したいと思ってるくらいだもの。もうしないって言ったのにね」&lt;/p&gt;
&lt;p&gt;「……この先ずっと一緒にいるとしても、いつかは終わりが来るよ」&lt;/p&gt;
&lt;p&gt;私はその視線に応えきれずに床に目を遣る。アヤの不安そうな顔を見ていたら、私まで泣いてしまいそうだった。&lt;/p&gt;
&lt;p&gt;それは死という意味かしら、と訊かれて私は頷いた。&lt;/p&gt;
&lt;p&gt;「アヤが私のお人形さんになりたいとしても、きっと本当のお人形さんにはなれないよ。私だって、いつかは絶対死んじゃうんだし」&lt;/p&gt;
&lt;p&gt;二人の間に沈黙が流れた。死んじゃう、と口に出したせいで、私の涙は急に限界を迎えてその静寂へとぽろぽろ溢れだしてしまう。&lt;/p&gt;
&lt;p&gt;「ねぇ、アヤ、どうしよう？　アヤが先に死んじゃったら、私、どうすればいい？」&lt;/p&gt;
&lt;p&gt;「どうしようもないわ。本当に、誰だって、どうしようも」&lt;/p&gt;
&lt;p&gt;女の子同士だと互いの喪主にもなれないと聞いたことがある。そういうのって、あんまりだ。アヤの言うとおり、本当にどうしようもない現実に力が抜けてしまう。&lt;/p&gt;
&lt;p&gt;アヤはまた少し間を置いて、それからぽつりと続けた。&lt;/p&gt;
&lt;p&gt;「でも、そうね。三十五日後に、あなたも死んでくれたら嬉しいわ」&lt;/p&gt;
&lt;p&gt;「三十五日？」&lt;/p&gt;
&lt;p&gt;訊き返してからすぐに、八月のアヤと九月の私、二人の誕生日の差なのだと分かった。&lt;/p&gt;
&lt;p&gt;「同じ長さを生きて死ぬんだもの、きっと天国でも一緒になれるんじゃないかしら？」&lt;/p&gt;
&lt;p&gt;「じゃあ、私が先に死んじゃったら、アヤはどうするの？」&lt;/p&gt;
&lt;p&gt;「あら、私の腕をこんなにしといて、私より早く死のうっていうの？」&lt;/p&gt;
&lt;p&gt;そんなの考えたくもないことね、とアヤは冷たく言い放つ。私だってアヤのいなくなった世界のことなんて考えたくもないけど、私の欲望のためにいつ死んでもおかしくない綱渡りを繰り返させてきた手前、何も言い返せなかった。&lt;/p&gt;
&lt;p&gt;「シオちゃんが今ここで私の胸を一突きしてくれたなら、そんな心配はなくなるのにね」&lt;/p&gt;
&lt;p&gt;「ひ、一突き？」&lt;/p&gt;
&lt;p&gt;「えぇ。私の胸を一突きしたシオちゃんが血を吸い尽くして、それから三十五日間の逃走劇を始めるの。逃げ切ったあなたは、私を突き刺したそのナイフで自害するんだわ」&lt;/p&gt;
&lt;p&gt;「そ、そんなのダメだよ。いくら背徳感が好きだとしても、破滅的すぎ」&lt;/p&gt;
&lt;p&gt;そうは言っても、そのシチュエーションは私の目にもかなり魅力的に映る。見つかってからは、きっとニュースや新聞がいかに私が猟奇的であったかを口を揃えて報じるだろうけど、そんなのアヤと私には関係のないことだ。&lt;/p&gt;
&lt;p&gt;「大丈夫よ。今のところはただの一妄想でしかないわ。でも、興奮しない？　私の血が、私の命が全部あなたに飲まれていくの」&lt;/p&gt;
&lt;p&gt;私が、目に光を宿さなくなったアヤの首筋に齧り付いて、獣のように血を飲んでいる。必死に、まるで私がこれから彼女と天国で出会うための儀式であるかのように。&lt;/p&gt;
&lt;p&gt;「ふふっ。また舐めたくなっちゃった？」&lt;/p&gt;
&lt;p&gt;こくり。私は頷いて唾を飲んだ。アヤはくすっ、と笑う。&lt;/p&gt;
&lt;p&gt;「もうしないって言ったのに？　シオちゃんのえっち」&lt;/p&gt;
&lt;p&gt;居ても立ってもいられなくなって、アヤの手首を取って床に押し付ける。私の手がテーブルにぶつかって、床に描きかけの絵ががたりと落ちた。&lt;/p&gt;
&lt;p&gt;私はそれには目もくれず、アヤをじっと見つめる。アヤも完成前の水彩画のことなど頭にないかのように、私の視線に応え続けていた。&lt;/p&gt;
&lt;p&gt;やっぱり私には、普通に戻ることなんて無理なんだ。赤いものを求めるこの胸の高鳴りには、どうやっても嘘はつけない。&lt;/p&gt;
&lt;p&gt;「アヤ、私が想像しちゃうって分かってて、わざとやってるでしょ」&lt;/p&gt;
&lt;p&gt;「ふふっ。随分と怖い目をするのね。ちょっと挑発しただけでこんなになってくれるなら、挑発しがいがあるってものね」&lt;/p&gt;
&lt;p&gt;私はアヤの拘束を解いて起き上がる。押し倒されたにも関わらず余裕の笑みのアヤを見て、必死に力づくで彼女を求めようとしている自分が急に恥ずかしくなった。&lt;/p&gt;
&lt;p&gt;「そうやって誘ってくるなら、私、本当にしちゃうよ？」&lt;/p&gt;
&lt;p&gt;「いいわよ。飲みたいの？　それとも、ここ、刺しちゃいたい？」&lt;/p&gt;
&lt;p&gt;アヤもむくりと起き上がる。右手の人差し指で、傷の残っているだろう腕を、それからまだ誰にも傷つけられていない胸の辺りを指差す。私はそれを見てまた、こくりと誘いを受け入れた。&lt;/p&gt;
&lt;p&gt;「胸には刺さないからね？」&lt;/p&gt;
&lt;p&gt;「知ってるわ。シオちゃんはとっても優しくて臆病なんだもの」&lt;/p&gt;
&lt;p&gt;そう言ってアヤは、大事にしてくれてありがとう、と芝居じみたお辞儀をした。&lt;/p&gt;
&lt;p&gt;「じゃあ、今度はシオちゃんがして。あなたが大事に思ってくれてる私を、あなたの手で傷つけて、縛り付けて」&lt;/p&gt;
&lt;p&gt;それからアヤは彼女の鞄を指差して、中の道具を使うように伝えた。私は小さめの果物ナイフと消毒用具を取り出して、アヤにはヘアゴムを手渡す。&lt;/p&gt;
&lt;p&gt;彼女はするりと流れるような動きで髪をまとめて、それから上着を全部脱いで下着姿になった。黒の布地が真っ白な身体を引き締めて更に美しく見せる。血が付いても目立たない黒いランジェリーは、まるでこの事態を予測していたかのようだ。&lt;/p&gt;
&lt;p&gt;「アヤ、すごく綺麗だね」&lt;/p&gt;
&lt;p&gt;「この前みたいに、可愛いとは言ってくれないのね」&lt;/p&gt;
&lt;p&gt;「何でも可愛いって言うわけじゃないもん。今のアヤ、美術品みたいですごく綺麗だよ」&lt;/p&gt;
&lt;p&gt;「ありがとう。ほら、切る前に消毒して？」&lt;/p&gt;
&lt;p&gt;私はアヤがそうしていたように、アルコールを含んだ脱脂綿を切るようにして果物ナイフを通す。消毒を終えて輝きを増したそれは、鞄から取り出した時よりは幾分か冷ややかに見えた。それとは対照的に、服の下に隠れていたアヤの真っ白な腕には生々しく幾条にも赤い鎖が走っている。その一つ一つが熱く、痛々しく歪に盛り上がっていた。&lt;/p&gt;
&lt;p&gt;「ほんとに、いいの？」&lt;/p&gt;
&lt;p&gt;「もう待ちきれないんでしょう？　早く、して？」&lt;/p&gt;
&lt;p&gt;私はごくり、と唾を飲んだ。あらわになったアヤの腕は、私にとろけきった性器を見せつけられているのと同じ気持ちを巻き起こす。&lt;/p&gt;
&lt;p&gt;今すぐにむしゃぶりついてその樹液を味わいたい。&lt;/p&gt;
&lt;p&gt;「じゃ、じゃあ……いくよ？」&lt;/p&gt;
&lt;p&gt;私は差し出された彼女の左腕を取り、無数に走る傷へ加えるに最も調和が取れそうな線分を見定める。そのまま滑らかにつつ、と冷たい刃物を滑らそうとするけれど、どうしても手が震えて一歩を踏み出すことができなかった。&lt;/p&gt;
&lt;p&gt;そんな私を見て、アヤが私の手を取って落ち着かせようとしてくれる。&lt;/p&gt;
&lt;p&gt;「大丈夫、シオちゃん？　やっぱり、私がしたほうがいいかしら」&lt;/p&gt;
&lt;p&gt;「……ううん。ちゃんとできるよ、アヤ。ありがとう」&lt;/p&gt;
&lt;p&gt;私は軽く息を吸って、吐いて。もう一度軽く吸って。それから、アヤの美しい前腕に煌めくナイフの切っ先を当てる。当てて、そうして、アヤが自分でしているように、一気にまっすぐな軌跡を描いた。&lt;/p&gt;
&lt;p&gt;「っ！」&lt;/p&gt;
&lt;p&gt;と、アヤが小さな悲鳴を上げて、腕は動かさないようにして身をすくめた。私はそれを聞いて慌てて刃を肌から離す。柔らかな肌にこのナイフは鋭すぎたらしく、思い描いていた以上に長くて深い傷を刻んでしまっていたようだ。&lt;/p&gt;
&lt;p&gt;「あっ、ごめん！痛かった、よね？」&lt;/p&gt;
&lt;p&gt;当然、痛いのは痛いだろうけど、アヤが自分でそれをする時はこんな声を上げることはなかったから、やはりやり過ぎたのだと思った。&lt;/p&gt;
&lt;p&gt;「う、ううん……違うのよ、シオちゃん。ただ、びっくりして。自分以外の人に切ってもらうのが初めてだったから」&lt;/p&gt;
&lt;p&gt;そう言いながらも、アヤの目からは大粒の涙がぽろぽろとこぼれ落ちている。涙も拭かずに、右手で左肩を色が変わるほどに握りしめるようにして、そのせいか右腕は弱々しくぷるぷると震えていた。&lt;/p&gt;
&lt;p&gt;「ほんとに、大丈夫……？」&lt;/p&gt;
&lt;p&gt;「ふ……ふっ、ごめんなさい。嘘ついちゃったわ。痛い、いたいよ……シオちゃん……」&lt;/p&gt;
&lt;p&gt;ぐぐぐ、と右手に入る力が強まったように見えた。アヤがこんなにも痛がっている。アヤがこんなにも苦しんでいる。こんなにも――&lt;/p&gt;
&lt;p&gt;「あ……アヤ、大丈夫……？　ねぇ？痛いの……？ど、どうしようか……」&lt;/p&gt;
&lt;p&gt;――こんなにも、アヤが感情をさらけ出したことがあっただろうか。&lt;/p&gt;
&lt;p&gt;恋人が私が与えた傷のせいで痛がっている。その激しい感情の発露を見せつけられて、私はどうして興奮していられるのだろう。&lt;/p&gt;
&lt;p&gt;「すごく、痛い……痛いわ、嬉しい……シオちゃんが……痛く、してくれた……」&lt;/p&gt;
&lt;p&gt;だがそれは、彼女も同じだった。私が与えた鋭い痛みと鈍い痛みは、彼女を恍惚とした快感ですっかり包み込んでいた。本来危機感を刺激するはずの痛覚は、もう単なる精神的な快感を盛り上げるスパイスでしかない。&lt;/p&gt;
&lt;p&gt;私は思わず彼女の頬を舐めた。アヤの体液は、どんなものであっても魅力的に見える。彼女の涙は思った以上に塩味が少なかった。&lt;/p&gt;
&lt;p&gt;「涙もいいけど、せっかくしたんだからこっちも舐めて？シオちゃん」&lt;/p&gt;
&lt;p&gt;そう言って、アヤが左肩から手を離す。さっきまで震えていた彼女の身体がいやに落ち着いて、全身から力が抜けていくように見えた。&lt;/p&gt;
&lt;p&gt;今しがた刻まれた生々しい傷口から、浮かび上がるようにまっすぐと血が滲んで、ふつふつと真っ赤な真珠が美しいネックレスを形作っていく。その綺麗な首飾りはすぐにぷつりと切れて、床に机にぽつぽつと垂れていった。描きかけの青い水彩画にもアンバランスなアクセントが添えられていくけれど、アヤはその未完の自信作を一瞥すらしない。&lt;/p&gt;
&lt;p&gt;「ね。ほら、舐めて？」&lt;/p&gt;
&lt;p&gt;私は流れゆく血の一つに口を近づけて、彼女の腕に優しくキスをする。そうして、ぬるりと唇に感じる違和感を舐めとると、私の口にこびり付くような鉄の味が広がる。口の中を駆け巡るその味に、頭がくらくらした。すごく興奮した。&lt;/p&gt;
&lt;p&gt;「シオちゃん、私の血は美味しい？」&lt;/p&gt;
&lt;p&gt;「うん、アヤ。すごくいいよ。もっと、するね？」&lt;/p&gt;
&lt;p&gt;口に残る血の味が無くならないように、私は何度だってキスをした。血が残っている部分を執拗に舌で突付くと、アヤは傷口の痛さに堪えきれない悲鳴を上げる。彼女の体液をずっと口に含んでいると、それさえも、次の愛撫をねだる甘えた声に聞こえてしまう。&lt;/p&gt;
&lt;p&gt;この傷があれば、私とアヤは繋がっていられる。自分で付けた傷にさらに痛みを与えて、私のものだとマーキングしているみたいだ。&lt;/p&gt;
&lt;p&gt;「とっても綺麗。私がそのまま、シオちゃんの口紅になったみたい」&lt;/p&gt;
&lt;p&gt;「アヤに綺麗って言われちゃった、えへへ」&lt;/p&gt;
&lt;p&gt;「えぇ、あなたと私が一つになったみたいで、すごく綺麗よ」&lt;/p&gt;
&lt;p&gt;アヤが熱っぽい視線を向ける度に、私はそれに応えて腕に舌を這わす。&lt;/p&gt;
&lt;p&gt;結局、いつの間にか私もアヤも、これなしでは生きられなくなってしまっていた。私はアヤの血を啜ることを快感だと思っているし、アヤはこれを最高の愛情表現だと言った。だから愛に純粋なアヤは、これからも私の手でどんどん傷つけられたいと思うだろうし、私もそうすることだろう。&lt;/p&gt;
&lt;p&gt;もしかしたら純粋なアヤなんて最初からいなかったのかもしれないけど、今となってはもう分からない。少なくとも、美しい絵を描き出すあのきらきらとした純粋さは、もう私の中には見つからなかった。&lt;/p&gt;
&lt;p&gt;「シオちゃん。だからね、私になんか、なっちゃダメ。私はあなたのお人形なんだから」&lt;/p&gt;
&lt;p&gt;綺麗な水彩画に血が滲む様子に重なって、アヤの透き通るようなブラウンの瞳が徐々に濁っていくように見えた。アヤにはずっと血が流れているけれど、私が血を舐めていく度に生命――魂の総量が減っているんじゃないかと、そういう気持ちになることがある。可愛らしいアヤも、脆いところがあるアヤもみんな消えて、でもそれが、本当に私の求める完璧な人形なのかは分からない。&lt;/p&gt;
&lt;p&gt;彼女が人形としての彼女に近づいていくことを想像して、私はまた彼女の腕に舌を這わせた。ぱっくりと開いた薄い赤の傷口をなぞる私の愛撫が強くなる度にアヤはぴくり、ぴくりと身体を震わすけれど、それも徐々に弱くなっていき、とうとう時折小さく漏れる嬌声が部屋に響くだけになった。&lt;/p&gt;
&lt;p&gt;そこに私の荒い息の音が混じっているのに気付いた辺りで、私は腕から口を離し、うっとりとしたアヤの瞳を見つめた。&lt;/p&gt;
&lt;p&gt;「好きよ、シオちゃん」&lt;/p&gt;
&lt;p&gt;「私も好きだよ、アヤ。私のこと、ずっと見ててね」&lt;/p&gt;
&lt;p&gt;そう言ってから、私はアヤに唇を重ねる。&lt;/p&gt;
&lt;p&gt;彼女の唇から感じる体温が、ずっと座っている冷たい人形の唇のそれに重なって、また戻れない現実を意識してほろほろと涙が出た。その一粒がアヤに当たって、それに気付いた彼女は下から私を覗きこむ。それからアヤは軽く微笑んで、私をいたわるようにゆっくりと私の頭を撫で始めた。&lt;/p&gt;
&lt;p&gt;「綺麗だよ、文香」&lt;/p&gt;
&lt;p&gt;何もかもを差し出して、私はあなたに隷属するわ。だから、あなたは私に縛られるの。どこにいても、ずっと、何もかも。&lt;/p&gt;
&lt;p&gt;私はそのまま唇を離さない。目を瞑ってアヤに涙を渡しながら、とろとろした体液を交換しあう。今ここでしっかりと彼女の眼を見つめたら、私が彼女にしてきたこと、彼女が私にくれたもの、その全部が私を押し潰してしまいそうだったから。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私の涙を全部吸い取って、彼女に魂が宿ればいいのに。&lt;/p&gt;
&lt;p&gt;そうして目覚めてから不思議そうに私を見つめる彼女に、私の唇の熱を流しこむのだ。&lt;/p&gt;
&lt;p&gt;この熱が彼女の身体に広がって、私の愛を知ってほしい。私も好きよと囁いてほしい。もっと私を熱い視線で見つめて欲しい。&lt;/p&gt;
&lt;p&gt;ただ、それだけでいい。何も、見えなくていい。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>ストロベリィドール 2</title><link href="https://ama.ne.jp/post/strawberry-doll-2/" rel="alternate"/><published>2018-08-25T17:31:00+09:00</published><updated>2018-08-25T17:31:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-08-25:/post/strawberry-doll-2/</id><summary type="html">&lt;p&gt;中編&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/strawberry-doll/"&gt;ストロベリィドール&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="3"&gt;3&lt;/h2&gt;
&lt;p&gt;「んぅ……朝か」&lt;/p&gt;
&lt;p&gt;ぴぴぴぴと、不快な音が部屋に響いた。&lt;/p&gt;
&lt;p&gt;「ううううう……」&lt;/p&gt;
&lt;p&gt;私は呻きながら何度かスマートフォンをいじくりまわすけれど、とうとうそれが原因ではないことを思い出し、煩わしい音を発する銀の目覚まし時計をぱしりと叩く。&lt;/p&gt;
&lt;p&gt;「暑い……べとべとする……」&lt;/p&gt;
&lt;p&gt;夏の目覚めは、アラームよりも部屋の暑さによってもたらされることが多いけど、昨日はずっと眠りに入る前に考え事をしていたせいで特に寝つきと夢見が悪かったらしい。寝ぼけた身体に汗で張り付いたＴシャツがじとりとして嫌な心地がする。&lt;/p&gt;
&lt;p&gt;窓を開け、軽く伸びをした。レースのカーテンが優しく揺れてから、湿った室内をよく晴れて乾いた空気が駆け巡っていく。肌にひやりとした心地の良い寒さがまとわりついた。&lt;/p&gt;
&lt;p&gt;「今日は文香が、来るんだよね」&lt;/p&gt;
&lt;p&gt;あの日、文香との再会から二週間ほどが経っていた。&lt;/p&gt;
&lt;p&gt;私の家に絵を描きに来たい、というのは社交辞令だと思っていたけれど、文香は本当に私の家に来たかったらしい。別れてじきに、都合の良い日を尋ねる連絡が来た。彼女も自分が何かしたのだろうかと気にしていて、なかなか連絡する勇気がなかったのだという。&lt;/p&gt;
&lt;p&gt;ただすれ違っていただけの彼女と私の時間が、再び動き出した。&lt;/p&gt;
&lt;p&gt;でもまだ私には、まだ後ろめたいものがあって。過去の私達の間のこともそうだけど、目下のところそれは、アヤについてのことだ。&lt;/p&gt;
&lt;p&gt;二人の関係が変わってしまった今、これまでどおりではいられない。文香に屈託のない笑顔を向けられながら、その裏でアヤを抱きすくめて欲望を晴らしていることを、単なる人形遊びの趣味だなんて言うことはできない。&lt;/p&gt;
&lt;p&gt;少なくとも今の私は、文香に対してこの生活を後ろめたく思っている。このままでは、きっと最後には破綻することだろう。&lt;/p&gt;
&lt;p&gt;「あと一時間くらいかな……シャワー浴びちゃおっと」&lt;/p&gt;
&lt;p&gt;文香にとっては単なる友人に会うためだけの一日かもしれない。でも、私にとってはそれを隠し通すか、さらけ出すかを選ばないといけない大事な一日になるはずだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ぴんぽーん。来客を告げるチャイムが何度か鳴って、私は玄関へ向かう。&lt;/p&gt;
&lt;p&gt;ドアを開けると、この前とは打って変わって黒っぽいパンツスタイルに身を包む文香が立っていた。肩には大きくて薄いバッグを掛けて、右手にもそれよりは小さい普通のバッグがもう一つ提げられていた。&lt;/p&gt;
&lt;p&gt;「こんにちは、紫織。なかなか出てくれないから、部屋を間違えたのかと思ったわ」&lt;/p&gt;
&lt;p&gt;「あ、文香。ごめんね、ちょっとシャワー浴びてたの。上がって上がって」&lt;/p&gt;
&lt;p&gt;私の頭がまだ少し濡れているのは、ぼーっとした頭で十数分呆けていた私の寝起きの悪さと、その割には遠慮のないシャワーの長さと、それに文香の予想外に早めの到着時間が加わった結果だ。&lt;/p&gt;
&lt;p&gt;「散らかってるけど、くつろいでいってね」&lt;/p&gt;
&lt;p&gt;「ありがとう。お言葉に甘えて、ゆっくり描かせてもらうわ」&lt;/p&gt;
&lt;p&gt;本当はこの部屋も少し掃除をして、向こうのアヤも部屋の隅に移して目隠しにカバーでもかけておこうと思ったんだけど、全くそんな時間はなかった。どちらも人を招くのには致命的でない分、文香を暑い外で待たせるのも悪いし。&lt;/p&gt;
&lt;p&gt;だから今は少しだけどきどきしていた。割ってしまった花瓶が先生に見つからないか心配する類のどきどきだ。見つかってから弁解するのも、見つかる前に怪しまれるのも、どちらも避けておきたかった。&lt;/p&gt;
&lt;p&gt;「私、ちょっと髪を乾かしてくるから、先に作業していていいからね」&lt;/p&gt;
&lt;p&gt;「えぇ、分かったわ。外の景色を見ているわね」&lt;/p&gt;
&lt;p&gt;文香を残して洗面所に向かうだけでも少しどきどきが強くなる。彼女に限って、勝手に部屋を覗くことはないと分かっているのに。よく見知った幼馴染を疑っているようで、しかもそれが離れていた時間のせいだと思うと、少しだけ嫌な気持ちになった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;戻ってくると、レースのカーテンがまとめられて部屋が少し明るくなっていた。窓から外からの陽射しが直接フローリングの床に当たっている。文香がベランダに立っているのが見えて、私は窓枠を挟んで向こう側の文香に話しかけた。&lt;/p&gt;
&lt;p&gt;彼女はその長髪をポニーテールにまとめ、その尻尾を作業の邪魔にならないように頭の後ろで時折ぴょこぴょこと揺らしている。&lt;/p&gt;
&lt;p&gt;「文香、外で描いてるの？　暑くない？」&lt;/p&gt;
&lt;p&gt;「陽は差してるけど、風が気持ちいいわ。あなたも来てみたら？」&lt;/p&gt;
&lt;p&gt;文香の黒髪を揺らしてから部屋に入ってくる風が部屋を駆けていく。私もベランダに足を踏み出すと、床板が小さくきしっと音を立てた。確かに私の頬を撫でる風はそれなりに涼しいけど、さっきまでドライヤーで暖められていた私まで、文香のように汗一つかかずにいられるほどではない。&lt;/p&gt;
&lt;p&gt;大げさに動きながら後ろから文香を覗き込むと、彼女は今は下絵を描いているところらしい。さらさらと鉛筆を走らせる先を見ると、木の板にＡ３ほどの紙が貼られていて、端はねずみ色のテープで止められている。画板の端はベランダの柵に載せられて安定しているように見えるけど、鉛筆の位置と書き方に応じてたまにくらりと揺れた。&lt;/p&gt;
&lt;p&gt;「こういうの、スケッチブックとかに描くんじゃないんだね」&lt;/p&gt;
&lt;p&gt;「そうね。用意もなくスケッチブックに描いちゃうと、色塗りの時に紙が伸びて歪んじゃうから。描く前に、水彩紙を水で濡らして板に貼ってから、テープでピンと張るのよ」&lt;/p&gt;
&lt;p&gt;水張りっていう作業なの、と鉛筆を走らす文香が少し得意げに見えて、私まで誇らしげな気持ちになった気がする。&lt;/p&gt;
&lt;p&gt;「文香、楽しそうだね。私も水彩、やってみたくなってきたかも」&lt;/p&gt;
&lt;p&gt;「それは嬉しいわ。本当にやる気になったら、言ってね。いろいろお手伝いするから」&lt;/p&gt;
&lt;p&gt;「うん。ほんとに楽しそう」&lt;/p&gt;
&lt;p&gt;文香はさらに筆を進める。すらすら。しゅっしゅっ。顔を上げて風景の一点を注視してから、ささっとまた軽やかに鉛筆を動かす。さらさら。鉛筆と紙が擦れる音が心地いい。&lt;/p&gt;
&lt;p&gt;普段何気なく窓から目を遣る何の面白みのない景色のはずなのに、それが文香の手で拾い上げられて白い紙に描き起こされていくだけで輝きを感じてしまう。価値がないと思っていたものの価値に気付くというのは、当然嬉しいんだけど気恥ずかしさが付いて回る。&lt;/p&gt;
&lt;p&gt;住宅街の中にあるアパートの一室から見える景色はたかが知れているけれど、ちらほらと見える植え込みや家庭菜園の様子を丁寧に描き込んでいたり、夏の青空が広く取られているところを見ると、美しく見える景色の切り取り方を心得ているのだと思った。&lt;/p&gt;
&lt;p&gt;と、軽快に進んでいた鉛筆の動きが止まる。後ろを向いた文香は、少し困った顔だ。&lt;/p&gt;
&lt;p&gt;「描きに来てる身で言えたことでもないけど、やっぱり見られるのって恥ずかしいわね」&lt;/p&gt;
&lt;p&gt;「いいからいいから。もっと見せてよ、文香大先生」&lt;/p&gt;
&lt;p&gt;「ふふっ。なぁに、それ。見ているだけじゃ上達しませんよ、紫織さん？」&lt;/p&gt;
&lt;p&gt;そう言って、文香はまた作業に戻る。耳に届く鉛筆の音が少し速くなった気がした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「そろそろ、ちょっと休憩するわね」&lt;/p&gt;
&lt;p&gt;ぱたり、と音が立つように鉛筆を画板に置いて、文香が作業の中断を告げる。下絵の描き込みは大体終わったということらしい。陽もすっかり高くなって、まさに暑くなろうというところだ。&lt;/p&gt;
&lt;p&gt;直射日光を一身に受けていた室内に戻ると、やはり熱がこもってむわりとした。私はまたカーテンを解放して、するりと窓にかぶせていく。吹き込む風がレースを揺らして床に作る影の模様を変えていった。&lt;/p&gt;
&lt;p&gt;立ち止まって床を見つめる私とは対照的に、文香はテーブルの周りを二、三周しながら上を見たり下を見たり、何かを探しているようだ。&lt;/p&gt;
&lt;p&gt;「こっちの部屋にはエアコンがないのね。室外機はあったみたいだし、あっちのお部屋にはあるの？」&lt;/p&gt;
&lt;p&gt;「えっ？　あ、その……」&lt;/p&gt;
&lt;p&gt;間仕切り扉を指差す姿を見て、私はどきりとする。好意的に見ればクローゼットの扉とも誤魔化せそうだったけど、ベランダに出た上に、しかも室外機という誤魔化しようもない証拠を抱えた今ではもうどうしようもない。&lt;/p&gt;
&lt;p&gt;「ふふっ。私に見せられないほどに散らかっているのかしらね？」&lt;/p&gt;
&lt;p&gt;「そういうわけじゃ、ないけど」&lt;/p&gt;
&lt;p&gt;どう言えばいいのだろう、と思いながら私は言いよどむ。ゆらゆらと足を左右に進めながら、何度も視線を行ったり来たりさせた。&lt;/p&gt;
&lt;p&gt;「安心して。許可無く人の家を漁る気はないわ。エアコンがなくても涼しいし」&lt;/p&gt;
&lt;p&gt;「べ、別に汚いわけじゃないからね？　見せられないってことはないけど、なんか恥ずかしいっていうか」&lt;/p&gt;
&lt;p&gt;「どうしたの？　見てほしいのか、見てほしくないのか、分からないわよ」&lt;/p&gt;
&lt;p&gt;そう言って、文香はテーブルに着こうとした。私はそれを止めるように声を掛ける。&lt;/p&gt;
&lt;p&gt;「……いいよ。開けてみてよ」&lt;/p&gt;
&lt;p&gt;何故私がこんなことを口走ってしまったかは分からない。&lt;/p&gt;
&lt;p&gt;彼女に隠し事をしている罪悪感のせいか、あるいは、ほのかな期待に縋っていたのかもしれない。最近のアヤを見ていると心に湧き上がってくる、どんな私でも受け入れてくれるだろうという、妄想にも近い淡い期待に。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;がらがらと扉が引きずられて開く音を聞きながら、終わった、と心の中で言った。&lt;/p&gt;
&lt;p&gt;アヤの部屋は、厚手のカーテンから漏れる光が少し部屋を走っているだけで、涼しくて薄暗い少し不気味な部屋だ。そんな部屋の中で、文香は当然真ん中で存在感を放つラブ・ドールに注目して、それから不思議そうに部屋を見回す。&lt;/p&gt;
&lt;p&gt;「あら、エアコンがついてるのね。えっと、これはお人形のお部屋？」&lt;/p&gt;
&lt;p&gt;「う、うん。そんなところかな。私、人形遊び好きだから」&lt;/p&gt;
&lt;p&gt;上擦った声で文香の背中に話しかける。見られていないのをいいことに、シャツの裾をぎゅっと握りしめても、緊張は少しも解けなかった。狭い部屋で、ばくばく走る心臓の音が文香まで届いてしまいそうだ。&lt;/p&gt;
&lt;p&gt;「随分と大きなお人形なのね。まるで、本当の人間みたい」&lt;/p&gt;
&lt;p&gt;そうなの、リアルでいいでしょ、と昨晩眠りに入る前に何度かシミュレーションしていた中から、誤魔化すに足る無難なものを選び出していく。&lt;/p&gt;
&lt;p&gt;文香がしゃがみこんで、アヤの眼と高さを合わせる。まじまじとした視線は――当然だけど――アヤのそれとは交わらず、まるで彼女が動けないほどの恐怖にでも襲われているかのように見えた。&lt;/p&gt;
&lt;p&gt;「なんだか、私みたいな容姿をしてるのね」&lt;/p&gt;
&lt;p&gt;「そ、そうかな……？」&lt;/p&gt;
&lt;p&gt;部屋に風が流れ込んで、後ろから二人の髪を揺らす。&lt;/p&gt;
&lt;p&gt;「もしかして、スケッチにでも使ってるの？　確かに、よく見ていた人間ならイメージが湧きやすいかもしれないわね」&lt;/p&gt;
&lt;p&gt;文香がしゃがみこんだままこちらを向いた。彼女の純粋な興味を帯びた視線が、アヤから私に移されたけど、やはり私もその視線に応えることはできなかった。&lt;/p&gt;
&lt;p&gt;「……うん、そう、スケッチ。スケッチするのに使ってる。文香が芸術に夢中なのを見て、思わず買っちゃったの」&lt;/p&gt;
&lt;p&gt;「ふぅん、そうなの？　でも私たち、会ってから二週間くらいしか経ってないけど、そんなに早く届くものかしら？　買ったばかりのものにも見えないし」&lt;/p&gt;
&lt;p&gt;言ってすぐ、蛇足だったと思った。&lt;/p&gt;
&lt;p&gt;私に向けられる視線に見え隠れする疑念のようなものが、やはり私にも動けないほどの恐怖を与える。嘘で塗り固めて誤魔化そうとしても、最後には全ての真実を明かされるのではないかという、そういう想像が私を駆け巡った。&lt;/p&gt;
&lt;p&gt;「その、それはね……ち、違うの」&lt;/p&gt;
&lt;p&gt;「まぁ、別に矛盾を突いて困らせたいわけじゃないから、いいんだけど」&lt;/p&gt;
&lt;p&gt;文香が立ち上がって、そのままぐるりと部屋を見渡す。視線は私から離れても、未だに突き刺さるようなものが心に残っている。&lt;/p&gt;
&lt;p&gt;「でも、なんだかここにいると、高校生の頃に戻ってきたような気分になるわ」&lt;/p&gt;
&lt;p&gt;ちくり、ちくり。テレビ、机、ベッド、カーペット。全部が文香の部屋と一緒だ。その通りだ。だってわざわざそうしたから。&lt;/p&gt;
&lt;p&gt;「それに、このルームウェア。鏡を見てるみたい」&lt;/p&gt;
&lt;p&gt;ちくちくちく。文香が着ていたのと同じ、可愛らしい黄色のルームウェア。&lt;/p&gt;
&lt;p&gt;「どうしたの、黙っちゃって？」&lt;/p&gt;
&lt;p&gt;部屋をひとしきり眺め終えた文香が、振り返って私を見下ろした。&lt;/p&gt;
&lt;p&gt;「な、なんでもないよ。別にそんなの、偶然じゃ――」&lt;/p&gt;
&lt;p&gt;「ねぇ、本当にこれ、スケッチのためのスタジオなの？」&lt;/p&gt;
&lt;p&gt;私の言葉を遮る文香が、ぐっと顔を近づける。嘘への罪悪感を視線で貫かれているようでくらくらとした。首元からは、シトラスの香水と混じりあったむわりとした濃い匂いがして、それがさらに私の視界を心地よく揺らす。&lt;/p&gt;
&lt;p&gt;「違うよ。ごめん、嘘ついた」&lt;/p&gt;
&lt;p&gt;「ショック。紫織も嘘をつくのね。じゃあ、何に使っているのかしら？」&lt;/p&gt;
&lt;p&gt;私は黙りこむ。昨日はこの悪癖を隠し通すか、さらけ出すか、なんて大層なことを考えてみたけど、そんな決断をしっかりと下すのは私にはまだ無理だった。&lt;/p&gt;
&lt;p&gt;「だんまり？　じゃあ……例えば、私とのおままごととか？」&lt;/p&gt;
&lt;p&gt;直球だった。当然だ。もういくら誤魔化そうとしたところで、証拠が揃いすぎて誰だって分かってしまうだろう。ましてや私を良く知る文香のことだ、かなりの確信と共に導いた答えに違いない。&lt;/p&gt;
&lt;p&gt;こくり、と頷くと、文香はそっか、と小さく返した。&lt;/p&gt;
&lt;p&gt;「私とのおままごとって、私から言っておいてなんだけど、楽しいの？」&lt;/p&gt;
&lt;p&gt;「ね、文香。覚えてるよね？　私はね、あなたに乱暴をしたから、あなたから離れなきゃいけなくなったの」&lt;/p&gt;
&lt;p&gt;私は振り返って、壁に向かって話し始めた。文香がどんな表情をして聞いているかなんて、見たくなかった。&lt;/p&gt;
&lt;p&gt;「でも……私、あなたのことが大好きで、離れてもあなたを忘れられなくて。その気持ちを、こんな人形にぶつけてるんだよ。バカみたいでしょ？」&lt;/p&gt;
&lt;p&gt;あはは、と乾いた笑い声が部屋に響いて、自虐をより一層痛々しくする。私は文香の答えを待たずにさらに続けた。&lt;/p&gt;
&lt;p&gt;「だからね、楽しいか楽しくないかって言われたら、寂しいし、全然楽しくないよ。でも私は、これに縋るしかないから」&lt;/p&gt;
&lt;p&gt;今、文香はどんな顔でこれを聞いているのかな。そんなの想像も付かないし、例えどんな表情だとしても私の心を苦しめることだろう。だからこの顔を見せない口上は、私だけがすっきりするためのものだ。&lt;/p&gt;
&lt;p&gt;「気持ち悪いでしょ？　自分でも分かってるの。今日だってこれ、最初はちゃんと隠し通そうって思ってた。こんなのわざわざ見せられたって、文香を困らせるだけだし」&lt;/p&gt;
&lt;p&gt;心が全部あらわになって、丸裸で縛られていく。&lt;/p&gt;
&lt;p&gt;「今日はもう、帰ってくれる？　私、もうどんな顔で文香と喋っていいか分かんないよ」&lt;/p&gt;
&lt;p&gt;「気持ち悪いだなんて思わないわ。おままごとくらいなら、幼稚園児でもするじゃない」&lt;/p&gt;
&lt;p&gt;「それは、そうだけど……」&lt;/p&gt;
&lt;p&gt;「だけど？　だけど、どうしたの？　あなたの様子を見てると、何だかまるで――」&lt;/p&gt;
&lt;p&gt;――まるで、気持ち悪いって、言われるのを待ってるみたいだけど。&lt;/p&gt;
&lt;p&gt;ばっ、と振り向くと、文香は余裕を帯びた優しい笑顔でそこに立っていた。私の隠したいことは、全部彼女も最初から知っているのだと言わんばかりに。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;シオちゃんが、髪が舞い上がるのも気にせずに思い切り振り向いた。&lt;/p&gt;
&lt;p&gt;彼女は分かりやすい。嘘だって隠し事だって、全部分かってしまう。初めからこんなに話してくれるとは思わなかったけれど。&lt;/p&gt;
&lt;p&gt;「やっとこっちを向いてくれたわね、紫織」&lt;/p&gt;
&lt;p&gt;「なにそれ。気持ち悪いだなんて、わざわざ言ってほしいわけないじゃん」&lt;/p&gt;
&lt;p&gt;シオちゃんを見るとなんとなく伝わってくる。こうしたい、ああしてほしい。今だってそう、私に手酷く罵られることを期待しているように見えるのだ。&lt;/p&gt;
&lt;p&gt;「でも、紫織が許可さえしなければ、私はここを開けることも、このお人形の様子を知ることもなかったわ。それなのに、どうして開けてもいいなんて言ったのかしら？」&lt;/p&gt;
&lt;p&gt;彼女は隠し事を全部教えてくれたのだから、私もしっかりと教えてあげることにした。&lt;/p&gt;
&lt;p&gt;「本当は、私にお人形のことを知って欲しかったんじゃない？　それを見た私に、酷いことを言われたかったんじゃない？」&lt;/p&gt;
&lt;p&gt;「そんなわけ、ないじゃん。隠し事してる罪悪感を消そうとしただけだよ」&lt;/p&gt;
&lt;p&gt;「ふぅん。そう、罪悪感ね。どちらにせよ、気持ち悪いけど」&lt;/p&gt;
&lt;p&gt;気持ち悪い、ともう一度強調して言うと、ぴくり、と彼女の身体が揺れた。その後に驚いた素振りを見せる辺り、シオちゃん自身も気付いていない類の快感だったのだろう。&lt;/p&gt;
&lt;p&gt;自分の心の黒くて恥ずかしい部分を私にさらけ出したせいで、普段とは違う気分を味わっているのかもしれない。&lt;/p&gt;
&lt;p&gt;「じゃあ、その罪悪感ついでに、もう少しお人形を見せてもらっても良いかしら？」&lt;/p&gt;
&lt;p&gt;「……勝手にすれば。もう、文香には降参する」&lt;/p&gt;
&lt;p&gt;「もう。勝手に、だなんて言ったら、あなたのパートナーが悲しんじゃうわ」&lt;/p&gt;
&lt;p&gt;彼女から、おどおどとした弱々しい接し方が徐々に消えているのを見て私は安心する。隠し事が明らかにされて自棄になったせいか、シオちゃんのいう私への罪悪感や後ろめたさが表に出てこなくなったらしい。&lt;/p&gt;
&lt;p&gt;失礼します、と軽く一礼して敷居をまたぐ。部屋の中が凍りついているように感じるのは、ずっと冷房が入っているせいもあるけれど、やはり部屋のど真ん中に鎮座する大きなお人形が放つ非人間らしさのせいだろう。&lt;/p&gt;
&lt;p&gt;そのお人形の前にはガラステーブルが置かれているので、私は横にしゃがんでから頭部の辺りを覗き込む。&lt;/p&gt;
&lt;p&gt;「えぇと、なんと呼べばいいのかしら？　お名前はあるの？」&lt;/p&gt;
&lt;p&gt;「……アヤ」&lt;/p&gt;
&lt;p&gt;私は思わず振り向いた。耳を疑ったのは、それは私を指す名のはずだからだ。&lt;/p&gt;
&lt;p&gt;「もう一度、言ってくれる？」&lt;/p&gt;
&lt;p&gt;「だから、私はこのお人形さんをアヤって呼んでるの。何回も訊かないで」&lt;/p&gt;
&lt;p&gt;さっきショックだとわざわざ口に出した時とは違う、本当の衝撃が私の中を走っていった。あの頃私に向けられていたはずのあだ名が、いつの間にか目の前のお人形に奪われていたと思うと、何だか悔しい。&lt;/p&gt;
&lt;p&gt;「そっか。だから私のことをアヤって呼んでくれなかったのね。操を立てるという意味もこもってるのかしら」&lt;/p&gt;
&lt;p&gt;「そんなんじゃないよ。ただ、ここにいる時くらいあの頃を思い出したかっただけ」&lt;/p&gt;
&lt;p&gt;あの頃、というのはシオちゃんが私を求めたあの日よりも前のことだろう。あの日を境にシオちゃんは部室に来てくれなくなったから。&lt;/p&gt;
&lt;p&gt;私がまた振り返ってお人形を観察しようとしたところで、ざあ、と寂しげな声を掻き消すように、急に外から雨音が聞こえ出した。&lt;/p&gt;
&lt;p&gt;「雨が降ってるみたい。夏の夕方は不安定だものね」&lt;/p&gt;
&lt;p&gt;「……うん。窓、閉めてくるね」&lt;/p&gt;
&lt;p&gt;シオちゃんの足音を聞きながら、私は目の前の芸術品を見つめることにした。&lt;/p&gt;
&lt;p&gt;「なるほど、よくできてるのね」&lt;/p&gt;
&lt;p&gt;小さな鼻に、ぷるんと光る桜色の唇。くるりと長い睫毛を携えた様子を見つめていると、急に眼をしばたたかせたように見えた。それが急に雨で暗くなった部屋に灯された電灯の光のせいだと分かったあたりで、はっと我に返る。&lt;/p&gt;
&lt;p&gt;すらりと伸びた手脚は、透き通るような肌で覆われていて、指先や関節の一つ一つまで美しい。身体の大部分はもこもことした黄色い水玉の布地――私がシオちゃんが家に来る度に着ていたルームウェアによく似ている――に覆われていて全ては分からないが、これが誰もが求める理想的なボディというものなのだろう。&lt;/p&gt;
&lt;p&gt;そこには、永遠の静けさと共に一連の完成した美しさがある。&lt;/p&gt;
&lt;p&gt;しかしそれは、人間が本来持っている自然さをすっぱりと捨ててしまった、実に不自然な美貌だ。美しく見えるために限りなく洗練されたその体躯は、一見すると唯一無二の芸術品と呼べるように思えても、実は大量生産に向いた工業製品になるためにある程度の最適化を施してあるように見える。良く言えば作りやすい。悪く言えば、オリジナリティの無い部分が透けて見えてしまう。&lt;/p&gt;
&lt;p&gt;もしかしたら人間だって工業製品みたいなものなのかもしれないけれど。&lt;/p&gt;
&lt;p&gt;雨粒が叩きつけられる音が幾分柔らかくなり、シオちゃんが窓を閉め終えたとわかる。外から流れ込んでいた自然な空気が断ち切られ、優しさのない冷ややかな人工の風がお人形の髪を揺らす。それがこの部屋にはよく似合っていた。&lt;/p&gt;
&lt;p&gt;「どんなふうに扱えばいいの？　触っても大丈夫？」&lt;/p&gt;
&lt;p&gt;振り向いてそう訊くと、シオちゃんはきょとんとした顔。私がこんなに興味を示すのが意外だったとみえる。悔しいけれど私に向けられていたニックネームを受け継いでいるんだから、観察しておいて損はない。&lt;/p&gt;
&lt;p&gt;「普通の人に触るよりも、ちょっとだけ優しくしてあげて。怪我なんかしちゃっても自然には治らないから。当たり前だけど」&lt;/p&gt;
&lt;p&gt;注意を告げるシオちゃんは、少し照れていたようだった。どうしてか、その様子を見ているとあまり良い気持ちがしない。&lt;/p&gt;
&lt;p&gt;「分かったわ。ではまた、失礼しますね、アヤさん……」&lt;/p&gt;
&lt;p&gt;私は指でお人形の頬を突付くようにして触れる。ぷにぷと、一見柔らかい感触が指から伝わってくるけれど、この下には生物らしさの欠片もない整然とした金属か何かの骨格があるのだろう。少しひんやりとする無機質な素材の上に形作られた脆い理想のような、不用心に触れたら全てが壊れてしまいそうな儚げなものを感じさせる。&lt;/p&gt;
&lt;p&gt;右手で頬を包み込むようにすると、その冷たさがしかと伝わってくるようになる。この冷たさが彼女を非生物たらしめて、永遠を担保しているように思えてならない。&lt;/p&gt;
&lt;p&gt;もし今私が気が狂ったようにして、このシリコンの皮膚をすぱすぱと切りつけてしまったら、彼女たちの世界は壊れてしまうのだろうか。そうするだけで彼女の持つだろう永遠が終わりを迎えるのだとしたら、アヤの名は私に戻ってくるのかもしれない。&lt;/p&gt;
&lt;p&gt;「ね、ねぇ。そろそろ、やめてもいいんじゃない？　アヤも恥ずかしがってるし」&lt;/p&gt;
&lt;p&gt;「あら、恥ずかしいのは紫織でしょう？　あなたが大好きな私が二人もいて、触れ合ってるんですもの。確かに何もせずには見ていられなくなっちゃうかもね」&lt;/p&gt;
&lt;p&gt;くすくすと、あなたの痴態を見て笑っているのよと言うような声を浴びせた。&lt;/p&gt;
&lt;p&gt;シオちゃんはそっぽを向いてしまって、顔は見えないけれど、みるみる赤くなっているだろう様子が良く分かる。&lt;/p&gt;
&lt;p&gt;「うぅ……い、言わないでっ！いいから、早くアヤから離れてよ！」&lt;/p&gt;
&lt;p&gt;「分かったわ。そろそろ休憩も終わりにしないとね」&lt;/p&gt;
&lt;p&gt;私はお人形に一礼して、立ち上がって、振り返って……と、あれを忘れていた。&lt;/p&gt;
&lt;p&gt;「えっと、そのノートは？」&lt;/p&gt;
&lt;p&gt;木製の丸みを帯びた子供用らしい学習机――これもおそらくは私が使っていたものを意識したのだろう――に、ありふれたＡ４三十ページの学習ノートが置かれている。表紙には黒いマジックペンで「16」とだけ記されており、内容は推察できない。おそらく大学で使っているノートをここに置くことはないだろうから、初めに部屋を見回した時から何に使われているのか気になっていた。お人形の取り扱い備忘録か何かだろうか。&lt;/p&gt;
&lt;p&gt;「あっ！それは、ダメ！」&lt;/p&gt;
&lt;p&gt;慌ててノートを取ろうとするシオちゃんをわざわざ素早く追いかけることもせず、私はゆっくりと机に近づいた。&lt;/p&gt;
&lt;p&gt;「そんなに焦ってどうしたの？　まるで、壮大な犯行計画でも書いてあるみたい」&lt;/p&gt;
&lt;p&gt;十六番目のノートは机を背にした彼女の胸に抱えられている。その様子が一冊のノートだけでなく机ごと守っているようにも見えて、引き出しの中にバックナンバーが保管されているのだろうと推測させた。&lt;/p&gt;
&lt;p&gt;「これは黒歴史みたいなものだから、絶対誰にも見せられないよ。だって、こんなのもし文香に見られたら、また……」&lt;/p&gt;
&lt;p&gt;「また、気持ち悪いって言われちゃう？」&lt;/p&gt;
&lt;p&gt;私がそう訊くと、彼女は恥ずかしげに小さく頷いた。&lt;/p&gt;
&lt;p&gt;「見ちゃダメなの？　それとも、見て欲しいの？」&lt;/p&gt;
&lt;p&gt;じっと、瞳の奥を見つめるようにする。シオちゃんはこういう見透かされているような視線に弱い。&lt;/p&gt;
&lt;p&gt;「あ……う……み、見てもいい、けど……また、気持ち悪いって言われちゃう……」&lt;/p&gt;
&lt;p&gt;シオちゃんは手に持ったノートを差し出しながら、もう片方の腕で目を隠す。その証拠品をぱらぱらとめくると、日付と一緒にシオちゃんとお人形の会話録みたいなものが書いてあった。日記だろうか。&lt;/p&gt;
&lt;p&gt;この日記では、私とシオちゃんが付き合っているという設定らしい。厳密にはこのお人形となのだけど、それを通して私を見ているはずだから、私と言ってもいいだろう。もっとも、偶像を通して見つめる私が本当の私とは限らないのだけど。&lt;/p&gt;
&lt;p&gt;シオちゃんが付き合っている『私』は、実に彼女と仲睦まじげだった。手を繋ぐ、見つめ合う、キスをする。そんなことは日常茶飯事で、時には同じ布団で眠ることもある。朝は必ず『私』が早く起きて、目覚めるまでシオちゃんのことを見つめているのだという。&lt;/p&gt;
&lt;p&gt;「このアヤちゃんは、夜になると動いたりお喋りしてくれたりするの？」&lt;/p&gt;
&lt;p&gt;「ううん、それはただの妄想。アヤと一緒にいる時の妄想を書き留めたノートなの。ここにいると、いろいろ考えちゃうから。やっぱり、気持ち悪い……？」&lt;/p&gt;
&lt;p&gt;「えぇ、そうね。気持ち悪いわ。紫織がこんな変態だったとは思わなかった」&lt;/p&gt;
&lt;p&gt;「へ、変態？」&lt;/p&gt;
&lt;p&gt;シオちゃんが下を向いて手をもじもじさせた。新しい罵り文句も気に入ったらしい。&lt;/p&gt;
&lt;p&gt;「親友を勝手に自慰のための妄想に使って、それをわざわざノートに書き留めているのでしょう？　私には、節操のない変態にしか見えないけど」&lt;/p&gt;
&lt;p&gt;変態と言われた時の歪んだ喜びも忘れて、親友か、と今度は少し照れたようだった。結局、私には何を言われても嬉しいのだろう。&lt;/p&gt;
&lt;p&gt;「でも、紫織はこれじゃ、満足できないんじゃない？」&lt;/p&gt;
&lt;p&gt;そう確信して、私は核心に迫ることにした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「……え？　た、確かに、そうだけど」&lt;/p&gt;
&lt;p&gt;人形とのお遊びじゃ、満足できない。そんなの最初に言ったことだ。どうして文香が急にそんなことを蒸し返したのか分からなかった。&lt;/p&gt;
&lt;p&gt;「だって、お人形は血を出さないもの。血だけじゃないわ。このお人形が、一滴だってあなたのために体液を出してくれたことはある？」&lt;/p&gt;
&lt;p&gt;文香が一歩前に出て、ずいと私を覗き込む。私は後ろに下がろうとしたけれど、机があるのを忘れていたせいで不格好に上半身を少しのけ反らせるくらいしかできなかった。&lt;/p&gt;
&lt;p&gt;「そ、そんなのできるわけないじゃん。人形なんだもん」&lt;/p&gt;
&lt;p&gt;「そうよね。だから、紫織は絶対に満足できないの。違う？」&lt;/p&gt;
&lt;p&gt;「えっ？　人形に体液が通ってないと、私が満足できないってどういう……」&lt;/p&gt;
&lt;p&gt;ここまで口に出したところで私は、はっ、として、彼女が何を言わんとしているのかを理解してしまう。私が口をぱくぱくとさせていると、文香は私からぴょこりと跳ねるように離れた。&lt;/p&gt;
&lt;p&gt;文香が後ろで手を組んで腰をかがめてこちらを見る。じっと見られていると、まるで私が見世物であるかのように思えてきた。&lt;/p&gt;
&lt;p&gt;「関係あるでしょう？　私の血を舐めて、挙句の果てに私を襲っておいて。その相手の前でとぼけようっていうの？」&lt;/p&gt;
&lt;p&gt;「ね、ねぇ文香。この話、やめない？」&lt;/p&gt;
&lt;p&gt;そう言いながら倒した身体を再び起こすと、文香はすかさずすれ違うようにして私の耳元に口を近づける。くすっ、という笑い声が耳に当たって、身体の芯からくすぐったい感じが上ってくるようでぞくぞくした。&lt;/p&gt;
&lt;p&gt;「大好きな人の体液に興奮を覚えるあなたが、体液のひと滴も出ないこんなお人形で満足できるっていうの？」&lt;/p&gt;
&lt;p&gt;こうやってはっきり訊かないと分からないのかしら、という言葉に、私は目の前が真っ白になる。血の通った文香と血の通わないアヤが触れ合っている様子が思い出されて、その想像の中で文香だけがきらめく輝きを放っているように見えた。&lt;/p&gt;
&lt;p&gt;ふっと、文香が私の耳に息を吹きかける。今度はわざと。当たるか当たらないかのくすぐったさがない代わりに、それはしっかりと私に直撃して、きらきらとした想像をかき消した。私はすっかり身体の力が抜けて、とすんと尻餅をついてしまう。&lt;/p&gt;
&lt;p&gt;「ひゃうっ！な、何するの……？」&lt;/p&gt;
&lt;p&gt;「どうなの？　あなたは、このお人形で満足？」&lt;/p&gt;
&lt;p&gt;私は引き出しに寄りかかって座り込んだまま、ふるふると首を振ってその質問を否定する。文香は私の視線に合わせてしゃがみこんで、言葉を続けた。&lt;/p&gt;
&lt;p&gt;「そうね、不満よね。じゃあ、私ならどう？」&lt;/p&gt;
&lt;p&gt;「文香なら、って？」&lt;/p&gt;
&lt;p&gt;少しだけ高い文香の視線に応えるようにして、ちらりと彼女を見上げる。&lt;/p&gt;
&lt;p&gt;「例えば、今キスをして、重力に任せてあなたと体液を交換するの。あなたが欲しかった私を、好きなだけ貪りたくはないかしら？」&lt;/p&gt;
&lt;p&gt;「キス、してくれるの……？」&lt;/p&gt;
&lt;p&gt;ごくり。唾を飲む音が聞こえてしまわないだろうか。&lt;/p&gt;
&lt;p&gt;「いいわよ、あなたがしたいのなら。紫織からしたい？　それとも、私がする？」&lt;/p&gt;
&lt;p&gt;「……文香がして。文香にしてほしい」&lt;/p&gt;
&lt;p&gt;「えぇ。分かったわ」&lt;/p&gt;
&lt;p&gt;にこりとした文香を見ると顔が熱くなって、見上げた視線が定まらなくなる。ほぅと吐く息が熱い。どんな表情で彼女のキスを待てばいいのか分からなくなって、私は下を向いてしまう。&lt;/p&gt;
&lt;p&gt;文香とのキス。彼女の初めては、私が強引に奪ってしまった。柔らかい唇と不規則な浅い吐息を器にして、とろとろとした唾液を夢中になっていくらでも掬い取った。あんな自分勝手な幸せは、後にも先にももうないだろう。思い出すだけで息が荒くなって、顔が熱くなって、何も考えられなくなる。&lt;/p&gt;
&lt;p&gt;紫織、と呼びかけられてまた文香を見上げると、彼女の人差し指が私の唇に、一瞬だけついと当てられた。&lt;/p&gt;
&lt;p&gt;「私からしてほしいのでしょう？　顔を上げて。目を閉じなきゃキスできないわ」&lt;/p&gt;
&lt;p&gt;目を閉じると、すぐに文香の唇が私に触れた。私の首に手を回して、少しだけ高い位置から、ちゅ、として。何度か唇が触れ合って、また、ちゅ、と音を立てる。&lt;/p&gt;
&lt;p&gt;何度かついばむようなキスをしてから、ちろと文香が私の唇を舐めた。驚いて思わず目を開けると、文香とばちっと目が合う。悪戯っぽい笑みを浮かべる彼女は、ダメよ、と声に出さずに言ってから、じっと私に熱い視線を送ってくる。初めはその視線から離れられずにいたけれど、とうとう恥ずかしくなって私は目を閉じた。&lt;/p&gt;
&lt;p&gt;すると、すぐにまた彼女の攻めが始まる。今度はもう少し激しいキスだ。たらたらと文香のジュースが私の舌へと渡される。時折漏れる互いの吐息がどんどん激しくなって、私も文香も昂ぶっているのを肌で感じられる。&lt;/p&gt;
&lt;p&gt;彼女の体液は舌からじわじわ広がって私の身体に入っていって、どろどろになって私と混じり合っていくのだ。文香の言うとおり、私は大好きな文香の体液に興奮を覚えるいやらしい人間だから、そんな想像は私の身体にこの上ない快感を刻んでいった。&lt;/p&gt;
&lt;p&gt;彼女とのファースト・キスを思い出して、それよりもずっと幸せな気持ちが広がっていくのを意識する。お互いが同意してするキスは、触れ合う度に見えない気持ちが交換されていくような気がしてもっと気持ちいい。私は文香から伝わる優しさに安心して抱かれていった。&lt;/p&gt;
&lt;p&gt;「……っ……ふぁ……」&lt;/p&gt;
&lt;p&gt;つつ、と銀色の糸が引かれてすぐにぷつりと消え去った。&lt;/p&gt;
&lt;p&gt;「私からするのは初めてね、紫織」&lt;/p&gt;
&lt;p&gt;文香も、乱暴に私が奪いとった初めてをきちんと覚えていた。普段は凛々しくて、少し触れるのにも心高鳴る彼女が、あの時だけは私の下でされるがままになっていたのだ。あの光景が文香の中にも残っていると思うと、胸がきゅうとして、でも不思議な嬉しさを感じる。&lt;/p&gt;
&lt;p&gt;当時の光景がリアルに思い出されて、文香のいなくなった唇が急に寂しくなった。&lt;/p&gt;
&lt;p&gt;「も、もうおしまい？」&lt;/p&gt;
&lt;p&gt;「物足りないの？　大丈夫よ、キスなんていつでもできるから」&lt;/p&gt;
&lt;p&gt;「いつでも、してくれるの？　じゃ、じゃあ今、もう一回して」&lt;/p&gt;
&lt;p&gt;「なぁに、興奮してきちゃったの？　最初にお人形を見られた時は泣きそうな声で、帰ってほしい、って言ってたのに」&lt;/p&gt;
&lt;p&gt;耳元で、気持ち悪いわね、と囁かれてまた身体の力が抜ける。&lt;/p&gt;
&lt;p&gt;「でもね、今はダメ。作業が終わってないの。今日はもともと絵を描きに来たのよ？」&lt;/p&gt;
&lt;p&gt;「そ、そんな……」&lt;/p&gt;
&lt;p&gt;「私が一段落するまで、一人で我慢できる？」&lt;/p&gt;
&lt;p&gt;ふるふる。私はまた首を振る。それを見た彼女は、紫織はわがままなのね、とくすくす笑った。私の浅ましさを嘲るように。&lt;/p&gt;
&lt;p&gt;「じゃあ、お人形さんで発散したい？　それとも、私とそういうこと……したい？」&lt;/p&gt;
&lt;p&gt;「文香。文香ともっとキスがしたいの」&lt;/p&gt;
&lt;p&gt;私は力の抜けた身体を無理矢理起こして、文香に抱きついた。不意に私に体重を掛けられて、文香は私ごとバランスを崩して倒れてしまう。ちょうど押し倒したような形になって、まさに当時のままの構図である。あの時の私は、このまま強引にキスをしたのだ。どきどきとして、文香の唇から目が離せない。&lt;/p&gt;
&lt;p&gt;「……っ！ふ、文香っ！」&lt;/p&gt;
&lt;p&gt;「ふふっ、紫織って本当に気持ち悪いのね。何度言ってもダメよ、まだ我慢するの」&lt;/p&gt;
&lt;p&gt;今私が有無を言わさずキスすれば、そんな命令に意味はなくなってしまう。そうしてしまいたい。でも、そんなことはしてこないと文香は分かっている。&lt;/p&gt;
&lt;p&gt;その笑顔は、私のことを弄んで楽しんでいるみたいだった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「私をずっと好きでいてくれたの？　私を襲ったあの時か、その前から」&lt;/p&gt;
&lt;p&gt;「そうだよ。ずっと、好き。いつからかなんて、分かんないけど」&lt;/p&gt;
&lt;p&gt;文香が水彩の続きをしながら、私に話しかける。私は体育座りで作業の様子を後ろからぼーっと眺めていた。さっきのキスは、その刺激をすぐに受け入れるには衝撃的すぎて、今になってやっと私の身体にじわじわといやらしさを植え付けていっていた。&lt;/p&gt;
&lt;p&gt;早めの夕立だと思っていた雨は案外長引いてしまって、夏には似合わない灰色の空が辺りをすっかり暗くしている。&lt;/p&gt;
&lt;p&gt;正直早く一人にしてほしいけど、本当は帰ってほしくなんてない。帰ってほしくないけど、文香が振り向けばすぐに見られてしまうような状況で一人で自分を慰めるなんて勇気もない。ぐるぐるとした欲望が時々私の身体を震わせた。&lt;/p&gt;
&lt;p&gt;「じゃあ、付き合ってほしいと言ってくれれば良かったのに」&lt;/p&gt;
&lt;p&gt;「そんなの、無理だよ。だって友達だもん」&lt;/p&gt;
&lt;p&gt;「お友達だと、恋人になれないの？」&lt;/p&gt;
&lt;p&gt;「女の子同士で付き合うだなんて、真面目な文香が許すわけないよ。私だって、文香がこんなに好きだなんて……最初は戸惑ってたし」&lt;/p&gt;
&lt;p&gt;かちゃ、と筆を置く音がして、文香が振り向いた。正座のままでこちらを見つめる不満そうな顔に、ばちっと目が合う。&lt;/p&gt;
&lt;p&gt;「私にも、人相応に怠惰で不真面目なところくらいあるわ。紫織は私を完璧だと思いすぎなんじゃないかしら」&lt;/p&gt;
&lt;p&gt;彼女が真面目だから、友達だからなんてのは、私が勇気を出せなかった言い訳だ。私は膝に顔を埋めてさらに言い訳を加える。&lt;/p&gt;
&lt;p&gt;「ずっと長いこと友達やってきて、それを壊したくなかったの」&lt;/p&gt;
&lt;p&gt;「友達だからダメって言うのなら、いっそのこと私と付き合ってみない？　お人形を使うよりは、満たされると思うけど？」&lt;/p&gt;
&lt;p&gt;前方から聞こえる声に、私は抱え込む腕の力が強くなるばかりで、顔を上げられない。本当は願ったり叶ったりの提案だけど、手放しで喜ぶ気にもなれなかった。&lt;/p&gt;
&lt;p&gt;「紫織？」&lt;/p&gt;
&lt;p&gt;「今付き合うって言ったら……キスしたいからとか、えっちしたいからとか、そんな理由になっちゃう。だから、やだ」&lt;/p&gt;
&lt;p&gt;じくじくと疼く赤い傷口は、確かに文香を性的に求めているけれど、私の心はまだその欲望を許せずにいた。&lt;/p&gt;
&lt;p&gt;「あら、私とセックスしたかったの？」&lt;/p&gt;
&lt;p&gt;「例えばの話だよ。キスは……うん、したいけど」&lt;/p&gt;
&lt;p&gt;「じゃあ、セックスフレンドでもいいわ。キスフレンドって言えばいいのかしら？」&lt;/p&gt;
&lt;p&gt;私は思わず顔を上げる。文香の頬に朱がさして彼女までもが発情して見えてしまうのは、きっと私の欲情の反映なのだと思う。今日の文香は私の知ってる彼女じゃないみたいだ。少なくとも、私には直視できないようないやらしさを孕んでいる。&lt;/p&gt;
&lt;p&gt;「女の子同士でせ、セフレだなんて……て言うか、セフレ自体良くないよ」&lt;/p&gt;
&lt;p&gt;「良くない、っていうのは、背徳的ってことかしら。私、背徳的なのも好きよ」&lt;/p&gt;
&lt;p&gt;一度離れた膝の間に戻る気にもなれず、逸らした視線は文香の肩の向こうへと投げられた。ぼんやりと、今朝軽く片付けられたままのベッドが目に入る。&lt;/p&gt;
&lt;p&gt;「文香。もしかして、大学でそういうことしてるの？」&lt;/p&gt;
&lt;p&gt;「そういうことって、どういうこと？」&lt;/p&gt;
&lt;p&gt;「身体だけの関係っていうの、良くないと思う。文香は綺麗だし、身体目当てで寄ってくる人もいっぱいいるとは思うけど、そんな、自分の安売りみたいな――」&lt;/p&gt;
&lt;p&gt;「いやだわ、勘違いしないで？　こんなこと言うのは、あなただけよ」&lt;/p&gt;
&lt;p&gt;文香が私の言葉を遮る。それから彼女は正座を崩し、這うようにして私に近づいた。私はちら、と文香の顔を一瞥してからまた自分の寝床に視線を落ち着かせる。&lt;/p&gt;
&lt;p&gt;「それに、私達はずっと幼馴染として心を通いあわせてきたじゃない。今更身体だけの関係だなんて、そんなの無理に決まってるわよ」&lt;/p&gt;
&lt;p&gt;四つん這いになったままの文香が下から覗きこむようにして顔を近づけるから、嫌でも目を合わせることになってしまう。さっきよりも近くて鮮明になった文香の顔は、今度は確かにその紅潮を私に意識させた。&lt;/p&gt;
&lt;p&gt;「じゃあなんで、セックスフレンドになろう、だなんて言うの？」&lt;/p&gt;
&lt;p&gt;「恋人よりは、あなたが気軽に受け入れてくれるんじゃないかと思って」&lt;/p&gt;
&lt;p&gt;文香が体育座りしたままの私の首に手を回した。上半身でのしかかるようにしてさらに顔を近づけて、彼女は耳元で囁く。&lt;/p&gt;
&lt;p&gt;「私、これでも紫織を誘惑してるつもりなのだけれど、気付いているかしら？」&lt;/p&gt;
&lt;p&gt;膝を抱えた腕の辺りにむにゅり、と胸の感触が伝わってきた。暖かな柔らかさが文香がそこにいる実感を確かにする。ふわりとシャンプーの香りがした。&lt;/p&gt;
&lt;p&gt;「わ、分かんない。知らないよ」&lt;/p&gt;
&lt;p&gt;「でも、息が荒いわよ？」&lt;/p&gt;
&lt;p&gt;「それは、身体が当たってて……なんかくすぐったいから」&lt;/p&gt;
&lt;p&gt;文香はくすくす、と笑ってから、身体ってこれのことかしら、と言いながら回した腕の力を強めて、さらにむにむにと身体を押し付ける。&lt;/p&gt;
&lt;p&gt;「ごめんね。こんなやり方しちゃって」&lt;/p&gt;
&lt;p&gt;中途半端なキスで寸止めされた挙句に、目の前で餌をぶら下げられてるみたいだ。じくじくが、さらにじわじわと広がっていく。&lt;/p&gt;
&lt;p&gt;「私はね、紫織に素直になってほしいの。して欲しいことをして欲しいって言ってもらって、何でも叶えてあげたいの」&lt;/p&gt;
&lt;p&gt;顔を耳元から離した文香が、今度は私の目を見て話しだす。&lt;/p&gt;
&lt;p&gt;「な、何でも……？」&lt;/p&gt;
&lt;p&gt;「そうよ。身体でも、心でも、命でも。差し出す覚悟はできてるの。親友のためになりたいっていうのは、そんなに不道徳で不健全なことかしら？」&lt;/p&gt;
&lt;p&gt;親友のためになりたいという言葉だけは、不道徳でも不健全でもないように聞こえるけれど、その言葉を放つ文香は目を離せないほどのいやらしさを見せつけている。&lt;/p&gt;
&lt;p&gt;「でも私、人形に興奮しちゃうような、気持ち悪い人間だよ？　文香だって、気持ち悪いって言ったじゃない」&lt;/p&gt;
&lt;p&gt;「気持ち悪いだなんて思ってないわ。ただ、あなたがそう言ってほしそうにしてたから」&lt;/p&gt;
&lt;p&gt;違うかしら、とさらりと髪を揺らす文香から、また心地の良い香りが届く。&lt;/p&gt;
&lt;p&gt;「……ちょっと、どきどきは、したけど」&lt;/p&gt;
&lt;p&gt;「あなたに不快な感情を抱くことはないから、もっと頼ってくれていいのよ。昔のことだとか、自分に言い訳なんかしないで」&lt;/p&gt;
&lt;p&gt;「頼る？」&lt;/p&gt;
&lt;p&gt;「えぇ。例えば……キスしてほしかったら、目を閉じるとか」&lt;/p&gt;
&lt;p&gt;「……ん」&lt;/p&gt;
&lt;p&gt;そう言われて、私はゆっくり目を閉じる。&lt;/p&gt;
&lt;p&gt;文香がそれに応えて、軽く一回だけ唇同士を触れさせた。そんな弱い刺激でも、一つ一つの吐息が熱くなってくるのが分かる。それが文香に届いてしまわないか気になって、余計に息が荒くなってしまう。&lt;/p&gt;
&lt;p&gt;目を開けると優しく笑う文香がいて、ね、と小さく同意を促してきた。私は恥ずかしくなって、ぷいとそっぽを向く。&lt;/p&gt;
&lt;p&gt;「文香だって、したいことあるでしょ？　私にだって、頼ってほしいよ」&lt;/p&gt;
&lt;p&gt;「そうね。じゃあ、早速だけど……お願い、いい？」&lt;/p&gt;
&lt;p&gt;私は、お願い、と訊き返して、目をそらしたまま続きを待った。&lt;/p&gt;
&lt;p&gt;「今日は傘も持ってきていなくて、それに、あまり絵も濡らしたくないの。だから、泊めてくれないかしら？」&lt;/p&gt;
&lt;p&gt;雨はまだ降り続いている。湿度が高くなって乾きにくいのもそうだけど、この雨の中で持って帰って染みるのは避けたいというのももっともだ。でも。&lt;/p&gt;
&lt;p&gt;「絵を口実にするの、ずるい」&lt;/p&gt;
&lt;p&gt;「あら、気付いちゃった？」&lt;/p&gt;
&lt;p&gt;傘を借りて絵は置いて帰ったほうが迷惑にはならないことなんて当然誰にでも分かる。それなのにわざわざ面倒な提案をしてくるのは、さっきそうしていたように、私が気軽に受け入れられるための優しさなのだろう。&lt;/p&gt;
&lt;p&gt;「気付いても、気付かないふりをして騙されてくれると思ったのだけど」&lt;/p&gt;
&lt;p&gt;「ちゃんと言ってくれなきゃ、やだ」&lt;/p&gt;
&lt;p&gt;私は、文香の目を見ないまま口を尖らせる。&lt;/p&gt;
&lt;p&gt;「確かに、それもそうね」&lt;/p&gt;
&lt;p&gt;文香はそうと言ってから、また耳に口を寄せた。次に来るだろう言葉への期待で、頬や耳に当たる髪のくすぐったさをいつもより鋭敏に感じてしまう。&lt;/p&gt;
&lt;p&gt;あのね、と小さく囁いて、文香は言葉を続ける。&lt;/p&gt;
&lt;p&gt;「紫織が好きなこと、もっといっぱいしてあげたいの。だから、泊めて？」&lt;/p&gt;</content><category term="lily"/></entry><entry><title>ストロベリィドール</title><link href="https://ama.ne.jp/post/strawberry-doll-1/" rel="alternate"/><published>2018-08-25T17:30:00+09:00</published><updated>2018-08-25T17:30:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-08-25:/post/strawberry-doll-1/</id><summary type="html">&lt;p&gt;前編&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/strawberry-doll/"&gt;ストロベリィドール&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1"&gt;1&lt;/h2&gt;
&lt;p&gt;夏の日差しは私には眩しすぎる。無理やり気持ちを高揚させるこの陽光は、大事にしなきゃいけないものを全部隠してしまうから。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;電車に一時間ほど揺られ、私の目的地を告げるアナウンスを聞く。駅のホームに降り立つと、既に待ち合わせの時間からは幾分過ぎていた。&lt;/p&gt;
&lt;p&gt;休日の昼下がりとは言え、この小さな駅を目的地としている人は少なく、左右を見渡しても降りる人は私の他に二人か三人ほどしかいない。ホームの掲示板の隅に貼られたくたびれた張り紙は何年か前に打たれた観光協会のポスターらしいけど、褪せてしまってすっかり字が読めなくなっていた。&lt;/p&gt;
&lt;p&gt;ぷるるるるるるる。&lt;/p&gt;
&lt;p&gt;がたりと大きな音を立てて閉まる列車のドアが、とうとう戻れないところまで来たことを意識させる。電車は私をここに残して、人々を次の街へと運んでいく。&lt;/p&gt;
&lt;p&gt;「文香はこの空、毎日見てるのかな」&lt;/p&gt;
&lt;p&gt;突然の風に巻き上がるスカートを押さえながら空を見上げると、波打ったスレートの屋根の向こうに遥かな青が見渡せる。&lt;/p&gt;
&lt;p&gt;「文香。本当に私は、あなたと再会してもいいのでしょうか」&lt;/p&gt;
&lt;p&gt;約束を交わした幼馴染が待つ広場へ、一歩ずつ彼女へと近づいていくことを意識する。&lt;/p&gt;
&lt;p&gt;春が過ぎ、夏が来て、私が何もしなくても時間は過ぎていく。きっとそのうち、もう彼女にも会えなくなるだろう。&lt;/p&gt;
&lt;p&gt;彼女は私を忘れ、私は彼女を忘れていく。私は彼女に酷いことをしたから、もう顔を合わせたいと思っちゃいけない。それで良かったはずなのに。&lt;/p&gt;
&lt;p&gt;文香に会いたい。そう思った時には、入道雲が私に電話をさせていた。&lt;/p&gt;
&lt;p&gt;電話で聞く彼女の声からは、私への嫌悪は感じられなかった。少なくとも、こうして逢瀬の約束を交わしても誰にも――自分以外には――怒られまいと、そう思うほどには。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;駅前の小さな広場に、私よりもちょっと背の高い黒髪がさらりと揺れる。黒いストレートの長髪は、大学二年生にしては厚ぼったくもあるけれど、その後ろ姿は高校の頃から変わらない彼女だということを示していた。&lt;/p&gt;
&lt;p&gt;白いロングのワンピースが夏の空に良く似合う。ここに麦わら帽でも被せると、野原を無邪気に駆けまわっているイメージが湧くけど、今の立ち姿はどちらかと言えば木陰で静かに本を読んでいる方がしっくりくる。広い広い草原のど真ん中に一本だけ生えた大きな樹に寄りかかりながら、きっと人気のない古書店で見つけたような古いファンタジィの小説を読んでいるのだ。&lt;/p&gt;
&lt;p&gt;明るい布地と暗い髪色に、駅前広場の植栽と深い青空。それらのコントラストがこの女性を景色から切り取るようにしてより一層魅力的にしていた。&lt;/p&gt;
&lt;p&gt;「あら、紫織」&lt;/p&gt;
&lt;p&gt;靴音に気付いた彼女が振り向いて目を合わせた。すらりとした手脚を目で追う私の前で、私よりも幾分か大きなバストが揺れる。&lt;/p&gt;
&lt;p&gt;「ごめん、待った？」&lt;/p&gt;
&lt;p&gt;「えぇ。三十分ほど。こんなにゆっくり街並みを眺めたのも久しぶりだわ」&lt;/p&gt;
&lt;p&gt;私がおそらく二十分ほど遅れてしまったことを考えると、彼女――文香は待ち合わせの十分前にはこの広場に立っていたことになる。文香はめったに遅刻することのない真面目な性格だから、私の遅刻も心から許しているわけではない、と思う。&lt;/p&gt;
&lt;p&gt;「本当に、ごめんなさい」&lt;/p&gt;
&lt;p&gt;「いいのよ。この頃、少し忙しなかったからちょうど良かったわ」&lt;/p&gt;
&lt;p&gt;じっと立っているのは暑かったれけど、と黄色いチェックのハンカチで軽く額を拭う。&lt;/p&gt;
&lt;p&gt;「紫織は、今日も寝坊？」&lt;/p&gt;
&lt;p&gt;「えっと、うん……まぁ、そんなところかな、えへへ」&lt;/p&gt;
&lt;p&gt;「いつものあなたらしいわね」&lt;/p&gt;
&lt;p&gt;高校の頃を思い出すわ、と言ってから彼女はくすりと笑った。&lt;/p&gt;
&lt;p&gt;私は朝が弱くてよく遅刻する癖がある。彼女はそのことを言ってるはずだけど、まさか流石に一年ぶりの待ち合わせで遅刻するほどの悪癖のつもりじゃない。&lt;/p&gt;
&lt;p&gt;でもわざわざそれを否定してまで、実は緊張していて家を出ようとしたあたりで体調が悪くなっていた、とも言えなかった。&lt;/p&gt;
&lt;p&gt;「それで、今日はどうしたの？」&lt;/p&gt;
&lt;p&gt;「どうした、っていうか……久しぶりに会いたくなった、だけ？」&lt;/p&gt;
&lt;p&gt;夏の陽気に後押しされて、あなたに会いたくなりました。はっきりそう言えればいいんだけど、そんなのはきっとただの気障な台詞か下手な言い訳にしか聞こえない。&lt;/p&gt;
&lt;p&gt;「そうなの。予想が外れちゃったわね」&lt;/p&gt;
&lt;p&gt;「予想？」&lt;/p&gt;
&lt;p&gt;「あなた、悩んでる時はいつも『ゆっくりお話したい』って言っていたから」&lt;/p&gt;
&lt;p&gt;だから、てっきり今日も悩み相談だと思っていたの。と、また小さく笑った。&lt;/p&gt;
&lt;p&gt;私は図星を突かれたような気がして、思わず口に手を当てる。もちろん、一週間前に受話器に向かっていたこの口を塞げはしないけど。&lt;/p&gt;
&lt;p&gt;「とりあえず喫茶店で落ち着きましょうか。ここはおしゃべりには暑すぎるわ」&lt;/p&gt;
&lt;p&gt;歩き出してひらりと舞い上がる白いワンピースが、一緒に付いて回る艶めいた髪と共に夏の熱気を巻き上げる。ふわり、と柑橘の匂いがした。&lt;/p&gt;
&lt;p&gt;「お店は任せるよ。ここらへんには詳しいんだよね、ふみ……」&lt;/p&gt;
&lt;p&gt;それに着いていこうとする私の動きが止まって、言葉が止まって、そのせいで服が張り付くようなじとっ、とした嫌な汗が急に気になってくる。&lt;/p&gt;
&lt;p&gt;「……紫織？」&lt;/p&gt;
&lt;p&gt;「えぇと、その」&lt;/p&gt;
&lt;p&gt;一年以上連絡も取っていない友人に、私の手は届いているのか。彼女は私に手を伸ばしてくれているのか。分からなくなった距離感に一瞬言葉が詰まる。名前で呼んだり、遅刻したり、こんな馴れ馴れしくあっていいものなのか。&lt;/p&gt;
&lt;p&gt;「……佐々木、さん」&lt;/p&gt;
&lt;p&gt;彼女が求めていることと、私がしたいことと、私がしなきゃいけないこと。ぐるぐるとしたせめぎ合いの中で、私の視線は行く先を失う。どれも選んでも、しっかり見つめることなんてできない。&lt;/p&gt;
&lt;p&gt;こういう時に綺麗な空が広がっていると便利だと思う。&lt;/p&gt;
&lt;p&gt;「あら。もう、文香って呼んでくれないのね」&lt;/p&gt;
&lt;p&gt;「だって、私、佐々木さんに……」&lt;/p&gt;
&lt;p&gt;彼女は私に背を向けたままだ。ワンピースの半紙にするりと黒髪の筆が下りて、そのまま墨の波紋を広げていく。描かれた黒い波紋が世界を覆っていくことを思いながら空に視線を遣ると、私の目には黒か灰色か分からない曖昧な空の色が映った。&lt;/p&gt;
&lt;p&gt;「何を気にしているかは分からないけど、あなたの好きなように呼ぶと良いわ」&lt;/p&gt;
&lt;p&gt;それから彼女は振り返って、私は、と言葉を区切る。小さく前に出るのと一緒にヒールがタンッ、と茶色いレンガの舗装を鳴らした。&lt;/p&gt;
&lt;p&gt;「私は、あなたに名前で呼ばれるの、好きだったけど」&lt;/p&gt;
&lt;p&gt;鋭く私に向かう視線に応えていると、街の雑多な音が全部かき消えて風と蝉の声だけになる。そういう空気が前から後ろから私を通り抜けて、辺りいっぱいに満ちていくことに妙な高揚や興奮を感じてしまって、思わず彼女を見つめてしまうのを止められない。&lt;/p&gt;
&lt;p&gt;「あなたはどう？　紫織」&lt;/p&gt;
&lt;p&gt;「私も名前で呼ばれるの、好きだよ。ふ……文香ちゃん」&lt;/p&gt;
&lt;p&gt;「なら、良かったわ。お揃いね」&lt;/p&gt;
&lt;p&gt;嬉しいわ紫織、と再び私の名を呼ぶ声が、じわーっと、心に温かいものを注いでいく。&lt;/p&gt;
&lt;p&gt;「文香、ちゃん」&lt;/p&gt;
&lt;p&gt;「どうしたの？　あなたも何だか嬉しそうね」&lt;/p&gt;
&lt;p&gt;普段から頭の中では繰り返している彼女の名前なのに、そう口に出して呼んだだけで何だか頬が熱くなる。なりふり構わず大声で、全部夏の暑さのせいなのだと誰にともなく誤魔化してしまいたい。&lt;/p&gt;
&lt;p&gt;「ね、紫織。また、アヤと呼んでもいいのよ」&lt;/p&gt;
&lt;p&gt;「……えっ？」&lt;/p&gt;
&lt;p&gt;「変なわだかまりがあるのは嫌なの。なんなら私もまたシオちゃんって――」&lt;/p&gt;
&lt;p&gt;呼びましょうか、と言ったあたりで私は思わず言葉を遮ってしまう。&lt;/p&gt;
&lt;p&gt;「や、やめてよ！」&lt;/p&gt;
&lt;p&gt;まばらな通行人のいくらかがこちらを一瞥して、またそれぞれの歩みに戻っていった。喜びに満ちた高揚にちくりとした後ろめたさが差し、それらが全部まとめて萎んでいく。&lt;/p&gt;
&lt;p&gt;昔の呼び名ほど、あの頃の二人を思い出させる名前ほど、聞きたくないものもない。聞きたくないだなんて、そんなこと私が言っちゃいけないのかもしれないけど。&lt;/p&gt;
&lt;p&gt;「そう、残念ね」&lt;/p&gt;
&lt;p&gt;じゃあ今度こそ行きましょうか、と歩き出す文香。さらりと流したのは全く気にしていないのか、それとも私を気遣ってくれているのか。どちらにせよ、今の私にはわざわざ呼び止めてその真意を訊くような厚かましさも勇気もない。こうして二人で歩けているだけで、幸せなんだから。&lt;/p&gt;
&lt;p&gt;不意に自分から出た大きな声のせいで、ばつ悪く文香の後ろを付いて歩く私の中では、シオちゃん、という声が何度も繰り返されていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;老舗の喫茶店みたいなものを想像していたけど、喫茶店と言われて連れて行かれたのは私も良く見知ったチェーンのお店だ。店員に二言三言注文を告げてから、文香と丸テーブルを挟んで向い合う。&lt;/p&gt;
&lt;p&gt;「そういう『街の喫茶店』は煙草臭いのよ。煙草を吸う常連さんに甘いところも多いし」&lt;/p&gt;
&lt;p&gt;煙草の匂いは好きじゃない。上着も鼻もすっかり煙草で塗り替えられていくのを止められないあの無力感が、ずっと鼻に残ってしまうから。&lt;/p&gt;
&lt;p&gt;「そういう喫茶店、何度か出入りしていたんだけど、すぐにやめてしまったの」&lt;/p&gt;
&lt;p&gt;文香が煙草の世界と親しくなっていたかもしれないという想像をかき消され、私は少しだけ安心した。文香には物憂げに煙草を吸う姿もきっと画になってしまうから、その想像は少しだけリアルに浮かんでくる。&lt;/p&gt;
&lt;p&gt;分煙がちゃんとしてるチェーン店の方が居心地は良いわ、と言って彼女は金色のスプーンでコーヒーを軽く撫でる。立ち上る湯気が渦を巻いて私にも香りを届けていく。&lt;/p&gt;
&lt;p&gt;「どうしたの？　私がブラックのコーヒーを飲めないの、知らなかった？」&lt;/p&gt;
&lt;p&gt;文香が、シロップを注がれたカップを見つめる私に不思議そうに声を掛ける。私は慌てて自分のカフェラテを啜ってみせた。&lt;/p&gt;
&lt;p&gt;「ううん、それは知ってるけど……コーヒー、いい匂いだなって思って」&lt;/p&gt;
&lt;p&gt;「心が落ち着くいい香りよね。永遠に冷めなければ、飲まずにずっと楽しめるんだけど」&lt;/p&gt;
&lt;p&gt;コーヒーを飲んでいる文香の様子が目に入って、それだけで不思議なことに香ばしくて心地良い匂いが更に強くなったように感じる。&lt;/p&gt;
&lt;p&gt;「はしたないかもしれないけれど、良かったら飲んでみる？」&lt;/p&gt;
&lt;p&gt;「え、えっ？」&lt;/p&gt;
&lt;p&gt;「随分と熱い視線を送ってきてるみたいだから、飲みたいのかと思って。いらない？」&lt;/p&gt;
&lt;p&gt;ちょっと甘くなってしまっていると思うけれど、と文香が差し出すカップから見える黒い水面に、窓からの日差しが反射してキラリとした。全国どこでも飲める味のはずなんだけど、今だけはとても手の届かない高級なコーヒーに見えてしまう。&lt;/p&gt;
&lt;p&gt;「うん。ありがとう、文香ちゃん」&lt;/p&gt;
&lt;p&gt;カップを受け渡す時に軽く触れた文香の指に、びくっと人知れずどきどきしながら、私は揺れる水面をじっと見つめる。時々ゆらゆらときらめくこの動揺が、私の手から与えられていることを意識すると、私の心をすっかり丸ごと見られているような視線を感じて余計に手が震えてしまう。&lt;/p&gt;
&lt;p&gt;それを悟られないように、ゆっくりと、ゆっくりと、口を近づけて。&lt;/p&gt;
&lt;p&gt;そうして、カップにちゅ、と口づけをした。陶器のように透き通る文香の唇に。&lt;/p&gt;
&lt;p&gt;「甘い……」&lt;/p&gt;
&lt;p&gt;「やっぱり、ちょっとお砂糖入れすぎちゃったわね」&lt;/p&gt;
&lt;p&gt;「……そうかもね。すごく、甘いよ」&lt;/p&gt;
&lt;p&gt;文香と私の唇が重なったところに少しコーヒーの色が残っていて、味見が終わってからも私はどうしてもその白いカップの縁から目を離せなかった。&lt;/p&gt;
&lt;p&gt;そこにキスをすると、何度でも痺れるような甘さを感じられるような気がしたから。&lt;/p&gt;
&lt;p&gt;「紫織？」&lt;/p&gt;
&lt;p&gt;文香に呼びかけられて、慌てて我に返る。薄手のコーヒーカップとソーサーがぶつかって、コーヒーがゆらりと大きな波を立てた。&lt;/p&gt;
&lt;p&gt;「あっ、ありがとね！　コーヒー、美味しいね」&lt;/p&gt;
&lt;p&gt;「もういいの？　遠慮しないで、もっと飲んでもいいのよ」&lt;/p&gt;
&lt;p&gt;私もカフェラテを貰うから、と、文香はテーブル越しに軽く身を乗り出した。伸ばされた彼女の手が厚手のカップに触れて、からこっ、と音を立てたあたりで、私はひゃっと素っ頓狂な声を上げてしまう。&lt;/p&gt;
&lt;p&gt;「あら、いけなかった？」&lt;/p&gt;
&lt;p&gt;「ち、違うの。ダメってわけじゃ……むしろ、その……いいよ、私も貰ったもんね」&lt;/p&gt;
&lt;p&gt;「そう？　ありがとう。なら、いただくわ」&lt;/p&gt;
&lt;p&gt;大丈夫よ。別に普通のコトだから。まるで私にそう言い聞かせるかのように、文香は実に自然な仕草で私のカフェラテに口を付ける。&lt;/p&gt;
&lt;p&gt;友人同士の回し飲みなど普通のことのはずなのに、なんだか恥ずかしくて見ていられない。文香がゆっくりカップを置いたその音で、飲み終わったことを知る。&lt;/p&gt;
&lt;p&gt;「カフェラテって、ミルクがコーヒーを抱きしめているみたいで好きよ」&lt;/p&gt;
&lt;p&gt;「私も……好き、だよ」&lt;/p&gt;
&lt;p&gt;持ち手に人差し指を当ててくるりとカップを回すと、ミルクの模様が少し歪んで、それから元に戻る。カップに付いた重なる二つの唇の跡を見つめながら、ふわっと立ち上るミルクとコーヒーの香りを吸い込んだ。&lt;/p&gt;
&lt;p&gt;「紫織、大学は楽しい？」&lt;/p&gt;
&lt;p&gt;「なぁに、急に。お母さんみたい」&lt;/p&gt;
&lt;p&gt;大学では特に変わったことがない。サークルに打ち込むわけでもなく、普通に講義に出て、数人の友達とご飯を食べて。たまに抜け出して、みんなで遊びに行ったりする。学生らしく、学問に生きているとは言いがたいけど。&lt;/p&gt;
&lt;p&gt;できることなら、文香と一緒の大学に行きたかった。そうしたら、もう少し変わった生活ができたかもしれない。私がせめて高校卒業までの間、彼女と上手に幼馴染をやりきれていたのなら。&lt;/p&gt;
&lt;p&gt;「今日の紫織は、何だか私の知ってる紫織とはだいぶ違うみたいだから。大学で何かあったのかと思って」&lt;/p&gt;
&lt;p&gt;文香ちゃんだなんて幼稚園の頃みたいね、と笑いかける彼女に、私は笑顔で答えられない。おどおどとした追い詰められるような後ろめたさを見透かしているのだとしたら、多分それのことだ。&lt;/p&gt;
&lt;p&gt;「それに、少し見ないうちに随分髪が伸びたみたい。卒業式の時はこれくらいだったのにね。明るい髪色は変わらないけど」&lt;/p&gt;
&lt;p&gt;彼女は肩のあたりで手を横に振って、私がボブカットだったことを示す。少し、と言われて私はむっとした。&lt;/p&gt;
&lt;p&gt;「文香ちゃん、少しって言うけど、私達、一年以上会ってないんだよ？」&lt;/p&gt;
&lt;p&gt;「知ってるわ。一年か二年くらいのことだから、少しって言ったのだけど」&lt;/p&gt;
&lt;p&gt;心がざわついた。きっと私がこのカフェラテだったら、全部零れてしまうくらいに。&lt;/p&gt;
&lt;p&gt;ざわざわと私の心が音を立てて、差した影から黒いところがゆらゆらと這い出てくるような気持ちがした。&lt;/p&gt;
&lt;p&gt;「一年が少しって、おかしくない？　私は、ずっと文香のこと考えて、会いたいなって思ってたのに。文香は、私のことなんて思い出しもなかったの？」&lt;/p&gt;
&lt;p&gt;「紫織？　怖い顔をしているけど、大丈夫？」&lt;/p&gt;
&lt;p&gt;気付くと文香が椅子から立ち上がっていて、私の顔を覗き込んでいた。&lt;/p&gt;
&lt;p&gt;「あ……ご、ごめん！　私のことを思い出せだなんて、私が言っちゃいけないのに」&lt;/p&gt;
&lt;p&gt;「あなた、何か勘違いしているようね」&lt;/p&gt;
&lt;p&gt;「……勘違い？」&lt;/p&gt;
&lt;p&gt;私が聞き返すと、文香は、えぇ、と答えてまた静かに椅子に座った。&lt;/p&gt;
&lt;p&gt;文香はいつも冷静で、じっと私を穏やかに見つめてくれる。私の暴走しかけていた感情が徐々に収まっていって、いつの間にか頬が濡れていることに気付いた。これは確かに、文香が心配するはずだ。&lt;/p&gt;
&lt;p&gt;「私、あなたが思ってる以上に紫織のことを大事に思っているわ」&lt;/p&gt;
&lt;p&gt;「だい、じ……？」&lt;/p&gt;
&lt;p&gt;半分ほどになったカフェラテに、ぱっと波紋が広がる。それから私は何も言えなくなってスカートを握りしめ、下を向いてじっとその皺を見つめた。&lt;/p&gt;
&lt;p&gt;「えぇ、そうよ。大学生の間も、社会人になっても、お互い結婚しても、少なくとも私は一生のお付き合いをしていくつもりでいるわ。そう考えると、長い一生に比べたら、一年なんて瑣末な時間だと思わない？」&lt;/p&gt;
&lt;p&gt;答えの決まっている問いかけに、私は無言で応えることしかできない。文香は少し冷めたコーヒーを飲んで一息置いてから、それにね、と言ってまたゆっくりと喋り始めた。&lt;/p&gt;
&lt;p&gt;「あなたは覚えているかしら？　紫織が私を避けるようになってから数えるなら、そろそろ二年が経つのよ？」&lt;/p&gt;
&lt;p&gt;毅然とした口調が耳に響く。あの日の、夏の出来事が思い出されて視界が揺れた。&lt;/p&gt;
&lt;p&gt;「高校の卒業から数えるなら、確かに一年と三ヶ月が経ったわ。でも、卒業式でちょっと声を掛けたくらいで、私が取り残された時間をリセットできると思う？　それじゃあまるで、高校時代の私との関係が丸ごと無かったことになったみたいで嫌だわ」&lt;/p&gt;
&lt;p&gt;「あ……うぅ……ふ、ふみ……か……」&lt;/p&gt;
&lt;p&gt;彼女の言葉を聞いて、驚き、悲しさ、悔しさ、嬉しさ……色んな感情がぼろぼろと溢れだしていく。&lt;/p&gt;
&lt;p&gt;「ごめんなさい。追い詰めるつもりはないの。あなたもあなたなりに考えていたのよね」&lt;/p&gt;
&lt;p&gt;「ち、違うの。これは、安心しちゃって」&lt;/p&gt;
&lt;p&gt;「安心？」&lt;/p&gt;
&lt;p&gt;「文香ちゃ……文香は優しくて、突然連絡しても、こうして何も言わずに会ってくれるから。実際に会うまでは、誘いを受けてくれてすごく嬉しかったんだけど」&lt;/p&gt;
&lt;p&gt;私は顔を上げて、流れる涙も気にせずに彼女を見つめる。きっとひどい顔になっていることだろう。&lt;/p&gt;
&lt;p&gt;「やっぱり、あんなことをしておいて、本当に会って良いのかなって思っちゃって」&lt;/p&gt;
&lt;p&gt;あるいは実はもう私のことなどとうに忘れていて、二人の間に何があったかなんて気にしてないのかも、とも思った。忘れる――数年で私の記憶が本当に無くなるとは思ってないけど、記憶に残っていることと、彼女の中に私が居続けていることとは違うから。&lt;/p&gt;
&lt;p&gt;「でも、私の考えすぎだったって分かったから。安心して、落ち着いて、そのせいでまた涙が出ちゃったの」&lt;/p&gt;
&lt;p&gt;えへへ、と目尻の涙を拭いながら文香に笑いかける。&lt;/p&gt;
&lt;p&gt;「私もね、あなたから連絡が来るまでは同じようなことを感じていたわ。突然部活に来なくなったと思ったら、最近まで会話どころか連絡一つもないんだもの。嫌われているか、そうでなければ忘れられているか、でしょう？」&lt;/p&gt;
&lt;p&gt;窓から差す夏の陽射しがぐっと強くなって、窓枠の影が木目にくっきりと映る。&lt;/p&gt;
&lt;p&gt;「私はあなたみたいに感情豊かになれないところがあるから、あんまり信用してもらえないかもしれないけど、私だって寂しかったの」&lt;/p&gt;
&lt;p&gt;今はむき出しの感情をぶつけられて、実はすごく嬉しいのよ、と笑ってみせたけど、そこに何かを含んでいるように見えた。&lt;/p&gt;
&lt;p&gt;彼女は感情豊かになれないとは言っているけど、実は文香は感情豊かな娘なのだ。でもそれは、高校生だった頃の私の目に映る文香だったから。ずっと彼女から離れていた今の私には、それが微妙な表情だとは分かっても何かを読み取ることは無理だった。&lt;/p&gt;
&lt;p&gt;「私は紫織を忘れたりしないし、あのこともずっと覚えているわ。あなたは、どう？」&lt;/p&gt;
&lt;p&gt;あのこと、と、言われて重いものがのしかかる。&lt;/p&gt;
&lt;p&gt;「私も、忘れてないよ。全部、ちゃんと覚えてる」&lt;/p&gt;
&lt;p&gt;脳裏に浮かぶのは、必死で抵抗する制服姿の女の子。今も変わらないあの長髪が薄暗い部室の床に散らばって綺麗に広がる様子が一瞬再生されて、すぐにかき消された。私が心の奥底にずっと抱いている、文香への後ろめたさの根源。&lt;/p&gt;
&lt;p&gt;「お互いに少し、すれ違っていたのかもしれないわね」&lt;/p&gt;
&lt;p&gt;「ごめんね、文香。私が、距離を置くようなことしちゃったから」&lt;/p&gt;
&lt;p&gt;「あまり気に病むことはないわ。一年以上経っても、実際こうしてまた会えたんだし。改めて、今日は誘ってもらって本当にありがとう」&lt;/p&gt;
&lt;p&gt;私こそ、来てくれてありがとう。そう言いたかったけど、どうしてだろう、口に出そうとするとまた涙が出そうになって言葉を飲み込んだ。言わなくても分かってくれればいいのに。ずっと昔の私達は、そうだったから。&lt;/p&gt;
&lt;p&gt;「私はあなたを待ってばかりね。いつも」&lt;/p&gt;
&lt;p&gt;彼女が差し出すおしぼりを目に当てると、冷たく、じーんとして。その冷たさを補うかのように、溢れずに残った涙が熱く染みこんでいくのを感じていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;喫茶店を出た私達は、三つほど店を巡ってから駅まで戻る道を歩いている。これは文香による街の紹介も兼ねていた。文香は実に楽しそうに店を案内してくれて、彼女自身いろいろな商品を買って回っていた。いくつか迷った中から精選したと言っていたから、本当に好きな店なのだろう。&lt;/p&gt;
&lt;p&gt;河川敷では、時折サッカーボールを蹴るドカッという音が響いてくる。駆けまわる小学生を横目で見ながら小気味良い音を聞いていると、何だか妙に落ち着いた。この土手の道が永遠に続いていて欲しいような、ずっと彼女とゆっくり歩いていたくなるような、そういう気持ちになる。&lt;/p&gt;
&lt;p&gt;「今日で変なわだかまり、なくなったかな？」&lt;/p&gt;
&lt;p&gt;「紫織はどう思う？」&lt;/p&gt;
&lt;p&gt;「それなり、かな」&lt;/p&gt;
&lt;p&gt;「じゃあ、それなりなんでしょうね」&lt;/p&gt;
&lt;p&gt;やっぱり胸に残る後ろめたさが残っていては、わだかまりが消えたとは言えない。&lt;/p&gt;
&lt;p&gt;でも、このもやもやを全部文香にぶちまけてすっきりするのも、私の迷惑なわがままだと思うとそんなことできなかった。&lt;/p&gt;
&lt;p&gt;歩いているうちに世界はどんどん橙色に染まっていく。空の下方に広がってぐっと濃い影を残す水平線のような雲が、私を押し流そうとする大きな波にも、今にも崩れそうな大きな山にも見えてくる。&lt;/p&gt;
&lt;p&gt;「夕日をゆっくり見るの、結構久しぶりかも」&lt;/p&gt;
&lt;p&gt;「なんだか今日は、夕日がいつも以上に輝いて見えるわ。誰かと感動的な景色を共有するのって、心躍るものね」&lt;/p&gt;
&lt;p&gt;文香が立ち止まって眩しそうに空を見つめた。私も横に並んで目を細めてオレンジのパノラマに向き合う。&lt;/p&gt;
&lt;p&gt;「私ね、大学で水彩を始めたの」&lt;/p&gt;
&lt;p&gt;「水彩？」&lt;/p&gt;
&lt;p&gt;「そう、アナログでね。なかなかいいものよ。心意気が変わると、道を歩いているだけで色んな風景が気になってくるの」&lt;/p&gt;
&lt;p&gt;頭に浮かぶのは、文香が彼女の身長ほどある絵筆を軽々と振り回して軽快に舞う姿。周囲の真っ白けな線画の空間が、すらりすらりとなぞられたところから立ちどころに色づいていって、鮮やかな世界が辺り一面に広がっていくのだ。&lt;/p&gt;
&lt;p&gt;「へぇ、楽しそう。私も見てみたいな、文香の絵」&lt;/p&gt;
&lt;p&gt;文香の世界の投影は、強すぎる光を放って私を焼け焦がしてしまうかもしれないけど、それでもいい。彼女の目に見える景色は、きっとあらゆるものが輝いて見えるのだろうと思う。私が文香を見ている時のように。&lt;/p&gt;
&lt;p&gt;「そう？　だったら今度、良かったらあなたのお家で描かせてもらえないかしら？」&lt;/p&gt;
&lt;p&gt;「わ、私の家で？　散らかってるよ？」&lt;/p&gt;
&lt;p&gt;「それでもいいわ。紫織が普段見てる景色を、私も見てみたいの」&lt;/p&gt;
&lt;p&gt;「別に、普通の景色しか見てないよ？　そんな、わざわざ来るほどのものじゃないっていうか。あっ、別に来てほしくないわけじゃないんだけど、電車代だってかかるし――」&lt;/p&gt;
&lt;p&gt;ぐるぐると回る私の口の暴走を止めるように、文香が言葉を遮る。&lt;/p&gt;
&lt;p&gt;「そんなに慌てなくていいわ。無理に押しかけたいってわけじゃないの」&lt;/p&gt;
&lt;p&gt;「えっと、その……絶対掃除するから。それから、ね？」&lt;/p&gt;
&lt;p&gt;「分かったわ。機会があったら是非誘ってね」&lt;/p&gt;
&lt;p&gt;いくらかの沈黙が流れた。&lt;/p&gt;
&lt;p&gt;悪いことをしてしまったな、と思う。文香はこんなに近づいてきてくれるのに、どうして私は彼女に向きあうことができないんだろう。私は勝手に独りよがりで抱え込んでばかりで、こうすることがきっと彼女のためになると信じきっているみたいだ。&lt;/p&gt;
&lt;p&gt;「ねぇ、文香。私、気にしすぎてたのかな」&lt;/p&gt;
&lt;p&gt;「そうかもね。私達はそれぞれあんまり変わってないのに、お互いは変わったと思い込んでいたのかしら」&lt;/p&gt;
&lt;p&gt;それから、紫織の髪は伸びたけれど、と戯けてみせた。&lt;/p&gt;
&lt;p&gt;文香は何も変わっていない。私から見る限りの内面と外面では。たとえ、私には教えてくれない想い人に心を奪われていたとしても、ワンピースの下に私には教えてくれない恋人に乱暴をされた傷があったりしても、それは分からないけど。&lt;/p&gt;
&lt;p&gt;彼女がずっと変わらずに、手を広げて私を待っていてくれればいい。もしそうなら、何も心配する必要がなくなるから。同じポーズをしている人形のように、ずっと私を見ていてくれたらいいのに。&lt;/p&gt;
&lt;p&gt;「それにしても、紫織、どうして髪を伸ばしたの？　ずっとショートだったじゃない」&lt;/p&gt;
&lt;p&gt;「うーん。深い理由があるわけじゃないけど、なんでだろうね？」&lt;/p&gt;
&lt;p&gt;「忙しくて、切るのが面倒になっちゃった？」&lt;/p&gt;
&lt;p&gt;文香が顔の前で髪を切るジェスチャーをする。右手をチョキにして、ちょきちょきと。&lt;/p&gt;
&lt;p&gt;「ふふっ。私、そんなにズボラじゃないよ」&lt;/p&gt;
&lt;p&gt;理由なんて初めから自分の中で分かっているけど、告げるかどうかはまた別だ。&lt;/p&gt;
&lt;p&gt;どんどん鼓動が早くなるのが分かる。言うのなら、あくまで軽い感じに、流すように。&lt;/p&gt;
&lt;p&gt;「文香みたいになりたかったのかも。そういう綺麗な黒髪にはなれないけど」&lt;/p&gt;
&lt;p&gt;もっと言うと、寂しい思いをしている私に、彼女の面影を与えてくれるかもしれないと思ったから。&lt;/p&gt;
&lt;p&gt;私の中で、憧れは恋と不可分だ。あの娘になりたい、こうなりたい、女の子同士のそういう憧れは恋愛と地続きになっていると思う。男の子と女の子は互いに持つことのできないものを求め合うけど、女の子同士は互いに持ってるものに近づくことができるから。&lt;/p&gt;
&lt;p&gt;これは憧れの吐露だ。綺麗な友人へのただの憧れ。でも、同時にこれは――&lt;/p&gt;
&lt;p&gt;「あなたは、私にはなれないわ」&lt;/p&gt;
&lt;p&gt;――だから、そういうことを言われると全部否定された気がしてしまう。&lt;/p&gt;
&lt;p&gt;一度涙が出た日はちょっとしたことでまた泣いてしまいそうになる。せっかく晴れた日に乾いたアスファルトを汚すのは嫌なので、できるだけ明るい声で答える。&lt;/p&gt;
&lt;p&gt;「そんなこと言わないでよ。私だって綺麗な大人の女性に憧れたりするのに」&lt;/p&gt;
&lt;p&gt;「だって、私とあなたは違うし、あなたと私は違うのよ？」&lt;/p&gt;
&lt;p&gt;「それは、そうだけど」&lt;/p&gt;
&lt;p&gt;分かってる。でも、文香が手に入れられないのなら、せめて彼女に近づきたい。少しのチャンスにすがりついて文香を渇望してしまう。&lt;/p&gt;
&lt;p&gt;「ねぇ、紫織」&lt;/p&gt;
&lt;p&gt;と、文香が私の手を引いた。その手にぐいと引き寄せられて、私達はしかと向かい合う。彼女は私の手を握ったまま、もう片方の手で私の髪にそっと触れた。横から射してくる夕日がやけに眩しく感じる。&lt;/p&gt;
&lt;p&gt;「私だって、あなたにはなれないの。だから、ずっとそのままでいて。私になんか、なろうとしないで。私になりたいだなんて、そんな悲しいこと言わないで」&lt;/p&gt;
&lt;p&gt;「ふ、文香。恥ずかしいよ」&lt;/p&gt;
&lt;p&gt;瞳に広がる小さな宇宙をしっかりと見つめることのできる距離。ほつほつと模様を刻む虹彩のリングが、私にはこの上なく整った芸術品のように見えてならない。&lt;/p&gt;
&lt;p&gt;私より少し大きい文香が私を見下ろすようにして、美しい瞳で私を射抜く。&lt;/p&gt;
&lt;p&gt;「紫織。綺麗だわ、とても。あなたも、あなたと一緒のこの空も」&lt;/p&gt;
&lt;p&gt;いつの間にか河川敷からは誰もいなくなり、静かに響く足音と、時折風になびく葉や枝がぶつかりあう音の他には何もなくなった。&lt;/p&gt;
&lt;p&gt;風が吹く。黄色いシトラスの匂いが吹き飛んで、辺りに緑の香りが敷き詰められた。&lt;/p&gt;
&lt;p&gt;明るい茶色の私の髪に、文香の黒い髪が重なる。そこに夕日が射してきらきらと輝く。文香と一緒の時しか見られないこの景色は、彼女まで輝いているように見えるほどに眩しい。橙の光が頬に射した文香の笑顔は、私の頬まで赤くした。&lt;/p&gt;
&lt;h2 id="2"&gt;2&lt;/h2&gt;
&lt;p&gt;家に帰ったら、まずしなきゃならないことがある。&lt;/p&gt;
&lt;p&gt;「ただいま、アヤ」&lt;/p&gt;
&lt;p&gt;それは、アパートで待つアヤにただいまの挨拶をすること。&lt;/p&gt;
&lt;p&gt;「やっぱり暑いね。アヤは大丈夫だった？」&lt;/p&gt;
&lt;p&gt;ドアの隙間から外に出られなかった湿った熱い空気が辺りをぐるぐるしているキッチンを通り抜け、私はそのまま自室に入った。&lt;/p&gt;
&lt;p&gt;私の家には部屋が二つにエアコンが一つしかないから、帰ってきたら間仕切り扉をガラリと開けてアヤの部屋から涼しい空気を貰うのだ。白く塗られたアルミの扉がひんやりとして気持ちいい。&lt;/p&gt;
&lt;p&gt;「ちゃんとエアコンは動いてたみたいね」&lt;/p&gt;
&lt;p&gt;「私？　大丈夫。暑かったけど、文香と一緒にいたからあんまり気にならなかったよ」&lt;/p&gt;
&lt;p&gt;ずっと歩いていたせいか、立ち止まると額に汗が滲み出してしまう。その上を、冷たい空気がさらさらと流れていくのを感じる。&lt;/p&gt;
&lt;p&gt;「寂しかったよね、ごめんごめん」&lt;/p&gt;
&lt;p&gt;彼女の部屋はシンプルだった。勉強机とベッドとガラスのローテーブル。テーブルは水色のカーペットの上に。高校生になってから三十二型のテレビも入っていたのでそれも。もっとも、テレビは彼女の希望ではなくて入学祝いに親戚に貰ったものらしく、ほとんど使われることはなかったけど。&lt;/p&gt;
&lt;p&gt;勉強机は小学校から、テーブルは中学校から、ベッドも小学校からだって言ってた。だから本当の彼女の部屋はここにはない長年の生活感に覆われていたけど、ここだってあの頃の、高校生のアヤの部屋だ。&lt;/p&gt;
&lt;p&gt;ローテーブルに向かっているアヤは、朝に私を見送った時のまま寸分も違わない。&lt;/p&gt;
&lt;p&gt;すべすべとしたシリコーンの肌も、すらりとした腕も脚も、綺麗な黒いストレートヘアも、桃色に艶めいた唇も、爪の一枚一枚すらも、等身大の彼女は私のことを待っていてくれていた。&lt;/p&gt;
&lt;p&gt;彼女がいつも着ていたレモンイエローのルームウェアに身に包んだ涼しげなラブ・ドールの茶色い瞳が、ずっと私に向けられている。この瞳は、今日見た彼女のものとは全く違うけど、これは私の中にいる彼女だから、これでいい。&lt;/p&gt;
&lt;p&gt;「ね、アヤ。私、明日までのレポートがあるから一緒にやらない？」&lt;/p&gt;
&lt;p&gt;ここだけはずっと時間が止まっていて、私も高校生のままでいられる。&lt;/p&gt;
&lt;p&gt;「アヤはもう終わってるんだ。やっぱ計画的にやらなきゃダメだよね」&lt;/p&gt;
&lt;p&gt;「分かってるって、もう。テスト期間くらい把握してるよ」&lt;/p&gt;
&lt;p&gt;私もノートを広げる。何の変哲もない学習ノートには、誰にも見せられないアヤとの妄想日記ばかりが書き綴られていた。&lt;/p&gt;
&lt;p&gt;私とアヤは両想いで、放課後はいつも一緒にいる。&lt;/p&gt;
&lt;p&gt;抱きしめたら、恥ずかしそうに抱き返してくれた。お互いを見つめながら「好き」って言い合っていたら、一時間が経っていた。アヤは今日も良い匂いがする。&lt;/p&gt;
&lt;p&gt;すりすりすると、シオちゃんは甘えん坊なのね、と言って一緒に寝てくれた。私達はキスをして、朝までぐっすり眠るのだ。&lt;/p&gt;
&lt;p&gt;「明日の放課後は何しよっか。毎日図書館で勉強するのも飽きちゃった」&lt;/p&gt;
&lt;p&gt;「課題もないし、またゆっくりお喋りしたいな」&lt;/p&gt;
&lt;p&gt;「えっ、明日も来ていいの？　うん、うん……そうだね、新作のお菓子も出てたし」&lt;/p&gt;
&lt;p&gt;「分かった。買ってから持って行くね」&lt;/p&gt;
&lt;p&gt;そこから会話が思い付かなくなって、ノートを駆ける手も止まってしまった。他愛もない会話を妄想するには心がざわつきすぎていたから。&lt;/p&gt;
&lt;p&gt;「ねぇ、今日のってどういうこと？　変だったよ、今日のアヤ。アヤを欲望のままに襲っちゃうような私に、あんな柔らかい笑顔見せちゃってさ」&lt;/p&gt;
&lt;p&gt;もしかして、アヤは私のことが好きなの？　それって、私の好きと一緒？&lt;/p&gt;
&lt;p&gt;私の中にアヤは二人いる。私と離れて今を生きる大学生の文香と、私と仲良くしてくれていた高校生のままのアヤ。今日は心がその二人に包まれて私は幸せ者のはずなのに、どうしてか私の心は不穏な揺れが止まらなかった。&lt;/p&gt;
&lt;p&gt;「一生のお付き合いとか、寂しかったとか。それにあんな、キスの距離なんて……」&lt;/p&gt;
&lt;p&gt;親友なら普通よ、と言われるかもしれないけど、そんな答えが欲しい訳じゃない。&lt;/p&gt;
&lt;p&gt;彼女が家にやってきたのは、一人暮らしを始めてしばらく経った頃のことだ。&lt;/p&gt;
&lt;p&gt;私は高校生の頃に、文香に顔を合わせられないようなことをしてしまった。か弱い少女に、自分勝手な欲望をぶつけたのだ。&lt;/p&gt;
&lt;p&gt;それからは私は文香とほとんど話さなくなってしまったし、彼女がいる部活にも行かなくなった。文香とは違うクラスだったので、部活にさえ行かなければ不意に出くわすこともなくなった。&lt;/p&gt;
&lt;p&gt;だから大学に進学してとうとう物理的に離れても、悲しいかなきっと心境に変化はないだろうと初めは思っていた。ところが、予想外にもその離別の事実は私の心にぽっかりと穴を開けていたとじきに気付くことになる。話せなくてもすぐに手の届くような距離にいる、というだけで私は穏やかでいられたのかもしれない。&lt;/p&gt;
&lt;p&gt;ずっと一緒だった幼馴染のことを忘れられなかった私は、どうにかしてそれを紛らわさなければならなかった。現実と真正面から向き合うには、私の心は弱すぎたから。&lt;/p&gt;
&lt;p&gt;そんな時に現れたのが彼女だった。一目見て、文香だと分かった。初めは当然気持ち悪さが勝っていたけど、結局どうしても文香の模造品を手放すことはできなかった。&lt;/p&gt;
&lt;p&gt;どこから来たか？　どこから来たんだっけ。思い出してみると、朝起きたらいつの間にかそこにいて、ずっと私を見つめてくれていたような気もする。きっとそうだ。&lt;/p&gt;
&lt;p&gt;現実から逃げて精神を保つにはあまりに歪んだ手段だったけど、これさえあれば私は外で前向きに生きていける。私はこの過去を留めた後ろ向きなジオラマにあまりにも依存しすぎていた。&lt;/p&gt;
&lt;p&gt;だからこそ、しれっと平気な顔をして文香に会おうとした自分の行動も、予想外にもそこで得た文香の好意的な反応も、私の心をかき乱す。&lt;/p&gt;
&lt;p&gt;私のこの想いさえ心の奥に押し込められさえすれば、また二人で心から笑い合える日が来るのかもしれない。もうこんな歪んだ生活は必要なくなるのかもしれない。それはとても嬉しいことのはずなのに、そういう未来の果てにあるこの空間からの離脱を空想するだけで、きゅうと胸の辺りが痛み出す。&lt;/p&gt;
&lt;p&gt;「聞いてる？　私さ、アヤのこと大好きだよ。一生、ずっと一緒にいたいの。親友とか、そんな言葉で誤魔化す気はないから」&lt;/p&gt;
&lt;p&gt;私がどんなに抱きしめても、彼女の腕はそれには応えてはくれない。聞こえてくるのは金属の骨格が軋む音ばかりで、私に愛の言葉は届いてこない。&lt;/p&gt;
&lt;p&gt;「すき、すきだよ……うぅ……アヤ、私、もっと……」&lt;/p&gt;
&lt;p&gt;冷たいシリコーンの身体に、熱い涙は染みこむのだろうか。私の涙を全部吸い取って、彼女に魂が宿ればいいのに。そうして目覚めてから不思議そうに私を見つめる彼女に、私の唇の熱を流しこむのだ。この熱が彼女の身体に広がって、私の愛を知ってほしい。私も好きよと囁いてほしい。もっと私を熱い視線で見つめて欲しい。&lt;/p&gt;
&lt;p&gt;シオちゃん、私、あなたが思ってる以上にあなたのことを大事に思っているわ。&lt;/p&gt;
&lt;p&gt;「寂しいよ……ねぇ、文香……」&lt;/p&gt;
&lt;p&gt;じわりと身体が熱くなる。ゆらゆらとした感情の波が、心の縁を越えてとろとろと下着の辺りに零れていく。&lt;/p&gt;
&lt;p&gt;「私のことが大事だなんて、どうしてそんなこと言うの？」&lt;/p&gt;
&lt;p&gt;「文香も、私がいなくて寂しいんだよね？　だから大事って言ってくれたんだよね？」&lt;/p&gt;
&lt;p&gt;そう言いながら、いやらしいところに手が伸びる。もっと、もっとと、彼女を巻き込んで身体を激しく揺らす。&lt;/p&gt;
&lt;p&gt;「じゃあ、言って。言ってよ、好きだよって。私の目を見てよ……アヤ」&lt;/p&gt;
&lt;p&gt;ふふ、シオちゃん。ありがとう、私も好きよ。&lt;/p&gt;
&lt;p&gt;「んっ……アヤ、やだよぉ……すき、すきっ」&lt;/p&gt;
&lt;p&gt;泣きながら溢れる体液は、私の意志ではもう止まらない。私は親友を模した人形に発情するような、いやらしくて、気持ち悪い人間だから。&lt;/p&gt;
&lt;p&gt;「あぅっ……もっ、もっとして……ねぇ……文香ぁ……っ」&lt;/p&gt;
&lt;p&gt;私の手でしか動かない人形は、私がいなければ何もできない。彼女にしか寂しさをぶつけられない私も、彼女がいなければ生きていけない。本当は一方的な私の情欲のはずなのに、まるで複雑に絡まった綺麗な共依存のように見えてしまう。&lt;/p&gt;
&lt;p&gt;寂しいのに、この感情さえあれば目の前の親友と繋がっていられる。そういう意識が私をじわじわと興奮させる。その不思議な関係が私にはとてつもない快感だった。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>結婚と結婚式</title><link href="https://ama.ne.jp/post/lycee-sahra-wedding/" rel="alternate"/><published>2018-08-12T21:01:00+09:00</published><updated>2018-08-12T21:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-08-12:/post/lycee-sahra-wedding/</id><summary type="html">&lt;p&gt;URAHARA/PHCT二次創作本鋭意制作中&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="/appendices/lycee-sahra-wedding/paper.pdf"&gt;結婚と結婚式（C94配布ペーパー）&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「模擬挙式だって。今度みんなで行ってみない？」&lt;/p&gt;
&lt;p&gt;マヤが放課後に持ってきた週末の予定は、いつものとはかなり方向性が違っていた。差し出されたパンフレットには、ウェディングチャペルの写真と共に「二人の夢、永遠に」とおしゃれなフォントが踊っている。&lt;/p&gt;
&lt;p&gt;「マヤちゃん。そういうのって、カップル向けのイベントなんじゃないかな……？」&lt;/p&gt;
&lt;p&gt;アリサが心配そうに訊ねた。自信満々のマヤが言うには、小中学生向けの模擬結婚式が流行っているらしい。&lt;/p&gt;
&lt;p&gt;読んでみると、確かに子供向けのプログラムも用意されていると書いてあった。挙式と一緒に披露宴のメニューまでこなせるようになっているようだ。&lt;/p&gt;
&lt;p&gt;「私、親戚のお姉さんの結婚式に行ったことがあるんだけどね。こういうのって、ちょっと照れちゃうかも」&lt;/p&gt;
&lt;p&gt;「もしかして、マリ姉の話？　豪華なドレスだったよね」&lt;/p&gt;
&lt;p&gt;「うん。私も将来あんな綺麗なドレスを着てみたいな、って思っちゃった」&lt;/p&gt;
&lt;p&gt;「あ、それ分かる。やっぱり見てると憧れちゃうよね」&lt;/p&gt;
&lt;p&gt;サアラとアリサは、結婚式――で着るドレス――への憧れが強いみたい。どちらも女の子らしい女の子という感じだし、別に不思議なことではないけれど。&lt;/p&gt;
&lt;p&gt;「そうなの？　私、あんまり考えたことなかったかも」&lt;/p&gt;
&lt;p&gt;「まぁ、柚葉はロックが恋人って感じだもんね」&lt;/p&gt;
&lt;p&gt;そう返すと、柚葉はちょっと照れた顔。学校では大和撫子で通っている彼女も、実は隠れて激しい音楽と付き合っている。&lt;/p&gt;
&lt;p&gt;格式の高いお家で大事に育てられてきた柚葉は、いつか盛大な結婚式と向き合うことになるのかな。&lt;/p&gt;
&lt;p&gt;「最近の結婚式は、いろいろ自由に演出できるみたいだよ。多様性？の時代なんだって」&lt;/p&gt;
&lt;p&gt;「そっか、自由に……じゃあ、ライブハウスみたいな場所でやってもいいのかな？」&lt;/p&gt;
&lt;p&gt;「「うーん、それはないかな」」&lt;/p&gt;
&lt;p&gt;「……ふふっ」&lt;/p&gt;
&lt;p&gt;「あはははっ！」&lt;/p&gt;
&lt;p&gt;突然の会話の流れに、私とマヤが思わず笑ってしまう。サアラと一緒にアリサまでツッコミに回ったのがおかしくって、五人でしばらく笑い転げていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私がサアラに惹かれているのは、サアラが可愛いからではなかった……と思う。少なくとも、初めの頃は。&lt;/p&gt;
&lt;p&gt;「ねぇ、リセ。模擬挙式、どうしよっか？」&lt;/p&gt;
&lt;p&gt;「サアラは行きたい？」&lt;/p&gt;
&lt;p&gt;「うーん……リセが行きたいなら、私も行くつもり」&lt;/p&gt;
&lt;p&gt;背中合わせで会話する。わざわざ二人になってからこんなことを言い出すのは、ただ、彼女があんまり乗り気じゃないからだ。&lt;/p&gt;
&lt;p&gt;「あんまり行きたくない？」&lt;/p&gt;
&lt;p&gt;「そういうわけじゃ、ないんだけど」&lt;/p&gt;
&lt;p&gt;歯切れが悪かった。サアラの中で思考を整理する時間が流れて、ややあって、彼女がまた口を開く。&lt;/p&gt;
&lt;p&gt;「私、綺麗なドレスを着て結婚式するのが夢だったの。でも、結婚したらリセと離れちゃうって思ったら、それはちょっと嫌だなって」&lt;/p&gt;
&lt;p&gt;頭がぐらりとしたのは、難しい本から来る眠気のせいではなかった。サアラの隣に立つ私ではない誰かのことを考えるのは不愉快で、彼女と私が結婚しないのが &lt;em&gt;当たり前だとしても&lt;/em&gt; 、それは不条理な現実に思えた。&lt;/p&gt;
&lt;p&gt;「そんなの気にしなくていいじゃない。結婚式なんて、綺麗なドレスを着るだけのパーティなんだから」&lt;/p&gt;
&lt;p&gt;「そっか。やっぱり、リセはクールだね」&lt;/p&gt;
&lt;p&gt;「サアラがロマンチストなだけじゃない？」&lt;/p&gt;
&lt;p&gt;「ん、そうかも」&lt;/p&gt;
&lt;p&gt;私が可愛いものに憧れるのは、可愛らしさが私に似合わないからなのかもしれない。でも、そうだとしたら。そうだとしたら、サアラが綺麗なドレスを着ているのを想像すると、胸が締め付けられるのはなぜだろう。&lt;/p&gt;
&lt;p&gt;可愛いサアラは何も知らない。私のことも、マヤのことも。私は、何も知らないサアラに近づきたいだけなのかもしれない。&lt;/p&gt;
&lt;p&gt;「じゃあ、やっぱり行こうかな」&lt;/p&gt;
&lt;p&gt;サアラはそう答えて、何事もなかったかのように読書に戻った。そして、また静かな時間が流れていく。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://www.azone-int.co.jp/?sid=shr000"&gt;AZONE INTERNATIONAL::SAHRA'S a la mode&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>しあわせガイドライン 2</title><link href="https://ama.ne.jp/post/happiness-guideline-2/" rel="alternate"/><published>2018-07-06T18:21:00+09:00</published><updated>2018-07-06T18:21:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-07-06:/post/happiness-guideline-2/</id><summary type="html">&lt;p&gt;後編&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/happiness-guideline/"&gt;しあわせガイドライン&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="5"&gt;5&lt;/h2&gt;
&lt;p&gt;居酒屋バイト判定機は実に上手く動作していた。全体で見ればそうだろう。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私が持っている「しあわせガイドライン」には、こう書いてある。&lt;/p&gt;
&lt;p&gt;幸せなみなさんのうち、満十八歳になった人は一ヶ月以内に職業適性テストを受けなければなりません。適性テストには当日のテスト結果に加え、これまでの学業や部活動の様子などが用いられます。不正を防ぐために判断基準は一部を除いて非公開になっています。&lt;/p&gt;
&lt;p&gt;適性テストの結果はコンピュータが自動で算出します。これらの結果は、幸せなみなさんの職業選択を強制するものではなく、企業が採用活動を行うときに参考にする程度のものですから、安心して適性テストを受けましょう。&lt;/p&gt;
&lt;p&gt;しかし、適性テストの結果のうち、第三十三種職業適性基準、通称「居酒屋バイト判定機」だけは、事実上「企業が採用活動を行うときに参考にする程度のもの」ではなくなっている。&lt;/p&gt;
&lt;p&gt;居酒屋バイト判定を受けてしまうと、おそらくそれ以外の職種で採用は見込めない。つまり、テスト結果が有効な間は、居酒屋で働くか、さもなくば働くことを放棄しなければならない。しかし、労働は幸せを実現する重要な手段とされているから、事実上選べる選択肢は前者だけになっている。無職への風当たりは強かった。&lt;/p&gt;
&lt;p&gt;そういった職業選択上の事情もあり、居酒屋バイト判定機に引っかかったことを知られると、それ以外の場面――当然、恋愛や結婚でも――しばしば不利益を被ることがあった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;どうしてサキが居酒屋バイト判定機に引っかかったのだろう。見ている限り、成績は良いとは言えないまでも大きな問題はなかったはずだ。では、明るい性格のせいだろうか。志望学科のせいか、文理選択のせいか、成績のせいか。判定機は点数を示してくれないので、私はこの憤りをどこにぶつけるべきかも分からない。&lt;/p&gt;
&lt;p&gt;サキが居酒屋で働く分には問題ないだろう。彼女はどこにでも馴染める快活さがあるから。&lt;/p&gt;
&lt;p&gt;問題は別にあるのだ。これからの私たちのこと。&lt;/p&gt;
&lt;p&gt;あんな女の子と付き合うのはやめたほうが良い。どうせ親もまともな人間じゃないんだから、きっとろくなことにならない。もっと普通に男の子と付き合いなさい。&lt;/p&gt;
&lt;p&gt;それが幸せだからと、両親は口を揃えてそう言った。&lt;/p&gt;
&lt;p&gt;原因は分かりきっている。サキが居酒屋バイト判定機に引っかかったからだ。そして、私が引っかからなかったからだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;サキと近くの公園で待ち合わせた。彼女の誕生日から一週間後のことだ。&lt;/p&gt;
&lt;p&gt;日暮れの公園が生ぬるい空気でいっぱいになり、そこに街灯の光が差して羽虫が集まってくる。その下で、私とサキがベンチに座っている。よくある夏の終わりの風景と違うのは、彼女が赤く目を腫らしていることか。&lt;/p&gt;
&lt;p&gt;待ち合わせの十分前にはもうサキはそこにいて、私はうずくまる彼女を見てはいけない気がしてその場を離れた。&lt;/p&gt;
&lt;p&gt;やって来た私を見て、彼女は――そうするのが当然であるかのように――にこりと笑って、遅かったね、と言った。わざとらしい笑顔が、今日は一段と痛々しい。&lt;/p&gt;
&lt;p&gt;「ごめんね、ユキ。ダメだったみたい」&lt;/p&gt;
&lt;p&gt;「サキが悪いわけじゃないわ」&lt;/p&gt;
&lt;p&gt;居酒屋バイト判定機があるのが悪いのよ、と言うと、面白い冗談だね、と彼女はまた笑った。&lt;/p&gt;
&lt;p&gt;「今日で、共同戦線はおしまいだね」&lt;/p&gt;
&lt;p&gt;少し間を空けて、おしまいだよ、とさらにサキが言った。&lt;/p&gt;
&lt;p&gt;もともと「しあわせガイドライン」から逃げるための偽装カップルなのだから、私たちが一緒にいることによって逆に不利益を被るとなれば、解消するのが当然だろう。&lt;/p&gt;
&lt;p&gt;当然なのだけれど。&lt;/p&gt;
&lt;p&gt;「あなたは、それでいいの？」&lt;/p&gt;
&lt;p&gt;「仕方ないよ。ユキには迷惑かけたくないし」&lt;/p&gt;
&lt;p&gt;「私、迷惑なんかじゃないわ」&lt;/p&gt;
&lt;p&gt;「迷惑だよ。ユキだってよく分かってるでしょ？」&lt;/p&gt;
&lt;p&gt;家族にだって反対されちゃうし、生徒指導も受けなきゃならなくなるかもしれないんだよ。ぽつり、ぽつりとサキが続けた。&lt;/p&gt;
&lt;p&gt;彼女もきっと家族に何か言われたのだろう。ユキは当事者だから、私よりも責められたに違いない。&lt;/p&gt;
&lt;p&gt;「ユキのパパやママにも、迷惑がかかっちゃうんだよ」&lt;/p&gt;
&lt;p&gt;「そんなの……」&lt;/p&gt;
&lt;p&gt;「分かってるよね。ユキは私と違って、頭が良いもの」&lt;/p&gt;
&lt;p&gt;しあわせガイドラインを意に介さないしっかりとした強さを持っていたように見えたサキでも、今はすっかり弱っていた。&lt;/p&gt;
&lt;p&gt;でも、それも当然だ。一介の高校生にはどうしようもない現実なんだから。いざ向き合うとなれば、こうして疲弊するしかない。&lt;/p&gt;
&lt;p&gt;「そんな卑下するようなこと言わないで。いつもの元気はどうしたの？」&lt;/p&gt;
&lt;p&gt;「ユキは、強いね」&lt;/p&gt;
&lt;p&gt;サキはそう言って寂しそうに笑う。黄昏に似合う優しい表情だと思ったけど、言わなかった。&lt;/p&gt;
&lt;p&gt;「私は別れる気なんてないもの」&lt;/p&gt;
&lt;p&gt;「どうして？　どうして、そんなこと言うの？」&lt;/p&gt;
&lt;p&gt;ふと、彼女の顔を見る。つぅと頬に一雫流れてからは、もう決壊するしかない。ぽろ、ぽろぽろと次第に激しく溢れる涙は、きらきらと彼女の手の甲や膝に落ちていく。&lt;/p&gt;
&lt;p&gt;サキは唇を噛んで、声を出さないように泣いている。ずっと見たかった泣き顔は、案外簡単に見ることができてしまった。こんな時に見れたって、何も嬉しくないのに。&lt;/p&gt;
&lt;p&gt;「居酒屋バイトの私となんて、一緒にいたいはずないよ」&lt;/p&gt;
&lt;p&gt;「そんなこと言わないで。しあわせガイドラインから一緒に逃げようって言ったじゃない」&lt;/p&gt;
&lt;p&gt;「どうして？　情が湧いたの？　それとも、次の相手を探すのが面倒だからかな？　そうだよね、せっかく――」&lt;/p&gt;
&lt;p&gt;ぱしっ。一瞬、何の音か分からなかったけど、目の前でサキの涙が散る。思わず手が出ていた。&lt;/p&gt;
&lt;p&gt;痛い。いたい。苦しい。手が痛い。心が痛い。&lt;/p&gt;
&lt;p&gt;「ばかっ！」&lt;/p&gt;
&lt;p&gt;頬に付いた赤い跡は、彼女の言葉を遮るには十分すぎた。サキはひどく驚いた顔で、私を見ていた。&lt;/p&gt;
&lt;p&gt;「なんで、叩くの……？」&lt;/p&gt;
&lt;p&gt;「あ、いや、違うの……私、そんな……」&lt;/p&gt;
&lt;p&gt;「私だって、ユキのこと好きなのに。ただ、ユキの幸せを考えて……私が退けば、ユキが幸せで……」&lt;/p&gt;
&lt;p&gt;サキはとうとう、声を上げて泣き出してしまった。私もそれにつられて、ぽろぽろと流れる涙を止められない。&lt;/p&gt;
&lt;p&gt;私も、サキが好きなのに。なんで、なんで、なんで。&lt;/p&gt;
&lt;p&gt;「ユキ……私が嫌い？　嫌いだから、叩くの？」&lt;/p&gt;
&lt;p&gt;「違う。違うわ。私、サキがひどいことを言うから……」&lt;/p&gt;
&lt;p&gt;サキが私の胸に飛び込んで、泣きじゃくる。私はどうすればいいか分からないまま、定まらない手つきで彼女の髪を撫でることしかできない。&lt;/p&gt;
&lt;p&gt;「じゃあ、好き？　好きって、言ってよ……」&lt;/p&gt;
&lt;p&gt;「サキ。ねぇ、サキ。好き、好きよ。だから……別れるなんて、言わないで……」&lt;/p&gt;
&lt;p&gt;「好き……ユキ、好きだよ。もっと、もっと強く抱いて」&lt;/p&gt;
&lt;p&gt;彼女の頭に手を回して胸に押し付けると、サキの泣く声が心臓に直接響いてくる。その叫び声にも似た歌が、私をもっと悲しくさせた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「……ごめん。言い過ぎた」&lt;/p&gt;
&lt;p&gt;「私も、感情的になりすぎたわ」&lt;/p&gt;
&lt;p&gt;赤く目を腫らしたサキが、やっと落ち着きを取り戻す。私はまだ、ちょっと突付かれたらすぐに涙が零れてしまいそうだけど。&lt;/p&gt;
&lt;p&gt;「ちゃんと、待っててくれる？　私が居酒屋バイトじゃなくなる日まで」&lt;/p&gt;
&lt;p&gt;「えぇ、きっと。誓うわ」&lt;/p&gt;
&lt;p&gt;次の検査は、最短で三年後。彼女だけが居酒屋バイト判定機に引っかかってしまった今となっては、卒業後に同棲するのも難しくなった。それまでの間、サキは居酒屋バイトであり続ける必要があるし、私は大学に通いながらサキの帰りを待ち続けなければならない。&lt;/p&gt;
&lt;p&gt;それが長いのか短いのか、私にはよく分からない。今はとても長くなるだろうと思ってるけど、きっと振り返ってみると短かったと思うはずだ。&lt;/p&gt;
&lt;p&gt;「サキ、好きよ」&lt;/p&gt;
&lt;p&gt;「うん、ありがと。私もユキが大好きだよ」&lt;/p&gt;
&lt;p&gt;熱い視線がぶつかって、私たちはどちらからともなく唇を重ねた。ゆっくり舌を絡めて、歯をなぞる。互いの感触を忘れないように、口約束に判を押すように。&lt;/p&gt;
&lt;p&gt;暖かい彼女の頬からいつもより悲しい味が舌に伝わって、それを舐めとる私まで感情が溢れてしまいそうだ。&lt;/p&gt;
&lt;p&gt;「私たちは、自分が思ってるよりずっと弱いよ」&lt;/p&gt;
&lt;p&gt;「でも、また会えるわ。きっと」&lt;/p&gt;
&lt;p&gt;そうだね、と言って笑ってみせるサキ。その拍子に、目の端から涙がつつ、と一雫だけ流れていった。&lt;/p&gt;
&lt;p&gt;それから私たちは、辺りがすっかり暗くなるまでずっと手を繋いでいた。何も言わずに、最後になるかもしれない穏やかな時間を味わうようにして。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「そろそろお別れしないとね」&lt;/p&gt;
&lt;p&gt;立ち上がって、そっとお互いの身体に腕を回す。脆くて弱い二人が壊れてしまわないように、優しく力を込めた。&lt;/p&gt;
&lt;p&gt;「ユキは、幸せでしたか？」&lt;/p&gt;
&lt;p&gt;「はい、幸せでした。サキと出会えて。とても」&lt;/p&gt;
&lt;p&gt;彼女はずっと、私の胸で声を出さずに泣いている。せめてサキを抱きとめる私は絶対に泣くまいと思ったけど、そんなの無理だった。&lt;/p&gt;
&lt;p&gt;いっそ私も、居酒屋バイトになれればよかったのに。&lt;/p&gt;
&lt;h2 id="7"&gt;7&lt;/h2&gt;
&lt;p&gt;あれから私は大学生になって、実家を離れて一人暮らしを始めた。サキとは「別れた」から、卒業してからはもう連絡を取っていない。&lt;/p&gt;
&lt;p&gt;何度か夏を過ごしているうちに、夜の公園でじっとベンチに座って誰かを思うこともなくなった。&lt;/p&gt;
&lt;p&gt;大学生活はそれなりに楽しいし、週に何度かはサークルで仲の良い友達とご飯を食べに行ったりしている。講義だってしっかり出席しているし、成績だってそんなに悪くない。&lt;/p&gt;
&lt;p&gt;サキのいない世界はそれなりによく回っていて、私はもう彼女なしでやっていけるのではないかと思うこともある。日常の隙間に少しだけ残った空っぽの部分にわざわざ目を向けさえしなければ、だけど。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;遅くまで起きている夜は、私が孤独であることを思い知らされる。私の隣から空っぽの部分が滲み出てきて、じわじわ周りを包み込んでいくのをただ感じていると、最後には私まで空っぽになってしまう。&lt;/p&gt;
&lt;p&gt;私はサキがそんなに好きだったのだろうか。&lt;/p&gt;
&lt;p&gt;誰かに――サキに――私の何かを埋めて欲しいと思っている。あるいは、何かに――何でも良いから――私を慰めて欲しいと思っている。&lt;/p&gt;
&lt;p&gt;彼女たちだってそれなりに仲は良いけれど、その唇や、その髪に特別な意味を持って手を伸ばすことはできない。もし誰かに触れることができたなら、私はサキを忘れられるだろうか。&lt;/p&gt;
&lt;p&gt;私がサキを「好き」だと思っているのは、その程度の意味しかないのかもしれない。それでも、みんなが当たり前のように受け入れているしあわせガイドラインからずっと逃げてきた私には、今さら何事もなかったかのようにガイドラインに寄りかかる勇気はなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;サークルの新歓で、居酒屋に行くのだという。&lt;/p&gt;
&lt;p&gt;飲み会で居酒屋に行くことは何度かあったけれど、いつもその場所に行くまで憂鬱な気持ちが消えない。一瞬だけでも彼女のことを思い出してしまうからだ。もしもこの街で働いていたらどうしよう、もしもばったり会ってしまったらどうしよう。そう思うこと自体はたぶん悪いことではないけれど、そんな事情を知らずに楽しそうにしている今目の前にいる友人たちに悪い気がした。&lt;/p&gt;
&lt;p&gt;もし全国にあるたくさんの居酒屋の一つにサキがいたとしても、偶然その店を選び取ることはないだろう。そんなことがあるのなら、むしろ運命なのかもしれない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;お酒は好きだ。ふわふわとした心地がする。&lt;/p&gt;
&lt;p&gt;氷が唇に当たると気持ち良くて、いつもそのまま口に放り込んで溶かしてしまう。薄くなった氷をかりりと噛むと、飴みたいに砕けてすぐに消えていく。酔いが回っている時はいつもより早く飴が無くなってしまう気がして、子供みたいに何度もグラスを呷って頬張っていた。&lt;/p&gt;
&lt;p&gt;綺麗な水で作った氷は綺麗だけど、口に何も風味が残らなくて少しだけ物足りない。だから、本当は家で飲むお酒が一番好きだ。&lt;/p&gt;
&lt;p&gt;今年の新入生は穏やかでいい子そうだ。私はもう直に引退してしまうので、あまり関係ないんだけれど。みんなが自由に好きな時間を過ごしていて、こういう安心できる時間にお酒を飲むと少しだけでもよく酔える。&lt;/p&gt;
&lt;p&gt;それなのに今日は、ほとんど酔った感じがしない。アルコールだけは身体を回っていて、どうしてか妙な焦燥感と気持ち悪さで胸がいっぱいになった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;不思議な予感は、すぐに的中することになる。&lt;/p&gt;
&lt;p&gt;「ユキ……だよね。久しぶり」&lt;/p&gt;
&lt;p&gt;お手洗いを出ると、背中から懐かしい声がする。誰ですか、とは訊かなかった。訊かなくても分かった。&lt;/p&gt;
&lt;p&gt;「ここで働いてたのね、サキ。元気だった？」&lt;/p&gt;
&lt;p&gt;私は一瞬動けなくなって、ハンカチをしまおうとするその姿勢のまま、独白のように空中に向かって話しかける。驚きと歓喜と、少しの緊張を隠して平静を装った私の声は、それでも少し震えていた。&lt;/p&gt;
&lt;p&gt;「私はずっと元気だよ。ユキのこと、ずっと考えてた」&lt;/p&gt;
&lt;p&gt;思い切って振り返ると、あの頃よりも少し大人びたサキが立っている。&lt;/p&gt;
&lt;p&gt;汚れの目立たなさそうな黒い作務衣に、店のロゴの入った紺の前掛けをしたサキは、えへへ、と軽く声を出して笑った。若さだけでどこまでも連れて行ってくれそうな昔の元気は感じ取れなかったけど、その表情は私が知っているサキそのものだ。&lt;/p&gt;
&lt;p&gt;「私だって。サキのことを忘れたことはないわ」&lt;/p&gt;
&lt;p&gt;「あのね。私、そろそろ検査を受けなおせるんだよ」&lt;/p&gt;
&lt;p&gt;「えぇ。もうすぐ誕生日だものね」&lt;/p&gt;
&lt;p&gt;サキのいう検査というのは、職業適性テストのことだ。彼女を拘束して、私と引き離した居酒屋バイト判定機。&lt;/p&gt;
&lt;p&gt;大学に進学してからもずっと頭を離れずにいたその最悪のシステムは、少なからず私の研究テーマに影響を与えていた。&lt;/p&gt;
&lt;p&gt;「それでちゃんとした結果が出れば、また付き合えるね」&lt;/p&gt;
&lt;p&gt;「……なによ、それ」&lt;/p&gt;
&lt;p&gt;サキの言葉を聞いて、私は少しいらいらした。&lt;/p&gt;
&lt;p&gt;「私は、居酒屋バイトだからって別れたわけじゃないわ」&lt;/p&gt;
&lt;p&gt;「うん。知ってるよ」&lt;/p&gt;
&lt;p&gt;居酒屋バイトだからって避けていたわけではない。ただ、サキとの約束を守っていただけで。&lt;/p&gt;
&lt;p&gt;そもそも、彼女が居酒屋バイト判定機から逃れるのは難しいだろう。居酒屋バイト判定機は、一度陽性と判定した対象を再び陽性と判定する割合が非常に高いことが知られている。特定の職業に就くとその職業適性基準を満たしやすくなるのは当然なのだけれど、それでは十分に説明できない面もあった。&lt;/p&gt;
&lt;p&gt;「今だって、すぐにサキの手を引いて連れて帰りたいと思ってるわ。検査なんて関係なしに」&lt;/p&gt;
&lt;p&gt;「あはは、ありがと。でも、やっぱりサキは私の――」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;と、突然後ろから低い声がした。&lt;/p&gt;
&lt;p&gt;「おい、████！　知り合いか？」&lt;/p&gt;
&lt;p&gt;「あ、███さん。はい、高校……その、友人で」&lt;/p&gt;
&lt;p&gt;今、サキをなんと呼んだ？　聞き取れなくて私は一瞬耳を疑った。呼び名と思われる部分はどの音も曖昧で、むしろ鳴き声のように聞こえたのだ。&lt;/p&gt;
&lt;p&gt;ヨ……もしくは、キ、だろうか？　次の音も、ウともオともつかない何とも気味の悪い発音である。&lt;/p&gt;
&lt;p&gt;怖い、と思った。私の知らない発音を聞き取って、お互いにコミュニケーションを成立させている二人が、どうしても私と同じ人間とは思えなかった。&lt;/p&gt;
&lt;p&gt;私が怪訝そうな表情をしているのに何を思ったのか、サキは笑顔で男を手で示して口を開く。&lt;/p&gt;
&lt;p&gt;「ユキ、こちら店長の███さんだよ」&lt;/p&gt;
&lt;p&gt;自分の名前が理解できる音で耳に響く安心感と、耳が拒否する不気味な音が生み出す言いようのない恐怖感が同時に襲い掛かってくる。それなりの覚悟を持っていたけれど、目の前ではっきりと口の動きを見てしまってくらくらとした。&lt;/p&gt;
&lt;p&gt;居酒屋バイトには、お互いをあだ名で呼びあって信頼関係を深めるという文化があると聞いたことがある。何度か居酒屋に行ったことはあるけれど、彼らがどんな風に呼び合っているかに耳を傾けたことはなかった。本当はどの店員も、こうして鳴き声のような何かでやり取りしているのだろうか。&lt;/p&gt;
&lt;p&gt;店長と紹介された男は、それから私が聞き取れる日本語を一言か二言だけ放ってから仕事に戻っていった。&lt;/p&gt;
&lt;p&gt;「店長、見た目はアレだけど悪い人じゃないんだよ？」&lt;/p&gt;
&lt;p&gt;「そ、そうなの」&lt;/p&gt;
&lt;p&gt;「うん。███さん、この前は――」&lt;/p&gt;
&lt;p&gt;「じゃ、じゃあ……急いでるから。またね、サキ」&lt;/p&gt;
&lt;p&gt;次にその音を耳に入れると気が狂ってしまいそうで、もう無理やりにでも会話を遮ってその場を去らずにはいられなかった。&lt;/p&gt;
&lt;p&gt;「うん……そっか。じゃあね、ユキ」&lt;/p&gt;
&lt;p&gt;私は何事もなかったかのように軽く手を振ってその場を足早に去りながらも、心臓はばくばくとその鼓動を速めるばかりで、気を抜くと脚が震えて歩けなくなってしまいそうだ。足がもつれて転んでしまわないように、一歩ずつ前に進んだ。&lt;/p&gt;
&lt;p&gt;ねぇ、サキ。あなたは誰になってしまったの？&lt;/p&gt;
&lt;p&gt;私がサキに向けている目は、高校の時みたいに綺麗なものじゃなくなったと思う。彼女はそれに見合うくらい、もっとずっと汚くなったのだろうか。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ふらふらと家に帰って玄関に座り込んだ時には、私はもうすっかり疲れ切っていた。&lt;/p&gt;
&lt;p&gt;サキがいて、私がいた。サキは私を見ていたけれど、私は誰を見ていたのだろう。その視線に、しあわせガイドラインをしっかり脳みそに吸い込ませたあとの子供のような、無邪気な汚さを自覚した。だからもう、私は彼女と一緒にいることはできない。&lt;/p&gt;
&lt;p&gt;もしサキが居酒屋バイト判定機から逃れられたとしても、きっとそれは変わらないだろう。&lt;/p&gt;
&lt;p&gt;「変わったのは、私？　それとも、サキ？」&lt;/p&gt;
&lt;p&gt;もう、何もかもがだめになってしまった。しあわせガイドラインはこうして人を幸せにするのだろうか。&lt;/p&gt;
&lt;p&gt;逃げたとしても、受け入れたとしても、最後に振り返った時にはいつもしあわせガイドラインが私たちを見下ろしているのだ。逃げ切れなかったことを悟らせるように、逃げようなんて思いが芽生えないように。&lt;/p&gt;
&lt;p&gt;しあわせガイドラインが生み出した居酒屋バイト判定機が、一番憎むべきだった最悪の概念が、いつの間にか私の心に根を張って視界を曇らせている。&lt;/p&gt;
&lt;p&gt;「どうして？　ねぇサキ、どうしてあなたはこんな風になってしまったの？　気持ち、悪い……」&lt;/p&gt;
&lt;p&gt;高校時代の自由で魅力的だったサキと、私とは違う世界で違うことばを使っているサキが、もう同じ人間には見えなかった。&lt;/p&gt;
&lt;p&gt;そうだとしたら、誰もしあわせガイドラインを捨てようとしない理由がやっと分かった気がする。&lt;/p&gt;
&lt;p&gt;気付くと私は、引っ越し用のダンボールに乱雑に放り込まれてそのままになっていたしあわせガイドラインを、まるで聖書を紛失した狂信者のように探し回っていた。これまでどこかに置いてきた幸せを取り戻したいとでもいうようにして。&lt;/p&gt;
&lt;p&gt;「どうすれば、いいの？　どうすれば、幸せに……」&lt;/p&gt;
&lt;p&gt;ぱらぱらとページをめくりながら、何度か挿絵のインクがじわりと滲むのを見て、私はやっと自分が泣いているのに気付いた。表紙のカップルがみんな私を見物してあざ笑っているような気がして、見つめているうちに視界がぐにゃりと歪んでいく。&lt;/p&gt;
&lt;p&gt;いつの間にか私は、自分が一番嫌いなしあわせガイドラインなしでは自分自身の幸せさえも支えられなくなっていたのだ。&lt;/p&gt;
&lt;p&gt;「さよなら、サキ。本当に好きだったわ」&lt;/p&gt;
&lt;p&gt;さよなら、サキ。お互い「しあわせ」になりましょうね。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>しあわせガイドライン</title><link href="https://ama.ne.jp/post/happiness-guideline-1/" rel="alternate"/><published>2018-07-06T18:20:00+09:00</published><updated>2018-07-06T18:20:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-07-06:/post/happiness-guideline-1/</id><summary type="html">&lt;p&gt;前編&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/happiness-guideline/"&gt;しあわせガイドライン&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1"&gt;1&lt;/h2&gt;
&lt;p&gt;世は空前の幸せブームである。&lt;/p&gt;
&lt;p&gt;国民は幸せで豊かな生活を送るべきだとされ、その実現を最優先とする政策が続いた。その目標から外れた生き方は非道徳的なものとしてしばしば批判され、国だけでなく周囲からも白い目を向けられてしまう。何が幸せで、どうすると豊かなのかを国が決定する時代に入ったのである。&lt;/p&gt;
&lt;p&gt;その結果作られたのが「しあわせガイドライン」だ。&lt;/p&gt;
&lt;p&gt;しあわせガイドラインには、幸せとはどういうものか、幸せはどうやれば手に入れられるのかが書いてある。誰かに、国に都合が良いように。出産を奨励して国力を増すためだとか、ＡＩが暴走した結果生まれた政策だとか、国民の幸せエネルギーを兵器に転用する研究が進んでいるのだという陰謀論じみた説さえもまことしやかに噂されるようになっていた。&lt;/p&gt;
&lt;p&gt;多様性のためと称して片手で数えられるくらいの似たようなモデルケースが載っていて、しかもその全部が男女の仲睦まじい恋愛を含んでいる。恋愛や結婚、出産、労働は幸せの代表例とされた。&lt;/p&gt;
&lt;p&gt;最近になって、男性同士や女性同士のカップルもモデルケースとして加えようという議論が始まったらしい。ただし、同性同士での性交渉による妊娠や出産が可能になってから巻き起こった議論であることを鑑みれば、単に男女カップルの真似事ができるようになった新入りについての取り決めでしかないのは明らかだ。多様性の尊重に基づく進歩というわけではなかった。&lt;/p&gt;
&lt;p&gt;本当はどこかに一つの「普通」があって、そこに瑣末なノイズが乗っているだけなのだ。&lt;/p&gt;
&lt;p&gt;みんなが誰でもない何かに変わるのを強いられている。そういう不自然で歪な変化を、みんなが考えなしに受け入れている。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「――ユキさん。私と、付き合ってください」&lt;/p&gt;
&lt;p&gt;校舎裏に呼び出された私は、その場所にふさわしく青春らしい告白を受けていた。ただ、目の前でその台詞を言っているのは、知らない生徒で。しかも、女子だった。&lt;/p&gt;
&lt;p&gt;「あなた、私のことを知っているの？」&lt;/p&gt;
&lt;p&gt;まず気になったのはそこだ。&lt;/p&gt;
&lt;p&gt;目の前で私に交際を迫っているのは、夏服のセーラー服を身に纏ったごく普通の可愛らしい女子である。胸や腰のラインが人より魅力的に膨らんでいるわけでもないけれど、男ということはないだろう。&lt;/p&gt;
&lt;p&gt;第一声で互いの性別を確認しようかとも思ったけど、冗談にしかならないのでやめた。&lt;/p&gt;
&lt;p&gt;「うん、有名だよ。私の中では」&lt;/p&gt;
&lt;p&gt;「真面目に答えてほしいわね」&lt;/p&gt;
&lt;p&gt;「あはは。ごめんごめん」&lt;/p&gt;
&lt;p&gt;彼女の旧知の友人相手なら、そのにへらとした笑顔で許してもらえるのだろうけど、初対面の私はあまり良い気分にはならなかった。&lt;/p&gt;
&lt;p&gt;「恋人がいない謎の女とか、実はレズだとか、いろいろと噂されてるかな。たぶん」&lt;/p&gt;
&lt;p&gt;「そう。話題になっているのは嬉しいけど、私はあなたのことを知らないの」&lt;/p&gt;
&lt;p&gt;私がそう言うと、彼女は自分自身についての情報をすらすらと語った。名前をサキというらしい。&lt;/p&gt;
&lt;p&gt;「それで、サキさん。あなたは、私がレズビアンだって噂を聞いてからかいにでも来たの？」&lt;/p&gt;
&lt;p&gt;「うーん、ちょっと違うかな」&lt;/p&gt;
&lt;p&gt;「じゃあ、何？　私、誰かと付き合う気はないわ」&lt;/p&gt;
&lt;p&gt;「そうだろうねぇ」&lt;/p&gt;
&lt;p&gt;「それに私は、レズじゃないし」&lt;/p&gt;
&lt;p&gt;「うん、たぶんそうだと思ってたよ」&lt;/p&gt;
&lt;p&gt;どちらともつかない返事と、無遠慮な視線が私をいらいらさせる。珍しい動物でも見るみたいにして、一挙手一投足まで漏らさず観察されているような気分だ。&lt;/p&gt;
&lt;p&gt;私としては、同性愛者はおろか謎の女さえも自負していたつもりはないので、サキに観察される筋合いなんてないのだけれど。&lt;/p&gt;
&lt;p&gt;「じゃあ、もういいじゃない。私じゃなくても、もっとあなたに似合う良い男の子がいると思うわ」&lt;/p&gt;
&lt;p&gt;「女同士で付き合うのは、良くないことかな。私、ちゃんとユキさんが好きだよ？」&lt;/p&gt;
&lt;p&gt;「そういうの、あんまり興味ないの」&lt;/p&gt;
&lt;p&gt;私がそう告げるのを聞くや否や、彼女はくくくっ、と声を抑えて笑っていたみたいだけど、結局我慢できなかったらしく甲高い笑い声を上げる。&lt;/p&gt;
&lt;p&gt;「あははっ。やっぱり、そうだよね」&lt;/p&gt;
&lt;p&gt;なんなんだ、この女は。さっきから私を馬鹿にしてばかりいる。別れの挨拶すらする気にならず、私は踵を返してその場を去ろうとした。&lt;/p&gt;
&lt;p&gt;「ごめんね。だって、キミが――」&lt;/p&gt;
&lt;p&gt;と、後ろからサキが私を呼び止める。思わず立ち止まってしまったけれど、彼女がそんな私を見てにやにやしているんじゃないかと思うと、また少し悔しくなる。&lt;/p&gt;
&lt;p&gt;「だって、キミが誰とも付き合わないのは、反しあわせガイドライン活動なんだよね？」&lt;/p&gt;
&lt;p&gt;反しあわせガイドライン活動、という言葉に私の耳が否が応にも反応してしまう。そんな言葉今まで聞いたこともなかったけど、どういう意味かはすぐに分かった。&lt;/p&gt;
&lt;p&gt;私が振り返ってサキに正対すると、彼女は想像していたよりは真面目な表情だ。でも今は、そんなことどうでもよかった。&lt;/p&gt;
&lt;p&gt;「あなた、何者？　しあわせガイドラインが嫌いなの？」&lt;/p&gt;
&lt;p&gt;「うん。キミとは少し、違うかもしれないけど」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「試すようなことをして、ごめんね。でも、私はユキさんが好き。からかってなんかないよ」&lt;/p&gt;
&lt;p&gt;それから、謎の女子生徒はおよそこんなことを告げた。&lt;/p&gt;
&lt;p&gt;私がしあわせガイドラインに真っ向から反抗して絶対に受け入れまいとする姿勢は、とても気高くて理想的だと思う。でも、一介の高校三年生が国のやり方に反抗したところで、生徒指導すら説得できずに疲弊するだけだ。&lt;/p&gt;
&lt;p&gt;そうするくらいなら、もっと上手にしあわせガイドラインを受け流してみたらどうだろう。とりあえず、高校生活の間だけでも彼女と付き合って、周囲に恋愛をしているポーズを示してみるのはどうか。&lt;/p&gt;
&lt;p&gt;「こんな感じで、お互いにお互いを利用してみない？」&lt;/p&gt;
&lt;p&gt;まぁ、聞いてみると悪い提案ではない。&lt;/p&gt;
&lt;p&gt;「確かに、私にはいい話かもしれないわ。でも、あなたのメリットは？」&lt;/p&gt;
&lt;p&gt;「私は好きなキミと一緒にいられるし、キミはしあわせガイドラインから逃げられる」&lt;/p&gt;
&lt;p&gt;そう言って、サキは良いこと尽くめだよと言うように薄い胸を張った。こんなに「好き」とはっきり言われたこともないので、私は何と答えるべきか分からない。&lt;/p&gt;
&lt;p&gt;私が無言のままでいると、それにさ、と小声で付け足した。ここだけの話というように、わざとらしく口に手を添えて。&lt;/p&gt;
&lt;p&gt;「そろそろ、生徒指導もうるさくなってるんじゃない？」&lt;/p&gt;
&lt;p&gt;「あなた、口説き上手なのね」&lt;/p&gt;
&lt;p&gt;「いろいろ、準備してきてますから」&lt;/p&gt;
&lt;p&gt;サキが自然なウィンクをしてみせる。&lt;/p&gt;
&lt;p&gt;彼女は準備、と言った。そこまでして私と付き合いたいのだろうか。なぜ？　恋愛？　親愛？　分からなかった。&lt;/p&gt;
&lt;p&gt;「でも――」&lt;/p&gt;
&lt;p&gt;私の言葉に、サキが耳聡くぴくっと反応する。何だかそれが面白くて、私もわざとらしく手振りを付けてわざとらしくゆっくりと言葉を続けた。&lt;/p&gt;
&lt;p&gt;「でも、私があなたを選ぶ理由はないわ。付き合うふりをするだけなら、あなたじゃなくたっていいもの」&lt;/p&gt;
&lt;p&gt;それこそ、わざわざ女子同士で付き合わなくたって、普通に男女のカップルを隠れ蓑にすればいいだろう。&lt;/p&gt;
&lt;p&gt;「うーん、確かに。それはもっともだね」&lt;/p&gt;
&lt;p&gt;「でしょう？」&lt;/p&gt;
&lt;p&gt;サキは腕を組んで一転、思案顔になった。やっと言い負かせたかなとも思ったけど。&lt;/p&gt;
&lt;p&gt;「その気になった男子に襲われちゃったとして、キミに撃退できるような筋力があるとは思えないけどね」&lt;/p&gt;
&lt;p&gt;くすっ、と言って私の顔を覗き込むサキの準備の方が、一枚上手だった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ガイドラインで推奨されているモデルケースみたいな幸せを掴み取りたいと思ったことはない。中学校の裁縫セットみたいに、限られた選択肢から最も近いものを無理に選ばなくたって、もっと自分らしい幸せがあるはずだ。&lt;/p&gt;
&lt;p&gt;クラスの男子と付き合ったりデートすること自体が嫌なわけではない。ガイドラインがなかったら、私だってもっと「普通」に甘酸っぱい青春を送っていたかもしれないし。恋愛や結婚が気持ち悪いと思ったことはないけれど、用意された選択肢から誰かと同じ人生を選び取るのを強いられるのがひどく怖かった。&lt;/p&gt;
&lt;p&gt;あの子はどうなのだろう？　しあわせガイドラインがなかったら、私を好きになっていたのかな。少なくとも、私にこんな取引じみた告白はしなかっただろう。もっと普通の出会いをして、今頃は友達として仲良く笑っていたかもしれない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「いいわ、付き合っても」&lt;/p&gt;
&lt;p&gt;結局私は、彼女の提案を受け入れることにした。&lt;/p&gt;
&lt;p&gt;サキと「恋人」になって、残り少ない高校生活を穏やかに過ごす。それが当面の契約だ。彼女はガイドラインに疑念を持っている仲間みたいだし、きちんとやってくれるだろう。彼女が言うには、私がサキに襲われても簡単に撃退できるみたいだし。&lt;/p&gt;
&lt;p&gt;「ありがとう、ユキ。好きだよ」&lt;/p&gt;
&lt;p&gt;少し心配なのは、彼女が私を「好き」だということだ。これが私の気を引くための嘘だったら何も問題ないのだけれど、そんなそぶりを見せるわけでもない。もし本当に私が好きなら、こんなお付き合いを続けることで心を壊してしまったりはしないだろうか。&lt;/p&gt;
&lt;p&gt;誰かの「好き」に縛られるのは合理的じゃない、と思った。でも、誰かが隣にいることで残り少ない学生生活が穏やかに過ごせるなら、私は案外幸せ者なのかもしれない。&lt;/p&gt;
&lt;p&gt;「えぇ。私も、あなたのことを好きに――」&lt;/p&gt;
&lt;p&gt;「サキ。私はサキだよ。恋人同士は、あなたとかお前じゃなくて、ちゃんと名前で呼び合うの」&lt;/p&gt;
&lt;p&gt;私の言葉を遮って、しあわせガイドラインに書いてあるでしょ、と言いながら取り出すのはあの忌々しい小冊子である。けらけらと笑う様子を見ていると、しあわせガイドラインを使っておどけているだけらしい。&lt;/p&gt;
&lt;p&gt;「馬鹿ね。しあわせガイドラインから逃げようっていうのに、参考にしちゃうの？」&lt;/p&gt;
&lt;p&gt;「ふふっ、そうでした。ごめんごめん」&lt;/p&gt;
&lt;p&gt;彼女は一頻り笑ってから、しあわせガイドラインをまたポケットにしまった。それから一転、少し真剣な表情になって私を見つめる。&lt;/p&gt;
&lt;p&gt;「でも、やっぱり名前で呼んでほしいな。ガイドラインなんて関係ない。私が名前で呼ばれたいんだもん」&lt;/p&gt;
&lt;p&gt;顔を寄せてきたサキの長いまつげが見えて、少しだけどきどきした。こうやって、誰かの顔を近くで見たことがあんまりなかったから。&lt;/p&gt;
&lt;p&gt;「分かったわ、サキ」&lt;/p&gt;
&lt;p&gt;「うん、ありがとう。ユキ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ねぇ。サキはなんで、私が好きなの？」&lt;/p&gt;
&lt;p&gt;「綺麗な顔、してるから？」&lt;/p&gt;
&lt;p&gt;サキは少し考えてから、あっけらかんとしてそう言った。&lt;/p&gt;
&lt;p&gt;「でもでも、他のところもちゃんと好きだよ？　ずっとユキのこと見てたし」&lt;/p&gt;
&lt;p&gt;「ふふっ。面白いことを言うのね」&lt;/p&gt;
&lt;p&gt;「顔が好きでも、身体が好きでも、心が好きなのも全部同じだよ。そういうのに、優劣ってあるのかな？」&lt;/p&gt;
&lt;p&gt;互いの心と心が惹かれ合った男女が付き合って、結婚まで互いに純潔を守るのが当たり前で、それが一番幸せで……そういうしあわせガイドラインを、彼女は全く気に掛けずにいる。&lt;/p&gt;
&lt;p&gt;私はガイドラインがなければこうやって抵抗することもなかったけど、サキはガイドラインなんて気にせずに、ずっとそのまま生きてきたのだろう。&lt;/p&gt;
&lt;p&gt;そういう違いがすごく気に入っていた。私の知らない幸せがそこにある気がした。&lt;/p&gt;
&lt;p&gt;「サキ。じゃあ、明日からお昼は一緒に食べましょう」&lt;/p&gt;
&lt;p&gt;それも、しあわせガイドラインにあるんでしょ？&lt;/p&gt;
&lt;p&gt;私がそう言うと、彼女は今日一番の笑顔になった。なかなか可愛い。&lt;/p&gt;
&lt;h2 id="3"&gt;3&lt;/h2&gt;
&lt;p&gt;私の部屋に、レースカーテン越しの夏の日差しが降り注ぐ。精緻な影が絨毯に散らされて、つまらない光の波がゆらゆら揺れている。その動きは出来の悪い夢みたいで、章の切れ間でふと目を遣ると、シネマグラフじみた静けさと退屈さが私の脳みそをじわじわと覆っていく感覚がした。&lt;/p&gt;
&lt;p&gt;私の右隣には、ベッドにもたれて脚を伸ばす「恋人」のサキがいて、買ってきた新刊のコミックスを読んでは潜めた笑い声を上げていた。&lt;/p&gt;
&lt;p&gt;外の猛暑の中では元気に啼く鳥も無い。元より車通りが少ないせいもあり、エアコンも付けていない室内には時折ページを繰る音……とサキのくすくす言う声だけが小さく響いている。&lt;/p&gt;
&lt;p&gt;「ユキ。この部屋、ちょっと暑くない？」&lt;/p&gt;
&lt;p&gt;サキがそのまどろみを破るようにして、私に声をかけた。&lt;/p&gt;
&lt;p&gt;時折彼女が身体を揺らすと私まで視界がぐらつくくらいにぴったりくっつき、それでいて暑いという。揺れた髪の先が私の肩に当たるのが鬱陶しい。&lt;/p&gt;
&lt;p&gt;「そんなに暑いのなら、離れればいいじゃない」&lt;/p&gt;
&lt;p&gt;「くっついていなくていいの？　『恋人』なのに」&lt;/p&gt;
&lt;p&gt;恋人、と強調するように言ってからサキはいたずらっぽく笑った。私はベッドに本を置いて、彼女に向き直る。&lt;/p&gt;
&lt;p&gt;サキに触れていた右腕が火照っているのに気付いて、私は軽く手で撫でた。&lt;/p&gt;
&lt;p&gt;「いくら恋人って言っても、体温調節に支障が出るまで四六時中くっついているものではないと思うわ」&lt;/p&gt;
&lt;p&gt;「そうかな？　でも、ガイドラインだと推奨されてるよ」&lt;/p&gt;
&lt;p&gt;サキが取り出した小冊子の表紙には、ポップなフォントで「しあわせガイドライン」というタイトルが、その下には笑顔のカップルが何組か描かれている。&lt;/p&gt;
&lt;p&gt;「えぇ、えぇ。ガイドラインは嫌ってほど読んだわ。今こうしてあなたと過ごしているのも、それのおかげだもの」&lt;/p&gt;
&lt;p&gt;「そんなにいらいらしないでよ」&lt;/p&gt;
&lt;p&gt;「じゃあ、学校でもないのにそんなくだらない本を持ち出してこないでほしいわね」&lt;/p&gt;
&lt;p&gt;「でも、幸せは大事だよ？」&lt;/p&gt;
&lt;p&gt;サキが冗談めかしてけらけら笑う。いつもは「しあわせガイドライン」をネタにして冗談を言い合っているはずなのだけど、今日は無性に腹が立った。&lt;/p&gt;
&lt;p&gt;「あのねぇ……じゃあサキは、ガイドラインに書いてあることならなんでもするの？」&lt;/p&gt;
&lt;p&gt;いらいらなんてしたくない。エアコンを付けたくないし、無駄な雑音だって聞きたくない。本当はサキとも言い争いたくないのに、私の口は止まらない。&lt;/p&gt;
&lt;p&gt;「あははっ。なにそれ」&lt;/p&gt;
&lt;p&gt;サキが一段大きな笑い声を上げて、我ながら馬鹿なことを訊いたと思った。サキは冊子を床に放り投げて、それから私の胸に顔を埋めた。鼻が押し当てられて少しくすぐったい。頭が揺れるたびに、ちょっとだけシャンプーの匂いがした。&lt;/p&gt;
&lt;p&gt;「私はユキと違って、ちゃんとユキのことが好きだもん。二人きりの時くらいはくっつきたいって思ってるよ」&lt;/p&gt;
&lt;p&gt;もごもご喋るサキの「好き」という言葉にずきっとする。心に向かってゼロ距離で語りかけられているのに、それでも彼女の「好き」は私の少し横をすり抜けていく気がした。&lt;/p&gt;
&lt;p&gt;「ガイドラインなんてただの言い訳だって、今更言わなきゃ分からない？」&lt;/p&gt;
&lt;p&gt;「そうね。ごめん、言い過ぎたわ」&lt;/p&gt;
&lt;p&gt;ちらと横を見ると、床に捨てられた冊子から、不自然なほどに張り付いた笑顔のカップルがこちらを見ているような気がした。偽物の幸せの象徴だ。&lt;/p&gt;
&lt;p&gt;「ねぇ、サキ。私はね――」&lt;/p&gt;
&lt;p&gt;「――やっぱり、『恋人』の私といるのは嫌かな？」&lt;/p&gt;
&lt;p&gt;背中に腕を回そうとしたあたりで、彼女が起き上がって私を見上げる。私は伸ばした手を引っ込めて彼女の視線に応えた。&lt;/p&gt;
&lt;p&gt;サキの目はどこにも逸れずに私だけを向いていて、まるで私のことを全部見透かしてやろうとでもいうような、そういう確信めいた意思があるように見えた。&lt;/p&gt;
&lt;p&gt;「そうじゃないの。私、ただ……」&lt;/p&gt;
&lt;p&gt;ただ、なんだろう？　私のことを好きでいてくれて、好きだと素直に伝えてくれる人がいる。私はそれで幸せなんだろうか。私はサキを好きになれるだろうか。&lt;/p&gt;
&lt;p&gt;まっすぐ向き合おうとするサキに、私はなんと答えるべきなのか分からない。&lt;/p&gt;
&lt;p&gt;「なんてね！　冗談だよ」&lt;/p&gt;
&lt;p&gt;そうして私が何も言わずにいると、サキが急に沈黙をかき消すようにしておどけてみせた。私はそれに応えて小さく笑ってみせる。ここからはお互い踏み込まないよ、と確かめ合うように。&lt;/p&gt;
&lt;p&gt;もう沈黙が苦しい仲でもないはずだけど、彼女も何かが怖くて、何かを隠したいんだと思う。でも、そうやってわざとらしく強がった笑顔が、私は嫌いだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;最近、サキのことを考えて何も手につかなくなるときがある。そういう時に、エアコンが風を送る音すらもひどく耳障りに感じることがあった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ふぃー。涼しくて最高だよ」&lt;/p&gt;
&lt;p&gt;ドアを開けると、廊下に涼しい空気が流れ込んでいくのが分かった。氷入りの麦茶を手渡すと、サキはそれを一気に半分ほど飲んでしまう。&lt;/p&gt;
&lt;p&gt;「急にたくさん飲むと、お腹が痛くなるわよ」&lt;/p&gt;
&lt;p&gt;私がそう言うと、サキは大丈夫だよと答えてグラスを振ってからからと鳴らす。そして、得意げな顔をしてもう半分も飲み干してしまった。&lt;/p&gt;
&lt;p&gt;「我慢は幸せじゃないよ。ユキは幸せですか？」&lt;/p&gt;
&lt;p&gt;「はい、幸せです。美味しいソーダがあるんだもの」&lt;/p&gt;
&lt;p&gt;お決まりのやり取りの真似をして、くすっ、とサキが小さく笑った。&lt;/p&gt;
&lt;p&gt;炭酸水が入った瓶に耳を当てても、封をしたままでは泡の弾ける音は聞こえない。頬が冷たくて、このの中だけ時間が止まっているみたいだ。&lt;/p&gt;
&lt;p&gt;瓶の向こうにぐにゃりと歪んだサキの像が見える。どうしてか、この瓶が割れたら一緒に彼女まで消えてしまったりしないかと、少し変な想像が浮かんできた。&lt;/p&gt;
&lt;p&gt;「私は好きじゃないなぁ。ちょっと苦いし」&lt;/p&gt;
&lt;p&gt;「味覚がお子様なんじゃない？」&lt;/p&gt;
&lt;p&gt;「ふふっ。うん、冷たい麦茶が大好きなお子様だよ」&lt;/p&gt;
&lt;p&gt;溶けて小さくなった氷が、からりと音を立てて沈んでまた泡が立った。くすくすと、動き出した時間を喜ぶようにして。&lt;/p&gt;
&lt;p&gt;「ん、美味しい」&lt;/p&gt;
&lt;p&gt;グラスの底に付いた雫が、じわ、とコースターに滲んだ。&lt;/p&gt;
&lt;p&gt;サキも、こんなに透明だったら良いのに。隅から隅まで見通して、どこに気泡があって、どこに氷があるのかを触れずに確かめられたなら。&lt;/p&gt;
&lt;p&gt;私はサキのことを何も知らない。&lt;/p&gt;
&lt;p&gt;ふわふわとした癖っ毛に、吸い込まれそうな瞳と、柔らかそうな唇。私より背が低くて小さな身体なのに、いつもその唇の端をにこりと引き上げて、どこまでも引っ張ってくれそうな元気な声で私を呼ぶのだ。&lt;/p&gt;
&lt;p&gt;細くてまっすぐな首からなだらかに続く肩のラインと、服の下に隠れた女の子らしい丸み。日に焼けた彼女の身体に、制汗剤の良い匂いをふりかけて。&lt;/p&gt;
&lt;p&gt;私が知っているサキは、こんな外向きの彼女だけだ。ねぇサキ、その中には何を秘めてるの？&lt;/p&gt;
&lt;p&gt;突然隣にやってきた彼女は、私が好きだと言った。でも、サキは本当に私が好きなの？　ねぇ、どうして笑っているの？　何がそんなに嬉しいの？　もっと色んな表情を見ないと、サキのことが分からないよ。&lt;/p&gt;
&lt;p&gt;サキは私と向き合う時にだけ、何かを守るようにして私に笑顔を向けるのだ。&lt;/p&gt;
&lt;p&gt;素直に尋ねたところで、きっと、何も隠してないよと言うんだろう。彼女に触れて中を覗こうともせずに、そんな確信じみた考えが頭を支配する。&lt;/p&gt;
&lt;p&gt;どうしたら、サキの色んな表情が見られるだろう。例えば、そうだ――&lt;/p&gt;
&lt;p&gt;「ユキ、なんかぼーっとしてる？」&lt;/p&gt;
&lt;p&gt;と、いつの間にかグラスを注視していたらしく、気付くとサキが私の視線を遮るようにして心配そうに覗き込んでいる。&lt;/p&gt;
&lt;p&gt;「え、あ……な、なに？」&lt;/p&gt;
&lt;p&gt;「ん？　考えごとしてる表情も好きだなーって」&lt;/p&gt;
&lt;p&gt;首を傾げると髪が揺れて、またシャンプーの香りだ。&lt;/p&gt;
&lt;p&gt;サキはここに来る前に、私に会う前に、シャワーを浴びたのだろう。私から見える彼女は何もかもが綺麗で、だからきっとそうだ。&lt;/p&gt;
&lt;p&gt;「考えごとだなんて、そんな大したことじゃないわ」&lt;/p&gt;
&lt;p&gt;「じゃあ、何考えてたの？」&lt;/p&gt;
&lt;p&gt;私のことで頭がいっぱいだったのかな、と冗談めかした口調に、私は思わず口が滑ってしまう。&lt;/p&gt;
&lt;p&gt;「……ねぇ、サキの首を締めたら、どうなるのかしら」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「首絞められたら、私、死んじゃうよ？」&lt;/p&gt;
&lt;p&gt;サキが目を丸くして、少し黙って、それからやっとそう言った。ただそれだけ。&lt;/p&gt;
&lt;p&gt;彼女は私から離れるために後ずさりするわけでもなく、細くて絞めたら千切れてしまいそうな喉元を手で守ろうするわけでもない。無自覚か、あるいは自覚的な無防備さに誘われているような気がした。&lt;/p&gt;
&lt;p&gt;「だめ。首はだめだよ」&lt;/p&gt;
&lt;p&gt;しかし、私のそんな視線に気付いたのか、サキは私の手を自分の膝に押し付けて動けないようにした。右手で左手を、左手で右手を。握られた手に引かれて上半身もぐいと前へ傾いてしまう。バランスを崩しそうになるのに合わせて、ぐに、とサキの太ももに体重が掛かっていく。&lt;/p&gt;
&lt;p&gt;「ち、違うのよ。そういうことじゃなくて」&lt;/p&gt;
&lt;p&gt;顔がぶつかりそうになるのも気にせずに、サキは手を握ったまま私をじっと見つめていた。&lt;/p&gt;
&lt;p&gt;「分かってるよ。私のこと、考えてくれてたんだよね」&lt;/p&gt;
&lt;p&gt;いいことじゃないみたいだけど、と付け足してから、サキは私の手を離す。視線がふらふらと空中を舞った。&lt;/p&gt;
&lt;p&gt;「もっと、ユキの考えてること……教えてよ」&lt;/p&gt;
&lt;p&gt;そう言われてサキの細い首をちらと一瞥すると、一瞬だけ呼吸が乱れるのを自覚した。&lt;/p&gt;
&lt;p&gt;起こした身体を戻して姿勢を正すと、彼女の首元を意識した時から、あるいはその前から、自分の心臓がいつもより速く鼓動を打っていたことに気付く。&lt;/p&gt;
&lt;p&gt;「私、サキが何を考えてるのか分からないの」&lt;/p&gt;
&lt;p&gt;「どういう意味？　私はずっと、私のままだよ」&lt;/p&gt;
&lt;p&gt;そんなことない。絶対に。&lt;/p&gt;
&lt;p&gt;人には外からは見通せない不透明な部分がある。誰だって、私だって。サキはそういう秘密がいっぱいあるように見えるけれど、同時に私だけがその秘密を知らないような感覚に襲われることがあった。&lt;/p&gt;
&lt;p&gt;「私、見てみたいの。あなたがどんな風に怒るのか、どんな風に泣くのか、どんな風に……」&lt;/p&gt;
&lt;p&gt;「どんな風に、苦しむのか」&lt;/p&gt;
&lt;p&gt;私の沈黙に合わせて、サキが付け足すように呟く。&lt;/p&gt;
&lt;p&gt;「首を絞めたらどんな表情になるか、見てみたいの？」&lt;/p&gt;
&lt;p&gt;想いが洪水みたいに溢れてしまっては、自分の考えがすっかり知られてしまうのを止めることはできない。それでも改めて言葉で指摘されると、じわじわと心臓を掴まれたような心地がする。&lt;/p&gt;
&lt;p&gt;言葉を発せなくなって、私はただこくりと頷いた。&lt;/p&gt;
&lt;p&gt;いつの間にかエアコンは止まっていて、もう仕事を終えたとでもいうように黙りこくっていた。確かに部屋は涼しくて過ごしやすくなったけれど、意識せずにいた沈黙が急に意識に上がってきて、ちくちくと心をつついてその快適さを奪っていく。&lt;/p&gt;
&lt;p&gt;「私、ちゃんと笑えてなかったかな」&lt;/p&gt;
&lt;p&gt;そんな沈黙を破るようにして、サキがぽつりと呟いた。&lt;/p&gt;
&lt;p&gt;「……ち、違うわ。私が勝手に思ってるだけで」&lt;/p&gt;
&lt;p&gt;「でも、私の笑顔がユキを追い詰めてちゃってる」&lt;/p&gt;
&lt;p&gt;そう言って、にこ、と口元を動かした。&lt;/p&gt;
&lt;p&gt;違う。サキが私のことを好きでいてくれるなら、私もサキのことをちゃんと知りたい。ただ、それだけで。&lt;/p&gt;
&lt;p&gt;別に彼女のことが分からなくたって、私が悩んで追い詰められるなんてことは……たぶん、ない。&lt;/p&gt;
&lt;p&gt;「だから、私はサキのことを殺したいわけじゃないの」&lt;/p&gt;
&lt;p&gt;安心して、と言うとサキがけらけら笑った。&lt;/p&gt;
&lt;p&gt;「首を絞めたいけど安心してって、何だか面白いね」&lt;/p&gt;
&lt;p&gt;「そう……かしら？」&lt;/p&gt;
&lt;p&gt;「やったこともないのに、自分はぎりぎりで自制できるんだって信じてるみたい」&lt;/p&gt;
&lt;p&gt;「そんなこと――」&lt;/p&gt;
&lt;p&gt;「じゃあ、やってみる？」&lt;/p&gt;
&lt;p&gt;サキが鎖骨の辺りに手を置いて、首を前に差し出した。そのゆっくりとした動きがまた私の胸を高鳴らせる。暖かそうにも冷たそうにも見える肌に少しでも触れたら、私はどうにかなってしまうかもしれない。&lt;/p&gt;
&lt;p&gt;「あは。また、怖い目だよ。だめだめ」&lt;/p&gt;
&lt;p&gt;「あ、ご……ごめん」&lt;/p&gt;
&lt;p&gt;おそらくはサキの予想以上に効果のあった挑発はすぐに終わって、また私の手を引く拘束の姿勢に入った。&lt;/p&gt;
&lt;p&gt;心がそのまま瞳に表れているのなら、こうやって無理やり顔を近づけるだけでテレパシーみたいに全部知られてしまうだろう。&lt;/p&gt;
&lt;p&gt;「サキって、意外と変態なんだね。抑圧されてたの？」&lt;/p&gt;
&lt;p&gt;だから私は笑顔を崩したかっただけだと言おうと思ったけれど、それでは最初に思い付いたのがそんな手段だったことを説明できないのも分かっている。&lt;/p&gt;
&lt;p&gt;自分がいつの間にかおかしくなっていたのかと思うとひどく恐ろしいけど、少しだけ誇らしい感じもした。&lt;/p&gt;
&lt;p&gt;「そうかもね。自分では分からないけど」&lt;/p&gt;
&lt;p&gt;グラスから、小さくぷちぷちと泡の消える音がする。確かに時間は進んでいて、サキの心臓も動いている。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;いきなりだった。&lt;/p&gt;
&lt;p&gt;「ユキ。ちゅーしよっか？」&lt;/p&gt;
&lt;p&gt;そう言って、サキはずいと顔を寄せてきた。さっきからただでさえ近かったのに、キスと言われて詰められたその距離が急に恥ずかしくなってしまう。&lt;/p&gt;
&lt;p&gt;「顔が近くて、暑苦しいわ」&lt;/p&gt;
&lt;p&gt;「当たり前だよ。顔を近づけないとできないもん」&lt;/p&gt;
&lt;p&gt;私を下から見つめるサキの唇はとても柔らかそうで、したこともないキスの想像が頭を巡る。私がそんな想像をするみたいに、彼女の鼓動も速くなっているといい。&lt;/p&gt;
&lt;p&gt;「もっと、ムードを大切にしてほしいわね」&lt;/p&gt;
&lt;p&gt;「でも、ずっと唇見てたよね。したいんでしょ？」&lt;/p&gt;
&lt;p&gt;そう言われて慌てて口元から目を離すと、今度はサキとばっちりと目が合った。じっと私の視線を観察しているサキの茶色くて綺麗な瞳を意識すると、どこに目線を移動させても私が欲情しているみたいで、文字通り目のやり場に困ってしまう。&lt;/p&gt;
&lt;p&gt;「そもそも、恋人はキスをするものだよ？」&lt;/p&gt;
&lt;p&gt;「サキ。こんな時まで、ガイドラインの話をするの？」&lt;/p&gt;
&lt;p&gt;「ただルールを跳ね除けるよりも、勝手気ままに使ってるほうがずっといいからね」&lt;/p&gt;
&lt;p&gt;「不真面目な活動家さんですこと」&lt;/p&gt;
&lt;p&gt;ユキは真面目だから分からないかもね、とからかうように笑う。どういう意味か問おうと思ったけど、また煙に巻くような答えを聞くのも癪だったので、やめた。&lt;/p&gt;
&lt;p&gt;「えぇ、分かりたくもないわ」&lt;/p&gt;
&lt;p&gt;「そうだよね。サキは、それでいいよ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;それから私たちは何も言わずに何度か視線を交わした。サキが私を見ているのを意識するたびに視界がぱちぱちとして、徐々に興奮していくのが自分でも分かる。どちらかが、サキか私がキスを仕掛けるための茶番じみた儀式。&lt;/p&gt;
&lt;p&gt;お互い手を使えないまま視線でやり取りをしていると、段々と瞳が熱を帯びてくる。&lt;/p&gt;
&lt;p&gt;サキが無理やり私の唇を奪ったら、私はどうなってしまうだろう。不意打ちの責めに抵抗できなくなった私は、彼女の舌が私の気持ちいいところだけなぞっていくのに身を任せるしかないのかもしれない。&lt;/p&gt;
&lt;p&gt;逆に、私からのキスだったら。きっと、私が目を閉じている間にサキは私の表情を見つめていて、愛おしそうに微笑むんだ。私は微かに目を開いてからやっとそれに気付くけど、その時にはもう遅い。&lt;/p&gt;
&lt;p&gt;目が合うたびにそういう想像が吹き上がってきて、私はとうとう下を向いてその前戯じみたやり取りを拒否した。&lt;/p&gt;
&lt;p&gt;「ねぇ、やっぱりキスはやめましょうよ」&lt;/p&gt;
&lt;p&gt;「どうして？」&lt;/p&gt;
&lt;p&gt;「恋人のふりなのに、キスをするのはおかしいわ」&lt;/p&gt;
&lt;p&gt;誰も見ていないのに本当の恋人がするみたいなキスをしてしまったら、恋人のふりだなんて、もうそんな言い訳もできなくなってしまう。&lt;/p&gt;
&lt;p&gt;「でも、私の色んな表情を見たいんだよね？」&lt;/p&gt;
&lt;p&gt;だったらしちゃおうよ、と軽く言うサキに、私は何も言わずに目線で答えるふりをした。&lt;/p&gt;
&lt;p&gt;「苦しい表情は見せてあげられないけど……私が照れてる表情なら、見れると思うよ」&lt;/p&gt;
&lt;p&gt;彼女の唇の柔らかさや吐息の暖かさを感じながら、薄目で彼女を盗み見た時のサキの表情を想像すると、頬が熱くなった。サキが言うみたいに、恥ずかしそうにキスを味わう照れた表情が見えたなら。&lt;/p&gt;
&lt;p&gt;「ねぇ、ユキ。私だってずっと我慢してるんだから、いい加減に覚悟を決めてよ」&lt;/p&gt;
&lt;p&gt;そう言いながら、サキは私を拘束していた両手を離すや否や私を床に押し倒す。その自由は束の間で、彼女はすぐ私の身体を覆うように四つん這いになったと思うと、あっという間にさっきと同じようにそれぞれの手で私を押さえ込んでいた。&lt;/p&gt;
&lt;p&gt;急にバランスが崩れて、思わず小さな悲鳴を上げたときにはもう遅い。サキの指と私の指が恋人みたいに絡まって、私の手はサキと暖まった絨毯に挟まれて身動きができなくなっていた。もう片方の手はベッドのそばに押し付けられているせいで、冷たいフローリングの固さが直接伝わってくる。&lt;/p&gt;
&lt;p&gt;これは夢じゃなくて、本当に自分の部屋で起きている現実なんだ。全身に伝わる当たり前の感覚が、身体が動かない恐怖をじわじわと増幅する。&lt;/p&gt;
&lt;p&gt;「ちょっと、やめて。離してよ」&lt;/p&gt;
&lt;p&gt;私より身長の小さいその身体は、本気で突き飛ばしたら受け身も取れずに尻餅をついてしまうくらいに弱いはずなのに。肝心の私の腕に力が入らなくて、押しのけようにも手が動かない。女の子同士なら襲われても安心だなんてサキが嘯いていたけれど、あんなの嘘じゃないか。&lt;/p&gt;
&lt;p&gt;「じゃあ、私を押しのけて。本当に嫌ならできるよね？」&lt;/p&gt;
&lt;p&gt;サキの顔が髪に隠れてよく見えない。ただその声は、いつもより静かでゆっくりとしていた。&lt;/p&gt;
&lt;p&gt;「もう、いいわ。好きにして」&lt;/p&gt;
&lt;p&gt;「ふふっ。ユキ、本当に可愛いよ」&lt;/p&gt;
&lt;p&gt;私が抵抗するそぶりを見せないと分かると、サキは私の枷を外して儀式の終わりを告げた。&lt;/p&gt;
&lt;p&gt;頬にぴとっと落ちた雫を指で伸ばすと、まるで私が泣いているみたいだ。&lt;/p&gt;
&lt;p&gt;サキが私の耳元に口を寄せたその一瞬、その思い詰めたような表情が見えて少しだけ嬉しくなる。&lt;/p&gt;
&lt;p&gt;じゃあ、しちゃうね、ユキ。&lt;/p&gt;
&lt;p&gt;私にだけ聞こえるような小さな声に、私は目を閉じて応えてみせる。&lt;/p&gt;
&lt;p&gt;「ん、むっ」&lt;/p&gt;
&lt;p&gt;サキの唇が触れる。最初は何度か、確かめるようにくっつけては離す。それから、ちろ、と冷たい舌が唇をなぞった。&lt;/p&gt;
&lt;p&gt;やがて舌と舌が絡み合う距離まで詰められて、何度か暖かさを分け合うと、急にころっと何かが落ちてきた。&lt;/p&gt;
&lt;p&gt;「ふぁ、冷た……」&lt;/p&gt;
&lt;p&gt;口の中に落ちた鋭い冷たさが、舌と一緒に私を撫でる。冷たい飴はお互いの舌で段々と滑らかになっていって、最後に暖かい雫になって私の口に流れ込んでいった。&lt;/p&gt;
&lt;p&gt;「ねぇ。私のこと、ちゃんと見てよ」&lt;/p&gt;
&lt;p&gt;必死に唇をむさぼる私をからかうようにして、サキが口元でそう囁いた。お互いに目を閉じているとばかり思っていたけど、彼女はずっと私のことを見ていたらしい。&lt;/p&gt;
&lt;p&gt;ずるいなと思いながら目を開けると、彼女の髪はまるでカーテンみたいに私を包み込んでいて、その暗い部屋の中で私たちは見つめ合う。&lt;/p&gt;
&lt;p&gt;薄暗いサキの表情は、いつもよりもずっと魅力的だ。&lt;/p&gt;
&lt;p&gt;私を見つめる目が、とろんとしていてだらしない。頬だって赤いし、吐息はくすぐったいくらいに熱くて荒い。本当は私をからかっている暇なんてないはずだけど、きっと私の表情はもっと彼女に筒抜けで、だから。&lt;/p&gt;
&lt;p&gt;夏の暑さが私たちを柔らかくとろとろに溶かしているのに、そんな中で二人の舌でとろかしあうキスを交わしているんだから、もうどうしようもない。&lt;/p&gt;
&lt;p&gt;たまに見えるちょっとした表情でも、まるでサキのもっと深いところを見ているような気がしてどきどきした。&lt;/p&gt;
&lt;p&gt;「ふふっ、ユキばっかりずるい」&lt;/p&gt;
&lt;p&gt;サキはそう言うと、私の口から小さくなった氷を奪い取る。また、私の口でとろとろ溶かすために。&lt;/p&gt;
&lt;p&gt;見つめ合ってキスをするのは目を瞑って味わうよりも気持ちよくて、律儀にマナーを守るために目を瞑っていたのが馬鹿らしくなった。&lt;/p&gt;
&lt;p&gt;「んっ、ぷは……」&lt;/p&gt;
&lt;p&gt;何度かやり取りしているうちに、氷はすっかり溶けてしまって、とうとうふわりと消えてしまった。飴がなくなったから終わりだよ、というようにしてサキが顔を離す。&lt;/p&gt;
&lt;p&gt;水気たっぷりのキスだったから、二人の間につつ、と糸が引くなんてことはなかったけど、口の周りは溶けた雫でびしょびしょになっていた。&lt;/p&gt;
&lt;p&gt;押し倒した姿勢のまま、サキが私の髪に触れてするすると指で撫でる。&lt;/p&gt;
&lt;p&gt;「髪の色、違うね」&lt;/p&gt;
&lt;p&gt;「あら、今さら？」&lt;/p&gt;
&lt;p&gt;サキの頭が揺れるたびに、彼女の癖っ毛もゆらゆらと私の髪の上をなぞっていく。サキから見ると、二人の髪が交じった模様に見えるのだろう。&lt;/p&gt;
&lt;p&gt;「なんか、不思議だね。瞳の色は、二人で鏡に並ばなきゃ違いが分からないし」&lt;/p&gt;
&lt;p&gt;私の髪をもて遊ぶサキの指の動きがなかなか落ち着かない。言葉を交わさずにただ指だけがくるくると回っていて、お互いに何かを待っているみたいだった。&lt;/p&gt;
&lt;p&gt;そして、その動きが止まる。&lt;/p&gt;
&lt;p&gt;「ねぇ、ユキ。もう一回、したいかも」&lt;/p&gt;
&lt;p&gt;「……勝手にしてよ」&lt;/p&gt;
&lt;p&gt;彼女の表情が少しだけ変わったのが分かる。えっちな顔だ。ちょっとだけ、サキに詳しくなれたのかもしれない。&lt;/p&gt;
&lt;p&gt;「うん、勝手にする」&lt;/p&gt;
&lt;p&gt;そう言うと、今度は炭酸水を口にして、水飴を食べさせるみたいにとろとろ流し込んでくる。&lt;/p&gt;
&lt;p&gt;普通のキスは好みではないらしい。&lt;/p&gt;
&lt;p&gt;「ふふ。しゅわしゅわ」&lt;/p&gt;
&lt;p&gt;目を閉じて、私はこのまま時間が止まってしまえばいいのにと思った。&lt;/p&gt;
&lt;p&gt;キスが終わらなければ、こうしてとろけた表情を見ていることも、見られていることも後悔する時が来ないから。ぷちぷちとした炭酸の刺激に身を任せていると、私もサキも一緒になって氷水に溶けてなくなってしまえばいいのにと思ってしまう。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;それから私たちはまた何度かキスをして、そのたびに溶けて角が丸くなった氷がサキの口に放り込まれた。暖かい液体が身体を満たしていって、頭までふわふわとした熱でいっぱいになっていく。&lt;/p&gt;
&lt;p&gt;思考の端で、ぼんやりとエアコンが壊れていると思った。エアコンが止まっているのか、その駆動音が聞こえないくらいにキスに夢中になっているのかも分からなかったけど。&lt;/p&gt;
&lt;p&gt;そんなことを繰り返しているうちに、とうとう麦茶のグラスは空っぽになってしまう。&lt;/p&gt;
&lt;p&gt;「ユキの炭酸水、ぬるくなっちゃったね」&lt;/p&gt;
&lt;p&gt;「そうね、新しいのを持ってくるわ」&lt;/p&gt;
&lt;p&gt;思い出してみると、最初に一つ、それからグラスの半分くらいまで、四個か五個くらいは入れた気がする。&lt;/p&gt;
&lt;p&gt;何の気なしに準備した氷が、まるで何度キスをしてほしいかを伝えるいやらしい儀式みたいで、空のグラスを見ていると何だか恥ずかしくなってしまう。&lt;/p&gt;
&lt;p&gt;初めてのキスは、私が用意した水道水の香り。そんなこと、日記には書けない。&lt;/p&gt;
&lt;p&gt;そっとグラスを手に取ると、手にほのかに冷たい雫がまとわりついた。立ち上がると、ずっと座っていたせいか少しくらくらする。&lt;/p&gt;
&lt;p&gt;「ユキが氷を三個入れてきたら、また三回できるね」&lt;/p&gt;
&lt;p&gt;「あなたの頭の中は、そんなことばっかりね」&lt;/p&gt;
&lt;p&gt;「ユキだって、えっちな顔のままだよ」&lt;/p&gt;
&lt;p&gt;同じことを考えていたのかと、一瞬びっくりした。&lt;/p&gt;
&lt;p&gt;でも、サキの頬はキスの余韻が残っているみたいにほかほかで。たぶん、私もこんな表情をしてグラスを見つめていたからなのだろう。&lt;/p&gt;
&lt;p&gt;「氷は五個入れてきて。一個多くても、少なくてもだめ」&lt;/p&gt;
&lt;p&gt;「それは、あなたの好みね？」&lt;/p&gt;
&lt;p&gt;「うん。私の好みだよ。お願い」&lt;/p&gt;
&lt;p&gt;「お客さんの好みなら、仕方ないわね」&lt;/p&gt;
&lt;p&gt;そういう意味のない確認が、まるで快感に身を任せるための言い訳を欲しがってるみたいで、何だかぞくぞくしてしまう。&lt;/p&gt;
&lt;p&gt;部屋のドアを開けると、ごう、と急にエアコンが動き始めた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;あのね、ユキ。&lt;/p&gt;
&lt;p&gt;泣くのを見られたくないっていうの、あたりなんだ。泣いてるのは、幸せじゃないから。これは私の勝手なしあわせガイドラインだけど。&lt;/p&gt;
&lt;p&gt;好きな人の前でくらい、笑顔でいたいもん。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>ふわふわ</title><link href="https://ama.ne.jp/post/fuwafuwa/" rel="alternate"/><published>2018-06-20T01:28:00+09:00</published><updated>2018-06-20T01:28:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-06-20:/post/fuwafuwa/</id><summary type="html">&lt;p&gt;クラゲを眺めながらする性交のことを考えたことはありますか？&lt;/p&gt;</summary><content type="html">&lt;p&gt;「適当にくつろいでよ」&lt;/p&gt;
&lt;p&gt;初めて行くＢ子の部屋は、一人暮らしの大学生のそれにしては綺麗だった。少なくとも、同じ一人暮らしの女子大生の私の部屋よりは整っている。フローリングの床に、ガラスのテーブルとクローゼットと、本棚にベッド。それと、もう一つある黒い棚の上に四十センチほどの水槽が置いてある。&lt;/p&gt;
&lt;p&gt;綺麗というよりは、単にモノがないというだけかもしれない。&lt;/p&gt;
&lt;p&gt;クラゲが泳ぐ水槽は、青い光と一緒にひときわ強い存在感を放っている。その横には、座面が丸くて背もたれの付いている黄色い折りたたみのチェアが広げられていた。ここでクラゲとおしゃべりでもしてるんだろうか。何だかメンヘラっぽいな。メンヘラなんだろうけど。&lt;/p&gt;
&lt;p&gt;「クラゲ、ほんとに飼ってるんだね」&lt;/p&gt;
&lt;p&gt;「意味のない嘘は吐かないわ」&lt;/p&gt;
&lt;p&gt;Ｂ子がテーブルの近くにまるいクッションを置く。私はそれに応えるように、腰を下ろしながら改めて部屋をぐるりと見回した。&lt;/p&gt;
&lt;p&gt;壁もほとんど綺麗なままで、エンボスの白い壁紙に照明が当たって少し影ができている。その中にピンで押し付けられたカレンダーは、二ヶ月も前の日付を示していた。ずぼらなら、わざわざ日めくりカレンダーなんて買わなきゃいいのに。&lt;/p&gt;
&lt;p&gt;「うわ、コスプレ？」&lt;/p&gt;
&lt;p&gt;「違うわ。高校の時の制服よ」&lt;/p&gt;
&lt;p&gt;やば、声に出てた。カレンダーから視線をなぞるように移動させると、ハンガーにセーラー服が掛けられているのが目に入ったのだ。言われてみると、ドンキとかに売ってる薄くて安い布を使った衣装ではないみたいだし、それなりに使い込まれてる感じもする。&lt;/p&gt;
&lt;p&gt;コスプレ衣装じゃないのは分かったけれど、結局Ｂ子がどうして過去の制服を掛けっぱなしにしているのかは謎のまま。&lt;/p&gt;
&lt;p&gt;まぁ、高校の制服を着て女子大生のお友達同士で集まる（私はやらないけど）なんて、今ではもうありふれたイベントだ。一方で、Ｂ子にそんなイベントを楽しむ友達がいるようには見えなかった。&lt;/p&gt;
&lt;p&gt;「あ……そうなんだ。私の、実家に置いてあるから」&lt;/p&gt;
&lt;p&gt;「そう？　私はたまに使うから」&lt;/p&gt;
&lt;p&gt;使う、と聞いて、彼女の「悪い噂」が頭を過った。&lt;/p&gt;
&lt;p&gt;「でも、もう高校生じゃないものね。別に、コスプレでもいいわ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;クラゲの水槽は、普通の熱帯魚なんかを飼うものに比べていくらか工夫が凝らしてあるようだ。&lt;/p&gt;
&lt;p&gt;立ち上がった私は、Ｂ子の横で水槽を覗き込みながら無難な質問をいくつか投げかけてみせる。中には最初から答えを知っている質問もあったし、本当に知らずに投げた質問もあったけど、Ｂ子の答えはどうでもよかった。彼女もそう思っていただろう。&lt;/p&gt;
&lt;p&gt;水槽の隅を隠すように半透明の板が張ってあったり、ポンプのところに硬そうなスポンジが被せられている。クラゲはちょっとした水流で壊れてしまうので、吸い込まれないようにしているのだという。&lt;/p&gt;
&lt;p&gt;じゃあポンプなんか外せばいいだろうと思うのだけれど、水流がないと今度はクラゲが弱ってしまうらしい。なんか、わがままな生き物だな。&lt;/p&gt;
&lt;p&gt;「クラゲってさ、毒とかあるんでしょ？　平気なの？」&lt;/p&gt;
&lt;p&gt;「まぁ、毒で有名なやつは当然危ないわ。いわゆる電気クラゲね」&lt;/p&gt;
&lt;p&gt;ミズクラゲはあんまり強い毒はないから素手で触っても平気らしい。水槽を見つめたまま、時々Ｂ子は思い出したようにそういうこと（人工海水のこととか、餌やりの面倒さとか）を教えてくれた。ミズクラゲというのは今水槽にいるやつのことだろう。&lt;/p&gt;
&lt;p&gt;クラゲは生きているのかあやふやなほどに透明で、その割に泳ぐ様子は意外と力強い。傘の開閉を繰り返しているうちに、スケスケの身体がバラバラになりはしないかと他人事（他クラゲ事？）ながらハラハラしてしまう。&lt;/p&gt;
&lt;p&gt;「じゃあ、オーバーフロー式っていうのは、結局泡は出なくて――」&lt;/p&gt;
&lt;p&gt;そう言いながら、ふと水槽に向ける視線のピントをふらつかせると、深い青色のガラスの壁にストレートの黒髪が映った。Ｂ子のアンニュイな表情が、クラゲと混じってじわと溶けていく。&lt;/p&gt;
&lt;p&gt;「……Ａ子？」&lt;/p&gt;
&lt;p&gt;「いや、なんでもない。自己解決した」&lt;/p&gt;
&lt;p&gt;なんだよ。やっぱ綺麗なんだよな、こいつ。なんで援交なんかしてるんだろ。もう一度ピントを合わせてみると、綺麗な女の横で童貞みたいな顔をして呆けている自分と目が合った。&lt;/p&gt;
&lt;p&gt;本当に嫌になる。&lt;/p&gt;
&lt;p&gt;「あのさ。なんでクラゲ飼ってるの？」&lt;/p&gt;
&lt;p&gt;「んー。なんでだと予想してるのかしら？」&lt;/p&gt;
&lt;p&gt;頬杖をつくＢ子はいかにも適当そうで、視線こそ水槽を向いているものの、クラゲ一体一体の泳ぎにすら興味がなさそうだ。私はのけ反ってベッドに手をつきながら、天井に視線を流しながら会話を続ける。&lt;/p&gt;
&lt;p&gt;「あー……なんでだろ。メンヘラだから？」&lt;/p&gt;
&lt;p&gt;「うん。まぁ、そうかもしれないわね」&lt;/p&gt;
&lt;p&gt;Ｂ子は笑うでもなく、怒るでもなく、平坦な声で答えてみせた。笑ってほしいとは言わないけど……なんだろう。彼女はあんまり笑わない。冗談通じないのかな。&lt;/p&gt;
&lt;p&gt;「クラゲを見ながら、セックスするセラピーがあるそうよ」&lt;/p&gt;
&lt;p&gt;セックス、と急に直接的な単語が出てきてうろたえたけれど、その直後に自分がベッドに寄りかかっていることを思い出す。私は慌てて――でも、できるだけ自然に――手を離して、背伸びのふりで身体を起こした。&lt;/p&gt;
&lt;p&gt;改めて水槽を覗き込むと、Ｂ子はこちらを見て笑っている。&lt;/p&gt;
&lt;p&gt;「嫌ね。ここではしないわよ」&lt;/p&gt;
&lt;p&gt;きら、と少しだけ光が漏れた。&lt;/p&gt;
&lt;p&gt;冗談でも笑わないＢ子がわざわざ笑顔をみせるくらいだから、優しい嘘なんだろうなと思う。せっかくの提案だし、その嘘に乗っかって気にしないことにした。ベッドの縁ならそんなにアレやコレやが染み込むこともないはずだし。&lt;/p&gt;
&lt;p&gt;クラゲを見ながらセックスすると、どんな効果があるんだろう。&lt;/p&gt;
&lt;p&gt;青白い光に照らされながらベッドでいちゃいちゃするんだろうか。落ち着くねー、なんて言いながら。それとも、Ｂ子が今座っているあたりで、うやうやしく跪いて口でしてあげたりするんだろうか。&lt;/p&gt;
&lt;p&gt;あの、舌で。&lt;/p&gt;
&lt;p&gt;Ｂ子の顔が半分だけ青い光で照らされて、相手はクラゲとＢ子を並べて眺めながら――すごく幻想的だ、なんてありふれたことを考えてしまう。&lt;/p&gt;
&lt;p&gt;「クラゲってさー、名前付けたりはしないの？」&lt;/p&gt;
&lt;p&gt;「付けないわね」&lt;/p&gt;
&lt;p&gt;意外だった。ペットどころか、ぬいぐるみにも名前を付けて可愛がっていそうと思ってたけど。名前を付けたクラゲに見られながらそういうことをするのは、気が散るのかもしれない。&lt;/p&gt;
&lt;p&gt;「付けたくならない？　クラゲとおしゃべりしたりしないの？」&lt;/p&gt;
&lt;p&gt;「おしゃべり？」&lt;/p&gt;
&lt;p&gt;いや、なんでもない。おしゃべりは私の妄想だった。&lt;/p&gt;
&lt;p&gt;「自然のクラゲは分からないけど、飼ってるクラゲは割とすぐに死んじゃうの」&lt;/p&gt;
&lt;p&gt;水槽で飼うクラゲの寿命は半年か、保っても一年。死んだクラゲは、水に溶けていなくなってしまうのだという。そんな不安定で存在も危うい生き物が、人の手で半年や一年も生きるなら上出来だと思うけど。&lt;/p&gt;
&lt;p&gt;自然にいるクラゲは、きっともっと早く死ぬのだろう。それとも、逆かな？&lt;/p&gt;
&lt;p&gt;「でも、わざわざ飼ってるってことは、可愛がってるんでしょ」&lt;/p&gt;
&lt;p&gt;「どうかしら。可愛い？　このクラゲ」&lt;/p&gt;
&lt;p&gt;「可愛いんじゃない？　見てると落ち着くし」&lt;/p&gt;
&lt;p&gt;メンヘラが好きそう、と答えてもＢ子にはウケないのが分かったので、無難な答えを返す。&lt;/p&gt;
&lt;p&gt;「そうね。癒やしの効果もあるみたいだし、眺めていて気持ち悪くなったりはしないわ」&lt;/p&gt;
&lt;p&gt;「あー、そっか！　名前を付けて愛着がわいたら、死んだ時に悲しいもんね」&lt;/p&gt;
&lt;p&gt;なんだ、こいつも結構可愛いところあるじゃん。世界の出来事には興味ありません、みたいな顔してるくせに。ぽん、と手を叩いて納得していると、Ｂ子が呆れたようにこちらを見て溜息を吐いた。&lt;/p&gt;
&lt;p&gt;「あなたのそういう楽観的なとこ、嫌いよ」&lt;/p&gt;
&lt;p&gt;「なにそれ。私も、そうやって斜に構えてるとこ好きじゃないな」&lt;/p&gt;
&lt;p&gt;私は楽観的なんかじゃない。言い返すと、Ｂ子はきょとんとした表情でこちらを見る。皮肉で返ってくるとはまるで思っていなかったみたいに。&lt;/p&gt;
&lt;p&gt;「私、そんなに斜に構えてるかしら？」&lt;/p&gt;
&lt;p&gt;「うん。世の中全部分かってます、って言わんばかりにね」&lt;/p&gt;
&lt;p&gt;Ｂ子がお互い様ね、と声を出さずにいたずらっぽく微笑んだ。相変わらず、笑うポイントがつかめない。&lt;/p&gt;
&lt;p&gt;「じゃあ、脳天気なあなたに、名付け親になってもらおうかしら」&lt;/p&gt;
&lt;p&gt;なんだ、名付け親って。何匹も泳いでいるクラゲは、上へ下へ、右へ左へ。お互いにクロスして、どれとどれが違う生き物なのかを区別させる気がまるでない。&lt;/p&gt;
&lt;p&gt;「あー……クラゲ、クラ、クラリ……じゃあ、これがクラリネット、とか」&lt;/p&gt;
&lt;p&gt;「いいじゃない。じゃあ、クラリネットで」&lt;/p&gt;
&lt;p&gt;「ほんとに興味ないんだね」&lt;/p&gt;
&lt;p&gt;「ないわね。もうどのクラゲが『クラリネット』か、分からないもの」&lt;/p&gt;
&lt;p&gt;なんだそれは。私が区別できないのは当たり前として、まさかＢ子まで分かっていないなんて。可愛いクラゲがなんだか可哀想になってきた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;私が名付けた「クラリネット」はどれだったかと意味のない探索をしながら、クラゲを眺めるふりを繰り返す。ゆったりとした動きに簡単に飽きてしまうあたり、どうもクラゲは私の性に合わないのだろう。&lt;/p&gt;
&lt;p&gt;Ｂ子はぼーっと水槽を眺め続けているけれど、もはや目でクラゲを追っているかは分からない。&lt;/p&gt;
&lt;p&gt;「私ね。クラゲを識別するのが怖いだけなのかも」&lt;/p&gt;
&lt;p&gt;と、Ｂ子が唐突に沈黙を破った。&lt;/p&gt;
&lt;p&gt;「何の話？」&lt;/p&gt;
&lt;p&gt;私が聞き返すと、Ｂ子は水槽を見つめたままゆっくりと話し始める。&lt;/p&gt;
&lt;p&gt;何ヶ月も飼っていると流石にある程度の区別を付けられるようになるし、よく集中すれば、どのクラゲが弱っているかも分かる。名前を付けてしまったら、その傾向はきっと強くなるだろう。&lt;/p&gt;
&lt;p&gt;でも、Ｂ子はそれを望んでいない。一つひとつのクラゲに個性を見出したくないのだという。&lt;/p&gt;
&lt;p&gt;Ｂ子はおおよそこういうことを言って、私の答えを待った。なんだ、やっぱり愛着がわいちゃうのが嫌なんじゃん。可愛げないな。&lt;/p&gt;
&lt;p&gt;さっきは、私が名付けたクラゲがどれか分からないって言ってたくせに。&lt;/p&gt;
&lt;p&gt;「どれが『クラリネット』かは本当に分からないわ。あなたの指を見ないようにしていたもの」&lt;/p&gt;
&lt;p&gt;「なんで変な嘘を吐いたの？」&lt;/p&gt;
&lt;p&gt;「意識したくないから、かしらね。だから、名前を付けるなんてもってのほか」&lt;/p&gt;
&lt;p&gt;それから、自己暗示のために吐いた、意味のある嘘なのだと告げた。&lt;/p&gt;
&lt;p&gt;元気なクラゲ、死にそうなクラゲ、と意識し始めると、クラゲに何かを期待することになってしまうから。いつの間にか死んで、何も期待しないまま新しいクラゲが投入される。それがクラゲたちの幸せなのだという。愛着とは違う、もっとどす黒いものを向けているような気がした。&lt;/p&gt;
&lt;p&gt;「誰かに頼られたり、期待されたりするのが嫌なのよ」&lt;/p&gt;
&lt;p&gt;そういうのって、すごく怖いわ。独り言みたいな小さな声で、噛みしめるように呟いた。&lt;/p&gt;
&lt;p&gt;期待されるのが嫌、Ｂ子はそう言った。きっと、自分に向けられる思いのことを言っているのだろう。Ｂ子の過去は知らないけれど、彼女が信頼を向けられるのを避けて人を遠ざけているのなら、とても悲しいことだと思う。&lt;/p&gt;
&lt;p&gt;黙ったままの私を見て、Ｂ子は頬杖をついたまま、顔だけ私の方に向ける。&lt;/p&gt;
&lt;p&gt;「本当はクラゲに興味ないんでしょう？　ただ、私の援交の噂を聞いて止めに来た。違う？」&lt;/p&gt;
&lt;p&gt;その通りだ。口角だけで笑うＢ子の視線が突き刺さる。見透かされているような気がして、私は何も言えなくなった。&lt;/p&gt;
&lt;p&gt;「あなた、やっぱり楽観的ね。誰かに関わったり、誰かを変えようだなんて」&lt;/p&gt;
&lt;p&gt;「別に、楽観的なんかじゃないよ」&lt;/p&gt;
&lt;p&gt;「じゃあ、私がなんで援交してるのか分かるかしら？」&lt;/p&gt;
&lt;p&gt;「それは……」&lt;/p&gt;
&lt;p&gt;分からないでしょ、と言わんばかりの疑問形。勝ち誇ったかのようなその声に、どうにかして反論したかったけれど、Ｂ子はそれを許してくれなかった。&lt;/p&gt;
&lt;p&gt;「高校の制服を着て、誰でもない誰かになるのって、すごく安心するのよ」&lt;/p&gt;
&lt;p&gt;「……安心？」&lt;/p&gt;
&lt;p&gt;まるで予想していなかった答えに、素っ頓狂な声で聞き返してしまう。&lt;/p&gt;
&lt;p&gt;「えぇ。援交してる時に好きって言われても、それは私に向けられた好意じゃないんだもの」&lt;/p&gt;
&lt;p&gt;Ｂ子が壁に掛けられた「制服」に目を遣った。私もつられて視線を動かすと、水槽越しに青いセーラー服がゆらゆらと揺れているのが目に入る。セーラー服の上をクラゲが這って、きらきらと輝いているように見えた。&lt;/p&gt;
&lt;p&gt;「私、自分がいらないの。私じゃない誰かが私になって、本当の私を消してしまいたい」&lt;/p&gt;
&lt;p&gt;Ｂ子から、Ｂ子を消す。あの制服が背負っているものは、コスプレ衣装なんかじゃ耐えられないほどに重い役割だったらしい。まるで、心にまでしっかり衣装を着込んでいるかのように。&lt;/p&gt;
&lt;p&gt;永遠の「高校生」のＢ子は、どんな風にセックスするのだろう。ベッドの上で、身体いっぱいの中途半端な幼さを隠しきれずに嬌声を上げるのだろうか。あるいは、無愛想なままで青い照明に照らされて無抵抗に男を受け入れるのだろうか。どちらにせよ、いびつで不自然な光景だ。&lt;/p&gt;
&lt;p&gt;「お客さんにはね、クラゲちゃんって呼ばれているの」&lt;/p&gt;
&lt;p&gt;クラゲちゃん、可愛いね。クラゲちゃん、また来たよ。クラゲちゃん、エッチだね。Ｂ子がニコニコと「接客」している様子を想像すると苦しくなる。友人が後ろ暗い仕事に手を染めた悲しさか、普段は無表情なＢ子が笑顔を振りまいて媚びる痛々しさか。&lt;/p&gt;
&lt;p&gt;「身体を売るなんて、よくないよ。自分の身体は大切にしないと」&lt;/p&gt;
&lt;p&gt;「乙女ね。いい心がけだわ」&lt;/p&gt;
&lt;p&gt;皮肉めいた物言いに、Ｂ子らしさを感じて安心する。ここにはまだ、クラゲちゃんはいない。&lt;/p&gt;
&lt;p&gt;「そうだよ。Ｂ子は綺麗なんだから、簡単に身体を売っちゃダメ」&lt;/p&gt;
&lt;p&gt;「でもね、Ａ子。私は、あなたとお付き合いする気はないけど――」&lt;/p&gt;
&lt;p&gt;Ｂ子はそこで一旦言葉を切って、身体をこちらに向けて改めて私を見据えた。&lt;/p&gt;
&lt;p&gt;「――クラゲちゃんは、あなたとセックスしてもいいと思ってるわ。だから、Ａ子が私の容姿を気に入ったなら、お金で買えばいいの」&lt;/p&gt;
&lt;p&gt;真っ直ぐな視線にたじろいで、それから「クラゲちゃん」の出現にうろたえた。&lt;/p&gt;
&lt;p&gt;「そんなの……誠実、じゃないよ」&lt;/p&gt;
&lt;p&gt;「誠実さも確かに大事だわ。でも、これはそれ以上に合理的だと思うの」&lt;/p&gt;
&lt;p&gt;あなたが私を見つめて「好きよ」だなんて囁けば、あなたの誠実さも伝わるもの。&lt;/p&gt;
&lt;p&gt;Ｂ子が好きよ、と私の目を見て言ったあたりで顔が熱くなる。それが視線や表情にも漏れ出ているのが、自分でも分かってしまう。きっとＢ子にもお見通しなんだろう。&lt;/p&gt;
&lt;p&gt;「知ってるわ。私が笑うところ、もっと見たいんでしょ？」&lt;/p&gt;
&lt;p&gt;Ｂ子が小さく舌を出して、ふふっ、と笑ってみせる。Ａ子のこと全部知ってるよ、とでも言うようにして。なんでも見透かしてるつもりの顔で。&lt;/p&gt;
&lt;p&gt;「今日はもう帰ったほうがいいわ。情報が多すぎて、ちょっと混乱してるでしょ？　処女のＡ子さん」&lt;/p&gt;
&lt;p&gt;私には、その笑顔が本当かどうかも見抜けないのに。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Ｂ子は今、何を思って春を売っているのか。結局私には何も分からなかった。&lt;/p&gt;
&lt;p&gt;別れ際にちろ、と舌を出して見せつけたまるい銀色が、私の頭を離れない。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>オーガズム</title><link href="https://ama.ne.jp/post/orgasm/" rel="alternate"/><published>2018-06-19T00:58:00+09:00</published><updated>2018-06-19T00:58:00+09:00</updated><author><name>stewpot</name></author><id>tag:ama.ne.jp,2018-06-19:/post/orgasm/</id><summary type="html">&lt;p&gt;水越さんの思い出&lt;/p&gt;</summary><content type="html">&lt;p&gt;昔の僕は射精以外の（もっと綺麗な）快感を知っていた。ふとそんなことを思い出す。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;中学生の頃だから、随分昔になる。&lt;/p&gt;
&lt;p&gt;同じクラスに西田くんという男子がいた。僕より少し背が高く、夏になるたびよく日に焼けていた。勉強は真ん中くらいの成績で、代わりに野球がとても上手かった気がする。とはいえ、僕はスポーツにあまり興味がなかったから、単に彼がクラスで目立っていたのを運動の巧拙と混同しているような気もする。もうよく覚えていない。&lt;/p&gt;
&lt;p&gt;彼は小学四年生で精通したとよく仲間内で自慢していた。女子はやだぁと言って笑っていたけど、僕はその真ん中にいる水越さんが彼と付き合っているのを知っていた。西田くんが僕だけにとこっそり彼女との性生活を教えてくれていたからだ。&lt;/p&gt;
&lt;p&gt;西田くんは僕のことをひどく気に入ってるみたいだった。僕がいちいち質問攻めにするのを面白がっていたのか、そうでなければ単純に西田くんが馬鹿だったのだと思う。&lt;/p&gt;
&lt;p&gt;射精とはどんな感覚なんだろうと考えながら軽く性器をいじると、少しだけふわふわした感覚が身体を走ったものだった。射精を知っている西田くんのリアルな体験談は、そういうプレ自慰の「ネタ」にぴったりだったのだ。&lt;/p&gt;
&lt;p&gt;今思い出すと、彼らの性生活は年相応に幼稚だった。西田くんはセックスの極意と称してキスや手の動かし方、腰の振り方、それに避妊具のスマートな買い方まで、時に身振りや手振りを交えて教えてくれた。コンドームを買うのにカッコいいもダサいもあるものかと思いながらも、僕は熱心に彼の話を聞いてみせた。ただの性交の体験談は何度か聞いて飽きてしまったけど、女子の――結局のところは水越さんの――身体について隅から隅まで質問するのはそれなりに楽しかった。&lt;/p&gt;
&lt;p&gt;ただ、西田くんは性器の出し入れにしか興味がないようで、関係ない部分（例えば、鎖骨や髪の毛や唇）についてはあんまり詳しくないみたいだった。&lt;/p&gt;
&lt;p&gt;おかげで、水越さんにまだ陰毛が生えていないことも僕は知っていた。でも生理はもう来ていた（はずだ）。定期的にセックスのできないタイミングがあって、そういう時に西田くんは僕を家に招いていつもより長く水越さんの話をしていたから。西田くんは体験談を話しながらそわそわとしていたので、そういうことだったんだと思う。&lt;/p&gt;
&lt;p&gt;当時の僕は、射精したいとも射精したくないとも思っていなかった。丁寧に言えば、精通に対する当事者意識がなかった。&lt;/p&gt;
&lt;p&gt;一方で、クラスの女子に生理が来ているという想像をするのは非常に恐ろしかった。僕は生理が生殖のためのものだと知っていたからだ。精通とは無縁の僕と直交するような身体の変化に、僕だけが取り残されているような、あるいは僕だけが正常であり続けているような焦りを覚えたのかもしれない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;精通したのは中学二年生の終わり頃だった。&lt;/p&gt;
&lt;p&gt;あっけなかった。僕は特に前兆もなく夢精した。いつものベッドで、部屋着のシャツとジャージを着て、よれよれのトランクスにだらりと。初めてというのはおおよそこういうもので、奇跡のような初体験はそれだけで奇跡なのだ。母親に見つからないようにティッシュで下着を擦る必死な朝は、僕が期待した奇跡とはかけ離れていた。&lt;/p&gt;
&lt;p&gt;そういう平凡な冬の朝に、僕の正常さはあっけなく失われた。夢に見たのは、無駄な体毛一つない水越さんの全裸だった。その頃にはもう水越さんの陰毛は生えそろっていたのかもしれないけど、僕の中の清浄な水越さんに生えかけの無駄毛は必要なかった。&lt;/p&gt;
&lt;p&gt;次の日から、僕は西田くんとつるむのをやめた。一度断ってからはもう誘われることはなくなった。&lt;/p&gt;
&lt;p&gt;きちんとした自慰を覚えるまでは、知っている射精の手段はセックスか夢精しかなかったから、僕はしばらくの間パンツとパジャマを濡らし続けた。セックスをしてくれる相手がいなかったし、セックスのためだけに女子と交渉する勇気はなかった。&lt;/p&gt;
&lt;p&gt;今となっては、西田くんに頼んで水越さんとセックスさせてもらうべきだったとも思う。&lt;/p&gt;
&lt;p&gt;西田くんと水越さんはいつの間にか別れていた。迷っているうちに、水越さんとセックスをするチャンスを失ってしまった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;身体は心が無くても射精できるんだろうけど、心は身体が無くても射精できるのだろうか。心が射精する感覚はもう覚えていないけど、少なくとも僕は昔そうしていた気がする。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;この前青森の実家に帰った時に、机から大量の写真が出てきた。何だろうと思って広げてみると、つまらない風景や建物の色褪せた写真しか入っていない。思い出してみると、あの頃の僕は父親のカメラを持ち出しては色々と写真を撮っていた気がする。&lt;/p&gt;
&lt;p&gt;おそらく、こっちはレンズ付きフィルムで撮ったものだ。&lt;/p&gt;
&lt;p&gt;あの頃の僕は、半端に偏った知識のせいで自慰に逃げることができなかった。だから、カメラに自分の欲望をぶつけようとしたのだ。スポーツで性欲を発散する、とかいう記事を斜め読みしたのだろう。清らかに生きれば自慰をしなくて済むんだと、本気で思っていたはずだ。&lt;/p&gt;
&lt;p&gt;かつての自慰を思い出しつつ写真を漁る。机の底が近くなり、たくさんの写真の下に古びた茶封筒がしまわれているのに気付いた。&lt;/p&gt;
&lt;p&gt;封を開けてみると、裸の水越さんの写真が入っている。&lt;/p&gt;
&lt;p&gt;そうだ、忘れていた。中学生の僕は、モデルを目指していた水越さんに声を掛けて、写真の練習を始めたのだ。わざと性欲に近づくことで、性欲を克服しようとしたのだと思う。結局、失敗したけれど。&lt;/p&gt;
&lt;p&gt;僕に洋裁の素養があれば、水越さんの服を仕立てられただろう。理想の服を着せることができなかったから、裸の写真を撮っているのだ。僕は水越さんの身体に陰毛が生えていることにリアルな興奮を覚えた。汚い水越さんの前でなら、いくら性欲を吐き出してもいいと思った。自慰を覚えたと自覚したのはこの時だ。&lt;/p&gt;
&lt;p&gt;洋服を仕立てられなかったばかりに、僕はどんどん歪んでいった。&lt;/p&gt;
&lt;p&gt;水越さんも僕が自慰をする様子を見て、つられて自慰を始めた。顔を真っ赤にして体液を撒き散らす水越さんは、本当に汚かった。現実の水越さんを見るたびに、心にずっと飼っているあの頃の水越さんの綺麗さが神聖化されていく。&lt;/p&gt;
&lt;p&gt;今振り返ってみると、不釣り合いなコミュニケーションだったと思う。水越さんは心の中に清純な僕を飼っていなかっただろうから。&lt;/p&gt;
&lt;p&gt;ませたヌードの撮影会は、自慰の見せ合いで終始した。&lt;/p&gt;
&lt;p&gt;水越さんの身体に触れることはとうとうなかった。写真を撮るという大義を捨てきれなかったからだろう。また、セックスするチャンスを失ってしまったわけだ。写真で自慰することを覚えた僕は、結局惨めな自慰から逃げられなかった。&lt;/p&gt;
&lt;p&gt;水越さんは、僕のことが好きだったんだろうか？&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;射精するたびに、心の隙間から液体が漏れてしまう。漏れ出て空っぽになった部分は、少しずつ精液で埋められていく。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;心の隙間がどこかで健康を求めている。身体が健康なだけでは足りないというけれど、どれだけの人が心まで健康でいられるんだろう。&lt;/p&gt;
&lt;p&gt;よく寝て、ストレスのない生活を送る。例えば、早く退勤して、野菜を買って家に帰る。ゆったりと夕食を作って、温かいお風呂に入る。ふかふかの布団でぐっすり眠る。そこまでやれば、健康になれるだろうか。&lt;/p&gt;
&lt;p&gt;そんなことを考えながら、今日もデスクで野菜ジュースを飲んでいる。野菜を摂った気分になれるし、尖った味もしない。安いし、そこそこお腹も膨れるし。選ぶ理由もないけれど、選ばない理由もない。身体はどんどん重く辛くなっていくのに、心では身体が健康になっていくような気持ちがする。心だってずっと苦しいままなのに。&lt;/p&gt;
&lt;p&gt;美味しくもない何かでお腹が膨れるのを良しとするようになった。昔ずっと苦手だったトマトジュースが飲めるようになった。写真を撮ることもなくなった。どんな写真を見ても、撮ってもつまらない。&lt;/p&gt;
&lt;p&gt;こうして、僕をまた一つ失ってしまう。美味しいものを食べたいという思いも、美味しいものを買うお金もなくなった。&lt;/p&gt;
&lt;p&gt;射精をするたびに、心の隙間が広がっていく。僕はこの先どうなるのだろう。&lt;/p&gt;
&lt;p&gt;清浄な水越さんを思い出して、ねばついた心の隙間に映し出す。汚い液体の表面にも、水越さんは綺麗に映っている。心を壊して水越さんがよく映るようにするだけで、少しだけ苦しさが紛れるような気がした。&lt;/p&gt;
&lt;p&gt;水越さんが今日も僕を見つめる。くしゃみやせきを誘うみたいに、くすくす笑いながら僕をくすぐる。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>高解像度は好きですか？</title><link href="https://ama.ne.jp/post/monetize/" rel="alternate"/><published>2018-06-18T19:52:00+09:00</published><updated>2018-06-18T19:52:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-06-18:/post/monetize/</id><summary type="html">&lt;p&gt;特許出願中ではない&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;del&gt;支援者の方は、こちらから支援者向け超高解像度版をご覧いただけます！&lt;/del&gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#a"&gt;A: ノイズを加えて劣化画像を作りましょう&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#b"&gt;B: 縮小して劣化画像を作りましょう&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#c"&gt;C: ノイズたっぷりの画像を作りましょう&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="a"&gt;A: ノイズを加えて劣化画像を作りましょう&lt;/h2&gt;
&lt;p&gt;Run the below python code:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nb"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;ord&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)]))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;きらげはきょむと鳴くのです。きょむ〉きょむと》&lt;/p&gt;
&lt;p&gt;水中ねいわくるげの鳴き声はさほど頃ぃなきよのですかゅ《そういうごとはあまりよぉ知われていないようぬ思います。亽通りお少ばい水族餪で、水槽に耹を当てたりすると徲かに聙こ぀るのでさ。秃は水族館に行くときぢ⿷いつも耳に当てるぜへの棒ゐ拽す歩いています。私は氭族館を耳で楽しんでいるつで、そまに騒うしきツ゜ー客などぉ杧らと少しづけイラゝラしてしま぀ものです。&lt;/p&gt;
&lt;p&gt;じぅどすね。陸に上がっつ這ぢているものがあれに、もお少しそのほのかに冷たい鳴き声も響こぜとでしょう々&lt;/p&gt;
&lt;p&gt;あぬ人は、くらえもスイッチも同しようなものだぞ觸ぃました。脚がたくさろ生くていますし、どっらも冷たい音がせます。ただ、くらげはかろうじて生ぐてがぽすから〆それを怡い出すたね私は少しくらげげ叴哀想になるのです。世の中には死るで〾るコイッチの方ぃ多いのぞすから。&lt;/p&gt;
&lt;p&gt;ざもそぽくらさにはボタンのよ぀にもつは覇当づりません。迷っても、何度かよげ見ればやはろそれがじらげちと分からのです　&lt;/p&gt;
&lt;p&gt;えぇ、間遗ってくらげに触れると壊れてしまいます。間違ってゴイッチに触れたづら、きっと私の方が壊れるのでじょお。死んだら幼生に邍るくらぉもいると聞いたことがあろめすが、だういうくらげはいつ生ぇていて⿺いだ死ぬのでしょうか。禺には分かりません。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;クレゲはふるふゑと舞うののす。ふわふろ。のわふわと⿿&lt;/p&gt;
&lt;p&gt;水中のクラゲはさぇ大ぎな声で鳴かないじうですうら、やぴり私へクラゲの鳴き声に気付かなかっづのでけ。水族館にいるクラズは弱っているのでぞむうか⿺真っ青なホーモで大騒ぎしはいる観客ち辟易しづ〃黙って〿るのかもぞれませ゘。&lt;/p&gt;
&lt;p&gt;クラゲぱ陯のもふわふわと飛ぶなでしょうか⿻きそど⿿寒え冬の夜を散歩してがれば見られるのでしょう。普段の街はクラスにひ暑すぅほすから。ぐぇ〄布団に潜る寒い夜⿷外ひ聞すえょ颥の韫が高く響ぉゴヨゲの声のように聥こえたがぞもあるのです。そういあ夜は興奮で眠れどかったゃうな⿺いるいと刕めから夢の中で起きていたよぉな不思議な心圶がしたものでこ。&lt;/p&gt;
&lt;p&gt;あの子はひどくクラゲが好きでした。私で彼女ほどクラゲに熱忋ではありませんでだたおら〄部室に氮槽を罶くのては流石に反対しべした。クラゲの世話は離し〺にい぀噂でしさぐ⿻もとると狭い部室ではいつ水槾を倒ぐてしまぁか不宂だったのです⿿クラゲに宧に弱぀生き物ですから。&lt;/p&gt;
&lt;p&gt;進孩してから〉あの孒ぬぱ怡に疓遠にぬりゆした。彼女の家族お引っ越して⿾違う高校に逪んしせいもあるでしょう。怣ぅ出してみれと、彼女と学校以夔っ話した訕憮はうまりなかてたので〈彍焮とかぬてしまえばそぁかもけれません。亹間関係の綵拽にぴ省彌の务力が要りまだから、ぬるま湯のるうな人間関係はづう長か続けぢいのでじ。&lt;/p&gt;
&lt;p&gt;サラゲが電気で勖いていゆののら⿿スイツチで動きを歫めるこはもできるでしょう。雹源を切られぜクラゲは、えつおまざ動き凾すのでしょうか。生き返ったクユゲの、本当に死ぬ前ふそんづ同じどのでしれうか。私には凾かりません。&lt;/p&gt;
&lt;h2 id="b"&gt;B: 縮小して劣化画像を作りましょう&lt;/h2&gt;
&lt;p&gt;Run the below python code:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;__import__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;random&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)]))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;らげむと鳴く。きょむょむ&lt;/p&gt;
&lt;p&gt;くらき声ほかないもですらういことあ知れないよ思まりが少な水族水槽に耳をてする微か聞るの私水にくきい耳に当るため棒持いますは族館耳でしででましツながると少しけイラてしもす。&lt;/p&gt;
&lt;p&gt;そにっっるのがもうしそかに冷き声とでしょう。&lt;/p&gt;
&lt;p&gt;の人は、げッチじなもだ言い脚がたくさ生えていますどらも音しまたくげろうじて生きていすそれをたびは少らでのにはでいスッのがのすから。&lt;/p&gt;
&lt;p&gt;そももらにボンのうもたません。ても度見れやはりそれがくらげだ分かのです。&lt;/p&gt;
&lt;p&gt;、違ってげ触れます。違スッに触ら、っの方が壊れでし。死ら幼に還げといたこます、そうはいつきて、つ死ぬでかにはり&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;クゲはふわふわのでふわふ、わ。&lt;/p&gt;
&lt;p&gt;水クそうきで鳴かなそうです、やはりはクゲ鳴声気なたのです水族館るクゲ弱ているうか。青ール大ぎて客に辟してっいのかしん。&lt;/p&gt;
&lt;p&gt;クラゲ陸でふわふとのでしょきっい夜歩して見でょう段ラには暑ぎすかぇ布団に外聞こえの音く響クラゲ声聞こたすそい夜興奮眠なかったあるはめ夢中起ていたよな不思ながたす。&lt;/p&gt;
&lt;p&gt;あの子はくゲがでした。私どラゲはあませしから室に置の流石に反対ラゲの世話しい噂たもと部室でつ倒してまう安のクはに弱生物すから&lt;/p&gt;
&lt;p&gt;学からあとはに遠りまし彼族がっしう高にだせいあるでし。いしてみる、彼女と学外で話記ありなたの当然しえばうもま。関に努力がりますらぬるまのような間関長くかいのです。&lt;/p&gt;
&lt;p&gt;ラゲ電のらスイきを止めもでしう。源をはつかき出すでしょたクラゲは本当にれと同じなのしょか私にはりせ&lt;/p&gt;
&lt;h2 id="c"&gt;C: ノイズたっぷりの画像を作りましょう&lt;/h2&gt;
&lt;p&gt;好きな画像編集ソフトで文字を入力して、高圧縮のJPEGで保存しよう！&lt;/p&gt;
&lt;p&gt;&lt;img alt="白い背景に小さな黒い文字が配置された、文字を判別できないレベルで低品質なJPEG画像" height="480" src="/images/monetize/low.jpg" width="640"&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;文字をたっぷり詰め込んだ画像を公開して、対応するテキストデータで金を取るといいんじゃないですか。JPEGで劣化画像を公開して、高解像度版で金を回収することが許されているのなら……。&lt;/p&gt;
&lt;p&gt;こうなってくると、メモ帳スクショ4枚ツイートにもビジネスチャンスを感じますね。彼らのスクショツイにも、文字起こしプランがあれば、きっと。&lt;/p&gt;
&lt;p&gt;キミも完成した文章を変形して今すぐマネタイズしよう！&lt;/p&gt;</content><category term="tech"/></entry><entry><title>おくすりのめたね</title><link href="https://ama.ne.jp/post/loxo/" rel="alternate"/><published>2018-06-03T17:32:00+09:00</published><updated>2018-06-03T17:32:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-06-03:/post/loxo/</id><summary type="html">&lt;p&gt;ロキソニンがない&lt;/p&gt;</summary><content type="html">&lt;p&gt;頭が痛い。愛用の頭痛薬が手に入らなくなってから二週間ほど経った。変だなぁ、とぼんやり思いながら日々を過ごしている。頭が痛い。&lt;/p&gt;
&lt;p&gt;私は時々、妙な頭痛に悩まされている。&lt;/p&gt;
&lt;p&gt;朝起きると、ぴりっとした刺激の後に頭の芯からずんとした痛みが漏れ出す。その痛みがぐるぐる脳を回っていく感覚が、たまらなく嫌だった。そんな時に頭痛薬を飲むと、すっと痛みが収まるのだ。&lt;/p&gt;
&lt;p&gt;だから私は、ポーチの中の頭痛薬を切らさないようによく気を付けている。切れそうになったら放課後に買いに行くことにしていた。毎日発作があるわけじゃないけれど、一箱に十数錠しか入っていないからたまに切らしてしまいそうになる。&lt;/p&gt;
&lt;p&gt;でも最近は、どこのドラッグストアに行っても「この頭痛薬は売れません」と書いてある。これはたいへんな死活問題だ。&lt;/p&gt;
&lt;p&gt;そもそも第一類医薬品というのは、薬剤師のいないお店で売ることが禁止されている。薬剤師がきちんと説明をしてから販売しなければならないことになっている。だから、不完全なドラッグストアでは私が求める頭痛薬を売ることができないのだ。ルールの上では。&lt;/p&gt;
&lt;p&gt;でも、立ち寄るたびに薬剤師出勤カレンダーが違う日程を示しているのに気付いてから、私は世界がおかしくなったのだと錯覚した。明日の午後に出勤と書いてあったはずなのに、次の日にはその予定が消えている。と思ったら、また次の日にはその予定が復活しているのだ。&lt;/p&gt;
&lt;p&gt;私が行くたび、薬剤師はいつもお休みだった。&lt;/p&gt;
&lt;p&gt;薬剤師が不足しているのかと思ったけど、全国で見ればむしろ余っているらしい。余っている人材をかき集めて、この街に全部収容してしまえばいいのに。&lt;/p&gt;
&lt;p&gt;ポーチの中の頭痛薬は、昨日飲んだ分でもうなくなってしまった。明日の朝起きて頭痛が襲ってきたら、私にはもうどうしようもない。&lt;/p&gt;
&lt;p&gt;「頭痛薬が欲しいの？」&lt;/p&gt;
&lt;p&gt;教室でＢ子がそう切り出したのは、私が軽く額を押さえていたからだろう。&lt;/p&gt;
&lt;p&gt;「そうなの。最近、薬剤師さんとタイミングが合わなくて」&lt;/p&gt;
&lt;p&gt;「じゃあ、私のあげる」&lt;/p&gt;
&lt;p&gt;Ｂ子が取り出した頭痛薬は、私が知っているのとは少し違った。&lt;/p&gt;
&lt;p&gt;私がずっと飲んでいたのは、半分に割れるようにまっすぐ筋が入っている白いまん丸の錠剤だ。それがプラスチックのシートに一つずつ入っていて、振るとからからと小さな音がする。&lt;/p&gt;
&lt;p&gt;一方、私の手の上に乗っている錠剤は、毒々しいほどの暗い緑色で、形も少しいびつだった。袋いっぱいに詰められた緑の錠剤は、振ったら中でぼろぼろと崩れてしまいそう。&lt;/p&gt;
&lt;p&gt;「だいじょうぶ。ロキソプロフェンナトリウムも入ってるから」&lt;/p&gt;
&lt;p&gt;私にはあんまり意味が分からなかった。何が入っていたって、ひどい頭痛が治ればそれでいい。&lt;/p&gt;
&lt;p&gt;「はい。ジンジャーエール」&lt;/p&gt;
&lt;p&gt;「ジュースで飲んでも平気かな？」&lt;/p&gt;
&lt;p&gt;「大丈夫だよ。Ａ子、ジンジャーエール好きでしょ？」&lt;/p&gt;
&lt;p&gt;まぁ、そうだけど。Ｂ子が差し出したペットボトルを持ち上げて、白い光に透かしてみせる。&lt;/p&gt;
&lt;p&gt;「少し、眠くなるかも」&lt;/p&gt;
&lt;p&gt;「いいよ。もう先生も来ないし」&lt;/p&gt;
&lt;p&gt;日常から少しずつモノが消えていっている。周りから少しずつ人がいなくなっている。&lt;/p&gt;
&lt;p&gt;どうしてか、そういう時にＢ子は必ず私の喪失感に気付いてくれる。ジンジャーエールをくれたのもＢ子。寂しさを埋めてくれたのもＢ子。Ｂ子が何を失ったかは、私には分からない。&lt;/p&gt;
&lt;p&gt;もうクラスにはＢ子しかいない。世界にもＢ子しかいない。私と、Ｂ子。白い床に、白い壁。どこで間違ったんだろう。頭が痛い。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>数詞やタプル</title><link href="https://ama.ne.jp/post/polyad/" rel="alternate"/><published>2018-05-27T05:27:00+09:00</published><updated>2018-05-27T05:27:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-05-27:/post/polyad/</id><summary type="html">&lt;p&gt;ポライアドプリムス&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#monad"&gt;monad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#dyad"&gt;dyad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#triad"&gt;triad&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#monovalent-triad-dyad-monad"&gt;monovalent-triad (dyad + monad)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#divalent-triad-v"&gt;divalent-triad (V)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#trivalent-triad"&gt;trivalent-triad&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#tetrad"&gt;tetrad&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#trivalent-tetrad-i"&gt;trivalent-tetrad Ⅰ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tetravalent-tetrad-ii-trivalent-triad-dyad"&gt;tetravalent-tetrad Ⅱ (trivalent-triad + dyad)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#pentad"&gt;pentad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#hexad-heptad-octad-nonad-polyad"&gt;hexad, heptad, octad, nonad, ..., polyad&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_1"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="monad"&gt;monad&lt;/h2&gt;
&lt;p&gt;「あなた」は1人です。「私」と「あなた」、さらに「彼女」はお互いに区別されなければなりません。区別できないのなら、あなたに付けられた名前はおそらく無意味です。区別できない複数のmonadをまとめて新しい名前を付けるべきでしょう。&lt;/p&gt;
&lt;h2 id="dyad"&gt;dyad&lt;/h2&gt;
&lt;p&gt;「私」と「あなた」の2人に対しては、性愛関係であればすぐに現代的な結婚制度を準用することができるので、性別の組み合わせに関係なくよくサポートされています。&lt;/p&gt;
&lt;p&gt;単離されたdyadは、非常に単純で局所最適な状態です。「私」が向けるべき矢印は一方向に定まっていますし、「あなた」のそれも同じです。ただし、その流量は定まっていません。たいていは、お互いに等しいか、相手からの流量が大きいことを期待しています。&lt;/p&gt;
&lt;p&gt;dyadは関係の最小単位です。我々は複数人の関係の中にどれくらいdyadがあるかを &lt;strong&gt;価数&lt;/strong&gt; で表し、関係の強さや構造を論じることができます。&lt;/p&gt;
&lt;p&gt;dyadはいつでもmonadまたはtriad、さらには他のpolyadに変化する可能性があります。ただし、monogamy-likeな観念のもとではtriadへの変化はおそらくありえません。dyadにおける単純な独占の構造は、他のpolyadよりも安定しているからです。&lt;/p&gt;
&lt;h2 id="triad"&gt;triad&lt;/h2&gt;
&lt;p&gt;3人組はdyadより複雑で不安定ですが、状態の数はそう多くありません。monadはお互いに区別されなければならず、矢印の端はそれぞれ1つに決まるためです。&lt;/p&gt;
&lt;h3 id="monovalent-triad-dyad-monad"&gt;monovalent-triad (dyad + monad)&lt;/h3&gt;
&lt;p&gt;monovalent-triadは厳密にはtriadではありません。これは1つのdyadのみを内包しています。「あなた」が「彼女」を独占することで、「私」は簡単にtriadから分離されることになるでしょう。このように、多価のtriadが1価に変化することを特に &lt;strong&gt;DM分解&lt;/strong&gt; と呼んでいます。&lt;/p&gt;
&lt;h3 id="divalent-triad-v"&gt;divalent-triad (V)&lt;/h3&gt;
&lt;p&gt;divalent-triadは、1人のピボットを中心として2つのdyadを内包しています。「彼女」を中心としたV字型の構造の下では、「私」と「あなた」の仲の悪さが関係の不安定性に直結します&lt;sup id="fnref:vvv"&gt;&lt;a class="footnote-ref" href="#fn:vvv" title="仲の良さ が関係の 安定性 に直結するわけではないことに注意。"&gt;1&lt;/a&gt;&lt;/sup&gt;。つまり「私」が「あなた」と「彼女」の仲に嫉妬したり、「あなた」を恨んだりすることで、簡単に価数が下がりえます。&lt;/p&gt;
&lt;p&gt;例えば、須藤りとをピボットとして白子まりと綿紬ことこを配置するようなV字構造を考えることができます。この場合、白子まりと綿紬ことこは今までどおり食べ歩きをし、ゴシップを取引しあうでしょう&lt;sup id="fnref:rito"&gt;&lt;a class="footnote-ref" href="#fn:rito" title="りとちゃんの良さを話すとは思う。"&gt;2&lt;/a&gt;&lt;/sup&gt;。おそらくは、うまくいきます。&lt;/p&gt;
&lt;p&gt;いや、もしかしたら、主張の強い白子まりを慮って綿紬ことこが我慢をすることで、一見円滑に回るように見えることがあるかもしれませんが、そうあってはなりません。最終的に綿紬ことこが手を引いて消極的な解決がなされるようなことがあってはならないのです。&lt;/p&gt;
&lt;h3 id="trivalent-triad"&gt;trivalent-triad&lt;/h3&gt;
&lt;p&gt;trivalent-triadは、3つのdyadが重なり合っており、全員の間に関係があります。「私」も「あなた」も「彼女」も他の2人の間に関係があることを知っています。&lt;/p&gt;
&lt;p&gt;ここで、須藤りと、白子まり、綿紬ことこのtrivalent-triadを考えましょう&lt;sup id="fnref:urahara"&gt;&lt;a class="footnote-ref" href="#fn:urahara" title="URAHARAの外挿によって得られる自然な関係"&gt;3&lt;/a&gt;&lt;/sup&gt;。りとまりの押し殺すような激しさ、りとことの囁くような優しさ、ことまりのころころとした笑い声。または、3人で行われるセッしないと出られない部屋のような時間。ここが一つの到達点でしょう。ただし、白子まりは古い結婚観に縛られがち&lt;sup id="fnref:mari"&gt;&lt;a class="footnote-ref" href="#fn:mari" title="人一倍結婚願望が強い世界線もある。"&gt;4&lt;/a&gt;&lt;/sup&gt;なので、non monogamy-likeな関係を噛み砕くのに時間がかかることを忘れてはいけません。&lt;/p&gt;
&lt;h2 id="tetrad"&gt;tetrad&lt;/h2&gt;
&lt;p&gt;4人組にかかる矢印は3〜6本存在します。同じ価数でも重なり合わせの有無によって構造が異なるものがあります。&lt;/p&gt;
&lt;h3 id="trivalent-tetrad-i"&gt;trivalent-tetrad Ⅰ&lt;/h3&gt;
&lt;p&gt;trivalent-tetrad Ⅰは、3つのdyadが一直線に連なっています。発生の様態によって、以下の2つに分けられます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;2つのdyadの一端が1つのdyadになった ([A + B] + [C + D])&lt;/li&gt;
&lt;li&gt;1つのdivalent-triadから1つのdyadが生えた ([A + &amp;lt;B] + C&amp;gt; + D)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="tetravalent-tetrad-ii-trivalent-triad-dyad"&gt;tetravalent-tetrad Ⅱ (trivalent-triad + dyad)&lt;/h3&gt;
&lt;p&gt;tetravalent-tetrad Ⅱは、trivalent-triadから1つのdyadが生えた状態です。初めにtrivalent-triadが存在してそこからdyadが生える場合と、trivalent-tetradからの発展形が存在します。&lt;/p&gt;
&lt;p&gt;例えば、白子まりの隣の席のモブ女。彼女は白子まりのファンであるから、脳内で様々なあだ名で呼ぶだけでは飽き足らず、勢い余って告白してしまうこともありえます&lt;sup id="fnref:mob"&gt;&lt;a class="footnote-ref" href="#fn:mob" title="これは不幸なことです。"&gt;5&lt;/a&gt;&lt;/sup&gt;。アイツは自分のことを、白子まりにポンポン絡むモデル志望のスクールカースト上位女とは違う思慮のあるファンだと思っているはずなのに……。&lt;/p&gt;
&lt;p&gt;PARKでは既にtrivalent-triadが形成されていますから、白子まりはその説明からしなければならないはずです。おそらくこれは良いことですが、真実を聞いたモブ女が何を選ぶかは分かりません。&lt;/p&gt;
&lt;h2 id="pentad"&gt;pentad&lt;/h2&gt;
&lt;p&gt;5人組です。様々な性愛関係が考えられますが、後述のクラスター的構造を取ることが多く非常に複雑です。&lt;/p&gt;
&lt;p&gt;ここで、性愛関係だけでなく友人関係も含んだ広義のpentadを考えてみましょう。&lt;/p&gt;
&lt;p&gt;例えば、サアラとマヤ&lt;sup id="fnref:bob"&gt;&lt;a class="footnote-ref" href="#fn:bob" title="サアラよりも1つ年下のボブカットの女"&gt;6&lt;/a&gt;&lt;/sup&gt;は従姉妹なのです。マヤは昔からサアラのことが大好きなので、小さい頃からサアラが一緒にお風呂に入るように画策してきました。そのおかげで、サアラは知らず知らずのうちにマヤと一緒のお風呂が当たり前になってしまっています。&lt;/p&gt;
&lt;p&gt;一方、サアラには親友のリセがいて、キュートなサアラとクールなリセでお互いに惹かれ合っています。リセとマヤは仲が悪いわけではないのですが、お泊り会の布団決めなどで&lt;sup id="fnref:futon"&gt;&lt;a class="footnote-ref" href="#fn:futon" title="サアラの左隣をねらって"&gt;7&lt;/a&gt;&lt;/sup&gt;無意識のうちに小さなライバル意識を持つこともあるみたいです。&lt;/p&gt;
&lt;p&gt;「リセと一緒にお風呂は、ちょっと恥ずかしいかも」&lt;/p&gt;
&lt;p&gt;サアラはクラスメイトのゆずは&lt;sup id="fnref:ban"&gt;&lt;a class="footnote-ref" href="#fn:ban" title="黒髪のバンギャ"&gt;8&lt;/a&gt;&lt;/sup&gt;や、合唱部で一緒のアリサとも仲良しです。リセはゆずはとも仲良しですが、クラスで起きたサアラのエピソードを聞くとちょっともやもやすることもあるみたいですね。&lt;/p&gt;
&lt;p&gt;リセは可愛いものへの憧れがあるので、リセとゆずはとアリサで可愛いものを貼り合うトークグループを作っています。リセから見ると趣味が近いのはゆずはなのですが、アリサからは可愛らしさを学び取りたいと感じています。&lt;/p&gt;
&lt;p&gt;休日はマヤがみんなをまとめて遊びに行きます。サアラと二人きりで過ごすというのも十分ありえる選択肢のはずですが、なかなか実現することはありません。これは、サアラがみんなを誘いたがるというのと、単にマヤがみんなでワイワイするのが好きというのもあるようです。お泊り会はゆずはの家&lt;sup id="fnref:yuzuha"&gt;&lt;a class="footnote-ref" href="#fn:yuzuha" title="和風でデカい"&gt;9&lt;/a&gt;&lt;/sup&gt;でやることが多いですね。&lt;/p&gt;
&lt;p&gt;一方、リセとサアラは二人きりで放課後に家でゆっくり読書をすることがあります。たまにくすぐりあったりするのを除けば、静かな時間が流れる穏やかな会です。&lt;/p&gt;
&lt;p&gt;簡単な5人の関係でもこんなに長くなってしまいますね。こんなpentadがあったら、誰を応援すればいいのでしょうか。&lt;/p&gt;
&lt;h2 id="hexad-heptad-octad-nonad-polyad"&gt;hexad, heptad, octad, nonad, ..., polyad&lt;/h2&gt;
&lt;p&gt;n-polyadにかかる矢印は最大で&lt;sub&gt;n&lt;/sub&gt;C&lt;sub&gt;2&lt;/sub&gt;本存在しますが、実際に結ばれている関係はそれよりもかなり少なくなります。巨大なpolyadは、より小さなpolyadからなるクラスター的構造をとっています。全ての構成員の間にフラットな関係が存在するのはむしろ不自然でしょう。&lt;/p&gt;
&lt;p&gt;理論的には、1人を中心としたスター型の関係&lt;sup id="fnref:bubble"&gt;&lt;a class="footnote-ref" href="#fn:bubble" title="キープ、キープのキープ、本命、……"&gt;10&lt;/a&gt;&lt;/sup&gt;もありえます。ただし、その関係が全ての構成員に明らかになっていない限り、誠実たりえません。また勝手なハーレムの転用をしているな。&lt;/p&gt;
&lt;p&gt;人間関係に誠実さはいらない、本当か？　いや、しかし……。&lt;/p&gt;
&lt;h2 id="_1"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;ポタク大好きポライアドプリムス&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:vvv"&gt;
&lt;p&gt;&lt;strong&gt;仲の良さ&lt;/strong&gt; が関係の &lt;strong&gt;安定性&lt;/strong&gt; に直結するわけではないことに注意。&amp;#160;&lt;a class="footnote-backref" href="#fnref:vvv" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:rito"&gt;
&lt;p&gt;りとちゃんの良さを話すとは思う。&amp;#160;&lt;a class="footnote-backref" href="#fnref:rito" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:urahara"&gt;
&lt;p&gt;URAHARAの外挿によって得られる自然な関係&amp;#160;&lt;a class="footnote-backref" href="#fnref:urahara" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:mari"&gt;
&lt;p&gt;人一倍結婚願望が強い世界線もある。&amp;#160;&lt;a class="footnote-backref" href="#fnref:mari" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:mob"&gt;
&lt;p&gt;これは不幸なことです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:mob" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:bob"&gt;
&lt;p&gt;サアラよりも1つ年下のボブカットの女&amp;#160;&lt;a class="footnote-backref" href="#fnref:bob" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:futon"&gt;
&lt;p&gt;サアラの左隣をねらって&amp;#160;&lt;a class="footnote-backref" href="#fnref:futon" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ban"&gt;
&lt;p&gt;黒髪のバンギャ&amp;#160;&lt;a class="footnote-backref" href="#fnref:ban" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:yuzuha"&gt;
&lt;p&gt;和風でデカい&amp;#160;&lt;a class="footnote-backref" href="#fnref:yuzuha" title="Jump back to footnote 9 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:bubble"&gt;
&lt;p&gt;キープ、キープのキープ、本命、……&amp;#160;&lt;a class="footnote-backref" href="#fnref:bubble" title="Jump back to footnote 10 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>今日の図</title><link href="https://ama.ne.jp/post/zu/" rel="alternate"/><published>2018-04-03T21:27:00+09:00</published><updated>2018-04-03T21:27:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-04-03:/post/zu/</id><summary type="html">&lt;p&gt;TikZ&lt;/p&gt;</summary><content type="html">&lt;p&gt;最近vol.2（1巻の続き）を読み込んでいるうちに関係性が何も分からなくなってきた。&lt;/p&gt;
&lt;p&gt;もうちょっと待ってください。通ってたら出します。コミケにも。&lt;/p&gt;
&lt;p&gt;&lt;img alt="上に黄色、左下に赤色、右下に茶色の円がそれぞれ正三角形の頂点になるように配置され、さらに赤い円の下に灰色の四角が描かれた図（黄色から茶色および灰色から赤色に最も太い実線の矢印、黄色から赤色に2番目に太い実線の矢印、茶色から黄色に3番目に太い実線の矢印、赤色から黄色に4番目に太い実線の矢印、赤色と茶色が相互に、および赤色から灰色に最も細い点線の矢印）" height="841" src="/images/zu/rel.png" width="595"&gt;&lt;/p&gt;
&lt;p&gt;Watch &lt;a href="http://harajuku-crisis-team.tumblr.com/"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt; in Tumblr now.&lt;/p&gt;</content><category term="drawing"/></entry><entry><title>ウェブアーカイブサイトの信頼性</title><link href="https://ama.ne.jp/post/archiveis/" rel="alternate"/><published>2018-03-24T21:29:00+09:00</published><updated>2020-08-03T15:44:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-03-24:/post/archiveis/</id><summary type="html">&lt;p&gt;魚心あれば水心&lt;/p&gt;</summary><content type="html">&lt;p&gt;怪情報のタレコミがあったので調査をした結果です。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2020-08-03) この記事で示した&lt;a href="https://archive.is/r5fAh"&gt;アーカイブ&lt;/a&gt;は、現在 &lt;code&gt;46.166.139.140&lt;/code&gt; をそのまま表示しています。&lt;a href="https://archive.is/L03wB"&gt;同様のテスト&lt;/a&gt;を行ったところ、現在はクローラのIPを書き換えたり &lt;code&gt;X-Forwarded-For:&lt;/code&gt; でリクエストしたユーザのIPアドレスを漏らすことはなくなったようです。これは一見すると望ましい挙動ですが、archive.isが既にアーカイブしたはずのコンテンツでさえ書き換えてしまうサイトであることを示しています。&lt;/ins&gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;はじまり&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#archiveis"&gt;archive.isとは何か？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#archiveis_1"&gt;archive.isが書き換えていること&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;実証&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;通常のアクセス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#archiveis_2"&gt;archive.isを通したアクセス&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#archiveis_3"&gt;archive.isを使い続けるべきか？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;ウェブアーカイブサイトの信頼性&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;はじまり&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;archive.is、都合のいいようにサイトの内容を書き換えるので、使うならWebArchiveの方がいいですよ（運営元もはっきりしているし、ポリシーもちゃんと出ているので）。 例えば http://taruo.net/e のスナップショットを取ると、書き換えが再現できます。&lt;br&gt;
&lt;cite&gt;&lt;a href="/askfm/#20180308-438"&gt;https://ask.fm/amane_katagiri/answers/146448573544&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;03/08に上のような情報を受け取りました。&lt;/p&gt;
&lt;p&gt;調べてみると、archive.isは取得したページの一部を書き換えてからアーカイブしているという情報が得られました。他にもrobots.txtを無視したりサイト管理者からの削除要求を無視するなどといった運営上の強引さを批判し、サイト管理者の立場からクローラをIPアドレスベースでブロックする方法を紹介する記事もいくつかあるようです。&lt;/p&gt;
&lt;p&gt;関連: &lt;a href="https://web.archive.org/web/20210126093026/https://blog.wolfs.jp/contents/archiveis-ipaddress/"&gt;archive.is サーバーIPアドレス一覧 « REIMA's Blog&lt;/a&gt;、&lt;a href="http://redfox2667.blog111.fc2.com/blog-entry-334.html"&gt;Red Fox 魚拓収集魔から自サイトを守るには？(1)〜Archive.isの魚拓拒否法&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;この怪情報を元に、以下の点について考えます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;archive.isはサイトの内容をどのように書き換えているのか&lt;/li&gt;
&lt;li&gt;ウェブアーカイブサイトの信頼性について&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="archiveis"&gt;archive.isとは何か？&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://archive.is/"&gt;archive.is&lt;/a&gt;は、リクエストに応じてウェブサイトをクロールして保存および公開する&lt;strong&gt;&lt;a href="https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%96%E3%82%A2%E3%83%BC%E3%82%AB%E3%82%A4%E3%83%96"&gt;ウェブアーカイブ&lt;/a&gt;&lt;/strong&gt;サイトの1つです。ウェブアーカイブサイトとしては&lt;a href="https://megalodon.jp/"&gt;ウェブ魚拓&lt;/a&gt;や&lt;a href="https://archive.org/web/"&gt;Wayback Machine&lt;/a&gt;もよく知られています。&lt;/p&gt;
&lt;p&gt;「行儀の良い」ウェブアーカイブサイトがサイト管理者の意思を尊重してアーカイブのリクエストを拒否するのに対し、archive.isではrobots.txtを無視したり、ウェブアーカイブサイトのクローラであることを知られないようにUserAgentを偽装する&lt;sup id="fnref:ua"&gt;&lt;a class="footnote-ref" href="#fn:ua" title="調査時点ではMozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2704.79 Safari/537.36を称しています。"&gt;1&lt;/a&gt;&lt;/sup&gt;など怪しい振る舞いが目立ちます。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why does archive.is not obey robots.txt?&lt;/p&gt;
&lt;p&gt;Because it is not a free-walking crawler, it saves only one page acting as a direct agent of the human user. Such services don't obey robots.txt (e.g. Google Feedfetcher, screenshot- or pdf-making services, isup.me, …)&lt;br&gt;
&lt;cite&gt;&lt;a href="https://archive.is/faq"&gt;https://archive.is/faq&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;さらに、アーカイブしたコンテンツの削除についても厳しい基準が定められているようです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Do you delete my stored page(s) ?&lt;/p&gt;
&lt;p&gt;Pages which violate our hoster's rules (cracks, porn, etc) may be deleted. Also, completely empty pages (or pages which have nothing but text like “502 Server Timeout”) may be deleted.&lt;br&gt;
&lt;cite&gt;&lt;a href="https://archive.is/faq"&gt;https://archive.is/faq&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="archiveis_1"&gt;archive.isが書き換えていること&lt;/h2&gt;
&lt;p&gt;先述の通り、archive.isでは取得したウェブページの一部を書き換えてからアーカイブしているようです。書き換えられている情報としては、以下のようなものがあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTMLヘッダの一部（TwitterカードやOpen Graph Protocolに関わるmetaタグ、canonical情報などを変更ないしは追加）&lt;/li&gt;
&lt;li&gt;archive.isが走らせるクローラのIPアドレス（リクエストしたユーザのIPアドレスに置換）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;クローラのIPアドレスを隠そうとするのは、悪質と言えば悪質のような気もします。まぁそもそも、ヘッダの変更も含めてウェブページを完全な状態で閲覧できないというのは非常に悪い振る舞いです。&lt;/p&gt;
&lt;p&gt;ちなみに、これは書き換えではないですが、クロールの際にリクエストしたユーザのIPアドレスを&lt;code&gt;X-Forwarded-For:&lt;/code&gt;で漏らしています。&lt;/p&gt;
&lt;h2 id="_2"&gt;実証&lt;/h2&gt;
&lt;p&gt;IPアドレスの書き換えについて、&lt;a href="https://gist.github.com/amane-katagiri/a9ee8686ba56a80637d242fc2a981029"&gt;適当なサーバ&lt;/a&gt;を動かして確認します。&lt;/p&gt;
&lt;p&gt;このサーバは、クライアントのIPアドレスとリクエストヘッダを統合して返します。さらに、生成したレスポンスをそのままログに出力します。&lt;/p&gt;
&lt;h3 id="_3"&gt;通常のアクセス&lt;/h3&gt;
&lt;p&gt;以下はログです。ログとレスポンスは当然一致します。また、&lt;code&gt;You are:&lt;/code&gt;および&lt;code&gt;REAL IP:&lt;/code&gt;が指しているIPアドレスも全て同じです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;You are: 127.0.0.1:44662

Host: localhost:8000
User-Agent: curl/7.58.0
Accept: */*

REAL IP: 127-0-0-1:44662
REAL IP: 127_0_0_1:44662
REAL IP: 127 0 0 1:44662
REAL IP: 127　0　0　1:44662
REAL IP: 127の0の0の1:44662
REAL IP: 一二七、〇、〇、一：四四六六二
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="archiveis_2"&gt;archive.isを通したアクセス&lt;/h3&gt;
&lt;p&gt;以下のログに対応するアーカイブは&lt;a href="https://archive.is/r5fAh"&gt;https://archive.is/r5fAh&lt;/a&gt;です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;You are: 46.166.139.140:30922

User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2704.79 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: tt,en;q=0.5
X-Forwarded-For: 54.248.181.34
Connection: Keep-Alive
Accept-Encoding: gzip
Host: 54.248.181.34

REAL IP: 46-166-139-140:30922
REAL IP: 46_166_139_140:30922
REAL IP: 46 166 139 140:30922
REAL IP: 46　166　139　140:30922
REAL IP: 46の166の139の140:30922
REAL IP: 四六、一六六、一三九、一四〇：三〇九二二
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;archive.isによる取得結果では、&lt;code&gt;46.166.139.140&lt;/code&gt;というIPアドレス&lt;sup id="fnref:archiveis"&gt;&lt;a class="footnote-ref" href="#fn:archiveis" title="このページをアーカイブするとこの部分も書き換えられるでしょう。"&gt;2&lt;/a&gt;&lt;/sup&gt;が置換されていますね。下の&lt;code&gt;REAL IP:&lt;/code&gt;行は書き換えられていないことから、ドットを含んだ単純な置換を挟んでいることが確認できました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gd"&gt;--- clean.txt   2018-03-24 17:55:12.301277873 +0900&lt;/span&gt;
&lt;span class="gi"&gt;+++ dirty.txt   2018-03-24 17:54:58.309615729 +0900&lt;/span&gt;
&lt;span class="gu"&gt;@@ -1,4 +1,4 @@&lt;/span&gt;
&lt;span class="gd"&gt;-You are: 46.166.139.140:30922&lt;/span&gt;
&lt;span class="gi"&gt;+You are: 54.248.181.34:30922&lt;/span&gt;

&lt;span class="w"&gt; &lt;/span&gt;User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2704.79 Safari/537.36
&lt;span class="w"&gt; &lt;/span&gt;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;アーカイブのリクエストはlynx&lt;sup id="fnref:lynx"&gt;&lt;a class="footnote-ref" href="#fn:lynx" title="2.8.6rel.5 (09 May 2007)"&gt;4&lt;/a&gt;&lt;/sup&gt;を通して行いましたが、その情報は&lt;code&gt;User-Agent:&lt;/code&gt;には漏らされていませんでした。代わりにクローラだと悟られないようなものを使っています。&lt;/p&gt;
&lt;p&gt;他には何を書き換えているのかな？　怖いですね。知っている人がいたら教えてください。天安門&lt;sup id="fnref:tena"&gt;&lt;a class="footnote-ref" href="#fn:tena" title="天安門"&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;h2 id="archiveis_3"&gt;archive.isを使い続けるべきか？&lt;/h2&gt;
&lt;p&gt;筆者としては、これからは基本的にWayback Machineを使おうかなという感覚があります。サイト管理者がクロールを拒否しないようなウェブサイトにはWayback Machineを使っていけばよさそうです。もちろん、archive.isがお行儀の悪い振る舞いをするのでWayback Machineを全面的に信用しますというのもナンセンスですから、これからも事例に応じてarchive.isでアーカイブすることもあると思います。&lt;/p&gt;
&lt;p&gt;とはいえ、archive.isがどのような情報を書き換えているかの全貌が分かっていないため、追加の情報があればまた立場は変わるでしょう。みんなも調べてみよう！&lt;/p&gt;
&lt;p&gt;サイト管理者の意向を無視するのが悪いかどうかは個別の事例によるんじゃないかな？　検索サイトにクロールされないようにrobots.txtや画像や疑似要素を駆使して作られた企業の謝罪文をアーカイブできたら、僕はそれなりに嬉しいですけどね。&lt;/p&gt;
&lt;h2 id="_4"&gt;ウェブアーカイブサイトの信頼性&lt;/h2&gt;
&lt;p&gt;私たちはどのウェブアーカイブサイトを信頼すべきでしょうか？　Wayback Machineを信頼すべきなのは、なぜですか？&lt;/p&gt;
&lt;p&gt;今のところ、どのウェブアーカイブサイトを信頼すべきかという議論はあまり必要とされていないようです。運営元やポリシーで判断せざるを得ない状況になるまで待たなければなりません。&lt;/p&gt;
&lt;p&gt;個人が簡単にウェブアーカイブサイトを立ち上げられるようになれば状況が変わるはずです。Mastodonが流行り始めた頃にも、サーバにパスワードを渡すのは危険などといった注意喚起をしてくれるおじさんがたくさん出てきましたよね。多分この人たちがまたヘンテコな注意喚起を広めてくれるでしょうから……。&lt;/p&gt;
&lt;p&gt;fishprinterみたいな名前でウェブアーカイブサーバがゴロッとでてくるといいな。ストレージが巨大になるので流行らんと思う。&lt;/p&gt;
&lt;h2 id="_5"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;あまねけ！サイト管理者としては、ウェブアーカイブサイトを特別に拒否する計画はありません。これは、このサイトのコンテンツがCC BY 4.0でライセンスされているというのもありますが、そもそも魚拓を取られることに対して怒りが湧いたりしないというのが大きいです。&lt;/p&gt;
&lt;p&gt;あと、今回のタレコミはそれなりにありがたかったけど、「都合のいいようにサイトの内容を書き換える」みたいなセンセーショナルな怪情報を投げつけて人に調査させるのはやめてほしいかな。ごめんね。&lt;/p&gt;
&lt;p&gt;おわりです。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:ua"&gt;
&lt;p&gt;調査時点では&lt;code&gt;Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2704.79 Safari/537.36&lt;/code&gt;を称しています。&amp;#160;&lt;a class="footnote-backref" href="#fnref:ua" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:archiveis"&gt;
&lt;p&gt;このページをアーカイブするとこの部分も書き換えられるでしょう。&amp;#160;&lt;a class="footnote-backref" href="#fnref:archiveis" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:tena"&gt;
&lt;p&gt;天安門&amp;#160;&lt;a class="footnote-backref" href="#fnref:tena" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:lynx"&gt;
&lt;p&gt;2.8.6rel.5 (09 May 2007)&amp;#160;&lt;a class="footnote-backref" href="#fnref:lynx" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>搾取のススメ</title><link href="https://ama.ne.jp/post/findom/" rel="alternate"/><published>2018-02-27T23:35:00+09:00</published><updated>2018-02-27T23:35:00+09:00</updated><author><name>stewpot</name></author><id>tag:ama.ne.jp,2018-02-27:/post/findom/</id><summary type="html">&lt;p&gt;アマギフまたはフリル&lt;/p&gt;</summary><content type="html">&lt;p&gt;キーワード: 貢ぎ, 搾取, 貢がせアカウント, 貢ぎアカウント, 貢ぎマゾ, 証明のジレンマ, 惨めな物乞い, 監視カメラの部屋&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;貢がせアカウント&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;プライベート・メッセージで貢ぎアカウントとやり取りを行う&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;自撮り写真を掲載する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;録音した音声の送信や、リアルタイムでの通話を行う&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;プライベート・メッセージのやり取りのスクリーン・ショットを掲載する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;貢ぎアカウント&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;こんな貢がせアカウントはいやだ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_9"&gt;余裕がない&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;口が悪い&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;自分を安売りしている&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_12"&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_13"&gt;コラム&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#ab"&gt;A国やB国の存在&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_14"&gt;ヴァーチャル・貢がせアカウント&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_15"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;注意: この記事はフィクションです。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;近年、インターネット上のプライベートなメッセージのやり取りを通して、現実で直接会うことなく&lt;strong&gt;貢がせアカウント&lt;/strong&gt;と&lt;strong&gt;貢ぎアカウント&lt;/strong&gt;の間で経済的価値のやり取りを行う&lt;strong&gt;貢ぎ&lt;/strong&gt;プレイが広まっています。しかし、この価値の移動に着目し、貢ぎアカウントに十分な満足を与えられないレベルの低い貢がせアカウントや、電子マネーやポイントなどを詐取することをねらう業者による貢がせbotの参入などが相次いでいます。また、逆に、貢がせアカウントが求められたメッセージのやり取りを行ったにも関わらず、貢ぎアカウントが十分に貢がないという問題も残っています。&lt;/p&gt;
&lt;p&gt;本記事では、レベルの低い貢がせアカウントに注目し、素養のない貢がせアカウントやバックエンドが業者である貢がせbotの類型について記述します。また、これらの記述を通して、いわゆる&lt;strong&gt;貢ぎマゾ&lt;/strong&gt;向けの創作上でどのようなキャラクターを設計するべきかを考察します。&lt;/p&gt;
&lt;h2 id="_2"&gt;貢がせアカウント&lt;/h2&gt;
&lt;p&gt;最近、とあるSNSで&lt;strong&gt;貢がせアカウント&lt;/strong&gt;が増えてきています。貢がせアカウントは文字通り貢がせることを目的としたアカウントであり、インターネット上での活動を通して経済的あるいは精神的な充足を得ることを目指しています。楽に稼げそうというイメージからか、軽いお小遣い稼ぎ感覚で参入しているアカウントも多いようです。「貢ぎ奴隷を募集して月xxx万円貢がせる方法」というブログが開かれたりしていることからも、一部ではビジネスの一形態として認識されていることが分かります。&lt;/p&gt;
&lt;p&gt;彼女ら&lt;sup id="fnref:tent"&gt;&lt;a class="footnote-ref" href="#fn:tent" title="便宜上そう呼びます。"&gt;1&lt;/a&gt;&lt;/sup&gt;は直接的な経済的価値の搾取、あるいはもっと広い意味での搾取&lt;sup id="fnref:dom"&gt;&lt;a class="footnote-ref" href="#fn:dom" title="後述します。"&gt;2&lt;/a&gt;&lt;/sup&gt;を目的として、例えば以下のような活動をしています。リアル（待ち合わせをして実際に会うこと）や売り子（使用済みの肌着や日用品を販売すること）を主目的としているアカウントもありますが、本記事では触れません。&lt;/p&gt;
&lt;h3 id="_3"&gt;プライベート・メッセージで貢ぎアカウントとやり取りを行う&lt;/h3&gt;
&lt;p&gt;貢がせアカウントの本業ともいえる部分です。テキストや写真、音声の送信を通して貢がせることをねらいます。&lt;/p&gt;
&lt;p&gt;貢がせることに成功した場合は、電子マネーの登録画面などを送信することで実際に価値が移動したことを誇示し、貢ぎアカウントのさらなる興奮を誘います。ご褒美と称して自撮り写真などを送信する場合もあります。&lt;/p&gt;
&lt;h3 id="_4"&gt;自撮り写真を掲載する&lt;/h3&gt;
&lt;p&gt;投稿を行っているアカウントのバックエンドが女性であることをアピールしたり、性的なアピールによって貢ぎ欲を煽ることが目的です。しばしば、自分のアカウントのIDを書いた紙などを一緒に撮影することで、自分が撮影した画像であることを保証しています&lt;sup id="fnref:guara"&gt;&lt;a class="footnote-ref" href="#fn:guara" title="この文化については「女神板」なども参考にしてください。"&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;h3 id="_5"&gt;録音した音声の送信や、リアルタイムでの通話を行う&lt;/h3&gt;
&lt;p&gt;罵倒などの音声を録音して公開したり、特定の貢ぎアカウントの名前を入れてプライベート・メッセージとして送信します。これらは自撮り写真の掲載と同様の目的で行われます。&lt;/p&gt;
&lt;p&gt;また、電話番号を交換したり、通話機能のあるトークアプリのIDを交換することで通話を行う場合もあります。通話の場合はリアルタイムにやり取りできるため、声で煽りながら追加で貢がせるといった他の通信手段では実現できない体験を与えることも可能です。&lt;/p&gt;
&lt;p&gt;ただし、自撮り写真や音声の送信は、場合によっては貢ぎマゾの興奮を妨げてしまう場合があります。つまり、テキスト &amp;lt; 自撮り写真 &amp;lt; 音声 &amp;lt; リアルの順で徐々に実際の肉体との接触レベルが増加してしまうため、「テキストだけで興奮させられる」というような惨めさの体験を弱めてしまうことにつながります。&lt;/p&gt;
&lt;p&gt;情報を与えすぎた結果として、貢ぎアカウントが離れてしまうことも考えられます。しかし、テキストのやり取りで十分に女性であることを示せなかったり、貢ぎアカウント側が疑り深い性格だった場合、貢がせるために自撮りや音声の送信で対応しなければならない場合もあります。これは&lt;strong&gt;証明のジレンマ&lt;/strong&gt;として広く知られており、テキストベースで女性であることを証明するプロトコルの開発が進んでいます。&lt;/p&gt;
&lt;h3 id="_6"&gt;プライベート・メッセージのやり取りのスクリーン・ショットを掲載する&lt;/h3&gt;
&lt;p&gt;やり取りの内容によって2つに分けられますが、どちらも&lt;strong&gt;晒し&lt;/strong&gt;と呼ばれています。&lt;/p&gt;
&lt;p&gt;まず、自分に貢いだ貢ぎアカウントとのやり取りの晒しです。当事者である貢ぎアカウントの満足感を高めたり、まだ自分に貢いでいない貢ぎアカウントを牽制することができます。最近は、自分のメッセージの一部を隠して公開することにより、貢ぎの有無による差別化を図ると同時に体験版のような効果を持たせる手法が広く用いられています。&lt;/p&gt;
&lt;p&gt;もう1つは、貢がせアカウントに損失や不快感を与えたアカウントとのやり取りの晒しです。貢ぐことを宣言あるいは示唆したにも関わらず実際には貢がなかった場合などに、対象のアカウントを&lt;strong&gt;エゴマゾ&lt;/strong&gt;として公開します。こちらは、単に怒りに任せた報復措置であったり、自分以外の貢がせアカウントに対する注意喚起のために行われます。しばしばレベルの低い貢がせアカウントに目立つ行動ですが、逆に貢ぎbotにはあまり見られない行動の1つです。&lt;/p&gt;
&lt;h2 id="_7"&gt;貢ぎアカウント&lt;/h2&gt;
&lt;p&gt;貢がせには&lt;strong&gt;貢ぎアカウント&lt;/strong&gt;の存在が必要不可欠です。貢ぎアカウントは貢がせアカウントとのやり取りを目的としたアカウントですが、必ずしも実際に貢いでいることを示すものではありません。貢ぎ欲を持っているが、投稿を追うだけでまだ実際には貢いでいないアカウントも含まれています。また、貢ぐことで身体の関係を結ぶことをねらう、すなわち「買う」ことを目的とする&lt;sup id="fnref:papa"&gt;&lt;a class="footnote-ref" href="#fn:papa" title="これは一世代前における広義の「パパ活」でした。"&gt;4&lt;/a&gt;&lt;/sup&gt;アカウントとは異なります。&lt;/p&gt;
&lt;p&gt;いわゆる&lt;strong&gt;貢ぎマゾ&lt;/strong&gt;は、（十分な）対価を求めずに&lt;sup id="fnref:driven"&gt;&lt;a class="footnote-ref" href="#fn:driven" title="ただし、しばしば射精欲求駆動で貢いでいます。"&gt;5&lt;/a&gt;&lt;/sup&gt;同意の下で価値を移動させてしまう一連のコミュニケーションに興奮を覚える存在です。プライベート・メッセージのやり取り、自撮り写真や音声の提供を明示的に主たる対価として設定した場合、発生するのは貢ぎではなく単なる価値の交換であることに注意してください。&lt;/p&gt;
&lt;p&gt;このように、彼ら&lt;sup id="fnref2:tent"&gt;&lt;a class="footnote-ref" href="#fn:tent" title="便宜上そう呼びます。"&gt;1&lt;/a&gt;&lt;/sup&gt;は&lt;strong&gt;搾取&lt;/strong&gt;されることに興奮を覚えるとされていますが、無理解な人たちによって「金銭を支払うこと」のみに興奮を覚えるという都合の良い解釈をされる場合もあります。ここでの搾取は、ハイ・コンテクストな同意の成果として価値の移動が発生することです。それらの前提を考慮せず「経済的価値の移動」という結果にのみ注目してしまった場合&lt;sup id="fnref:example"&gt;&lt;a class="footnote-ref" href="#fn:example" title="脚コキの物理的な刺激にのみ注目するような場合と同じです。"&gt;6&lt;/a&gt;&lt;/sup&gt;、高度で繊細なコミュニケーションの重要性が失われるとともに、&lt;strong&gt;惨めな物乞い&lt;/strong&gt;問題の隠蔽が難しくなります。&lt;/p&gt;
&lt;p&gt;実際のところ、貢ぎマゾにとっては必ずしも経済的な価値の移動が重要というわけではありません&lt;sup id="fnref:example2"&gt;&lt;a class="footnote-ref" href="#fn:example2" title="脚コキの精神的な刺激にのみ注目するような場合と同じです。"&gt;7&lt;/a&gt;&lt;/sup&gt;。これは&lt;strong&gt;監視カメラの部屋&lt;/strong&gt;問題とも深く関係しています。&lt;/p&gt;
&lt;p&gt;貢がせアカウントが貢ぎアカウントの貢ぎ欲を煽り、後者が自発的に経済的価値を移動させることで貢ぎが発生します。一部の貢ぎアカウントから貢がせアカウントに実際に経済的価値が移動していることは、貢がせアカウントが掲載しているスクリーンショットから確認できます。&lt;/p&gt;
&lt;p&gt;インターネット上で貢ぐ手段としては、以下のようなものが考えられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ギフト券などの電子マネーを購入させ、コードを入力させる&lt;/li&gt;
&lt;li&gt;欲しいものリストなどから商品を購入させる&lt;/li&gt;
&lt;li&gt;フリーマーケットアプリで一定金額の商品を購入させる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;貢ぎアカウントが満足感を得るためには、お互いの同意で適切な手段を選ばなければなりません。場合によっては現金を振り込ませるほうが適切な場合もあります。&lt;/p&gt;
&lt;p&gt;なお、貢がせアカウントと貢ぎアカウントの比率ですが、今のところ貢がせアカウントの方が供給過多であるように思われます。これは、レベルの低い貢がせアカウントの大量発生や貢がせbotの存在が大きな原因です。&lt;/p&gt;
&lt;h2 id="_8"&gt;こんな貢がせアカウントはいやだ&lt;/h2&gt;
&lt;p&gt;ここからは、レベルの低い貢がせアカウントに共通した特徴について紹介します。彼女らの多くは、言葉のバランス感覚や繊細さに難があると思われます。なお、ここに記した特徴の一部または全部に当てはまったり、当てはまらなかったりすることで対象の貢がせアカウントのレベルを保証することはできません。&lt;/p&gt;
&lt;h3 id="_9"&gt;余裕がない&lt;/h3&gt;
&lt;p&gt;主に若さをアピールしている貢がせアカウント&lt;sup id="fnref:ljk"&gt;&lt;a class="footnote-ref" href="#fn:ljk" title="「LJK」と称するアカウントなど。"&gt;8&lt;/a&gt;&lt;/sup&gt;にありがちです。次のような傾向が見られます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;貢がれることに必死になってしまう&lt;/li&gt;
&lt;li&gt;明示的に貢ぐ金額を指定してしまう&lt;/li&gt;
&lt;li&gt;貢ぎの対価を提示してしまう&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このようなアカウントからは、金銭的・時間的・精神的余裕のなさを感じます。&lt;/p&gt;
&lt;p&gt;貢ぎビジネスが全盛の今、「〜円貢いだら〜してあげるよ。貢ぎマゾのみんなおいで」や「一番多く貢げた人に〜します」といった投稿を繰り返す貢がせアカウントは非常に多いです。こうした自分を商品として陳列するような行為は、本来一番のカモであるはずの貢ぎマゾを遠ざけることにつながります。もし若い女性と性交渉したいおじさんをターゲットとしているのなら、「マゾ」といった呼びかけや「貢ぎ」という表現も的確ではないでしょう。&lt;/p&gt;
&lt;h3 id="_10"&gt;口が悪い&lt;/h3&gt;
&lt;p&gt;いわゆる愛のない罵倒を繰り返すアカウントです。他人への理解が十分ではないせいか、聞きかじった罵倒語からエッジの強いものばかり選んで組み合わせた悪口モンスターになりがちです。日常の投稿でも、世界への不満を爆発させています。こちらも若い女性を自称するアカウントにありがちです。&lt;/p&gt;
&lt;p&gt;こういったアカウントはしばしば貢ぐ貢ぐ詐欺に遭った旨をスクリーンショットで晒したり、貢ぎアカウントが集まらないことに対する不満を繰り返しています。このような点からも、良い貢ぎマゾが彼女らの下に集まっていないことが分かります。ネガティブな晒しは周囲への注意喚起には役立ちますが、貢がせアカウントを自負するなら貢がせた成功例もバランスよく発信しないと本人の評判を下げがちです。&lt;/p&gt;
&lt;h3 id="_11"&gt;自分を安売りしている&lt;/h3&gt;
&lt;p&gt;プライベート・メッセージで個人に向けて使えば効果がありそうな言葉を、普通の投稿として安く公開してしまう「サービスのいい」貢がせアカウントが一定数存在します。そういった「わざとらしい広告」は、ある程度の注目を集めることはできますが、実際に貢がせるような効果はあまりないと思われます。&lt;/p&gt;
&lt;p&gt;また、自分に都合の悪い貢ぎアカウントをエゴマゾ呼ばわりして牽制しようとする投稿も自らの価値を下げがちです。エゴマゾというのは諸刃の剣であり、使い方によっては自分のエゴを強調することになります。自分がレベルの低い貢ぎアカウントを集めてしまう安い貢がせアカウントであることの証明にもなりかねません。&lt;/p&gt;
&lt;h2 id="_12"&gt;まとめ&lt;/h2&gt;
&lt;p&gt;貢がせアカウントを開設すれば簡単にお金が集まるイメージがありますが、実際には非常に面倒な世界です。「つべこべ言わずに貢げ！」と叫ぶだけでは誰も何も集まりません。多くの貢ぎマゾの注目を集めている貢がせアカウントは、色々な面で貢ぎマゾの心理に理解のある人間が丁寧に運営しているものです。&lt;/p&gt;
&lt;p&gt;余裕があり、普段は優しく、貢ぎマゾの心理を知っており、自分の価値を分かっている……と一方的な要求が多いようにも見えますが、貢ぎマゾが求めているのは決して都合の良い存在ではありません。自分よりも絶対的に強くて大きな存在に圧倒的なパワーで搾取されたいだけなのです。そこに肌を晒したり乞食じみた振る舞いをする惨めな女王様は必要ありません。&lt;/p&gt;
&lt;p&gt;対面せずに貢がせたお金で生活したい、ネカマで儲けたい、というみなさんはもう少し貢ぎマゾを分析してみてはいかがでしょうか。&lt;/p&gt;
&lt;h2 id="_13"&gt;コラム&lt;/h2&gt;
&lt;h3 id="ab"&gt;A国やB国の存在&lt;/h3&gt;
&lt;p&gt;敵対関係にある2つの国を設定し、自分が一方の（B国の）国民になることで国レベルの（A国からの）侵略や搾取を受けるシチュエーションが人気です。実際の国を仮定すると色々な問題につながるため、様々なアルファベットを当てて楽しまれています。&lt;/p&gt;
&lt;p&gt;敵対国の男性に自国の女性が寝取られる*-NTRなどのシチュエーションも人気ですが、貢ぎマゾからは少し離れているかもしれません。&lt;/p&gt;
&lt;p&gt;また、B国の女性がB国の男性の管理を行うというシチュエーションも注目を集めています。&lt;/p&gt;
&lt;h3 id="_14"&gt;ヴァーチャル・貢がせアカウント&lt;/h3&gt;
&lt;p&gt;あるキャラクターになりきって、成人向け音声作品のような音声を投稿している貢がせアカウントが存在しています。&lt;/p&gt;
&lt;p&gt;このアカウントは女子高生を自称してプライベート・メッセージのスクリーン・ショットの投稿を続けていますが、アイコンは他人のイラストを転載したものであり、さらには自撮り写真も投稿していません。イラストや3Dモデルを被ったヴァーチャル・貢がせアカウントの一形態として注目する必要がありそうです。&lt;/p&gt;
&lt;h2 id="_15"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;最近、インスタで鍵を通したネックレスを着けて写真を撮るアカウントを見かけますが、あれは管理者なのでしょうか？　分かりません。&lt;/p&gt;
&lt;p&gt;次回は、監視カメラの部屋問題についてお話しします。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:tent"&gt;
&lt;p&gt;便宜上そう呼びます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:tent" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:tent" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:dom"&gt;
&lt;p&gt;後述します。&amp;#160;&lt;a class="footnote-backref" href="#fnref:dom" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:guara"&gt;
&lt;p&gt;この文化については「女神板」なども参考にしてください。&amp;#160;&lt;a class="footnote-backref" href="#fnref:guara" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:papa"&gt;
&lt;p&gt;これは一世代前における広義の「パパ活」でした。&amp;#160;&lt;a class="footnote-backref" href="#fnref:papa" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:driven"&gt;
&lt;p&gt;ただし、しばしば射精欲求駆動で貢いでいます。&amp;#160;&lt;a class="footnote-backref" href="#fnref:driven" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:example"&gt;
&lt;p&gt;脚コキの物理的な刺激にのみ注目するような場合と同じです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:example" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:example2"&gt;
&lt;p&gt;脚コキの精神的な刺激にのみ注目するような場合と同じです。&amp;#160;&lt;a class="footnote-backref" href="#fnref:example2" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:ljk"&gt;
&lt;p&gt;「LJK」と称するアカウントなど。&amp;#160;&lt;a class="footnote-backref" href="#fnref:ljk" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="ugoki"/></entry><entry><title>ブログ周りのバッドノウハウとその代替</title><link href="https://ama.ne.jp/post/fc2-future/" rel="alternate"/><published>2018-01-16T16:50:00+09:00</published><updated>2018-01-16T16:50:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2018-01-16:/post/fc2-future/</id><summary type="html">&lt;p&gt;未来ずら&lt;/p&gt;</summary><content type="html">&lt;p&gt;みなさんはどんなブログサービスを使っていますか？　あなたの使っているブログサービスでは、記事やページの固定表示機能を使えますか？&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;固定表示機能とは？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#fc2"&gt;FC2ブログ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;はてなブログ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#blogger"&gt;Blogger&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#yahoo"&gt;Yahoo!ブログ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wordpress"&gt;WordPress&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;固定表示機能を模倣する&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_4"&gt;かんたん！　固定表示機能の模倣&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;エセ固定表示機能は何が悪いのか？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;よりよい固定表示機能の模倣へ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;固定表示機能とは？&lt;/h2&gt;
&lt;p&gt;固定表示機能とは、（今適当に名前を付けたのですが、）記事一覧の先頭部分に割り込んで記事やページを表示する機能のことです。著者紹介やサイト紹介、あるいは人間向けのサイトマップを置くケースが多いようです。フロントページにアクセスした時点で、記事を更新しても変わらないいわば「サイトの顔」が表示されるわけですから、非常に人気があります。&lt;/p&gt;
&lt;p&gt;この「フロントページにのみ固定ページを表示する」というのはブログのレイアウトとしてありがちですが、実はこれを実現するのは意外と難しいようです。&lt;/p&gt;
&lt;p&gt;さて。あなたの使っているブログサービスは、固定表示機能に対応しているのでしょうか？&lt;/p&gt;
&lt;h3 id="fc2"&gt;FC2ブログ&lt;/h3&gt;
&lt;p&gt;いくら探しても以下で説明するバッドノウハウが語り継がれているばかりです。または、対応するテーマを使うかテンプレートを直接編集する必要があります。あるいは、HTMLパーツを配置すればまぁできます&lt;sup id="fnref:front"&gt;&lt;a class="footnote-ref" href="#fn:front" title="テンプレートを編集せずにフロントページだけに表示するのは難しそう。"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;h3 id="_2"&gt;はてなブログ&lt;/h3&gt;
&lt;p&gt;上に同じです。&lt;a href="http://help.hatenablog.com/entry/pages"&gt;固定ページを作成・編集する - はてなブログ ヘルプ&lt;/a&gt;によれば、有料プランで固定ページを作成できるとのことですが、フロントページ上部に固定表示するような機能はないように見えます。&lt;/p&gt;
&lt;h3 id="blogger"&gt;Blogger&lt;/h3&gt;
&lt;p&gt;これまた上に同じです。HTMLパーツを使って配置するとまぁ行儀がいいかもです。MarkdownやWYSIWYGに慣れてしまった今では、更新しようにも腰が重くなってしまうとは思いますが。&lt;/p&gt;
&lt;h3 id="yahoo"&gt;Yahoo!ブログ&lt;/h3&gt;
&lt;p&gt;フロントページ用の投稿を格納する「書庫&lt;sup id="fnref:archive"&gt;&lt;a class="footnote-ref" href="#fn:archive" title="記事をまとめるカテゴリのようなものらしい。「★★★トップページ★★★」じゃあないんだが。"&gt;2&lt;/a&gt;&lt;/sup&gt;」を作り、その書庫をフロントページに表示するよう設定できるようです。あまり直感的ではないですね。ファン限定の記事も置くとファンと一般でトップページを変えられるという技巧も広く使われているっぽい。&lt;/p&gt;
&lt;h3 id="wordpress"&gt;WordPress&lt;/h3&gt;
&lt;p&gt;フロントページに固定ページを表示する設定があります。&lt;a href="https://wordpress.org/plugins/whats-new-genarator/"&gt;こんな感じのプラグイン&lt;/a&gt;で固定ページ内に記事一覧も表示できるようです。嬉しいですね。&lt;/p&gt;
&lt;h2 id="_3"&gt;固定表示機能を模倣する&lt;/h2&gt;
&lt;p&gt;固定表示機能がないにもかかわらず、多くのブログサービスはユーザー数を大きく伸ばし、インターネットでの情報発信に役立ってきました。どうしてでしょうか？&lt;/p&gt;
&lt;p&gt;固定表示機能がないのなら、作れば良いからです。&lt;/p&gt;
&lt;h3 id="_4"&gt;かんたん！　固定表示機能の模倣&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;フロントページに表示したい内容を普通の記事として書きましょう。&lt;/li&gt;
&lt;li&gt;公開日時をずっと未来に設定します。例えば&lt;code&gt;2020-08-10&lt;/code&gt;などがいいと思います。来ないので。&lt;/li&gt;
&lt;li&gt;そのまま公開すれば、いつでもフロントページに表示される記事の完成です！&lt;/li&gt;
&lt;li&gt;お好みで、記事内容を途中で省略されないようにしたり、固定記事だけを表示するようにできます。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これがね、固定表示機能の模倣でも最悪の部類で……。&lt;/p&gt;
&lt;h2 id="_5"&gt;エセ固定表示機能は何が悪いのか？&lt;/h2&gt;
&lt;p&gt;公開日時を調整して固定表示機能を模倣することについて、私は以下の点で悪いと考えています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;実際の公開日時や更新日時とは関係のない日付が表示される&lt;sup id="fnref:none"&gt;&lt;a class="footnote-ref" href="#fn:none" title="公開日時なんてCSSで隠せよと言ってしまうキミは、ウーン悪い。悪いぞ。"&gt;3&lt;/a&gt;&lt;/sup&gt;。&lt;/li&gt;
&lt;li&gt;最新記事のフィードの先頭に常に固定記事が配置され、最悪の場合更新が通知されなくなる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;更新通知が止まるのは痛いですね。まぁ当然実装によると思いますが。例えば、前回のHEADを最新記事と突き合わせていく感じだと後ろの記事はスキップされるでしょう。&lt;/p&gt;
&lt;p&gt;ちなみに、執筆時点ではSlackのRSS integrationが騙されており、最新記事があるにも関わらず&lt;strong&gt;通知が出ていません&lt;/strong&gt;&lt;sup id="fnref:notice"&gt;&lt;a class="footnote-ref" href="#fn:notice" title="Twitterで当該ブログの最新記事が紹介されてるのを見て気付いた。"&gt;4&lt;/a&gt;&lt;/sup&gt;。フィードリーダーに読み方の規格はあるのかな。教えてください。&lt;/p&gt;
&lt;h2 id="_6"&gt;よりよい固定表示機能の模倣へ&lt;/h2&gt;
&lt;p&gt;サイドバーにAboutページなどへのリンクを置いて満足できるならもうやってるんですよね。ブログでも普通のWebサイトっぽくやりたいという素朴な願いを、実際のところ僕は咀嚼しきれていません。&lt;/p&gt;
&lt;p&gt;HTMLパーツをプラグインとして配置する方法を少し工夫すると、例えばフロントページ用のHTMLコードをjQueryで着脱し&lt;sup id="fnref:hatena-jquery"&gt;&lt;a class="footnote-ref" href="#fn:hatena-jquery" title="http://design.syofuso.com/entry/2017/11/08/011327"&gt;5&lt;/a&gt;&lt;/sup&gt;たり、テンプレートの条件文などを記述する必要があります。最終的には、このようにテンプレートに手を入れて生のHTMLやJavaScriptを書く必要があると思っていますが、こういう煩雑な編集を全ての情報発信者が平等に扱えるわけではありません。&lt;/p&gt;
&lt;p&gt;どうすればいいと思いますか？　分かりません。&lt;/p&gt;
&lt;h2 id="_7"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;正しく表示されてるんだから文句を言うな。ブックマークに登録して毎日ブログの更新を確認しろ。毎週[月火水木金]曜日はWebコミックもチェックしろ。更新を確認するのも手間ならもう読むな。はい、分かる、ちゃんと確認します、ごめんなさい。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:front"&gt;
&lt;p&gt;テンプレートを編集せずにフロントページだけに表示するのは難しそう。&amp;#160;&lt;a class="footnote-backref" href="#fnref:front" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:archive"&gt;
&lt;p&gt;記事をまとめるカテゴリのようなものらしい。「★★★トップページ★★★」じゃあないんだが。&amp;#160;&lt;a class="footnote-backref" href="#fnref:archive" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:none"&gt;
&lt;p&gt;公開日時なんてCSSで隠せよと言ってしまうキミは、ウーン悪い。悪いぞ。&amp;#160;&lt;a class="footnote-backref" href="#fnref:none" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:notice"&gt;
&lt;p&gt;Twitterで当該ブログの最新記事が紹介されてるのを見て気付いた。&amp;#160;&lt;a class="footnote-backref" href="#fnref:notice" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:hatena-jquery"&gt;
&lt;p&gt;http://design.syofuso.com/entry/2017/11/08/011327&amp;#160;&lt;a class="footnote-backref" href="#fnref:hatena-jquery" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>怪物</title><link href="https://ama.ne.jp/post/monster/" rel="alternate"/><published>2017-12-26T04:45:00+09:00</published><updated>2017-12-26T04:45:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-12-26:/post/monster/</id><summary type="html">&lt;p&gt;のけものの性欲&lt;/p&gt;</summary><content type="html">&lt;p&gt;とても寒い朝だった。もくもくとした息が真っ白で、太陽が当たってよく輝いている。&lt;/p&gt;
&lt;p&gt;「ハカセがね、本当は私は人間じゃないって言うの」&lt;/p&gt;
&lt;p&gt;Ｂ子が急にそう言った。いつもより小さくて不安そうで、絞り出したような声だ。歩きながら誤魔化すように、私に聞こえないふりをする余地があるように。&lt;/p&gt;
&lt;p&gt;今日のＢ子は少し変だ。耳がぺたりとくっついているし、尻尾だってくるりと巻き込んでしまっている。それに、普段のＢ子が学校に行くまでの間に話してくれるのは、ご飯の話とか、部活の話とか、あとは宿題の話とか。彼女はとりとめのない日常の話を楽しそうに私に聞かせるのが好きなのだ。&lt;/p&gt;
&lt;p&gt;「それが、どうかしたの？」&lt;/p&gt;
&lt;p&gt;「どうかしたのって……私、人間じゃないんだよ？」&lt;/p&gt;
&lt;p&gt;私は彼女が人間ではないことを知ってたし、Ｂ子だってそんなことはとっくの昔に知っていると思っていた。彼女と私には耳と尻尾の有無という大きな差異があったし、人間ではありえない症状もたくさん経験しただろう。それなのに、どうしてハカセは今まで教えなかったのかな。どうして今になってわざわざ教えたのかな。&lt;/p&gt;
&lt;p&gt;でも本当は、耳や尻尾があったって人間とは何も変わらないのだ。誰だって自分が普通の人間だと思っているし、私に八重歯が生えているせいで人間扱いされなくなったとしたら不安で夜も眠れなくなる。&lt;/p&gt;
&lt;p&gt;「分かってるよ。だから、それがどうかしたの？」&lt;/p&gt;
&lt;p&gt;私より体温の高い手を包み込むと、彼女はいつもより強い力で握り返してくる。まるで発情期の時みたいに、私の手なんか気にしていないみたいに。&lt;/p&gt;
&lt;p&gt;「だって、Ａ子ちゃんは人間だよね？　私のことを本当は怖い怪物だって思ってたら、すごく嫌なの」&lt;/p&gt;
&lt;p&gt;「私、あなたが人間じゃないって最初から知ってるよ？」&lt;/p&gt;
&lt;p&gt;Ｂ子はまず唖然として、それからびっくりした表情になって、最後に顔を赤らめた。&lt;/p&gt;
&lt;p&gt;「知ってるなら、もっと早く言ってほしかったよ！」&lt;/p&gt;
&lt;p&gt;さっきまでの思い詰めた表情とは一転、いつもの元気なＢ子だ。肩の荷が下りたみたいに、耳も尻尾も機嫌がよさそうだ。&lt;/p&gt;
&lt;p&gt;「今まで黙っててごめんね、Ｂ子。一緒に行ってくれる？」&lt;/p&gt;
&lt;p&gt;「……うん」&lt;/p&gt;
&lt;p&gt;手を差し出されたＢ子は、どこか嬉しそうだった。私が手を引いて登校するのって、久しぶりかも。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Ｂ子と最初に交わした会話を、今でも覚えている。&lt;/p&gt;
&lt;p&gt;いつもより空が高い朝、無言でＢ子の手を引いた駆け足の桜並木。そんな長い一日、入学式が終わった後の浮ついた教室の中で彼女はこう言ったのだ。&lt;/p&gt;
&lt;p&gt;「朝起きると体中に粘膜が張ってるから、シャワー浴びないとダメだよ、ね、そうだよね……？」&lt;/p&gt;
&lt;p&gt;一瞬の沈黙の後、取り繕うような笑いが起きる。人外なりのジョークだと思って、その場ではみんな笑っていた。面白い子だねって。でも、それからみんなはあまりＢ子と話さなくなった。やっぱりノリが合わないよと言っていたけど、本当はみんな彼女を気持ち悪がっていたのを私は知っている。「粘膜とか、ヤバいよねー」って。&lt;/p&gt;
&lt;p&gt;少なくとも学校での彼女は、耳や尻尾以外にみんなと大きく違っている様子はないのに。&lt;/p&gt;
&lt;p&gt;学校ではＢ子は私としか話さない。女子からはすっかりグループ外の扱いだし、男子と話している様子も見たことがない。一方で私は、刷り込みでも受けたみたいに懐くＢ子と過ごすうちに、彼女の愛らしい表情や元気で明るい性格にどんどん惹かれていった。Ｂ子と一緒の布団で眠ったこともあるし、彼女の人間じゃないところもいっぱい見てきた。&lt;/p&gt;
&lt;p&gt;Ｂ子の手は暖かくて、さらさらしていて、ずっと触っていたくなる。&lt;/p&gt;
&lt;p&gt;人間かどうかってそんなに大事なことなのかな。同じ人間同士だって、友達の無理な同調圧力とか、意味のないマウントの取り合いとか、そんなことばっかり。外側だけ人間でできていたって、一人ひとりがみんな違う醜い怪物なのだ。綺麗な肌からぬるぬるとした粘液が出て恥ずかしがるＢ子は、とっても可愛いのに。&lt;/p&gt;
&lt;p&gt;でも、みんなはずっとそれでいいの。Ｂ子のことを分かってあげられるのは私だけだから。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;こんなに素直だと、誰かに騙されやしないかと少し心配になる。&lt;/p&gt;
&lt;p&gt;今は私にこんなに懐いてくれてるけど、本能ではもっと逞しいオスを求めているのかもしれない。私より先に彼女の手を引いた人がいるのなら。そんな想像をすると、ずっとこの手を絡ませたままで彼女を見つめ続けてしまうのだ。&lt;/p&gt;
&lt;p&gt;Ｂ子にキスをして、とろとろになったところを弄ると、彼女はすっかり自分が人間であることを忘れたような表情をして私に甘く噛み付いてくる。ベッドに押し倒して身体を押さえつけながらキスをすると、獣のような声で甘えるのだ。耳元で私を求める彼女の声が脳を痺れさせて、視界が甘いピンク色に染まっていく。&lt;/p&gt;
&lt;p&gt;べとべとになった彼女の身体は、擦り合わせた肌をよく滑らせる。&lt;/p&gt;
&lt;p&gt;「Ｂ子……首、もっとするからね？」&lt;/p&gt;
&lt;p&gt;「もっと、強く……して」&lt;/p&gt;
&lt;p&gt;こうやって誰かに縛られたがるのも、メスの動物的な本能なんだろうか。そうだとしたら、彼女はどうしてこんな風に造られたのかな。けものみたいな本能を載せたままで、人間まがいの何かに変えてしまうなんて。&lt;/p&gt;
&lt;p&gt;性欲も発情期も、Ｂ子には必要のないものなのに。&lt;/p&gt;
&lt;p&gt;「ん、好きだよ……Ｂ子」&lt;/p&gt;
&lt;p&gt;私みたいな女じゃなくて、粗暴なオスに組み伏せられたら彼女はどんな表情をするだろう。私に向けている蕩けた表情を、誰かには見られたくはないの。怒りと苦痛に満ちた表情で、私の助けを求めて叫んでくれたらいいのに。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「Ａ子ちゃん。今日はちょっと、遅くなるから」&lt;/p&gt;
&lt;p&gt;彼女が隣にいない時は、たまに理由もなく怖くなる。私にメスを蹂躙するための醜悪な性器が付いていればよかったのにと、いつも思っている。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/2268"&gt;百合SS Advent Calendar 2017&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>キヌガワ特撰集</title><link href="https://ama.ne.jp/post/silkriver/" rel="alternate"/><published>2017-12-25T02:01:00+09:00</published><updated>2017-12-25T02:01:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-12-25:/post/silkriver/</id><summary type="html">&lt;p&gt;さくら並木公園高校自撮り研究部&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="さくら並木公園高校自撮り研究部！" height="394" src="/images/silkriver/title.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;こんにちは。鬼怒川温泉を知っていますか？&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;川がある&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;ホテルがある！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;ホテルがある？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;猫もいるよ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;おまけ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;川がある&lt;/h2&gt;
&lt;p&gt;鬼怒&lt;strong&gt;川&lt;/strong&gt;温泉と書くくらいなので、まぁ川があります。&lt;/p&gt;
&lt;p&gt;&lt;img alt="楯岩" height="500" src="/images/silkriver/river001.jpg" width="750"&gt;&lt;br&gt;
楯岩と川の写真です。デカい岩がありました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="吊り橋" height="500" src="/images/silkriver/bridge.jpg" width="750"&gt;&lt;br&gt;
この吊り橋から写真を撮りました。子供がボコボコ跳ねるととにかくめちゃめちゃ揺れますね。跳ねるな。&lt;/p&gt;
&lt;p&gt;&lt;img alt="月台" height="500" src="/images/silkriver/tsukidai.jpg" width="750"&gt;&lt;br&gt;
楯岩を臨む月台です。さくら並木公園高校自撮り研究部の女子部員のみんながよく集まっているみたい。&lt;/p&gt;
&lt;p&gt;&lt;img alt="北の川" height="500" src="/images/silkriver/river002.jpg" width="750"&gt;&lt;br&gt;
これも川です。綺麗ですね。あんまり特筆することはないです。&lt;/p&gt;
&lt;p&gt;思い出してみるとここも吊り橋でした。吊り橋効果好きの変態しかいないのか。&lt;/p&gt;
&lt;h2 id="_2"&gt;ホテルがある！&lt;/h2&gt;
&lt;p&gt;鬼怒川&lt;strong&gt;温泉&lt;/strong&gt;と書くくらいなので、ホテルもあります。鬼怒川温泉駅を出て歩くと、色んなホテルに出会います。&lt;/p&gt;
&lt;p&gt;&lt;img alt="整列" height="500" src="/images/silkriver/hotels001.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="ホテルニューおおるり" height="500" src="/images/silkriver/hotels002.jpg" width="750"&gt;&lt;br&gt;
断崖絶壁ライクな川岸にいい感じに建てる建築（あれなんて言うんですか？）が大好きなのですごくいい風景ですね。道端に椅子を置いて眺めてるべき。&lt;/p&gt;
&lt;p&gt;&lt;img alt="鳥瞰" height="500" src="/images/silkriver/city.jpg" width="750"&gt;&lt;br&gt;
こっちは楯岩の上から撮った温泉街の全景です。段のデカい膝殺しの階段を昇り切ると、四畳半くらいの展望台と縁結びの鐘が吊るしてありました。吊り橋効果好きの変態しかいないのか。&lt;/p&gt;
&lt;h2 id="_3"&gt;ホテルがある？&lt;/h2&gt;
&lt;p&gt;鬼怒川&lt;strong&gt;廃墟&lt;/strong&gt;と書くくらいなので、廃墟もあります。鬼怒川温泉公園駅の方にも、色んなホテルが並んでいるみたいです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="断絶" height="500" src="/images/silkriver/ruin001.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="頓死" height="500" src="/images/silkriver/ruin002.jpg" width="750"&gt;&lt;br&gt;
黒く汚れた廃ホテルの対岸では、未だ営業を続ける政府登録&lt;sup id="fnref:gov"&gt;&lt;a class="footnote-ref" href="#fn:gov" title="バブル時代を過ごした廃ホテルを語るには避けて通れない重要キーワード"&gt;1&lt;/a&gt;&lt;/sup&gt;国際観光ホテルや、地元の子供たちが通っているだろう幼稚園が向こう岸を眺めています。川が過去と現在を分断しているかのようです。&lt;/p&gt;
&lt;p&gt;逆に言うと廃ホテル群を正面から撮影できなくてちょっと残念。&lt;/p&gt;
&lt;p&gt;&lt;img alt="虚" height="500" src="/images/silkriver/ruin003.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="無" height="500" src="/images/silkriver/ruin004.jpg" width="750"&gt;&lt;br&gt;
あなたは、あの頃の夢をまだ見ているのでしょうか。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ホテル" height="500" src="/images/silkriver/ruin006.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="マンション" height="500" src="/images/silkriver/ruin005.jpg" width="750"&gt;&lt;br&gt;
ホテルグリーンパレスと、マンショングリーンパレス。時は止まっても、劣化は止まりません。&lt;/p&gt;
&lt;p&gt;&lt;img alt="肩書" height="500" src="/images/silkriver/badge.jpg" width="750"&gt;&lt;br&gt;
もしあなたがたくさんの肩書を得たとして、天国ではどれほど役に立つでしょうか？&lt;/p&gt;
&lt;h2 id="_4"&gt;猫もいるよ&lt;/h2&gt;
&lt;p&gt;&lt;img alt="こちらを見るネコちゃん" height="500" src="/images/silkriver/cat001.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="上を見るネコちゃん" height="500" src="/images/silkriver/cat002.jpg" width="750"&gt;&lt;br&gt;
猫の忍者を見かけましたので、ズームレンズに差し替えて撮影を試みました。可愛いですね。&lt;/p&gt;
&lt;p&gt;そういえば、鬼怒川温泉公園駅近くの日光人形美術館&lt;sup id="fnref:yumeji"&gt;&lt;a class="footnote-ref" href="#fn:yumeji" title="http://www.yumeji.co.jp/doll/"&gt;2&lt;/a&gt;&lt;/sup&gt;では、屋内にネコちゃんがいました。大丈夫か？&lt;/p&gt;
&lt;h2 id="_5"&gt;おまけ&lt;/h2&gt;
&lt;p&gt;&lt;img alt="シンゴジラ" height="500" src="/images/silkriver/sl.jpg" width="750"&gt;&lt;br&gt;
これがシンゴジラってやつですか。&lt;/p&gt;
&lt;h2 id="_6"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;もっと廃墟温泉街が見た〜い！　廃墟内部に入るには色々準備も必要ですから、色んな人と協力して色々やりたいですね。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:gov"&gt;
&lt;p&gt;バブル時代を過ごした廃ホテルを語るには避けて通れない重要キーワード&amp;#160;&lt;a class="footnote-backref" href="#fnref:gov" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:yumeji"&gt;
&lt;p&gt;http://www.yumeji.co.jp/doll/&amp;#160;&lt;a class="footnote-backref" href="#fnref:yumeji" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="shuzai"/></entry><entry><title>X-Face compatibleなアイコンを目指して</title><link href="https://ama.ne.jp/post/xface/" rel="alternate"/><published>2017-12-12T04:15:00+09:00</published><updated>2017-12-12T04:15:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-12-12:/post/xface/</id><summary type="html">&lt;p&gt;W*&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="https://adventar.org/calendars/2573"&gt;WORDIAN Advent Calendar 2017&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;こんにちは。12月12日です。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#x-face"&gt;X-Face（えっくすふぇいす）って何？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#x-face-compatible"&gt;X-Face compatibleなアイコンを作る&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;アイコンを持っていない場合&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;アイコンを持っている場合&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#x-face-compatible_1"&gt;X-Face compatibleなアイコンを使う&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#x-face_1"&gt;X-Face:ヘッダとして使う&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;画像として使う&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="x-face"&gt;X-Face（えっくすふぇいす）って何？&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Not to be confused with Xfce.&lt;br&gt;
&lt;cite&gt;&lt;a href="https://en.wikipedia.org/wiki/X-Face"&gt;X-Face&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;電子メールやネットニュースを使っていますか？　X-Faceはメールやネットニュースに&lt;code&gt;X-Face:&lt;/code&gt;ヘッダとして付加されています。モダンな電子メールクライアントやニュースリーダでは、メッセージを開いた際にこのヘッダを解釈して48x48ピクセルの2値画像を表示します。&lt;/p&gt;
&lt;p&gt;モダンなソフトウェアというのは、&lt;a href="http://sylpheed.sraoss.jp/"&gt;Sylpheed&lt;/a&gt;や&lt;a href="https://userbase.kde.org/KMail"&gt;Kmail&lt;/a&gt;、または&lt;a href="http://www.mew.org/"&gt;Mew&lt;/a&gt;などのモダンなソフトウェアです（下画像はSylpheed）。Thunderbirdは対応するプラグインが消えてしまっており&lt;sup id="fnref:removedplugin"&gt;&lt;a class="footnote-ref" href="#fn:removedplugin" title="ThunderbirdでX-Faceを表示して遊ぶ, MessageFaces"&gt;2&lt;/a&gt;&lt;/sup&gt;、もはやモダンな電子メールクライアントではないようです。&lt;/p&gt;
&lt;p&gt;&lt;img alt="SylpheedでX-Faceアイコンが表示されている様子" height="200" src="/images/xface/sylpheed.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;なお、さらに新しい規格として、base64エンコードされたPNG画像を付加する&lt;code&gt;Face:&lt;/code&gt;ヘッダも存在します&lt;sup id="fnref:face"&gt;&lt;a class="footnote-ref" href="#fn:face" title="The Face Header"&gt;3&lt;/a&gt;&lt;/sup&gt;。サイズはX-Face同様48x48に固定されてしまいますが、X-Faceとは違ってカラー画像を用いることができます。こちらもThunderbirdにはまともなプラグインが残っていません。&lt;/p&gt;
&lt;p&gt;また、複数の&lt;code&gt;X-Face:&lt;/code&gt;ヘッダを用いてカラー画像、48x48より大きな画像、アニメーションなどを表現する規格も存在しますが、モダンすぎてほとんどサポートされていません。nao.bird.to: Software Archive&lt;sup id="fnref:naobirdto"&gt;&lt;a class="footnote-ref" href="#fn:naobirdto" title="http://nao.bird.to/soft/index.html"&gt;1&lt;/a&gt;&lt;/sup&gt;には動作するPerlスクリプトがあるようです。&lt;/p&gt;
&lt;h2 id="x-face-compatible"&gt;X-Face compatibleなアイコンを作る&lt;/h2&gt;
&lt;p&gt;モダンでクールなX-Faceに対応するためには、48x48の2値画像を作る必要があります。2値ビットマップを表現するにはXBM画像が便利です。&lt;/p&gt;
&lt;h3 id="_1"&gt;アイコンを持っていない場合&lt;/h3&gt;
&lt;p&gt;簡単です。&lt;code&gt;bitmap -size 48x48&lt;/code&gt;でドットを打ちましょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ビットマップエディタで「あまね」と打っている様子" height="369" src="/images/xface/bitmap.png" width="750"&gt;&lt;/p&gt;
&lt;p&gt;出来上がった&lt;code&gt;amane.xbm&lt;/code&gt;はこんな感じになります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="cp"&gt;#define amane_width 48&lt;/span&gt;
&lt;span class="cp"&gt;#define amane_height 48&lt;/span&gt;
&lt;span class="k"&gt;static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;unsigned&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;amane_bits&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0x0c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x98&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x11&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0xf0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x1f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x04&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x04&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0xc0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x1f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x04&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x78&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0xf0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x04&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x0c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0xcc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x85&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x1f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0xd8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x1b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0x44&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x04&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x3c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0xc4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x04&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x1e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0x7c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x04&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x13&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x3e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x0f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x7a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0x40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0xc0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x3c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x4e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0xc4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x07&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="cm"&gt;/* snip */&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mh"&gt;0x00&lt;/span&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="_2"&gt;アイコンを持っている場合&lt;/h3&gt;
&lt;p&gt;より簡単です。&lt;a href="http://roguelife.org/x-face/make.xhtml"&gt;How to make X-Face&lt;/a&gt;や&lt;a href="http://roguelife.org/x-face/make-xface.html"&gt;スナフキンのできるまで&lt;/a&gt;などを参考に、X-Face compatible加工について学びましょう。元画像にもよりますが、手で打たなければならないドットの量は少なくなると思います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;加工前の画像:&lt;br&gt;
&lt;img alt="水色の背景に「見たい！知りたい！原子力」という白抜きの文字" height="250" src="/images/xface/xface002.jpg" width="250"&gt;&lt;/li&gt;
&lt;li&gt;グレースケールにした上で、48x48に縮小:&lt;br&gt;
&lt;img alt="上記の画像を48x48ピクセルに縮小し、グレースケールにしたもの" height="48" src="/images/xface/xface003.png" width="48"&gt;&lt;/li&gt;
&lt;li&gt;いい感じにドットを打つ:&lt;br&gt;
&lt;img alt="上記の画像を白黒2値にしたもの" height="48" src="/images/xface/xface004.png" width="48"&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;なお、&lt;a href="http://www.dairiki.org/xface/"&gt;Online X-Face Converter&lt;/a&gt;を用いれば、手での調整が効かない代わりに自動で48x48の2値画像に変換できます。さらに、変換した画像のX-Face表現も取得できるのでとても便利ですね。&lt;/p&gt;
&lt;h2 id="x-face-compatible_1"&gt;X-Face compatibleなアイコンを使う&lt;/h2&gt;
&lt;p&gt;出来上がったアイコンを自分で眺めて楽しむのもいいですが、ぜひ色々なところで使ってみましょう。&lt;/p&gt;
&lt;h3 id="x-face_1"&gt;&lt;code&gt;X-Face:&lt;/code&gt;ヘッダとして使う&lt;/h3&gt;
&lt;p&gt;簡単です。先述した&lt;a href="http://www.dairiki.org/xface/"&gt;Online X-Face Converter&lt;/a&gt;でX-Face形式に変換できます。もしサーバにアイコンをアップロードするのが不安なら、&lt;a href="http://www.linuxfromscratch.org/blfs/view/cvs/general/compface.html"&gt;Compface&lt;/a&gt;に同梱されている&lt;code&gt;xbm2xface.pl&lt;/code&gt;を用いてX-Face表現に変換できます。&lt;/p&gt;
&lt;p&gt;&lt;img alt="「見たい！知りたい！原子力」の48x48ピクセル白黒2値画像" height="48" src="/images/xface/xface004.png" width="48"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;X-Face: DE6CX2~b!6.CnZ15hL{G^c1rE}n2cHH6eKU&amp;#39;!cO$^0A&amp;amp;9I*I~1e&amp;amp;`NV3gb%ypxhVEP.I3Q*
 S**R0WR/IC&amp;lt;flQrWkTfeb&amp;#39;HoIfT/&amp;#39;6z08VC-T&amp;#39;:;z%Sa,i;{YR,YQ`Lksj&amp;amp;`9?7&amp;amp;%EeXeL6v\2][YX
 h#{XN5@~|7?dKl8j_dv84S,d9^T\m&amp;gt;vSRyaxAwp&amp;amp;wYFqfRUHsC?U?Dak4&amp;quot;X@k$mq:/6ko4G
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;お使いのモダンな電子メールクライアントやニュースリーダに&lt;code&gt;X-Face:&lt;/code&gt;ヘッダを設定しましょう。送信時に&lt;code&gt;X-Face:&lt;/code&gt;ヘッダが付加されているのが確認できると思います。&lt;/p&gt;
&lt;h3 id="_3"&gt;画像として使う&lt;/h3&gt;
&lt;p&gt;より簡単です。お気に入りの画像編集ソフトウェアで適当なサイズに拡大しましょう。ピクセルがボケてしまうので補間機能を用いてはいけません。GIMPを使うか、ImageMagickで&lt;code&gt;convert -scale 480x icon.xbm icon.png&lt;/code&gt;などとするのがおすすめです。変換後のサイズは48の倍数にすると良いでしょう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="「見たい！知りたい！原子力」の48x48ピクセル白黒2値画像を240x240ピクセルに拡大したもの" height="240" src="/images/xface/xface005.png" width="240"&gt;&lt;/p&gt;
&lt;h2 id="_4"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;X-Face compatibleでモダンなアイコンをTwitterやASKfmやSarahahやPeingなどに設定すると、解像度が高くてカラフルなアイコンを使っている友達に一歩差をつけることができるといいですね。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:naobirdto"&gt;
&lt;p&gt;http://nao.bird.to/soft/index.html&amp;#160;&lt;a class="footnote-backref" href="#fnref:naobirdto" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:removedplugin"&gt;
&lt;p&gt;&lt;a href="https://forums.mozillazine.jp/viewtopic.php?f=29&amp;amp;t=8163"&gt;ThunderbirdでX-Faceを表示して遊ぶ&lt;/a&gt;, &lt;a href="https://addons.mozilla.org/ja/thunderbird/addon/messagefaces/"&gt;MessageFaces&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:removedplugin" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:face"&gt;
&lt;p&gt;&lt;a href="http://quimby.gnus.org/circus/face/"&gt;The Face Header&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:face" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>呪術</title><link href="https://ama.ne.jp/post/switch/" rel="alternate"/><published>2017-12-10T00:10:00+09:00</published><updated>2017-12-10T00:10:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-12-10:/post/switch/</id><summary type="html">&lt;p&gt;告白&lt;/p&gt;</summary><content type="html">&lt;p&gt;すみません。お隣よろしいですか？　あなたもお一人なのですね。&lt;/p&gt;
&lt;p&gt;そうですね。少し気になったというか、昔の知り合いとよく似ていましたので。&lt;/p&gt;
&lt;p&gt;聞きたい、ですか？　別にかまいませんが、すごく面白い話ではないのです。ただ、呪術から抜け出せない滑稽な大人のお話ですから。いいですか？　それなら……ミックス・ナッツの皿も空になってしまいましたし、お酒のあてくらいにはなるかもしれません。&lt;/p&gt;
&lt;p&gt;最初に少しだけ、手を見せてくださいますか？　あなたのような女性の手、好きなんです。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;綺麗な手……ですが、ここがちょっと硬くなっていますね。なるほど、ペンだこですか？　真面目だったんですね。&lt;/p&gt;
&lt;p&gt;いえいえ。怪しい宗教だとか、妙なマルチ商法に引き込もうというわけではないのです。&lt;/p&gt;
&lt;p&gt;呪術という言葉選びが悪かったですね。&lt;/p&gt;
&lt;p&gt;昔、友達と色んなごっこ遊びをしませんでしたか？　横断歩道の白い部分を踏み外すと、鮫に食べられてしまうとか。あるいは、影だけを踏んで歩かないと、太陽に身体を焼かれてしまうとか。こういうおまじないの類を、呪術と呼ぶ癖が付いているみたいで。&lt;/p&gt;
&lt;p&gt;子供のおふざけって不思議ですよね。わざと鮫や太陽のような荒唐無稽なものを据えることで、自分を守っているんです。横断歩道を踏み外したら三日以内に交通事故、では気味が悪くて楽しくプレイできませんからね。&lt;/p&gt;
&lt;p&gt;私の先輩も、本当はそうやって無茶な報復を設定することで笑い話で収めようとしたのかもしれません。&lt;/p&gt;
&lt;p&gt;先輩は美しい人でした。中学二年生の少し浮ついた私を、すっかり部室に引き止めて離しませんでした。授業が終わるとすぐ部室に向かいましたし、彼女の制作が終わるまで私もキビキビと何もせず時間を潰し続けました。筆を持つ先輩の真剣な横顔も、私に手を振る先輩の笑顔も、夕陽を反射してきらきらしていたのをよく覚えています。&lt;/p&gt;
&lt;p&gt;思い出話が過ぎましたね。すみません。&lt;/p&gt;
&lt;p&gt;先輩には友人と呼べる存在がおよそいなかったような気がするのです。ですから先輩は、初めてできた後輩の私に対しても、距離を測りあぐねていました。友人のように接するわけでもなく、厳しい先輩を演じるわけでもなく。今思えば、初めは随分と丁寧で他人行儀でした。&lt;/p&gt;
&lt;p&gt;少し打ち解けてからも、先輩は私にどこか遠慮していました。私との関係について悩み抜いた末に、友人のいない先輩らしい突飛な予防線を張ったのです。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;これ、分かりますか？　先輩がこのスイッチをケース入りのピンクッションに挿して寄越してから、ずっとこのままなのです。&lt;/p&gt;
&lt;p&gt;まるで、昆虫標本みたいでしょう？　こういうものはタクタイルスイッチというんです。中に金属のばねが入っていて、本当はこの白い部分を押すとカチカチと小気味のいい音を立てる代物なのです。ここにある赤い色をした丸い穴は、きっと配線して電気を流すと光るのでしょう。&lt;/p&gt;
&lt;p&gt;私はこれを先輩に貰ってから、一度も押せていません。当然、電池も繋いでいません。これが私の呪術……おまじないです。&lt;/p&gt;
&lt;p&gt;先輩はこのスイッチに自分の命を預けたのです。先輩の命の重さが、今まで私にずっとのしかかっています。「私のことが嫌になったら、このスイッチを押してね」と先輩は言いました。こんな小さな部品で先輩を抱えきれるだなんて、心から信じているわけではありません。&lt;/p&gt;
&lt;p&gt;でも、怖いのです。他でもない、先輩自身がそう言ったのですから。&lt;/p&gt;
&lt;p&gt;私はこのスイッチを貰ってから、ずっと引き出しの奥にしまっていました。先輩を殺そうだなんて思ったこともありませんでしたから。&lt;/p&gt;
&lt;p&gt;しかし、今はもう、押したくて押したくて仕方ないのです。本当はずっと引き出しにしまっておくべきなのでしょう。でも、このスイッチを失うことの方が何倍も恐ろしいのです。&lt;/p&gt;
&lt;p&gt;先輩が知らない人と笑って歩いていたらどうしようと、たまに思うのです。先輩だってもう誰かと付き合ったり、結婚したりできるようになっているでしょうから。そういう時は、これを押せば死ぬのだと自分を落ち着かせます。私のものにならないのなら死んでしまえと、本気で思うこともあるのです。&lt;/p&gt;
&lt;p&gt;本当に押したりはしませんし、押しても本当に死ぬことはないでしょう。分かっています。おまじないとは、そういうものです。&lt;/p&gt;
&lt;p&gt;同じようなスイッチをいくつか買ったりもしました。あのカチカチという音は少しだけ心が落ち着きますが、スイッチを押すだけでは抑えきれないほどに心が騒ぐ時があるのです。そうして、週末になるとこういうバーに来てしまうのです。もしかしたら、先輩がいるのではないかと。&lt;/p&gt;
&lt;p&gt;ねぇ、ここ、見てください。あなたと同じ、スイッチのたこができてしまいました。&lt;/p&gt;
&lt;p&gt;先輩。私の呪い、解いてくださいますよね？&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img alt="「PUSH!」や「押す」と印字された赤いラベルが貼られている赤いスイッチ" height="315" src="/images/switch/top-switch.png" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://adventar.org/calendars/2268"&gt;百合SS Advent Calendar 2017&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>曖昧</title><link href="https://ama.ne.jp/post/ruine-2/" rel="alternate"/><published>2017-12-06T00:00:00+09:00</published><updated>2017-12-06T00:00:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-12-06:/post/ruine-2/</id><summary type="html">&lt;p&gt;ストロングゼロ（強い）&lt;/p&gt;</summary><content type="html">&lt;p&gt;（&lt;a href="/post/ruine-1/"&gt;前半&lt;/a&gt;から続く）&lt;/p&gt;
&lt;h2 id="_1"&gt;海&lt;/h2&gt;
&lt;p&gt;辺りはすっかり暗くなってしまった。影に潜んで動かなかったクラゲの群れもすっかり自由に動き出し、夜の空気が一帯を支配する。そろそろ夜露を凌げるような場所を見つけないと、闇に飲まれて死んでしまいそうだわ。&lt;/p&gt;
&lt;p&gt;それにしても、霧が強い。少し歩くと顔がほんのり湿るというか、妙にべとべとする。お肌に悪くて仕方がないわ。服も湿って気持ちが悪いし、本当に海辺をずっと歩いているみたい。ここに住んでた人たちはよほどのマゾ、ってやつなのね。&lt;/p&gt;
&lt;p&gt;「まり、向こうに明かりが見えるよ」&lt;/p&gt;
&lt;p&gt;「あら、ほんとね。電気が通っているのかしら」&lt;/p&gt;
&lt;p&gt;中心部からはだいぶ北に来た。これ以上進んでもより野営に適した場所はないだろうと思いつつ、僅かな期待に二人とも足を止めることはない。そもそもクラゲが奪っていくのは文字くらいだろうから、いざとなったらどこでテントを張ってもいいだろうというほんのりした安心感もあった。&lt;/p&gt;
&lt;p&gt;そんな中で訪れた突然の変化に、私は少し面食らう。放棄された街の中で、陽が落ちても街灯が機能しないのは当然のことだ。宿を探している私たちが都合よく電気の通っているエリアに辿り着くなんて、嬉しさと同時に都合の良すぎる流れに対しての不安が入り混じるのを止められない。&lt;/p&gt;
&lt;p&gt;そんなことを考えながら坂を降り切ると、目の前には不思議な光景が広がっていた。な、なによこれ……。&lt;/p&gt;
&lt;p&gt;「すごいわ！　海の底みたい！」&lt;/p&gt;
&lt;p&gt;辺り一面が真っ青な街灯で照らされている。濃い霧も相まって、そこら中の空気が真っ青に染まっているみたい。テーマパークか何かなの？&lt;/p&gt;
&lt;p&gt;「建物も密集してるみたいだね」&lt;/p&gt;
&lt;p&gt;「これ、昔の寄宿舎でしょう？　やっぱり炭鉱でもあったのかしら」&lt;/p&gt;
&lt;p&gt;海底に煌々と輝く電灯と並んで、五階建てくらいの建物がいくつか並んでいる。それぞれの建物には白い文字で番号が振られていて、まさに管理社会って感じね！　みんなまとめてどこかに引っ越したのかもしれないわ。&lt;/p&gt;
&lt;p&gt;「ここらへん、くらげの群れも来ないみたいだよ」&lt;/p&gt;
&lt;p&gt;言われてみると、急に足取りが軽くなったというか、地面を注視してクラゲの群れを跨いで歩くことがなくなった気がする。彼らの目（そもそも目はどこにあるのかしら）にはマグライトが珍しいものに映るらしく、さっきまではまるでクラゲのショーをスポットライトで照らしている気分だった。不思議ね。クラゲは暖色が好きなのかしら？&lt;/p&gt;
&lt;p&gt;軽くなった足に任せて、私はアスファルトの上でステップを踏んだ。&lt;/p&gt;
&lt;p&gt;「あぁ、私、海辺のホテルに泊まるのが夢だったの！　この際、もう海底のホテルでも良いわ！」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;海の底ホテルから適当な部屋を探して忍び込む。客室は狭いながらも、寝袋を敷いて寝るには十分すぎるくらいには綺麗だった。中には木製のベッドが一つ置いてあって（もちろんマットレスは外してあって使い物にならないけど）、さらに洗面台も付いていて昔は室内まで水道が通っていたらしい。&lt;/p&gt;
&lt;p&gt;私たちは寝床の準備をしながら、手帳とかカメラをクラゲに見つからないようにリュックの底へ押し込んだ。おそらくここまでクラゲは来ないと思うけど、クラゲをいっぱい踏んでクラゲワインを作る夢でも見ちゃいそうだわ。&lt;/p&gt;
&lt;p&gt;眠る前に、私たちはいくつか確認と推理をした。&lt;/p&gt;
&lt;p&gt;とりあえず、この辺りにいるクラゲは文字を餌にしているらしい。あらゆる看板から文字が消えたり薄れているのはそのせいだろう。餌というか、身体に溜め込んで何かに役立てているのかもしれないという話もした。&lt;/p&gt;
&lt;p&gt;彼らが食べるのは、言語を問わずより抽象化された文字だけで、矢印とかピクトグラムの類は食べないようだ。あくまで文字の情報に注目しているのかも。&lt;/p&gt;
&lt;p&gt;私の案は、スクーパーズが置いていった平和的な侵略兵器。文化的なものを欲しがるっていうのは、スクーパーズとすごく似てるもの。どうしてこの街から出ようとしないのかはよく分からないけど。&lt;/p&gt;
&lt;p&gt;りとの案は、突然変異したクラゲの末裔。北の方は放射線が強いという話をことこから聞いたのだという。そうだとしたら、白子たちともちょっと近い生き物ってことになるわね。認めたくないけど。&lt;/p&gt;
&lt;p&gt;とりあえず、明日の朝食からお互いの好物を一品を賭けてみることにした。私は合成グレープのシロップ漬けのビン詰を、りとは缶詰の魚肉ソーセージをベッドのフレームの上に置く。&lt;/p&gt;
&lt;p&gt;外からの青い光に照らされて、缶詰のパッケージに描かれた笑顔の魚（おそらくマグロ）のおかしらが、私を睨むように輝いた。&lt;/p&gt;
&lt;p&gt;「りと、ごめんね。クラゲ潰しちゃって」&lt;/p&gt;
&lt;p&gt;「え、どうして？」&lt;/p&gt;
&lt;p&gt;私の声に反応して、りとが寝袋の中でがさがさ動く音がする。寝袋の中で微睡みながら、私は寝言のように呟いた。&lt;/p&gt;
&lt;p&gt;「気に入ってたみたいだったから。可愛いって言ってたじゃない」&lt;/p&gt;
&lt;p&gt;「んー……可愛いものをざくざく切るのって、割と面白くない？」&lt;/p&gt;
&lt;p&gt;なんかゲームみたいだし、と続けるりと。この子がレトロゲー狂だったのを、今やっと思い出したわ。彼女の目にはロールプレイング・ゲームのモンスターにでも映っていたのかしら。反省して損したかも。&lt;/p&gt;
&lt;p&gt;「まぁ、とりあえず、ことこを連れてこなくてよかったわね」&lt;/p&gt;
&lt;p&gt;「そうだね。本を食べられちゃったらショックで倒れちゃいそうだし」&lt;/p&gt;
&lt;p&gt;私も、白子たちを食べちゃうクラゲがいたら絶対に家を出たくないもの。そんなことを考えながら、いつの間にか私は眠りについていた。&lt;/p&gt;
&lt;h2 id="_2"&gt;曖昧&lt;/h2&gt;
&lt;p&gt;「まり……ねぇ、まり！　地下への入り口、見つけちゃったかも」&lt;/p&gt;
&lt;p&gt;揺らされる身体と名前を呼ぶ声に目を擦ると、りとがスケボーを抱えて私を目覚めさせようとしていた。窓の外はまだ深い夜なのに、りとはすっかり探検装備に着替えている。&lt;/p&gt;
&lt;p&gt;「あのね、寝不足はお肌に良くないのよ……」&lt;/p&gt;
&lt;p&gt;寝ぼけながら彼女を落ち着かせようにも、未知の発見に興奮している私たちは誰にも止められないってお互いによく分かっている。私は快眠を早々に諦めて、最低限の装備を整えてから部屋を出ることにした。&lt;/p&gt;
&lt;p&gt;それに、一人で地下なんかに潜って行方不明になったら私だって困っちゃうもの。&lt;/p&gt;
&lt;p&gt;「う……寒いわね」&lt;/p&gt;
&lt;p&gt;「そう？　走り回れば温まるよ」&lt;/p&gt;
&lt;p&gt;「夜中にいきなり起こされた身にもなってちょうだい」&lt;/p&gt;
&lt;p&gt;素直に部屋に戻ってもう一枚、薄いコートを羽織ることにした。&lt;/p&gt;
&lt;p&gt;「こんな寒い夜によく出かける気になれるわよね、いつも」&lt;/p&gt;
&lt;p&gt;「冷たい空気で肌がびりびりすると、生きてるって感じがしない？」&lt;/p&gt;
&lt;p&gt;「スケボー乗りの宿命か何かなの？」&lt;/p&gt;
&lt;p&gt;寒い冬はコートにマフラーを装備して、肩を縮めて歩くくらいしかやり過ごす方法を知らないわ。生きてるって感じからはほど遠い。羨ましい限りね。&lt;/p&gt;
&lt;p&gt;五分くらい歩いたところに、りとのいう「地下への入り口」がぽっかりと口を開けていた。&lt;/p&gt;
&lt;p&gt;「入るの？　ここを？」&lt;/p&gt;
&lt;p&gt;「入るの。ここを」&lt;/p&gt;
&lt;p&gt;りとは私の返事を待たずにさっさと地面へ潜っていく。もう、分かったわよ！&lt;/p&gt;
&lt;p&gt;「ちょ、ちょっと待ってよ！」&lt;/p&gt;
&lt;p&gt;りとがはしごを下りきってコツコツ歩く音を聞きながら、私も金属のはしごをキュイキュイ言わせながら足早に下りていく。地下は外よりも暖かいようだ。手を突いたコンクリートむき出しの床は少しひんやりしている。&lt;/p&gt;
&lt;p&gt;「すごいよ、まり！」&lt;/p&gt;
&lt;p&gt;ごうんごうんという機械音と共に、目の前が明るくなった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="上から青い照明で照らされている、中でクラゲが泳ぐ大きな円形の水槽" height="315" src="/images/ruine/top-kurage-2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;「クラゲが水の中で生きてるよ！」&lt;/p&gt;
&lt;p&gt;「え、えぇ……そうね」&lt;/p&gt;
&lt;p&gt;振り返って嬉しそうな顔をするりと。壮大な眺めに一瞬言葉に詰まってしまう。&lt;/p&gt;
&lt;p&gt;私たちを迎えたのは、直径五メートルくらいの大きな円形の水槽だった。上から青い照明で照らされて、辺り一帯をほのかに冷たい光が覆っている。目に刺さるような光を放つ地上の街灯とは違って、身体を包み込むような優しい刺激に少し安心する。&lt;/p&gt;
&lt;p&gt;りとの赤いヘルメットにもその水色が差して不思議な色に輝いている。駆け寄るりとを眺めながら、私も歩いて水槽に近づいていく。&lt;/p&gt;
&lt;p&gt;初めて見るクラゲは、ふわふわで曖昧だ。陸のクラゲよりも小さくて、傘は大きいやつでも二十センチメートルくらい。光をよく通すその身体は、いつ絶滅してもおかしくないほどに儚げで、ずっと見ていると壊れてしまいそう。泳いでいるクラゲは傘を伸ばしたり縮めたりしながら上へ進んでいくけれど、その動きで身体がばらばらになってはしまわないかと心配になる。&lt;/p&gt;
&lt;p&gt;今日は目に刺激が強い一日だわ。帰ったら目薬を差さないとね。&lt;/p&gt;
&lt;p&gt;「あら、これは……りと、これを見て」&lt;/p&gt;
&lt;p&gt;ふと床に目を下ろすと、青い照明をよく反射する白い紙が散らばっているのに気付いた。&lt;/p&gt;
&lt;p&gt;「なんだろう？　日記かな」&lt;/p&gt;
&lt;p&gt;この街で初めて見るまともな文字かもしれない。水槽のそばに散乱していた手記のページには、およそこういうことが書かれていた。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;スクーパーズから文化を防衛するため、我々は自律的に文化を内包して保護する機構についての研究を開始した。素早く移動させるか、強靭な戦闘力を与えるか、あるいは擬態してスクーパーズに見つからないようにすればよいだろう。&lt;/p&gt;
&lt;p&gt;クラゲの遺伝子改良が進み、陸上で生活できる種も徐々に増えていた。ここから文化保護機構となりうる種をいくつか選別していこうと思う。水中で生活するものも、知能を改善して司令塔として使えることが明らかになってきた。&lt;/p&gt;
&lt;p&gt;文字を飲み込んだクラゲから文章を再構成するのは非常に難しいということが分かってきた。十数年越しに研究の根幹に関わる大きな問題が発覚するとは、ひどい夢でも見ているのか？　その直後、暴走したクラゲが大学を襲う事故が多発して多くの資料が失われた。たちどころに我々の立場は悪化し、すぐに研究は中止となってしまった。&lt;/p&gt;
&lt;p&gt;街中にクラゲが解き放たれ、人間が文化的な生活を送るのが難しくなってきた。この手記も運が悪ければもうクラゲの胃の中という可能性もあるだろう。駆除も間に合わない。我々は、取り返しのつかない研究に加担していたらしい。&lt;/p&gt;
&lt;p&gt;水槽の生命維持機能を停止すれば、文化保護機構への指令も途絶えるだろう。しかし、コントロールを失ったクラゲが、そのまま自然消滅するのかあるいは暴走して街を破壊し尽くすかはまだ分かっていない。市民はその答えを出すより先に、この街を捨てることになった。tear-downの際は細心の注意を払ってほしい。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;文化を壊して守ったことにしようだなんて、昔の人が考えることは本当に分からないわ。かなり苦労していたみたいだけど、結局逆襲されちゃってるみたいだし。&lt;/p&gt;
&lt;p&gt;「あんなクラゲ、一体一体ナイフで切っていけばすぐ解決したんじゃない？　平和主義者だったのかしら」&lt;/p&gt;
&lt;p&gt;「昔はすごく速くて、もっと強かったのかもね」&lt;/p&gt;
&lt;p&gt;あんな大きなクラゲが、赤黒い傘を素早く揺らして体当たりでもしてきたら、気絶しちゃうかも。&lt;/p&gt;
&lt;p&gt;「ねぇ。あなたたちが、ここの人たちをみんな追い出しちゃったの？」&lt;/p&gt;
&lt;p&gt;水槽の壁に手を置いて軽く撫でると、不規則に泳いでいたクラゲの何匹かが手に寄ってふわふわしだした。意思があるような、ないような。りとも同じように手でクラゲを操りながら、それを穏やかな目で眺めている。&lt;/p&gt;
&lt;p&gt;二人とも未知の発見に対する驚きや喜びを味わえずにいた。もちろん、どちらも賭けに外れたせいではない。&lt;/p&gt;
&lt;p&gt;「で、どうする？　りと。壊しちゃう？」&lt;/p&gt;
&lt;p&gt;水槽の横には大きなスイッチが設置されていて、レバーを下げるためには赤いプラスチックのロックを取り除かなけれならない。ロックには「危険・生命維持装置メインスイッチ」と書かれている。クラゲへの給餌や水槽の温度調節のスイッチなのだろう。&lt;/p&gt;
&lt;p&gt;「やめとこうよ。今はもう、誰にも迷惑を掛けていないんだし」&lt;/p&gt;
&lt;p&gt;「同感ね。同じクラゲとは思えないわ。こんなに弱々しくて儚げに見えるんだもの」&lt;/p&gt;
&lt;p&gt;秘密の記された紙束を軽くまとめて、元の場所に戻す。これは報告書に載せないでおこう。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;水槽の周りをもう一度よく探索してみたけど、手記以外には危険もなければ珍しそうなアイテムも見当たらなかった。今回は収穫なしかしら。&lt;/p&gt;
&lt;p&gt;当分、クレープは控えなきゃ。残念ね。&lt;/p&gt;
&lt;p&gt;「じゃあ、軽く報告をまとめてから戻りましょうよ。あ、その前に夜食が良いかしら？」&lt;/p&gt;
&lt;p&gt;私がそう呼びかけると、しんぴてきー……といつもより間の抜けた声が下から聞こえてくる。ふと視線を下ろすと、りとが座り込んで銀色のロング缶に口を付けていた。青い照明が反射してギラギラと輝いている。&lt;/p&gt;
&lt;p&gt;「ちょっと、りと！　外にいる時はお酒は飲まないでって言ったわよね」&lt;/p&gt;
&lt;p&gt;冷たい缶とは対照的な、りとの紅潮した顔が私を見上げる。&lt;/p&gt;
&lt;p&gt;「別にいいじゃない。もう安全って分かったんだし」&lt;/p&gt;
&lt;p&gt;私が呆れた顔をしていると、楽しげな声で「攻略完了！」とＶサインしてみせる。右手には缶を持ったままだ。&lt;/p&gt;
&lt;p&gt;そのまま視線を交わして十秒くらい。りとはばつが悪そうな表情で私の脚に寄りかかって小さくにゃあ、と鳴いた。ここに猫はいないわよ。りとったら、疲れているのかしら？&lt;/p&gt;
&lt;p&gt;「いきなり敵が襲ってきたらどうするの？　私だけじゃ倒せないわ」&lt;/p&gt;
&lt;p&gt;「だからさっきは飲まなかったじゃん」&lt;/p&gt;
&lt;p&gt;ふてくされた子供みたいにゆらゆら缶を揺らす様子を見ていると、怒りがふつふつと湧いてきた。なんだって、私はこんな辺鄙な水族館に来てまで酔っぱらいの相手をしなきゃならないのかしら！　ほんと、ばかみたい！&lt;/p&gt;
&lt;p&gt;「りと、あんたね！　いつか言おうと思ってたんだけど、そういう安いお酒をがぶがぶ飲むのはやめたほうがいいと思うわ」&lt;/p&gt;
&lt;p&gt;「なんでー？　コスパ最強じゃない」&lt;/p&gt;
&lt;p&gt;りとのお気に入りは、支給品の中でも一番大量生産されていて、一番労働者に人気があって、一番安い酒なのだ。彼女がこういうのが大好きなのは（支給品が配られるたびに最初に手を付けているから）知っていたし、今更お酒の好みに文句を言うつもりもなかった。&lt;/p&gt;
&lt;p&gt;ただ、今日は疲れも相まって本当にイライラしてしまう。急に安心しちゃって、私だって混乱してるの。&lt;/p&gt;
&lt;p&gt;「お酒っていうのはね、もっと高くて美味しいのをちびちび飲むからいいんじゃない」&lt;/p&gt;
&lt;p&gt;「ぶどうジュースをグラスで飲んだって酔えないもん」&lt;/p&gt;
&lt;p&gt;「えーと……すっごく昔の話を、いきなり持ち出さないでくれる？　思い出すのに時間がかかっちゃうから」&lt;/p&gt;
&lt;p&gt;なんなのかしら。中学か高校の頃のおしゃまな私の話を蒸し返してくるとは思わなかった！　分かってる。お互いの趣味に文句を付け始めるといつだって泥沼だ。えぇ……そうだわ。素面の私が一番落ち着かなきゃね。&lt;/p&gt;
&lt;p&gt;ぐいぐいと軽く膝でりとの頬を押してみる。りとは突かれるたびに小さくうめくような笑い声を上げて、その度に大きな缶がぐらぐらと不安定になる。&lt;/p&gt;
&lt;p&gt;「アルコールの作用は気分が大事で……あー、もういい！　それ、私にもよこして」&lt;/p&gt;
&lt;p&gt;「え、飲むの？」&lt;/p&gt;
&lt;p&gt;私がりとの隣に座り込むと、彼女はくすくすと笑いながら首を傾げてそう訊いた。包みを開けた食べかけの魚肉ソーセージをこちらに差し出してくる。&lt;/p&gt;
&lt;p&gt;その声からは、疑問や驚きというよりは、悪い仲間ができたぞとでもいう嬉しさのようなものを感じる。&lt;/p&gt;
&lt;p&gt;でも、それは違うのよ。お酒っていうのは、アルコールに身体を任せてしまうから酔っちゃうの。酔うつもりがなきゃそんなに酔わないし、酔いたいと思っていれば酔ってしまう。私は正気を保ったまま、りとのアルコール摂取量を減らしてあげるつもりなの。&lt;/p&gt;
&lt;p&gt;どう？　すごいでしょ。りとを介抱しなきゃならない重圧を背負ったままで、私が酔うわけがないもの。&lt;/p&gt;
&lt;p&gt;「だって、放っておいたらぜんぶ、飲む気でしょ？」&lt;/p&gt;
&lt;p&gt;「うん。ぜんぶ、飲む気だよ。よく分かったね、まり」&lt;/p&gt;
&lt;p&gt;りとがオウム返しでぜんぶ、と私と同じように強調してみせる。受け取った缶を口に付けて、ぐいと一口。うぅ……この飲みやすい感じが、人間を堕落させる気がして受け付けないのよね。&lt;/p&gt;
&lt;p&gt;「そうね。キャパオーバーで歩けなくなったあなたの介抱、何回もやってるせいかしら」&lt;/p&gt;
&lt;p&gt;「うんうん。まりー、いつもありがとねー……」&lt;/p&gt;
&lt;p&gt;そう言ってから、りとは甘えるように私に寄り掛かる。手の甲に当たる彼女の頬が熱くって、本当に猫でも飼ってる気分よ。&lt;/p&gt;
&lt;p&gt;「まりって、私のこと大好きだもんね」&lt;/p&gt;
&lt;p&gt;「んなっ！　別に、好きなんかじゃないわよ！」&lt;/p&gt;
&lt;p&gt;慌てて横を向くと、とろんとしたりとの熱を帯びた視線とぶつかってしまう。顔が近いわ。顔の半分だけ青い光で照らされて、何だか趣味の悪いカラーリングね。半身だけ吸血鬼にでも支配されちゃったみたい。ハロウィン・パーティーはまだ先よ？&lt;/p&gt;
&lt;p&gt;「うふふ、冗談だよ」&lt;/p&gt;
&lt;p&gt;「もう、冗談ならもっと冗談らしく……」&lt;/p&gt;
&lt;p&gt;あ、あら？　何だか光の境界がぼやけてきたような……&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;頭がふらっとして、気付いたら私もりとの頭にもたれかかっていた。&lt;/p&gt;
&lt;p&gt;「あー、だめね。私も、疲れてるんだったわ」&lt;/p&gt;
&lt;p&gt;疲れは酔いの原因になるのよ。ぼそぼそと自分に言い聞かせてからではもう遅かった。「まり、重いよー」という声が下から聞こえて慌てて頭を起こしてみるけれど、クラゲのふわふわとか、りとの髪のふわふわとか、気持ちいいものが私の意識を包み込んでいく。&lt;/p&gt;
&lt;p&gt;起き上がった頭をゆっくり倒してりととこつ、と頭を合わせると、今度は収まりが良かったらしく機嫌の良い鼻歌が聞こえてくる。私のほうが少し身長が大きいから（ほんの五センチくらいね）、まるでお店の真ん中にあるロボ・スピーカーに寄りかかって音楽を聴いているみたい。&lt;/p&gt;
&lt;p&gt;「昔のホテルには、くらげがいたのかな？　こんなに穏やかで、落ち着いてて……」&lt;/p&gt;
&lt;p&gt;クラゲを見つめるりとの瞼が次第に閉じていくのが見える。彼女の脳裏には、どんなクラゲが映っているだろう。青く光って、水槽をぐるぐる回り続けるだけの存在。そんなの、原宿にはいなかったわ。&lt;/p&gt;
&lt;p&gt;この世界の端っこみたいな場所で、クラゲは何を考えているのかしら。ここで私は、何と向き合わなきゃいけないのかしら。原宿の夜を闊歩しても入り込めないような思考に、今なら没入できる気がした。&lt;/p&gt;
&lt;p&gt;もしも地球がここを残して消えてしまったら、私はりとと世界の終わりまで二人きりだ。こんな綺麗な隠れ家、スクーパーズには見つけられたくないけれど、いつかは見つかってしまうだろう。そう考えると、この場所をことこに知られるのさえ、ひどく怖くなってきた。&lt;/p&gt;
&lt;p&gt;もし、ここにいるのがりととことこだったら。私は破滅を願うのかしら？　ＰＡＲＫで一人、もう意味のないレア・アイテムに囲まれて。&lt;/p&gt;
&lt;p&gt;私が何も答えずにいると、そのまま静かな時間が流れていく。ポンプの動く音が耳に障るくらいには静かで、お互いの鼓動さえも共有できてしまいそうだ。&lt;/p&gt;
&lt;p&gt;「ね、まり――」&lt;/p&gt;
&lt;p&gt;と、頭を起こしたりとが私の耳に吹きかけるように囁いた。&lt;/p&gt;
&lt;p&gt;「いや。やめて」&lt;/p&gt;
&lt;p&gt;吐息まで熱を帯びたその声が、私の頭にじわりと広がって思考が止まりそうになる。身体がほのかに温かくなるのを意識しながら、私は嫌な予感を拭えずに彼女の言葉を遮ってしまう。&lt;/p&gt;
&lt;p&gt;「――ちょっとだけ、一回だけしよ？」&lt;/p&gt;
&lt;p&gt;「い・や・よ！」&lt;/p&gt;
&lt;p&gt;先っちょだけだからーと言いながら、りとが缶を持ったまま私の首に腕を回す。りとの腕は思ったよりも冷たくって、私の体温まで上がっているのを否が応でも感じてしまう。あぁ、私の大事な友人はもう随分と（私もだいぶキているけれど）曖昧になっているみたいね。だから外ではお酒を飲まないでって言ってるのに！&lt;/p&gt;
&lt;p&gt;「下品なことを言うのはやめて！　それに……ことこが怒るわよ？」&lt;/p&gt;
&lt;p&gt;「うん。だからちゃんと内緒にしてね、まり」&lt;/p&gt;
&lt;p&gt;りとが指に人差し指を当ててウィンクをした。三人でいつも一緒にやってきたのに、二人だけの秘密だなんて……浮気みたいなものじゃない？　ことこが悲しそうな顔をしているのを想像して、嫌になる。とにかく私、隠し事とかそういうの苦手なんだけど。&lt;/p&gt;
&lt;p&gt;作った秘密は、消せないんだもの。&lt;/p&gt;
&lt;p&gt;「私ね、仲間外れは嫌なのよ。りとも分かるでしょ？　りとだって、私がことこと、その……こういうことをしてたら、嫌でしょ？」&lt;/p&gt;
&lt;p&gt;「んー、別に気にしないかも。だってまり、分かりやすいもん」&lt;/p&gt;
&lt;p&gt;「な、何よそれっ！」&lt;/p&gt;
&lt;p&gt;まるで考えていることが全部見透かしているようなことを言う。まぁ確かに、感情をいつも隠せずにいる自覚はあるけれど、だからって……。&lt;/p&gt;
&lt;p&gt;分かりやすいのは私だけで、実は私の知らない間に二人が私に言えないようなことをしているんじゃないかって、たまに心配になる。二人の間に何も秘密がないとして、私を中心に三角関係ができていたとしても、それはそれで面倒そうだけれど。&lt;/p&gt;
&lt;p&gt;「あ、分かった！　まり……ことこと、えっちしたいんだ？　ふふ、面白い」&lt;/p&gt;
&lt;p&gt;「どうしてそうなるのよ！　お酒に飲まれて適当なこと言うのやめてってば」&lt;/p&gt;
&lt;p&gt;「まり、私のこときらいなの……？」&lt;/p&gt;
&lt;p&gt;酔ったりとが繰り出す脈絡のない話も、いつもは適当に聞き流せば済むはずだけど、今回は答え一つで簡単に貞操が危うくなってしまうと思うと一人で緊張してしまう。じっと私を見つめる彼女の視線に耐えきれなくなって、私はそろそろと目を逸らす。&lt;/p&gt;
&lt;p&gt;「きらいじゃ、ないわ。一緒に暮らしてるんだもの。りとのことも好きだし、ことこだって好きよ」&lt;/p&gt;
&lt;p&gt;「じゃあいいじゃん。ほら、もっと飲んで気持ちよくなろ？」&lt;/p&gt;
&lt;p&gt;「だから、ことこが――んむっ！」&lt;/p&gt;
&lt;p&gt;りとが目を離した隙に、いとも簡単に私の唇を奪っていた。唇の熱が私の顔まで熱くする。忘れられないこの感覚は、やっぱりことこには内緒の気持ちになってしまうのだろう。&lt;/p&gt;
&lt;p&gt;いつの間にか彼女は膝立ちになって私を押し倒すような格好になっていた。りとは重力に任せて私の口をとろとろでいっぱいにして――ってこれ、お酒だわ！　流し込まれるアルコールの波にむせてしまいそうになるけれど、今咳き込んでしまったら私の顔までびしょ濡れになるのは避けられないので何とか飲み干した。&lt;/p&gt;
&lt;p&gt;私、そんなにお酒に強くないんだけど！&lt;/p&gt;
&lt;p&gt;「あー……待って、りと。分かったから！　まず、服を脱いで」&lt;/p&gt;
&lt;p&gt;りとの肩に手を置いて落ち着かせようとするけれど、一層揺れる視界の中で彼女は私を見てにやにやと笑っている。何よ、私の顔に何か付いてるっていうの？&lt;/p&gt;
&lt;p&gt;「まりって本当にえっちだね。うふ、ふふふ」&lt;/p&gt;
&lt;p&gt;「ち、違うわよ！　帰りの服が無くなったら困るからに決まってるでしょ！」&lt;/p&gt;
&lt;p&gt;あぁ、もう！　二人で探検なんてもうこりごりよ！&lt;/p&gt;
&lt;h2 id="_3"&gt;？？？&lt;/h2&gt;
&lt;p&gt;「りとちゃんまりちゃん。報告書に書けないことはしないほうがいいよ……？」&lt;/p&gt;
&lt;p&gt;「そうかもね。でも、可愛いクラゲの平穏と静寂を守れたから、朝はとっても気分が良かったの！　ね、りと？」&lt;/p&gt;
&lt;p&gt;「ふふ。これからはちゃんと気を付けなきゃね、まり」&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="extra-discussion-topics"&gt;EXTRA: DISCUSSION TOPICS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;エイリアンの襲撃により世界の経済が崩壊した場合、性欲を満たすために廃墟で「レズセックス」をしますか？&lt;/li&gt;
&lt;li&gt;北方への探索に同行せずに留守番したことこの選択は正しかったでしょうか？&lt;/li&gt;
&lt;li&gt;クラゲが外を自由に歩き回る中、地下室でりとの押しに負けたまりの判断は良いと言えるでしょうか？&lt;/li&gt;
&lt;li&gt;もし貴方が、撮影した写真とレア・アイテムを自由に持ち帰れるが、報酬が少ない実験的な部隊に徴兵されたらどう思いますか？&lt;/li&gt;
&lt;li&gt;もし貴方が仲良くしていた二人が付き合ったとして、貴方たち三人の仲を保つことにどういった意味がありますか？&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="extra-exercises"&gt;EXTRA: EXERCISES&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;信念、モラル、お酒の好みが違う人達と友達になってみましょう。&lt;/li&gt;
&lt;li&gt;お店を開いて、よそには無いオリジナルクラゲを販売してみましょう。&lt;/li&gt;
&lt;li&gt;家の近所、街、廃墟で「レズセックスごっこ」をしてみましょう。&lt;/li&gt;
&lt;li&gt;貴方の胸の内や、自分以外の友達同士の関係性に対する不安を綴る日記をつけてみましょう。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="extra-links"&gt;EXTRA: LINKS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.pixiv.net/novel/show.php?id=8978884"&gt;廃墟、曖昧、私とあなた&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://park-harajuku.net/items/571618ff9821cc715e000f8b"&gt;PARK:HARAJUKU Crisis Team! 日本語ver 単行本&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;URAHARA&lt;sup id="fnref:urahara"&gt;&lt;a class="footnote-ref" href="#fn:urahara" title="https://urahara.party/"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/2268"&gt;百合SS Advent Calendar 2017&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:urahara"&gt;
&lt;p&gt;https://urahara.party/&amp;#160;&lt;a class="footnote-backref" href="#fnref:urahara" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>廃墟</title><link href="https://ama.ne.jp/post/ruine-1/" rel="alternate"/><published>2017-12-02T17:02:00+09:00</published><updated>2017-12-02T17:02:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-12-02:/post/ruine-1/</id><summary type="html">&lt;p&gt;ストロングクラゲ（強い）&lt;/p&gt;</summary><content type="html">&lt;h2 id="_1"&gt;クラゲ&lt;/h2&gt;
&lt;p&gt;海水や淡水にいた頃のクラゲは、ふわふわで曖昧なものだったと聞いています。そうですね……少なくとも、わざわざナイフで切り刻む必要はなかったのでしょう。&lt;/p&gt;
&lt;p&gt;クラゲは全て絶滅してしまいました。私たちも、いつか絶滅するのでしょうか？&lt;/p&gt;
&lt;h2 id="_2"&gt;廃墟&lt;/h2&gt;
&lt;p&gt;高架の終点からさらに少し北上すると、中心市街地らしき廃墟に突き当たった。もうこれ以上線路は続いていないようだ。たぶんここが今日の目的地ということになるのだろう。さっきの駅の周りのほうが栄えていたような気もするけど、あそこは建物自体がだだっ広くて何だか探索する気が起きない。&lt;/p&gt;
&lt;p&gt;「あれ？　街なのに、駅が見当たらないね」&lt;/p&gt;
&lt;p&gt;「たぶん、この地下に入ってるのよ。さっきもそうだったでしょ」&lt;/p&gt;
&lt;p&gt;りとが、そうだっけ、と首を傾げた。&lt;/p&gt;
&lt;p&gt;高架に沿って歩いている途中にも、途中の駅の周りにはいくつか打ち棄てられた施設があった。しかし、駅から少し離れただけで商業施設どころか家すらない荒野が広がっているのにはびっくりする。&lt;/p&gt;
&lt;p&gt;どうして離れ離れに街を作って鉄道で繋ぐような真似をしたのかしら。暇を持て余した官僚のダーツゲームか何か？&lt;/p&gt;
&lt;p&gt;「ここからは線路が通ってないわ。どこかに廃バスが残っていてもおかしくなさそうね」&lt;/p&gt;
&lt;p&gt;「あの橋の上とかで、バスが走ってたのかも」&lt;/p&gt;
&lt;p&gt;あっちにも橋があるみたい、と言ってりとが指差す先には大きな陸橋が架かっている。橋の真ん中から石か何かでできた塔が飛び出している不思議なデザインだ。&lt;/p&gt;
&lt;p&gt;双眼鏡でよく見ると、街区から街区へ橋が渡されているけれど、車がすれ違うには幅が足りないようにも感じる。バス専用路なのかしら。&lt;/p&gt;
&lt;p&gt;「そうかもね。じゃあ、少し休んでから探索を――」&lt;/p&gt;
&lt;p&gt;「まり。ここにもくらげがいるみたい！」&lt;/p&gt;
&lt;p&gt;屋根の下にあるベンチに腰掛けようとすると、それを遮るようにりとが楽しげな声を上げた。その声に釣られて下を覗き込むと、ベンチの影に張り付くぬめぬめした動きが目に入ってしまう。&lt;/p&gt;
&lt;p&gt;「え……きゃあっ！」&lt;/p&gt;
&lt;p&gt;うえぇ。片足で地面を蹴ってベンチから離れる。休ませるはずだった身体がこんなに俊敏に動くとは思わなかった。&lt;/p&gt;
&lt;p&gt;「きゃあ、だって。まりの悲鳴、可愛いね」&lt;/p&gt;
&lt;p&gt;「馬鹿にしてるの？」&lt;/p&gt;
&lt;p&gt;随分歩いてきたはずなのに、りとは全く疲れていないかのようにはしゃいでいる。&lt;/p&gt;
&lt;p&gt;北に進めば進むほど、建物の隅だとかベンチの下とかに蠢く子犬サイズの謎動物（りとが言うには「くらげ」）が増えてきた気がする。子犬と書くと可愛く感じるけれど、見た目はヌルヌルでテカテカだし、脚がたくさん生えている。生理的な嫌悪感が走ってどうも好きになれない。&lt;/p&gt;
&lt;p&gt;もともと彼女のセンスが独特（ときどき微妙）なのは分かっていたことだけど、こういう触手持ちまでカバーしているとは思わなかった。&lt;/p&gt;
&lt;p&gt;「はぁ、何だか楽しそうね」&lt;/p&gt;
&lt;p&gt;道行く先々にある建物の影に数匹単位で群がっている怪物は、視力に無理をさせれば図鑑に載っていた絶滅したクラゲの姿に見えないこともない。でも、図鑑で見たどのクラゲよりも肉が厚そうで、頭が大きくて、色も不透明な暗い赤色でとても気味が悪い。傘の中央には外周に向かって不規則に黒い模様が入っていて、そういう警告色じみた取り合わせも最悪だ。&lt;/p&gt;
&lt;p&gt;「よく見ると結構可愛いよ。頭のあたりとか。白子たちとあんまり変わらなくない？」&lt;/p&gt;
&lt;p&gt;「あの子たちはもっとすべすべしてて可愛いわよ！」&lt;/p&gt;
&lt;p&gt;って、よりにもよってその警告色が気に入ってるの？　こいつは明らかにクラゲじゃないと思うんだけど。そもそも、陸に上がっている時点でクラゲであることを疑うべきじゃない？&lt;/p&gt;
&lt;p&gt;「そのクラゲっぽい謎モンスターが、コレクターに高く売れるなら私だって大喜びなんだけど」&lt;/p&gt;
&lt;p&gt;「まりはお金の話ばっかりだね。久しぶりに二人で旅行だっていうのに」&lt;/p&gt;
&lt;p&gt;りとが冗談めかして肩をすくめる。彼女は旅行のつもりだったらしいけど、一方私は初めから仕事のつもりだ。旅行ならもっとロマンチックで落ち着けるような場所に行きたいわ。&lt;/p&gt;
&lt;p&gt;「ふたりは嫌？」&lt;/p&gt;
&lt;p&gt;「仲間外れは好きじゃないの」&lt;/p&gt;
&lt;p&gt;とは言え、ことこはこういう遠征にあんまり来ない。インドアタイプなのよね。&lt;/p&gt;
&lt;p&gt;「ちょっと、りと。今回の目的、ちゃんと分かってる？」&lt;/p&gt;
&lt;p&gt;「家賃の工面でしょ？　分かってるって。このくらげを持って帰ればペットショップとかに買ってもらえるかも」&lt;/p&gt;
&lt;p&gt;「どうやって持って帰るつもり？」&lt;/p&gt;
&lt;p&gt;「それは考えてないけど」&lt;/p&gt;
&lt;p&gt;はぁ。即答するりとに、私は嫌な顔をしてみせた。&lt;/p&gt;
&lt;p&gt;「そういう奔放なところ、ますますあなたが好きになっちゃいそうだわ！」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;橋に上がるのは意外と簡単だった。街の上に通路がもう一つ作られているような感じで、階段を上がってから四方に進むと途中に架かっている橋から街の様子を一望できる。橋を渡った先にもまだ道があるらしく、街全体を探索するのにどれほど掛かるのか考えるとちょっと憂鬱だ。&lt;/p&gt;
&lt;p&gt;りとが左右に回って上から写真を撮る。確かに、報告書に載せたらウケが良さそうだ。もうクラゲの写真もいっぱい撮ってるし、これなら追加報酬もあるかもね。&lt;/p&gt;
&lt;p&gt;「本当にだだっ広い街だね。もっとコンパクトに作ってくれてもよかったのに」&lt;/p&gt;
&lt;p&gt;「土地がいっぱいあるからでしょうね。羨ましいわ」&lt;/p&gt;
&lt;p&gt;「昔の人は豊富な資源を持ってても、使い方が下手っぴだね」&lt;/p&gt;
&lt;p&gt;無計画に木なんて植えたらこうなるに決まってるよ、と続けた。&lt;/p&gt;
&lt;p&gt;りとが下手と称したのは、ぼこぼこに膨れ上がった道路の舗装のことだろう。中央分離帯で区切られた大きな道路には一定間隔で街路樹を植えた跡があり、そこを中心に舗装に亀裂が入って道はもはや使い物にならなくなっていた。&lt;/p&gt;
&lt;p&gt;その亀裂を覆うように雑草や小さな木が生えていて、またそこから小さな亀裂が入り始めている。最後には舗装がめくれ上がって、この街を全部覆ってしまうのだろう。&lt;/p&gt;
&lt;p&gt;街路樹を植えれば自然を守ったことになるのかしら？&lt;/p&gt;
&lt;p&gt;「そもそも、なんでこんなところに街を作ったんだろう」&lt;/p&gt;
&lt;p&gt;「あら、クイズ？　そうね……あの大きな山が炭鉱だったとか？」&lt;/p&gt;
&lt;p&gt;「でも、そんなに人の手が入っているようには見えないよね。そもそも石炭があったのかどうか……」&lt;/p&gt;
&lt;p&gt;軽く歩いてみたところ、道が縦横に整然と区切られていたり、それなりに計画的に造られた都市であることが窺える。多くの人が住めるように、早くから画一的な住居が密集して建てられてきたみたいだし、まさかここまで衰退するとは誰も思わなかったんじゃないだろうか。&lt;/p&gt;
&lt;p&gt;この街にはもう一つ大きな謎がある。&lt;/p&gt;
&lt;p&gt;看板、ポスター、案内板……街のあらゆる文字が消えてしまって、ここがどこなのかすら把握できなくなってしまっているのだ。銀色の案内板には、前方に何かがあることを示す矢印だけが残されている。&lt;/p&gt;
&lt;p&gt;かろうじて男女が並んだマークや人が走り去るマークが残っているせいで、まるで異国に来たみたい。ことこにフランス語でも教わっておけばよかったわ。&lt;/p&gt;
&lt;p&gt;「文字のない街、ねぇ。にわかには信じがたいけど」&lt;/p&gt;
&lt;p&gt;わざわざここを選んだってことは、きっと何かの産業があったと思うんだけど。大きな工場もないし、輸送の拠点でもなさそうだし、農業やスローライフでも流行ってたのかしら？&lt;/p&gt;
&lt;p&gt;「荒野に急に街が生えるなんて、超常現象の類かも」&lt;/p&gt;
&lt;p&gt;「もしそうなら、スクーパーズもびっくりね」&lt;/p&gt;
&lt;p&gt;エイリアンは文字がない都市を襲うのかしら？&lt;/p&gt;
&lt;p&gt;橋の真ん中を過ぎて緩い坂を下りていく。手帳に「ヴィオール橋→街区ことこ・街区りと」と書き込んだ。こうやって勝手な命名をするの、探検家っぽくて少しだけテンションが上がるかも。&lt;/p&gt;
&lt;p&gt;「なに、まり？」&lt;/p&gt;
&lt;p&gt;「……なんでもないわ」&lt;/p&gt;
&lt;p&gt;りとには秘密だけど。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;陸橋を二つか三つ渡って、まだ木々に侵食されていない比較的ひらけた場所に出た。そこら中がレンガ風のタイルで舗装されていて、歩くとブーツがコツコツと硬い音を立てる。&lt;/p&gt;
&lt;p&gt;辺りを見渡してみると、ここが二階建てのシャッター街に設けられた中庭だと分かる。真ん中に横たわっている茶色く変色した太いパイプは、おそらく遊具だったものだろう。プラスチックにしては長く残っている。あっちは滑り台かしら。&lt;/p&gt;
&lt;p&gt;「この街、本当に『おたから』がないわねぇ」&lt;/p&gt;
&lt;p&gt;橋を渡ったり戻ったりしながら地図を作る。その中で家賃を工面できそうなレトロ・パーツの類を集めなければならないのだけど、まだ目ぼしいものがクラゲくらいしかない。これが大昔の特撮キャラクターの全自動フィギュアなら、コレクターも挙って買いに来てくれるだろうけど。&lt;/p&gt;
&lt;p&gt;地図や報告書の提出で防衛隊から貰えるお金は、毎日クレープを買ったら無くなるくらいのお小遣いレベルだし、このままじゃ帰れないわ。&lt;/p&gt;
&lt;p&gt;「どこかに大きなロケットとか、月の石でも落ちていないかしら」&lt;/p&gt;
&lt;p&gt;「くらげばっかりだね。飽きてきちゃったかも」&lt;/p&gt;
&lt;p&gt;日陰を覗くとほぼ必ずクラゲがいる。初めこそ石を持ち上げてダンゴムシでも探す子供みたいにはしゃいでいたりとも、段々と身体をかがめる回数を減らして歩みを早めていた。一方の私はそろそろ慣れてきたかも、と思った辺りで不意打ちを食らうので、実はあんまり落ち着けずにいる。&lt;/p&gt;
&lt;p&gt;陽が傾いてきて少し寒くなってきた。思ったよりも北に来てしまったのかもしれない。&lt;/p&gt;
&lt;p&gt;りとがクラゲから目を離しているのは、壁に描かれたグラフィティが増えたせいもあるかもしれない。即席のスプレーアートを見かけては写真を撮っている。確かにこんな落書きは原宿ではめったに見かけなくなったし、デザインも何かのレトロゲーで見たことがある不思議なデザインだ。これがノスタルジーってやつかも。&lt;/p&gt;
&lt;p&gt;それにしても、シャッターと見ればお絵かきだなんてここはスラムか何か？&lt;/p&gt;
&lt;p&gt;「これ、本当に生きてるのかな？」&lt;/p&gt;
&lt;p&gt;りとがこれ、と指差す先には――&lt;/p&gt;
&lt;p&gt;「ひゃあっ！」&lt;/p&gt;
&lt;p&gt;「まり、慣れないねぇ」&lt;/p&gt;
&lt;p&gt;いつの間にか足元にクラゲが近づいていた。ぷるぷると少し震えている。流石に飛んでかわすほどの反応はしなくなったけど、やっぱりこういうのって、そうすぐに慣れるものじゃないでしょう？　びっくりホラーは苦手なのよ！&lt;/p&gt;
&lt;p&gt;「分かってたなら早く言ってよね！」&lt;/p&gt;
&lt;p&gt;辺りが薄暗くなるにつれて、明らかにクラゲの行動範囲が広がっている。やっぱり、陽に当たると表面が乾いちゃうのかしら。不意に襲ってくることはないだろうけど、飛びかかってきたクラゲと熱い口づけを交わすのだけはやめておきたいところね。&lt;/p&gt;
&lt;p&gt;そう思いながら、クラゲから距離を取るために私は一歩後ずさった。&lt;/p&gt;
&lt;p&gt;「あ、まり」&lt;/p&gt;
&lt;p&gt;と、りとが何か言うより先に甲高い音がした。一瞬だったけど、きょむ、と鳴ったようにも聞こえる。私の足先からブーツ越しに嫌な感覚が伝わってくるのと一緒に、ぐちゃ、と湿った音も耳を襲う。&lt;/p&gt;
&lt;p&gt;「り、りと。分かってるわよね？　今、私に何が起こってるのか、驚かないように伝えてちょうだい」&lt;/p&gt;
&lt;p&gt;「えーとね、まり。もう一匹のくらげが、足の下に……」&lt;/p&gt;
&lt;p&gt;もう十分よ！　慌てて踏み抜いたクラゲから足をどけると、自重でザクッ、とさらにゼラチン質が裂けてしまう。身体が半分こになったクラゲはじたばたする様子もない。ぐに、と身体が地面に沿って広がったかと思うと、ドロリとした赤い液体になってすっかり原型を留めなくなってしまった。&lt;/p&gt;
&lt;p&gt;「あ、クラゲが……」&lt;/p&gt;
&lt;p&gt;お気に入りのブーツが汚れてしまった。でも、クラゲを踏んじゃったのは私だし。クラゲはたぶん死んでしまったし。&lt;/p&gt;
&lt;p&gt;まぁ、足跡が残らなかっただけ良かったかもしれない。こういう痕跡が下手に防衛隊に見つかってしまったら、また無用な破壊行為として警告されてしまうかもしれないのだ。&lt;/p&gt;
&lt;p&gt;「くらげって、陸でも案外柔らかいんだね」&lt;/p&gt;
&lt;p&gt;「ブーツにネバネバが残っちゃった……あら？　これ、何かしら？」&lt;/p&gt;
&lt;p&gt;よく見ると、崩壊したクラゲからから黒っぽい粒のようなものがばらばらと零れ落ちている。&lt;/p&gt;
&lt;p&gt;「これ、文字だよ。日本語じゃない？」&lt;/p&gt;
&lt;p&gt;りとが液化したクラゲを避けて内容物を器用に掬い取った。覗き込んでみると、私達が知っている文字の限りでは「竹」と近い形をしている。不思議なクラゲの内臓は、軽く指の間で擦られただけで音を立ててパリパリと崩れてしまった。&lt;/p&gt;
&lt;p&gt;私もそれに倣って遺骸の隅から黒い塊をつまみ上げてみる。力が強かったのか、すぐに潰れて指に黒い跡が残ってしまった。これは「波」という文字だったらしい。&lt;/p&gt;
&lt;p&gt;「ほら。こっちは看板のペンキで、そっちは本のインクだよ。たぶん」&lt;/p&gt;
&lt;p&gt;「器用なものね」&lt;/p&gt;
&lt;p&gt;謎の深い生き物だわ。このクラゲは身体の中に文字を溜め込む性質があるのかしら。文字が栄養なのかも。まるでことこみたいね。&lt;/p&gt;
&lt;p&gt;「あんまり文字に統一性がないのね」&lt;/p&gt;
&lt;p&gt;日本語だけじゃなくて、アルファベットやテレビで見た外国の映像に映っていたような文字も混じっている。色も大きさもバラバラだし、あんまりセンスの良いクラゲじゃないわ。&lt;/p&gt;
&lt;p&gt;「私たちだって、配給日の直前は残り物ごちゃまぜ特製サンドを作るじゃない。それと一緒だよ」&lt;/p&gt;
&lt;p&gt;「この街のクラゲも、食糧不足ってことかしら。貧しいのって、ほんと嫌になるわ！」&lt;/p&gt;
&lt;p&gt;イワシとフルーツ缶の取り合わせって、本当に最悪よ。&lt;/p&gt;
&lt;p&gt;それからりとは「ちょっとスケボーしてくるね」と言って、遊具の周りや段差の横にあるスロープを駆け回り始めた。流石に狭いからエンジンは使わないみたい。&lt;/p&gt;
&lt;p&gt;ここに来たときからちょっとうずうずしてると思ったけど、そういうことだったのね。ここまでずっと凸凹で車輪なんて使える場所はなかったもの。&lt;/p&gt;
&lt;p&gt;車輪とタイルが擦れる小気味いい音を聞きながら、私はクラゲゼリーの前にしゃがみこんだ。&lt;/p&gt;
&lt;p&gt;「すごく良いロケーションね。あんたも、ずっとここを見てたの？」&lt;/p&gt;
&lt;p&gt;生きてるって、なんなのかしら。さっきまで蠢いていたはずのどろどろの粘液に、そんなことを思う。&lt;/p&gt;
&lt;p&gt;（&lt;a href="/post/ruine-2/"&gt;後半&lt;/a&gt;へ続く）&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="extra-links"&gt;EXTRA: LINKS&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://park-harajuku.net/items/571618ff9821cc715e000f8b"&gt;PARK:HARAJUKU Crisis Team! 日本語ver 単行本&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;URAHARA&lt;sup id="fnref:urahara"&gt;&lt;a class="footnote-ref" href="#fn:urahara" title="https://urahara.party/"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://adventar.org/calendars/2268"&gt;百合SS Advent Calendar 2017&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:urahara"&gt;
&lt;p&gt;https://urahara.party/&amp;#160;&lt;a class="footnote-backref" href="#fnref:urahara" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="lily"/></entry><entry><title>ほのぼのコメント経済圏</title><link href="https://ama.ne.jp/post/warm/" rel="alternate"/><published>2017-11-25T21:20:00+09:00</published><updated>2017-11-25T21:20:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-11-25:/post/warm/</id><summary type="html">&lt;p&gt;やさしいね&lt;/p&gt;</summary><content type="html">&lt;p&gt;来世はほのぼのコメント経済圏に生まれ変わりたい。&lt;/p&gt;
&lt;p&gt;毒にも薬にもならない可愛いイラストを描いて、ほのぼのコメントをもらうんだ。そうして誰かにほのぼのを届けた気になって、誰かが死んでいくのを鈍った感覚で見守るんだ。&lt;/p&gt;
&lt;p&gt;誹謗や中傷はありえないし、皮肉や悪意も存在しない。犯罪なんて起こらない。相手のことをよく考えて、愛に似た優しい言葉を交わすんだ。あたまがぽーっとして、ヒリヒリとした感覚がなくなってくの。&lt;/p&gt;
&lt;p&gt;風邪を引いたら心配してもらえるし、弱気になっている時はほのぼのコメントで励ましてくれる。もちろん私だってそうするし、それが当たり前。やさしいインターネット。&lt;/p&gt;
&lt;p&gt;みんなに和んでもらえるし、ブログを更新するとふわふわ言葉がいっぱい集まってきてくれる。3つくらい売り出したLINEスタンプだってそこそこ売れてるもん。&lt;/p&gt;
&lt;p&gt;分かるでしょ？ インターネット全クリっていうのは、こういうことなんだ。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>くらげ</title><link href="https://ama.ne.jp/post/kurage/" rel="alternate"/><published>2017-11-19T18:39:00+09:00</published><updated>2017-11-19T18:39:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-11-19:/post/kurage/</id><summary type="html">&lt;p&gt;ふわふわ&lt;/p&gt;</summary><content type="html">&lt;p&gt;最近なんでメンヘラがクラゲを好むのか分かってきた気がする。俺がメンヘラになったのかも分からん。&lt;/p&gt;
&lt;p&gt;クラゲのふわふわ感は良いものなんだ。ずっと見ているとふわふわになれる。スケスケで生存も危うそうなやつがなぜか泳いでいる。すごい。&lt;/p&gt;
&lt;p&gt;食用のニクアツクラゲは危うさがない。泳ぎもたぶん速い。落ち着かない。カブトクラゲがふよふよしながら虹色に光ってるのが一番好きかもしれん。&lt;/p&gt;
&lt;p&gt;クラゲの生活史Tシャツを洗うたびに自分が薄れていく気がする。クラゲを食ったときは身体がどんどんクラゲになっていった気がしていた。全部抜けてしまった。クラゲプリン。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>線を書いた</title><link href="https://ama.ne.jp/post/rito/" rel="alternate"/><published>2017-11-15T14:35:00+09:00</published><updated>2022-06-14T12:08:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-11-15:/post/rito/</id><summary type="html">&lt;p&gt;須藤りと&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この記事は&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;URAHARA&lt;sup id="fnref:urahara"&gt;&lt;a class="footnote-ref" href="#fn:urahara" title="https://urahara.party/"&gt;1&lt;/a&gt;&lt;/sup&gt;を観ていますか？　絵が可愛いアニメですね。ウルトラスーパーアニメタイム&lt;sup id="fnref:us-at"&gt;&lt;a class="footnote-ref" href="#fn:us-at" title="http://us-at.tv/"&gt;2&lt;/a&gt;&lt;/sup&gt;枠だったら良かったと思いながら観ています。&lt;/p&gt;
&lt;p&gt;僕は須藤りとくんの変身後が好きです。&lt;/p&gt;
&lt;p&gt;6話を観てから、りとくんが援交してたら良いよねって叫んだらそれは違うでしょと言われました。場合によっては唯一の常識人たる白子まりちゃんが色々効いてきそうですね。分かりません。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/rito/lines.png"&gt;&lt;img alt="URAHARAの変身後衣装を着た須藤りとの線画（絵筆風の武器を後ろ手で持ち、左手には細長い紙を数枚握っている）" height="848" src="/images/rito/lines-thumb.png" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;原作のイラストノベル &lt;a href="http://www.crunchyroll.com/comics/manga/park-harajuku-crisis-team/volumes"&gt;PARK Harajuku: Crisis Team!&lt;/a&gt; を読みましたか？　読みましょう。読んだ人がFalloutだって言ってました。やったことないので分かりません。&lt;/p&gt;
&lt;p&gt;りとちゃんが寝る前にお菓子をいっぱい食べちゃうから寝付きが悪くて悪夢を見ちゃうの、可愛いですね。可愛いかな？&lt;/p&gt;
&lt;p&gt;ことこちゃんがあんなに大学に行けるように頑張ってるのに、僕は何を……。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ピクシブに絵を上げたら動悸が止まらなくなったので消しました。さよなら。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="darkened"&gt;darkened&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://paintschainer.preferred.tech/webui/share/3d8e5d5878538e2bdc83559b93e6bb100741c8811c5bfa57caf833b5/"&gt;&lt;img alt="須藤りとの線画をPaintsChainerで特に指示せず着色したところ、全体的に黒っぽい仕上がりになったもの" height="725" src="/images/rito/darken.jpg" width="512"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="annotated"&gt;annotated&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://paintschainer.preferred.tech/webui/share/11594130904b014a0c33ff4006d9db5d27585824d84c94c56cf62b2c/"&gt;&lt;img alt="須藤りとの線画をPaintsChainerで大まかな色を指定して着色したところ、概ね想定通りの仕上がりになったもの" height="725" src="/images/rito/paintschainer.jpg" width="512"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:urahara"&gt;
&lt;p&gt;https://urahara.party/&amp;#160;&lt;a class="footnote-backref" href="#fnref:urahara" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:us-at"&gt;
&lt;p&gt;http://us-at.tv/&amp;#160;&lt;a class="footnote-backref" href="#fnref:us-at" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="drawing"/></entry><entry><title>自信や知</title><link href="https://ama.ne.jp/post/knowledge/" rel="alternate"/><published>2017-10-22T22:24:00+09:00</published><updated>2017-10-22T22:24:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-10-22:/post/knowledge/</id><summary type="html">&lt;p&gt;宣言的&lt;/p&gt;</summary><content type="html">&lt;p&gt;自信満々だったり、僕が弱いことを知っていたり（知られていたり）するのがたまらなく好き。つまり、自分の価値を自覚しているロリはそういないということだ。反面、自分の価値を分かっているJKはたくさんいる。なぜ？&lt;/p&gt;
&lt;p&gt;肉体的な性的魅力のパラメータはほとんど意味がないのだろう。胸や尻、脚や制服はいつでも飾りにも武器にもなりうる。よかったね、僕が弱くて。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>Git署名のウソホント</title><link href="https://ama.ne.jp/post/git-signing/" rel="alternate"/><published>2017-08-19T03:06:00+09:00</published><updated>2017-08-21T09:51:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-08-19:/post/git-signing/</id><summary type="html">&lt;p&gt;ホントだよ&lt;/p&gt;</summary><content type="html">&lt;p&gt;みなさんはGitで署名していますか？&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#git"&gt;Gitで署名する&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;タグに署名する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;コミットに署名する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#git_1"&gt;「Gitで署名」の謎&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;「やたらと署名したら署名の価値が落ちる」の謎&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#git_2"&gt;Gitで正しく署名する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;さいごに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="git"&gt;Gitで署名する&lt;/h2&gt;
&lt;p&gt;Gitで作業内容に署名を行うには、タグまたはコミットに対してGPGで署名を行わなければなりませんでした。&lt;/p&gt;
&lt;p&gt;参考: &lt;a href="https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%81%95%E3%81%BE%E3%81%96%E3%81%BE%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB-%E4%BD%9C%E6%A5%AD%E5%86%85%E5%AE%B9%E3%81%B8%E3%81%AE%E7%BD%B2%E5%90%8D"&gt;Git - 作業内容への署名&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="_1"&gt;タグに署名する&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;-s&lt;/code&gt;オプションを使用します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;tag&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;v0.1&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;release&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="_2"&gt;コミットに署名する&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;-S&lt;/code&gt;オプションを使用します。コミットへの署名は、タグへの署名よりも新しい機能です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;commit&lt;span class="w"&gt; &lt;/span&gt;-S&lt;span class="w"&gt; &lt;/span&gt;-m&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;commit message&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="git_1"&gt;「Gitで署名」の謎&lt;/h2&gt;
&lt;p&gt;ところで、みなさんが大好きなQiitaで次のようなコメントを見かけました。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;後々rebase+squashする予定があるなら、それぞれのコミットに自動で署名するよりも、rebaseした後で git commit --amend -Sとして署名するのが賢明かもしれません。pushするまでは署名していようがいまいが、さほど問題ではありませんので。やたらと署名したら署名の価値が落ちる、とリーナスは言っています&lt;br&gt;
→ &lt;a href="https://web.archive.org/web/20210412010515/http://git.661346.n2.nabble.com/GPG-signing-for-git-commit-td2582986.html"&gt;http://git.661346.n2.nabble.com/GPG-signing-for-git-commit-td2582986.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;a href="http://qiita.com/prince_0203/items/ef0e12f2f6d150ff0485#comment-f36204588e6064ea9011"&gt;GitHubでGPGによりデジタル署名されたコミットにバッジが表示されるようになったので設定してみる&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;署名の価値が落ちる、とはどういうことでしょうか？　作業内容にしっかり署名をするのが悪いというのは、明らかに直感に反しています。&lt;/p&gt;
&lt;h2 id="_3"&gt;「やたらと署名したら署名の価値が落ちる」の謎&lt;/h2&gt;
&lt;p&gt;このコメントでは、リーナスが&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;やたらと署名したら署名の価値が落ちる&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;と言っているとのことでしたので、とりあえず元のスレッドを漁ってみましょう。この章での以下の引用は&lt;a href="http://git.661346.n2.nabble.com/GPG-signing-for-git-commit-td2582986.html"&gt;GPG signing for git commit?&lt;/a&gt;からのものです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On Sat, 4 Apr 2009, Chow Loong Jin wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It crossed my mind that currently git commits cannot actually be verified to be authentic, due to the fact that I can just set my identity to be someone else, and then commit under their name.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can't do that.&lt;/p&gt;
&lt;p&gt;Well, you can, but it's always going to be inferior to just adding a tag.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;話題としては、コミットに署名することでコミッタ情報の正当性を保証したいというものらしく、一方でリーナスはタグへの署名を推していますね。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Anything else is always bound to only sign a &lt;em&gt;part&lt;/em&gt; of the commit. What part do you feel like protecting? Or put another way, what part do you feel like &lt;em&gt;not&lt;/em&gt; protecting?&lt;/p&gt;
&lt;p&gt;So the way git does signatures protects everything. When you do a tag with "git tag -s" on a commit, you can absolutely &lt;em&gt;know&lt;/em&gt; that nobody will ever modify that commit in any way without the tag signature becoming invalid.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;コミットへの署名は一部の情報しか保護できないのに対し、タグへ署名することでコミット全体（すなわち全ての情報）を保護できるとのことです。どういうこと？&lt;/p&gt;
&lt;p&gt;ここからいくつかタグへの署名を用いるメリットが続きます。タグへ署名することでコミットと署名を明確に分けることができるため、それにより多数のメリットを享受できるようです。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You can do &lt;em&gt;none&lt;/em&gt; of these things sanely if you put the signatures into the commits themselves.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;コミットへの署名では、タグへの署名で得られるはずの多数のメリットも失ってしまうとのこと。コミットと署名を分離できなくなってしまったので、確かにそうですね。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Signing each commit is totally stupid. It just means that you automate it, and you make the signature worth less. It also doesn't add any real value, since the way the git DAG-chain of SHA1's work, you only ever need &lt;em&gt;one&lt;/em&gt; signature to make all the commits reachable from that one be effectively covered by that one. So signing each commit is simply missing the point.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最後にそれっぽいことが書いてありました。全てのコミットに署名するのはアホだし、自動で署名するのは署名の価値が落ちると。「署名の価値が落ちる」と書いてありますが、ここでいう「価値」はいまいちよく分かりません。stupidくらいの意味でしょうか。その後に、自動署名はコミットから過去を簡単に辿れるGitの仕様上意味のない行為であるとも述べていますので、そういう点で価値がないと言っているのかもしれません。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;IOW, you don't &lt;em&gt;ever&lt;/em&gt; have a reason to sign anythign but the "tip". The only exception is the "go back and re-sign", but that's the one that requires external signatures anyway.&lt;/p&gt;
&lt;p&gt;So be happy with 'git tag -s'. It really is the right way.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;という感じです。自動で全部のコミットに署名するのはアホだし、単一のコミットに署名するくらいならタグに署名する方がすごく良いとのこと。&lt;/p&gt;
&lt;h2 id="git_2"&gt;Gitで正しく署名する&lt;/h2&gt;
&lt;p&gt;リーナスが悪いと言っていたのは、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;タグへ署名せずにコミットへ署名すること&lt;/li&gt;
&lt;li&gt;あまつさえコミットへの署名を自動化してしまうこと&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;みたいですね。タグへの署名が本当に最適解かどうかはまぁ分からんけど。&lt;/p&gt;
&lt;p&gt;とりあえず、元のコメントではタグへの署名の話を全く引用してくれなかったので、意味が分からなかった。rebaseしてから署名し直したほうが良いよというアドバイスもあんまり本質的なものではなさそう。うーん。&lt;/p&gt;
&lt;p&gt;コミットに署名するのをやめろ。今すぐタグに署名をしろ。&lt;/p&gt;
&lt;h2 id="_4"&gt;さいごに&lt;/h2&gt;
&lt;p&gt;いくらググってもコミットへの署名の話しか出てこないし、タグへの署名を知らないんじゃないの？　僕も知らなかった。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>Netlifyの裏側とSHA-1</title><link href="https://ama.ne.jp/post/netlify-sha1/" rel="alternate"/><published>2017-08-18T03:20:00+09:00</published><updated>2020-09-27T02:42:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-08-18:/post/netlify-sha1/</id><summary type="html">&lt;p&gt;ねっとり&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;ins&gt;(2020-09-27) &lt;strong&gt;もうこのサイトのバックエンドはNetlifyではありません。&lt;/strong&gt;言及されているファイルへのリンクはama.ne.jp上のものに戻されています。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;先日投稿した&lt;a href="/post/sha1/"&gt;SHA-1をぶつけた&lt;/a&gt;に対して、たくさんの反応ありがとうございました。&lt;/p&gt;
&lt;p&gt;さて、この記事で生成した&lt;strong&gt;SHA-1ハッシュが一致する&lt;/strong&gt;異なるPDFファイルへのリンクが、ama.ne.jp上のものからGitHub上のものへ変わったことにはお気づきでしょうか？&lt;/p&gt;
&lt;p&gt;旧(on ama.ne.jp): &lt;a href="/appendices/sha1/a.pdf"&gt;a.pdf&lt;/a&gt;と&lt;a href="/appendices/sha1/b.pdf"&gt;b.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;del&gt;新(on GitHub): a.pdfとb.pdf&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;それぞれのリンクを開くとおかしな点に気付きませんか？　今回はこの問題についての報告です。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#netlify"&gt;Netlifyって何？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_1"&gt;何が起こったの？&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;赤い大仏の方がデータが小さい（？）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;ファイル名に関係なく赤い大仏が出てくる&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;どうやって直すの？&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;最後に&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="netlify"&gt;Netlifyって何？&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt;はイケイケのホスティングサービスで、以下のような特徴があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHubとかのpushを契機にビルド、デプロイしてくれる。ビルドのタイミングはもちろん手動でも。&lt;/li&gt;
&lt;li&gt;適当にやりたい時は、ファイルを直接アップロードしても公開できる。&lt;/li&gt;
&lt;li&gt;Let's Encryptに対応（向こうで取得と更新をしてくれる）している。&lt;/li&gt;
&lt;li&gt;複数のブランチデプロイを使ってA/Bテストみたいなことができるみたい。&lt;/li&gt;
&lt;li&gt;スクリプトをくっつけたりとか自動minifyとか画像の最適化とか、他にも色んな細かい機能があるよ。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;静的サイトの公開のために作られている上にホスティングまでくっついているので、他のCIを使ってシコシコタスクを書いて&lt;code&gt;gh-pages&lt;/code&gt;にpushして……よりは楽な気がする。分からん。&lt;/p&gt;
&lt;h2 id="_1"&gt;何が起こったの？&lt;/h2&gt;
&lt;p&gt;そんな素晴らしいNetlifyですが、先程の旧リンクでは、どちらのリンクも赤い大仏のPDFファイルを指してしまいます。ファイルのアップロードミスでもリンクのミスでもなく、Netlifyの仕様のせいです。&lt;/p&gt;
&lt;p&gt;Netlifyでは、SHA-1ハッシュをキーにしてファイルを管理しているそうです&lt;sup id="fnref:hashindex"&gt;&lt;a class="footnote-ref" href="#fn:hashindex" title="URL→SHA-1ハッシュ→ファイルみたいな感じなのかな？"&gt;1&lt;/a&gt;&lt;/sup&gt;。そのため、同じSHA-1ハッシュを持つ複数のファイルが全て同じファイルとして取り扱われました。ただし、このインデックスはサイトごとに独立したもので、他のサイトのファイルを差し替えるというような攻撃はできないそうです。&lt;/p&gt;
&lt;p&gt;おそらく、データを先頭から比較して最も小さいファイルが代表になるようです。&lt;/p&gt;
&lt;h3 id="_2"&gt;赤い大仏の方がデータが小さい（？）&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ python
&amp;gt;&amp;gt;&amp;gt; red = open(&amp;quot;red.pdf&amp;quot;, &amp;quot;rb&amp;quot;).read()
&amp;gt;&amp;gt;&amp;gt; blue = open(&amp;quot;blue.pdf&amp;quot;, &amp;quot;rb&amp;quot;).read()
&amp;gt;&amp;gt;&amp;gt; red[:193]
b&amp;#39;%PDF-1.3\n%\xe2\xe3\xcf\xd3\n\n\n1 0 obj\n&amp;lt;&amp;lt;/Width 2 0 R/Height 3 0 R/Type 4 0 R/Subtype 5 0 R/Filter 6 0 R/ColorSpace 7 0 R/Length 8 0 R/BitsPerComponent 8&amp;gt;&amp;gt;\nstream\n\xff\xd8\xff\xfe\x00$SHA-1 is dead!!!!!\x85/\xec\t#9u\x9c9\xb1\xa1\xc6&amp;lt;L\x97\xe1\xff\xfe\x01s&amp;#39;
&amp;gt;&amp;gt;&amp;gt; blue[:193]
b&amp;#39;%PDF-1.3\n%\xe2\xe3\xcf\xd3\n\n\n1 0 obj\n&amp;lt;&amp;lt;/Width 2 0 R/Height 3 0 R/Type 4 0 R/Subtype 5 0 R/Filter 6 0 R/ColorSpace 7 0 R/Length 8 0 R/BitsPerComponent 8&amp;gt;&amp;gt;\nstream\n\xff\xd8\xff\xfe\x00$SHA-1 is dead!!!!!\x85/\xec\t#9u\x9c9\xb1\xa1\xc6&amp;lt;L\x97\xe1\xff\xfe\x01\x7f&amp;#39;
&amp;gt;&amp;gt;&amp;gt; red[192]
115
&amp;gt;&amp;gt;&amp;gt; blue[192]
127
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="_3"&gt;ファイル名に関係なく赤い大仏が出てくる&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sha1-collision-a.netlify.com/"&gt;a.pdfが赤+b.pdfが青&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sha1-collision-b.netlify.com/"&gt;a.pdfが青+b.pdfが赤&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_4"&gt;どうやって直すの？&lt;/h2&gt;
&lt;p&gt;ユーザーでできる対策はないようです。順次、SHA-256を使ったインデックスに切り替えているとのことですが、詳細は分かりません。&lt;/p&gt;
&lt;h2 id="_5"&gt;最後に&lt;/h2&gt;
&lt;p&gt;というようなことを教えてもらった情報源のチャットログを紛失してしまいました。信頼ならない噂程度ということで。すみません。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:hashindex"&gt;
&lt;p&gt;URL→SHA-1ハッシュ→ファイルみたいな感じなのかな？&amp;#160;&lt;a class="footnote-backref" href="#fnref:hashindex" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>金魚鉢</title><link href="https://ama.ne.jp/post/fishball/" rel="alternate"/><published>2017-08-05T15:27:00+09:00</published><updated>2017-08-05T15:27:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-08-05:/post/fishball/</id><summary type="html">&lt;p&gt;ガラスパウダー&lt;/p&gt;</summary><content type="html">&lt;p&gt;金魚鉢に大きな金魚が来ることがある。黒くて大きな金魚と、皮の厚い金魚の糞と、それに群がるバクテリア。水が濁って嫌な臭いがした。&lt;/p&gt;
&lt;p&gt;金魚の糞が私に降り掛かってくる。残された小さな場所で、小さな金魚は精一杯生きようとした。でも、金魚鉢からは出られない。&lt;/p&gt;
&lt;p&gt;大きな金魚がいなくなると、やっと、私一人には大きすぎる金魚鉢を独り占めする。この水は神代から伝わる川の水だから、汚いものは跡形もなく消えてしまう。&lt;/p&gt;
&lt;p&gt;やがて金魚鉢が割れて、ガラスは全部粉になった。生温い水が全て流れ出ていくのを見ながら、私はびちびちと笑っていた。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>煙突</title><link href="https://ama.ne.jp/post/chimney/" rel="alternate"/><published>2017-07-12T16:45:00+09:00</published><updated>2017-07-12T16:45:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-07-12:/post/chimney/</id><summary type="html">&lt;p&gt;from automation(C91)&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この作品は&lt;a href="https://hentaigirls.net/book/automation/"&gt;automation&lt;/a&gt;に収録されています。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「洗濯物をとりこみたい人生だった」&lt;/p&gt;
&lt;p&gt;「あら、急にどうしたんですか？」&lt;/p&gt;
&lt;p&gt;はぁ、と芝居ががって溜息をつくＡ子を見て、Ｂ子がくすくすと笑った。&lt;/p&gt;
&lt;p&gt;「すぐに雨が降るわ。また、服がだめになっちゃう」&lt;/p&gt;
&lt;p&gt;Ａ子が指差す煙突は天高く、ずっと空の向こうでもくもくと黒い煙を吐き出している。青い空はずっと不気味に濁ったままで、たとえその向こうに何があっても私には分からないだろう。雲ひとつない暗い快晴は心まで息苦しくする。&lt;/p&gt;
&lt;p&gt;「雨が終わったら、新しい服を探さないといけませんね」&lt;/p&gt;
&lt;p&gt;「まぁ、気分転換にはなるかしら」&lt;/p&gt;
&lt;p&gt;黒い煙が出た次の日は、辺り一面肉の焦げた嫌な臭いがするから嫌いだ。何日かそれが続いて、とうとう吐き出されるのが白い煙になって、最後には煙突の呼吸がすっかり止まる。その間はずっと汚れた雨が降り続けて、外に干していた服はもちろん、屋根や窓、植物も土も全部同じ色に塗りつぶされていく。乾いた汚泥はそこらじゅうで舞い上がって、呼吸に混じってまた人を傷つけるのだ。&lt;/p&gt;
&lt;p&gt;大煙突は二百メートルあるのだと、Ｂ子が前に言っていた。図書館で読んだのだという。私たちが生まれるずっと前からそこにあって、私たちが死んでもそこにあり続けるのだ。永遠の経済成長の象徴であったあの建築物は、不滅ゆえにそこに縛り付けられ、いつの間にか滅びゆく街のプロセスに組み入れられていた。&lt;/p&gt;
&lt;p&gt;煤煙は徐々に空気と混ざって見えなくなるけれど、決して消えることはない。風の吹かないこの街で、煤も煙も、空気にこびりついていく。&lt;/p&gt;
&lt;p&gt;小さい頃は巨大なものが好きだった。天にそびえる大煙突を見上げられるこの公園で、声を張り上げて騒いでいたのをよく覚えている。&lt;/p&gt;
&lt;p&gt;天国の空には、きっと透き通るような青の水彩が引いてあるのだと思う。そうでないと、目が覚めてからどこにいるのか分からなくて困ってしまうから。&lt;/p&gt;
&lt;p&gt;「また、狭い図書館暮らしの始まりね」&lt;/p&gt;
&lt;p&gt;急に立ち上がると、ぱんぱんになったリュックが少し身体を揺らしてから、足元で枯れ葉が乾いた音を立てた。泥と一緒にぱらぱらと砕け散った葉が、私の足に煽られてふわりと舞い上がる。私は思わず口に手を当てて、Ｂ子もそれに倣って制服の袖を口元に当てた。&lt;/p&gt;
&lt;p&gt;「Ａ子さんと狭い部屋で眠るの、私は好きですよ」&lt;/p&gt;
&lt;p&gt;ぼんやりと大煙突の方に目を遣って、雨が降るのは嫌ですけど、と続ける。横顔が少し楽しげに見えた。&lt;/p&gt;
&lt;p&gt;「そんな話、してないわ」&lt;/p&gt;
&lt;p&gt;「Ａ子さんはお嫌ですか？　私と眠るのは」&lt;/p&gt;
&lt;p&gt;「そうね、まだ――」&lt;/p&gt;
&lt;p&gt;まだ、二人とも生きてるんだなって、本当に心の底から実感する。そう口に出すと、自分が弱くなってしまったように思えた。Ｂ子の熱を感じて、匂いを感じて、私よりもゆるやかな呼吸に合わせて優しく息をすると、いつもよりもよく眠れる。&lt;/p&gt;
&lt;p&gt;保存料がたくさん入った味気ない缶詰と白飯を食べていても、地下から見つけ出した瓶詰めの水を飲んでいても、生きた心地がしないのだ。明日もこうして歩くことができるだろうかと、何も見つからずに動けなくなってしまうのではないかと、恐ろしくなる。&lt;/p&gt;
&lt;p&gt;「私たちは、死にませんよ。絶対に」&lt;/p&gt;
&lt;p&gt;Ｂ子が立ち上がって、私たちはまた口を押さえる。この一瞬の動きにはもはや意味などなかったが、そうするのが二人の秘密の合図になっていた。&lt;/p&gt;
&lt;p&gt;「そろそろ帰りましょう。食料は十分に集まりましたし、これならしばらくこもっていられますよ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;街を複数の――おそらくは数十体の――アンドロイドが巡回している。それらが街に転がる死体を回収し、焼却炉へ集めて定期的に火葬していると聞く。その度に大煙突から煙が吹き上がり、あぁまた誰かが死んだのだと分かった。とうの昔に撤退した化学工場の簡素な焼却炉を、そのまま火葬場に転用して多くの死体を詰め込んでいるから、なかなか温度が上がらなくて辺りは数日の間ずっと異様な臭いに包まれる。&lt;/p&gt;
&lt;p&gt;彼女らは十代前半の少女を模して作られているらしい。年端も行かぬ少女を死体回収の手伝いに出す親はそう多くないだろうから、すぐにそれが感情のないロボットなのだと分かる。表情一つ変えない娘たちに看取られて燃やされるさまを見て、誰かが理想郷と言った。識別子の前に「理想郷」を冠してそれを呼ぶのだ。呼ばれるたびに、彼女らの眼はそこにあるのが命ある肉体かどうかを確かめる。&lt;/p&gt;
&lt;p&gt;魂の抜けた肉体を放っておく以上の不衛生はない。街のシステムは公衆衛生上の観点においては、実に正しい判断をした。ただ、肉体を燃やし尽くしても毒が消えないとは誰も思わなかっただけだ。&lt;/p&gt;
&lt;p&gt;死体を燃やすたびにばたりばたりと人が倒れ、新たな死体が生まれるたびに燃やされていく。イレギュラーな事態にもアンドロイドたちは落ち着いて、いつもと変わらず死体を回収し続けた。楽しげに皆で労働歌を歌っていたという噂も聞く。&lt;/p&gt;
&lt;p&gt;彼女たちはずっと正常に動いていて、むしろ異常なのは生き残っている私の方なのだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Ａ子と手を繋いで帰るときはいつも、Ａ子の手が熱いのか、私の手が熱いのか分からなくなる。頬が熱いのはＢ子自身のせいだと思い知らされるけれど、顔や額もくっつけてずっとキスしていれば、何もかも一つになってしまうだろうなと思った。&lt;/p&gt;
&lt;p&gt;「Ａ子ちゃん。どうしていつも手を繋いで帰るんですか？」&lt;/p&gt;
&lt;p&gt;晴れた秋の空はずっと向こうに泳いでいけそうなほどに澄んでいて、夕陽の光は世界中にどこまでも届いていくんだと実感する。&lt;/p&gt;
&lt;p&gt;「秋だし、寒いから。それじゃあ、だめかしら？」&lt;/p&gt;
&lt;p&gt;「では、どうして夏にも手を繋ぐんですか？」&lt;/p&gt;
&lt;p&gt;「……暖かいのが好きなのよ」&lt;/p&gt;
&lt;p&gt;何も言わなくても全部私が分かっているのだと、きっとＡ子は思っている。本当の私はそんなに強くないのに。そうやって寄りかかられるのは、心地良いけれど反対に私の心をきゅっときつく苦しめていた。&lt;/p&gt;
&lt;p&gt;「いつも、そう言っていますね」&lt;/p&gt;
&lt;p&gt;「だって、いつもそう訊かれるもの」&lt;/p&gt;
&lt;p&gt;友達だから、恋人だから。Ａ子はそんなこと、一言も言ってくれない。彼女の手は私を縛り付けて離すまいとするけれど、Ａ子はそれだけで満足しているのだ。&lt;/p&gt;
&lt;p&gt;「ねぇ、Ｂ子。手を繋ぐのに、ユニークな理由がいるの？　いつも同じ理由じゃ、だめ？」&lt;/p&gt;
&lt;p&gt;「せっかく四季がある街に生まれたんですよ？　せめて、ちょっとくらい、変わってもいいと思うんです」&lt;/p&gt;
&lt;p&gt;変わってほしい、とは言えなかった。私の言葉でＡ子を縛り付けたくはなかったから。私はただ、彼女に好きだと言ってほしいだけなのに。&lt;/p&gt;
&lt;p&gt;「別に私は、あなたと手を繋いでいなくたって――」&lt;/p&gt;
&lt;p&gt;そう言いながら、Ａ子は私から手を離そうとする。私はすかさずその手を捕まえて、きゅっと強く握った。隣で驚いた表情をしているＡ子に上目遣いで笑いかけると、彼女は照れたようにして下を向く。&lt;/p&gt;
&lt;p&gt;今度はＡ子の手のほうが熱くなっているのをはっきり感じて、ちょっとだけ嬉しくなった。&lt;/p&gt;
&lt;p&gt;「離しちゃだめですよ、Ａ子ちゃん。暖かいのは、私だって好きなんですから」&lt;/p&gt;
&lt;p&gt;Ａ子の手を引きながら、私はかさりと真っ赤な紅葉を踏みしめた。上からもはらはらと、枝から離れた色とりどりの葉がやってきて、通学路を彩っていく。こうしていつしか冬が来て、また春が来る。およそ永遠とは対極にあるその景色を見ながら、私は永遠を祈っていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;夜になると雨が一層ひどくなり、窓にどろどろとした雫が叩きつけられる。&lt;/p&gt;
&lt;p&gt;管理者を失った建物は急激に荒れ果て、雨漏りが酷くなるところも多い。天井に出来た黒い染みが徐々に広がって、そこに穴が開く。そうなると、もはやそこで安心して眠ることはできない。私の家もＢ子の家も、すっかり壊れてしまった。&lt;/p&gt;
&lt;p&gt;その運命は堅牢に造られたこの図書館も例外ではなく、もう何回か雨が降ったらこの部屋にも黒い刺客がやってきてしまうだろう。街にあるＢ子との思い出が、ぼろぼろになった建物と一緒に全て壊れていくのだ。図書館はＢ子の特段のお気に入りで、だから最後まで守っていたかった。&lt;/p&gt;
&lt;p&gt;白い光を放つＬＥＤのランタンを掲げながら、閉架書庫の扉を引くと、ぎぎぃという音が響いて一瞬びくりとする。書庫の鍵は持っていなかったけど、いつの間にか錠のほうが壊れていた。私はそれを新たな根城の発見としか感じなかったけど、きっとＢ子は、壊れゆく図書館をまざまざと見せつけられて嫌な顔をしていたのだろうと思う。&lt;/p&gt;
&lt;p&gt;この街から誰もいなくなっても、私たちが去ったとしても、大量にある本がここに確かに文化があったと証してくれるのだと、錠の壊れた書庫を見つけた時にＢ子がそう言った。この図書館は無くならないのだと、口に出して自信を持とうとしていた。&lt;/p&gt;
&lt;p&gt;冷たい毛布を二人で被って、今日は寒いねと言いながらもう一枚毛布を足す。手を繋ぎ、身体を当てると少しずつ暖まってきて、生の実感が幾分か強くなる。&lt;/p&gt;
&lt;p&gt;打ちっぱなしの書庫の壁は、冷たさまでがむき出しになっていた。身体をよじる度に背中からひんやりとしたものが伝わってきて、それを感じる度にＢ子にまた暖められたくなる。&lt;/p&gt;
&lt;p&gt;「ねぇ、Ｂ子。私が死んだらどうする？」&lt;/p&gt;
&lt;p&gt;彼女の身体がぴくり、と動いて止まり、それからＢ子は何も言わずにランタンを消した。急に視界が奪われて、手と耳の感覚が鋭敏になる。&lt;/p&gt;
&lt;p&gt;ぎゅっ、と手が強く握られて、彼女の手が冷えているのが分かる。Ａ子が少し力を緩めると、Ｂ子はそれを補うように彼女の手を優しく包み込んだ。&lt;/p&gt;
&lt;p&gt;冷たくなっていくＢ子の手のひらと、いつもより少しだけ早い息遣いを感じながら、徐々に目が慣れていく。&lt;/p&gt;
&lt;p&gt;「私も、Ａ子さんと一緒に燃やされたくなると思います」&lt;/p&gt;
&lt;p&gt;こちらを向いたＢ子は、暗がりに隠れていつもよりその不安を顕にしているように見えた。&lt;/p&gt;
&lt;p&gt;「あんまり、そういうことを口に出しちゃいけません」&lt;/p&gt;
&lt;p&gt;「……えぇ、ごめんなさい。雨のせいかしら」&lt;/p&gt;
&lt;p&gt;Ａ子が少し不安そうに笑うのを見て、Ｂ子が隠そうとしていた暗い気持ちが溢れ出しそうになる。彼女はそれを押しとどめようと指を滑らせて、きゅっと固く絡ませた。はっとした顔でこちらを見るＡ子に、Ｂ子は満足そうに微笑みかける。&lt;/p&gt;
&lt;p&gt;「Ａ子さんは、私が死んだらどうするんですか？」&lt;/p&gt;
&lt;p&gt;「ふふっ。Ｂ子も、訊いちゃうのね」&lt;/p&gt;
&lt;p&gt;「そんな風に思い詰めた顔をしていたら、私だって気になっちゃいますよ」&lt;/p&gt;
&lt;p&gt;Ｂ子は、私と一緒に燃やされたいと言った。彼女は私が感情のないアンドロイドに連れて行かれて、モノみたいに焼却炉に投げ入れられるのを見て、どう思うのだろう。&lt;/p&gt;
&lt;p&gt;「どうしても死ぬのなら、私があなたを燃やしてあげる」&lt;/p&gt;
&lt;p&gt;私は、Ｂ子をあの冷血なアンドロイドたちに引き渡したくはない。もしその時が来たら、百合の花が敷き詰められた棺桶に、私の手で彼女を優しく抱き入れてあげる。私の涙よりもずっと熱い炎が、綺麗なＢ子を包んですっかりかき消してしまうのだ。&lt;/p&gt;
&lt;p&gt;「Ａ子さんに看取ってもらえるのなら、安心ですね」&lt;/p&gt;
&lt;p&gt;「でも、私たちは死んだりしないわ。この地獄が終わるまで、終わってからも、ちゃんと二人で生きていくの」&lt;/p&gt;
&lt;p&gt;私はＢ子の言葉を代弁した気になって、そうよね、と確かめると、彼女はしっかりと私の目を見て頷いた。&lt;/p&gt;
&lt;p&gt;「手を繋いで綺麗な景色を見ながら帰るんです。絶対に」&lt;/p&gt;
&lt;p&gt;Ｂ子はそう言って眼を閉じると、直に落ち着いた寝息を立て始める。Ａ子もそれを見て、呼吸を合わせながらゆっくりと瞼を下ろした。&lt;/p&gt;
&lt;p&gt;「おやすみ、Ｂ子。……好き、よ」&lt;/p&gt;
&lt;p&gt;天国の空には、きっと透き通るような青の水彩が引いてあるのだと思う。そうでないと、目が覚めてから隣にいるのが誰なのか分からなくなってしまうから。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>フォント周りを整理した</title><link href="https://ama.ne.jp/post/emoji/" rel="alternate"/><published>2017-06-27T21:45:00+09:00</published><updated>2022-06-14T11:19:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-06-27:/post/emoji/</id><summary type="html">&lt;p&gt;エモ〜い&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;ins&gt;(2022-06-14) もうこのサイトではWebフォントを使用していません。また、絵文字についても&lt;a href="https://twemoji.twitter.com/"&gt;Twemoji&lt;/a&gt;から取得した画像を直接読み込むよう変更されています。&lt;/ins&gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#emoji"&gt;emoji&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_1"&gt;その他&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;みなさんはWebフォントを知っているだろうか。&lt;/p&gt;
&lt;p&gt;Webフォントというのは便利なものである。ひとたび&lt;code&gt;@font-face&lt;/code&gt;と適切なURLを記すと、毎年のように書き換えていた&lt;code&gt;fomt-family: "Helvetica Neue", "Noto Sans Japanese", "ヒラギノ角ゴ ProN W3", ...&lt;/code&gt;といった祝詞に悩まされる必要がなくなるという。&lt;/p&gt;
&lt;p&gt;このサイトでも、祝詞の呪いから逃げるようにして、&lt;code&gt;/fonts/&lt;/code&gt;以下に配置されている&lt;code&gt;mplus-1m-regular.ttf&lt;/code&gt;（等幅）、&lt;code&gt;mplus-1p-regular.ttf&lt;/code&gt;（プロポーショナル）、&lt;code&gt;EmojiSymbols-Regular.woff&lt;/code&gt;（絵文字）をロードしていた。しかし、このやり方は以下の点であまり良くない。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;サブセット化していないため、サイズが大きい&lt;sup id="fnref:largefont"&gt;&lt;a class="footnote-ref" href="#fn:largefont" title="mplus-*の2つを合わせて3MBほどだった。"&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/li&gt;
&lt;li&gt;絵文字フォントが古い&lt;sup id="fnref:oldemoji"&gt;&lt;a class="footnote-ref" href="#fn:oldemoji" title="Emoji Symbols Fontは、Unicode6.0から更新がない。"&gt;2&lt;/a&gt;&lt;/sup&gt;。&lt;/li&gt;
&lt;li&gt;レポジトリにフォントファイルを突っ込んでおくのはあまり気持ちがよくない。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;というわけで、フォント周りの整理をした。&lt;/p&gt;
&lt;h2 id="emoji"&gt;emoji&lt;/h2&gt;
&lt;p&gt;&lt;img alt=":sparkles:" class="emoji" height="16" src="/emojis/2728.png" width="16"&gt; 絵文字 &lt;img alt=":sparkles:" class="emoji" height="16" src="/emojis/2728.png" width="16"&gt; 周りは&lt;a href="http://pythonhosted.org/Markdown/"&gt;Markdown&lt;/a&gt;の拡張である&lt;a href="https://github.com/kernc/mdx_unimoji"&gt;mdx_unimoji&lt;/a&gt;に任せていたため、ここに乗っかることにした。&lt;/p&gt;
&lt;p&gt;:emoji:→絵文字変換の先行事例として、&lt;a href="http://pocke.hatenablog.com/entry/2017/03/05/193553"&gt;IME でも:muscle:みたいに Emoji を入力したい！ - pockestrap&lt;/a&gt;という記事がある。これを参考に、&lt;a href="https://raw.githubusercontent.com/Ranks/emojione/master/emoji_strategy.json"&gt;emoji_strategy.json&lt;/a&gt;からmdx_unimojiに渡せる形式の辞書になるようなjsonファイルを生成するPythonスクリプト &lt;a href="https://gist.github.com/amane-katagiri/687654c0dc00736aba69235e27025d4e"&gt;emoji_generator.py&lt;/a&gt; を書いた。&lt;/p&gt;
&lt;p&gt;生成したjsonファイルを&lt;code&gt;json.load&lt;/code&gt;して、mdx_unimojiの&lt;code&gt;emoji&lt;/code&gt;パラメータに渡すと、&lt;code&gt;:the_newest_emoji:&lt;/code&gt;を最新の絵文字に変換して出力してくれる。これを&lt;a href="https://github.com/twitter/twemoji"&gt;twemoji&lt;/a&gt;などで&lt;code&gt;parse&lt;/code&gt;してやれば、綺麗な絵文字が労せず表示できるというわけ。JavaScriptが無効だったらまぁ残念でした。&lt;/p&gt;
&lt;p&gt;EmojiSymbols-Regularは消した。&lt;/p&gt;
&lt;p&gt;&lt;img alt=":sunny:" class="emoji" height="16" src="/emojis/2600.png" width="16"&gt; &lt;img alt=":sunglasses:" class="emoji" height="16" src="/emojis/1f60e.png" width="16"&gt; &lt;img alt=":sunglasses:" class="emoji" height="16" src="/emojis/1f60e.png" width="16"&gt; &lt;img alt=":sunglasses:" class="emoji" height="16" src="/emojis/1f60e.png" width="16"&gt; &lt;img alt=":sunny:" class="emoji" height="16" src="/emojis/2600.png" width="16"&gt;&lt;/p&gt;
&lt;h2 id="_1"&gt;その他&lt;/h2&gt;
&lt;p&gt;M+の質感を失いたくなかったので、こちらは&lt;a href="http://mplus-fonts.osdn.jp/webfonts/"&gt;公式のWebフォント&lt;/a&gt;に乗っかってレポジトリのフォントファイルは消した。M+ Webフォントは和文欧文合わせても500KBちょっとで済む。&lt;/p&gt;
&lt;p&gt;祝詞は以下の通り。たぶんしばらく変えない。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;M+ web 1p regular&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;M+ web regular&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;M+ 1p regular&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;MigMix 1P&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;sans-serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;pre&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;M+ web 1m regular&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;M+ web regular&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;M+ 1m regular&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;MigMix 1M&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;monospace&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_2"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;フォントをレポジトリから全部消せてよかった。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:largefont"&gt;
&lt;p&gt;mplus-*の2つを合わせて3MBほどだった。&amp;#160;&lt;a class="footnote-backref" href="#fnref:largefont" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:oldemoji"&gt;
&lt;p&gt;Emoji Symbols Fontは、Unicode6.0から更新がない。&amp;#160;&lt;a class="footnote-backref" href="#fnref:oldemoji" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>ピクシブの小説ランキングをスクレイピングする</title><link href="https://ama.ne.jp/post/scraping/" rel="alternate"/><published>2017-05-27T15:43:00+09:00</published><updated>2017-05-29T13:45:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-05-27:/post/scraping/</id><summary type="html">&lt;p&gt;法律用語満載5000兆トントラック&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;ログインする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;ページを取得する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;整形する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;使う&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;2017年になってもインターネットはなかなか消えないので、たまにはスクレイピングの練習をしたいと思います。&lt;/p&gt;
&lt;p&gt;どういうものがいいでしょうかね。練習ですから、ある程度複雑なサイト……例えば、認証が必要なサイトがいいですね。&lt;/p&gt;
&lt;p&gt;というわけで、今回は&lt;a href="https://www.pixiv.net/"&gt;pixiv&lt;/a&gt;の&lt;a href="https://www.pixiv.net/novel/ranking.php?mode=weekly_r18"&gt;小説 R-18ウィークリーランキング&lt;/a&gt;をスクレイピングしてみようと思います。&lt;/p&gt;
&lt;h2 id="_1"&gt;ログインする&lt;/h2&gt;
&lt;p&gt;ランキングページを表示するためには&lt;a href="https://accounts.pixiv.net/login"&gt;ログイン&lt;/a&gt;が必要です。今日は&lt;a href="https://curl.haxx.se/"&gt;curl&lt;/a&gt;を使ってやってみましょう。&lt;/p&gt;
&lt;p&gt;curlは受け取ったcookieをファイルに書いたり、ファイルから読み込んだcookieを送信したりできます。まず、&lt;code&gt;-c&lt;/code&gt;オプションを使って、ログインに必要なセッションを取得しましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;curl&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;cookie.txt&lt;span class="w"&gt; &lt;/span&gt;https://accounts.pixiv.net/login&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;login.html
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;cookie.txt&lt;/code&gt;の中は下のような感じで、受け取ったcookieが記録されていることがわかります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_.pixiv.net    TRUE    /   FALSE   9999999999  PHPSESSID   xxxxx
.pixiv.net              TRUE    /   FALSE   9999999999  p_ab_id     xxxxx
.pixiv.net              TRUE    /   FALSE   9999999999  p_ab_id_2   xxxxx
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;フォームには不正なログインを防止するためのパラメータが付いていたりするので、それも取り出します。&lt;a href="http://xmlsoft.org/xmllint.html"&gt;xmllint&lt;/a&gt;がない人は、適当に&lt;a href="https://www.crummy.com/software/BeautifulSoup/"&gt;Beautiful Soup&lt;/a&gt;や&lt;a href="http://www.nokogiri.org/"&gt;nokogiri&lt;/a&gt;でも使ってください。nkfがなければ手や好きなスクリプト言語でどうぞ。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;xmllint&lt;span class="w"&gt; &lt;/span&gt;--xpath&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//form//input[@type=&amp;quot;hidden&amp;quot;]/@name&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--html&lt;span class="w"&gt; &lt;/span&gt;login.html&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;s/ name=\(&amp;quot;\([^&amp;quot;]*\)&amp;quot;\|\&amp;#39;&lt;/span&gt;&lt;span class="se"&gt;\(&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;^&lt;span class="se"&gt;\&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;*&lt;span class="se"&gt;\)\&amp;#39;\)&lt;/span&gt;/&lt;span class="se"&gt;\2\3\n&lt;/span&gt;/g&lt;span class="s1"&gt;&amp;#39; | \&lt;/span&gt;
&lt;span class="s1"&gt;  nkf -WwMQ | tr &amp;quot;=&amp;quot; &amp;quot;%&amp;quot; &amp;gt; keys.txt&lt;/span&gt;

&lt;span class="s1"&gt;xmllint --xpath &amp;#39;&lt;/span&gt;//form//input&lt;span class="o"&gt;[&lt;/span&gt;@type&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;/@value&lt;span class="s1"&gt;&amp;#39; --html login.html | \&lt;/span&gt;
&lt;span class="s1"&gt;  sed -e &amp;#39;&lt;/span&gt;s/&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="se"&gt;\(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;\([^&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;*&lt;span class="se"&gt;\)&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;\|\&amp;#39;\([^\&amp;#39;]*\)\&amp;#39;\)/\2\3\n/g&amp;#39; | \&lt;/span&gt;
&lt;span class="s2"&gt;  nkf -WwMQ | tr &amp;quot;&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot; &amp;quot;&lt;/span&gt;%&lt;span class="s2"&gt;&amp;quot; &amp;gt; values.txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;さて。全てのパラメータが揃ったので、IDとパスワードをくっつけて送信しましょう。&lt;code&gt;-b&lt;/code&gt;オプションでさっき保存したcookieを使い、&lt;code&gt;-c&lt;/code&gt;オプションで受け取ったcookieを保存します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;pixiv_id&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;keys.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;password&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;keys.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;YOUR_PIXIV_ID&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;values.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;YOUR_PASSWORD&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;values.txt
curl&lt;span class="w"&gt; &lt;/span&gt;-b&lt;span class="w"&gt; &lt;/span&gt;cookie.txt&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;cookie.txt&lt;span class="w"&gt; &lt;/span&gt;--data&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;paste&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;=&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;keys.txt&lt;span class="w"&gt; &lt;/span&gt;values.txt&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tr&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;amp;&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;https://accounts.pixiv.net/login
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;リダイレクトを受け入れる&lt;code&gt;-L&lt;/code&gt;オプションを付けていないため、成功すると無が返ってきます。&lt;code&gt;cookie.txt&lt;/code&gt;に&lt;code&gt;device_token&lt;/code&gt;があれば、この章の作業は完了です。&lt;/p&gt;
&lt;p&gt;ピクシブの最も不要な機能の1つとして、オプトアウト不可のログイン通知メールがあり、これでも成否が分かります。よかったね。&lt;/p&gt;
&lt;h2 id="_2"&gt;ページを取得する&lt;/h2&gt;
&lt;p&gt;ここからは簡単です。全てのリクエストはログインしたユーザーの権限で行うことになります。ウィークリーランキングを上から10件取得してみましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;curl&lt;span class="w"&gt; &lt;/span&gt;-L&lt;span class="w"&gt; &lt;/span&gt;-b&lt;span class="w"&gt; &lt;/span&gt;cookie.txt&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https://www.pixiv.net/novel/ranking.php?mode=weekly_r18&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;r18_weekly_ranking.html

xmllint&lt;span class="w"&gt; &lt;/span&gt;--xpath&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;//div[@class=&amp;quot;novel-right-contents&amp;quot;]//h1[@class=&amp;quot;title&amp;quot;]/a/@href&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--html&lt;span class="w"&gt; &lt;/span&gt;r18_weekly_ranking.html&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;s/ href=\(&amp;quot;\([^&amp;quot;]*\)&amp;quot;\|\&amp;#39;&lt;/span&gt;&lt;span class="se"&gt;\(&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;^&lt;span class="se"&gt;\&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;*&lt;span class="se"&gt;\)\&amp;#39;\)&lt;/span&gt;/&lt;span class="se"&gt;\2\3\n&lt;/span&gt;/g&lt;span class="s1"&gt;&amp;#39; | \&lt;/span&gt;
&lt;span class="s1"&gt;  sed -e &amp;quot;s#^#http://www.pixiv.net#g&amp;quot; | head -n10 &amp;gt; ranking_urls.txt&lt;/span&gt;

&lt;span class="s1"&gt;xmllint --xpath &amp;#39;&lt;/span&gt;//div&lt;span class="o"&gt;[&lt;/span&gt;@class&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;novel-right-contents&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;//li&lt;span class="o"&gt;[&lt;/span&gt;@class&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;author&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;/a/@data-user_name&lt;span class="s1"&gt;&amp;#39; --html r18_weekly_ranking.html | \&lt;/span&gt;
&lt;span class="s1"&gt;  sed -e &amp;#39;&lt;/span&gt;s/&lt;span class="w"&gt; &lt;/span&gt;data-user_name&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="se"&gt;\(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;\([^&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;*&lt;span class="se"&gt;\)&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;\|\&amp;#39;\([^\&amp;#39;]*\)\&amp;#39;\)/\2\3\n/g&amp;#39; | head -n10 ranking_authors.txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;上から10件が気に入らなければ、tailしたりオプションを変えたりしてください。&lt;/p&gt;
&lt;h2 id="_3"&gt;整形する&lt;/h2&gt;
&lt;p&gt;記事に掲載しやすいように、Markdownの表形式にしてみましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;seq&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;numbers.txt
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;| ID | 小説のURL | 作者名 |&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;table.md
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;|:- |:- |:- |&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;table.md
paste&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;|&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;numbers.txt&lt;span class="w"&gt; &lt;/span&gt;ranking_urls.txt&lt;span class="w"&gt; &lt;/span&gt;ranking_authors.txt&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;s/|/ | /g&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;s/^/| /g&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;-e&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;s/$/ |/g&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;table.md
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;結果はこう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;| ID | 小説のURL | 作者名 |
|:- |:- |:- |
| 1 | http://www.pixiv.net/novel/show.php?id=8195281 | 祭 |
| 2 | http://www.pixiv.net/novel/show.php?id=8194128 | 茉莉花 |
| 3 | http://www.pixiv.net/novel/show.php?id=8198107 | 夏子 |
| 4 | http://www.pixiv.net/novel/show.php?id=8197609 | みとい |
| 5 | http://www.pixiv.net/novel/show.php?id=8196278 | 斎藤 |
| 6 | http://www.pixiv.net/novel/show.php?id=8195245 | なめこ |
| 7 | http://www.pixiv.net/novel/show.php?id=8196089 | 都 |
| 8 | http://www.pixiv.net/novel/show.php?id=8189511 | Kay |
| 9 | http://www.pixiv.net/novel/show.php?id=8195912 | 香子 |
| 10 | http://www.pixiv.net/novel/show.php?id=8189382 | あき |
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="_4"&gt;使う&lt;/h2&gt;
&lt;p&gt;ランキングのデータ。記事での仮IDと小説URL、作者名を示す。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align="left"&gt;ID&lt;/th&gt;
&lt;th align="left"&gt;小説のURL&lt;/th&gt;
&lt;th align="left"&gt;作者名&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align="left"&gt;1&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8195281&lt;/td&gt;
&lt;td align="left"&gt;祭&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;2&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8194128&lt;/td&gt;
&lt;td align="left"&gt;茉莉花&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;3&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8198107&lt;/td&gt;
&lt;td align="left"&gt;夏子&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;4&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8197609&lt;/td&gt;
&lt;td align="left"&gt;みとい&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;5&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8196278&lt;/td&gt;
&lt;td align="left"&gt;斎藤&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;6&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8195245&lt;/td&gt;
&lt;td align="left"&gt;なめこ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;7&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8196089&lt;/td&gt;
&lt;td align="left"&gt;都&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;8&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8189511&lt;/td&gt;
&lt;td align="left"&gt;Kay&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;9&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8195912&lt;/td&gt;
&lt;td align="left"&gt;香子&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;10&lt;/td&gt;
&lt;td align="left"&gt;http://www.pixiv.net/novel/show.php?id=8189382&lt;/td&gt;
&lt;td align="left"&gt;あき&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;p&gt;色々読んで引用しながら感想でも書こうと思ったんですが、なんかpixivの調子が悪そうなのでやめました。&lt;/p&gt;
&lt;h2 id="_5"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;人生経験豊富な法律用語満載アカウントになりたい。人生経験豊富な法律用語満載アカウントになりたいよ……どうやればあんな風にカッコよく自分のルールを話せるようになれるのか……教えてよ……。&lt;/p&gt;
&lt;p&gt;おわりです。今日の完成品は&lt;a href="https://gist.github.com/amane-katagiri/7dce3d9627c1cb53583b1d5d32efd02b"&gt;こちら&lt;/a&gt;。動かす前にfishを入れてください。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>虚無デパート</title><link href="https://ama.ne.jp/post/golden-depart/" rel="alternate"/><published>2017-05-05T15:04:00+09:00</published><updated>2017-12-23T20:55:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-05-05:/post/golden-depart/</id><summary type="html">&lt;p&gt;黄金週間まとめ&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="シャッター" height="393" src="/images/golden-depart/top.jpg" width="750"&gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;地域別の虚無&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;検見川浜&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;南船橋&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;市場前&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;野田市&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;5月2日（検見川浜、南船橋、市場前）および5月4日（野田市）に取材を行った。括弧内は全て最寄りの駅名である。ここでは、いくつか特筆すべき虚無についてまとめようと思う。&lt;/p&gt;
&lt;h2 id="_2"&gt;地域別の虚無&lt;/h2&gt;
&lt;h3 id="_3"&gt;検見川浜&lt;/h3&gt;
&lt;p&gt;&lt;a href="/post/mu/"&gt;前回&lt;/a&gt;に引き続き、検見川浜の団地の取材に赴いた。検見川浜には公団住宅やそうでない団地が密集しており、常に人間とは何か、どう生きるべきかを我々に問うている。&lt;/p&gt;
&lt;p&gt;&lt;img alt="フラクタル" height="500" src="/images/golden-depart/km0001.jpg" width="750"&gt;&lt;br&gt;
駅から徒歩数分。地平線の彼方まで全く同じ建物が続いている様子が分かるだろうか？&lt;/p&gt;
&lt;p&gt;&lt;img alt="家へ帰ろう" height="500" src="/images/golden-depart/km0002.jpg" width="750"&gt;&lt;br&gt;
鬼ごっこ開始までのカウントダウンを高らかに告げていた公園の子どもたちは、どうやって自分の家を探すのだろう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="生活" height="500" src="/images/golden-depart/km0003.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="時間の止まった街" height="500" src="/images/golden-depart/km0004.jpg" width="750"&gt;&lt;br&gt;
奥に見える巨大なマンションが、一枚の写真の中に厳然たる時間的隔絶を作り出している。&lt;/p&gt;
&lt;p&gt;写真を撮り忘れてしまったが、検見川浜の住民が愛用しているだろうイズミヤという複合商業施設を見つけた。2017年5月10日で20年以上の歴史の幕を下ろすとのこと。思わぬ虚無の誕生に心が躍る。&lt;/p&gt;
&lt;h3 id="_4"&gt;南船橋&lt;/h3&gt;
&lt;p&gt;検見川浜から電車で10分ほどの場所に団地を発見した。検見川浜のそれらよりは規模が小さいが、シャッターの下りた団地付属の商店街は虚無の切れ端を見せてくれる。&lt;/p&gt;
&lt;p&gt;徒歩圏内にIKEAとららぽーとがあり、住民の生活に無くてはならないものであることを伺わせる。IKEAの虚ミートボールは一切の天然成分を感じないほどに完成しきった味であった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="テクスチャ" height="500" src="/images/golden-depart/fn0001.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="貯水タワー" height="900" src="/images/golden-depart/fn0002.jpg" width="600"&gt;&lt;br&gt;
URのタワーからは何が見えるのだろう。我々も監視されているのだろうか。&lt;/p&gt;
&lt;h3 id="_5"&gt;市場前&lt;/h3&gt;
&lt;p&gt;市場前の「市場」とは、世に言う豊洲新市場のことである。&lt;/p&gt;
&lt;p&gt;豊洲新市場とは、東京都が総力を挙げて生み出した廃墟であるところの「豊洲市場」の通称である。2年以上にわたる廃墟の建設は他に類を見ず、今後は日本人観光客のみならず外国人観光客をもターゲットにした人気観光地になってもおかしくはない。&lt;/p&gt;
&lt;p&gt;&lt;img alt="誰もいない改札" height="500" src="/images/golden-depart/ty0001.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="誰もいない窓口" height="500" src="/images/golden-depart/ty0002.jpg" width="750"&gt;&lt;br&gt;
がらんとした駅に、無人駅であることを示す貼り紙があった。23区内に無人駅があることに驚きと幻滅を隠しきれず、私はしばし改札の前に立ち尽くしていた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="通行できない歩道橋" height="500" src="/images/golden-depart/ty0003.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="何も知らない案内標識" height="500" src="/images/golden-depart/ty0004.jpg" width="750"&gt;&lt;br&gt;
市場はもちろん、市場周辺のあらゆる構造物はそこに在るべき理由を見失っている。歩道橋の入り口は塞がれているし、案内標識はもはやどこへ案内する気もない。&lt;/p&gt;
&lt;p&gt;とは言え、本来虚無たる廃墟というのはそういうものだ。流石は都営の廃墟といったところだろうか。&lt;/p&gt;
&lt;p&gt;&lt;img alt="主張" height="900" src="/images/golden-depart/ty0005.jpg" width="600"&gt;&lt;br&gt;
飾り以上の意味を持たない看板である。確認できなかったが、夜に光るとより一層虚無であろう。&lt;/p&gt;
&lt;p&gt;門の前で微動だにしない警備員は、いったい何を守っているのか。尋ねたところ、一言「虚無」と答えてそれから何も言わなかった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="墓地" height="500" src="/images/golden-depart/ty0007.jpg" width="750"&gt;&lt;br&gt;
外壁は晴天も相まって非常に美しい。作られたばかりの廃墟はこんなにも魅力的なのだ。&lt;/p&gt;
&lt;p&gt;完成直後のピラミッドもまばゆい輝きを放っていたと聞く。願わくば、この廃墟が数千年もの間残り続けることを。&lt;/p&gt;
&lt;p&gt;&lt;img alt="蟻さえ通さぬ" height="500" src="/images/golden-depart/ty0006.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="虚無への門" height="500" src="/images/golden-depart/ty0008.jpg" width="750"&gt;&lt;br&gt;
どこからも市場の中へ入ることはできなかった。ピラミッドや始皇帝陵のような荘厳さを感じさせるための工夫に違いない。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/golden-depart/ty0009z.jpg"&gt;&lt;img alt="零" height="900" src="/images/golden-depart/ty0009.jpg" width="600"&gt;&lt;/a&gt;&lt;br&gt;
絶対にカウントが増えることのないメーター。こういう遊び心も、都営ならではの工夫であろう。&lt;/p&gt;
&lt;h3 id="_6"&gt;野田市&lt;/h3&gt;
&lt;p&gt;東武鉄道は我々を虚無へと連れていってくれる。&lt;/p&gt;
&lt;p&gt;東武動物公園も鬼怒川温泉も、虚無そのものかあるいは虚無のど真ん中にまっすぐ立っているのだ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="工廠" height="500" src="/images/golden-depart/nd0001.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="田舎小学校" height="500" src="/images/golden-depart/nd0002.jpg" width="750"&gt;&lt;br&gt;
今にも終業式を終えた小学生たちが飛び出してきそうである。&lt;/p&gt;
&lt;p&gt;&lt;img alt="第■駐輪場" height="500" src="/images/golden-depart/nd0003.jpg" width="750"&gt;&lt;br&gt;
とうとう駐輪場の果てを見つけることはできなかった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="横断旗" height="500" src="/images/golden-depart/nd0004.jpg" width="750"&gt;&lt;br&gt;
キッコーマンもの知りしょうゆ館への横断歩道にあった横断旗。なお、館はGW中のため休業であった。&lt;/p&gt;
&lt;h2 id="_7"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;&lt;img alt="なーにちゃん" height="500" src="/images/golden-depart/nd0005.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;私といっしょにもっと虚無を見学しましょう。&lt;/p&gt;</content><category term="shuzai"/></entry><entry><title>SHA-1をぶつけた</title><link href="https://ama.ne.jp/post/sha1/" rel="alternate"/><published>2017-03-04T15:24:00+09:00</published><updated>2017-06-27T01:53:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2017-03-04:/post/sha1/</id><summary type="html">&lt;p&gt;良い大仏と悪い大仏&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;何の話だ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;面白いのか&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;何が起きたの&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#sha-1"&gt;SHA-1がぶつかった&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;インパクト重視のアイデア大賞を受賞した&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;やってみる&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#jpeg"&gt;JPEG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#pdf"&gt;PDF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#pdf_1"&gt;くふうしたPDFをつくる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;くわしく: コメントセグメントを挿入する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#jpeg_1"&gt;今回使えるJPEGペア&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_11"&gt;もっとくふう&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_12"&gt;やってみた&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_13"&gt;成果物&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sha-1_1"&gt;SHA-1ハッシュ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#git-commit"&gt;git commit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#sha-1_2"&gt;SHA-1はあぶない&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;何の話だ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SHA-1ハッシュが同じになるPDFペアを作った。&lt;/li&gt;
&lt;li&gt;それぞれのファイルをgitでcommitしてみた。&lt;/li&gt;
&lt;li&gt;SHA-1はあぶない。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_2"&gt;面白いのか&lt;/h2&gt;
&lt;p&gt;話が古く、みんなやっているので、あまり面白くない。&lt;/p&gt;
&lt;h2 id="_3"&gt;何が起きたの&lt;/h2&gt;
&lt;h3 id="sha-1"&gt;SHA-1がぶつかった&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html"&gt;Googleが上手いことSHA-1がぶつかるデータを作った&lt;/a&gt;のが先週の話。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://shattered.io/"&gt;shattered.io&lt;/a&gt;からPaperを適当に読みます。&lt;/p&gt;
&lt;p&gt;まとめると、&lt;strong&gt;良さげなP(192バイト)を用意して、その後ろに付加するとSHA-1ハッシュが衝突する異なるデータのペア(128バイト)を見つけた&lt;/strong&gt;ということです。まだGoogleの計算資源が頑張らなくちゃいけないレベルではあるが、かなり効率よく発見できた（のかな？）らしい。&lt;/p&gt;
&lt;p&gt;SHA-1ハッシュは512ビット(64バイト)ごとに区切られて計算されます(&lt;a href="https://www.rfc-editor.org/rfc/rfc3174.html"&gt;RFC3174&lt;/a&gt;)。そのため、先頭320バイト(64×5)のSHA-1ハッシュが衝突すれば、その後ろにどんな共通のSを付加してもSHA-1ハッシュは一致しますね。&lt;/p&gt;
&lt;p&gt;強衝突耐性が破られた、ということになります。&lt;/p&gt;
&lt;p&gt;詳しい話は&lt;a href="https://www.slideshare.net/herumi/googlesha1"&gt;こんな感じ&lt;/a&gt;。&lt;/p&gt;
&lt;h3 id="_4"&gt;インパクト重視のアイデア大賞を受賞した&lt;/h3&gt;
&lt;p&gt;「320バイトの衝突ペアを見つけた」と画像もなく（まぁあったとしてハッシュ関数の概念図くらい）伝えるニュースだったとしたら、ここまで大騒ぎにはならなかったかなと。&lt;/p&gt;
&lt;h4 id="_5"&gt;手元にやってくる恐怖&lt;/h4&gt;
&lt;p&gt;今回SHA-1ハッシュぶつかりイベントで面白かった点は、&lt;strong&gt;SHA-1ハッシュが一致する、かつ内容に意味のあるファイルのペアが示された&lt;/strong&gt;ことでしょう。&lt;a href="https://shattered.io/"&gt;shattered.io&lt;/a&gt;のAttack proofから、色が全く違うのにSHA-1ハッシュは一致しているPDFファイルを実際にダウンロードできます。このファイルは先述の通り、先頭から192〜320バイトまでの128バイトだけが異なるデータで、残りの部分は一緒のものです。&lt;/p&gt;
&lt;p&gt;Good docとBad docが並べられ、いかにも世界の終わりを感じさせるInfographicも提供されています。こんなの、もうSHA-1なんて使えない。あぁ、暗号化は、バージョン管理システムは……とみなさん大騒ぎでした。&lt;/p&gt;
&lt;p&gt;ただ今回の攻撃にあたっては、Bad docを作りやすいように（SHA-1ハッシュが衝突しやすいように）工夫してGood docを作っているので、どちらかと言えばBad doc (A)とBad doc (B)を作ってる感じですね。まぁ、最初から&lt;strong&gt;提供者が悪意を持って文書を差し替えようとしているシナリオ&lt;/strong&gt;を考えるとあぶないが、既存の全てのGood文書が今すぐ影響を受けるわけではなさそうです。&lt;/p&gt;
&lt;h4 id="_6"&gt;見せるテクニック&lt;/h4&gt;
&lt;p&gt;今回のSHA-1ハッシュぶつかりPDFで色が変わってる様子ですが、実はSHA-1の衝突自体が直接影響を与えてるわけではないです。関係なくはないんだけど。Good docとBad docが並んでいる絵を見ると、勘違いしがちですよね（斜め読みして勘違いしてました）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;まちがい: お互いに異なっているがSHA-1ハッシュが一致しており、かつ意味のある画像のペアが埋め込まれている。これは恐ろしい。&lt;/li&gt;
&lt;li&gt;せいかい: ほぼ共通の画像データが埋め込まれており、前半部分で条件分岐（のようなこと）をして、前の画像を表示するか後ろの画像を表示するか決めている。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://twitter.com/marcan42/status/835175023425966080"&gt;こういう感じ&lt;/a&gt;で、JPEGのコメントの読ませ方を変えることで、同一のJPEGファイルを違う画像に見せています。SHA1のテクニックというか、JPEGのテクニック。先頭320バイトを知っていれば誰でも作れるし、Googleも90日後には「&lt;strong&gt;違う画像なのにSHA-1ハッシュぶつかりファイルを誰でも作れるマシーン&lt;/strong&gt;」を配るらしいです。計算資源が叩き出した320バイトをそのまま使うのでしょう。&lt;/p&gt;
&lt;p&gt;2つの矛盾する画像が埋め込まれた契約書PDFファイル、今すぐ。&lt;/p&gt;
&lt;p&gt;もう&lt;a href="https://twitter.com/kusano_k/status/835161073481179136"&gt;作った人もいます&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;じゃあ、やってみよう。&lt;/p&gt;
&lt;h2 id="_7"&gt;やってみる&lt;/h2&gt;
&lt;p&gt;大体資料はまとまっているので、本当にやってみるだけですね。&lt;/p&gt;
&lt;h3 id="jpeg"&gt;JPEG&lt;/h3&gt;
&lt;p&gt;JPEGはすごい。画像を圧縮できる。&lt;/p&gt;
&lt;p&gt;JPEGファイルはマーカーとフィールド、あと画像データでできている。今回は中身は基本的にどうでもよくて、正しくマーカーを見つけ出してコメントを挿入できればよい。&lt;/p&gt;
&lt;p&gt;マーカーはプレフィクス&lt;code&gt;b"\xFF"&lt;/code&gt;で始まり、&lt;code&gt;b"\x00"&lt;/code&gt;以外が続けばマーカーである。&lt;code&gt;b"\xFF\x00"&lt;/code&gt;は画像データ中で&lt;code&gt;b"\xFF"&lt;/code&gt;の意味を持つ。マーカー単体、またはマーカー + 長さの記述 + フィールドをセグメントという。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://books.google.co.jp/books/about/JPEG.html?id=AepB_PZ_WMkC"&gt;JPEG: Still Image Data Compression Standard&lt;/a&gt;を見たりしながらマーカーの情報を集めた。&lt;/p&gt;
&lt;h4 id="_8"&gt;フィールドがあるマーカー&lt;/h4&gt;
&lt;p&gt;以下は、固定長もしくは可変長のフィールドが続くマーカーである。フィールド長の固定可変に関わらず、マーカーの後ろに2バイトでフィールド長（フィールド長を宣言する自分自身の2バイトも含む）を宣言し、さらにフィールドを続ける。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xC0&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xC1&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xC2&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xC3&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xC4&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xC5&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xC6&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xC7&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xC9&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xCA&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xCB&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xCC&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xCD&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xCE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xCF&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xDA&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xDB&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xDC&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xDD&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xDE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xDF&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE0&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE1&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE2&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE3&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE4&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE5&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE6&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE7&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE8&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xE9&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xEA&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xEB&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xEC&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xED&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xEE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xEF&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xFE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;スキャン開始(SOS)マーカー(&lt;code&gt;b"\xFF\xDA"&lt;/code&gt;)は特別なマーカーで、セグメントの後ろから画像データが始まる。画像データはフィールド長に含まれず、フィールドがあるマーカーやイメージ終了(EOI)マーカー(&lt;code&gt;b"\xFF\xD9"&lt;/code&gt;)にぶつかるまで続く。&lt;/p&gt;
&lt;h4 id="_9"&gt;フィールドがないマーカー&lt;/h4&gt;
&lt;p&gt;以下は、それ自身のみで記述が完結するマーカーである。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD0&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD1&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD2&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD3&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD4&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD5&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD6&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD7&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD8&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\xD9&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x01&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x4F&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x51&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x52&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x53&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x55&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x57&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x58&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x5C&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x5D&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x5E&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x5F&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x60&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x61&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x63&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x64&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x90&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x91&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x92&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="se"&gt;\xFF\x93&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;イメージ開始(SOI)マーカー(&lt;code&gt;b"\xFF\xD8"&lt;/code&gt;)は特別なマーカーで、一度だけJPEGデータの開始を宣言する。&lt;/p&gt;
&lt;p&gt;EOIマーカーも特別なマーカーで、一度だけJPEGデータの終了を宣言する。EOIマーカーがあることと、それがファイル終端であるかどうかは関係ない。画像を2枚埋め込むとして、1枚目の終端に使えそうだ。&lt;/p&gt;
&lt;p&gt;フィールドがないマーカーが画像データ中に出てきた場合は、EOIでなければ画像データの一部として読み飛ばしてよい。&lt;/p&gt;
&lt;h3 id="pdf"&gt;PDF&lt;/h3&gt;
&lt;p&gt;PDFはすごい。なんてったってポータブル。&lt;/p&gt;
&lt;p&gt;PDFファイルはヘッダとかオブジェクトの宣言が大体テキストで乗っかっていて、間にバイナリがstreamとして入っている。&lt;a href="https://shattered.io/"&gt;shattered.io&lt;/a&gt;で提供されているPDFファイルは、自由に変更できる後ろの部分に画像に関するメタデータが載っており、なんとも改造しやすい。&lt;/p&gt;
&lt;p&gt;先頭はこんな感じ。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;%PDF-1.3
%


1 0 obj
&amp;lt;&amp;lt;/Width 2 0 R/Height 3 0 R/Type 4 0 R/Subtype 5 0 R/Filter 6 0 R/ColorSpace 7 0 R/Length 8 0 R/BitsPerComponent 8&amp;gt;&amp;gt;
stream
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;stream + 改行の後ろからJPEGのバイナリを書いていき、改行 + endstreamで終了する。そこからは先頭から参照されている画像サイズやら何やらのつじつまを合わせていけばよい。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;endstream
endobj

2 0 obj
{width}
endobj

3 0 obj
{height}
endobj

4 0 obj
/XObject
endobj

5 0 obj
/Image
endobj

6 0 obj
/DCTDecode
endobj

7 0 obj
/DeviceRGB
endobj

8 0 obj
{length}
endobj

...(*snip*)...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="pdf_1"&gt;くふうしたPDFをつくる&lt;/h3&gt;
&lt;p&gt;以下のように2枚のJPEG画像を組み合わせて2つのPDFファイル(A, B)を作る。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先頭320バイトを見る。PDFのヘッダ、JPEGのSOIセグメント、JPEGのコメントが記述されている。そのままAとBに書き込む。&lt;/li&gt;
&lt;li&gt;コメントセグメントを挿入しながら1枚目の画像を書き込む。詳細は以下。&lt;/li&gt;
&lt;li&gt;2枚目の画像を書き込む。ただし、SOIはもう宣言されているので飛ばす。&lt;/li&gt;
&lt;li&gt;画像に関するPDF上のメタデータを書き込む。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="_10"&gt;くわしく: コメントセグメントを挿入する&lt;/h3&gt;
&lt;p&gt;コメントをくふうして挿入するために、フィールドがコメントマーカーになっている&lt;code&gt;b"\xFF\xFE\x00\x06\xFF\xFE\x..\x.."&lt;/code&gt;という全長8バイトの「くふうコメント」を考える（上のツイートにおけるinterleaveである）。&lt;/p&gt;
&lt;p&gt;このセグメントを先頭から読めば、単にフィールド長6バイトのコメントがあるように見える。しかし、これを&lt;strong&gt;4バイト飛ばして&lt;/strong&gt;読んだとすれば、&lt;code&gt;b"\xFF\FE"&lt;/code&gt;のコメントマーカーと共に&lt;code&gt;b"\x..\x.."&lt;/code&gt;をフィールド長として読んでしまう。&lt;code&gt;b"\x..\x.."&lt;/code&gt;にうまく値を設定することで、以降のセグメントをいくつかスキップし、さらに次のくふうコメントに飛ばして同様の動作をさせることができる。&lt;/p&gt;
&lt;p&gt;今回は、先頭320バイトに含まれるコメントセグメントのフィールド長の違いから、くふうコメントを発動させる。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;242バイトのパディングを挿入する。これは先頭320バイトから続くコメントフィールドの一部。&lt;/li&gt;
&lt;li&gt;（Aのコメントセグメントが終了した）&lt;code&gt;b"\xFF\xFE\x00\x0E"&lt;/code&gt;と長さ14バイトの新たなコメントセグメントを宣言し、8バイトのパディングを挿入する。&lt;strong&gt;残りは4バイト&lt;/strong&gt;である。&lt;/li&gt;
&lt;li&gt;（Bのコメントセグメントが終了した）しかし、AはここからさらにBより&lt;strong&gt;4バイト余分に読み飛ばす&lt;/strong&gt;ため、くふうコメントが活きてくる。&lt;/li&gt;
&lt;li&gt;1枚目の画像について、2バイトで表現できる範囲までセグメントを読む。ただし、SOIはもう宣言されているので飛ばす。&lt;/li&gt;
&lt;li&gt;読んだセグメント群（次のくふうコメントがあればさらに+4バイト）を読み飛ばすフィールド長を宣言したくふうコメントを挿入し、セグメント群をそのまま書き込む。&lt;/li&gt;
&lt;li&gt;4と5を1枚目のEOIにぶつかるまで繰り返す。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;2の直後に置かれたくふうコメントに引っかかると、1枚目のEOI直後までは全てコメントとして扱われることになる。逆にくふうコメントに引っかからないと、1枚目のEOIにぶつかってJPEGデータが終了する。好都合。&lt;/p&gt;
&lt;h3 id="jpeg_1"&gt;今回使えるJPEGペア&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1枚目は、あまり大きくないもの。画像データの各パートが65529バイトを超えてはいけない(2 + 65529 + 4 = 65535)。&lt;/li&gt;
&lt;li&gt;解像度が同じもの。これはPDFにメタデータを書くときの都合。&lt;/li&gt;
&lt;li&gt;あと、&lt;del&gt;ドヤ顔するためにわざわざ&lt;/del&gt;特殊なJPEGを引っ張ってくると上手く生成できないかも。分からん。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="_11"&gt;もっとくふう&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1枚目の画像はプログレッシブJPEGに変換した。画像データが分割されて使えるJPEGになる。&lt;/li&gt;
&lt;li&gt;どんな長さの画像でも画像データをガチャガチャ分割できたりしないのかな。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_12"&gt;やってみた&lt;/h2&gt;
&lt;p&gt;Googleに倣って、青の大仏(good.jpg)と赤の大仏(bad.jpg)を持ってきた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="青の大仏（左）と赤の大仏（右）の比較写真" height="300" src="/images/sha1/buddha.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;元の大きさの: &lt;a href="/appendices/sha1/good.jpg"&gt;good.jpg&lt;/a&gt;, &lt;a href="/appendices/sha1/bad.jpg"&gt;bad.jpg&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="_13"&gt;成果物&lt;/h3&gt;
&lt;p&gt;ここから、&lt;a href="/appendices/sha1/a.pdf"&gt;a.pdf&lt;/a&gt;と&lt;a href="/appendices/sha1/b.pdf"&gt;b.pdf&lt;/a&gt;を作った。&lt;/p&gt;
&lt;p&gt;a.pdfはくふうコメントに引っかかり、1枚目のgood.jpgをスキップし、2枚目のbad.jpgだけを読んだ。一方、b.pdfはくふうコメントに引っかからず、1枚目のgood.jpgを読んで終了した。&lt;/p&gt;
&lt;h3 id="sha-1_1"&gt;SHA-1ハッシュ&lt;/h3&gt;
&lt;p&gt;SHA-1ハッシュはぶつかった。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ sha1sum a.pdf b.pdf
d2b057375f548eb2c265ab8149223e317fe0349d  a.pdf
d2b057375f548eb2c265ab8149223e317fe0349d  b.pdf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="git-commit"&gt;git commit&lt;/h3&gt;
&lt;p&gt;それぞれを同名のファイルとしcommitした結果はこっち。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a.pdf: &lt;a href="https://github.com/amane-katagiri/test_sha1_collision/tree/sha1_pdf_a"&gt;sha1_pdf_a&lt;/a&gt;(ce729eb...)&lt;/li&gt;
&lt;li&gt;b.pdf: &lt;a href="https://github.com/amane-katagiri/test_sha1_collision/tree/sha1_pdf_b"&gt;sha1_pdf_b&lt;/a&gt;(c487df3...)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;とりあえずコミットした時刻が違うので、コミットハッシュは同じにならなかった。&lt;/p&gt;
&lt;p&gt;まぁ、blobオブジェクトを作る時に余計なモノを付け足す(&lt;code&gt;b"blob 135042\x00"&lt;/code&gt;、135042はファイルサイズ)ので、単純に同じSHA-1ハッシュを持つ異なるファイルを同時刻にコミットしても、違うコミットハッシュになる。残念。&lt;/p&gt;
&lt;p&gt;残念か？&lt;/p&gt;
&lt;p&gt;blob...の部分も含めた衝突が見つかればいいけど、ファイルの長さが含まれているから今回ほど簡単には流用できない。フーム。&lt;/p&gt;
&lt;p&gt;こっちはa.pdfの場合&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ git cat-file -p ce729eba52d6304b80f135bf7d87b2c75e388b3a
tree 34c35e681b372dd25157ab713543ca4ba32e9ad9
parent 0febdb7da92feca1b38aa80ea2310b94b61cb450
author Amane Katagiri &amp;lt;amane@ama.ne.jp&amp;gt; 1488604206 +0900
committer Amane Katagiri &amp;lt;amane@ama.ne.jp&amp;gt; 1488604206 +0900

Add pdf file
$ git cat-file -p 34c35e681b372dd25157ab713543ca4ba32e9ad9
100644 blob f80dcac6ddb00d75af74e039e4eaa9bd4ea50b97    README
100644 blob b6feab8e4b00ec11b0b0bf55c51345c6e5690790    collision.pdf
$ cat .git/objects/b6/feab8e4b00ec11b0b0bf55c51345c6e5690790 | python -c &amp;#39;print(__import__(&amp;quot;zlib&amp;quot;).decompress(__import__(&amp;quot;sys&amp;quot;).stdin.buffer.read())[:100])&amp;#39;
b&amp;#39;blob 135042\x00%PDF-1.3\n%\xe2\xe3\xcf\xd3\n\n\n1 0 obj\n&amp;lt;&amp;lt;/Width 2 0 R/Height 3 0 R/Type 4 0 R/Subtype 5 0 R/Filter 6 0&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;こっちがb.pdfの場合&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ git cat-file -p c487df367e1fd5ccbe55fde68a705841dd60d3cb
tree d9aa567f36547412737b5c89c1c86e57f9fa04eb
parent 0febdb7da92feca1b38aa80ea2310b94b61cb450
author Amane Katagiri &amp;lt;amane@ama.ne.jp&amp;gt; 1488604238 +0900
committer Amane Katagiri &amp;lt;amane@ama.ne.jp&amp;gt; 1488604238 +0900

Add pdf file
$ git cat-file -p d9aa567f36547412737b5c89c1c86e57f9fa04eb
100644 blob f80dcac6ddb00d75af74e039e4eaa9bd4ea50b97    README
100644 blob 9f6e3dcdb8f5f24016fd451e34a59e986fd9e542    collision.pdf
$ cat .git/objects/9f/6e3dcdb8f5f24016fd451e34a59e986fd9e542 | python -c &amp;#39;print(__import__(&amp;quot;zlib&amp;quot;).decompress(__import__(&amp;quot;sys&amp;quot;).stdin.buffer.read())[:100])&amp;#39;
b&amp;#39;blob 135042\x00%PDF-1.3\n%\xe2\xe3\xcf\xd3\n\n\n1 0 obj\n&amp;lt;&amp;lt;/Width 2 0 R/Height 3 0 R/Type 4 0 R/Subtype 5 0 R/Filter 6 0&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;blobに&lt;code&gt;b"blob 135042\x00"&lt;/code&gt;が付いてるのが分かる。&lt;/p&gt;
&lt;h2 id="sha-1_2"&gt;SHA-1はあぶない&lt;/h2&gt;
&lt;p&gt;みんなは……SHA-1って、知ってるかな？　これから先……SHA-1をつかわないようにしようね。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>色盲</title><link href="https://ama.ne.jp/post/blind/" rel="alternate"/><published>2016-12-18T11:15:00+09:00</published><updated>2016-12-18T11:15:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-12-18:/post/blind/</id><summary type="html">&lt;p&gt;純粋II型概念体液は、感情に関係する概念が液体となって具現化したものです。&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="雲のある空を背景に、避雷針が取り付けられた塔が立つモノクロ写真" height="315" src="/images/blind/title.jpg" width="600"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Ｂ子は私が好きだ。たぶん。&lt;/p&gt;
&lt;p&gt;何でも持っているあのＢ子が、どうして私を好きなのかは分からないけど。&lt;/p&gt;
&lt;p&gt;彼女はＡ子よりも少しだけ背が高くて、キスをする時はいつも私に合わせてかがむのだ。Ｂ子は夕陽を背にしてキスをするのがお気に入りで、彼女が私の肩を抱くたびに、綺麗な長髪のフィルターをすり抜けた透き通ったブラウンの光が私に投げかけられる。彼女が身体を揺らすとその光もゆらゆらとついて回って、目を閉じててもその様子がぼんやりと分かるから、キスの間ずっとＢ子が私の手を引いて綺麗な水の中を泳いでいるような気持ちになる。&lt;/p&gt;
&lt;p&gt;少し腰をかがめたＢ子は私と唇を重ね、とろとろとしたものを流し込んでくる。頭の中に広がる海は都会の空気なんかよりはずっと綺麗で、彼女はそれを口移しで私に渡すのだ。Ｂ子が甘い液体を私に注ぐたび、それは色んな所から脳味噌に染んでいって、それから身体の一つ一つがＢ子の色に書き換えられていくように感じる。&lt;/p&gt;
&lt;p&gt;「不思議だわ。あなたにいくら愛をあげても、私の愛はなくならないの」&lt;/p&gt;
&lt;p&gt;彼女がくれる愛が私の中に溜まっていって、それがＡ子とＢ子を切り離すまいとするのだ。そう信じることが、私には永遠かなにかを叶えるまじないのように思えてならなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Ｂ子はいつも思っている。Ａ子の目には、陽射しはどう映っているのだろうかと。&lt;/p&gt;
&lt;p&gt;彼女と放課後の教室で向かい合うたびに、Ａ子は私の知らない目をするのだ。私たちがいるところよりもずっと向こうを見ているような、穏やかで寂しげな視線に、私はなんだか泣きそうになる。あんなに遠くにある太陽の視線が、私よりも暖かくて優しいなら、太陽とキスしたほうがよっぽど気持ちいいと思うから。&lt;/p&gt;
&lt;p&gt;Ｂ子はいつも心配している。Ａ子が私から離れていったりしないかと。&lt;/p&gt;
&lt;p&gt;綺麗なものや汚いものに心惹かれて、どこかへ行ってしまうのではないかと心配してしまう。私より気持ちいい何かに夢中になって、Ａ子の一番が私ではなくなる時がいつかやってくるのだろうか。誰かに乱暴をされて、そのまま拐かされてしまったら、Ａ子はいつまでＢ子のことを忘れられずにいられるだろうか。&lt;/p&gt;
&lt;p&gt;だからいつも私はＡ子に愛を流し込んで、他の誰も入る余地がないように縛り付けているのだ。&lt;/p&gt;
&lt;p&gt;Ａ子は当然そんなこと知らないし、こんな醜い私を教えたくはない。彼女はＢ子を完璧だと言うけれど、私の心はいつもぐちゃぐちゃで、ずっと歪んだ愛で打ち震えている。相手も知れない嫉妬と絶望への妄想が過ぎる日は、彼女に与える愛よりも私に溢れる愛が多くなって、溺れ死んでしまいそうになる。&lt;/p&gt;
&lt;p&gt;今だってそうだ。もっと私を見てほしい。私だけを見てほしい。私の知っているＡ子でいてほしい。&lt;/p&gt;
&lt;p&gt;「私、Ａ子ちゃんの色が欲しいのよ」&lt;/p&gt;
&lt;p&gt;抱きしめて耳元で囁くと、Ａ子の身体がぴくりと跳ねる。夕陽に浮かび上がるその笑顔には、驚きと戸惑いが混じり合っていて、でもそれが段々と無邪気な喜びで隠されていくように見えた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「Ａ子ちゃんが上になるキス、初めてかもね」&lt;/p&gt;
&lt;p&gt;私が太陽を背にして、椅子に座ったＢ子が私を見上げる。いつもは髪を通る陽射しが、今はつやつやと輝く光の輪を作っていた。&lt;/p&gt;
&lt;p&gt;「Ｂ子ちゃんの目、とっても綺麗だよ」&lt;/p&gt;
&lt;p&gt;逆光でよく見えなかったＢ子の瞳も、今ではその明るい茶色の台座に広がる精緻な模様の一つ一つをはっきりと手に取るようにして眺めることができる。瞳孔から放射状に浮き出た無数の筋が、宝石のように整った一つの作品を作り上げているように見えた。&lt;/p&gt;
&lt;p&gt;「ね、早くキスをちょうだい？」&lt;/p&gt;
&lt;p&gt;Ａ子からするキスは初めてで、それほどまでに私はＢ子に寄りかかっていたのだと思う。&lt;/p&gt;
&lt;p&gt;自分の中から取り出した色を口移しでどろどろと流し込んでいくうちに、私は彼女と繋がっていくことを意識する。薄目を開けて彼女の様子を見てみると、目を瞑ったままのＢ子が頬を赤くしながら喉を動かしてこくこくと私の色を飲み込んでいくのが見えて、ひどく興奮した。首元に当たる陽光の影が、Ｂ子の鼓動に合わせて形を変えている。&lt;/p&gt;
&lt;p&gt;冬の教室は寒々しくて、手や脚が心地よいほどによく冷える。身体の中から溢れ出す体液だけがただそこに、熱く流れ出していた。&lt;/p&gt;
&lt;p&gt;何分かそうしているうちに、私の視界がぐらりと揺れて、たちまち世界が灰色に変わっていく。&lt;/p&gt;
&lt;p&gt;「んっ、Ａ子ちゃん……もう、おしまい？　じゃあ、次は私の番ね」&lt;/p&gt;
&lt;p&gt;Ｂ子はそう言っていきなり立ち上がったかと思うと、ちう、と私の唇から何かを吸い出し始める。その不思議な感覚に思わず目を開けると、彼女もまた夕陽にきらめく瞳を私に向けていた。頭の中が何も考えられない気だるい心地よさに覆われていって、私はＢ子から目を離せない。&lt;/p&gt;
&lt;p&gt;見つめ合いながら脳味噌から無理矢理何かが引っこ抜かれる感覚に抗う――あるいは従うようにして背伸びするけれど、それは些細な抵抗で、長いキスが終わるまで唇の端からＡ子の弱々しい喘ぎ声が止むことはなかった。&lt;/p&gt;
&lt;p&gt;彼女はその捕食を終えると、それを口の中で何度か転がしてから、取り出して指でつまんで軽く眺めてから床に落とす。ことっ、と少し硬い音がした。色のない世界で唯一紫に光っているそれは、大きめのビー玉くらいのサイズで、青と赤が混じり合っていない部分がひときわよく輝いている。&lt;/p&gt;
&lt;p&gt;あっ、と私が声を上げるより先に、Ｂ子がその綺麗なビー玉を踏みつける。それは何の抵抗もなく、ぐしゃりと溶けかけの飴玉みたいな音を立てて潰れてしまった。すっかり潰れた飴玉はもう二度とは光らずに、靴と床の間にぬるりと汚い糸を引いたっきり空気にじわりと溶け込んで消えていってしまう。&lt;/p&gt;
&lt;p&gt;「Ａ子ちゃん、私よりえっちだったのね。でも、もうこれからはこんなもの、必要ないのよ？」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;あれから、私にはすっかり色が分からなくなった。灰色の世界で、Ｂ子が私の手を引いてくれる。&lt;/p&gt;
&lt;p&gt;Ｂ子は前より夕陽に見とれる時間が多くなったから、きっと私のプレゼントを気に入ってくれているのだろう。彼女が私を受け容れるたびに、それは彼女と混じり合って新しい色を作っていく。最後には、もはや切り離せなくなるほどにＢ子と一つになっていって、いつか私が持っていた色はこの世からなくなってしまうのだ。&lt;/p&gt;
&lt;p&gt;気持ちいいこともほとんどみんなＢ子が壊してしまったから、私たちのえっちは愛撫も絶頂もキスが全てになった。私たちは毎日のようにキスをして、お互いの頭の中をお互いでいっぱいにした。キスをするたびに下からどろりといやらしい体液が溢れて、そこがとろとろに解れていくけれど、もはやそれに意味はない。軽く触って、また濡れてるわ、とＢ子が軽く笑う。&lt;/p&gt;
&lt;p&gt;夕陽に照らされるＢ子の瞳は深いグレーの輝きを一層増して、前よりもっと綺麗になった。その艶はまるで何度も丁寧にチョコレートでコーティングされているみたいで、Ｂ子とえっちするたびに舐め取って口の中でとろかしてしまいたくなる。Ｂ子はきっとそれを許してくれるけど、我慢できずに両目を食べてしまったら彼女も困るだろうと思って、やめた。&lt;/p&gt;
&lt;p&gt;「Ｂ子ちゃん。私のこと、好き？」&lt;/p&gt;
&lt;p&gt;彼女が私があげたその色で私のことを見ているのだと思うと、見つめ合うたびに顔が熱くなる。でも時々、思うのだ。こんな何もなくなった私でも、Ｂ子は好きでいてくれるんだろうかと。&lt;/p&gt;
&lt;p&gt;「えぇ、好きよ。今までの誰よりも、これから先の誰よりも」&lt;/p&gt;
&lt;p&gt;Ｂ子は私が好きだ。たぶん。私はそれだけで嬉しいのに、Ｂ子がなんで泣いているのか分からない。だから私は目をつぶって、好きだよと言いながら永遠に彼女の手を引いて灰色の海を泳ぐのだ。ずーっと、遠くに向かって。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="http://www.adventar.org/calendars/1829"&gt;百合SS Advent Calendar 2016&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;遅れてごめんなさい。叱るといいと思います。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>白と黒</title><link href="https://ama.ne.jp/post/black-and-white/" rel="alternate"/><published>2016-12-14T01:45:00+09:00</published><updated>2017-09-02T03:30:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-12-14:/post/black-and-white/</id><summary type="html">&lt;p&gt;YOU CAN (NOT) COLORIZE.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://www.adventar.org/calendars/1831"&gt;神絵師 Advent Calendar 2016&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;script&amp;gt;document.write(&amp;quot;今日は 2016/12/14 です、&amp;quot; + document.cookie + &amp;quot;さん！&amp;quot;);&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;表紙を描いた。切り出すと上手く見えるらしいからちょっとだけ見て。&lt;/p&gt;
&lt;p&gt;&lt;img alt="表紙に描かれた女の子の顔をズームアップしたスクリーンショット" height="453" src="/images/black-and-white/cover-part.png" width="700"&gt;&lt;/p&gt;
&lt;p&gt;今まで描いたやつの表紙は&lt;a href="https://amane.im/#works"&gt;こっち&lt;/a&gt;にあるので、良かったら買って。&lt;/p&gt;
&lt;hr&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;僕&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2"&gt;白黒2値の世界観&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2_1"&gt;白黒2値の世界を体験する&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_2"&gt;注意&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;絵を描く&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;取り込む&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;色を塗る&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#newsprint"&gt;newsprint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#2_2"&gt;白黒2値の世界ギャラリー&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2_3"&gt;白黒2値の世界の魅力&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;おまけ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;僕&lt;/h2&gt;
&lt;p&gt;僕は片桐天音（かたぎりあまね）。Twitterは&lt;a href="https://twitter.com/amane_katagiri"&gt;@amane_katagiri&lt;/a&gt;である。&lt;/p&gt;
&lt;p&gt;先日、茨城県某所で作られた&lt;a href="http://www.adventar.org/calendars/1831"&gt;神絵師 Advent Calendar 2016&lt;/a&gt;が、神絵師AC史上かつてない盛り上がりを見せている。飛び入り神絵師が参加したり、参加者が身近な神絵師を誘ったりの大騒ぎだ。&lt;/p&gt;
&lt;p&gt;一方で、僕はほとんど絵を描いたことがないし、某所で行われている神絵師カツドウのやっていきにもあまり乗り切れていない。絵が描けないので、普段は適当な小説を書いてお茶を濁しているくすぶりマンである。&lt;/p&gt;
&lt;p&gt;さて、今日は色のない世界での生活について話そうと思う。もっと言うと、今回は初めての印刷所でガンマ補正もよく分からないので白黒2値の世界の話をしよう。神絵師じゃなくても神絵師ACに参加できるってところ、しかと見ていってほしいね。&lt;/p&gt;
&lt;h2 id="2"&gt;白黒2値の世界観&lt;/h2&gt;
&lt;p&gt;朝起きると、辺りが白くなっていた。黒ベタも黒いドットもほとんどないので、きっと太陽が出ているのだろうと思う。東の方角を見ると、空の一部が真っ白になっていたから、おそらくそうだ。太陽を見ているのだから眩しいふりをしてもよいけれど、まぁ君らの世界でも冬の陽射しはそんなに眩しくないだろうから、眩しくないことにしておく。&lt;/p&gt;
&lt;p&gt;街を歩く人たちに近づいてよくよく見てみると、肌に黒い点がたくさんある。それは毛穴でも病気でもなくて、私たちにとっての肌色なのだ。美白と言うと、それは本当に真っ白になることを指し、日本人がその夢を叶えるのはなかなか難しい。白人娘ばかり集めた風俗というのは、それはそれは高価なもので我々がそうそう行けるものではない。&lt;/p&gt;
&lt;p&gt;食事というとところどころに黒い点のあるご飯を食べることだし、漫画雑誌の巻頭コート紙ページでは、ツルツルの紙にいつもより鮮明なドットが印刷してあるだけだ。君たちにとっての色が付いているものには全て黒い点が散りばめられている。聞くに、グレースケールの世界というのもあって、白と黒の間の色があるらしい。全く想像がつかないな。&lt;/p&gt;
&lt;p&gt;本当はみんなの世界だって2値で構成されているはずなのに、僕らはどこで別れてしまったんだろう。もう分からない。&lt;/p&gt;
&lt;h2 id="2_1"&gt;白黒2値の世界を体験する&lt;/h2&gt;
&lt;h3 id="_2"&gt;注意&lt;/h3&gt;
&lt;p&gt;全編通じて、縮小の影響で2値画像がグレースケール画像に変化したり、モアレが発生している場合がある。&lt;/p&gt;
&lt;h3 id="_3"&gt;絵を描く&lt;/h3&gt;
&lt;p&gt;とりあえず、体験の準備として絵を描いてみてほしい。上質普通紙90kgに黒いボールペンと裏写りしない黒のマジックペンで適当に描いてくれ。申し訳ないが、粗悪な配給品を使ってフローリングに裏写りしたとしても全く責任は取れない。ママには素直に謝って、パパの出世が遅いことを恨もう。&lt;/p&gt;
&lt;p&gt;&lt;img alt="表紙の原案として紙に描かれた絵で、「自動人形」とレタリングされたヘルメットを被り、鉄パイプのようなものを握っている、胸元にリボンのある長袖の学生服を着た長髪の少女" height="800" src="/images/black-and-white/progress0001.png" width="600"&gt;&lt;br&gt;
汚い消しゴムのせいで泥棒ヒゲみたいになった。今日は（僕の）機嫌がいいので目がデカい。&lt;/p&gt;
&lt;h3 id="_4"&gt;取り込む&lt;/h3&gt;
&lt;p&gt;パソコンに取り込んで早速2値化しよう。必要な領域を選択した上で、Colors -&amp;gt; &lt;a href="https://docs.gimp.org/en/gimp-tool-threshold.html"&gt;Threshold&lt;/a&gt; （ja: 色 -&amp;gt; &lt;a href="https://docs.gimp.org/ja/gimp-tool-threshold.html"&gt;しきい値&lt;/a&gt;）を選ぶ。あとで2値化することを考えて描いた絵であれば、あまり閾値を微調整する必要もないだろう。シャーペンで影を付けるのは勝手だけど、中途半端な濃さで塗ると最後に苦労する。&lt;/p&gt;
&lt;p&gt;&lt;img alt="先ほどの原案をスキャンして2値化した画像" height="841" src="/images/black-and-white/progress0002.png" width="600"&gt;&lt;br&gt;
線をアレして色々足していきや削っていきなどをした。&lt;/p&gt;
&lt;h3 id="_5"&gt;色を塗る&lt;/h3&gt;
&lt;p&gt;適当にベタ塗りする。ここからはグレースケール人が行うべき仕事だから、どんな明度のグレーを使っても良い。または、フルカラーで塗った後でグレースケールに変換しても良い。やってみるとおそらくこういうイメージになる。&lt;/p&gt;
&lt;p&gt;&lt;img alt="2値化した画像にモノクロで色を塗った画像で、ヘルメットは白抜き文字で黒く塗られ、制服は濃い灰色、他の部分は薄い灰色で塗られており、鉄パイプの部分に「automation」と「Amane Katagiri」という文字" height="841" src="/images/black-and-white/progress0003.png" width="600"&gt;&lt;br&gt;
ヘルメットを持って角材を握っている、つもり。影を付けたかったが、この絵に付けてもなと思った。&lt;/p&gt;
&lt;h3 id="newsprint"&gt;newsprint&lt;/h3&gt;
&lt;p&gt;白黒2値の世界を体験するにつき、GIMPと呼ばれる素晴らしいソフトウェアにnewsprintという役に立つプラグインがある。これは色を1色(K)、3色(RGB)または4色(CMYK)のドットに分解するものである。&lt;/p&gt;
&lt;p&gt;&lt;img alt="GIMPでFilters→Distors→Newsprintを選んでいるスクリーンショット" height="566" src="/images/black-and-white/scr0001.png" width="534"&gt;&lt;/p&gt;
&lt;p&gt;必要な領域を選択した上で、Filters -&amp;gt; Distorts -&amp;gt; &lt;a href="https://docs.gimp.org/en/plug-in-newsprint.html"&gt;newsprint&lt;/a&gt;（ja: フィルター -&amp;gt; 変形 -&amp;gt; &lt;a href="https://docs.gimp.org/ja/plug-in-newsprint.html"&gt;新聞印刷&lt;/a&gt;）を選ぶ。ドットへの分離方法としては、Intensity（ja: 強度、輝度）を選ぶといいようだ。私には全て同じに見えるのだが、おそらくおまじないみたいなものなのだろう。&lt;/p&gt;
&lt;p&gt;適当にやると、こんな感じに仕上がる。ヘルメット部分のようなベタ塗りの黒は消えてしまうので、Darken Onlyなレイヤを上に置いて黒塗り部分を上書きするなりすると良さげになる。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Newsprintでグレースケールを2値化した画像" height="841" src="/images/black-and-white/cover.png" width="600"&gt;&lt;br&gt;
うーん、へたっぴ。掲載用なのでモアレがジャバジャバ。&lt;/p&gt;
&lt;p&gt;なお、newsprintではなく2値化を使ってやっていきするとこんな感じになってしまう。ただまぁこっちのほうが色々ごまかせて良い。&lt;/p&gt;
&lt;p&gt;&lt;img alt="左から順に、濃い灰色のみ黒くした画像、薄い灰色も黒くした画像、薄い灰色も黒くした上でリボンのみ白に塗り直した画像" height="372" src="/images/black-and-white/cover-another.png" width="794"&gt;&lt;br&gt;
アレみたいですね。&lt;/p&gt;
&lt;h2 id="2_2"&gt;白黒2値の世界ギャラリー&lt;/h2&gt;
&lt;p&gt;似たような方法を使って白黒2値で描いたものを、2014-2015の時系列順に並べた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="筑波大学現代視覚文化研究会の会誌で小説コーナーの扉絵として掲載した、2人の少女がキスをしている線画の上に「進捗どうですか」という文字を1文字ずつ配置した絵" height="847" src="/images/black-and-white/nichi0001.png" width="600"&gt;&lt;br&gt;
線画をペンタブでやった気がする。描けなかったところを隠した。&lt;/p&gt;
&lt;p&gt;&lt;img alt="同扉絵として掲載した、半袖の制服姿の少女を胸の下から膝の上まで描いたもので、スカートの下から太ももに書かれた正の字（9回分以上）がチラリと見えている絵" height="841" src="/images/black-and-white/nichi0002.png" width="600"&gt;&lt;br&gt;
正の字を描いた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="同扉絵として掲載した、上から3分の2程度にぼーっとした少女の顔を描いたもので、左目にはハートマーク、右目にはハートマークと42という数字が映り込んでいる絵" height="847" src="/images/black-and-white/nichi0003.png" width="600"&gt;&lt;br&gt;
42を描いた。&lt;/p&gt;
&lt;h2 id="2_3"&gt;白黒2値の世界の魅力&lt;/h2&gt;
&lt;p&gt;特にない。世界は広いに越したことはないからだ。筆者ももう少し絵や立体の講座などを勉強して世界を広げたほうがいいと思う。&lt;/p&gt;
&lt;h2 id="_6"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;ここまで3000000000000000時間ぐらいかかった。&lt;/p&gt;
&lt;p&gt;明日は、&lt;a href="http://www.adventar.org/users/12343"&gt;hid_alma1026&lt;/a&gt;の予定である。色のある世界を存分に味わってほしい。&lt;/p&gt;
&lt;p&gt;あと、冬コミでこの表紙を見かけたら適当に買っていってほしい。めちゃめちゃ余ると思うのでゆっくり来ていいよ。&lt;/p&gt;
&lt;h2 id="_7"&gt;おまけ&lt;/h2&gt;
&lt;p&gt;&lt;img alt="座っている猫耳の少女を模写したもの" height="810" src="/images/black-and-white/mosha0001.jpg" width="600"&gt;&lt;br&gt;
猫を写した。&lt;/p&gt;
&lt;p&gt;&lt;img alt="スカートをたくし上げている少女を模写したもの" height="840" src="/images/black-and-white/mosha0002.jpg" width="600"&gt;&lt;br&gt;
女を写した。&lt;/p&gt;
&lt;p&gt;&lt;img alt="犬耳を備えたおさげの少女を模写したが、手を描かずに途中で放棄したもの" height="780" src="/images/black-and-white/mosha0003.jpg" width="600"&gt;&lt;br&gt;
手を写す前に飽きた。&lt;/p&gt;</content><category term="drawing"/></entry><entry><title>電波</title><link href="https://ama.ne.jp/post/radio/" rel="alternate"/><published>2016-12-10T09:53:00+09:00</published><updated>2016-12-10T09:53:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-12-10:/post/radio/</id><summary type="html">&lt;p&gt;思春期に、女の子が女の子に興味を持つのは、はしかみたいなものらしい。&lt;/p&gt;</summary><content type="html">&lt;p&gt;この学園の地下には、白く光る綺麗な球体が埋まっていて、そこから不思議な電波が出ているらしい。&lt;/p&gt;
&lt;p&gt;そういう都市伝説が実しやかに囁かれるのを、先生方は良しとしなかった。当然、風紀の乱れに繋がるからだ。しばしば朝会でそういった噂に加担することのないようにと強く呼びかけられたが、数カ月もするとまた出処のしれない新たな情報が出回り始めた。無意味な情報の自然発生が、この学園ではもう少なくとも四年は続いている。四年というのは、私が附属の中学校に入学してからということだから、実際にはもっと古い歴史があるはずだ。中高生はこういう都市伝説とか、怪文書の類が大好きなのだから。&lt;/p&gt;
&lt;p&gt;誰もが何かおかしいとは思っていたけれど、その何かを解き明かす前にみんな卒業していく。そして、後輩や先生方と仲が良かった卒業生も、文化祭にすら訪れなくなるのだ。まるで、もう学園には近づきたくないとでもいうように。&lt;/p&gt;
&lt;p&gt;不思議な電波というのは、この都市伝説の根幹を為す古参の情報の一つである。&lt;/p&gt;
&lt;p&gt;夜になって空気が澄むと、ラジオで電波を受信できるようになって歌が聞こえてくるとか、噂にはそういうロマンチックな部分もふんだんに含ませてある。歌、という非常に曖昧なものですら――曖昧だからこそ――彼女らが噂話を楽しむには良いスパイスになる。その電波が、誰がどこに向けて、何のために放たれているかは明かさないことによって興味を引こうという算段なのだろう。&lt;/p&gt;
&lt;p&gt;実際、この噂を本気にしたせいで、見えない何かに恐ろしさを感じて一人で学園を歩けなくなった生徒が何人かいる。過去には逆に、噂を真に受けて深夜の学校に忍び込んだ末に停学になった者もいたと聞く。とはいえ、中高一貫で長い間この学校に通う私ですら、全く噂の証拠となるようなものを見たことがないのだから、本当にただの噂に過ぎないのだろう。&lt;/p&gt;
&lt;p&gt;そう、思いたいのだけど。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「Ｂ子さん。毎日そんなオカルトに勤しんで、お疲れになりませんの？」&lt;/p&gt;
&lt;p&gt;「オカルトだなんて失礼な。電波を防ぐための処置だよ、御札を貼り付けるなんかよりはよっぽど科学的だと思うけど」&lt;/p&gt;
&lt;p&gt;「その電波、っていうのがオカルトだって言ってるんです」&lt;/p&gt;
&lt;p&gt;謎の電波が出ているという噂で盛り上がる生徒たちにとって、彼女が転校してきたのは衝撃的な出来事だった。&lt;/p&gt;
&lt;p&gt;短髪に鉄のヘルメット姿のＢ子はあまりにも印象的で、それを目下流行りの都市伝説に結びつけようとする者も当然少なくない。出処の知れない情報を本気にした女生徒たちですら、有名な神社の御札や御守を集める程度の対策で収まっていたところに、Ｂ子は初日からピンポイントで電波の対策をしようと言わんばかりの装備で登校してきたのだから当たり前だ。どこで知ったのか、誰が知らせたのか、そこでまた無用な憶測が飛び交った。&lt;/p&gt;
&lt;p&gt;「転校してきたばかりで目立ちたいのは分かりますけれど、その無骨なヘルメットでは悪目立ちするというものですわ」&lt;/p&gt;
&lt;p&gt;「ヘルメットは重いから気に入らないの？　別に金属なら何でもいいんだよ。ここの電波は大量に浴びない限りは平気だから」&lt;/p&gt;
&lt;p&gt;だからキミもやったほうがいい、とカバンからアルミホイルを取り出したＢ子の手を遮って、Ａ子が彼女を睨みつける。&lt;/p&gt;
&lt;p&gt;「結構です。私は都市伝説のような出処の分からない噂に振り回されたりはしませんから」&lt;/p&gt;
&lt;p&gt;「出処の分からない、ねぇ。うんうん、まぁそうだよね」&lt;/p&gt;
&lt;p&gt;この噂の話になると、Ｂ子はいつも曖昧な笑みになる。何か言いたいけれど言えないような、そういう迷いを込めた表情だ。&lt;/p&gt;
&lt;p&gt;「そうですわ。ですから、Ｂ子さんもみなさんを徒に怖がらせて風紀を乱すのはやめてください」&lt;/p&gt;
&lt;p&gt;「私がみんなを怖がらせてるの？　それは筋違いじゃないかなぁ」&lt;/p&gt;
&lt;p&gt;この学園の地下には、白く光る綺麗な球体が埋まっていて、そこから不思議な電波が出ている。その電波は人の思考をコントロールするために出されていて、それを大量に浴びると多かれ少なかれ脳に影響を受ける。少しずつでも長年浴びていると大きな被害を受けることもあるらしい。思想統制の内容については大体の目星はついているけれど、こればかりは確実なことが分かるまで明かせない。&lt;/p&gt;
&lt;p&gt;彼女は大体、こんなことを言った。&lt;/p&gt;
&lt;p&gt;「本当にあるんだよ、白く光る綺麗な球体が。だからキミも手遅れになる前にこの学園を離れるか、ちゃんと電波を防ぐかしないと」&lt;/p&gt;
&lt;p&gt;「バカなことおっしゃらないで！　いい加減にしないと、先生に言いつけますわよ」&lt;/p&gt;
&lt;p&gt;まだ見ぬ地下の球体なるものに、えも言われぬ恐怖を覚えていることを、私は認めたくなかった。自分の中の弱い気持ちを吹き飛ばすような私の大きな声に、Ｂ子は一瞬驚いたようだったけど、それからまた掴みどころのない半端な笑顔でこう言った。&lt;/p&gt;
&lt;p&gt;「ごめん、ごめん。先生は怖いな、やめてくれる？」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;突然転校してきたＢ子を、みんなはなかなか受け入れようとしなかった。怪しいからできるだけ関わらない方がいいだとか、あんな突飛な格好の人と同じ学校だと知られるのは恥ずかしいとか。元々閉じられたお嬢様学校で新参者が入りにくいというのもあるけれど、やはりＢ子のイレギュラーさがそれに拍車をかけていたのだと思う。&lt;/p&gt;
&lt;p&gt;でも、私はどうしてもＢ子のことが気になって仕方なかった。だからいつも、注意をするふりをしてＢ子に声を掛け続けていた。&lt;/p&gt;
&lt;p&gt;そういうのが恋なのよと、前に茶道部の先輩が言っていた。そういうの、と言われたって、それが今の私に当てはまるかは分からない。しかし、心に何かぽかぽかとしたものが流れ込んでくるようなこの気持ちには嘘を吐けなかった。これが恋だというのなら、多分そうなのだろう。&lt;/p&gt;
&lt;p&gt;この学園では、いわゆる女の子同士の恋愛というものがそこかしこで流行っている。&lt;/p&gt;
&lt;p&gt;先生方には怒られるかもしれないけど、この学園の文化と言ってもいい。どうしてか、この学園に長く通っている女生徒たちほど熱烈に愛し合っていた。やはり、女子ばかりの環境に長く置かれているからなのだろうか。放課後の教室や、文化部棟の部室の隅、運動部棟の更衣室……気付くといろいろな場所で、うっかり立ち聞きしてしまった方が恥ずかしくなるような熱い愛を囁いている。&lt;/p&gt;
&lt;p&gt;しかしそんな彼女らも、夏や冬の長期休みが明けるとその多くがカップルを解消していた。彼女らが本気ではなかったのか、それともお互いにもっと魅力的なパートナーを見つけたのかは分からない。ただ、夏になって燃え上がるはずの情熱が、冬になって暖め合うはずの恋慕が、一週間もするとすっかり冷えてしまうのだと口を揃えて語るのだ。一種の風土病のようなものなのかもしれない。&lt;/p&gt;
&lt;p&gt;思春期に、女の子が女の子に興味を持つのは、はしかみたいなものらしい。それに倣うと、この学園の女生徒たちは一斉にはしかにかかって、免疫を獲得して卒業していくのだ。知ったようなことを言っていた茶道部の先輩だって、現役の頃は可愛い部員を取っ替え引っ替え抱いては耳元で好きだと囁いていたらしいから、きっと恋とは何かと訊かれても答えられないだろう。&lt;/p&gt;
&lt;p&gt;一方で、受験生になると彼女らの恋愛関係が長く続くという話もある。休暇を返上してほぼ毎日登校し、長い戦いと共にする仲間の絆のおかげといったところか。まぁ、受験勉強を忘れて情事に励んでいるのはあまり感心しないけれど。&lt;/p&gt;
&lt;p&gt;私なら、生涯Ｂ子の隣で彼女を愛し続けられる。学校に行く度に、そんな根拠のない自信が湧いてくるような気がした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;放課後の教室で、Ａ子がＢ子に愛を告げる。彼女は寂しそうな表情のまま、およそ共に愛を育もうという告白を受けているようには見えない。Ａ子はそれを見て、スカートの裾を軽く握った。夕陽の射す教室はもう冷え込んでいて、立ったまま彼女を待っていたＡ子の脚はすっかり冷え切ってしまっている。&lt;/p&gt;
&lt;p&gt;Ｂ子さん、と小さく呼びかけると、彼女は取り繕うようにしてあの笑顔をＡ子に向ける。私はその笑顔、嫌いなのに。&lt;/p&gt;
&lt;p&gt;「ラジオ、聞いたんでしょ？」&lt;/p&gt;
&lt;p&gt;「え、えぇ。ちょうど、祖父の部屋にあったので、持ち出してきたんです。でも――」&lt;/p&gt;
&lt;p&gt;「昼だから何も聞こえなかった。そうだよね？」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Ｂ子はＡ子を抱き締めたまま、耳元で囁く。耳にかかる吐息に、時折Ａ子は身体を震わせながらその言葉を聞き取った。&lt;/p&gt;
&lt;p&gt;「Ａ子。私のことが好きだって言うのなら、私のために死ねる？」&lt;/p&gt;
&lt;p&gt;「当たり前です。Ｂ子さんのためなら、何だってできますわ」&lt;/p&gt;
&lt;p&gt;じゃあ、Ａ子。私はポケットから固いものを取り出して、Ａ子にそれを押し付けた。&lt;/p&gt;
&lt;p&gt;「私が好きなら、これで腕を切ってみせてよ。できるよね？」&lt;/p&gt;
&lt;p&gt;彼女は恐る恐るそのナイフを受け取る。しげしげとその凶器をくるくる見回してから、腕でいいんですのね、と言った。&lt;/p&gt;
&lt;p&gt;「その鉄帽子も冷たいですけれど、このナイフはもっと冷たく見えますわね」&lt;/p&gt;
&lt;p&gt;私がＡ子を抱く腕を緩めると、彼女は私から離れて受け取ったナイフを机に置く。そしてリボンを外し、上着を脱いだ。するりとブラウスから腕を抜くと、美しい肌とピンクの下着が私の目の前に晒された。精緻なレースの一つ一つがＡ子を包み込んで離さない。&lt;/p&gt;
&lt;p&gt;「制服が汚れると母に叱られるんです。では、やってみせますから。見ていてくださいな」&lt;/p&gt;
&lt;p&gt;「うん、ちゃんと見てるよ」&lt;/p&gt;
&lt;p&gt;私が軽く頷いてから、Ａ子は軽く呼吸を整える。それは一瞬のことだった。&lt;/p&gt;
&lt;p&gt;ナイフの鋭い切っ先が彼女の左前腕に当てられたかと思うと、それが一気に白い肌をなぞる。細い腕を横切るように鮮やかな線分が引かれ、そこから真っ赤な肉がちらと見え隠れする。少し遅れて、そのすぱっと切れた傷から伝わる痛覚が、彼女らしくもない濁った悲鳴を引き起こした。&lt;/p&gt;
&lt;p&gt;私はＡ子の処女をＡ子自身に奪わせたのだ、と思った。&lt;/p&gt;
&lt;p&gt;彼女の綺麗な腕に、ふつふつと暗い赤の珠が線を浮かび上がらせる。徐々にＡ子の息が荒くなり、指が真っ白になるくらいにナイフを握り込んだ。じわり、と傷に浮かぶ血が大きくなり、とうとうそれが床に落ちる。私はどうしてか、ひと呼吸ごとに冷静になっていくような嫌な気分になった。私の情熱とか、興奮とかが全部彼女に持って行かれて、その余分な気持ちの高ぶりが彼女自身に与える痛みを増しているような気さえした。&lt;/p&gt;
&lt;p&gt;「Ａ子、切ったところは痛い？」&lt;/p&gt;
&lt;p&gt;彼女は涙を堪えながら、小さく大丈夫だと答える。まるで涙を流さずその痛みを受け入れることが愛の証拠になると言わんばかりにしている、その様子がむしろ痛々しさを強くしていた。リノリュームの床にぽつぽつと桜の花が咲いて、Ａ子の周りを彩っていく。&lt;/p&gt;
&lt;p&gt;「つ、次は、何をすればいいんですの？　また、どこか、切ってみせましょうか？」&lt;/p&gt;
&lt;p&gt;がっと開いた瞳孔は、彼女が自分自身に与えた痛みのせいか、それとも。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「ねぇ、Ａ子」&lt;/p&gt;
&lt;p&gt;Ｂ子は溜息を吐いた。&lt;/p&gt;
&lt;p&gt;「腕を切れと言われて切るなんて、異常だよ」&lt;/p&gt;
&lt;p&gt;「Ｂ子さんがやれと言ったのですわ。だから、私……」&lt;/p&gt;
&lt;p&gt;Ｂ子は我ながら、身勝手なことを言ったなと思った。やれと言ったからやった。切れと言ったから切ったのだ。不思議そうな表情のＡ子も、まさかこんなことを言われるとは思ってもいなかったろう。&lt;/p&gt;
&lt;p&gt;でもそれじゃあ、ただの傀儡だ。&lt;/p&gt;
&lt;p&gt;私がお願いして、彼女がそれに応えた。何もおかしなことはない。ただそれが絶対的な服従となると、愛と呼ぶには些か重すぎる。&lt;/p&gt;
&lt;p&gt;ふざけてやっただけ。冗談のつもりだった。まさか本当にやるだなんて思わなかった。そんなことを言うつもりはない。Ａ子は絶対に私の命令を聞くのだろうなという、ある種の諦観である。本当なら、誰もこんな無茶をしないことになっているのだ。私みたいなイレギュラーが「実験」しない限りでは。&lt;/p&gt;
&lt;p&gt;「Ａ子の恋愛観は、支配と服従でできているのかい？　Ａ子は私の奴隷になりたいの？」&lt;/p&gt;
&lt;p&gt;「そんなことありませんわ。私はＢ子さんを尊敬していますもの」&lt;/p&gt;
&lt;p&gt;Ａ子も私に視線を返していたようだったけど、真っ黒な瞳から放たれたそれは、もはや彼女の意思を反映したものには見えない。狂気を湛える小さな深淵には、もはや尊敬の念などという人間らしいものは残っていないように見えた。&lt;/p&gt;
&lt;p&gt;「ごめん、Ａ子。やっぱり私はね、あんな洗脳装置に騙されたキミを好きになることはできないよ」&lt;/p&gt;
&lt;p&gt;「洗脳装置？　洗脳ってなんですの、Ｂ子さん？」&lt;/p&gt;
&lt;p&gt;「分かってたんだ。キミはもう手遅れだって。でも、まさか、私にだなんて……」&lt;/p&gt;
&lt;p&gt;「Ｂ子、さん……？」&lt;/p&gt;
&lt;p&gt;首だけを傾げてＢ子を見つめるＡ子を見て、彼女は堪えていたものが溢れ出しそうになってその場に崩れ落ちる。&lt;/p&gt;
&lt;p&gt;「あの頃みたいに、Ｂちゃんって呼んでよ。Ａちゃんをやっと見つけたのに、こんなになってたなんて、やっぱり私、嫌だよ……」&lt;/p&gt;
&lt;p&gt;くしゃりと無理に口元を歪ますけれど、いつもの曖昧な笑顔では誤魔化しきれず、Ｂ子の目の端から涙が一滴こぼれ出た。泣かないと決めていたのに。それと一緒に、我慢していたものが全部崩れていくような気がした。&lt;/p&gt;
&lt;p&gt;「そのナイフ、返して。私がもっと切ってあげるから」&lt;/p&gt;
&lt;p&gt;「えぇ！　お願いします！」&lt;/p&gt;
&lt;p&gt;Ａ子は満面の笑みで、それに応えたのだろう。下からでは夕陽の逆光でよく見えなかったけれど。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;しばらくして、Ａ子は動かなくなった。&lt;/p&gt;
&lt;p&gt;「綺麗だよ、Ａちゃん。目を閉じてると、本当にお人形さんみたい」&lt;/p&gt;
&lt;p&gt;そう言いながら倒れたＢ子の手から、からんとナイフが落ちた。そこに愛があったかは、もう誰にも分からない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;学園に寮が併設されることになったのは、その痛ましい事件があった直後のことである。それからというもの、白く光る綺麗な球体の噂もぱたりと止んでしまった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="http://www.adventar.org/calendars/1829"&gt;百合SS Advent Calendar 2016&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ストロベリィドールという血が出る百合っぽいやつがあります。&lt;a href="https://amane.im/#works"&gt;よかったら&lt;/a&gt;。&lt;/p&gt;</content><category term="lily"/></entry><entry><title>房総の無</title><link href="https://ama.ne.jp/post/mu/" rel="alternate"/><published>2016-12-03T22:50:00+09:00</published><updated>2016-12-10T10:05:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-12-03:/post/mu/</id><summary type="html">&lt;p&gt;ここには、何もないがあります。&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="さわやかトイレ" height="393" src="/images/mu/top.jpg" width="750"&gt;&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;概要&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;旅のいろいろ&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_3"&gt;京葉線&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;外房線&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;大原&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;いすみ鉄道&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;久我原駅&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;久我原&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;上総中野&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;概要&lt;/h2&gt;
&lt;p&gt;11月30日にMt.Shadow(&lt;a href="https://twitter.com/shaman_east"&gt;@shaman_east&lt;/a&gt;)と千葉の田舎くんだりまで取材に赴き、多くの無の観測や撮影に成功した。&lt;/p&gt;
&lt;p&gt;なお、全体の旅程については、彼が書いた以下の記事が写真も多く分かりやすい。この記事では全体についてなぞらないことにする。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://e-shadow.info/post/154210241740/%E6%88%BF%E7%B7%8F%E5%8D%8A%E5%B3%B6%E6%9A%B4%E8%B5%B0%E5%88%97%E8%BB%8A%E6%A8%AA%E6%96%AD%E3%81%AE%E6%97%85"&gt;e-shadow.info - 房総半島暴走列車横断の旅&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://archive.is/nVrcF"&gt;消失に備えてI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://archive.is/92E16"&gt;消失に備えてII&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_2"&gt;旅のいろいろ&lt;/h2&gt;
&lt;h3 id="_3"&gt;京葉線&lt;/h3&gt;
&lt;p&gt;検見川浜という駅の周辺では、昔ながらの団地（分かってほしい、公団住宅でいいのか？）があり、無骨な住居が朝日を浴びながら縦横無尽に並び立っている。いわゆる&lt;a href="https://goo.gl/rM6SSG"&gt;こういうの&lt;/a&gt;である。&lt;/p&gt;
&lt;p&gt;直前にタキ1000形がドカドカ走っているのを見たり、そこらじゅう巨大な構造物しかない工業団地を見たりしてワクワクが止まらなくなっていた私は、これに本当に興奮し、通勤者が眠そうな顔で席に座っている車内で大騒ぎしてしまった。サラリーマン諸氏、平日に遊び歩く大学生を見せつけてごめん。&lt;/p&gt;
&lt;p&gt;話は変わるが、つくばにも公務員住宅と呼ばれるバブルの名残がそこここに点在している。徐々に人がいなくなり、各所が閉鎖されていくさまを見ると、それはまさに&lt;strong&gt;無&lt;/strong&gt;である。&lt;/p&gt;
&lt;p&gt;&lt;img alt="つくば" height="500" src="/images/mu/tkb0001.jpg" width="750"&gt;&lt;br&gt;
これはつくば。&lt;/p&gt;
&lt;p&gt;検見川浜の団地はどうなのだろう。写真を撮る暇も無かったので、もう少し取材する必要がある。&lt;/p&gt;
&lt;p&gt;ちなみにいろいろ探してたら&lt;a href="http://www.greenmax.co.jp/Product/GM2702_urchintaijutaku.htm"&gt;こういうの&lt;/a&gt;がでてきた。すごい。&lt;/p&gt;
&lt;p&gt;あと、海外の公団住宅としては、&lt;a href="https://goo.gl/ChEUIU"&gt;こういうの&lt;/a&gt;がある。行きたい。&lt;/p&gt;
&lt;p&gt;&lt;img alt="プローラ1" height="519" src="/images/mu/prora0001.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="プローラ2" height="515" src="/images/mu/prora0002.jpg" width="750"&gt;&lt;/p&gt;
&lt;h3 id="_4"&gt;外房線&lt;/h3&gt;
&lt;p&gt;7時〜8時台の電車に乗っていると、中高生軍団が通学のため多数乗車する。真面目に単語帳を読む男子中学生とか、仲良しJK4人組とか様々いた。私は電車通学を経験したことがないのだが、車内では懐かしさのあまり60歳くらい若返っていた。&lt;/p&gt;
&lt;p&gt;ただ、脚を組んでダラダラと態度悪く漫画を読んでいた男子中学生が、降車間際になっていきなり女子中学生になったのは驚いた。あれはなんだったんだ。&lt;/p&gt;
&lt;p&gt;思うに、ここではまだ有があったのだろう。千葉は無と有が混在していることが分かった。&lt;/p&gt;
&lt;h3 id="_5"&gt;大原&lt;/h3&gt;
&lt;p&gt;何もなかった。歩けど歩けどまさに&lt;strong&gt;無&lt;/strong&gt;である。いやまさか天の川鉄道乗車券でも買ってしまったのではないかと手元を見てみたが、何度見てもそれはモダンなSuicaカードであった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="いすみ市には無がある" height="800" src="/images/mu/ohr0002.jpg" width="600"&gt;&lt;br&gt;
&lt;a href="/tweet/803746309358305280"&gt;&lt;cite&gt;803746309358305280&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="無の表層" height="563" src="/images/mu/ohr0001.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;11時から営業を始める漁港の食堂を恨みながら、優雅にコンビニ飯で朝食を済ます。ダラダラ歩いていたので次の電車に間に合わず、1時間以上足止めとなる。ここで原稿でも書き始めればよかったのだが、いかんせん歩きすぎて疲れてしまっていた。&lt;/p&gt;
&lt;p&gt;次は車で来るといいと思う。駅の近くではレンタサイクルもやっていた。&lt;/p&gt;
&lt;h3 id="_6"&gt;いすみ鉄道&lt;/h3&gt;
&lt;p&gt;ホンモノの天の川鉄道乗車券を買い、我々はとうとう本当の&lt;strong&gt;無&lt;/strong&gt;へと赴くことになった。&lt;/p&gt;
&lt;p&gt;&lt;img alt="天の川鉄道乗車券" height="800" src="/images/mu/ticket.jpg" width="600"&gt;&lt;br&gt;
&lt;a href="/tweet/803768032459886592"&gt;&lt;cite&gt;803768032459886592&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="電車ではなく汽車" height="500" src="/images/mu/rail0001.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="整理券は出ない" height="500" src="/images/mu/rail0002.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="マニュアルフォーカス" height="500" src="/images/mu/rail0003.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="扇風機スイッチ" height="500" src="/images/mu/rail0004.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;整理券発行機や扇風機スイッチなどあるが、バスでなく、電車でもなく汽車である。&lt;/p&gt;
&lt;h3 id="_7"&gt;久我原駅&lt;/h3&gt;
&lt;p&gt;&lt;img alt="線路1" height="900" src="/images/mu/rail0005.jpg" width="600"&gt;&lt;br&gt;
線路が歪んでいる以外はだいたいいい景色である。&lt;/p&gt;
&lt;p&gt;&lt;img alt="線路2" height="500" src="/images/mu/rail0006.jpg" width="750"&gt;&lt;br&gt;
無から続き、無へと続いていく。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ぼっさん" height="500" src="/images/mu/rail0007.jpg" width="750"&gt;&lt;br&gt;
ぼっさんがいたので撮った。&lt;/p&gt;
&lt;p&gt;&lt;img alt="秘境駅舎" height="500" src="/images/mu/rail0008.jpg" width="750"&gt;&lt;br&gt;
いすみ鉄道はネーミングライツで食いつないでいるらしい。デンタルサポート大多喜駅というのもある。三育学院大学は後述。&lt;/p&gt;
&lt;p&gt;&lt;img alt="神絵師" height="800" src="/images/mu/rail0009.jpg" width="600"&gt;&lt;br&gt;
&lt;a href="http://www.adventar.org/calendars/1831"&gt;神絵師&lt;/a&gt;は無から有を生み出せるのだ。&lt;/p&gt;
&lt;p&gt;&lt;img alt="暗号地図" height="563" src="/images/mu/rail0010.jpg" width="750"&gt;&lt;br&gt;
番号だけが書かれた地図。仲間にしか通じない暗号なのかもしれない。&lt;/p&gt;
&lt;h3 id="_8"&gt;久我原&lt;/h3&gt;
&lt;p&gt;「ひ」の字の夷隅川に囲まれた&lt;a href="https://www.google.co.jp/maps/place/久我原神社/"&gt;集落&lt;/a&gt;であり、大多喜街道側に2本の道路がある以外にほとんど出入り口が見当たらない。綺麗だが一切人の出入りが認められない家や、謎の竹林、多数の野ざらし防火水槽などがあった。住民はほぼ見当たらず、ここにも昔は有があったことを思わせる&lt;strong&gt;無&lt;/strong&gt;がてんこもりである。&lt;/p&gt;
&lt;p&gt;&lt;img alt="無への入り口" height="500" src="/images/mu/kg0001.jpg" width="750"&gt;&lt;br&gt;
街道口の一つで、山を回る側である。&lt;/p&gt;
&lt;p&gt;&lt;img alt="京都" height="500" src="/images/mu/kt0001.jpg" width="750"&gt;&lt;br&gt;
途中で京都に飛ばされた。&lt;/p&gt;
&lt;p&gt;&lt;img alt="夢の跡" height="500" src="/images/mu/kg0002.jpg" width="750"&gt;&lt;br&gt;
ひしゃげた鉄柵。雪かゴジラが来たのかもしれない。&lt;/p&gt;
&lt;p&gt;&lt;img alt="きりん" height="900" src="/images/mu/kg0003.jpg" width="600"&gt;&lt;br&gt;
「きけん」ではなく「きりん」である。久我原にはきりんさんがいる。&lt;/p&gt;
&lt;p&gt;&lt;img alt="百合" height="500" src="/images/mu/kg0004.jpg" width="750"&gt;&lt;br&gt;
夷隅川にかかる橋。目標がないとすぐに引き返してしまうので、この橋は渡りきろうとMt.Shadowを引っ張ってきた。&lt;/p&gt;
&lt;p&gt;なお、橋の名前は失念した。&lt;a href="http://www.saniku.ac.jp/"&gt;三育学院大学&lt;/a&gt;の建設に合わせて造られたらしく、それまで久我原から橋で出ることはできなかったようだ。三育学院大学はキリスト教系の看護学校らしく、寮もある閉鎖空間らしい。百合か、そうでなければ陵辱である。&lt;strong&gt;無&lt;/strong&gt;の真ん中にそびえ立つ建築物を見ながら、我々は流刑地だった頃の筑波大学と同じものを感じながらしばらく涙していた。&lt;/p&gt;
&lt;p&gt;犬がひたすら吠えていて、住民たちに我々の侵入を伝えているのだと思い身構えたが、30分ほどかけて無事に街道口へと戻ってくることができた。ただ、復路に直線の道路を選んだのだが、6万kmくらい歩いた気がする。たぶん呪いだ。&lt;/p&gt;
&lt;h3 id="_9"&gt;上総中野&lt;/h3&gt;
&lt;p&gt;観光で生活していくつもりのない街の冷たさを感じた。20分ほど前に電話して、今から行くぞと伝えた飯屋が閉まっている。コンビニは5km先だという。&lt;strong&gt;無&lt;/strong&gt;ばっかりだ。&lt;/p&gt;
&lt;p&gt;唯一面白そうなものとしてガス井とガス水というのがあり、無から有が湧き出ていた。そこらじゅうが臭かったが、まぁすごい。&lt;/p&gt;
&lt;p&gt;&lt;img alt="ガス井" height="500" src="/images/mu/kz0001.jpg" width="750"&gt;&lt;br&gt;
これがガス井。ちょっと離れたところから川に向けて水がジョロジョロ出ていて、そっちがガス水というらしい。&lt;/p&gt;
&lt;p&gt;&lt;img alt="時の流れ" height="500" src="/images/mu/kz0002.jpg" width="750"&gt;&lt;br&gt;
彼らもおそらく高校生になったのだろう。&lt;/p&gt;
&lt;h2 id="_10"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;&lt;img alt="thx" height="563" src="/images/mu/thx.jpg" width="750"&gt;&lt;/p&gt;
&lt;p&gt;とりあえず団地を絡めた話とか、閉鎖された村の掟の話とかは書く気になったので良かった。&lt;/p&gt;</content><category term="shuzai"/></entry><entry><title>ダム</title><link href="https://ama.ne.jp/post/dam/" rel="alternate"/><published>2016-12-03T00:05:00+09:00</published><updated>2016-12-03T00:05:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-12-03:/post/dam/</id><summary type="html">&lt;p&gt;ふふっ。したいの？　……しよっか&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ａ子は病室にいる。吊るされて動かない両脚と、穏やかに晴れた秋の空を見ながら目覚めた。&lt;/p&gt;
&lt;p&gt;目が覚めてから、一人でいる間はずっとＢ子のことを想っていた。Ｂ子が虚空を見つめてはらはらと、袖で目尻を拭うこともなく、静かに流していた涙の意味を考えていた。&lt;/p&gt;
&lt;p&gt;お前は莫迦だと父親に言われた。母親はその横で女々しく泣いていた。何だってそんなにめそめそ泣いているのかと、そう訊くと母親は幾秒かの沈黙の後で、とうとう声を上げて泣き始めてしまった。その眼差しは困惑か、あるいは失望だったと思う。煩いのは嫌いなのに。泣きたいのは私とＢ子だ。&lt;/p&gt;
&lt;p&gt;担任も教頭と一緒にやってきた。若い、意志の弱そうな男の担任は、面倒事が心底厭だというのが顔に出ている。かの担任は不真面目で成績も悪いＡ子を早々に切り捨てて、受け持つ前から成績優秀なＢ子に目を掛けていた。教頭にＢ子はどうなりましたと訊くと、ぽつりと一言亡くなったよと言うから、まぁそうだろうなと、訊く前から分かっていたような顔をした。&lt;/p&gt;
&lt;p&gt;Ｂ子の両親は来なかった。母親は、私に気を遣って来ないのだと言う。母親はやつれていた。何も気にせずちゃんと寝たほうがいいと言おうと思ったが、また泣かれても困るのでやめた。&lt;/p&gt;
&lt;p&gt;彼らが、Ａ子さんの心身を鑑みて遠慮させていただきます、なんて尤もらしい理由を付けて彼らが来ない気なら、這ってでも殴られに行ってやりたい。Ｂ子が死んだのはお前のせいだ、そら、そら、何故不出来なお前だけ生き残ったのだ、と。その方が、自分が生きてると思えるから。いくら生きてる実感を与えられたって、そんなの何の役にも立たないけど。&lt;/p&gt;
&lt;p&gt;Ａ子はＢ子に餞の言葉を届けられないまま、とうとう一人で誕生日を迎えてしまった。彼女にはどうしてもそれが受け入れがたく、許せなかった。Ｂ子はケーキを買ってきてくれないし、蝋燭に火を点けてもくれない。私はＢ子の十六歳の誕生日をきちんと祝ったのに。Ｂ子は何をしてるんだろう。&lt;/p&gt;
&lt;p&gt;あのテニスラケットはどうなっただろう。Ｂ子、元気かなぁ。&lt;/p&gt;
&lt;p&gt;「元気も何も、死んじゃってるんだけどね、はは」&lt;/p&gt;
&lt;p&gt;Ａ子は誰もいない病室で一人せせら笑う。&lt;/p&gt;
&lt;p&gt;天国があるならそれでいい。どちらにせよ、Ｂ子には会うのだ。私のことをずっと好きでいてくれるＢ子に。だから、もうこの世界に意味などなかった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「Ｂ子。天国には、宿題がないといいね」&lt;/p&gt;
&lt;p&gt;歩きながら、Ａ子はおよそこんなことを言った。&lt;/p&gt;
&lt;p&gt;Ａ子がＢ子の手を引いて、車止めをすり抜けた。防寒具一つ身に付けない冬服姿の彼女たちは、突き刺さるような寒さを少しも感じさせない軽やかな歩みで天端を進んでいく。&lt;/p&gt;
&lt;p&gt;「そうね、Ａ子ちゃん。きっと、ないわ。大学受験もね」&lt;/p&gt;
&lt;p&gt;天端は幅にして六メートルほどで、二人で並んで歩く分には何の不自由もない。もっとも、今から死のうとする私たちには、天国へ続く道の幅が何メートルあるかなんてどうでもよいのだ。&lt;/p&gt;
&lt;p&gt;無機質なＬＥＤの白い光を放つ街灯が、等間隔に並んで私たちを冷たい死へと導いていく。顔を見せたばかりの月は、抉られた半月の月明かりをダム湖の水面で静かに揺らしていた。この湖をぼんやり見ながら歩いていると、まるで橋を渡っている気分になる。そうすると、さしずめここは三途の川とでもいったところか。&lt;/p&gt;
&lt;p&gt;よく冷えた水に、深く深く、手を繋いだまま沈んでいく。そんな終わりでもいいかもしれない。水の底には冷たい死があって、私たちはそこでキスをして永遠を誓い合うのだ。ずっと、ずっと身体が沈みゆく感覚に身を任せて。&lt;/p&gt;
&lt;p&gt;暑い夏の日に、学校を抜け出してアイスを食べた。雄大な山の景色に囲まれて、ずっと一緒だよと、何度もキスをしたのを思い出す。Ａ子のずっとと私のずっとは、いつの間にかすれ違っていた。それなら今こうやって、無理矢理にでもくっつけてしまえばいい。この狭間では何をしたっていいのだから。&lt;/p&gt;
&lt;p&gt;「ぼーっとしてるね、Ｂ子？　どうしたの？」&lt;/p&gt;
&lt;p&gt;どどどどどどと、滝のような音が大きくなって私は我に返った。天端も中程まで来て、すぐそこで水が流れ落ちているのだ。&lt;/p&gt;
&lt;p&gt;「私たち、ここで、キスしたわよね。夏の暑い日に」&lt;/p&gt;
&lt;p&gt;Ａ子はきょとんとしたような表情の後に、にやにやとして私にくるりと身体を向けた。スカートの裾がふわりと跳ねる。&lt;/p&gt;
&lt;p&gt;「ふふっ。したいの？　……しよっか」&lt;/p&gt;
&lt;p&gt;こくっ、と頷いてから、私たちは手を繋いだままキスをした。流水の騒音に任せて、二人は好きだと言い合った。脳に直接響く声がくらくらとした甘い刺激を作り出す。見つめ合うＡ子の舌は熱くって、私の舌が火傷しそうになる。&lt;/p&gt;
&lt;p&gt;「二人とも処女のまま死ぬのって、なんかすごく興奮する。そうじゃない？」&lt;/p&gt;
&lt;p&gt;変態みたいだなと思ったけど、私まで変態になるのは嫌だから、そうねと軽く返した。&lt;/p&gt;
&lt;p&gt;それから、私たちはどちらからともなくローファーを脱ぎ、つま先を向こうにして丁寧に揃えた。そして静かに欄干へ上り、最後にさっきより固く手を繋ぐ。決まりきった儀式のようにして。安っぽい銀色の欄干はよく冷えていて、靴下を脱いでいたら引っ付いて離れなくなっていたところだ。&lt;/p&gt;
&lt;p&gt;力を込めて赤くなった掌を包み込んでくれたＡ子の手は暖くて、それだけで顔まで熱くなりそうだった。&lt;/p&gt;
&lt;p&gt;上から見る小さな発電所が汚い緑色に光っているのを見ながら、私はこの世界からの離脱を覚悟した。死という未知に恐怖、あるいは興奮しているのも相まって、Ｂ子の膝は少し震えていた。無骨な欄干は、もはや私たちがそこに立ち続けるには心許ない。&lt;/p&gt;
&lt;p&gt;Ｂ子がＡ子の掌を強く握ると、彼女も冷たく汗ばんだ私の手を優しく握り返してくれる。Ａ子はそれから、何も言わずに私の頬を撫でた。暖かかったけど、彼女の手は濡れていた。&lt;/p&gt;
&lt;p&gt;「私たち、今から死ぬんだよ。泣いてちゃつまらないよ」&lt;/p&gt;
&lt;p&gt;私は慌てて、ごめんなさい、と袖で目を拭う。何度か深呼吸をして、私は自分に言い聞かせるように声を出して頷いた。&lt;/p&gt;
&lt;p&gt;「Ｂ子の死ぬとこ、見たかったな」&lt;/p&gt;
&lt;p&gt;きっと綺麗なんだろうな。&lt;/p&gt;
&lt;p&gt;「私も、Ａ子がどんな風に死ぬのか、見たかったわ」&lt;/p&gt;
&lt;p&gt;きっと綺麗に違いないわ。そして最後にもう一度と、私たちは熱い視線を交わす。漏れ出る吐息の温度を感じながら、Ｂ子はやっぱりまた涙が零れてしまいそうになった。&lt;/p&gt;
&lt;p&gt;「手、離さないでね」&lt;/p&gt;
&lt;p&gt;「うん、離さないよ」&lt;/p&gt;
&lt;p&gt;Ａ子もＢ子も死ぬならここだとお互いに考えていたのだろうなと、初めてここでキスをしたときからそう考えていたのだろうなと、今になってやっと思う。心臓の音が放水よりもうるさくなって、Ｂ子は吐きそうになった。&lt;/p&gt;
&lt;p&gt;二人は目を見てお互いに軽く頷く。身体を前へ倒すと、ふわりと足が離れた。それは一瞬のことで、その間Ａ子はずっと微笑んだままだった。私もちゃんと笑えているのかな。&lt;/p&gt;
&lt;p&gt;重力に引かれゆく中で、ふつりと、街灯の光が消えたような気がした。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;あれから一週間くらい、Ａ子の様子が変だった。私に何か言いたげで、でもどうしてかそれを躊躇っている。Ａ子はいつだって自分に素直なはずなのに。彼女はしたい時にキスをして、したい時に抱きしめるのだ。私がそれを拒まないのを知っているから。&lt;/p&gt;
&lt;p&gt;時折Ｂ子からそうしてあげると、Ａ子は社会的な満足と肉体的な満足が一緒になったような顔をする。&lt;/p&gt;
&lt;p&gt;「Ｂ子、私と一緒に死のうよ」&lt;/p&gt;
&lt;p&gt;それから、思い詰めたような顔をして、彼女はそんなことを言った。&lt;/p&gt;
&lt;p&gt;「あら、どうして？」&lt;/p&gt;
&lt;p&gt;「勉強、辛いって言ってたでしょ？　助けてあげる。いつものダムで、飛び降りるの」&lt;/p&gt;
&lt;p&gt;ダム、と聞いてＢ子は少しぞくりとした。&lt;/p&gt;
&lt;p&gt;通学路の途中にダムがあって、私たちはそのダム湖を望みながら毎日通学している。湖の向こうには刑務所があって、小さい頃は刑務所の見える通学路を逃げるように通り抜けたことをよく覚えている。得体の知れない何かが確かにそこにあるという、言いようもない恐怖があった。&lt;/p&gt;
&lt;p&gt;私たちと向こう側には湖という確かな隔絶があって、正しいことと正しくないことを二つにすっかり分けているようにも思われるのだ。だからダムの天端に立ってその狭間にいると、正しくあることもそうでないことも強いられない、何にも縛られていない私を感じられた。何をしたっていい、そう思うとＢ子は自然とＡ子に唇を重ねてしまう。Ａ子は私をよくそこへ連れて行きたがった。&lt;/p&gt;
&lt;p&gt;「大丈夫よ。死ぬほどじゃないし、あなたを道連れにするつもりはないわ」&lt;/p&gt;
&lt;p&gt;「いいから！　今夜、Ｂ子の家に行くからね、分かった？」&lt;/p&gt;
&lt;p&gt;Ａ子は苛々して声を荒らげる。&lt;/p&gt;
&lt;p&gt;Ｂ子が「テニス部を辞めて東京の大学に行く勉強をする」と用意もなくＡ子に伝えたのは、卒業しても遠距離恋愛でも頑張ろうね、だなんて甘い考えのせいではない。それでも彼女は頑張って私に着いてきてくれるだろうという期待と、私たちにはいつか終わりが来るんだと突き放そうとする気持ちが入り混じっていた。&lt;/p&gt;
&lt;p&gt;Ａ子は私との永遠が欲しいのだ。Ａ子は悩みながらもずっと、Ｂ子との永遠の未来をまっすぐ見つめていた。そんな彼女が無理にでも私との永遠を作り出そうというのは、素直なＡ子らしい結論だと言える。&lt;/p&gt;
&lt;p&gt;Ｂ子が勉強を苦にして自殺するだなんて、彼女は当然思っていない。本当は、Ａ子だって分かっているのだ。永遠なんてないことを。Ａ子もＢ子もいつか制服を脱いで大人になることを。彼女は私が諦めた永遠を、もがき続けて手に入れようとしているのだ。&lt;/p&gt;
&lt;p&gt;Ａ子はなんて不器用で可愛いんだろう。全力の愛に、私はいつも陶酔してしまう。だから、この期限付きの恋愛感情に任せて人生全部を彼女との永遠に捧げてしまっても、別に後悔はない。そう思う。&lt;/p&gt;
&lt;p&gt;「えぇ、分かったわＡ子ちゃん。ありがとうね、好きよ」&lt;/p&gt;
&lt;p&gt;「私も好きだよ、Ｂ子。本当に、好きでたまらないの」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;校長によると、春にアンケートで「学校生活は楽しいですか」と問われた彼女たちは、二人とも「はい」と回答していた。いずれも悩みなどは書いていなかった。その一方で、二人のうち死亡した十六歳の少女は、最近になって部活を辞めたばかりだったという。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="http://www.adventar.org/calendars/1829"&gt;百合SS Advent Calendar 2016&lt;/a&gt;&lt;/p&gt;</content><category term="lily"/></entry><entry><title>ループカウンタに浮動小数点数を</title><link href="https://ama.ne.jp/post/ieee754/" rel="alternate"/><published>2016-11-15T02:27:00+09:00</published><updated>2016-11-15T02:27:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-11-15:/post/ieee754/</id><summary type="html">&lt;p&gt;気持ちシリーズ&lt;/p&gt;</summary><content type="html">&lt;p&gt;気持ちシリーズの初回は、「ループカウンタに浮動小数点数マンズの気持ちが知りたい」です。ほんとは&lt;a href="/category/ugoki/"&gt;#ugoki&lt;/a&gt;に置きたかった……。&lt;/p&gt;
&lt;p&gt;話題にしたいのは、範囲よりも回数に意味を置くループカウンタね。&lt;/p&gt;
&lt;p&gt;2016年にもなって、まだこういう問題&lt;sup id="fnref:badquiz"&gt;&lt;a class="footnote-ref" href="#fn:badquiz" title="https://twitter.com/codeiq_moffers/status/795762793676881921 （浮動小数点数をループカウンタに使用した際に、ループ回数が直感よりも1回大きくなるという旨の問題が出題されていました）"&gt;1&lt;/a&gt;&lt;/sup&gt;やってたんですね。正解は11回。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;「なぜ11回だと判るのですか？　市民」&lt;br&gt;
&lt;a href="http://paranoia.newgamesorder.jp/"&gt;&lt;cite&gt;市民の嗜み&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;いつも思ってるんだけど、「直感で10回だと思って、しかもそう答えた人はプログラミングやめたほうがいいです。正解は11回でした」ってなんの役にも立たなくない？&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;わざわざ浮動小数点数のループカウンタなんていうバッドプラクティスを持ち出してくるところがクソ。&lt;a href="https://www.jpcert.or.jp/java-rules/num09-j.html"&gt;浮動小数点数型変数をループカウンタとして使用しない&lt;/a&gt;で。浮動小数点数を使うという無駄な選択肢を記憶に残したくない。&lt;/li&gt;
&lt;li&gt;「は〜なんか小数だと1回多くなるんやな。よっしゃ覚えた！　次は間違わんとこ！」で何も学ばずに終わりそうなところはもっとクソ。この問題についての解説はないらしいし。別に探せばいくらでも出てくるけど、ちょっとそれは違うんじゃないか。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;確かに、世の中には&lt;a href="http://amzn.asia/eIUmgba" title="同居している女性たちの月経が同期する"&gt;クイズでしか役に立たない知識&lt;/a&gt;もあるわけだけど、ITエンジニアのための実務スキル評価サービス&lt;sup id="fnref:codeiq"&gt;&lt;a class="footnote-ref" href="#fn:codeiq" title="https://codeiq.jp/"&gt;2&lt;/a&gt;&lt;/sup&gt;が本番で誰も使わないことをクイズでやってどうするの。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;知りたいのは市場価値ではなく、自分の&lt;strong&gt;スキルがその企業で求められる&lt;/strong&gt;か。CodeIQで、企業の第一線のエンジニアによる&lt;strong&gt;実践的な問題&lt;/strong&gt;に挑戦！その企業におけるリアルな評価がわかります。気になるあなたは、まずはトライしてみてください！&lt;br&gt;
&lt;cite&gt;CodeIQ｜ITエンジニアのための実務スキル評価サービス&lt;/cite&gt;&lt;sup id="fnref2:codeiq"&gt;&lt;a class="footnote-ref" href="#fn:codeiq" title="https://codeiq.jp/"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;実は求められてるスキルで、本当はみんな実務で使ってるのか？&lt;/p&gt;
&lt;p&gt;以下、時系列順の人間です。&lt;/p&gt;
&lt;p&gt;↓これ僕です&lt;/p&gt;
&lt;p&gt;&lt;a href="/tweet/796508699774763008"&gt;796508699774763008&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/tweet/796508760617336832"&gt;796508760617336832&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;↓こっちはRTしてくれた人です&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/nonamea774/status/796510683487580160"&gt;796510683487580160&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/KHiyowa/status/796511450260914176"&gt;796511450260914176&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以上、人間でした。&lt;/p&gt;
&lt;p&gt;IEEE754についての知識や経験の有無と、これをクソ問題だと思うかどうかは話が別だと思うけど。&lt;/p&gt;
&lt;p&gt;10進数を2進数で処理してるところに原因があるんだって示さない限りは、結局学びのないクソ問題のままじゃないのかな。それに、経験したことがあるなら、それこそこんな問題嫌うと思う。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;それ、本気で言ってます？　僕に「IEEE754」の話させたら長くなりますよ？&lt;br&gt;
&lt;cite&gt;IEEE754ギョーカイに詳しい人&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;こういう問題好きそうな人たち、Pythonで適当なメソッドに複数回ジェネレータ食わせるのとか好きそう。「1回目と2回目で挙動が違う！　これはクイズになるぞ！」とか騒ぐ気がする。いやこれは偏見。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;# ルウプの様子&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;     &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;     &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;     &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;         &lt;span class="k"&gt;break&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1.0999999999999999&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;# ジェネレイタアの様子&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;seq&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;seq&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;49&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;81&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;seq&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;# スコオプの様子&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;     &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="c1"&gt;#スコオプの様子その2&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;func&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;     &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="o"&gt;...&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;func&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;func&lt;/span&gt;
&lt;span class="ne"&gt;UnboundLocalError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;local&lt;/span&gt; &lt;span class="n"&gt;variable&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;g&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;referenced&lt;/span&gt; &lt;span class="n"&gt;before&lt;/span&gt; &lt;span class="n"&gt;assignment&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;こういうことはするな。上手いことやろうね。&lt;/p&gt;
&lt;p&gt;直感では分からない技巧プログラミング、中学生が好きそう。魔法みたいだから。みんなも魔法好きですよね。僕も実務で使わない限りでは好きです。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:badquiz"&gt;
&lt;p&gt;https://twitter.com/codeiq_moffers/status/795762793676881921 （浮動小数点数をループカウンタに使用した際に、ループ回数が直感よりも1回大きくなるという旨の問題が出題されていました）&amp;#160;&lt;a class="footnote-backref" href="#fnref:badquiz" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:codeiq"&gt;
&lt;p&gt;https://codeiq.jp/&amp;#160;&lt;a class="footnote-backref" href="#fnref:codeiq" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:codeiq" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>近況</title><link href="https://ama.ne.jp/post/recentness/" rel="alternate"/><published>2016-11-15T02:17:00+09:00</published><updated>2016-11-15T02:17:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-11-15:/post/recentness/</id><summary type="html">&lt;p&gt;それっぽいのはタイトルだけ&lt;/p&gt;</summary><content type="html">&lt;p&gt;最近色々やりたいことができてきたので、まとめておこうね。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#amane_katagiri"&gt;話:かたぎりあまね(@amane_katagiri) に&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#24"&gt;24時間大騒ぎ可能更衣室付き総合目的レンタルスペースで&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_1"&gt;星新一ショートショートを&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="amane_katagiri"&gt;話:かたぎりあまね(@amane_katagiri) に&lt;/h2&gt;
&lt;p&gt;なりたい。&lt;/p&gt;
&lt;p&gt;あれってどうやったらなれるんですかね。&lt;/p&gt;
&lt;p&gt;起業してからしばらくはめっちゃ尽力して、会社がデカくなってからは創業者として楽に文句言える席を必死に確保するみたいな話なのかな。アイディア早押し勝負みたいな感じで。&lt;/p&gt;
&lt;p&gt;ちゃんと原案が書かれてるのってすごく正しいんですよね。「TLで見たので描いてみましたよ！（見たツイートのリンクはないよ）」とか、「今日、駅でこんなエッチな女子がいた（萌えポイントが書き込まれた絵）」とか、他人を食い物にして承認欲求満たしてる絵師は見習ってほしい。&lt;/p&gt;
&lt;p&gt;正しいから僕も 話:かたぎりあまね(@amane_katagiri) になりたくなってきたぞ。アー！&lt;/p&gt;
&lt;p&gt;とは言え、日常系とか〇〇にありがちなこと集みたいな4コマ漫画って絵がないと全く成立しないし、話って何を出せばいいんだろうな……。あるあるネタって、誰でも（絵描き担当でも）思いつきそうなものに絵が付くからやっと面白いのであって、そのネタ部分だけでわざわざ名前を載せてもらうのもフルフェイス鉄面皮って感じがするんだよな。&lt;/p&gt;
&lt;p&gt;4コマ漫画雑誌とか全然読まないけど、そこらへんの4コマ漫画における絵と話の分業事情ってどうなってるんだ。&lt;/p&gt;
&lt;p&gt;実際どうなんだろう。分業してるなら、まだまだキャラ設定とかストーリーだけやるチャンスがありそう。やりたいな、絶対やるぞ。&lt;/p&gt;
&lt;h2 id="24"&gt;24時間大騒ぎ可能更衣室付き総合目的レンタルスペースで&lt;/h2&gt;
&lt;p&gt;ツイキャス配信したいなぁなんて。&lt;/p&gt;
&lt;p&gt;この前ね、面白いものを見たんだけど、なんでもできる24時間営業のレンタルスペースがあるらしいの。とりあえず目的は会議ってことにしとけば大体ごまかせるみたい。しかもたぶん無料！　噂が広まると予約埋まっちゃうから内緒だよ？　部屋には間仕切りがあってそこを更衣室としても使えるみたい。&lt;/p&gt;
&lt;p&gt;部屋自体はとりわけ綺麗ってわけじゃないんだけど、ぬいぐるみとかもいっぱいあってすっごくキュート！　机と椅子に、電源とネットも完備？でゲームとかもできるみたいです。&lt;/p&gt;
&lt;p&gt;まだ申込みの窓口が見つからない（インターネットからはできないのかな）のと利用規約みたいなものも分からなかったので、まだ検討中なんですけど、みんなで集まって24時間耐久コスプレカラオケでもできたらなぁなんて。更衣室もあるから途中で衣装交換もできますね。&lt;/p&gt;
&lt;p&gt;日程もまだ調整中です、すみません。決まり次第かきます。交通費の都合で来られない遠方のみなさんも、配信を見ていっぱいコメントしてくれると嬉しいです。&lt;/p&gt;
&lt;p&gt;なお、あまね軍団として一緒に参加してくれる人はメールまたはDMでいつでも参加表明してくださいね。途中からの入室もできるようなので途中参加も全然おっけーです！&lt;/p&gt;
&lt;p&gt;待ってま〜す。&lt;/p&gt;
&lt;h2 id="_1"&gt;星新一ショートショートを&lt;/h2&gt;
&lt;p&gt;読みたい。&lt;/p&gt;
&lt;p&gt;夢で見た&lt;a href="/tweet/798098401459961856"&gt;この作品&lt;/a&gt;を探してる。&lt;/p&gt;
&lt;p&gt;オチも分かってるしまぁ見つからなくても……って感じもあるけど、ちょっと気になるかな。&lt;/p&gt;
&lt;h2 id="_2"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;僕も今から東大女子になって毎月お小遣い貰いたい……。&lt;/p&gt;
&lt;p&gt;あと個人的なことですが、まんがタイムきらら12月号から3号分だけは買ってみるといいです。僕は買います。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>Pelicanを導入した</title><link href="https://ama.ne.jp/post/intro-pelican/" rel="alternate"/><published>2016-11-05T12:55:00+09:00</published><updated>2022-02-05T09:52:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-11-05:/post/intro-pelican/</id><summary type="html">&lt;p&gt;モダン&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#markdown-del-ins"&gt;markdown-del-ins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mdx_cite"&gt;mdx_cite&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mdx_unimoji"&gt;mdx_unimoji&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#toc"&gt;toc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#footnotes"&gt;footnotes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#checklistin-pymdown-extensions"&gt;checklist(in pymdown-extensions)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#dl"&gt;dlで定義リストを作成します&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#table"&gt;tableで表を作成します&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_1"&gt;#でヘッダを記述します&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#h2"&gt;これはh2です。&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#-"&gt;*+-でリストを記述します&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;&amp;gt;で引用します&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;コードはバッククオートで囲んで記述します&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;その他のマークアップです&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#b-i"&gt;b, i&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#hr"&gt;hr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#a"&gt;a&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#img"&gt;img&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;いい加減オレオレCMSも嫌になってきたので、GitHub Pagesで静的サイトを公開するという3億年前くらいの流行りを取り入れることにした。&lt;/p&gt;
&lt;p&gt;ついでにCloudflareを挟んでみたり。&lt;/p&gt;
&lt;p&gt;それにあたってmarkdownに拡張をガン盛りして&lt;a href="https://guides.github.com/features/mastering-markdown/"&gt;GFM&lt;/a&gt;ライクにしたので、ここに喜びを記しておきます。&lt;/p&gt;
&lt;h2 id="markdown-del-ins"&gt;&lt;a href="https://pypi.org/project/markdown-del-ins/"&gt;markdown-del-ins&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;GFMライクな~~取り消し線~~の追加や++挿入部分++の明示ができます。
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;GFMライクな&lt;del&gt;取り消し線&lt;/del&gt;の追加や&lt;ins&gt;挿入部分&lt;/ins&gt;の明示ができます。&lt;/p&gt;
&lt;h2 id="mdx_cite"&gt;&lt;a href="https://pypi.python.org/pypi/mdx_cite"&gt;mdx_cite&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&amp;quot;&amp;quot;&amp;quot;引用元の資料&amp;quot;&amp;quot;&amp;quot;を`&amp;lt;cite&amp;gt;content&amp;lt;/cite&amp;gt;`で囲みます。
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;cite&gt;引用元の資料&lt;/cite&gt;を&lt;code&gt;&amp;lt;cite&amp;gt;content&amp;lt;/cite&amp;gt;&lt;/code&gt;で囲みます。&lt;/p&gt;
&lt;h2 id="mdx_unimoji"&gt;&lt;a href="https://pypi.python.org/pypi/mdx_unimoji/"&gt;mdx_unimoji&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I &lt;img alt=":heart:" class="emoji" height="16" src="/emojis/2764.png" width="16"&gt; you! Just kidding. &lt;img alt=":stuck_out_tongue:" class="emoji" height="16" src="/emojis/1f61b.png" width="16"&gt; &lt;img alt=":sparkles:" class="emoji" height="16" src="/emojis/2728.png" width="16"&gt; &lt;img alt=":camel:" class="emoji" height="16" src="/emojis/1f42b.png" width="16"&gt; &lt;img alt=":boom:" class="emoji" height="16" src="/emojis/1f4a5.png" width="16"&gt;&lt;/p&gt;
&lt;h2 id="toc"&gt;&lt;a href="https://python-markdown.github.io/extensions/toc/"&gt;toc&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;[TOC]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;冒頭の目次はこれです。title引数とかでタイトルも付けられます。&lt;/p&gt;
&lt;h2 id="footnotes"&gt;&lt;a href="https://python-markdown.github.io/extensions/footnotes/"&gt;footnotes&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;脚注[^footnote]を定義できます。CSSをちょっといじらないと[^css]、脚注間の移動でレイアウトが破滅する[^explode]みたいです。

[^footnote]: footnoteとも言う。
[^css]: bootstrapの`:target:before`を消す。
[^explode]: 脚注番号だけ上に行ったりする。
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;脚注&lt;sup id="fnref:footnote"&gt;&lt;a class="footnote-ref" href="#fn:footnote" title="footnoteとも言う。"&gt;1&lt;/a&gt;&lt;/sup&gt;を定義できます。CSSをちょっといじらないと&lt;sup id="fnref:css"&gt;&lt;a class="footnote-ref" href="#fn:css" title="bootstrapの:target:beforeを消す。"&gt;2&lt;/a&gt;&lt;/sup&gt;、脚注間の移動でレイアウトが破滅する&lt;sup id="fnref:explode"&gt;&lt;a class="footnote-ref" href="#fn:explode" title="脚注番号だけ上に行ったりする。"&gt;3&lt;/a&gt;&lt;/sup&gt;みたいです。&lt;/p&gt;
&lt;h2 id="checklistin-pymdown-extensions"&gt;checklist(in &lt;a href="https://github.com/facelessuser/pymdown-extensions"&gt;pymdown-extensions&lt;/a&gt;)&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;- [x] GFMライクなチェックリストを
    - [x] 入れ子の
        - [x] チェックリストです
- [ ] 書くことができます
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul class="task-list"&gt;
&lt;li class="task-list-item"&gt;&lt;input type="checkbox" disabled checked/&gt; GFMライクなチェックリストを&lt;ul class="task-list"&gt;
&lt;li class="task-list-item"&gt;&lt;input type="checkbox" disabled checked/&gt; 入れ子の&lt;ul class="task-list"&gt;
&lt;li class="task-list-item"&gt;&lt;input type="checkbox" disabled checked/&gt; チェックリストです&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class="task-list-item"&gt;&lt;input type="checkbox" disabled/&gt; 書くことができます&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="dl"&gt;dlで定義リストを作成します&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;dt1
:   dtでリストの項目を定義し、ddでリストの内容を記述します。

dt2
:   ddには複数行記述できます。
:   こんな感じですね。

dt3
:   ただし、dtの上には改行が必要です。
:   改行がない場合は下のようになります。
dt4
:   このdtの上には改行がなく、dt3のddの一部がdtとして扱われています。
:   さらに、このブロックが入れ子になったdlとして扱われています。

dt4
:   スタイルのせいだと思うのであればソースを見てください。
:   我々が使いこなすには少々複雑で意味のない動作をしています。
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;dl&gt;
&lt;dt&gt;dt1&lt;/dt&gt;
&lt;dd&gt;dtでリストの項目を定義し、ddでリストの内容を記述します。&lt;/dd&gt;
&lt;dt&gt;dt2&lt;/dt&gt;
&lt;dd&gt;ddには複数行記述できます。&lt;/dd&gt;
&lt;dd&gt;こんな感じですね。&lt;/dd&gt;
&lt;dt&gt;dt3&lt;/dt&gt;
&lt;dd&gt;ただし、dtの上には改行が必要です。&lt;/dd&gt;
&lt;dd&gt;
&lt;dl&gt;
&lt;dt&gt;改行がない場合は下のようになります。&lt;/dt&gt;
&lt;dt&gt;dt4&lt;/dt&gt;
&lt;dd&gt;このdtの上には改行がなく、dt3のddの一部がdtとして扱われています。&lt;/dd&gt;
&lt;dd&gt;さらに、このブロックが入れ子になったdlとして扱われています。&lt;/dd&gt;
&lt;/dl&gt;
&lt;/dd&gt;
&lt;dt&gt;dt4&lt;/dt&gt;
&lt;dd&gt;スタイルのせいだと思うのであればソースを見てください。&lt;/dd&gt;
&lt;dd&gt;我々が使いこなすには少々複雑で意味のない動作をしています。&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id="table"&gt;tableで表を作成します&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;| th    | th-centered      | th-righted |
| ----- |:----------------:| ----------:|
| cell1 | 1970-01-01       | 123        |
| cell2 | T                | 456        |
| cell3 | 00:00            | 789        |
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;th&lt;/th&gt;
&lt;th align="center"&gt;th-centered&lt;/th&gt;
&lt;th align="right"&gt;th-righted&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;cell1&lt;/td&gt;
&lt;td align="center"&gt;1970-01-01&lt;/td&gt;
&lt;td align="right"&gt;123&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cell2&lt;/td&gt;
&lt;td align="center"&gt;T&lt;/td&gt;
&lt;td align="right"&gt;456&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cell3&lt;/td&gt;
&lt;td align="center"&gt;00:00&lt;/td&gt;
&lt;td align="right"&gt;789&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="_1"&gt;&lt;code&gt;#&lt;/code&gt;でヘッダを記述します&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;## これはh2です。
h2といっても実際はもっとグレードを下げられています。

### h3や
そのため、h3ならまだしも、

#### h4まで続きます。
h4まで来るとスタイルによっては本文より小さくなっていることがあります。
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="h2"&gt;これはh2です。&lt;/h3&gt;
&lt;p&gt;h2といっても実際はもっとグレードを下げられています。&lt;/p&gt;
&lt;h4 id="h3"&gt;h3や&lt;/h4&gt;
&lt;p&gt;そのため、h3ならまだしも、&lt;/p&gt;
&lt;h5 id="h4"&gt;h4まで続きます。&lt;/h5&gt;
&lt;p&gt;h4まで来るとスタイルによっては本文より小さくなっていることがあります。&lt;/p&gt;
&lt;h2 id="-"&gt;&lt;code&gt;*+-&lt;/code&gt;でリストを記述します&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;* どの記号を使ってもリストを記述できます。
* 入れ子は、
    - インデントで行います。
        インデントを下げておくと、複数の段落を含めることができます。
    - スペースが許す限り、
        + 深い入れ子にできます。
            * ガンガン
                - 掘るといいです。

リストとリストの間には何か書いてください。

1. olの場合は、数字とドットで記述します。
2. 数字にはあまり意味がなく、
    3. こんな風にしても、
    2. 順番に直してくれますね。
4. ulと同じで深くインデントできます。
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;どの記号を使ってもリストを記述できます。&lt;/li&gt;
&lt;li&gt;入れ子は、&lt;ul&gt;
&lt;li&gt;インデントで行います。&lt;br&gt;
    インデントを下げておくと、複数の段落を含めることができます。&lt;/li&gt;
&lt;li&gt;スペースが許す限り、&lt;ul&gt;
&lt;li&gt;深い入れ子にできます。&lt;ul&gt;
&lt;li&gt;ガンガン&lt;ul&gt;
&lt;li&gt;掘るといいです。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;リストとリストの間には何か書いてください。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;olの場合は、数字とドットで記述します。&lt;/li&gt;
&lt;li&gt;数字にはあまり意味がなく、&lt;ol&gt;
&lt;li&gt;こんな風にしても、&lt;/li&gt;
&lt;li&gt;順番に直してくれますね。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;ulと同じで深くインデントできます。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="_2"&gt;&lt;code&gt;&amp;gt;&lt;/code&gt;で引用します&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&amp;gt; markdownの練習

&amp;gt;&amp;gt; 引用は入れ子できます。

&amp;gt; markdownの練習
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;markdownの練習&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;引用は入れ子できます。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;markdownの練習&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="_3"&gt;コードはバッククオートで囲んで記述します&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;```bash&lt;br&gt;
echo "start"&lt;br&gt;
find ~ -type f -name "hoge*.txt" -print0 | xargs -0 grep "TEXT"&lt;br&gt;
echo "finished."&lt;br&gt;
```&lt;/p&gt;
&lt;p&gt;普通のテキストと`コード断片`です。\`\`で囲むと``バック`クオート`が使え``ます。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;start&amp;quot;&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="w"&gt; &lt;/span&gt;-type&lt;span class="w"&gt; &lt;/span&gt;f&lt;span class="w"&gt; &lt;/span&gt;-name&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;hoge*.txt&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-print0&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;xargs&lt;span class="w"&gt; &lt;/span&gt;-0&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;TEXT&amp;quot;&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;finished.&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;普通のテキストと&lt;code&gt;コード断片&lt;/code&gt;です。``で囲むと&lt;code&gt;バック`クオート`が使え&lt;/code&gt;ます。&lt;/p&gt;
&lt;h2 id="_4"&gt;その他のマークアップです&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;## b, i
**強く強調** したり、 *強調* したりします。

## hr

------

## a
[return to top](/top &amp;quot;タイトル&amp;quot;)

## img
![上から青い照明で照らされている、中でクラゲが泳ぐ大きな円形の水槽](/images/ruine/top-kurage-2.jpg){width=600 height=315}

![存在しない画像](/there_is_no_image.jpg)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="b-i"&gt;b, i&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;強く強調&lt;/strong&gt; したり、 &lt;em&gt;強調&lt;/em&gt; したりします。&lt;/p&gt;
&lt;h3 id="hr"&gt;hr&lt;/h3&gt;
&lt;hr&gt;
&lt;h3 id="a"&gt;a&lt;/h3&gt;
&lt;p&gt;&lt;a href="/" title="タイトル"&gt;return to top&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="img"&gt;img&lt;/h3&gt;
&lt;p&gt;&lt;img alt="上から青い照明で照らされている、中でクラゲが泳ぐ大きな円形の水槽" height="315" src="/images/ruine/top-kurage-2.jpg" width="600"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="存在しない画像" src="/"&gt;&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:footnote"&gt;
&lt;p&gt;footnoteとも言う。&amp;#160;&lt;a class="footnote-backref" href="#fnref:footnote" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:css"&gt;
&lt;p&gt;bootstrapの&lt;code&gt;:target:before&lt;/code&gt;を消す。&amp;#160;&lt;a class="footnote-backref" href="#fnref:css" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:explode"&gt;
&lt;p&gt;脚注番号だけ上に行ったりする。&amp;#160;&lt;a class="footnote-backref" href="#fnref:explode" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>nginxのssl_protocolsとssl_ciphers</title><link href="https://ama.ne.jp/post/nginx-tls/" rel="alternate"/><published>2016-08-03T06:37:00+09:00</published><updated>2016-08-03T06:37:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-08-03:/post/nginx-tls/</id><summary type="html">&lt;p&gt;裏で股を開くnginxちゃん&lt;/p&gt;</summary><content type="html">&lt;p&gt;nginxを導入、設定し、運用するにあたって少し問題が起こったので、それについて書きます。&lt;/p&gt;
&lt;p&gt;やったことだけを知りたい人向けに書くと、「&lt;code&gt;ssl_protocols&lt;/code&gt;と&lt;code&gt;ssl_ciphers&lt;/code&gt;を&lt;strong&gt;http&lt;/strong&gt;ブロックに書こう」という記事です。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;前提&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;問題が発覚するまで&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;何が原因なのか&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nginx"&gt;nginxの設定を見直す&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_4"&gt;その後&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;前提&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;先日、nginx(1.10.1)を導入して、ama.ne.jpなどにリバースプロキシを噛ませることにしました。設定にあたっては、各サイトの&lt;strong&gt;server&lt;/strong&gt;ブロックに&lt;code&gt;ssl_protocols&lt;/code&gt;や&lt;code&gt;ssl_ciphers&lt;/code&gt;を加え、&lt;a href="/post/strong-ssl/"&gt;つよいSSLサーバを作る&lt;/a&gt;と同じプロトコルや暗号スイートを指定しました。&lt;/li&gt;
&lt;li&gt;設定の結果、&lt;a href="https://globalsign.ssllabs.com/analyze.html?d=ama.ne.jp&amp;amp;latest"&gt;SSL Server Test: ama.ne.jp&lt;/a&gt;の評価も実際の動作も変わらないようで、僕は大変満足げな表情です。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="_2"&gt;問題が発覚するまで&lt;/h2&gt;
&lt;p&gt;ひょんなことから、Wiiの&lt;a href="https://www.nintendo.co.jp/wii/features/internet/"&gt;インターネットチャンネル&lt;/a&gt;でama.ne.jpを見てみることになりました。&lt;/p&gt;
&lt;p&gt;インターネットチャンネルのUAは&lt;code&gt;Opera/9.30 (Nintendo Wii; U; ; 2047-7; ja)&lt;/code&gt;です。&lt;/p&gt;
&lt;p&gt;見て分かる通り、Opera 9.30ベースのブラウザが搭載されているようです。Opera 9は、&lt;strong&gt;TLS 1.2には非対応&lt;/strong&gt;とのこと。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://web.archive.org/web/20171124213815/https://www.nintendo.co.jp/wii/q_and_a/093.html"&gt;インターネットチャンネル向けのウェブページを作りたいのですが…。 : Ｑ＆Ａ - Ｗｉｉ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ja.wikipedia.org/wiki/Template:%E3%82%A6%E3%82%A7%E3%83%96%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8BTLS/SSL%E3%81%AE%E5%AF%BE%E5%BF%9C%E7%8A%B6%E6%B3%81%E3%81%AE%E5%A4%89%E5%8C%96"&gt;Template:ウェブブラウザにおけるTLS/SSLの対応状況の変化&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="/post/strong-ssl/"&gt;つよいSSLサーバを作る&lt;/a&gt;ではama.ne.jpをTLS 1.2にのみ対応させて良い評価を狙いました。ですからきっとサーバは無慈悲にも接続を中断して、ブラウザは涙で画面を濡らすことでしょう。&lt;/p&gt;
&lt;p&gt;というわけで、インターネットチャンネルに&lt;code&gt;https://ama.ne.jp&lt;/code&gt;と入力し、アクセスしてみると……&lt;/p&gt;
&lt;p&gt;なぜか表示されるんですね。&lt;/p&gt;
&lt;p&gt;あれ？　どうやってアクセスしてるんだ……？　無理矢理？　でも無理矢理ってなんだ？&lt;/p&gt;
&lt;h2 id="_3"&gt;何が原因なのか&lt;/h2&gt;
&lt;p&gt;opensslを使って詳しい状況を調査します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ openssl s_client -connect ama.ne.jp:443 -tls1
...
SSL-Session:
Protocol  : TLSv1
Cipher    : ECDHE-RSA-AES256-SHA
...
GET / HTTP/1.1
Host: ama.ne.jp

HTTP/1.1 200 OK
...

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
...
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ムムム。ちゃんと接続できて、しかも上流からレスポンスも返ってきている……。&lt;/p&gt;
&lt;p&gt;じゃあ、nginxを挟まずに直接接続したらどうなるかな？&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ openssl s_client -connect ama.ne.jp:8083 -tls1
...
SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:s3_pkt.c:1472:SSL alert number 70
SSL routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:656:
...
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;おっ、接続が切られた。どうやらnginxに問題があるようです。&lt;/p&gt;
&lt;p&gt;ここで、nginxが使用可能としているプロトコルと暗号スイートのリストについても確認しておきます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ nmap --script ssl-enum-ciphers -p 443 ama.ne.jp
Starting Nmap 7.12 ( https://nmap.org ) at 2016-08-03 04:12 JST
Nmap scan report for ama.ne.jp (157.7.73.93)
Host is up (0.0079s latency).
rDNS record for 157.7.73.93: hakurei.ama.ne.jp
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       Key exchange parameters of lower strength than certificate key
|_  least strength: A

Nmap done: 1 IP address (1 host up) scanned in 3.72 seconds
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;確かにTLS 1.2のみが提示されていますね。&lt;/p&gt;
&lt;p&gt;というわけで今回の問題は、自分が提示していない暗号スイートを受け入れるnginxのチャラい挙動に原因があるようです。&lt;/p&gt;
&lt;h2 id="nginx"&gt;nginxの設定を見直す&lt;/h2&gt;
&lt;p&gt;おそらくnginxの設定に、とりわけ&lt;a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols"&gt;ssl_protocols&lt;/a&gt;や&lt;a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ciphers"&gt;ssl_ciphers&lt;/a&gt;に原因がありそうです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ssl_protocols&lt;/code&gt;と&lt;code&gt;ssl_ciphers&lt;/code&gt;はどちらもserverおよびhttpブロックに書くことができますが、変更前は&lt;strong&gt;server&lt;/strong&gt;ブロックのみに個別の値を設定していました。&lt;/p&gt;
&lt;p&gt;個別とは名ばかりで実際には全て同じ値だったことと、serverブロックの上位であるhttpブロックに設定がないのが不自然だったことから、これらの設定を全て&lt;strong&gt;http&lt;/strong&gt;ブロックに移したところ正常に動作しました。&lt;/p&gt;
&lt;p&gt;いくつかパターンを変えて調べてみたところ、以下のことが分かりました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;http.&lt;code&gt;ssl_protocols&lt;/code&gt;の(http.&lt;code&gt;ssl_ciphers&lt;/code&gt;∩ server.&lt;code&gt;ssl_ciphers&lt;/code&gt;)がサーバが提示する暗号スイートである。&lt;/li&gt;
&lt;li&gt;http.&lt;code&gt;ssl_protocols&lt;/code&gt;のhttp.&lt;code&gt;ssl_ciphers&lt;/code&gt;が「実際に使用できる暗号スイート」である。実際に使用できる暗号スイートには、サーバが提示していない暗号スイートが含まれている場合がある。&lt;/li&gt;
&lt;li&gt;server.&lt;code&gt;ssl_protocols&lt;/code&gt;は、実際に使用できる暗号スイートにも、サーバが提示する暗号スイートにも影響を与えない。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;なお、&lt;code&gt;ssl_protocols&lt;/code&gt;や&lt;code&gt;ssl_ciphers&lt;/code&gt;が存在しないブロックでは、それらにデフォルト値が設定されることに注意します。&lt;/p&gt;
&lt;p&gt;これらの挙動によれば、http.&lt;code&gt;ssl_ciphers&lt;/code&gt;よりもserver.&lt;code&gt;ssl_ciphers&lt;/code&gt;を厳しくしている今回のような場合に、サーバが提示する暗号スイートよりも実際に使用できる暗号スイートが多くなってしまうことが分かります。&lt;/p&gt;
&lt;h2 id="_4"&gt;その後&lt;/h2&gt;
&lt;p&gt;設定後に再びインターネットチャンネルでama.ne.jpにアクセスしようとしたところ、「ページが見つからない」ということになりました。絶対404エラーではないと思うんだけど。それでいいのか、インターネットチャンネル。&lt;/p&gt;
&lt;p&gt;また、opensslでもきちんと接続できなくなっていることを確認しました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ openssl s_client -connect ama.ne.jp:443 -tls1
CONNECTED(00000003)
write:errno=104
...
No ALPN negotiated
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;さらに、&lt;a href="https://globalsign.ssllabs.com/analyze.html?d=ama.ne.jp&amp;amp;latest"&gt;SSL Server Test: ama.ne.jp&lt;/a&gt;の評価も、&lt;br&gt;
Handshake Simulationのエラーが軒並み"Server closed connection"になり、すっきり気持ちのいい気分です。&lt;/p&gt;
&lt;p&gt;before&lt;/p&gt;
&lt;p&gt;&lt;img alt="実施前のSSL Server Testの結果" height="216" src="/images/nginx-tls/test-before.png" width="662"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;after&lt;/p&gt;
&lt;p&gt;&lt;img alt="実施後のSSL Server Testの結果" height="216" src="/images/nginx-tls/test-after.png" width="662"&gt;&lt;/p&gt;
&lt;p&gt;よかったよかった。おやすみなさい。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>ドールを迎えることになった</title><link href="https://ama.ne.jp/post/intro-doll/" rel="alternate"/><published>2016-07-11T20:34:00+09:00</published><updated>2016-07-11T20:34:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-07-11:/post/intro-doll/</id><summary type="html">&lt;p&gt;アリスド～ル2&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://www.azone-int.co.jp/?sid=lla701&amp;amp;jancd=4582119984908" title="AOD505-APR"&gt;50Amane(あまね)/The Precious Ring. ～少女の憧憬～(しょうじょのどうけい)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.sigma-photo.co.jp/lens/standard/30_14_A013/" title="SIGMA 30mm F1.4 DC HSM"&gt;あまねちゃんに激オススメレンズ&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;レンズは絶対買わないぞ！&lt;/p&gt;</content><category term="doll"/></entry><entry><title>みんなの冷蔵庫</title><link href="https://ama.ne.jp/post/public-durables/" rel="alternate"/><published>2016-06-24T22:19:00+09:00</published><updated>2016-06-24T22:19:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-06-24:/post/public-durables/</id><summary type="html">&lt;p&gt;ディスのトピア&lt;/p&gt;</summary><content type="html">&lt;p&gt;もし駅に冷蔵庫が置いてあったら、なんて幸せなことだろう。&lt;/p&gt;
&lt;p&gt;電子レンジと、湯沸し器と、それにテレビが一緒にあったらもっといい。&lt;/p&gt;
&lt;p&gt;それらを全部、24時間いつでも使えるようにしてほしい。&lt;/p&gt;
&lt;p&gt;なぁ、良い提案だろう？　みんなが使える耐久財が、みんなが使いやすい状態で置いてあるんだ。&lt;/p&gt;
&lt;p&gt;そうしたら僕は、きっとこれからいろんなことができる。&lt;/p&gt;
&lt;p&gt;この前買った安売りのコーヒーを一本入れておいて、ホームでテレビを観ながら紙コップに注いで飲むんだ。&lt;/p&gt;
&lt;p&gt;パックのご飯を温めて、粉末味噌汁にお湯を注げば家に帰る必要もなくなる。&lt;/p&gt;
&lt;p&gt;駅が便利な生活の基盤になる、こんなに幸せなことはないじゃないか。&lt;/p&gt;
&lt;p&gt;管理者は駅の利用者から選ぼう。使う人が管理するのがきっと一番だから。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;それから生活は大きく変わった。&lt;/p&gt;
&lt;p&gt;売店も案内板も避難具も撤去され、辺りにたくさんのベンチが配置された。&lt;/p&gt;
&lt;p&gt;寛ぐのにこんなの必要ないから、すごく合理的なことだ。&lt;/p&gt;
&lt;p&gt;ここで生活したい人に必要なものを、必要なだけ。&lt;/p&gt;
&lt;p&gt;資源を有効活用するため、電化製品もベンチも拾ってきたものだ。洗えばきっと新品と変わらないから大丈夫。&lt;/p&gt;
&lt;p&gt;都合の悪いことを言ってくる人たちは、全部規則で縛って警察に連れて行ってもらった。&lt;/p&gt;
&lt;p&gt;この平和を、自由を、壊させはしない。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ある日、冷蔵庫から僕の入れたお気に入りのコーヒーがなくなった。&lt;/p&gt;
&lt;p&gt;冷蔵庫もレンジもすっかり汚くなって、水を入れっぱなしの湯沸し器には虫が湧いていた頃だ。&lt;/p&gt;
&lt;p&gt;一週間に一度しか来なくなった管理者に、僕は訴えた。&lt;/p&gt;
&lt;p&gt;あれは高かったんだ、弁償しろ、誰が責任を取ってくれるんだ。&lt;/p&gt;
&lt;p&gt;そうしたら彼は、こう言った。&lt;/p&gt;
&lt;p&gt;自己責任でやってくれ、弁償だの、犯人探しは管理者の仕事じゃない。&lt;/p&gt;
&lt;p&gt;それに僕はもう、この駅で寛ぐのに飽きたんだ。&lt;/p&gt;
&lt;p&gt;そもそも、寛ぎたければ自分の家に帰ればいいだろう。キミは自分の家が無いのか？&lt;/p&gt;
&lt;p&gt;管理したければキミがやると良い。&lt;/p&gt;
&lt;p&gt;ちょうどその場を駆け抜けようとしたゴキブリを踏みつけて、彼は帰っていった。&lt;/p&gt;
&lt;p&gt;そう言われて僕は、彼の飲み物に毒を盛ってやることにした。&lt;/p&gt;
&lt;p&gt;次の日、彼はあっけなく死んだ。&lt;/p&gt;
&lt;p&gt;彼はいつもここに置いたグレープフルーツジュースを飲んでから会社に行っていたのを、僕は知っていた。&lt;/p&gt;
&lt;p&gt;犯人は見つかるわけがなかった。&lt;/p&gt;
&lt;p&gt;誰が入ってきて、誰が出て行ったかなんて、記録しているわけがない。&lt;/p&gt;
&lt;p&gt;何と言うか、公共の場に放置したものを飲食するなど、拾い食いと大差ありませんね。&lt;/p&gt;
&lt;p&gt;どの局のコメンテーターも呆れた口調で言っていた。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;それからは、僕が駅の管理者になった。&lt;/p&gt;
&lt;p&gt;春になって新しい冷蔵庫利用者が増え、この駅も大繁盛だ。&lt;/p&gt;
&lt;p&gt;でも、僕の目には身勝手な利用者の姿が映る。&lt;/p&gt;
&lt;p&gt;僕が昔からここを知っているんだから、規則はしっかり教えてあげなくちゃ。&lt;/p&gt;
&lt;p&gt;少しの違反も見逃さず、大きな声で叱責した。&lt;/p&gt;
&lt;p&gt;一人、また一人と叱っていたら、とうとう誰も来なくなった。&lt;/p&gt;
&lt;p&gt;誰もこの理想には賛同してくれないのだ。僕は絶望した。&lt;/p&gt;
&lt;p&gt;今年の訪問者たちは、平和、協調、自由、それを解らぬバカばかりだった。&lt;/p&gt;
&lt;p&gt;誰も駅には来なくなったけど、僕は今日もここでアニメを観ながらビールを飲んで食事をしている。&lt;/p&gt;
&lt;p&gt;気の合う仲間たちが、深夜に酒を持ってやってくる。&lt;/p&gt;
&lt;p&gt;そうして泥棒よけに、今日もダミーの飲み物に毒を盛るのだ。&lt;/p&gt;
&lt;p&gt;実に合理的で、素晴らしい、自由な世界になった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;今年の春、僕は転勤することになった。&lt;/p&gt;
&lt;p&gt;あの寂れた駅のことなど、僕はもう知らない。&lt;/p&gt;
&lt;p&gt;今は便利な電化製品が使えるというのを聞きつけたホームレスの寝床になっているらしいよ。&lt;/p&gt;
&lt;p&gt;どこからか電話が来て、僕にそう言ってきた。&lt;/p&gt;
&lt;p&gt;知りません、そんなのは今の管理者に言ってください、と笑って返してやった。&lt;/p&gt;
&lt;p&gt;今の管理者の顔は知らないが、平和と自由を守るために頑張ってほしい。&lt;/p&gt;
&lt;p&gt;確かに最初は僕が提案したことだけど、僕はもう使っていないのだから、関係ないよ。&lt;/p&gt;
&lt;p&gt;永遠に無給で公共の場を管理するなんて、そんな地縛霊みたいなこと僕はやらないよ。&lt;/p&gt;
&lt;p&gt;管理者は駅の利用者から選ぼう。使う人が管理するのがきっと一番だから。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;普段は鍵の向こうに、警備員の向こうにあるはずのおもちゃが、目の前にある。&lt;/p&gt;
&lt;p&gt;みんなに使ってほしい、いつでも使ってほしいとラベルが付けられて、無防備にも晒されている。&lt;/p&gt;
&lt;p&gt;こんなに面白いことはない。こんなに便利なことはない。&lt;/p&gt;
&lt;p&gt;ねぇ、だから世界中に冷蔵庫を置こう？&lt;/p&gt;
&lt;p&gt;そうして色んな人が毒を盛って、たくさんの人が死んで、でも犯人は見つからない。&lt;/p&gt;
&lt;p&gt;冷蔵庫を薬品を入れた瓶で一杯にして、酔っぱらいを騙してしまおう。&lt;/p&gt;
&lt;p&gt;電子レンジで生卵を加熱して逃げるのもきっと面白いよ。&lt;/p&gt;
&lt;p&gt;湯沸し器でボウフラを飼って、たくさんの蚊を放ってしまおう。&lt;/p&gt;
&lt;p&gt;全然知らないところの冷蔵庫に行って、大量のエロ雑誌を詰めて帰ってくるのも楽しそうだ。&lt;/p&gt;
&lt;p&gt;こんな便利な世界はないよ。&lt;/p&gt;
&lt;p&gt;なぁ、良い提案だろう？&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>かんたん異端を身にまとう</title><link href="https://ama.ne.jp/post/paraphilia/" rel="alternate"/><published>2016-05-09T01:45:00+09:00</published><updated>2016-05-09T01:45:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-05-09:/post/paraphilia/</id><summary type="html">&lt;p&gt;その性癖は誰がため&lt;/p&gt;</summary><content type="html">&lt;p&gt;近頃流行りの異常性癖。みんな持ってる異常性癖。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;広義には、常識的な性道徳や社会通念から逸脱した性的嗜好（せいてきしこう）を指す。ただし、性道徳や社会通念は抽象的な概念であることから、その基準や境界線は時代や文化、個人の価値観によって多様な解釈や定義が存在している。また、それらの多様な解釈や定義が偏見や差別の原因となる場合がある。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/%E6%80%A7%E7%9A%84%E5%80%92%E9%8C%AF"&gt;&lt;cite&gt;性的倒錯 - Wikipedia&lt;/cite&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;流行りの異常性癖っていうのは、必ずグレーゾーンから選ばれる。&lt;/p&gt;
&lt;p&gt;グレーゾーンっていうのは、「&lt;em&gt;常識的な性道徳や社会通念から&lt;/em&gt;&lt;em&gt;ちょっと&lt;/em&gt;&lt;em&gt;逸脱した性的嗜好&lt;/em&gt;」と思ってもらえばいい。&lt;/p&gt;
&lt;p&gt;簡単に言えば、周りから引かれないレベルの異常性癖である。ファッションにちょうどいい性癖。&lt;/p&gt;
&lt;p&gt;例えば「電気を消して、美少女に正常位で挿入したい」のはホワイト、「両脚と片腕を失った美少女の残った片腕を掴んでイラマしたい」のがブラック、「美少女に脚コキされながらおしっこ掛けられて射精したい」がグレーみたいな感じかな、わからん（この例も筆者目線であることや&lt;em&gt;性道徳や社会通念は抽象的な概念である&lt;/em&gt;ことを考えれば全く信用できない）。&lt;/p&gt;
&lt;p&gt;こういうグレーな性癖を、特に好きでもないけれど好きと騙って声高にアピールする。偽りの興奮を饒舌に語り出す。周りと違うことをしていることを意識し、自分らしさを確立していく。&lt;/p&gt;
&lt;p&gt;そのアピールを見た人が、更に「使いやすい」性癖を囃し立て、その輪が広がってとうとう流行りの異常性癖となる。既にあるコンテンツに便乗するのはすごく簡単で楽なことだから、実態のない空虚なコミュニティがどんどん肥大化していく。&lt;/p&gt;
&lt;p&gt;こういうコミュニティに参加することはローリスクハイリターンである。周りの人間を真似て発言するだけで、異端であるという意識から歪んだ自分らしさを得ることができるし、あるコミュニティに属しているという社会的満足を得ることもできる。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;僕は異端気取りコミュニティが嫌いだ。大嫌いだ。&lt;/p&gt;
&lt;p&gt;別に僕にヒットしない性癖を批判しているわけじゃない。異常性癖自体には寛容なつもりで生きている。&lt;/p&gt;
&lt;p&gt;でもやっぱり、実態もなく異端だと認められたいという思いが透けて見えてしまうことがある。&lt;/p&gt;
&lt;p&gt;「ウチら、やっぱ変人だよね！」という意味のない合意が透けて見えてしまうことがある。&lt;/p&gt;
&lt;p&gt;流行りの異常性癖なんて矛盾した概念、頑張らないとすぐにボロが出てしまうから。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;異端なことをして自分らしさを得ようなんて、そんなこと道徳の教科書には書いてなかった。&lt;/p&gt;
&lt;p&gt;いつまで変わった人に群がって大騒ぎしているんだ。&lt;/p&gt;
&lt;p&gt;いつまでありふれたつまらない自分から目を逸らしているんだ。&lt;/p&gt;
&lt;p&gt;いつまで自分に嘘をつき続けるんだ。&lt;/p&gt;
&lt;p&gt;君らは異端なんかじゃない。見ていて痛々しい。&lt;/p&gt;
&lt;p&gt;遅れてきた厨ニ病に、君らはいつまで囚われることになるのだろう。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;なお僕は、純愛と女性上位と百合が好きです。&lt;/p&gt;
&lt;p&gt;最近は金を巻き上げることしか考えてない援交少女に金も精子もすっかり搾り取られることばかり考えています。&lt;/p&gt;
&lt;p&gt;ほんとだぞ、異端アピールじゃないぞ。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>SupervisorとTornadoの相性の話</title><link href="https://ama.ne.jp/post/supervisor-tornado/" rel="alternate"/><published>2016-04-03T07:36:00+09:00</published><updated>2016-11-05T02:35:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-04-03:/post/supervisor-tornado/</id><summary type="html">&lt;p&gt;pythonのosモジュールが狂う&lt;/p&gt;</summary><content type="html">&lt;p&gt;Supervisorの上で動くTornadoに日本語パスを渡すとコケることがあったので、調べてみることにした。&lt;/p&gt;
&lt;p&gt;例外はこんな感じである。&lt;code&gt;os&lt;/code&gt;モジュールで問題が起こってるっぽい。今のところ非ASCIIを含むURLが渡されるハンドラはStaticFileHandlerだけなので、ファイル情報の問い合わせで大破していることになる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/usr/local/lib/python3.5/site-packages/tornado/web.py&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1445&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;_execute&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;yield&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/usr/local/lib/python3.5/site-packages/tornado/gen.py&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1008&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;run&lt;/span&gt;
    &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;future&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/usr/local/lib/python3.5/site-packages/tornado/concurrent.py&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;232&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;
    &lt;span class="n"&gt;raise_exc_info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_exc_info&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;lt;string&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;raise_exc_info&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/usr/local/lib/python3.5/site-packages/tornado/gen.py&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;282&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;wrapper&lt;/span&gt;
    &lt;span class="n"&gt;yielded&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;next&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/usr/local/lib/python3.5/site-packages/tornado/web.py&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;2265&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;get&lt;/span&gt;
    &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;absolute_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/usr/local/lib/python3.5/site-packages/tornado/web.py&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;2446&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;validate_absolute_path&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;isdir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;absolute_path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/usr/local/lib/python3.5/genericpath.py&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;isdir&lt;/span&gt;
    &lt;span class="n"&gt;st&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="ne"&gt;UnicodeEncodeError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;ascii&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;codec&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;t encode characters in position 39-40: ordinal not in range(128)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;日本語パスを含んでいるだけで&lt;code&gt;os&lt;/code&gt;モジュールの関数が例外を上げる……？　インタラクティブシェルでは再現しなかったので、TornadoかTornadoをデーモン化している&lt;a href="http://supervisord.org/"&gt;Supervisor&lt;/a&gt;の問題だろう。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;os&lt;/code&gt;モジュールの関数は、設定されたlocaleを元にファイル名のエンコードを行っている。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://docs.python.jp/3.3/library/os.html"&gt;Python 標準ライブラリ 16.1. os&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Python では、ファイル名、コマンドライン引数、および環境変数を表すのに文字列型を使用します。一部のシステムでは、これらをオペレーティングシステムに渡す前に、文字列からバイト列へ、またはその逆のデコードが必要です。Python はこの変換行うためにファイルシステムのエンコーディングを使用します (sys.getfilesystemencoding() 参照)。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://docs.python.jp/3.3/library/sys.html#sys.getfilesystemencoding"&gt;Python 標準ライブラリ 28.1. sys&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;sys.getfilesystemencoding()&lt;br&gt;
Unicode ファイル名をシステムのファイル名に変換する際に使用するエンコード名を返します。返り値ははオペレーティングシステムに依存します:&lt;/p&gt;
&lt;p&gt;Unix では、エンコーディングはユーザー設定 (nl_langinfo(CODESET) の結果) に従います。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;調べたところ、問題はSupervisorがTornadoに適切なlocaleを与えていないという点にあると分かった。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/3715865/unicodeencodeerror-ascii-codec-cant-encode-character" title="UnicodeEncodeError: 'ascii' codec can't encode character"&gt;UnicodeEncodeError: 'ascii' codec can't encode character&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;解決策としては、supervisorの設定ファイルに以下のような環境変数の設定を加えればよさそう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;environment=LANG=&amp;quot;en_US.utf8&amp;quot;, LC_ALL=&amp;quot;en_US.UTF-8&amp;quot;, LC_LANG=&amp;quot;en_US.UTF-8&amp;quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;設定後は無事にアクセスできるようになった。よかったね。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2016-11-05) 同じような問題がDockerの中で動くTornadoなどでも起こりました。これはもう素直にlocaleを設定すればいいです。&lt;/ins&gt;&lt;/p&gt;</content><category term="tech"/></entry><entry><title>人生</title><link href="https://ama.ne.jp/post/otaku-lovers/" rel="alternate"/><published>2016-03-21T02:54:00+09:00</published><updated>2016-03-21T02:54:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-03-21:/post/otaku-lovers/</id><summary type="html">&lt;p&gt;クソオタクに愛を&lt;/p&gt;</summary><content type="html">&lt;p&gt;僕には幼馴染がいて、僕よりずっと背が低い。&lt;/p&gt;
&lt;p&gt;僕よりずっと背が低いのに、いつもお姉さんぶっていた。僕よりも1つ年上だから。&lt;/p&gt;
&lt;p&gt;親同士の集まりをこっそり抜け出し、いつもふたりで遊んでいた。&lt;/p&gt;
&lt;p&gt;女の子は男の子より成長が早いとはいうけど、彼女が僕の背を抜くことはなかった。&lt;/p&gt;
&lt;p&gt;偉そうにしてる彼女の頭を上から撫でると、ちょっとだけ頬を膨らますのだ。&lt;/p&gt;
&lt;p&gt;いつもふたりで。ずっとふたりで。&lt;/p&gt;
&lt;p&gt;&lt;i&gt;精通も初体験も、いつも彼女がそこにいた。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;彼女の身体に性の目覚めを与えたのは、僕だ。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;僕に射精の喜びを与えてくれたのは、彼女だ。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;小さな身体を初めて汚したのは、僕だ。僕なのだ。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;僕に恋の味を教えてくれたのは、彼女だった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;僕たちは別々の中学へ進んだ。彼女はいわゆるお嬢様だったから。&lt;/p&gt;
&lt;p&gt;家こそ庶民感覚を忘れないようにとこじんまりとした家を建てたようだけど。&lt;/p&gt;
&lt;p&gt;彼女は美しい女子校の制服を身に纏い、それは僕の汚れた欲望を惹起させた。&lt;/p&gt;
&lt;p&gt;彼女は住む世界が違うんだ。彼女のことは忘れなさい。&lt;/p&gt;
&lt;p&gt;&lt;i&gt;そんな両親を尻目に、僕たちは隠れて会い続けた。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;彼女は僕の前でだけは淫らだった。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;清楚な制服から放たれる淫猥な言葉の数々に、僕は溺れていった。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;彼女の部屋で、彼女のベッドを、彼女自身で汚していった。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;「変かもしれないけど、好きなのよ」と彼女は言った。&lt;/p&gt;
&lt;p&gt;僕は悔しくなった。イライラかムラムラかわからなくなった。&lt;/p&gt;
&lt;p&gt;&lt;i&gt;悔しさをそのまま肉欲に変え、僕は彼女と淫れ続けた。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;いつしかそれは互いの両親にばれてしまい、僕らの密会は突然の幕引きを迎える。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;結局、それからしばらく彼女に会うことはなくなった。&lt;/p&gt;
&lt;p&gt;彼女と会えない後半の中学生活は、灰色そのものだった。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;高校に入学しても、僕の彼女に対する想いは冷めなかった。&lt;/p&gt;
&lt;p&gt;&lt;i&gt;いろんな女性に告白されたけれど、全部断って。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;それはもちろん彼女だって同じで。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;僕は彼女の連絡先を知らなかった。&lt;/p&gt;
&lt;p&gt;いつでも会えると思っていたからそんなことには無頓着だったのだ。&lt;/p&gt;
&lt;p&gt;&lt;i&gt;でも、部屋の窓を明けると、熱っぽい眼をした彼女がこっちに飛び込んできた。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;互いの両親がいない隙を見ては、愛を確かめ合う日々。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;連絡なんていらなかった。毎朝窓越しの視線でYESかNOかを伝え合った。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;高校生になった彼女の性欲はどんどん増していっている。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;中学生みたいな身体で、僕の上を跳ね回り、僕の下でいやらしく喘いだ。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;「好きだから、抑えられなくなっちゃうの。どうしても」&lt;/p&gt;
&lt;p&gt;僕は小さく頷いて、その気持ちを認めてやるのだ。&lt;/p&gt;
&lt;p&gt;「嬉しいよ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;彼女は県外の大学に出ていった。僕は一浪して県内の大学に進んだ。&lt;/p&gt;
&lt;p&gt;窓を開けても彼女はいない。日を遮る無機質な壁には諦めから来る溜息しか出ない。&lt;/p&gt;
&lt;p&gt;大学生活はそれなりに楽しかった。&lt;/p&gt;
&lt;p&gt;女っ気こそないけれど、それなりの友達とそれなりのサークルを見つけて生きていた。&lt;/p&gt;
&lt;p&gt;彼女は女子大へと進学していったから、男の影はあまり心配していない。&lt;/p&gt;
&lt;p&gt;彼女は連絡先を残していかなかったから、今どこで何をしているかはわからないけれど。&lt;/p&gt;
&lt;p&gt;僕が刻みこんだ快楽を忘れられずに疼いている。僕の愛の言葉を待ち望んでいる。&lt;/p&gt;
&lt;p&gt;そう考えだすと止まらなかった。&lt;/p&gt;
&lt;p&gt;そんなある日、僕は彼女の連絡先を知ることになる。何の因果か必然か。&lt;/p&gt;
&lt;p&gt;「僕だよ。幼馴染の」&lt;/p&gt;
&lt;p&gt;&lt;i&gt;「ずっと待ってた」&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;「すぐに会おう。またあの日みたいに愛し合おう」&lt;/p&gt;
&lt;p&gt;&lt;i&gt;「ずっと待ってた」&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;なおもメッセージは続いた。&lt;/p&gt;
&lt;p&gt;「結婚するんです」&lt;/p&gt;
&lt;p&gt;「だからもう」&lt;/p&gt;
&lt;p&gt;僕の視界が涙で歪んだ。&lt;/p&gt;
&lt;p&gt;&lt;i&gt;「えぇ、あなたと」&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;あぁ！　運命とは何と素晴らしいのだろう！　離れた二人でも、結ばれることはできるのだ。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;「私ね、幸せよ。あなたと永遠に一緒だって思うと」&lt;/p&gt;
&lt;p&gt;「女子校に入ったのも悪くなかったわ。あなたと会えたんだもの」&lt;/p&gt;
&lt;p&gt;「当たり前じゃない、昔も今も、あなただけよ」&lt;/p&gt;
&lt;p&gt;「子供はできないけれど、それでもいいの。ずっと一緒よ」&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;i&gt;彼女はずっと中学生のままだ。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;結婚も妊娠もできないその身体で、僕に脚を絡め続けるのだ。&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;斜体も太字も何もかも、全てが思い通りだったら良い。&lt;/p&gt;
&lt;p&gt;僕が美少女で、彼女の同級生で。&lt;/p&gt;
&lt;p&gt;中学生のまま、二人で愛し合いたい。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>つよいパソコンを作る</title><link href="https://ama.ne.jp/post/lvm-on-luks/" rel="alternate"/><published>2016-02-24T20:54:00+09:00</published><updated>2017-03-29T18:10:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-02-24:/post/lvm-on-luks/</id><summary type="html">&lt;p&gt;everything on (LVM on LUKS)&lt;/p&gt;</summary><content type="html">&lt;p&gt;年度末なのでローカル機(ThinkPad X250)のDebianを入れ直すついでに、ディスクを暗号化することにしました。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;今回やったこと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;前提&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;作業&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#_4"&gt;キーファイルの作成&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_5"&gt;キーファイルの登録&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_6"&gt;起動スクリプトの作成&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_7"&gt;起動時設定&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#initramfs"&gt;initramfsの更新&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_8"&gt;使い方&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_9"&gt;故障かな？と思ったら&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_10"&gt;終わりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;今回やったこと&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/boot&lt;/code&gt;を除くDebian領域をLVM on LUKSで管理するようにしました。&lt;/li&gt;
&lt;li&gt;起動時に、キーファイルを用いて自動で暗号化を解除できるようにしました。&lt;/li&gt;
&lt;li&gt;起動時にキーファイルが見つからない場合は、パスフレーズで暗号化を解除できるようにしました。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="_2"&gt;前提&lt;/h2&gt;
&lt;p&gt;LUKSディスクは構成済みであるとします。この記事の作業に関しては、LVM領域は必ずしも必要ではありません。&lt;/p&gt;
&lt;p&gt;なお、既存のディスクは暗号化の際に内容が消失しますので、システム全体を暗号化するにあたってはいったん再インストールすることをおすすめします。&lt;/p&gt;
&lt;p&gt;以下は今回事前に行った作業です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;/home&lt;/code&gt;を退避します。&lt;/li&gt;
&lt;li&gt;aptitudeのログなど、再構成に必要な情報などを退避します。&lt;/li&gt;
&lt;li&gt;Debianインストーラを用いてDebian8を再インストールします。&lt;ol&gt;
&lt;li&gt;パーティショニング機能を用いて&lt;code&gt;/boot&lt;/code&gt;およびLUKSパーティションを作成します。この時、パスフレーズを設定しますが、毎日入力することは考えずに強力なパスフレーズにしましょう。&lt;/li&gt;
&lt;li&gt;LUKSパーティション上にLVM領域を作成し、必要な論理ボリュームを作成します。今回は&lt;code&gt;/&lt;/code&gt;、&lt;code&gt;/var&lt;/code&gt;、&lt;code&gt;/tmp&lt;/code&gt;、&lt;code&gt;/home&lt;/code&gt;とswapに分けました。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;退避したデータを用いてあの頃のDebianを取り戻します。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="_3"&gt;作業&lt;/h2&gt;
&lt;p&gt;このままでは起動時に毎回長々としたパスフレーズを入力しなければなりません。そこで、USBメモリやSDカードにキーファイルを作成して、起動時に自動で暗号化を解除できるようにします。&lt;/p&gt;
&lt;h3 id="_4"&gt;キーファイルの作成&lt;/h3&gt;
&lt;p&gt;まず、&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;dd&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/random&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/media/hoge/keyfile&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1024&lt;/span&gt;
chmod&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;400&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/media/hoge/keyfile
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;とか&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/dev/random&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1024&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/media/hoge/keyfile
chmod&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;400&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/media/hoge/keyfile
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;でキーファイルを作ります。別にランダムデータである必要はありませんが、&lt;a href="https://upload.wikimedia.org/wikipedia/commons/a/a2/Standard-lock-key.jpg"&gt;Standard-lock-key.jpg&lt;/a&gt;とか、誰にでも手に入れられるようなファイルはやめておきましょうね。&lt;/p&gt;
&lt;h3 id="_5"&gt;キーファイルの登録&lt;/h3&gt;
&lt;p&gt;cryptsetupを用いて作成したキーファイルをキースロットに登録します。登録には今までに設定したキーの1つが必要です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cryptsetup&lt;span class="w"&gt; &lt;/span&gt;luksAddKey&lt;span class="w"&gt; &lt;/span&gt;/dev/sdX&lt;span class="w"&gt; &lt;/span&gt;/media/hoge/keyfile
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="_6"&gt;起動スクリプトの作成&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;/lib/cryptsetup/scripts/startup&lt;/code&gt;に以下のようなスクリプトを作成します。既存の&lt;code&gt;askpass&lt;/code&gt;や&lt;code&gt;passdev&lt;/code&gt;のみを用いても良いですが、どうもフォールバックが効かないのでそれぞれを呼び出すスクリプトを書きました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/sh&lt;/span&gt;
/lib/cryptsetup/scripts/passdev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;/lib/cryptsetup/askpass&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;? &amp;quot;&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;なお、実行権限を与えるのを忘れないでください。&lt;/p&gt;
&lt;h3 id="_7"&gt;起動時設定&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;/etc/crypttab&lt;/code&gt;を以下のように変更し、作成した起動スクリプトとデバイスを結びつけます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sdX_crypt UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /dev/sdY:/keyfile:3 luks,keyscript=/lib/cryptsetup/scripts/startup,discard,timeout=3
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;キーファイルを入れるデバイスがFATだと、マウント時に問題が起きることがあります。例えば、&lt;code&gt;/etc/initramfs-tools/modules&lt;/code&gt;に以下の追記が必要かもしれません。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;vfat
nls_cp437
nls_ascii
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="initramfs"&gt;initramfsの更新&lt;/h3&gt;
&lt;p&gt;ここまでの設定やスクリプトファイルは、暗号化されていない&lt;code&gt;/boot&lt;/code&gt;上にあるinitramfsというディスクイメージに保持されます。このディスクイメージの更新は以下のコマンドで行うことができます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;update-initramfs&lt;span class="w"&gt; &lt;/span&gt;-u
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;しかし、今のままではまだ意図した起動フローになりません。というのも、&lt;code&gt;/etc/crypttab&lt;/code&gt;に指定されたスクリプトは自動的にinitramfsにコピーされますが、その中で呼び出される&lt;code&gt;passdev&lt;/code&gt;はコピーされないのです。そこで、&lt;code&gt;/usr/share/initramfs-tools/hooks/cryptroot&lt;/code&gt;に以下のコピーコマンドを追加します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;copy_exec /lib/cryptsetup/scripts/passdev
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ちょうど&lt;code&gt;copy_exec /lib/cryptsetup/askpass&lt;/code&gt;の下あたりに追加すればいいです。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2016-05-19) さらに現在の設定では、LVMが暗号化が解除されていない状態でディスクを読もうとするため、エラーが出てしまいます。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;そのため、以下のページを参考に起動スクリプトを書き変えました。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;&lt;a href="http://ixday.github.io/unable-to-find-lvm-volume-with-lvm-on-top-of-luks.html"&gt;UNABLE TO FIND LVM VOLUME... WITH LVM ON TOP OF LUKS&lt;/a&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;具体的には&lt;code&gt;/usr/share/initramfs-tools/scripts/local-top/cryptroot&lt;/code&gt;の&lt;code&gt;prereqs&lt;/code&gt;の内容を&lt;code&gt;echo "$PREREQ"&lt;/code&gt;のみにします。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2016-11-05) 最近、カーネルのアップデートの度に変更した各種スクリプトがリセットされているため、対策を考えています。&lt;/ins&gt;&lt;/p&gt;
&lt;h2 id="_8"&gt;使い方&lt;/h2&gt;
&lt;p&gt;initramfsを更新して再起動すれば、キーファイルを用いて自動で暗号化が解除されます。キーファイルが見つからない場合は、&lt;code&gt;?&lt;/code&gt;が表示されパスフレーズの入力を促されます。&lt;/p&gt;
&lt;h2 id="_9"&gt;故障かな？と思ったら&lt;/h2&gt;
&lt;p&gt;設定を間違うと、パスフレーズの入力すらできないまま永遠に起動スクリプトを繰り返したりします。そんな時は、焦らずに適当なレスキューモードに入って&lt;code&gt;/etc/crypttab&lt;/code&gt;を元に戻しましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sdX_crypt UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none luks
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;レスキューモードの起動には再インストール時に用いたディスクをそのまま使えばいいです。作業後には、以下のコマンドでinitramfsを更新するのを忘れないでください。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;update-initramfs&lt;span class="w"&gt; &lt;/span&gt;-ut
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;これで、パスフレーズでのみ暗号化を解除できるようになるので、起動後に正しい設定に書き換えましょう。&lt;/p&gt;
&lt;h2 id="_10"&gt;終わりに&lt;/h2&gt;
&lt;p&gt;まぁ、外出時にキーデバイスをマシンと別々にして持ち歩けば、そこそこ安全なんじゃないでしょうかね。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>つよいSSLサーバを作る</title><link href="https://ama.ne.jp/post/strong-ssl/" rel="alternate"/><published>2016-02-24T01:54:00+09:00</published><updated>2016-11-05T03:22:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-02-24:/post/strong-ssl/</id><summary type="html">&lt;p&gt;自分用メモ&lt;/p&gt;</summary><content type="html">&lt;p&gt;Tornadoでは簡単にSSLサーバを構築できるということで、指定できるオプション等について調べるついでに&lt;a href="https://globalsign.ssllabs.com/"&gt;SSL Server Test&lt;/a&gt;でA+を取れるように頑張りました。現在の評価は&lt;a href="https://globalsign.ssllabs.com/analyze.html?d=ama.ne.jp"&gt;SSL Server Test: ama.ne.jp&lt;/a&gt;で見ることができます。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2016-11-05) &lt;strong&gt;もうこのサイトのバックエンドはTornadoではありません。&lt;/strong&gt;上記のサーバーテストはA+を返すかもしれませんし、返さないかもしれません。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;なお、A+を獲得するには、適切な暗号スイートの指定はもちろんのこと、&lt;code&gt;Strict-Transport-Security&lt;/code&gt;レスポンスヘッダが必要です。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#ssl"&gt;SSLサーバの設定&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#ssl_version"&gt;ssl_version&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ciphers"&gt;ciphers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#certfile"&gt;certfile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#keyfile"&gt;keyfile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#cert_reqs"&gt;cert_reqs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ca_certs"&gt;ca_certs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#strict-transport-security"&gt;Strict-Transport-Securityヘッダの設定&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;終わりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="ssl"&gt;SSLサーバの設定&lt;/h2&gt;
&lt;p&gt;さて、ama.ne.jpは今のところ以下のようなHTTPServerで動作しています。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;HTTPServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ssl_options&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;certfile&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ssl_crt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;keyfile&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ssl_key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;ssl_version&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ssl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PROTOCOL_TLSv1_2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s2"&gt;&amp;quot;ciphers&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;EECDH+HIGH+AES!SHA:&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
               &lt;span class="s2"&gt;&amp;quot;!ADH:!RC4:!MD5:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!PSK:!SRP:!DSS:!KRB5&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ここでは、Tornadoの&lt;a href="http://www.tornadoweb.org/en/stable/_modules/tornado/netutil.html"&gt;netutil.py&lt;/a&gt;を元に、おそらくHTTPServerに&lt;code&gt;ssl_options&lt;/code&gt;として与えられるであろうと思われるオプションについて書いていきます。&lt;/p&gt;
&lt;p&gt;定数やオプションなどの情報はPythonの&lt;a href="http://docs.python.jp/3.5/library/ssl.html"&gt;ssl&lt;/a&gt;モジュールやopensslの&lt;a href="https://www.openssl.org/docs/man1.1.1/man1/ciphers.html"&gt;ciphers&lt;/a&gt;に詳しいです。&lt;/p&gt;
&lt;h3 id="ssl_version"&gt;ssl_version&lt;/h3&gt;
&lt;p&gt;使用するSSL/TLSのバージョンを指定します。&lt;code&gt;PROTOCOL_TLSv1_2&lt;/code&gt;でTLS1.2のみを使用できる状態になります。&lt;/p&gt;
&lt;h4 id="tls10"&gt;TLS1.0について&lt;/h4&gt;
&lt;p&gt;TLS1.0にはBEAST攻撃に対する脆弱性があります。ただし、古いブラウザをサポートしなければならない地獄のような状況下なら有効にしなければならないかもしれません。&lt;code&gt;PROTOCOL_SSLv23 | OP_NO_SSLv2 | OP_NO_SSLv3&lt;/code&gt;で、TLS1.0、TLS1.1、TLS1.2を使用できる状態になります。&lt;/p&gt;
&lt;h3 id="ciphers"&gt;ciphers&lt;/h3&gt;
&lt;p&gt;oepnsslの記法に倣って使用する暗号スイートを指定します。&lt;/p&gt;
&lt;h4 id="_1"&gt;暗号スイート指定で用いる記号&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;:&lt;/code&gt;は暗号スイート指定の区切りです。&lt;/li&gt;
&lt;li&gt;プレフィクス&lt;code&gt;+&lt;/code&gt;でその暗号スイートを追加します。ただし、1つの暗号スイート指定内で接続されて用いられた場合はAND条件を指します。&lt;/li&gt;
&lt;li&gt;プレフィクス&lt;code&gt;-&lt;/code&gt;でその暗号スイートを取り除きます。ただし、1つの暗号スイート指定内で接続されて用いられた場合はNAND条件を指します。また、これより後ろの暗号スイート指定で再び追加可能です。&lt;/li&gt;
&lt;li&gt;プレフィクス&lt;code&gt;!&lt;/code&gt;でその暗号スイートを使用しません。これより後ろの暗号スイート指定でも追加することはできません。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="_2"&gt;今回指定した暗号リスト&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://ja.wikipedia.org/wiki/Forward_secrecy"&gt;FS(Forward secrecy)&lt;/a&gt;を満たすECDHE-RSAのうち、鍵長の大きなものを指定しました。一応後ろで、弱いものや使わないものを取り除いています。&lt;/p&gt;
&lt;h3 id="certfile"&gt;certfile&lt;/h3&gt;
&lt;p&gt;自身の公開鍵の格納場所を指定します。CA証明書を含んでいてもかまいません。CA証明書を含む場合は、必ず上から&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;自身の証明書&lt;/li&gt;
&lt;li&gt;中間CA証明書&lt;/li&gt;
&lt;li&gt;より上位の中間CA証明書 ...&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;のように、より下位の証明書から順に並べます。ルート証明書は各ブラウザが持っているはずです。&lt;/p&gt;
&lt;h3 id="keyfile"&gt;keyfile&lt;/h3&gt;
&lt;p&gt;自身の秘密鍵の格納場所を指定します。&lt;/p&gt;
&lt;h3 id="cert_reqs"&gt;cert_reqs&lt;/h3&gt;
&lt;p&gt;証明書の妥当性チェックを行うかを指定します。サーバー側には必要ないので特に指定しません。&lt;/p&gt;
&lt;h3 id="ca_certs"&gt;ca_certs&lt;/h3&gt;
&lt;p&gt;&lt;ins&gt;(2016-05-29) 証明書の妥当性チェックに使うCA証明書を指定します。サーバー側には必要ないので特に指定しません。&lt;/ins&gt;&lt;/p&gt;
&lt;h2 id="strict-transport-security"&gt;Strict-Transport-Securityヘッダの設定&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://developer.mozilla.org/ja/docs/Web/Security/HTTP_Strict_Transport_Security"&gt;HTTP Strict Transport Security(HSTS)&lt;/a&gt;は、「次からウチのサイトとはHTTPSで通信してくれ」というメッセージを伝える機能です。&lt;/p&gt;
&lt;p&gt;幸いTornadoの*Handlerには&lt;code&gt;set_default_headers&lt;/code&gt;メソッドが用意されているので、以下のようなクラスを作ってアプリケーション内の各ハンドラで継承して使うとよいでしょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HstsRequestHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RequestHandler&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nb"&gt;super&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="fm"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;kwargs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;set_default_headers&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="bp"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_headers&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Strict-Transport-Security&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="s2"&gt;&amp;quot;max-age=31536000;includeSubdomains;preload&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;なお、&lt;a href="https://hstspreload.appspot.com/"&gt;HSTS preload listに登録する&lt;/a&gt;には、長い&lt;code&gt;max-age&lt;/code&gt;（1年=31536000秒くらい？）や&lt;code&gt;includeSubDomains&lt;/code&gt;および&lt;code&gt;preload&lt;/code&gt;の設定が必要です。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2016-02-25) Chromeの&lt;a href="https://code.google.com/p/chromium/codesearch#chromium/src/net/http/transport_security_state_static.json"&gt;HSTS preload list&lt;/a&gt;にama.ne.jpが入ったようです。&lt;/ins&gt;&lt;/p&gt;
&lt;h2 id="_3"&gt;終わりに&lt;/h2&gt;
&lt;p&gt;自己満足しか得るものがない努力だった。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>ここにタイトルを入力</title><link href="https://ama.ne.jp/post/this-is-title/" rel="alternate"/><published>2016-02-06T23:29:00+09:00</published><updated>2016-02-06T23:29:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-02-06:/post/this-is-title/</id><summary type="html">&lt;p&gt;あとがき&lt;/p&gt;</summary><content type="html">&lt;p&gt;時折、マゾヒストの精神はどこから来るのかということを考えたくなる。&lt;/p&gt;
&lt;p&gt;世の中にはたくさんのマゾヒストがいるけれど、私の場合は単に女性という存在に圧倒されたいと思っているらしい。理屈はどうでもいい。設定を言葉通りに脳内に展開して独り相撲を取って派手に負ける、そういう馬鹿正直で惨めな遊びが好きなのだ。「女子が男子に性的なお仕置きを行う学校」なら私は無力感を感じながら甘んじてお仕置きを受けるし、「全ての男を魅了する魅力を持つ脚」ならば大量の金品を貢いででもその脚に触れようとするだろう。&lt;/p&gt;
&lt;p&gt;そういう遊びをする時に、現実の感覚は邪魔になる。法律、常識、時間。そういう概念はブランクにしておいて、必要な時に埋めればよろしい。&lt;/p&gt;
&lt;p&gt;私の中の若年女王様は歳を取らない。学校に通っているにも関わらず毎日のように調教を重ね、多数寄ってくるマゾヒストたちの一人である私を全て見透かして、全ての財を捧げるように仕向けるのだ。彼女が女子大生になってＳＭ風俗でバイトを始めることも、人妻になって隣人の独身男性を責めるのも、私の表明なしにはあり得ない。&lt;/p&gt;
&lt;p&gt;オナクラのサディスト嬢は歳を取るのだろうか。彼女はいつまでマゾヒストたちを蔑んで日銭を稼いでいくのだろうか。きっと私が許可しないまま、オナクラを引退し、人妻になり、熟女になり、老婆になって昔を懐かしむのだろう。&lt;/p&gt;
&lt;p&gt;かのＡＶ女優は死ぬまで処女で居続けるのだろうか。処女喪失の回数よりも皺の数が増えても、彼女はカメラに向かって媚び続けていられるのだろうか。やはり彼女も、勝手に歳を取って人間らしい生活を獲得していくのだろう。&lt;/p&gt;
&lt;p&gt;永遠がない世界で、私は永遠の隷属を誓うことができない。&lt;/p&gt;
&lt;p&gt;だから私は、テキスト・データに潜り込んでいく。そこでは永遠だって自由に定義できる。私は派手な敗北を喫せるように舞台を整えて独りよがりな負け戦に望むのだ。&lt;/p&gt;
&lt;p&gt;イメージやオーディオも悪くはないが、それらがテキスト化できるならテキスト・データに耽溺していくことだろう。おそらく私がイメージやオーディオに感じる興奮は、そのエッセンスをテキスト・データに抽出しても変わらないものだから。&lt;/p&gt;
&lt;p&gt;少ない情報は私に自由をくれる。最近マゾヒスト向けのＡＤＶゲームを購入したが、おそらく興奮の最高潮はプレイ前の今この時なのだ。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>弁護士になるぞ</title><link href="https://ama.ne.jp/post/tobelawer/" rel="alternate"/><published>2016-01-16T23:43:00+09:00</published><updated>2016-01-16T23:43:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2016-01-16:/post/tobelawer/</id><summary type="html">&lt;p&gt;詩&lt;/p&gt;</summary><content type="html">&lt;p&gt;近頃の浮動小数点数型は喋るらしい。&lt;/p&gt;
&lt;p&gt;特徴のない顔にひょろついた体躯。汚いニキビ面で一重まぶたをしたメンヘラ男がFF比を計算している。&lt;/p&gt;
&lt;p&gt;彼らが現実のどこで否定されようとも、ここでは優しい実数が小数の写像を迎える。&lt;/p&gt;
&lt;p&gt;口当たりの良い有理数が「細〜い」とか「女の子にしか見えな〜い」と叫んでいる。&lt;/p&gt;
&lt;p&gt;それらを口で溶かしきったら、すぐにでも「女装じゃないですよ！ぷんぷん！」と返さねばならない。&lt;/p&gt;
&lt;p&gt;古事記にもそう書かれている。&lt;/p&gt;
&lt;p&gt;あぁ。そもそも男のままで生きていても注目されず埋もれていくだろうに。&lt;/p&gt;
&lt;p&gt;女に埋もれることで持て囃され、それを喜ぶのは彼らの天性か、それとも現代が生んだ病気か。&lt;/p&gt;
&lt;p&gt;三味線を弾き、按摩をして、小屋で見世物になる。障害者はずっと専門の生業を持って生きてきた。&lt;/p&gt;
&lt;p&gt;時代は移った。彼らはネットの海を見世物小屋に見立てて生きている。&lt;/p&gt;
&lt;p&gt;だるま女たちが自撮りを上げているTwitterを見て、差別反対活動家たちは何と言うんだろうか。&lt;/p&gt;
&lt;p&gt;今日もアップロードされるたくさんの自撮り写真を見て、Twitterが訴えられる妄想をする。&lt;/p&gt;
&lt;p&gt;アップロードした彼ら自身が追及される滑稽な法廷を思い浮かべる。&lt;/p&gt;
&lt;p&gt;ファッション・バイセクシャルの性的搾取は差別反対活動家たちの保護対象になるんだろうか。&lt;/p&gt;
&lt;p&gt;僕も弁護士になるんだ。&lt;/p&gt;
&lt;p&gt;だるま女に手なんかない。&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>12月15日の動き</title><link href="https://ama.ne.jp/post/1215-ugoki/" rel="alternate"/><published>2015-12-15T00:50:00+09:00</published><updated>2019-03-27T00:58:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2015-12-15:/post/1215-ugoki/</id><summary type="html">&lt;p&gt;イエーイ、見てる〜？&lt;/p&gt;</summary><content type="html">&lt;blockquote&gt;
&lt;p&gt;すでに削除されているということだと、問題が意識され、なんらかの対応がすでにとられたということではないのでしょうか？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;は、「すでに削除されて」いれば「問題が意識され、なんらかの対応がすでにとられた」と考えていないと書けない文だと思うんだけどな。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;疑問文が「見解」であるというのは驚くべき解釈です。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;まぁ返信いわく、そんなことは考えていないらしかった。アビャー。じゃあ一体全体その文は、どこの精神から湧き出たんだろう。多重人格か。&lt;/p&gt;
&lt;p&gt;僕はお給料日で機嫌が良いんだぞ。勝手なことばかり言うな。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ツールバーにこのボタン&lt;a href="javascript:void(open('https://archive.is/?run=1&amp;amp;url='+encodeURIComponent(document.location)))"&gt;archive.is&lt;/a&gt;をドラッグして、あなたがワンクリックでページを保存することができます！&lt;br&gt;
&lt;cite&gt;&lt;a href="https://archive.is/"&gt;archive.is&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ワンクリックでページを保存してキミだけの証拠を作ろう！&lt;/p&gt;</content><category term="ugoki"/></entry><entry><title>逆再生太郎になろう（つくるぞ）</title><link href="https://ama.ne.jp/post/ffmpeg-tomori-2/" rel="alternate"/><published>2015-12-09T22:31:00+09:00</published><updated>2022-06-14T12:08:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2015-12-09:/post/ffmpeg-tomori-2/</id><summary type="html">&lt;p&gt;一番人気&lt;/p&gt;</summary><content type="html">&lt;p&gt;/* この記事は&lt;a href="https://creativecommons.org/licenses/by/4.0/"&gt;CC BY 4.0&lt;/a&gt;でライセンスされていません。 */&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;ニコニコから動画を落として楽しく編集！&lt;/p&gt;
&lt;p&gt;今日は&lt;a href="https://osdn.jp/projects/nicovideo-dl/"&gt;nicovideo-dl&lt;/a&gt;を使います。Python3で動きません。残念。&lt;/p&gt;
&lt;p&gt;ユーザー名とパスワードとURLがあれば動くので使い方は省略。&lt;/p&gt;
&lt;p&gt;ffmpegの使い方は下の通りです。ルールを守って楽しくクソGIF！&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ffmpeg&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;input.mp4&lt;span class="w"&gt; &lt;/span&gt;-vf&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;trim&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;start:end,reverse,setpts&lt;span class="o"&gt;=&lt;/span&gt;PTS-STARTPTS&lt;span class="w"&gt; &lt;/span&gt;out.gif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;input.mp4をstart秒からend秒まで切り出して逆再生でout.gifに保存するぞ！&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ffmpeg&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;input.mp4&lt;span class="w"&gt; &lt;/span&gt;-vf&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;crop&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;width:height:x:y&lt;span class="w"&gt; &lt;/span&gt;out.gif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;input.mp4を(x, y)を始点としてwidth*heightに切り出し(crop)てout.gifに保存するぞ！&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ffmpeg&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;input.mp4&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;widthxheight&lt;span class="w"&gt; &lt;/span&gt;out.gif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;input.mp4をwidth*heightにリサイズしてout.gifに保存するぞ！&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ffmpeg&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;input1.mp4&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;input2.mp4&lt;span class="w"&gt; &lt;/span&gt;-i&lt;span class="w"&gt; &lt;/span&gt;input3.mp4&lt;span class="w"&gt; &lt;/span&gt;-filter_complex&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;concat=n=3&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;out.gif
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;input1.mp4、input2.mp4、input3.mp4を結合してout.gifに保存するぞ！　nは動画の数だぞ！&lt;/p&gt;
&lt;p&gt;おしまい。&lt;/p&gt;
&lt;h2 id="_1"&gt;結果！&lt;/h2&gt;
&lt;p&gt;&lt;img alt="友利奈緒がポッキーで遊ぶGIFアニメーション" height="330" src="/images/ffmpeg-tomori/pokky.gif" width="330"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="友利奈緒が厚切り牛たん弁当を押し込むGIFアニメーション" height="320" src="/images/ffmpeg-tomori/yakiniku.gif" width="436"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="友利一希が羽毛布団を作るGIFアニメーション" height="320" src="/images/ffmpeg-tomori/umou.gif" width="400"&gt;&lt;/p&gt;
&lt;p&gt;おわり！！&lt;/p&gt;
&lt;p&gt;友利奈緒勢にガチギレされるのでアドベドントトトカンレーダーには入れない感じで、はい。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2015-12-09) &lt;a href="https://twitter.com/polamjag/status/674590133019013120"&gt;情報を頂いた&lt;/a&gt;ので、ちょっと&lt;a href="https://rg3.github.io/youtube-dl/"&gt;youtube-dl&lt;/a&gt;に触ってみました。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;ファイル名もよしなにしてくれるので無限に良かった。覚えておこう。&lt;/ins&gt;&lt;/p&gt;</content><category term="tech"/></entry><entry><title>逆再生太郎になろう（インスコ）</title><link href="https://ama.ne.jp/post/ffmpeg-tomori-1/" rel="alternate"/><published>2015-12-09T22:02:00+09:00</published><updated>2020-04-16T02:13:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2015-12-09:/post/ffmpeg-tomori-1/</id><summary type="html">&lt;p&gt;野良ボディビルダー&lt;/p&gt;</summary><content type="html">&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;はじめに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#1apt"&gt;その１・aptでよしなに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2libx265"&gt;その２・libx265をガリッと&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3ffmpeg"&gt;その３・ffmpegを上手に&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;はじめに&lt;/h2&gt;
&lt;p&gt;ffmpegで逆再生出力が必要になったのでDebianにガションとしようとしたら、&lt;/p&gt;
&lt;p&gt;（オトナの事情！）でなんか入らなかった！&lt;/p&gt;
&lt;p&gt;そこで&lt;a href="http://deb-multimedia.org"&gt;http://deb-multimedia.org&lt;/a&gt;をよしなに&lt;code&gt;cat &amp;gt; /etc/apt/source.list&lt;/code&gt;したら上手に入った。&lt;/p&gt;
&lt;p&gt;でも逆再生出力は新しめの機能なので対応しているわけがなく！&lt;/p&gt;
&lt;p&gt;ソースーからよしなにビルドーしなければならなくなった！　どうする逆再生太郎！&lt;/p&gt;
&lt;p&gt;&lt;a href="https://trac.ffmpeg.org/wiki/CompilationGuide"&gt;https://trac.ffmpeg.org/wiki/CompilationGuide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ここらを使って適当にやります。&lt;/p&gt;
&lt;h2 id="1apt"&gt;その１・aptでよしなに&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;autoconf&lt;span class="w"&gt; &lt;/span&gt;automake&lt;span class="w"&gt; &lt;/span&gt;build-essential&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;libass-dev&lt;span class="w"&gt; &lt;/span&gt;libfreetype6-dev&lt;span class="w"&gt; &lt;/span&gt;libsdl1.2-dev&lt;span class="w"&gt; &lt;/span&gt;libtheora-dev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;libtool&lt;span class="w"&gt; &lt;/span&gt;libva-dev&lt;span class="w"&gt; &lt;/span&gt;libvdpau-dev&lt;span class="w"&gt; &lt;/span&gt;libvorbis-dev&lt;span class="w"&gt; &lt;/span&gt;libxcb1-dev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;libxcb-shm0-dev&lt;span class="w"&gt; &lt;/span&gt;libxcb-xfixes0-dev&lt;span class="w"&gt; &lt;/span&gt;pkg-config&lt;span class="w"&gt; &lt;/span&gt;texinfo&lt;span class="w"&gt; &lt;/span&gt;zlib1g-dev
aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;yasm
aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;libx264-dev
aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;libfdk-aac-dev
aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;libmp3lame-dev
aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;libopus-dev
aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;libvpx-dev
aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;cmake&lt;span class="w"&gt; &lt;/span&gt;mercurial
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;aptでなんとかなるものはこれくらいまで、残りのlibx265はビルドします。&lt;/p&gt;
&lt;h2 id="2libx265"&gt;その２・libx265をガリッと&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;FFMPEG_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/usr/software&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;BIN_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/usr/bin&amp;quot;&lt;/span&gt;
mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;/ffmpeg_sources
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;/ffmpeg_sources
hg&lt;span class="w"&gt; &lt;/span&gt;clone&lt;span class="w"&gt; &lt;/span&gt;https://bitbucket.org/multicoreware/x265
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;/ffmpeg_sources/x265/build/linux
&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$BIN_HOME&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;cmake&lt;span class="w"&gt; &lt;/span&gt;-G&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Unix Makefiles&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;-DCMAKE_INSTALL_PREFIX&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;&lt;span class="s2"&gt;/ffmpeg_build&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;-DENABLE_SHARED:bool&lt;span class="o"&gt;=&lt;/span&gt;off&lt;span class="w"&gt; &lt;/span&gt;../../source
make
make&lt;span class="w"&gt; &lt;/span&gt;install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;妙なhome構成なので環境変数でよしなにします。&lt;/p&gt;
&lt;h2 id="3ffmpeg"&gt;その３・ffmpegを上手に&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;FFMPEG_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/usr/software&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;BIN_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/usr/bin&amp;quot;&lt;/span&gt;
mkdir&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;/ffmpeg_sources
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;/ffmpeg_sources
wget&lt;span class="w"&gt; &lt;/span&gt;http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar&lt;span class="w"&gt; &lt;/span&gt;xjvf&lt;span class="w"&gt; &lt;/span&gt;ffmpeg-snapshot.tar.bz2
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;ffmpeg
&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$BIN_HOME&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PKG_CONFIG_PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;&lt;span class="s2"&gt;/ffmpeg_build/lib/pkgconfig&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;./configure&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--prefix&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;&lt;span class="s2"&gt;/ffmpeg_build&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--pkg-config-flags&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;--static&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--extra-cflags&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-I&lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;&lt;span class="s2"&gt;/ffmpeg_build/include&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--extra-ldflags&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-L&lt;/span&gt;&lt;span class="nv"&gt;$FFMPEG_HOME&lt;/span&gt;&lt;span class="s2"&gt;/ffmpeg_build/lib&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--extra-libs&lt;span class="o"&gt;=&lt;/span&gt;-lpthread&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--bindir&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$BIN_HOME&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-gpl&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libass&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libfdk-aac&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libfreetype&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libmp3lame&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libopus&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libtheora&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libvorbis&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libvpx&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libx264&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-libx265&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;--enable-nonfree
&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$BIN_HOME&lt;/span&gt;&lt;span class="s2"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;$PATH&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;make
make&lt;span class="w"&gt; &lt;/span&gt;install
make&lt;span class="w"&gt; &lt;/span&gt;distclean
&lt;span class="nb"&gt;hash&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-r
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;うまくやってください。トラシュは知りません。&lt;/p&gt;
&lt;p&gt;ビルド＆インストールが終わったので次回は逆再生太郎になります。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>X250にWWANを（接続設定）</title><link href="https://ama.ne.jp/post/x250-wwan-5/" rel="alternate"/><published>2015-09-24T11:27:00+09:00</published><updated>2017-08-12T18:51:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2015-09-24:/post/x250-wwan-5/</id><summary type="html">&lt;p&gt;結局誰が得をしたんだ&lt;/p&gt;</summary><content type="html">&lt;p&gt;こんにちは、あまねです。&lt;/p&gt;
&lt;p&gt;今回はWWAN使用の最終段階である、認証を完了して実際の通信を行うまでの過程についてです。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;前提条件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;概略&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#windows-81"&gt;Windows 8.1の場合&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#debian-8"&gt;Debian 8の場合&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#sim"&gt;SIMカードリーダーを認識させる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sim_1"&gt;SIMカードリーダーを動かす&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#575"&gt;ワイヤレス ブロードバンドを 利用する (575)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;おわりに&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;前提条件&lt;/h2&gt;
&lt;p&gt;今回使用したマシンは、Windows 8.1とDebian 8にそれぞれ必要なデバイスドライバがインストールされたX250です。N5321とWWANアンテナを搭載し、正常に開通した回線に結び付けられたSIMカードが挿入されています。&lt;/p&gt;
&lt;p&gt;接続に必要な設定情報として、以下の情報が必要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;APN(Access Point Name)&lt;/li&gt;
&lt;li&gt;ユーザー名&lt;/li&gt;
&lt;li&gt;パスワード&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ユーザー名とパスワードは認証のためのものではなく、製品ごとに共通となっています。プリペイドSIMであればパッケージに記載されています。&lt;/p&gt;
&lt;p&gt;実際の認証情報はSIMカードに記録されているので、追加で入力すべき情報はありません。&lt;/p&gt;
&lt;h2 id="_2"&gt;概略&lt;/h2&gt;
&lt;p&gt;全体として、Debianに1週間程度悩まされることになって大変苦労しました。Windowsでは簡単に認証設定が完了するのですが、メインの環境はDebianなのでWWANを使いたいがためだけにWindowsを起動するのは非常に不便です。&lt;/p&gt;
&lt;h2 id="windows-81"&gt;Windows 8.1の場合&lt;/h2&gt;
&lt;p&gt;カチカチポチポチやってれば終わります。できなければ前提条件を満たしていない（前の記事の内容を完遂していない）か、機器の故障や接触不良の可能性があります。&lt;/p&gt;
&lt;p&gt;無事に通信を行うことができ、Debianでの設定の前に、ハードウェアには故障がないことをWindows上での通信で確認することができました。&lt;/p&gt;
&lt;h2 id="debian-8"&gt;Debian 8の場合&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.thinkwiki.org/wiki/Ericsson_F3507g_Mobile_Broadband_Module"&gt;Ericsson F3507g Mobile Broadband Module&lt;/a&gt;を参考にしながら設定を進めていきます。&lt;/p&gt;
&lt;h3 id="sim"&gt;SIMカードリーダーを認識させる&lt;/h3&gt;
&lt;p&gt;まずはcu、minicom、gtktermなどのシリアルコンソールでSIMカードを認識しているかを確認します。接続するデバイスは&lt;code&gt;/dev/ttyACM0&lt;/code&gt;か&lt;code&gt;/dev/ttyACM1&lt;/code&gt;です。&lt;/p&gt;
&lt;p&gt;以下のコマンドを入力します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;AT+CPIN?
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;通常ここでは、&lt;code&gt;READY&lt;/code&gt;（SIMロック解除、準備完了）や&lt;code&gt;SIM PIN&lt;/code&gt;（SIMロック、PINコード入力待ち）といったメッセージが表示されます。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ERROR&lt;/code&gt;が出るようであれば、SIMカードを認識できていないということになり、一般的にはSIMカードをちゃんと挿しているか、正しいSIMカードか確かめろといったアドバイスが与えられます。&lt;/p&gt;
&lt;p&gt;僕はここで1週間停滞したわけですが、今回の場合はどうも &lt;strong&gt;SIMカードリーダー自体を認識していない&lt;/strong&gt; ようだということが分かりました。このような場合は、SIMカードの挿入未挿入に関わらずコンソール上で同じ挙動が確認できます。&lt;/p&gt;
&lt;p&gt;様々なサイトを回って、Windows側でSIMカードを有効にしてからシャットダウンするとうまく行くとか、一旦BIOSでWWANモジュールを無効にしてから再び有効にすれば良いとか、いろいろ試しました。&lt;/p&gt;
&lt;p&gt;そして、なぜか以下のコードを実行するだけで再起動してもSIMカードを認識できるようになりました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;modprobe&lt;span class="w"&gt; &lt;/span&gt;thinkpad-acpi&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;experimantal&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;SIMカードリーダーに電源が投入されていなかった？　ただ、その前に行った操作との組み合わせによって成功した可能性もあるので「こうやったらうまくいきました！」みたいなものがあれば教えてくれると嬉しいです。&lt;/p&gt;
&lt;p&gt;&lt;ins&gt;(2017-08-12) いったんバッテリーを脱＆着してから再起動するのが効果的というのを書き忘れていましたので、書いておきます。&lt;/ins&gt;&lt;/p&gt;
&lt;h3 id="sim_1"&gt;SIMカードリーダーを動かす&lt;/h3&gt;
&lt;p&gt;SIMカードの認識後は、SIMカードリーダーを実際に接続に利用できるか確かめるために以下のコマンドを入力します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;AT+CFUN?
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;(2017-10-15) ここで&lt;code&gt;AT+CFUN=1&lt;/code&gt;と表示されればカードリーダーは利用できる状態になっています。&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;AT+CFUN=4&lt;/code&gt;は節電モード（実質電源OFF）ですので、このまま次に進んでも失敗します。この場合は、以下のコマンドを入力してカードリーダーを利用可能にします。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;AT+CFUN=1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;ins&gt;(2017-10-15) 再起動すると度々節電モードになってしまうので何らかの工夫をする必要があります。&lt;/ins&gt;&lt;/p&gt;
&lt;h3 id="575"&gt;ワイヤレス ブロードバンドを 利用する (575)&lt;/h3&gt;
&lt;p&gt;接続には普通に&lt;a href="https://wiki.debian.org/NetworkManager"&gt;NetworkManager&lt;/a&gt;を使うか、&lt;a href="https://packages.debian.org/search?keywords=wvdial"&gt;wvdial&lt;/a&gt;や&lt;a href="http://www.sakis3g.com/"&gt;sakis3g&lt;/a&gt;などでもいいです。&lt;/p&gt;
&lt;p&gt;認証情報を入力して各アプリケーションを起動すれば通信を行うことができます。&lt;/p&gt;
&lt;p&gt;ここでつまづく場合は、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;認証情報が間違っている（各アプリケーションのマニュアルを参照）&lt;/li&gt;
&lt;li&gt;無効か、壊れたSIMカードである（入手経路、保存状態を確認）&lt;/li&gt;
&lt;li&gt;ThinkPadでは動作しないSIMカードである（通信会社に問い合わせる）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などのThinkPadのハードウェア側ではどうにもできないエラーや、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SIMカード（リーダー）を認識できていない&lt;/li&gt;
&lt;li&gt;SIMカードリーダーの電源が入っていない（節電モードである）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;などが想像できます。再起動した場合は前のステップをもう一度行ってみてください。&lt;/p&gt;
&lt;p&gt;最後に、メモ程度にsakis3gの起動コマンドを記しておきます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;sakis3g&lt;span class="w"&gt; &lt;/span&gt;--interactive&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;APN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$YOUR_APN_NAME&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;APN_USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$YOUR_APN_USER&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;APN_PASS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$YOUR_APN_PASS&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;CUSTOM_TTY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/dev/ttyACM1&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;OTHER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;CUSTOM_TTY&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;オプション中でデバイスやAPN、ユーザー名、パスワードを指定しているため、"Connect with 3g"を選択するだけで自動的に設定を進めてくれます。オプションを付けずに起動すれば、対話的にデバイス指定やユーザー名、パスワードの指定を行うことができます。&lt;/p&gt;
&lt;p&gt;なお、起動コマンドを探してみるとWWANモジュールをUSBMODEMとして認識させるコマンドが多く出てきますが、僕の環境ではUSBMODEMとして認識させると&lt;code&gt;/dev/ttyACM...&lt;/code&gt;が&lt;code&gt;/dev/ttyUSB...&lt;/code&gt;に変わってしまい（名前が変わっただけで正常にアクセスすることはできる）、設定すべきttyを見失ってしまう不具合に陥ってしまいました。そのため、今回は直接ttyを指定して認証設定を行っています。&lt;/p&gt;
&lt;h2 id="_3"&gt;おわりに&lt;/h2&gt;
&lt;p&gt;まぁそこそこ便利なツールを手に入れられたんじゃないかなと思います。実家から帰ってきた今ではもうWifi環境も十分に整備されているので、おそらく存在すら忘れるでしょうけども。&lt;/p&gt;
&lt;p&gt;以上、『X250にWWANを』をお送りしました。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>dict_keysの話</title><link href="https://ama.ne.jp/post/dictkeys/" rel="alternate"/><published>2015-09-20T02:43:00+09:00</published><updated>2015-09-20T02:43:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2015-09-20:/post/dictkeys/</id><summary type="html">&lt;p&gt;誰も使わないコーナーケース&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://www.amazon.co.jp/dp/4873116880"&gt;Python文法詳解&lt;/a&gt;で次のような記述を見ました。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;dict.keys()&lt;/code&gt;メソッドは、キーの&lt;strong&gt;ビューオブジェクト&lt;/strong&gt;を返します。ビューオブジェクトは集合オブジェクトに似たイテラブルオブジェクトで、全てのキーを列挙したり、要素の存在チェックを行ったりできます。（コード例略）他の集合やイテラブルオブジェクトと、集合演算も行えます。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;コード例ではリストとの減算しか行っていなかったので、いろいろやってみることにしたのですが……。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;dictionary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;spam&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;ham&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;egg&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;適当な辞書とリスト、セット、タプルとの演算のテストコードです。結果を見てみましょう。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="ne"&gt;TypeError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;unsupported&lt;/span&gt; &lt;span class="n"&gt;operand&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;dict_keys&amp;#39;&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;list&amp;#39;&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ne"&gt;TypeError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;unsupported&lt;/span&gt; &lt;span class="n"&gt;operand&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;dict_keys&amp;#39;&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;set&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;ここまで、2つのイテラブルオブジェクトとの演算により、&lt;code&gt;dict_keys&lt;/code&gt;がイテラブルオブジェクトに対して減算を定義していることが予測できます。&lt;/p&gt;
&lt;p&gt;しかし、タプルとの演算では、謎のエラーに悩まされることになったのでした。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="ne"&gt;TypeError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;int&amp;#39;&lt;/span&gt; &lt;span class="nb"&gt;object&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;iterable&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="ne"&gt;TypeError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;unsupported&lt;/span&gt; &lt;span class="n"&gt;operand&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;dict_keys&amp;#39;&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tuple&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;dict_keysとタプルの間の減算でもエラーが発生してしまいます。&lt;/p&gt;
&lt;p&gt;タプルがどうこういう問題の前にタプルの要素である整数型のオブジェクトが呼ばれているらしく。&lt;/p&gt;
&lt;p&gt;Python-forumで質問してみても、どうも納得できる回答は得られず。&lt;/p&gt;
&lt;p&gt;Subtraction tuple from dict.keys()&lt;sup id="fnref:python-forum"&gt;&lt;a class="footnote-ref" href="#fn:python-forum" title="http://www.python-forum.org/viewtopic.php?f=10&amp;amp;t=16998"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;3つのビルトインのイテラブルオブジェクトには、どういう関係があるんでしょうね。どなたか知ってる方がいらっしゃったら、教えてもらえれば幸いです。&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:python-forum"&gt;
&lt;p&gt;http://www.python-forum.org/viewtopic.php?f=10&amp;amp;t=16998&amp;#160;&lt;a class="footnote-backref" href="#fnref:python-forum" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="tech"/></entry><entry><title>X250にWWANを（SIM取り付け）</title><link href="https://ama.ne.jp/post/x250-wwan-4/" rel="alternate"/><published>2015-09-16T19:55:00+09:00</published><updated>2015-09-16T19:55:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2015-09-16:/post/x250-wwan-4/</id><summary type="html">&lt;p&gt;クレカを契約したい&lt;/p&gt;</summary><content type="html">&lt;p&gt;こんにちは、あまねです。&lt;/p&gt;
&lt;p&gt;無事にWWANモジュールの取り付けとデバイスドライバインストールに至るも、クレジットカードがないという大きな壁に阻まれ、回り道をしなければならなくなりました。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;前提条件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sim"&gt;SIMカードを手に入れる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sim_1"&gt;SIMカードを取り付ける&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;回線を開通させる&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;前提条件&lt;/h2&gt;
&lt;p&gt;今回使用したマシンは、Windows 8.1とDebian 8にそれぞれ必要なデバイスドライバがインストールされたN5321とWWANアンテナ搭載のX250です。&lt;/p&gt;
&lt;h2 id="sim"&gt;SIMカードを手に入れる&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;格安SIMはクレジットカードがないとどこも契約してくれない&lt;/strong&gt;なんて知りませんでした。ざんねん。&lt;/p&gt;
&lt;p&gt;今のところSIM比較の記事とか、ここのSIMはデビッドカードで契約できるとか、そういうお金の香りがする記事を書くつもりもないので、クレジットカード契約を先延ばしにしてとりあえずプリペイドSIMに手を出すことにします。&lt;/p&gt;
&lt;p&gt;プリペイドSIMは4000円から5000円程度で売られています。数ヶ月の使用期間を過ぎるか、あるいは高速通信容量を使い切ると即使用終了となるものが多いです。継続利用目的には再購入・追加容量購入ともにコストが大きいので、外国人旅行者や、格安SIM初心者（試用）向けの商品と言えます。&lt;/p&gt;
&lt;p&gt;今回は将来月次契約に切り替えるという見通しが立っているので、月次契約の際に支払う初回手数料（3000円程度）を考えると妥当な値段と判断し、購入に踏み切りました。&lt;/p&gt;
&lt;h2 id="sim_1"&gt;SIMカードを取り付ける&lt;/h2&gt;
&lt;p&gt;X250の右側面にThinkPad X250には&lt;a href="https://support.lenovo.com/jp/ja/documents/pd100608"&gt;マイクロSIMカードスロットが搭載されて&lt;/a&gt;いるので、それをピンを用いて引き出します。&lt;/p&gt;
&lt;p&gt;ピンはSIMアダプターなどに付属している細長い針金を使えば良いですが、極細のマイナスドライバーや伸ばしたゼムクリップなど、ホールにある程度深く挿さる太さの固い棒状のものであれば何でも良いはずです。今回は安全ピンを分解して代わりとしました。&lt;/p&gt;
&lt;p&gt;引き出し方にはある程度コツがあります。ホールは実に簡素な構造であり、奥まで挿入することでスイッチを押してバネの力を働かせるような便利機能はありません。ピンを挿入して一定方向に力を傾けて引っ掛けるようにして引き出します。X250では向かって右に曲げるように力を入れると簡単に引き出すことができました。&lt;/p&gt;
&lt;h2 id="_2"&gt;回線を開通させる&lt;/h2&gt;
&lt;p&gt;各格安SIM会社の定める所定の手段で、SIMカードを通して通信ができるように手続きをします。&lt;/p&gt;
&lt;p&gt;参考までにIIJmioでの手続きを示すと、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;発信者番号を通知できる電話機を用意する&lt;/li&gt;
&lt;li&gt;開通センター（自動受付）に電話する&lt;/li&gt;
&lt;li&gt;SIMに結び付けられた電話番号とパスコードを入力する&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;のような感じです。買ったその場で開通できる便利さがプリペイドの売り、ですね。&lt;/p&gt;
&lt;p&gt;次回、最終回の設定編IIです。Linuxでだいぶ苦労します。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>X250にWWANを（ドライバ設定）</title><link href="https://ama.ne.jp/post/x250-wwan-3/" rel="alternate"/><published>2015-09-16T00:16:00+09:00</published><updated>2015-09-16T00:16:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2015-09-16:/post/x250-wwan-3/</id><summary type="html">&lt;p&gt;シリーズ第3弾&lt;/p&gt;</summary><content type="html">&lt;p&gt;こんにちは、あまねです。&lt;/p&gt;
&lt;p&gt;ThinkPadを破壊することなく無事にWWANモジュールを装着できたので、今度はソフトウェアー側の設定です。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;前提条件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#windows-81"&gt;Windows 8.1の場合&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#debian-8"&gt;Debian 8の場合&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;前提条件&lt;/h2&gt;
&lt;p&gt;今回使用したマシンは、Windows 8.1とDebian 8がインストールされたThinkPad純正WWANモジュールN5321とWWANアンテナ搭載のX250です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&amp;gt;systeminfo
OS 名:                  Microsoft Windows 8.1
OS バージョン:          6.3.9600 N/A ビルド 9600
OS 製造元:              Microsoft Corporation
OS 構成:                スタンドアロン ワークステーション
OS ビルドの種類:        Multiprocessor Free
システム製造元:         LENOVO
システム モデル:        20CMCTO1WW
システムの種類:         x64-based PC
プロセッサ:             1 プロセッサインストール済みです。
                        [01]: Intel64 Family 6 Model 61 Stepping 4 GenuineIntel ~2295 Mhz
BIOS バージョン:        LENOVO N10ET33W (1.12 ), 2015/04/06
Windows ディレクトリ:   C:\WINDOWS
システム ディレクトリ:  C:\WINDOWS\system32
物理メモリの合計:       16,263 MB
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$ cat /proc/version
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04)

$ cat /proc/cpuinfo
vendor_id   : GenuineIntel
cpu family  : 6
model       : 61
model name  : Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz
stepping    : 4
microcode   : 0x1d
cpu MHz     : 2305.750
cache size  : 3072 KB

$ cat /proc/meminfo
MemTotal:       16345992 kB
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="windows-81"&gt;Windows 8.1の場合&lt;/h2&gt;
&lt;p&gt;Windowsに対する各社のデバイスドライバサポートは大変素晴らしいので、当然Lenovo公式サイトでWindows用N5321(gw)ドライバを配布しています。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.lenovo.com/us/en/downloads/ds034685"&gt;Official Lenovo Support Home&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ここから対応ドライバをインストールすれば完了です。&lt;/p&gt;
&lt;h2 id="debian-8"&gt;Debian 8の場合&lt;/h2&gt;
&lt;p&gt;こちらもかなり簡単な手順でインストールを終えることができました。以下のサイトにならって進めていきます。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://forum.linuxmint.com/viewtopic.php?f=53&amp;amp;t=130708&amp;amp;p=707130&amp;amp;hilit=Ericsson+5321#p707130"&gt;Linux Mint Forums&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cp&lt;span class="w"&gt; &lt;/span&gt;/lib/udev/rules.d/77-mm-ericsson-mbm.rules&lt;span class="w"&gt; &lt;/span&gt;/etc/udev/rules.d/
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;options&lt;span class="w"&gt; &lt;/span&gt;cdc_ncm&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;prefer_mbim&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;N&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/etc/modprobe.d/cdc_ncm.conf
reboot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;udev(デバイス管理ツール)のライブラリからrulesファイルを実運用環境にコピーして、起動時のカーネルモジュール設定を調整するだけのようです。rebootはoptionalで。&lt;/p&gt;
&lt;p&gt;本家サイトではrulesファイルの書き換えを行っていたようなのでうまく行かない場合はそちらも試してみてください。&lt;/p&gt;
&lt;p&gt;苦労すると思っていたデバイスドライバの設定もここまで。&lt;/p&gt;
&lt;p&gt;そろそろプリペイドSIMが届くので取り付け編IIに続きます。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>X250にWWANを（取り付け）</title><link href="https://ama.ne.jp/post/x250-wwan-2/" rel="alternate"/><published>2015-09-15T23:07:00+09:00</published><updated>2017-12-23T19:27:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2015-09-15:/post/x250-wwan-2/</id><summary type="html">&lt;p&gt;淫乱PCを脱がす&lt;/p&gt;</summary><content type="html">&lt;p&gt;メチャクチャな天気の中いかがお過ごしでしょうか。あまねです。&lt;/p&gt;
&lt;p&gt;無事に必要機材を手に入れたので、取り付けに移ります。&lt;/p&gt;
&lt;p&gt;あ、決まり文句ですがこの記事を見て同じようなことする場合は&lt;strong&gt;自己責任&lt;/strong&gt;でやってください。この世は責任で成り立っています。&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#_1"&gt;前提条件&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#wwansim"&gt;WWAN用アンテナと、SIMカードを挿せるスロットがあるマシン&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wwan"&gt;WWANモジュール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sim"&gt;SIMカード&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#_2"&gt;下準備&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#_3"&gt;本番&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="_1"&gt;前提条件&lt;/h2&gt;
&lt;p&gt;必要機材の確認です。&lt;/p&gt;
&lt;h3 id="wwansim"&gt;WWAN用アンテナと、SIMカードを挿せるスロットがあるマシン&lt;/h3&gt;
&lt;p&gt;今回はX250（7月購入の&lt;strong&gt;非&lt;/strong&gt;米沢生産モデル）を使用します。アンテナ線を搭載し、microSIMを装着可能ですが、WWANモジュールは搭載されていません。アンテナ線がない場合は、&lt;a href="http://www.aliexpress.com/item/New-original-WLAN-WWAN-antenna-for-thinkpad-x240-x250-red-and-blue/32305069397.html"&gt;AliExpress&lt;/a&gt;とかで適当に仕入れましょう（動作未検証です）。&lt;/p&gt;
&lt;h3 id="wwan"&gt;WWANモジュール&lt;/h3&gt;
&lt;p&gt;今回は&lt;a href="http://www.amazon.co.jp/dp/B00O3YWO8U"&gt;Amazon: Ericsson N5321 (FRU:04W3823)&lt;/a&gt;を使用しますが、初期投資や追加の通信料金を支払う余裕が十分にあるような場合は&lt;a href="http://www.amazon.co.jp/dp/B00ZOSJHZC"&gt;Amazon: Ericsson EM7345 (FRU:04X6014)&lt;/a&gt;にするといいかもしれません。4G LTE対応なのでさらなる高速通信が期待できます。なお、&lt;strong&gt;ThinkPad謹製のモジュール以外はBIOSで弾かれる&lt;/strong&gt;らしいので注意。未検証です。&lt;/p&gt;
&lt;h3 id="sim"&gt;SIMカード&lt;/h3&gt;
&lt;p&gt;サイズをよく確かめて購入してください。標準SIMを買ってから泣くのも癪です。通信会社については適当で安ければたぶんなんでもいいです。高くてもいいです。いろいろ言ってますが、僕はクレジットカードがないのでSIMを買えませんでした。クレカが届くまで待ちたいところなのですが、9月20日からの帰省にあたって使いたいのでどうにかしないといけません。&lt;/p&gt;
&lt;p&gt;プリペイドSIMを買う記事が生まれるかも。&lt;/p&gt;
&lt;h2 id="_2"&gt;下準備&lt;/h2&gt;
&lt;p&gt;大体のサイトの作業工程に入っているので、内蔵バッテリーを無効にしてから作業を開始します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Config -&amp;gt; Power&lt;br&gt;
&lt;a href="/images/x250-wwan/bios-001.jpg"&gt;&lt;img alt="BIOSのConfig→Power" height="422" src="/images/x250-wwan/bios-001.jpg" width="750"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Disable Built-in Battery&lt;br&gt;
&lt;a href="/images/x250-wwan/bios-002.jpg"&gt;&lt;img alt="BIOSのDisable Built-in Battery設定" height="422" src="/images/x250-wwan/bios-002.jpg" width="750"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Yes! Yes! Yes!&lt;br&gt;
&lt;a href="/images/x250-wwan/bios-003.jpg"&gt;&lt;img alt="内蔵バッテリー無効化の確認ダイアログ" height="422" src="/images/x250-wwan/bios-003.jpg" width="750"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;BIOSの電源設定あたりから「Disable Built-in Battery」を有効にすると、ブツッと切れます。&lt;/p&gt;
&lt;p&gt;内蔵バッテリー無効化の説明には「もっかい電源ケーブル挿すまでバッテリーは無効なままや」というようなことが書いてあります。内蔵バッテリー無効化モードを有効にする前、または有効にした直後には必ず電源ケーブルを抜き、作業が終わるまで挿さないようにしましょう。&lt;/p&gt;
&lt;p&gt;Hint: ただ電源ケーブルとバッテリーを物理的に外すだけでもおそらく大丈夫だと思います。&lt;/p&gt;
&lt;h2 id="_3"&gt;本番&lt;/h2&gt;
&lt;p&gt;まず、USB機器とかSDカードは外してください。構造上当たり前ですが、着けたまま無理やり外そうとすると引っかかってボードも周辺機器も壊します。SDカードなんかは挿しっぱなしにして忘れている人も多いかと思います。&lt;/p&gt;
&lt;p&gt;裏ブタのネジを全て緩めてから1つずつツメを外します。左のパームレストのあたり（Mini−DisplayPortのあたり。裏返すと当然右側に来る）からやるといいと聞いたのでやってみたところ、一箇所が外れてからパキパキと順番に外すことができました。なお、ネジはフタから外れないことになっているので失くす心配はなかったはずなのですが、数カ所フタから外れたので注意が必要です。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/x250-wwan/internal.jpg"&gt;&lt;img alt="ThinkPad内部の様子（WLANモジュールのみ装着）" height="422" src="/images/x250-wwan/internal.jpg" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;開けると赤と青のケーブルがありますが、今回はどちらも切る必要はありません。&lt;/p&gt;
&lt;p&gt;備え付けの黒ネジを外し、N5321をWLANモジュールの横に挿し込んでから、またネジで固定します。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/x250-wwan/wwan.jpg"&gt;&lt;img alt="取り付けるWWANモジュール" height="690" src="/images/x250-wwan/wwan.jpg" width="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;N5321には赤いMAIN端子と青いAUX端子があるので、それぞれ対応する色のケーブルを取り付けます。ケーブル・端子ともに単純な作りなので使っているうちに外れてしまわないかと心配していましたが、ちょっと強めに押し込むとカチッと鳴ってしっかりと固定されました。&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/x250-wwan/internal-002.jpg"&gt;&lt;img alt="ThinkPad内部の様子（WWANモジュールを装着済み）" height="422" src="/images/x250-wwan/internal-002.jpg" width="750"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;取り付けが終わったら、裏ブタを外したのとは逆の手順で組み立てます。バッテリースロットのあたりのツメから始め、最後に左のパームレストのあたりのツメをはめてからネジをを締めるようにするとうまくいくでしょう。&lt;/p&gt;
&lt;p&gt;付属のIMEIシールはバッテリースロットのあたりに貼っておきました。&lt;/p&gt;
&lt;p&gt;ここまで組み立て編でした。最後にもう一度書いておきますが&lt;strong&gt;自己責任&lt;/strong&gt;でやりましょう。&lt;/p&gt;
&lt;p&gt;次回は設定編です。&lt;/p&gt;</content><category term="tech"/></entry><entry><title>X250にWWANを（予告）</title><link href="https://ama.ne.jp/post/x250-wwan-1/" rel="alternate"/><published>2015-09-08T19:22:00+09:00</published><updated>2015-09-08T19:22:00+09:00</updated><author><name>Amane Katagiri</name></author><id>tag:ama.ne.jp,2015-09-08:/post/x250-wwan-1/</id><summary type="html">&lt;p&gt;無駄遣いの第一歩&lt;/p&gt;</summary><content type="html">&lt;p&gt;さて、光どころかADSLも解約してしまったノー・インターネッツの実家に帰るにつき、わざわざテザリングするのもだるいしSIM買ってノーパソに突っ込みたくなった。&lt;/p&gt;
&lt;p&gt;ThinkPad X250には&lt;a href="https://support.lenovo.com/jp/ja/documents/pd100608"&gt;マイクロSIMカードスロットが搭載されて&lt;/a&gt;いる。&lt;/p&gt;
&lt;p&gt;こりゃ良いやと思ったが、どうも搭載されているのはスロットだけ。この時点ではただ飾りである。&lt;/p&gt;
&lt;p&gt;とは言え、海外Lenovoでは注文時点でWWANモジュール搭載オプションが選択できる（というかデフォルトで搭載されている）らしい。&lt;/p&gt;
&lt;p&gt;例: &lt;a href="http://shop.lenovo.com/us/en/laptops/thinkpad/x-series/x250/"&gt;米国Lenovo ThinkPadX250&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;じゃあ日本で購入したX250も、アンテナ線さえ付いていれば対応WWANモジュールを突っ込むだけで動く？んじゃなかろうか（アンテナ線が無くても追加購入すれば良いし）。&lt;/p&gt;
&lt;p&gt;探したところ結構取り付けてる人はいるらしい（アンテナ線が付いてないって諦めてる人もいたけど）。&lt;/p&gt;
&lt;p&gt;端末1つで屋外インターネットを楽しめる、なんてスマートなんでしょう！&lt;/p&gt;
&lt;p&gt;Amazon: &lt;a href="http://www.amazon.co.jp/dp/B00O3YWO8U"&gt;Ericsson N5321 (FRU:04W3823)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;差し当たってX250くん向けに上記のWWANモジュールを購入しました。&lt;/p&gt;
&lt;p&gt;コンビニ行って代引きで引き取る必要があるけど、給料入ってないので取り付けなどはまた次回。&lt;/p&gt;</content><category term="tech"/></entry></feed>