blog
制作の裏側名前を数値に畳むと、家紋がひとつに決まる——ハッシュとシード乱数だけ
名前を入れると、その漢字から「その人だけの家紋」を一枚のカードにして返します。……と説明するより、触ってもらうほうが早いです。
自分の名前でも、家族や友だち、推しの名前でも。全部ちがう家紋が出ます。

なぜ「名前」と「家紋」なのか
入り口は「名前」だけにしました。誰でも持っていて、入力は一瞬で終わる。そこに和の家紋という、見た目で確実に映える素材を掛け合わせています。作っている側としても、出てきた家紋がそれぞれ違うと、つい自分や知り合いの名前で何度も試してしまう。その「つい、もう一回」を作れるかどうかが勝負だと思っていました。
名前から家紋が決まる仕組み
仕組みはわりと素朴です。名前を「ハッシュ」——文字列を決まった数値に変換する処理——にかけ、その数値を乱数の種(シード)にします。同じ名前なら必ず同じ家紋、ちがう名前なら別の家紋。種をもとに、家紋の形・モチーフ・数・回転・色を決めていきます。ここでAIは一度も呼んでいません。全部その場(ブラウザの中)で計算しているので、何人が同時に使ってもサーバー代以外はかかりません。
意味づけには、名前の漢字の「部首」を五行(木・火・土・金・水)に対応させています。五行は、自然界のものを5つの性質に分けて捉える古い考え方です(参考:五行思想 – Wikipedia)。たとえば「海」なら『氵(さんずい)』があるので水の気が強い、という具合です。
ひとつ正直に書いておくと、どの部首をどの気に結びつけるかは、五行説をベースにした私の解釈で、学術的な定説ではありません。占いとして売るつもりもありません。あくまで「名前を入れたら、なるほどと思える理由つきで家紋が出る」遊びとして作っています。
作っている途中で、痛いところを突かれた
社内で触ってもらったとき、「これ、何回かやると同じ家紋が出ない?」と言われました。図星です。
中を見たら、家紋の骨格は約60種、説明文は20通り、締めの一言にいたっては5通りしかありませんでした。これだと少し試すだけで被ります。そして「自分の次に家族や推しの名前でも試す」という、このツールでいちばん大事な遊び方は、被った瞬間に冷めてしまう。いちばん大事なところが、いちばんスカスカでした。
直し方は、種類を一個ずつ手で増やすのではなく、要素を掛け合わせて増やすことでした。外周(丸・角・なし)× モチーフの種類 × 個数 × 中心の飾り × 陰と陽…と掛けていくと、組み合わせは一気に膨らみます。実際、家紋の骨格は約5,000通り、説明文は約180通り、締めは30通りまで広がりました。掛け算は強いです。一個ずつ描いていたら一生終わりません。
ただし、種に任せてゼロから線を引かせると、「世界に一つの、ただ不格好な家紋」が量産されます。なので、ちゃんとした形のモチーフを土台として先に用意しておき、種には「どれを選ぶか・どう並べるか・どう色をつけるか」だけを任せています。毎回ちがうけれど、毎回それなりに見える。その線引きが肝でした。


同じUIでも、名前を変えると家紋・型名・説明文がまるごと入れ替わります。
家紋は、自分で描くことにした
最初は「本物の家紋のSVG(拡大しても粗くならない画像形式)を拾ってきて使おう」と思っていました。でも実際に集めてみると、ファイルごとに座標も作りもバラバラで、おまけに商用で使うにはライセンスを一点ずつ確認しないといけない。これは沼だな、と。
そこで方針を変えて、自分で描くことにしました。質を分けたのは、意外にも「陰抜き」——塗りではなく、地のほう(背景側)を彫って、残った余白で形を見せる、家紋の古い表現——でした。
ここで厄介なことが起きました。カードに直接「地を彫る」と、家紋の下の背景や金色の光まで一緒に削れて、ただの穴が空いてしまう。そこで、家紋だけを別のシートの上で先に彫り、仕上がった一枚をカードに重ねることにしました。型紙を切り抜いてから台紙に乗せるのと同じ要領です。すると彫った部分からだけ背景の光が透けて、本物の陰のように見える。地味ですが、これで一気に“それっぽく”なりました。
「なるほど」と思える根拠にするために
このツールの肝は、「お名前の『氵(さんずい)』が水の気を宿しています」と、本人の漢字を名指しで返すところです。これをほぼどんな名前でも出せるように、漢字と五行をつなぐ辞書を1,210字まで広げました。
ただ厚くするだけだと、かえって事故ります。たとえば「紅」を見て『工』を理由にしてしまうと、「お名前の『工』が火の気を…」という意味不明な文が出てしまう。そこで、五行に結びつけてよい部首をあらかじめ決めておきました(水なら『氵・水・氷・雨』、火なら『火・灬・日・光』…という具合)。名前の漢字がこのリストの部首を持つときだけ「○の気」と判定し、外れるものは根拠にしない。機械的に“こじつけ”を弾く仕組みです。
もう一つ、1,000字を超える辞書をコード本体に流し込む前に、公開前に「文法として壊れていないか」を機械でチェックする安全弁も噛ませました。辞書を一字書き間違えただけで全部が止まる、という事故を防ぐためです。一方で「愛→心→火(心は五行で火にあたる)」のような、昔から筋の通った対応はちゃんと残しています。弾くものは弾き、残すものは残す。そのさじ加減に、いちばん時間を使いました。
作ってみて思ったこと
いちばんの学びは、「本物を拾ってくるより、本物“級”を自分で持っておくほうが、商用では扱いやすい」でした。権利のことも、見た目の統一も、色の調整も、ぜんぶ自分の手の内に置ける。今回つくった描き方(陰抜き+別シートで彫ってから合成)は、次に何かを作るときにもそのまま使えそうです。
派手な新技術は使っていません。やったのは、決まった種から組み合わせを掛け算で広げて、土台だけは人がちゃんと用意して、根拠は機械でこじつけを弾く——その積み重ねだけです。でも、その積み重ねが「つい、もう一回」を生むかどうかを分けるのだと思います。
おまけ:名前が家紋になるまでを、図にしてみた
仕組みの話は本文で書いたとおりですが、「名前 → 五行 → 家紋の形 → 重ね焼き」という一本道を、上から下へ一枚にまとめてみました。種(名前から作る数値)がすべての分かれ道を決めているので、同じ名前なら何度押しても寸分たがわず同じ家紋が出ます。AIも外部の通信も使っていません。
派手な仕掛けはありません。名前から作った種に「どれを選ぶか」だけを任せ、形の土台と彫り方はこちらで用意する。地味な積み重ねですが、これで「もう一回」を押したくなる手応えが出たと思っています。
もう一度、どうぞ
あなたの名前は、どんな家紋になるでしょう。
私たちは、こういう小さな仕掛けを面白がって最後まで作る会社です。集客やブランディングで「こういうのを作れない?」というご相談があれば、初回無料の相談でどうぞ。無理な売り込みはしません。
言語・構成:HTML+バニラJavaScript(単一ファイル/フレームワーク不使用)
描画:HTML5 Canvas(家紋と結果カードを動的生成)
個人化:名前のハッシュ → mulberry32 によるシード乱数(同じ名前は必ず同じ結果)
データ:部首→五行の対応辞書 約1,210字(静的データ・外部DB不使用)
フォント:Google Fonts(Shippori Mincho B1 ほか)
構成方針:フロント完結(外部API・サーバー送信なし)=ランニングコストほぼゼロ

