はじめまして。ゴースト開発をしている、ずみと申します。
伺か・伺的 [第1会場] Advent Calendar 2025の12/22を担当させていただきます。前日は淀橋さんの、翌日は瑞樹ユラさんの記事が開きます。
https://adventar.org/calendars/11651
序:簡単な自己紹介

ずみといいます。2023年からゴースト開発に参入して、現在2つのメインゴーストを公開しています。
・2023年ローンチ、ツナ缶の話だけを延々とする「ツナ缶にしき」(年数回、ツナ缶にまつわる記念日を中心に更新)
・2025年ローンチ、手触りのよさにこだわった雑談系「ピンクのでかいメイドさん」(月イチを目指して更新)
https://cherry.narnaloader.ukagaka.net/ghost.php?ghost=dekai_pink_maid
そのうち、「ピンクのでかいメイドさん」に関しては、手触り(起動中やさわり判定、トークの雰囲気など)をやさしくしようと、日々改良を重ねています。
いずれも、ネットワーク更新後に予告なくVanishしたりはしないというお約束のもと、更新を続けています。
本記事は、ももかちゃんの中身に関する解説や、一節だけ「コミュニケートのランダム選出、オートコンプリート」スクリプトの実例を紹介しています
ほんとは里々トークの記述例とか書いたハウツー記事にする予定だったんですが、計画倒れしてこの記事に至りました。
いわゆる自ゴ語りです。おつきあいください。
1:「大井道桃華」とは、どういう人なのか

おおいみち ももか──以下、ももかちゃんとしましょう。ユーザのところに通いでメイドをしている、目立った特殊能力のない女の子です。身長が256cmあって、やたら洗濯洗剤に明るいというフレーバーを持っています。
伺かではファンタジーから日常系まで垣根なくゴースト世界観が広がっていますが、ももかちゃんは現代(2020年代)日本のどこかで生きていることになっています。出生地は未設定です。おおむね南東北のどこかではあるようです。19歳で、誕生日は8月8日(後述)。ゴーストである限り、年は取りません。理論上は無限にこだわれる伺かプラットフォームだからこそ、現実的なスケール感とキャラクターの生きている感触のバランスには特に気を使っています。
そうそう、ももかちゃんには二次創作ガイドラインがありますが、ほとんど自由です。年齢制限付きの二次創作や商用利用なども特に制限していません。お好きな形でももかちゃんの世界を広げてもらえると、うれしいです。
ユーザのこと:
ユーザ像は詳しく決めていません。ことばによる意思疎通ができることから、現代日本に居れるくらいの知的生命体ではあります。
人間の男女の他、人外、サイボーグなど。ユーザがどんな姿や心をしていても、ももかちゃんは誠心誠意お仕事をしてくれます。
名前と誕生日のこと:
名字の由来は、大井町(東京の地名)と犬井道(佐賀の地名)のかばん語です。犬井道から点をどかして、大井道(おおいみち)と名乗っています。もともと「おおいどう」という読み方がプロトタイプの頃の設定にありましたが、とっつきやすさのため「おおいみち」読みになりました。
桃華という名前は、母親が彼女を産んだ直後に食べた桃がおいしかったから、桃華という名前になりました。なので、好きな花はハナモモで、誕生日はちょうど桃の出荷最盛期で「ふくしま桃の日」という記念日でもある、8月8日です。
背、高いよね:

身長について、256cmという巨躯になったのは……ゴーストのプロトタイプづくり(案出し)段階において、ラーシェちゃん(ぽなさんが開発してるうかどんのLLM bot)から「シェルは長辺1024pxくらいが普通」と言われたのがすべての始まりです。ふとももまで描画するシェルで長辺1024pxは(高DPI対応のなかったSSP2.6番台には)「でかい」見た目でデスクトップを圧倒したので、なし崩し的に身長が256cm・シェルが1024px・「ピンクのでかいメイドさん」という二つ名(ゴースト作品名)まで決まっていきました。
このふとももまで1024pxというシェルサイズは、4Kモニタ・100%ではちょうどよいものの、WQHD・FHDモニタでは持て余します。readmeやOnFirstBoot(初回起動)で縮小についてふれているのは、実際のところFHDで使うなら50~66%かなと思って誘導を入れました。
見た目が大きいので、器量も大きいと自称しています。母親と妹さんは普通の背丈です。
服について:
masterシェルなどで着ている、給仕用のメイド服は、ももかちゃんのリア友に作ってもらったものです。00年代メイドカフェブームのとき主流だった、丈の短い・露出の多い……いわゆる「俗っぽい」ないし「カジュアルな」メイド服なのは、カジュアルなメイド服でユーザとの心理的障壁を減らしたかったのかもしれません。
なお、その後メイドカフェの名門ワンダーパーラー(池袋)に行ったももかちゃんは、ヴィクトリアきわまりない本格的なメイド服デザインと給仕の振る舞いに危機感を抱き、ユーザへの給仕が若干よそよそしくなっています。
追加シェル:

ありがたいことに、各イラストレーターさんの尽力によって、メイド服以外のももかちゃんを眺められます。それぞれの追加シェルをインストールして、着替えてもらってください。今の時点でセーラー服、デート服、お洒落着、水着……きっとユーザのぴったりがあります。
・rough_pastシェル(もちもち二郎さん)で、高校時代の夏服を引っ張り出してきています。半袖で涼しいのですが、成長は続いています。胸回りが相当きつそうでした。メイド服のrough_maidシェルも人気です。
https://cherry.narnaloader.ukagaka.net/ghost.php?ghost=rough_past
・桃華のおでかけコーデ(yumiさん)は、メイド服を作ってくれたリア友と何日もコーディネートの比較検討会議をして、最終的に相当ガーリーに仕上げた一着になります。気合の入ったデート服のおもむき。
https://cherry.narnaloader.ukagaka.net/ghost.php?ghost=momoka_odekake
・クラシックネイビー(ゆみるさん)は、シックで落ち着いた雰囲気のももかちゃんになりました。普段のおでかけから旅行まで、いろいろと映えそうです。
以上3シェルは職場での使用でもまったく問題ありません。
https://yumir1951.seesaa.net/article/classic_navy.html
・すくみずもちふわももかちゃん(娯楽薬さん)は……謎の技術によって際限なく伸びる水着を着たももかちゃんです。全年齢ではあるものの、きわめて男性向けなテイストになっているので、職場での使用に適しません。
安全装置をオフにするとさらなる判定が発生しますが、非推奨です。
https://cherry.narnaloader.ukagaka.net/ghost.php?ghost=momoka_mochifuwa
色々な見た目のももかちゃんがいるって、うれしいですね。私はうれしいですよ。
2:「47都道府県のお菓子」気分だけでも旅を

今年夏のアップデートで登場した「47都道府県のお菓子トーク」。北海道から沖縄県まで、いくつかの銘菓・ローカルお菓子をピックアップしてももかちゃんが紹介します。
あるユーザから「ながらく入院しているが、ももかちゃんのトーク更新を楽しみにしている」というメッセージをいただき、それから「気分だけでも旅を」という発想から肉付けしていきました。
ももかちゃんは旅行好きという設定(たまにまとまった休みを取って旅行に出ている)なので、全国の銘菓を知っていてもきっと違和感はありません。
最初は電源の周波数が50Hzのエリアを実装、翌月60Hz圏を実装して、47都道府県を網羅しました。日本を二分するにあたってNTTの東西か電源の周波数がよく使われているので、後者を採用しています。
特に印象強いのは、山形のオランダせんべい、埼玉の十万石まんじゅう、福井のとびつき団子、長崎の味カレーでしょうか。
オランダせんべい:南東北ではよく知られている、薄いサラダせんべい。ももかちゃんの家ではよく出てきていたらしい。
十万石まんじゅう:南関東で圧倒的な知名度を持ち、テレビCMも有名。知名度のわりに埼玉でしか買えないということにプレミア感がある。
とびつき団子:ササゲ(でかいあずき)を使った、おはぎ的なもの。覚えていたのはおいしかったから。
味カレー:長崎北部のソウルフード。小さい袋は数十円で買えることから、現地駄菓子としても定番だし、作業のおともにおいておくといろいろいい感じになる。
選出と解説については、自分の足(ももかちゃんが知っていること)、GPTで提案してもらったものに重みづけをかけたもの(メンターさんの話)を併用して、後者についてはお取り寄せを行ってどういう雰囲気かたしかめています。
自分の足の象徴が福井のとびつき団子、提案してもらったものの象徴が沖縄のくんぺんです。自分の足で調べきるのは限界があったので、そこはGPTで補いました。
たいがい観光ガイド本に出てくるような無難なお菓子を提案されるのですが、たまーにくんぺんのようなお菓子を提案され、食べてみたらおいしかった……みたいな別角度の発見もあったので、生成AIの話だからと食わず嫌いせずワークフローに組み込んでよかったなと思っています。
3:「ランダムトークをテーマ別に話す」

さっきの47都道府県のお菓子トークを実装するにあたり、トークをジャンル別に実装する必要性が出てきました。
そこで考えたのが、トーク開始時に乱数を生成して、その数字でそれぞれのジャンルに分岐するという処理です。
たとえば、トークの最初に1~16の乱数をつくり、6以下なら通常のランダムトーク、7と8なら時間帯別トーク、9と10なら50Hz圏、11と12なら60Hz圏のお菓子トーク、13~16は特殊トーク用に予約……という感じで分岐します。
数字の範囲を広げれば表示される確率が上がり、狭めれば下げられます。また、表示確率の低い特殊トークを連続して表示しないなどの処理を組み込むのが容易になりました。これによって「特定イベント既読の時のみ発動」「時間帯別トーク」などを違和感なく実装できています。
4:豊富なさわり判定

さわれる箇所は少ないですが、その分とくにさわられそうな部分(頭や胸)のトークは多めにセットしています。
伺かプラットフォームのよいところは、双方向のコミュニケーションにあると思います。そこに居るだけ、話すだけではなく、ユーザから能動的になでたりつついたりできること。それで、よりキャラクターが生きている実感を得られる。DesktopMateやちょこざいAIなど、令和に入ってデスクトップマスコットが色々登場しましたが、伺かは後発デスクトップマスコットがあまり持っていない双方向コミュニケーションの土壌が整っているのが強みだと思います。
5:里々によるコミュニケートのランダム選出、オートコンプリート(作例つき)

うかどん諸氏の知恵をお借りして、里々で「コミュニケート単語のランダム選出」「手動入力時のオートコンプリート」を実装できました。@単語群でコミュニケート単語を列挙して、その単語群をランダム選出とオートコンプリートの候補に使っています。
コミュニケートのユーザビリティが飛躍的に改善したので、共有します。
~~スクリプト作例ここから~~
@コミュ単語グループ
こんにちは
こんばんは
えんばぐ
#以下コミュニケート単語が列挙される
*コミュニケート
:(100)はい、どうしましたか?\w9
■おてがるコミュニケート
_(コミュ単語グループ) コミュに飛ぶ
_(コミュ単語グループ) コミュに飛ぶ
_(コミュ単語グループ) コミュに飛ぶ
_(コミュ単語グループ) コミュに飛ぶ
_φ・直接入力する コミュ直接入力
*コミュ直接入力
:\![open,communicatebox]
(ひらがなで入力してください)
@inputbox.autocomplete (R0)==communicatebox
(set,単語群「コミュ単語グループ」の呼び出し回避,昇順、起動中)(join,(バイト値,1)(times,(単語群「コミュ単語グループ」の数),,(コミュ単語グループ)))
*コミュに飛ぶ
>ユーザ「 (選択ラベル)
*ユーザ「 えんばぐ
:(0)ものどもー! バグが出たぞー!
~~スクリプト作例ここまで~~
6:「安全装置」
ももかちゃんの大きな特徴に、設定メニューからオンオフできる「安全装置」があります。安全装置は通常オンになっていて、過度にプライベートかつショッキングなトークや、ネガティブな気持ちの発露、ゴーストの実存(ゴースト本体のデータやセーブデータ)を削除する要素(Vanish)を防いでいます。18歳未満のユーザや、ネガティブな要素にふれたくないユーザはオンのままにしておいてください。正の好感度がないゴーストだから、距離の詰め方をユーザに一任しています。
オフにすると、負の好感度が増加可能な状態になります。通常ももかちゃんに嫌なことを言う・するを試みても、安全装置があると何も起こりませんが、安全装置を切ることでそれらの試みが通るようになります。なお、ももかちゃんは「自称、器量の大きいメイド」なので、多少嫌なことをされても動じません。その気持ちを裏切るのは……けっこう大変かもしれません。
安全装置がオンのままでも、ももかちゃんはユーザのことを好きでいてくれます。恋愛的な好きとはちょっと違います。それはどういうことか、は次節に持ち越します。
「設定次第で特定のトークを表示しないようにする」というのは、娯楽薬さんのゴースト「あなたの唯一」彼岸唯ちゃんをリスペクト……おおいに参考にしています。唯ちゃんにも「好きなトークだけ表示するようにする」とか「ネガティブなトークを抑制する」といった機能があります。
https://iambanzoku.wixsite.com/mntrhl/blank

ももかちゃんの中にある様々な要素であなたの唯一を模倣したり、概念を拡張して、ももかちゃんの陰影を強めています。この場を借りて改めてお礼申し上げます。
7:結局、ももかちゃんはユーザのことが好きなのか?

「インストール直後から好感度80%くらい」で、前出の安全装置を切って嫌なことをしない限り、ユーザを嫌うことはありません。出会って(メイドとして通い始めて)半年の間、記憶を失うくらい大変だったユーザの背中をずっと支えてきたからです。それゆえ、恋愛的な好きとは違う感情を持っています。
仕事の相手としては、これまでにないほどユーザを信用しています。多少のボディタッチや浮ついた会話を持ち掛けられても、動じません。たとえ安全装置を解除しても、限界が来るまでユーザのことを見放しません。そのひたむきさと、器量の大きさは、ももかちゃんというキャラクターの芯になっています。
ソロゴーストで萌え要素が多い……ということで、ユーザラブ(ユーザが恋愛や性愛的等に好きなゴーストのこと)のゴーストという方向性も確かにあったのですが、ローンチ後にいわゆる「キャラクターが一人で歩き出す」のを眺めていたら、ユーザラブとはちょっと異なる感覚になっていました。
ユーザとは……付かず離れずの関係と称するのが一番近いのでしょうか。
ただし、「安全装置の解除よりもふさわしくないこと」をした場合、破損したセーブデータに、ももかちゃんの恨み節が残ります。ghostフォルダを覗いて何かをしたり、ふさわしくないことをした場合のサポートは一切できかねますので、ご了承ください。

結び:これまでのこと、これからのこと
ももかちゃんについては……プロトタイプの作成、ローンチから現在に至るまで、うかどん諸氏やユーザ諸氏から、さまざまなフィードバックをいただくことができました。それをもとに改良を重ねられました。
これから……は、引き続きツキイチ前後の更新ペースを保ちたいなというのと、しばらくは革新的な機能追加をおこなわない予定です。追加シェルは……気が向いたら!
もちろん、こっそり追加シェルを作って頂けたらうれしいです。捕捉し次第、シェル交代反応をつけさせていただきます。健全もそうでないものも歓迎いたします。
7千文字くらいあってだいぶまとまらない感じの記事になりましたが、ももかちゃんの魅力を感じ取ってもらえたら幸甚です。
デスクトップマスコット再燃の今だからこそ、2025年生まれのゴーストを、デスクトップに立たせてみませんか。きっと、にぎやかになりますよ。
さばがお好きでしたら、こちらもどうぞ、「りっぱなさば」という2025年生まれのゴーストです。
https://cherry.narnaloader.ukagaka.net/ghost.php?ghost=rippana_saba
