【openFrameworks】ofTrueTypeFontで日本語のフォントを読み込む方法


openFrameworks v0.10.0でofTrueTypeFontを使って日本語のフォントを読み込む方法です。

ofApp.hにofTrueTypeFontのインスタンスを設定します。

ofTrueTypeFont text;

次にofApp.cppのsetup()にofTrueFontSettingクラスのインスタンスを作りそこに設定一式を追加します。
そしてaddRangesメソッドでロードしたい文字セットを指定します。
読み込める文字セットはofUnicodeのリファレンスに掲載されています。具体的にどういうセットなのかまでは載っていませんが、Unicode Latin1Supplementなどをキーワードに検索するとWikipediaなどでセットの一覧が出てくるので参考になります。

特に指定がない場合はofTrueTypeFontはアルファベット等のみを読み込むようです。

コードとしては以下の通りです。
フォント名のところにフォントの実際のファイル名、フォントサイズのところには数値を入力します。
大きすぎるフォントサイズにするとクラッシュすることがあるようです。

ofTrueTypeFontSettings settings("フォント名.ttf",フォントサイズ);//設定一式を納めるインスタンス
settings.addRanges(ofAlphabet::Emoji);//絵文字
settings.addRanges(ofAlphabet::Japanese);//日本語
settings.addRange(ofUnicode::Space);//スペース
settings.addRange(ofUnicode::IdeographicSpace);//全角スペース
settings.addRange(ofUnicode::Latin);//アルファベット等
settings.addRange(ofUnicode::Latin1Supplement);//記号、アクサン付き文字など
settings.addRange(ofUnicode::NumberForms);//数字?
settings.addRange(ofUnicode::Arrows);//矢印
settings.addRange(ofUnicode::MathOperators);//数式記号
settings.addRange(ofUnicode::Hiragana);//ひらがな
settings.addRange(ofUnicode::Katakana);//カタカナ
settings.addRange(ofUnicode::MiscSymbolsAndPictographs);//絵文字など
settings.addRange(ofUnicode::Emoticons);//エモーティコン
text.load(settings); // 設定をロード
text.setLetterSpacing(1.2);//文字間 デフォルトは1.0 文字間をより開ける場合は1.0を超える値を指定する

最後にofTrueTypeFontのインスタンスに対して設定をloadします。

あとはdraw()部で

text_message.drawString("表示したい文字列", 0, 0);
  • 第1引数:表示したい文字列
  • 第2引数:x軸上の表示したい座標
  • 第3引数:y軸上の表示したい座標

とすれば表示されます。

ofTrueTypeFontで日本語を読み込む
これはシェーダーをかけているので文字にエフェクトがかかっていますが、実際は指定した文字色で出力されます。

atnr.net の RSS登録はこちらから

コメントは受け付けていません。