テキストを作成してシーンに追加します。
日本語のテキストも利用できます。
通常の Three.js の TextGeometry とは異なり、 透明の平面に対してテキストを描画したテクスチャを貼り付けることで実現しています。
そのため、テキストが平面のサイズ (size) を超える場合はテキストが見切れます。
テキストを描画したテクスチャについては create.textTexture を用いて作成しています。
平面のサイズについては、ガイドラインの幅 (guide) に0より大きな値を指定することや、 背景色 (background) を指定することで確認できます。
setTextsetFontSizesetColorsetBackgroundsetGuidesetGuideColorの各メソッドで、テキストの内容やフォントサイズ、色、背景色、ガイドラインの有無や色を動的に変更できます。
変更できるのは、テキストのテクスチャに関するプロパティのみで、平面のサイズ (size) や位置 (position)、回転 (rotation) などのプロパティは変更できません。
const { camera, create, animate } = init()
camera.position.set(0, 0, 3)
const text = create.text("easy-three", {
size: [3, 1]
})
animate(({ delta }) => {
text.rotation.x += delta
text.rotation.y += delta
})
const { camera, create, animate } = init()
camera.position.set(0, 0, 3)
const text = create.text("easy-three", {
size: [3, 1],
guide: 4,
background: "#66ff66"
})
animate(({ delta }) => {
text.rotation.x += delta
text.rotation.y += delta
})
const { camera, create, animate } = init();
camera.position.set(0, 0, 3);
const text = create.text("easy-three", {
size: [3, 1],
font: noto.style.fontFamily,
});
animate(({ delta, frameCount }) => {
text.rotation.x += delta;
text.rotation.y += delta;
if (frameCount % 60 === 0) {
text.setFontSize(80)
text.setText(frameCount / 60);
}
});