2010-10-01

Windows 7 (64bit) でシステムフォントの全入れ替え!

突然ですが私やみ、フォントのきれいなシステムが大好きです。

字形のきれいなフォントは正義
subpixel 系の高品位なアンチエイリアスが搭載された UI は正義
ソフトバンクの社長は孫正義

そんなかんじなのです。
そんなかんじなのです!

現状 Windows の UI はかなり残念ですね!!

標準フォントはいまだにMSゴシックと Meiryo で嫌んなっちゃうし、
ClearType はいつまでたってもエッジが汚いまま進歩しないし。
Linux を見習え! Mac を見習え! 携帯を見習え!
そんなわけで、XP でフォントをきれいにするって話を
まえに萌えごみでもちょろっと書きました。

これね。gdi++を使ってみようってやつ。

そんなのも踏まえつつ、今回は
Windows 7 (x86-64) でシステムフォントの全置き換えに挑戦してみます!

ポイント!

  • かんたん。すぐできる。
  • セーフモード作業不要。再起動一発で終了。
  • フォントファイルの実体は置き換えない。
  • システムリソース(explorer.exe とかな)も書き換えない。
  • ↑ゆえに低リスクで試せる。失敗してもすぐリカバレる。
  • そのくせシステムダイアログの字までぜんぶ置き換わる。




システムフォントを置き換えるってときの戦略は

たぶん 3つぐらいあります。
ちょっと軽く説明を試みてみる。
(この節は長いので特別興味なけりゃ読み飛ばし推奨)



ひとつ目。 「フォントファイルの実体を置き換えちゃう方式」

MSゴシックが使われてる表示を新ゴに置き換えたい。
→ MSゴシックのフォントファイルを新ゴで上書きしちゃえ!

  • 中身は新ゴで名前がMSゴシックってフォントを作る。
  • システムの保護機能を停止して dllcache を削除。
  • セーフモードで起動して explorer.exe を強制終了。
  • コマンドプロンプトから改竄フォントで置き換え。
  • レジストリにあるMSゴシックの登録を書き換える。
  • そのまま shutdown /r

以上うろ覚え。

ファイル自体置き換えるんで効果は抜群! なんだが、

手順1 からしてかなりめんどい。
ふつう置き換えたいフォントってのが 10個以上あるもんで、
その数だけの改竄フォントを用意せねばならんせん。


「MSゴシの皮をかぶった新ゴ」
「MSPゴシの皮をかぶった新ゴ」
「メイリオの皮をかぶった新ゴ」
……

まずフォント名とかを編集できるソフトの少なきこと!
※間違いなく 海外OSS頼みになります


あとMSゴシ (ttc) から新ゴ (otf) みたく
クロスフォーマットな置き換えにも苦労する。

殺したと思ってたシステム保護がしぶとく生きてて、
セーフモードでも置き換え失敗したりもする。
NTFS のセキュリティとか UAC も叩く必要あったっけか。

ゲーム とくにネトゲで多いMSゴシ依存な画面、
大半は置き換え後もちゃんと読めるんだけど、
一部文字が表示されないか、読めないか、読めても化ける。
たとえば RPGツクール2000。やみはバイナリいじって対処してました。

それとここ読む感じ [mai-u.x0.com]
Win7 ではこのやり方ってうまくいってないみたい。



改造フォント
MS UI Gothic の皮をかぶった Lira. もう何もかもが違う。
(Lira フォントについては後述)



ふたつ目。 「システムリソース書き換えちゃう方式」

MSゴシックが使われてる表示を新ゴに置き換えたい。
→ システムファイルの「MSゴシック」って書いてある場所をぜんぶ「新ゴ」に変えちゃえ!


まともにシステムファイル書き換えやってたら
数千の DLL を相手にすることになるし圧縮リソースもあって技術的に困難なわけだけど、
(その困難を実現しちゃう FlyakiteOSX なんてソフトもあったけど)
Windows が使うテーマファイルを書き換えちゃうってのはわりとラクです。


  • テーマファイル(XP なら luna.msstyles)をコピー。
  • コピーを resource hacker とかで開いて string 書き換える。
  • システムの保護切って dllcache 消してセーフモード作業。
  • luna.msstyles を置き換えて UXTheme Patcher とか当てる。
  • 再起動してテーマ適用。


比較的簡単だけど編集にバイナリエディタを持ち出す必要があったりする。
初心者的にはちょっと敷居が高い。というか、ふつうに面倒。
あとテーマ側のフォントを無視してくる系なシステムダイアログには効かないって弱点あり。



resource hacker で開いてみたサンプル
aero.msstyles (7) のリソースを開いてみたところ。
1000個の画像を置き換えて、キミだけのスキンを作ろう!
↑やったことあるけどすっげえしんどいです。



みっつ目。 「フォントファイルの参照を変えちゃえ方式」

MSゴシックが使われてる表示を新ゴに置き換えたい。
→ MSゴシのフォント登録を新ゴに改竄しちゃえばよくね?

こんかい試す方法。
レジストリにあるフォントの参照を変えてみようっていう。

レジストリにはフォント関係の使いづらい機能がいくつか埋まっております。

  • インストール済みフォントとファイル名のリスト
    → 書き換え試してみたけど効果無し。
  • font-link(複数フォントを連結して使う機能)の設定
    → 和文同士の置き換えはできないし TrueType と OpenType の連結も変。
  • font-substitute(フォントの置き換え)の設定
    → XPのとき試して確かダメだった気がする。

こんかい Windows 7 で改善してればいいなってかんじです。
まあ、成功したら褒めてやってください。




まず書き換えなしでがんばってみます。

コントロール パネル
\デスクトップのカスタマイズ
\個人設定
\ウィンドウ グラス色の変更
\デザインの詳細設定

でフォントが変えられます。




0
この画面だけは 95 のころから変わってませんな。




とりあえず変更可能なところぜんぶ
モリサワさんの OpenType「じゅん Pro 34」を指定してみました。
「新丸ゴ」とは違った控えめさのある
まるまるっとした使いやすい丸ゴシック。
さいきんこれ大好きなんです。

↓で適用してみたのが下の画面↓



1-1



  • イエローで囲ったところはフォントが変わったところ、
  • ピンクは変わってないところ、

なんですが、悲しいくらい
見ての通りのモザイクです。




1-5




ちょっとシステムの深いところに入ると、途端に
えげつない ClearType のフリンジを纏ったメイリオが
顔を出します。ぺー!




1-2
これなんかほぼメイリオですね。




1-3
すでにメイリオですらなくMS Pゴシックですね。




1-4
画面によっては謎なFontLinkが登場します。
"PhysX" の文字が Bell Gothic Std っぽいけど自身薄。




こんなかんじで、
コントロールパネルなんつう正攻法では
まったく思うようにはいかないのです。
フォントフリークが目指すはピンク色枠の根絶なのですから。




レジストリいじり、行きます!

XP でダメだった FontSubstitutes は果たしてセヴンで効くのか。
まあモノは試しですやってみましょ。


キーの位置は

HKEY_LOCAL_MACHINE
\SOFTWARE
\Microsoft
\Windows NT
\CurrentVersion
\FontSubstitutes


ここにフォントの置き換えを記述していきます。
当然ですが編集するまえに該当キーをエクスポートしておいてくださいね。
失敗したときも一撃で元に戻せるってのは安心感が違います。
書き方は下の画像を参考にどうぞ。
ここではMSゴシックとか Meiryo を「Lira」に置き換えました。




3
Lira は自作の合成フォントです。
UI 用に調整したあくあ系。って言えばわかるひとにはわかるかも。
決してきれいではないけれど、字幅とかグリフ数の関係で
どこに使ってもとりあえず平気よって安心感がある。



ここでのミソは
MS系とかメイリオ系以外にも
Segoe やら MSSansSerif やら Tahoma まで
まとめて置き換えてるとこです。

これは XP のときの試行錯誤で覚えたんだけど、OS側は FontLink あるし
アプリ側も妙な挙動あるしで(たとえばイラレのメニューとか)
和文だけじゃなくいくつかの欧文フォントは置き換え必須なんですな。
とくに MSSansSerif系 が重要。システムダイアログはぜんぶこいつです。
msgothic.ttc の実体置き換えやるひとも覚えておくべし。




再起動で FontSubstitutes が適用されます

結果はどうだ!?




2-1
エクスプローラ。



2-5
タスクバー、メニュー、コントロールパネル。




どうよこれ? どうよ!?
しっかり置き換えできてるじゃなですか!

ちなみにLira の特徴は「仮名の端がすっと細くなってく」ところ。わかりやすい。




2-2
あれほどメイリオだらけだったウィンドウが!




2-3
MSゴシで溢れかえっていたダイアログが!




4-2
システムの深い部分でもこのとおり。




どや! ほとんど漏れなく置き換えられてますぜ!

ただ
ごく一部のアプリでは
なぜか置き換えができません。




2-4
GeForceの設定画面は置き換え失敗。
(それでも gdipp でだいぶマシにはなってるけど)



なかんじで、アプリによっては成功しない場合もあるっぽい。
こういうのは msgothic.ttc を直指定してたりするのかも。




4-4
すてきOSS・VertrigoServ の起動画面が
フォントによっては崩れる現象。



こんなふうに
字幅の違いを間違って検出して
妙な表示になるアプリも
あるようです。

あと、
MSゴシ・Pゴシを OpenTypeFont に置き換えると
なぜか FlashPlayer のテキストが化けたり抜け落ちたりします。
TrueType なら平気っぽいのでそっちでよろしく。




最高の UI を求めて

まず
ぜんぶのフォントを「Lira」じゃなく「じゅん」に変えます。

さらに
まえ紹介した「gdi++」の派生品で
64bit ネイティヴ対応してる「gdipp」 [code.google.com] を入れます。

最強の布陣。
ささ 再起動を…… そして結果のほどは!




4-1
英字だろうが小ポイントだろうが関係なく
きれいに出てくれてます。




4-3
ようこそ画面にすら効いています。



というわけで、




これはもう成功ですね。

よ! う! や! く!



4-5
7 x64 でも素敵フォントの素敵 UI ライフが送れるってわけです。っぷー!



.

26 個のコメント。書きます?:

あっとん said...

こう・・・さ、
ワードとかで、文字によって幅が違うときがあんじゃん。
3文字漢字ならべたらひらがなより長くなったり。半/全角スペース並べてもそろわなかったり。
ワードは別にそろえられるからいいんだけどさ、そういうの、フォント変えたらどんな文字も幅そろったりすんの?
簡単にできない?

あっとん said...

こう・・・さ、
ワードとかで、文字によって幅が違うときがあんじゃん。
3文字漢字ならべたらひらがなより長くなったり。半/全角スペース並べてもそろわなかったり。
ワードは別にそろえられるからいいんだけどさ、そういうの、フォント変えたらどんな文字も幅そろったりすんの?
簡単にできない?

あっとん said...

大事なことだから二回言いました。

やみ said...

>あっとん

うーん。思いつくのはこのくらい?



●プロポーショナルフォントを使わないで等幅フォントだけにする。

とりあえず名前にPが入ってるフォントを避ける。
たとえば MSPゴシ やめて MSゴシ だけにする。
「M」でも「I」でも同じ幅にしたいならこれ。
だけど文の読みやすさが多少犠牲になる。



●英字を入力すると自動で英語フォントに切り替わるのを止める。

2007なら
ホーム
→ スタイルの変更
→ フォント
→ 新しいテーマのフォント(ry

で、英数字用のフォントってとこを
日本語用と同じに設定する。
全角と半角が揃わないのはたいていこれ。



●段落の均等割と両端揃えをやめにして、ふつうに左揃えで書く。

場合によっては禁則処理もやめる。
自分で改行を入れる必要が出てくるかもしれない。ちょっと不便。

あっとん said...

ありがとう。
わかったようなわからないような。
やってみるー

通りがかり said...

素晴らしいですね。

しかし、レンダリングがクソなのは
どうやっても変わらないんでしょうね…。

同じフォントを使っていても、
MacやUbuntuとは次元が違いますね。

やみ said...

>通りがかり
そのためのgdi++ x64ですわ。
Ubuntuもfreetypeエンジンなので、gdipp搭載のWindows環境ならば同等のレンダリング品質を確保できます。フォントに合わせた細かいチューニングも可能。

ネイティブエンジンの改善は…… この先も期待できないのでしょうね

#そのうちスクリーン解像度が300dpiに迫るくらいになれば、もはやアンチエイリアスなど不要なのかもしれませんが……

Anonymous said...

win7のシステムフォントを変更したいと思い、調べていたところこちらにたどり着きました。おなじじゅんのフォントでやろうと思ったんですが、画像のようにレジストリを変更しても反映されませんでした。じゅんのフォントはなんと記述されているのですか?フォントのファイル名でいいのでしょうか?質問ばかりですみませんが、レジストリ変更のところで当方にはメイリオ等の一部項目が存在しません。こうゆうときは新規に追加して画像と全く同じようにした方がいいのでしょうか?

やみ said...

>匿名さん


「じゅん」の場合は「A-OTF じゅん Pro 34」です。つまりファイル名ではなく登録名になります。

たとえばMSゴシにしても「msgothic.ttc」ではなく「MS ゴシック」と登録されているはずです。

1文字でも違うと置き換えは失敗するので注意してください。最悪全てのテキストが文字化けして実質操作不能に陥ります。編集前にはかならずキーのエクスポートを。

足りないエントリは新規に追加してください。ほかはfont substituteでググってもらえればわかるかと。

それではよいフォントライフをー

TS said...

最近、Win7マシンを購入したTSです。
フォント変更方法を調べていたときにこのサイトにたどり着きました。
フォント入れ替えについて、楽しくわかり易い文章で説明がなされており
大変参考になりました。

恐れ入りますが、以下の点ご教授いただけないでしょうか。

写真3でLiraに変更してあるフォントについてキー(MeiryoKe_Gothicに置き換え)を作成しました。しかし、MeiryoKe_Gothicに置き換わっていない箇所が散在しています。
そこで、最高のUIを求めてで書かれているように、すべてのフォントを置き換えようと考えています。
このすべてのフォントというのは、フォントファイルにあるすべてのフォントについてキーを作成するということでしょうか?

もう1点、写真3の「Sagoe Media Center Lig…」と「Sagoe Media Center Se…」の名称(…以降)を教えていただけないでしょうか?

本件について成功しましたら、さらにgdippの導入も検討したいと思っています。

以上、よろしくお願いします。

やみ said...

>TSさん
まずご質問にお答えしますね。


>このすべてのフォントというのは、フォントファイルにあるすべてのフォントについてキーを作成するということでしょうか?
いいえ。システム系フォントのみです。
すべてのフォント(FixedSysとかまで)を置き換えると最悪システムが起動しなくなる可能性もあります。


>「Sagoe Media Center Lig…」と「Sagoe Media Center Se…」の名称
それぞれ
Segoe Media Center Light
Segoe Media Center Semibold
ですね。
ただしこれら2つのフォントについては置き換えても効果はなかったように思います。


--------

補足です。

>しかし、MeiryoKe_Gothicに置き換わっていない箇所が散在しています
まず、「置き換わっていないフォント」が実際に何のフォントであるのか同定してください。
たとえば「全くアンチエイリアスがかかていないビットマップフォントである」「日本語フォントである」という条件であれば、選択肢はほぼMSゴシック/明朝系に絞られます。

この場合、FontLinkなどSubstituteとは別ルートからMSゴシックが読み込まれているなど可能性が考えられるので、いろいろトライしてみてください。
なおソフトによってはフォントファイル .ttf を直接読み込んで使っていることもあるようです。そのような場合はレジストリからはまったく手出しができません。


>本件について成功しましたら、さらにgdippの導入も検討したいと思っています。
これですが、現在はMacTypeというより互換性と速度に優れたソフトが存在しますから、そちらをおすすめいたします。
ご使用中のフォントによっては、MacTypeの導入のみでフォントを置き換えずとも満足のいく描画となる可能性があります。

TS said...

詳細なご回答、ありがとうございます。
小生のコメントを追記いたしました。
恐れ入りますが、再度ご教授くださいますと幸いです。

>このすべてのフォントというのは、フォントファイルにあるすべてのフォントについてキーを作成するということでしょうか?
いいえ。システム系フォントのみです。
すべてのフォント(FixedSysとかまで)を置き換えると最悪システムが起動しなくなる可能性もあります。

 →承知しました。写真3でLiraに置き換えられているフォントがシステムフォントということですね。


>「Sagoe Media Center Lig…」と「Sagoe Media Center Se…」の名称
それぞれ
Segoe Media Center Light
Segoe Media Center Semibold
ですね。
ただしこれら2つのフォントについては置き換えても効果はなかったように思います。

 →承知しました。置き換えないようにします。


>しかし、MeiryoKe_Gothicに置き換わっていない箇所が散在しています
まず、「置き換わっていないフォント」が実際に何のフォントであるのか同定してください。
たとえば「全くアンチエイリアスがかかていないビットマップフォントである」「日本語フォントである」という条件であれば、選択肢はほぼMSゴシック/明朝系に絞られます。

 →例として、写真2-3のシステムのプロパティのフォントが小生のPCでは上記の条件に当てはまるフォントになっています。
  念のため確認させていただきたいのですが、「MS ゴシック」はMS、ゴシックは全角、間のスペースは半角、
  「MS Pゴシック」はMS、Pゴシックは全角、スペースは半角で間違いないでしょうか?
  ここが間違っているから、置き換わってないかなと思いまして…


>本件について成功しましたら、さらにgdippの導入も検討したいと思っています。
これですが、現在はMacTypeというより互換性と速度に優れたソフトが存在しますから、そちらをおすすめいたします。
ご使用中のフォントによっては、MacTypeの導入のみでフォントを置き換えずとも満足のいく描画となる可能性があります。

 →情報ありがとうございます。素晴らしいソフトのようですね。今回の問題が解決したら、次のステップとして考えさせていただきます。

やみ said...

>念のため確認させていただきたいのですが、「MS ゴシック」はMS、ゴシックは全角、間のスペースは半角、
>「MS Pゴシック」はMS、Pゴシックは全角、スペースは半角で間違いないでしょうか?

「MS ゴシック」
「MS Pゴシック」
「MS Gothic」
「MS PGothic」
「MS UI Gothic」
です。
WORDなどのフォント指定欄からコピペすると確実です。

MeiryoやメイリオやArialやTahomaや
MS Sans SerifやMicrosoft Sans Serif経由でフォントリンクを介してMSゴシ系を描画している可能性もありますが、何とも言えません。

TS said...

恐れ入ります、もう少しだけ教えてください。

>WORDなどのフォント指定欄からコピペすると確実です。

 有用な情報、ありがとうございます。フォント名は間違いありませんでした。


ちなみに、小生のデスクトップを写真4-5と同じような構図でキャプチャしてみました。
http://uploda.cc/
ID:46285

プロパティの文字がやはり置き換わっていません…(涙)(置き換わってないのはMSゴシック/明朝系でしょうか?)ソフトによっては別ルートで読み込まれていることがあるのは理解いたしましたが、これらwindowsのプロパティは別ルートではないですよね。何か思い当たる原因とかございませんでしょうか?

ちなみに、先程質問したSegoe Media Center Light及びSegoe Media Center Semibold以外の写真3でLiraに置き換えられているフォントをMeiryoKe_Gothicに置き換えています。やみさんは写真3以外に追加で置き換えされていますか?(その差が原因かなと思いまして…)

何度も申し訳ございませんが、よろしくお願いいたします。

P.S. やみさんのHPをいろいろ見させていただいて、携帯メールのgmailへの無料バックアップ記事があることに
気が付きました。以前この記事を見て、バックアップしたことを思い出しました。いつも有用な記事、ありがとうございます(笑)

やみ said...

>プロパティの文字がやはり置き換わっていません…(涙)
置き換わってないのはMSPゴシックですね。


>これらwindowsのプロパティは別ルートではないですよね。
これらwindowsのプロパティこそMicrosoft Sans Serifだらけだったような記憶がいたします(いかんせん記憶があいまい)
というか、自分のマシンなのに、最終的にどのような組み合わせで全フォントの置き換えを達成したかの正確なところがわからないのですよ。

過去のスクショを見れば、なるほど確かにLiraに置き換わっていますが、いまの環境でシステムプロパティはMSPゴシに戻っているんですよね。
恐らくイラレかゲームのUIに不具合が出たので戻したのでしょうが…… Arialの置き換えもやめてしまいましたし。
MacTypeを入れてしまえば置き換えができなくてもギザギザは消えるので、たまにしか見ないプロパティ系なら別にいいかなーと。

gdippとMacTypeの挙動が微妙に違うのがひとつの原因ですね(こちらにもForceUseFontとかFontSubstituteみたいな設定があります)。


ちなみにデスクトップの天気予報ガジェットは、描画のクセなんかを見た感じ、IEの指定フォントが使われている気がいたします。


>やみさんは写真3以外に追加で置き換えされていますか?(その差が原因かなと思いまして…)
SystemとModernを置き換えてみたことがあったようです。効くのかはわかりません。


>P.S. やみさんのHPをいろいろ見させていただいて、携帯メールのgmailへの無料バックアップ記事があることに気が付きました。以前この記事を見て、
おや(笑

TS said...

連絡が遅くなり、申し訳ございません。

結局、MacTypeを導入しました。
導入したら、フォントの置き換えとかどうでもよくなりました(笑)
それくらい、綺麗で感動しました!
良いソフトをご紹介くださりありがとうございました。

これからもブログの方、ちょくちょく見させていただきますね。

やみ said...

おお入れましたか!おめでとうございます!

あれです、そのうちすぐ満足できなくなります。
こんなに良いレンダラを使ってるのに
表示してるのがMSゴシックなのか!?
みたいなw

Anonymous said...

こちらの記事のおかげでWIN7のシステムフォントをヒラギノ丸ゴにできました!
一言お礼言いたかったのでコメンさせていただきました。

toichi said...

この記事を参考にWindows7のシステムフォントをヒラギノ角ゴに変えることができました!
MacTypeでレンダリングも綺麗になって大満足です。

ただ残念なのが、システムのプロパティやコントロールパネル、起動終了時の「ようこそ」、ログオフスクリーン、タスクマネージャー等がメイリオのままのことです。

やみさんのスクリーンショットを見るとこれらも見事に変わっていますが、Fontsubstituteの置き換えだけで実現したのでしょうか?

toichi said...

上の補足です。システムのプロパティやコントロールパネルに関してはテーマのVisualStyleのフォントをいじることで変えることができましたが、起動終了画面に関しては依然そのままです。

私は気分で時々テーマを変えるのでなるべくVisualStyleに頼らず汎用的に使えるレジストリの置き換えだけで実現したいと思っています。

やみ said...

>toichi
手許のWin7sp1環境(2台)では、どちらともようこそ画面までフォント変更できていますね。
レジストリをいじればあとは何もせずとも変更適用できていたと思います。ゆえに疑問を感じた経験がありません。

原因はあまり思いつかないのですが、HKEY_LOCAL_MACHINEではなくHKEY_LOCAL_USER以下を書き換えている?とかでしょうか。

toichi said...

>やみさん
確認しましたが
HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\Windows NT
\CurrentVersion\FontSubstitutes

で間違いありませんでした。

もうちょっと試行錯誤して、上手く行かなかったらレジストリのスクショを取って不備がないかお見せしたいと思います。

文字化け said...

PhotoshopやIllustratorなどの一部のUIが文字化けしてしまうのですが、どうしたらいいでしょうか?

やみ said...

>PhotoshopやIllustratorなどの一部のUIが文字化けしてしまうのですが、どうしたらいいでしょうか?
Gdi++の除外アプリを指定してください

文字化け said...

Gdi++は使っておりません><

Anonymous said...

「瀬戸フォント」
というフォントでやってみたのですが、うまくいきません。
どのようにしたらうまくいきますでしょうか?