星屑テレパスの宇宙語フォントを作った話

この記事は 東京大学きらら同好会 Advent Calendar 2021 の19日目です。

はじめに

だけど きっと
ここじゃない どこかに…
私の言葉が
思いが届く
きらめく世界が あるはずなんだ…

第1話「彗星エンカウント」


人に思いを伝えるための手段である、言葉。

星屑テレパス』の主人公・小ノ星海果は、この言葉がうまく出てこないことから、人と関わることを諦めてしまいます。

そんなとき、「おでこ」同士をくっつけることで相手の気持ちが理解できる「おでこぱしー」の使い手、宇宙人・明内ユウが現れます。


―― さて、言葉を伝達する手段は、音声に限りません。テレパシー……は使えたことがないのでわかりませんが、そう ―― 文字 もそのひとつです。

本作に登場する「宇宙語」は人工言語である エスペラント がベースになっていると思われますが、文字体系については独自のものを持っています。

この記事では、宇宙語の文字を自分でも再現したいという思いから、宇宙語フォントを作っていきます。

フォントを作る

FontForge の準備

フォントの作成には、FontForge というフリーのソフトウェアを使用します。

fontforge.org

インストールして新規フォントを開くと、このような画面が現れます。

f:id:n4o847:20211207180850p:plain

これらのセルに文字(グリフ といいます)を描いていくわけです。

宇宙語を記述するのに必要な文字はなんでしょうか? ベースとなっているエスペラントでは、通常のラテン文字から Q, W, X, Y を除いた22文字

A B C D E F G H I J K L M N O P R S T U V Z

に加え、サーカムフレックス、ブレーヴェのついた6文字

Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ

の全28文字が使われます。(参考: エスペラントアルファベット - Wikipedia

宇宙語も基本的には同じです。*1

これらは ISO 8859-1 (Latin-1) の範囲に収まらないので、「エンコーディング」の欄を ISO 10646-1 (Unicode, 基本多言語面) に変更しておきます。

グリフを作る

A のグリフを作っていきます。とりあえず漫画のコマから文字を引っ張ってきます。編集画面はこんな感じです。

f:id:n4o847:20211209115351p:plain

これをマウスでなぞりつつ、ベジェ曲線を微修正していきます。ペンタブも所持していたのですが、マウスでざっと線を作ってそれを修正したほうが楽であることがわかりました。

これでは太さの無い線のままなので、「輪郭を太らせる」で太さを持たせます。また、「重複処理」も施して、重なった部分は結合するようにします。

一文字完成した様子がこちらです。

f:id:n4o847:20211209122834p:plain

これを二十何回やると……

f:id:n4o847:20211214174151p:plain

できました!!

F, H, Z あたりがあまりいいサンプルがなく、本来の形がよくわからないのが難点でした。とくに H は23話で初めて出てきますが、文字が潰れていてわかりませんでした。いずれ判明したら修正していきましょう。

リガチャを設定する

リガチャ合字)は、複数の文字を合成してひとつの文字にしたものです。フォントの機能によって、連続した文字を自動的にリガチャに変換することができます。例えば f と i がくっついたものが有名かと思います。

f:id:n4o847:20211208013317p:plain

さて、エスペラントで使う Ĉ, Ĝ, Ĥ, Ĵ, Ŝ, Ŭ といった文字は、専用のソフトウェアキーボードを使えば入力できますが、エスペラントを常用するのでもなければ面倒です。

これに対してエスペラントでは、代用表記 というものが数種類定められています。

今回は、後述する『ことのはアムリラート』のフォントを参考に ^-方式 を採用し、Ĉ, Ĝ, Ĥ, Ĵ, Ŝ, Ŭ といった文字をリガチャによって打てるようにします。

リガチャは OpenType の Lookup という機能で定義できます。

f:id:n4o847:20211215101207p:plain

C^ と打つと Ĉ が表示されるようになりました。

f:id:n4o847:20211215111717p:plain

Steleto

これで、原作を再現した手書き風の宇宙語フォントが完成しました。

f:id:n4o847:20211215111939p:plain

名前の Steleto (ステレート) は「小さな星」を意味します。

いろいろ

Lumo

明るくて丸っこいポップ体のフォントです。

f:id:n4o847:20211219132939p:plain

名前の Lumo (ルーモ) は「明かり」を意味します。

Trezoro

優雅で上品なセリフ体のフォントです。

f:id:n4o847:20211219133140p:plain

名前の Trezoro (トレゾーロ) は「宝物」を意味します。

Fulmo

六角形を基調としたメカニックなフォントです。

f:id:n4o847:20211219133233p:plain

名前の Fulmo (フルモ) は「雷光」を意味します。

配布する

置き場所

フォントを配布するにあたって、まずデータの置き場所が必要になります。これは GitHub を使いました。

github.com

ライセンス

創作物を他の人が使えるようにするためにはライセンスの明示が必要になります。

フォントでは SIL Open Font License 1.1 というライセンスが推奨されているので、これを使います。

SIL Open Font License はかなり自由なライセンスで、私的利用・商用利用に限らず勝手に使うことができます。ただし再配布する場合は制約がつきます。

ウェブページで使えるようにする

フォントのファイル形式には TrueType、OpenType など様々なものがありますが、ウェブページに使われるのに適しているのが、ブラウザ対応が多く、データ圧縮可能な WOFF (Web Open Font Format) です。

これを CSS によって読み込むことで、ウェブページでそのフォントを使うことができるようになります。

配信には GitHub Pages を使ってもいいのですが、バージョン管理の観点から jsDelivr という CDN (ウェブコンテンツを配信するためのサービス) を使います。

これにより、以下のタグ

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/n4o847/uchugo-fonts@1.0.0/dist/style.css">

を HTML に挿入するか、CSS 内で

@import url("https://cdn.jsdelivr.net/gh/n4o847/uchugo-fonts@1.0.0/dist/style.css");

のようにインポートすることで、ウェブページでそのフォントを使うことができるようになります。

デモ

試しに下のテキストエリアで宇宙語を打てるようにしてみました。

あと、以前書いた宇宙語の記事にもこのフォントを使ってみました。

n4o847.hatenablog.com

2巻の解読もそのうち書きます。

参考文献

[星屑テレパス フォント]で検索するとこちらのページが出てきます。作中の宇宙語の解説をしつつ、自分でフォントを作られていて、要するに先行研究です。ぐわ~~新規性が無くなってしまった

『ことのはアムリラート』は、言葉の通じない異世界に迷い込んだ少女が、現地の少女に助けられ、異世界語を学びながらコミュニケーションをとっていくという内容のノベルゲームです。この作品に登場する異世界語「ユリアーモ」もエスペラントをベースとした言語で独自の文字体系を持ちます。フォントが配布されているので、設定などかなり参考になりました。ところで『ことのはアムリラート』(amrilato; 恋愛関係)にどことなく 星屑テレパス構文 を感じます。

おわりに

テレパシーも 言葉も
大事な部分は 一緒だよ
自分の想いを まっすぐ
伝えたい相手に 届けるの

第7話「憧憬ロンリーガール」

*1:修正される前の雑誌版で Y も出てきていて、第1巻の宇宙語解読の記事で取り上げています。