見出し画像

ChatGPTとOpenType FeatureでCultural Appropriationする話

芸術的な定義としてAppropriationと呼ばれているある種、サンプリング行為というものは、マルセル・デュシャンが便器に署名して悦に入っていた頃の時代ならばともかく、21世紀にもなるともうかなりこのあたりの解釈はかなり複雑化して、今ではいろいろと面倒くさいからクリエイターにやらせるなら全部AIに描かせたほうが遥かにマシで問題も起こりにくいのではないだろうか……などという話すらある。まぁいくらAIに普通の常識が通用しないからと言って、じゃあ連中はどこからどういうふうにアプロプリエーションしてきているのか、ヒトの脳では理解不能な膨大な情報を扱うそのアルゴリズムは正当なのかという疑念を言い出すとここもまた、そもそももうヒトには理解出来ないのだからヒトの法で縛れなくても……いやまぁ、そんな話はともかく、そういうわけで、話し始めるとキリはないのだけれど、ただまぁ少なくとも古典的なAppropriationにおける様々な議論のほとんどはビッグなデータに吹き飛ばされて今では時代遅れになってしまったのではないかという印象はある。まぁ、また、いつもの如く初っ端からワケのわからないことを言い出していると思っているかも知れないけれど、今回はそのワケのわからない話に関連するようなお題も含めてそんな感じ。タイトル画像で予測が付くと思うけどChatGPTでフォントを作るおはなし……なんだけど、まぁたいしたことをしているわけでは無い。世の中にはまぁこのあたりのことについてはもういろいろな事象が盛りだくさんで技術革新は日進月歩。今やMad Scientist P……いや、まぁその話はいいか。

東洋陶器寄盗用

ところで、冒頭で話しをしたそのAppropriationだが、この言葉、日本語に適切に意味翻訳可能な単語がなかったためか、業界用語でもそのままアプロプリエーションと呼ばれている……ことが多いような気がしてもいるのだけれど、一応これには日本語で「盗用芸術」という訳語がある。まぁそういうこともあることはあるのだが、ただ「盗用」という語義がちょっとキツめにマイナスなのと、音が「東洋芸術」と被ってしまうので、日本ではアプロプリエーション含め昭和の時代にはあまり一般に膾炙するような独立した芸術概念としては成立しづらかったような感じ……だったので、そのことが尾を引いてしまっているのか今でも借用、引用、流用、改作、剽窃、コラージュ、複写、複製、パクリ、オマージュ、サンプリング云々と……まぁこのあたりのことを語らせると専門家を自称する方の話でも小学生レベルの議論にしかならなかったりするということがあったりはする。といってもこれも、あくまでも当社比ではあるのだけれど……で、まぁ、その厄介な概念のアプロプリエーションの頭にカルチャーの文字を載せるとこの単語は Cultural Appropriation となって、これも最近になって言われるようになった思い切りマイナスの概念、意味として、普通の人に伝わってしまう熟語としての「文化盗用」という日本語訳が充当されてしまっている。

Cultural Appropriationも意味的には「或るカルチャーに依拠する事象事物をその文化に属さない人が使用すること……」程度のはなしなので、善悪正邪是非曲直もないのだけれど、まぁ、日本語訳がそんな感じでネガティブなイメージに伝わるのと、個人集団企業の不用意な文化衝突Cultural conflictがCultural Appropriationの名の下にニュースやSNSで糾弾され続けるおかげで、この文化盗用行為自体がスッカリあたかも極悪非道な行いのように喧伝されてしまっている。まぁ、このあたり自分の周囲しか見えていなくて社会的少数者を理解するつもりもないくせに社会的少数者に配慮しろなどと文化盗用を声高く叫ぶ連中には差別感情の裏返しみたいなところが有るのだろう……と個人的には感じているので、こんなものはアホ議論だろうとは思ってはいるのだけれど、反対から見ればこういうことを言い出すということは逆説的に表に出しにくい構造的差別や社会的感情をそのコミュニティが病理的に抱え込んでしまっているのではないかと……数ミリ程度は憂慮したりはするけど……なので精神科の治療をお勧めしたい……でも、まぁ、あまりこういうことも言い過ぎるとアレで、向こうの国でも哲学教授のJames O. Youngがそういうことはいかがなモノかとちょっと謂ったとたんにあちこちからビュンビュン石が飛んできてしまっているというありさまらしいので……実際のところはこういうことを発言するというのもいろいろとセンシティブではある。

まぁ、ともかくそういうことで、デザイナーは……というかデザイナーに限らず、勿論自分も含めたいていのクリエイターは自分の母国語や周囲数キロ程度の常識を軸にしてしか仕事をしていないので、世界が今よりも狭い範囲で出来上がっていた時代は、それでもまぁさほどそれほどたいして問題になることは無かったおはなしではあるのだけれど、現代のように地球の隅々までネットワークが張り巡らされた時代においては、そこのところでいろいろな衝突や齟齬が発生し、理不尽な怒りと理解不能なクレームの源にもなってしまうということもある。フォント界隈の話に限定すれば,最近でも昨年末にDiscordの作った書体がカルシウムの足らないユーザーからゴミカス呼ばわりされるほどの怒りを買ってしまうということにもなったりしたということもあったりしたというわけで、まぁ問題を指摘することはいいことだとは思うのだけれど、言うに事欠いてこの話を欧州起源の白人種に対する差別的物言にまで発展させるというのはいかがなものかとは思うのだよね……ただ、まぁ、この手の話はホントどこで地雷を踏むかわからないので、あまり詳細をいいたくはないのだけれど、詳細が知りたければ「Discordの作った書体」で検索すれば多分直ぐに引っかかると思う。まぁ、そういうことで今回はそのCultural Appropriationにまつわるおはなし……なので、ここまでの内容でご不快になった方々には早々に帰って貰って構わないのですからね……と、いうか、帰って下さい。お願いしますよホント。

ということでだいぶ以前の続きにもなるけど、今回は、表向きでは多言語対応のおはなしの続き。その準備と言うことも含めて、ちょっと寄り道的なところから続きを開始する。


ラテン文字を拡張するのでもなんでも、この手のCultural Appropriationな作業は発音記号含め各言語に固有のローカルな事情の考慮は欠かせないのだけれど、文化盗用しようにも肝心なことがよくわかっていないということはあるので……まぁ結構、雑なことにもなる。単純にどの文化のどの文脈でどの文字が必要になるのかということがわかっていないということもあるのだけれど、Aの常識を使ってデザインするとBではこうはこうはならんだろうと指摘され、それを直すとCのほうから、Bの言うことはおかしいと言われ、Dからは……と、まぁいろいろ堂々巡りになったりすることもあり、おまけに本人もよくわかっていないため堂々反論も出来ず、朗朗明瞭に理解出来る範囲だけでやろうとすると、こんどは各文化固有のエッセンスを摘まみ食いしているなどと沸点の低い人たちを怒らせて「ツノ」だけ作ってしまうというようなことに……いや、まぁ、デスっているわけじゃないんだけどね……まぁ、そういうわけで、なるべくそういうことにならないようにフォントを作成する過程でのそこに纏わる厄介な問題のあぶり出しをしようという主旨だ。最近ChatGPTが言語学習にものすごく役に立つという触れ込みで実用的にもいろいろ活用されるようになっているという事なのでこれを利用してフォントの多言語拡張が楽に出来るようになるのではという単純な思いつき。ただホント、毎度の事ながらいつもの如く先のことはわからないうえ、やってくうちにどうなっていくのかはわからない。また、内容には過誤や誤謬、虚構推理が含まれている可能性もあるのでご了承を。

Kragsyde Mansion Happy Halloween

さて、というわけで、注意書きも済んだのでここからが本題。実を言えば今回は前回作ったLINE Seedを拡張する方向で……とも、一瞬考えたりもしたのだけれど、流石に他人様のクリエイティブにそこまで乗っかるのも図々しいのと、いろいろ出鱈目をするのに躊躇もあるので、どんなにグチャグチャになっても気を使わずに済むという以下の自作のフォントをベースにしていくということにする。

Kragsyde Mansion Happy Halloween

このフォントもある意味余計な事はしているんだけど、肝心なところが終わっていなくて、作りかけでほっぽり出して……というか別の企画にと思って用意していたモノなのだけれど時期的に間に合わなかったので……まぁ、触って貰えばわかるけど万聖節な幽霊屋敷をテーマにそこら中にイースターエッグを突っこんであるという代物だ。そういう意味では今年の復活祭には間に合いそうになってはいるから、まぁいいのか……まぁ、よくもないけど、とりあえず、それで、これをさらに魔改造していくという企画だ。

で、本筋ではないので一応簡単に説明しておくと、アイデアの基になっている書体はビクトリアンスタイルのフォントで、今ではホラー調のスタイルとしてしか認識されなくなってしまっているBoston Type Foundryを代表する有名書体のRubensおよびTeniers……まぁ、一般に言うと鼠の国の幽霊屋敷のロゴで有名な……そのスタイルを基にしている。といっても、いろいろアレがアレなのでまるっきりの模写というわけではないのだけれど、まぁそこはともかくそういう事情で、フォント名はその昔マンチェスター・バイ・ザ・シーに存在していたというアメリカンビクトリアンな建築スタイルの代表的な幽霊屋敷……であったかどうかは定かでは無いけど、ビクトリアンでボストンでホーンテッドなマンション繋がりという連想からのこの名前。作って言うのも何だけど、作ってから大分たつので忘れてしまっていることも色々あって、どこで床板を踏み抜くのかわからなくなってしまっていたためヤバそうなトラップの粗方は一応はずしておいたはずだから普通に使用する分には問題は無い……はず。多分。まぁいいいや、本文の最後にぶら下げておくのでいつもの如く常識的な範囲なら使用制限はないけれど自己責任で……よろしくお願いしますよ。いや、ホント。さて、とはいっても今回はリブートシリーズ第一回ということでここにマルチリンガルなトラップを追加している……ので床板を釘で打ち付けたところに落とし穴や回転扉を用意するという非道なことをしているわけなのだが、まぁこれについてもあとで言い訳を考えておこう。

さて、いつもの如く今回もこの極悪な仕掛けのためにOpenType Featureをあれこれするというはなしで、知ってる人には今更だけどOpenType Featureというのはフォントに含まれるグリフの形状や配置に関していろいろするための仕組み。大まかにはLookup と呼ばれる機能で特定のグリフを置換、削除、または追加するためのルールを定義するようになっている。言語によっては特定の文字が結合したり、特定の位置で異なる形状を持つ必要がある場合があったりと、そういうことが必要であったりもするのでフォントの開発者によって、これらがカスタマイズできるよう、こういう仕組みが用意されているというようなわけだ。これで言語やスクリプト、アプリケーションのニーズに合わせてフォントに高度なテキストレイアウトの仕組みが追加できるようになっているというわけでもあるのだが、今回はここの部分を悪用していろいろしてみようという試みだ。アルファベットの多言語対応というと、ダイアクリティカルマークが思い浮かぶと思うけど、そこへ手を付ける前のとっかかりとして言語ごとの設定もしっかりしておく必要があるので、まずはそこから始めようというおはなしでもある。

で、今回のミッションはOpenType Featureで言語に応じて、ルールを切り替えるという仕組みをフォントに組み込もうという作戦だ。下の図はAdobeのアプリケーションのフォントパネルだけれど、ここで言語ってなっているところのポップアップメニューでどれかを選択するとそれに対応した反応を自動的にフォントが返すという流れになる。作戦名はCultural Appropriationになるので、まぁ最終的にはあまりよくわかっていないことに手を付けているというような感じにはなっている。

ただ、まぁ、これもちゃんと役に立てようとする場合、上手く扱えれば、各国で異なる正書法に対して、言語切り替えをちゃんと行うとそれに対応してフォントのグリフや字形がキチンと変化する……ようになるというふうに非常に便利には使える機能ではある。

Unicodeではaccent aiguもaccento acutoもacento tildeもčárkaもApexもオクシアも陽平も……あとまだ色々あると思うけどまぁいいや、それらは全てアキュートに包摂されてしまっていて、大抵のフォントはここに区別を付けたりはしない。まぁ似たようなものだからどうでもいいだろうと思うかも知れないし、だいたいはまぁ、そういう感じだったりもするのだけれど、そういうふうに思っていると案外どうでもよくないということになったりするということもある。これをどこまで気を使うかはバランスもあるので、正しい正しくないの話をしたいわけではないんだけどね。

例えば複数の言語で使われる音の高さや強調を示す発音記号のアキュートは、別に決まった角度があるというわけでは無いのだが、チェコ語のアキュート記号であるチャールカはチェコでは強調ではなくマクロンのように伸ばす音の記号として使われるのでヘボン式やグレコローマンスタイルの発音記号のマクロンと同じように文字の上で横に寝っころがっていても、チャールカだということがわかればいいからあまり文句も出ないのだが、同じ記号がポーランドに入ると……このアキュート記号はポーランド語ではダークエルの斜線も込みでクレスカと呼ばれるアクセント記号ということになるのだが、これがキチンと垂直に立ち上がってこないとポーランド人には気分が悪いと怒られてしまう。また、ドイツ語で使われるエスツェットはドイツ語固有のリガチャーでエスゼット……といっても基本的にはssの合字を意味するのだが、スイス人はこの合字を使わないからエスツェットをsとsとに分離する必要がある……ただ逆にドイツではエスエスとエスツェットを区別することがあるためエスエスの並びなら全部がエスツェットに変換できるというわけではない。さらに、このリガチャーの左側のデザインは古いアルファベットのSの字形のLongSというグリフに由来するのだが、このロングエスは同じ英語圏でもアメリカがイギリスと仲が悪くなっていた時期にこの字形がイギリスっぽいということで嫌われて米国議会で使用禁止が決議され……というような話を以前に聞いた覚えがあるのだけれど、GPTに聞いたらそんな事ぁ無い的なことを言ってきたので、まぁデマの発生源にはなりたくないから議会云々は記憶違いならごめんなさい……ともかくそれ以外にもイギリス嫌いが嵩じて変な意地を張ったためオックスフォードとシカゴとで正書法を全部ひっくり返すようなことするものだから……おなじような文字字形でも細部を気にしだすといろいろなところで好みの違いから国家間の対立までいろいろあったりもするので、注意しないと本当に沸点の低い人たちを怒らせてしまうということにもなるというワケだ。なので沸点を下げる意味でも、こういう部分が文化盗用されているようだということを当事者に気づかせないようにするためにも、こういう機能がお役に立つようにはなっている。

左側の出来損ないのfみたいなところがLongSで右がzの古い字形。Zの字形は筆記体ではこういうふうな形になるけど、馴染みが無いと言うことなのか、SSなのにZの意味がわからないと嫌われる所為なのか書体によってはZのところを長くない方のSにして文字通りSS合字にデザインしているというケースもあるので……どういうふうにデザインするかの幅は&記号並みに広い

これらのことは東洋というか日本で考えるとわかると思うけど、同じ漢字でもいろいろと書影、デザイン、雰囲気、造作が違っていたりすることがあったりするので、日中韓の漢字を出鱈目に混ぜて使うなどということをすると、それがどこかの琴線に触れてしまうらしく突然ぶち切れたりするヒトもいるわけで……うん、まぁだいたいはそんな感じ。で、そういうこともあるので、表向きはこういった違いを吸収しつつ一つのフォントで多言語対応する場合、微妙に細部を調整してスクリプトごとにカスタマイズする必要もあったりするからというわけ。ギリシア文字の一部のグリフなどはラテン文字のフォントセットの中に中途半端に採録されていたりもする事情で、ギリシアネイティブからすればデザインがそれはもう大昔から「ツ」や「ノ」以上に酷いことになっていたりもしていて……というかこれもなかなかにCultural Appropriationしているといえばしているのだけれど、こういうこともギリシア文字のセットからラテン文字のフォントセットの中のギリシア文字のグリフだけを切り離して、ギリシア文字本文とは別の記号と見立ててしまえる機能があれば問題は解決する。ただ、これも大昔に酔っ払いの外人に聞いた話なのであまり当てにならないけれど、その話を当事者のギリシャ人にしてみたらあまり気にしていないどころか考えたことも無いという話だったのは案外意外だった……まぁこのあたりの話はサンプル数が少なくて本当に気にしなくていいのかどうか本当のところは全然わからないんだけど、と言うかそもそも俺も向こうからすれば外人なので本当のところなんて全くよくわかってはいないうえに、逆に知らない外人にいきなり日本語のこと聞かれてもちゃんと答えられるかどうかも怪しいものなのだけどね。

さて、雑談はともかくそういうところで、原稿の先頭からチラチラ映っているので感のいい人は気づいたと思うけど、欧州言語でオーソグラフィーの違いが最もわかりやすいのは引用符……つまりはまぁクォーテーションマークの扱いになる。イギリス英語とアメリカ米語でクォーテーションマークのプライマリーとセカンダリーが逆になっているというのは有名な話なので知ってる人も大勢いると思うけど、フランスでは引用符がギュメになるとか、ドイツ語では位置が上下になるとか、それ以外にも位置が同じでも向きが逆とか、各国各言語でプライマリーとセカンダリーの違いを含めていろいろとバリエーションがあるので、多言語対応第一弾としてはこれをわかる範囲でいろいろと設置してみようという試みだ。キーボード上のシングルストレートクォーテーションマーク、もしくはダブルストレートクォーテーションマークでワードを括って、さっきの図の言語指定のところを指定すると、下の図のようにそれぞれの言語に合わせたプライマリークォーテーションとセカンダリークォーテーションの記号に変わる……はず……というトリックだ。まぁ、クォーテーションについては、というか各国の正書法については俺にはよくわからないことのほうが多いのでこれもGPTにも聞いたんだけど話がさっぱり要領を得ないので今回は俺の感覚のほうを優先して勝手に付けているだけだからとり付け方については間違えていたり勘違いしている可能性は大いにあるのだけれど。ただ、そうは言ってもこれら引用符の使い分けはどこの言語でも大抵はそこまで厳格ではないし組み合わせのパターンが一種類とは限らないので、適当でいい加減でもそれほど問題には……いや、すいません。まぁ、問題があるようならコメント欄へお気軽に。

さて、そういうことでOpenTypeのフォントでの言語対応では、文字と言語の指示が必須だが、通常はこれらはフォント作成プログラムが自動的に書き込むためクリエイターが気にする必要はほとんど無い。実際、フォントのほとんどすべての機能が同じ言語システムセットで登録されていても大抵の場合はそれほど深刻な問題が起こるわけでは無いので、
languagesystem DFLT dflt;
で、間に合ってしまう。単独の言語環境を想定している場合ではその後の指示が多少違っていても、大抵のアプリケーションではそんなことを気にもしないので、概ね使用に支障は無いからまぁ、別に良いと言えばいいのだが、今回のような余計な事をしようとする場合にはこれが大いに問題になる。普段から色々なスクリプトの文字を混ぜ込んだ日本語環境にいると感覚が鈍っているかもしれないけど、大抵の言語は1スクリプト1言語で……そこにラテン文字とアラビア文字を混在させると書字方向が違うので混乱することになるといえばわかりやすくは……え? よくわからない? まぁ、最近はそうでもないかもしれないけど複数の文字言語環境を重ね合わせるというのはほとんどのリアルな言語システムでも想定していた事態ではなかったので、そのためにどうすればいいかということをあまり考えている人が多くなかったため、規格化されたときに少々面倒くさい話が残ってしまっている……ということがあるんだろうなぁ……というようなことなんだけど。

ただ、このあたりのことはFontLabやGlyphsのようなフォントエディターを使う場合においてはある程度考慮もされているので、そういうことをしようと思った場合ちょっとしたトリックが使用できるようになっていたりはする。まぁこのあたりの解説は要望があればアレだけど、ただ方法自体は単純で2021年以前の知識だけしかなくてもあまり問題はないからAIに聞いた方が早い……はず……多分。で、今回のケースでいえば、言語ごとに切り替えを行いたいというグリフがある場合、グリフの名前のケツにloclに続けて言語システムタグ……ISO639の3文字コードを大文字にして振っておけば、あとはFontLabやGlyphsなどのソフトが自動でやってくれる……というようなことにはなっている。

タグの3文字に若干ISOの規格とのズレはあるんだけど、Glyphsならば補完が効く……効いたよね?……まぁ、細かいところはMicrosoft Typography の Web サイトでちゃんと確認出来るのでそちらをチェックすればOKだ。もちろん、プログラムを手作業するつもりならオルタネイトしたグリフを個別に手作業で紐付けする……という方法でも一向に構わないのだけれど、図で示したような数十もの多言語に対応する場合、テーブルひっくり返して全てを手作業でやろうとするとOpenTypeの「OpenTypeではスクリプトと言語システムごとに機能が個別に実装される」という恐るべき仕様によって……ようは1つの言語システムが追加される度ごとにこれらを実装するために全部の機能をコピーして同じモノを言語システム毎にぶら下げる必要があって、どこかをチョロッと修正する場合でも、やはり全てをもういちどコピーして……まぁ、察しは付くと思うけど……やってやれないこともないけど、オススメはしない。OpenType fontはマルチリンガルな数十もの多言語スクリプトに一つの書体ファイルだけで対応することが可能なようには……できなくはないけど基本的にはそういう仕組みをあまり想定してはいないっぽい感じ……ただ、まぁ、日本語の文字セットのために例外的に変態的な仕組みが作られているということはあるので、実際のところやってやれないこともないこともないということもあることはあるということもなくはなくもないのではあるということではあるのだけれど……いや、まぁこの歯切れの悪さで察して下さい。

さて、で、まぁ、そういう細かい事はともかく、さっき「それぞれの言語に合わせたプライマリークォーテーションとセカンダリークォーテーションの記号に変わる」と言い切れず「はず」と付けたのは、まぁそういうことで色々問題があってこれがあまりうまくいっていないからなのだが……どこに問題があるかすらどうにもよくわかっていないために予定していた機能もうまく働かないのだけれど、それもどこがどう悪いのかということすらよくわからないので見当も付かないということになっている。

で、さっきも途中で言いかけてやめたけど、ランゲージやスクリプトを決定するタグが……MicrosoftのLanguage System Tagsの解説を見るとISO 15924やISO639に完璧に対応しているというわけではないのでWebのツールやアプリでの指示……まぁ、ここはISOのタグが効いているハズなんだけど、それがフォントに伝わる時点でこのあたりの命令がどう紐付くことになっているのかがどうにもよくわからない。よくわからないので、エイヤーでスクリプトを書いてはみたのだけれどAdobeのアプリでの言語選択では、なんか残念なことに思ったように機能が働かない。まぁラテン語の中だけでも問題はあって、例えば英語と米語の副言語の違いはRCF4646の勧告ではen-gbとen-usとして区別できるということにはなっているのだがこの名前のタグがフォントのLanguage System Tagsの中に無いのでOpenTypeでは使えない……代わりにMicrosoftの解説中にもあるようにPhonetictranscription—Americanist ConventionsがAPPHとなっているでそれで米語を代用するのかと……まぁ、そんなような気もしていたというわけなんだけど、この指定ではAdobeのアプリのほうが反応しない……同様に南米とヨーロッパで正書法に大きく違いのあるスペイン語やポルトガル語だけれどもそこを区別する方法がわからない……まぁ、書いてないということでもあるのでOpenTypeフォントでは区別する方法が無いのだろうとは思うのだけれど……それとも何処かを読み飛ばしてしまっているのかなぁ……Adobeのアプリのドロップメニューの言語設定がMicrosoftのLanguage System Tagsの解説と一対一に対応してないので仕組みが違うのだろうとは思うのだけどどういう仕組みの……というか、そもそもISOでptもしくはporであったポルトガル語の言語コードはOpenTypeではPTGにしろとのお達しだけど、これがどういう理屈でそうなるのかがよくわからない……というわけで、さて、よくわからないことをよくわからないままに作業を始めると本当によくわからないことになるので、今回はそういうよくわからないことにならないようによくわからないときのための手助けとしてご覧の通り機械の知能を活用しようなどというわけのわからないことを始めたものだからますますよくわからないことになってしまっている。




■ヨーロッパ言語に対応した文字セットをつくりたいんだよね

ヨーロッパ言語に対応する文字セットは通常、ラテン アルファベット26 文字と追加の音とアクセントを表すさまざまな分音記号が含まれます。この文字セットは、英語、フランス語、ドイツ語、スペイン語、イタリア語など、ヨーロッパの多くの言語で使用されています。ロシア語やギリシャ語などの一部の言語では、異なる文字セットが使用されています。

chatGPT

(まぁ、質問がザックリとしすぎたか、まぁそういうことなんだけど……)
■ちなみにだけど分音記号にはどのような記号が含まれますか?

分音記号は、音声言語の表現を表すためにテキストに追加される記号です。これらの記号は、母音や子音の発音の強さ、長さ、ファイアウォール、発音方法を示すために使用されます。分音記号の種類と使用法は、言語や言語の方言によって異なります。

chatGPT

(ファイアウォールが何のことを言ってるのかよくわからないけど、まぁ会話にはなっているようなので気にしないで進めよう)
■実は今OpenType featureのlcalタグを使って言語を切り替えてグリフスタイルを調整するというフォントを作っているので「feature lcal」の言語タグについて少し説明して欲しいのだけど?

もちろん!「feature lcal」コード ブロックの言語タグは、OpenType 機能を適用する言語またはスクリプト システムを指定します。言語タグは、コード ブロックの先頭にある「languagesystem」ステートメントで使用されます。ステートメントの最初の引数はスクリプトシステムを指定し、2 番目の引数は言語システムを指定します。たとえば、「languagesystem DFLT dflt;」というステートメントは、機能をデフォルトのスクリプトと言語システムに適用することを指定します。「languagesystem」ステートメントでさまざまな言語およびスクリプト システムを指定するために使用できる、さまざまな言語およびスクリプトタグがあります。たとえば、「latn」はラテン文字のタグで、「cyrl」はキリル文字のタグです。Microsoft Typography の Web サイトで、言語とスクリプトのタグの完全な一覧を確認できます。言語タグを使用して、特定の言語または地域に対応した OpenType 機能を適用できます。OpenType 機能で言語情報を指定する方法は、言語タグだけではないことに注意してください。ローカルフォームの「locl」、文字バリアントの「cv##」、スタイルセットの「ss##」など、より具体的な言語およびタイポグラフィ機能に使用できる言語関連のタグとステートメントが他にもあります。

chatGPT

(「もちろん!」とか随分会話が前のめりだなぁ……やる気の伝わってくるいい返答だ。まぁ、概ね間違ったことは言ってないようだから少しは期待がもてるかもしれない……chatGPTが知ってることも確認できたから、もう少し具体的に聞いてみるか……)
■OpenTypeFeature の lcal タグを使ってイギリス英語とアメリカ英語のグリフを切り替えようと思っているんだけど、スクリプトの作成はどうしたらいいの?

OpenTypeFeature の lcal タグを使用してイギリス英語とアメリカ英語を切り替えるスクリプトを作成するには、次の手順を実行する必要があります。①新しい OpenType 機能を作成する: 英国英語とアメリカ英語を切り替えるために必要なコードを含む新しい OpenType 機能を作成することから始めます。機能に「Lang」などの名前を付けることができます。②言語システムを定義する: スクリプトで使用する言語システムを定義します。「languagesystem」キーワードを使用して言語システムを指定できます。たとえば、英語の言語システムを指定するには、次のコードを使用します。

chatGPT

(お、いいね具体的になってきた……)

languagesystem DFLT dflt; 
languagesystem latn dflt; 
languagesystem latn ENG; 
languagesystem latn GBR;

③置換規則の定義: 次に、さまざまな言語システムの置換規則を定義する必要があります。この場合、イギリス英語とアメリカ英語を切り替える必要があるため、2 つの言語システムの置換規則を定義する必要があります。「sub」キーワードを使用してこれを行うことができます。たとえば、イギリス英語の言語システムで「color」という単語を「color」に置き換えるには、次のコードを……

chatGPT

(いや? ちょっと待てよ……このあたりから何か怪しくなってきたぞ……Microsoft Typography の Web サイトではアメリカ英語の音声表記はAPPHってなっているんだけど……あとGBRって何だよ? どこから出てきた?)
■「languagesystem latn」のアメリカ英語の指定はAPPHだったと思うのだけど?

ご指摘ありがとうございます。 確かに、私が以前の回答で提供した「languagesystem」の行は、アメリカ英語の音声転写システムとして「ENG」ではなく「APPH」を指定する必要があります。

chatGPT

(適当に会話しているときの営業マンの会話の雰囲気になってきた……そんなに簡単に認めちゃって良いのかよ? 実はそれでは問題があるんだけど……まぁ、そこは説明が面倒だから後でいいや……ともかく……)
■そんな感じで、ヨーロッパのポルトガル語とブラジルのポルトガル語を切り替える方法を教えて?

以下はヨーロッパのポルトガル語とブラジルのポルトガル語のOpenType機能の指定例です。
ヨーロッパ➡languagesystem latn PRT;
ブラジル➡languagesystem latn BRA;

chatGPT

(BRA? そんなタグあったか?……いや、見つからないな……)
■BRAというLanguage System TagはMicrosoftのLanguage System Tagsの説明に無いのだけど?(ついでに言えばポルトガル語のタグはPTGなんだが……まぁそこはいいや)

申し訳ありませんが、私が以前提供した回答に誤りがありました。実際には、Microsoftが提供するLanguage System Tagsには「BRA」というタグはありません。ポルトガル語を読み替える場合には、別の方法を使用する必要があります。代わりに、ブラジルのポルトガル語とヨーロッパのポルトガル語をコード化する場合には、言語タグに「POR」という共通の言語タグを使用し、スクリプトタグに「latn」を使用して、両方の言語システムを指定しますその後、lcal機能でサブスティチューションルールを指定して、各言語の特定のグリフを書き換えることができます。具体的なサブスティチューションルールについては、各言語システムでのグリフの違いに応じて定義する必要がありますあります。

chatGPT

(こんどはポルトガル語を指定するタグをPORとか言って……ついさっき「Microsoftが提供するLanguage System Tagsには「BRA」というタグはありません」とかって言ってたからMicrosoftのページをちゃんと確認してきたかと思うじゃん? どうも適当に返事しておけばいいや、的なクレーム対応のコールセンターの兄ちゃん的な対応になってきたな……というか数秒前にポルトガルのことを「PRT」だと言ったことすら忘れているなコイツ、なんだかだんだんイラッとしてきた)
■ポルトガル語の言語タグはPTGだよね? まぁ、それはいいんだけど、それでIllustratorやInDesignなどのアプリで言語の指定が切り替えられたときに指定したサブスティチューションのLookupを呼び出すにはどういうふうにOpentype Featureを記述すればいいの?

はい、おっしゃる通りです。言語タグは「PTG」が正しいタグです。次にAdobe IllustratorやInDesignなどのアプリケーションで言語の指定が切り替えられたときに、指定されたサブスティチューションのLookupを呼び出すには、言語システムタグに基づいたOpenType Featureを使用する必要があります。言語タグに基づいたOpenType Featureの形式は次のようになります。例えば日本語の場合……

chatGPT

(まぁソレをするならssxxを使えという趣旨はわかったけど、それだとAdobeのアプリで含めいろいろと……っていうか、いや、それよりいまポルトガル語の話をしてたやん! 何故日本語の事例を出す!?)
■ヨーロッパのポルトガル語とブラジルのポルトガル語の切り替えのケースで説明して!

ヨーロッパのポルトガル語とブラジルのポルトガル語の切り替えのケースで、言語システムタグに基づくOpenType Featureを使用する場合、次のような形式になります。feature pt_br_ptg { script latn; language PTB;……

chatGPT

(いや、だからさっき言語タグは「PTG」が正しいタグだったって反省したばかりだよね! そのPTBってタグはどこから出てくるんだよ!)

という感じで、もうさっぱりラチが開かない。というかこいつ同じ事を聞いているのに毎回違う答えを返してくるのはどういうわけなんだ? リアルタイムのツッコミ力を要求されているのか? まぁ、たしかに、このあたりの話はよくわからないことがいろいろあって、質問の仕方が駄目なところもあるというのは重々承知しているんだけど……なんというべきか、よくわからないヒトたちが集まってよくわからないもののことをよくわからないまま議論している感じになってしまっている。即興でする漫才のボケか飲み屋のカウンターでする話ならそれでも一向に構わないのだが……多分chatGPTが「わからないです」とか「不可能です」とかってなかなか言わないところに問題があるんじゃないかというような気もしてきた。この絶対に謝らないふうなソリューションはコールセンターで訓練しすぎたせいじゃないのか?……まぁ、最近GPTも4になってやっと出鱈目を言わなくなり、わからないことにはわからないと言える良い子に育っているという評判も聞くので、もう一度チャレンジしてみれば、こんどはなんとかはなるのかもしれないかとは思うのだけど……。


というわけで、今回GPT3と相談しながら作ったフォントは以下の通り。まぁ、使用は自己責任ということで……次回はもう少し真面目にちょっとづつ建て付けを直しつつ、このフォントにダイアクリティカルマークを追加する……ということをしていく予定。多分。



chatGPTの反応に関しては内容が大分前のこと……と言っても殆ど数ヵ月も経っていないのだけど……なので現在とは状況がかなり異なる場合があります。まぁネタとして寝かせておける代物では無いのでアレだけど、さて、次があればもう少しまともな知能の働かせ方を考え……

NotGPT

この記事が気に入ったらサポートをしてみませんか?