瞬き・口パク・泣き顔。P麻雀の立ち絵と表情ができるまで

P麻雀のキャラクターは、対局中に瞬きをして、しゃべるときは口が動き、負けると泣きます。1人あたり6枚の絵をどう作って、どう動かしているのかを紹介します。

P麻雀の対局画面では、右上のキャラクターがずっと「生きて」います。ときどき瞬きをして、しゃべれば口が動き、和了ればポーズを決め、振り込めば泣く。実はこれ、1人につき6枚の絵の組み合わせでできています。

あかりの6枚

パッと見ると同じ絵が並んでいるようですが、目や口だけが少しずつ違います。

1. 立ち絵を生成する

立ち絵は画像生成で作りました。プロンプトは「全員に共通の前置き」と「キャラクターごとの説明」の2段構えです。共通部分で絵柄(ポップと萌えのミックス、明るい色、全身の正面立ち、パステルの背景、文字は入れない)をそろえて、キャラクターごとの部分に髪型や服、持ち物、テーマカラーを書きます。

cute anime girl character, pop-and-moe mixed art style,
bright vivid pop colors, clean bold lineart, soft cel shading,
... full body standing pose, front facing,
simple pastel background with soft bokeh,
mahjong game character design, ... no text, no logo, no watermark

上が8人共通の前置き(一部)。あかりなら、このあとに「赤いツインテール、赤いパーカー、牌の形のお守り、テーマカラー #E63946」といった説明が続きます。

1枚ずつ、順番に画像生成は、何枚も同時に頼むと注文が混ざってしまうことがありました。そこで「1枚ずつ順番に生成する」をルールにして、プロジェクトの CLAUDE.md にも書いてあります。

生成は 1024px で行い、ゲームに入れるときは 750px に縮めています。

2. 瞬きと口パク

瞬きと口パクは、差分の絵をまるごと入れ替えているわけではありません。基本の絵と比べて違いが大きい顔まわりだけを、ぼかしたマスクで重ねています。こうすると髪や服がブレずに、目と口だけが自然に変わります。

  • 瞬き:2.4〜4.8秒ごとに、ランダムな間隔で
  • 口パク:ボイスが鳴っているあいだだけ

3. 勝利ポーズと泣き顔

和了時のカットイン
まりんが和了した瞬間のカットイン。勝利ポーズの絵を使っています。

勝利ポーズは、和了のカットインと、和了したときの2コマのアニメに使います。泣き顔は、局で負けたときの悔しがり用です。

ラスボスも泣きます

余裕たっぷりのりいちも、負ければちゃんと泣きます。ちなみに、りいちの「泣き顔・口閉じ」は、最初に作った絵だと口パクのたびに顔全体がガタついて見えてしまいました。そこで口のところだけを差し替えた合成版に作り直しています。こういう細かいところは、実際に動かしてみて初めて気づきます。

全員分をそろえると、9人(8人+主人公のハルト)×6枚。これが P麻雀のにぎやかさを支えています。