コンテンツにスキップ

日本語文字を拡大表示する小技

※createFontの第一引数は日本語フォント、第二引数は文字の大きさです。状況に合わせて変えてください。

1.利用シーン

Processing(バージョン3.5.4)で、text()で日本語文字を画面に表示する場合、通常の表示なら問題ないのですが、textSize()で拡大表示しようとすると文字化けして、例えば□□□と表示されてしまいます。(状況によっては、□の中に×印が入った文字が表示されることもあります)

Open Processing では、この文字化けは発生しません。

2.通常の表示

そのままで日本語文字も表示されるが、とても小さい表示です。

String emoji="SCORE:";
String jmoji="得点:";
void setup() {
size(1100, 600);
}
void draw() {
background(0);
text(emoji, 100, 200);
text(jmoji, 100, 300);
}

3.拡大表示(対策なし)

textSize()で拡大表示しようとすると、アルファベットは正常に拡大表示されるのに、日本語文字は文字化けしてしまいます。

String emoji="SCORE:";
String jmoji="得点:";
void setup() {
size(1100, 600);
}
void draw() {
background(0);
textSize(50);
text(emoji, 100, 200);
text(jmoji, 100, 300);
}

4.拡大表示(対策あり)

このような場合は、 setup()の中でcreateFont()を使うとよいでしょう。

String emoji="SCORE:";
String jmoji="得点:";
void setup() {
size(1100, 600);
PFont myfont = createFont("MS Gothic", 50);
textFont(myfont);
}
void draw() {
background(0);
textSize(50);
text(emoji, 100, 200);
text(jmoji, 100, 300);
}

  • createFont()の第1引数には、日本語フォントを指定します。(例:MS Gothic、MS Mincho、Meiryoなど)

  • 使用できる日本語フォントはProcessingを動かしている環境によって異なります。なお、以下のコードを実行すると、その環境で使用できるフォントのリストをコンソールに表示してくれます。

    printArray(PFont.list());
  • createFont()の第2引数には、大きさを指定します。実際に画面表示される文字の大きさは、その後にtextSize()があればそれが優先されます。無ければ、createFont()の第2引数の指定が使われます。

  • ちなみに、PFontの行とtextFontの2行は、まとめて以下のように書くこともできます。

textFont(createFont("MS Gothic", 50));