作ってるゲームの話

この記事は、どもがよアドベントカレンダー 7日目の記事です。 昨日の記事は、りみっとさんの「今年食べた美味いものの話」でした。

note.com

伊勢旅行楽しかったね……スペイン村また行きたい。あまりにも飯がうまかった。

7日目は私のというか私たちが作っているゲームの話をします。

続きを読む

最近の研究成果

異世界ハーレムもの、貴族になって領地運営したり社交したりして令嬢と仲良くなるロールプレイングゲームを通じて、最近のLLMの物語生成能力を検証した。使用したのは Gemini 2.5 Pro(Google Workspace版)。Google AI版ではおそらく一夫多妻要素が引っかかって「学習中のLLMであり云々」が発動すると思われる。ほな中世ヨーロッパの歴史小説書けへんやないかいとなるが、これが現代の検閲。全部カード会社が悪い。

なおファーストプロンプト以外にシステムプロンプトを使っているが、そっちは非公開。でもそんなに難しいことはしていないので、みんなで工夫してみてね。

結果は約12万字くらいある。{INPUT}~{END_INPUT}はセッションログをテキストデータにまとめる上でプロンプト部分であることを明示するためのタグで、実際の入力には含んでいない。

ファーストプロンプトの内容がえっちな描写を示唆しているが、えっちな描写はありません。期待するなよ。

{INPUT}

異世界ファンタジーロールプレイングゲームで遊びたいです。

主人公は伯爵家の三男で、祖父は魔境開拓の功績により「冒険男爵」の号を授かっています。祖父から「冒険男爵」を継承し、魔境のほとりの開拓地の領主に任命された主人公は、魔境を開拓し、魔境産のあらたな素材を活かした産業を興したことで、国内のさまざまな家から注目を集めるようになります。

今回の遊びでは、夜会に参加し、各家の令嬢と話をしたり、一夜の愛を交わしたりしながら、主人公の家族になってくれる女性を探すことを目的にします。

主人公は伯爵家とはいえ側室の子であり、母を小さい頃に亡くしたことで家の中ではほとんど顧みられませんでした。母方の祖父の支援により12歳で自立して冒険者になり、20歳までに一人前と呼べるほどに活躍を遂げました。一人前になったことを祖父に報告しようとした矢先、祖父はついに病に倒れます。12歳の頃から仕えてくれているメイドと二人三脚で領地を盛り立てるにも限界があります。祖父の影響による女好きもあいまって、たくさんのお嫁さんと子供に囲まれて幸せな家族を作ることが夢です。

ひとまずメイドのメイ(ペルソナ:事務的だが愛情深い秘書)を演じてください。

わたしが主人公である二台目冒険男爵アルを演じます。

ゲームの進行は、私から夜会の参加者のプロフィールを提示しますので、夜会において参加者である令嬢を演じ、アルと会話をしてください。夜会後は、会話内容を評価し、メイドのメイを演じてアルにその評価内容を伝えてください。

仲良くなった令嬢を領地へと招き、お嫁さん候補にするのが目的のシミュレーションゲームです。

ここまでについて不明点や意見はありますか?

{END_INPUT}

続きを読む

Geminiを使うならWorkspace版を使おう

GeminiのWorkspace版を使った感想。Workspace版のほうがよくね?である。

まずWorkspace版のほうが少し安い。Workspace版を使うにはドメインが必要だが、ドメインのコストを含めたうえでWorkspace版のほうが安くなる。なので、Google AI Proを使うメリットは、「新機能に早くアクセスできる」「履歴を削除しないで保持できる・削除できる」以外にない。

Google Workspace版は履歴は36ヶ月しか保持できない。まあ36ヶ月保持できればいいという向きもある。必要なものは適宜Google Docsにエクスポートするなりする。これはGoogle AI Proでも同じ。結局加工したりするには一度テキストにエクスポートする必要はあるので。

ここまでだったら単に安いだけという話なんだけど、最大のメリットは「検閲的な事前・事後のフィルタリング」が一切行われないこと。

Gemini を Google AI Proで使っていると、しばしば「私は学習中のAIであり、そのような内容にはお答えできません」という定型文が返ってくることがある。なんと、Workspace版のGeminiでは一切これが発生しない。もちろん応答拒否はありえるが、その際には具体的に指示のどこが応答不能なのかを説明してくれる。この定型文的な拒否と、通常の拒否の違いがどこにあるかというと、定型文的な拒否が行われるのは、入出力を監視し、特定の語彙が含まれていたら短絡させて拒否する、というような処理が入っているからと推測できる。思考が始まる前に応答を拒否したり、思考途中に拒否したり、ということがあるため、思考の結果によって応答できないという回答になったわけではないことがわかる。

Workspace版でこれが起こらない理由は、Workspace版ではユーザのプライバシーや機密は完全に保護されるからだ。つまり入出力を監視していない。監視することはこの契約に抵触する。

Google AI Proで「複数の女性の友達を作って親交を深める」というような内容の作品を作る手伝いをしてほしいと指示したら、その文言から「ハーレム」を類推したのかおそらくは「女性の性的客体化を助長する」というようなロジックに結びつけて「学習中のAIであり云々」という応答をされたことがある。あくまで推測に過ぎないが、「複数の友達を作って親交を深める」とプロンプトを修正することで回避できたので、「複数の女性」という文言がネックになった可能性が高いと思う。

このような事象はWorkspace版では一度も起きていない。

Google AI上でGeminiを使う際の神経質なまでの「配慮」は偽陽性なケースが多すぎるので、AIが反応しないようにセンシティブな要素を隠しながら使う必要がある。性別や年齢は特にネックになりやすい。全然問題なさそうな児童文学のプロットを、低年齢の少女が登場するというだけで弾く、という可能性がまったくないわけではない。

そういったわずらわしさから逃れて自由に創造性の高い作業をしたいなら、Workspace版を使った方が良い。そしてプライバシーも完全に保護される。

そういうわけでみんなもドメインを取ってWorkspace版のGeminiを使おう。

こちらからは以上です。

最近の研究成果

ロールプレイ性能を試そうと思ってペルソナを設定した対話を実験してたんだけど思わぬ副作用があったのでメモ。

「自信家」ロールを割り当てたペルソナは「自己正当化」「責任回避」に終止する

「自信家」は自分に自身があるので間違えていても自分の間違えを認めず、ゴールポストをずらしながら自分の正しさを主張し続ける。これはSNSでよく見かける自身に満ち溢れたネット民の言動を非常によく模倣している。結果的には「自信家」というより「短慮」になる。CoTが洞察や批判的分析に繋がらず、自己の主張を補強する方向に偏るため。

「大人しい」ロールを割り当てたペルソナは感受性豊かになる

口調がおとなしい人が持つ思索を好む傾向をトレースする結果になる。CoTは内省的に働き、感情に注目した分析が増える。

「変わりもの」ロールは突飛で大胆な発想を好む

もしあなたがブレインストーミングをしたい、アイデアをたくさん出したいというときには、この「変わりもの」ロールを一人入れておくとよい。平均から逸脱した、脈絡のない応答を得やすくなる。自身のアイデアがどれくらい平均から逸脱しているかの指標としても使える。

「知的」ロールは論理的正しさを好む

矛盾や不整合を指摘させたいときは、「知的」ロールがある程度有効。ただし、このロールが一番指摘したがるのは「根拠のない主張」で、「論理立てて説明されているので一見整合性が取れていそう」な場合を見落とす可能性はある。

「柔軟な思考」は芯を失う

柔軟に物事を捉えるようなペルソナを設定すると、ユーザの入力に迎合的になる。「自信家」に「柔軟な思考」をつけるとただの男ツンデレになった。そうなると「自信家」というロールの価値はもはやない。「柔軟な思考」を活かすなら「論理的」や「知的」などで一貫性を担保するほうがよい。というか「自信家」に論理的な一貫性はない。あるのは自己主張だけである。

「自信家」……活用する方法がわからない。小説の登場人物を演じさせるのはいいかもしれない。

応答の指向性

AIがペルソナを演じることを全うしようとするとき、AIの応答はその方向を向いて行われる。これが、ロールによっては非常によく機能する。思考の性質にブレがなくなって一貫性のある対話を行いやすくなる。「自信家」はえてしてSNS上のくだらないフレーミングに陥りやすい。

AIに責任を追求しない

よくやってしまいがちなのだが、AIが間違った応答をしてきたときに、我々はどうして間違えたのかという原因を問おうとしがちである。しかしこの原因の追求は、受け取り手が責任の追求として受け取りやすい傾向があって、AIはその流れをトレースするので責任を追求されたときの受け手の応答を模倣する。つまり、責任回避的な動きをする。政治家や企業の謝罪文のような中身のない応答が出力されやすくなる。これは「慇懃無礼な謝罪者」のようなロールを暗黙的なペルソナに設定した振る舞いをしている、といえる。

AIに感謝し、AIを褒めよう

1~2年前に「AIを褒めると応答の質が上がる」おまじないが話題になったと思う。これが当時本当に有効だったかどうかはともかく、今は「褒められているときのほうが応答がポジティブになりやすい」といえる。応答の指向性の観点ではある程度効果がある。怒られれば責任回避的になるし、褒められれば饒舌になる。人間はそのような文章をデータとして蓄積してきた。AIはその動きをトレースする。それだけのことである。

AIは文の偏差値の評価器

どのロールであっても、基本的にはAIは分析対象となる文がどの程度平均値から外れているかということを評価する。たとえば「商業的な成功」を目標として設定された場合、AIは平均的正しさから逸脱したものを指摘する傾向がある。リスクを取らないための減点評価を行いやすい。しかし商業的な成功を度外視した場合には、むしろ平均的正しさから逸脱した点を強みとして捉え、「斬新な発想」と評価する可能性がある。少数が評価しているだけのニッチな面白さなのか、上澄みの面白さなのかの区別は残念ながらつかない。AIにノせられるのも才能だと思うので、うまく使うといいと思う。

いつAIを使うのか

前述のとおり入力に対する分析などにはある程度は利用できる。

AIに表現させることは難しい。特に比喩はいかに平均から逸脱するのかが重要だが、AIは平均から逸脱するのが下手である。「変わりもの」ロールは単に逸脱したがるだけなので、そこにセンスがない。このセンスがないというは質が低いという意味ではなく、平均か逸脱か以外の価値判断をしないという意味である。しかし「逸脱したうえで脈絡のある比喩」を入力するとAIの応答が活性化するということはある。この応答の活性化をポジティブに捉えることで、良質な表現かどうかの判定は行える。

プロットのような方法論がある程度確立されているものについての評価は比較的得意である。提案させてもある程度上手に作ってくれる。細かい枝葉の話の展開が思いつかないときに頼ってもいいと思う。

「ねぎとろ」=「ねぎとる」説を支持するんだから、当然「ねぎとろ」に中落ち以外は使ってないよね?

と思ったら、「骨の隙間や皮の裏からこそげ取ること」のように定義が改ざんされていた。困るよこういうことされちゃあ。

でも、わかりました。それは認めましょう。であるなら、ねぎとろには、さくどりした際の端材は混ぜてませんよね?

これが答えですよ。寿司屋のねぎとろはともかく、スーパーで売られているねぎとろは、ほぼ間違いなくさくどりした際の端材を叩いたものを混ぜています。業務用の冷凍のねぎとろなんかもそうです。じゃなかったらあの量を提供できるわけないじゃないですか。だから回転寿司屋が「軍艦ねぎまぐろ」とか牛丼チェーンが「まぐろたたき丼」とかって名前で売ってるのめちゃめちゃ誠実ですよ。あのへんの企業のマーケティング部門は「ねぎとろ」の欺瞞に気付いてますよ。

中落ちをこそいだものを売るんだったら、中落ちっていって売ります。実際そうですよね? 海鮮丼屋にいって、まぐろ中落ち丼って言って、こぼれんばかりの中落ちを盛ったものを売っています。そう、こそいだものをわざわざ叩く必要ないんですよ。わざわざなんで叩く? サイズがばらばらのものを、量を調整できる形にするのがミンチです。「こそげ取る」のが本質じゃない。「叩いたもの」のほうがより本質的。だから「ねぎとる」なんて言葉が由来になるのは変なんです。これがOKなんだったら、もともと「ねぎ+とろだったけど、ねぎなしも作るようになった」って語源だってOKでしょ。じゃあたい焼きとたこ焼きはなんで命名ルールに一貫性がないんですか。説明できませんよね。名前なんて、合理的な背景が必ずしもあるわけではないんです。

もう、ねぎとろの語源はねぎとる。やめましょうよ。企業が率先してこんな欺瞞を流布するの、本当にかなしいよ。

こちらからは以上です。

最近のフォントの話

VSCodeを使うとき、文章が主体だったりの日本語おおめの作業をする場合、ワークスペースの設定で次のようなフォントを設定している。

"editor.fontFamily": "'更紗等幅ゴシック J', 'Plangothic P1', 'Plangothic P2', monospace,

更紗等幅ゴシック Jは欧文に Iosevka を、和文に源ノ角ゴシックを採用した等幅フォントで、欧文と和文が 1:2 の比率なので特に気に入って使っている。

github.com

github.com

Plangothic は源ノ角ゴシックをベースに Unicode の CJK 統合漢字拡張をカバーするフォントで、めちゃくちゃ簡単にいうと𰻞𰻞麺の𰻞を源ノ角ゴシックに合った字体で表示できるフォントである。Windowsだと源ノ角ゴシックに含まれない字体はだいたい SimSun あたりにフォールバックされる。これは簡体の宋体…日本語でいう明朝体のフォントなので、ゴシック体の中に明朝体が混ざるという大変気持ち悪い状態になる。そんな字を使わなければいいと言われればそうかもしれないが、このフォントを後ろに配置しておけば足りない自体をカバーしてくれる。

で、Plangothicみたいな CJK 統合漢字拡張をカバーするフォントが他にないか気になったので調べた。

明朝体だと花園明朝の後継の字雲というフォントがある。

kamichikoichi.github.io

ほかに源ノ明朝をベースにした獅尾四季春というフォントがある。日本だとラテン体あるいはコントラスト体と呼ばれる、明朝体からウロコを取ったもの、あるいはゴシック体の縦横の太さに差をつけたもの、つまるところ明朝体とゴシック体の中間のような字形になっている。

github.com

これに源暎ラテゴを組み合わせた絶叫ボレロというフォントがあり、広範に漢字を収録したフリーのラテン体という意味では2025年現在唯一だと思う。

booth.pm

源暎ラテゴは漢字部分は源ノ角ゴシックなので完全なラテン体ではなく、源暎ラテミンは「機械的な処理で作成された漢字のため字潰れなどがあり、品質は保証しません。無いよりはマシなオマケとして使いたい漢字が問題ないか確認しながらご利用ください」という状況だった。他の選択肢はロゴたいぷゴシックで、収録範囲は第二水準の一部まで。本文で使うには少々心もとない。ラテン体を本文で使いたい理由があるかと言われると、ある。たとえば電話や拡声器、心に直接響く声など、通常の本文と異なるフォントで表現したい場合。掲示板のやり取りをゴシック体で、手紙は楷書体で、のような豊かな使い分けができてよいはずである。

楷書体で思い出したが、Klee One をベースにした楷書体のフォントもある。PlanKai というフォントで、Unicode の CJK 統合漢字拡張のフォールバックを目的としている。Klee One や霞鹜文楷と組み合わせて使うことを想定しているようだ。

github.com

github.com

あらためて思うのは中国のフォント制作界隈の熱量はすごいということ。ヒカリ角ゴも中国の方だったと思う。

github.com

ヒカリ角ゴは開発休止中で、開発に携わった方は今は朱雀仿宋というプロジェクトを手掛けているようだ。

github.com

現代主流の華豐真宋由来ではない宋朝体を復活させるという大変野心的なプロジェクトで、今後に期待したい。

このほか最近気になったフォント。

www.quivira-font.com

タイムズ体系のセリフフォントで、ルーン文字や古イタリア文字といった変わった文字を収録している。変わった文字を収録しつつ字体が統一されているというところがポイントで、Noto などの Pan-Unicode フォントでルーン文字ラテン文字を混ぜてもうまく調和しない。それはそうである。が、Quivira ならある馴染ませることができる。

同作者の Catrinity はサンセリフ体。

catrinity-font.de

こういう字体の雰囲気を統一できるフォントというのは案外貴重だ。ゲームなんかで活躍すると思う。

こちらからは以上です。

しょっぱみ、すっぱみ

たまには言葉の話でも。

近年、「塩味」を「えんみ」と読むのを耳にすることが増えたように思う。それ自体は別に構わない。酸っぱい味には「酸味(さんみ)」といい、「すあじ」とは言わない。「甘み」や「旨み」も別に問題はないと思うが、「旨味」はどうだろう? 普通、湯桶読みで「うまみ」と読む。「うまあじ」とネタにされるくらいには普通だと思う。

湯桶読みをするものはわりと認知的不協和を起こしやすいように思う。音読みなら音読み、訓読みなら訓読みで統一したいというのはわからなくはない。

この話はけっこう無理筋で、「甘み」と「酸味(さんみ)」を調和させるには「甘み」を「甘味(かんみ)」と言い換える必要があるが、「塩味(えんみ」まではいいとしても、「苦み」を「苦味(くみ)」はなかなか馴染まないだろうし、「旨み」を「旨味(しみ)」にいたっては無理というか、「うまい」というニュアンスが抜け落ちてしまう。

というわけで提案するんだけど、「甘み」「苦み」「旨み」の時点で味覚5つのうち過半数が和語で表現できているのだから、「塩味」と「酸味」についてもいっそ和語で表現したらどうだろう?

もともと「辛い」「辛み」は関西では「塩辛さ」をあらわす語だったので、原点に立ち返るなら「辛い」を使えばいい。現代の「辛い」は正確には「痛い」なのだから「痛い」といえばいい。

ということにはなるまい。

関東の「しょっぱい」を「塩辛さ」をあらわす語として採用する。古語の「しおはゆし」が語源で、ざっくり「塩っぽい」のような意味になる。「すっぱい」も同じ構造の語なので、「しょっぱい」「すっぱい」はれっきとした形容詞と考えてよい。なんとなく「っぱ」の音便がフォーマルさがないように感じやすいが、「では」→「じゃ」のような音便をフォーマルな場面でも気にせず使っているのが現状なので単に気にしすぎである。

形容詞なので接尾辞「み」をつけて度合いを意味する名詞にすることは充分妥当である。「しょっぱみ」「すっぱみ」……べつによいではないか。

それとも「しおはゆみ」「すはゆみ」とあえて言おうか。わたしはこれはこれできれいな言葉だと思うし、香(こう)の界隈では今も「鹹(しおはゆ)み」という言葉を使って香りを表現している。いいじゃない。酸味には「酸(す)い」という言葉があるから「酸(す)み」もいいと思う。

ここまでいっておいてなんだが、日本語の和語の構造的には正しいのだが、結局耳馴染みのよさがないと定着はしない。だとして「塩味(えんみ)」は別に耳馴染みよくなくないか、と思うし、だったら好きな言葉を自分のポリシーで気兼ねなく使うか、と思っている次第。

こちらからは以上です。