utf8text3d

というわけで車輪の再発明を開始してみた。
とりあえずTkinter実験コードを書いてみる。Tkinterは問題なく動く。ほんとありがたい。

  • sys.exit呼ぶと blenderごと終了してしまうようなので frame.masterをぶっ殺す戦略で行く
  • setText()はどうやらユニコード文字のまま渡すとブーたれるので、encodeしてやる必要がありそう
  • リファレンスを見てみたんだけどフォント設定に類するメソッドが見つからない。そんなバカな、とか思ってとち狂って dir()縦断爆撃していてようやく見つけた*1。 Text3d#setFont()だ。気持ち悪いけどこれ使ってみたら一応フォントは切り替わるようだ。

とりあえず体裁無視のutf8text3d実験コードを書いてみる。

from Blender import *
from Tkinter import *

global f, e, b
global serno

serno = 1

def makeutf8():
	global f, e, serno
	font = Text3d.Font.Load("/usr/share/fonts/truetype/kochi/kochi-gothic.ttf")
	text = Text3d.New("text-%d" % serno) # how can i make serial no more efficiently?
	text.setText(e.get().encode("utf-8"))
	text.setFont(font)
	Scene.GetCurrent().objects.new(text)
	Redraw()
	serno += 1
	f.master.destroy()
	

f = Frame()
e = Entry()
e.pack()

b = Button(text="OK", command=makeutf8)
b.pack()

f.mainloop()

おっけだ.

うああ、もうこんな時間か。やっぱ昼休みって短い.....

*1:つかコマンドラインがほしい。というか当然出来ると思うんだけど・・・調べよっと