✏️

three.jsで日本語フォントを使う

2022/05/29に公開

日本語フォントでTextGeometryを作る方法

まずはGoogleFontsから任意の日本語フォントをダウンロード。
今回はM PLUS Rounded 1cを使います。

ダウンロードできたら、Facetype.jsで.ttfをjsonに変換します。

変換できたらあとはthree.jsのFontLoderでフォントを読み込み、TextGeometryを生成するだけ!

import { FontLoader } from "three/examples/jsm/loaders/FontLoader.js";
import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry.js";

const fontLoader = new FontLoader()
  fontLoader.load("/fonts/rounded_mplus_1c_medium_regular.json", (font) => {
  console.log("loaded font!!")
  const textGeometry = new TextGeometry("すりーじぇいえす", {
    font: font,
    size: 0.5,
    height: 0.2,
    curveSegments: 12,
    bevelEnabled: true,
    bevelThickness: 0.03,
    bevelSize: 0.02,
    bevelOffset: 0,
    bevelSegments: 5,
  })
  textGeometry.center()

  const textMaterial = new THREE.MeshStandardMaterial()
  const text = new THREE.Mesh(textGeometry, textMaterial)
  text.castShadow = true
  text.position.z = 1
  scene.add(text)
})

textGeometry.center() はテキストを中央寄席にしてくれるので便利!

Discussion