Blender2.5から始めるスクリプト05

オブジェクトパネル最下部に「Test」欄とボタンを作成し、押したら「clicked」と表示する。

import bpy

class ObjectButtonsPanel(bpy.types.Panel):
bl_space_type = “PROPERTIES”
bl_region_type = “WINDOW”
bl_context = “object”

class OBJECT_PT_Test(ObjectButtonsPanel):
bl_label = “Test”
Display = 0

def draw_header(self, context):
layout = self.layout

def draw(self, context):
layout = self.layout
row = layout.row()
row.operator(“exportbutton”, text=”Exec”)

class OBJECT_OT_Test(bpy.types.Operator):
bl_label = “Test”
bl_idname = “exportbutton”

def invoke(self, context, event):
scene = context.scene
print(“clicked”);
return(‘FINISHED’)

bpy.types.register(OBJECT_OT_Test)
bpy.types.register(OBJECT_PT_Test)

Blender2.5の日本語化のための調査メモ

ソース見ると国際化のためのコードやライブラリはちらほら見かけるんだけど、
まだまだ組み込まれていないも同然だなあ。
だからUserPreferencesの国際化パネルが非表示にしてあるわけなのね。
以下は個人的メモ。

blender\source\blender\editors\interface\interface_style.c
BLF_load
blf_font_new
datatoc_bfont_ttf

blender\source\blender\makesrna\intern\rna_userdef.c
prop= RNA_def_property(srna, “international_fonts”, PROP_BOOLEAN, PROP_NONE);

.blender\scripts\ui\space_userpref.py
col.label(text=”General:”)
col.prop(system, “dpi”)

blender\source\blender\editors\interface\interface_style.c
uiStyleInit()
uifonts
BLI_addtail

blender\source\blender\blenfont\intern\blf_lang.c
BLF_lang_set()

blender\source\blender\editors\interface\interface_draw.c
ui_draw_but_CHARTAB()

Blender2.5のインストーラ日本語化バージョン

日本語化といっても、インストーラ作成ツールに日本語テンプレートを使うように変更しただけですが。

ダウンロード(Win32版のみ)
インストーラソース

コンパイルオプションは以下。なお、リビジョンは26127です。

BF_BUILDDIR = r’..\build’
WITH_BF_FFMPEG = True
WITH_BF_OPENAL = True
WITH_BF_QUICKTIME = True
WITH_BF_GAMEENGINE = True
WITH_BF_PLAYER = False # set this to True whenever the player has been ported properly
WITH_BF_JACK = True
WITH_BF_SDL = True
WITH_BF_ICONV = True
WITH_BF_COLLADA = False
WITH_BF_FFTW3 = False
WITH_BUILDINFO = True
BF_DEBUG = False
BF_NUMJOBS = 2

Blender2.5から始めるスクリプト04

オブジェクトパネル最下部に「Test」欄作成

import bpy

class ObjectButtonsPanel(bpy.types.Panel):
bl_space_type = “PROPERTIES”
bl_region_type = “WINDOW”
bl_context = “object”

class OBJECT_PT_Test(ObjectButtonsPanel):
bl_label = “Test”
Display = 0

def draw_header(self, context):
layout = self.layout

def draw(self, context):
layout = self.layout

bpy.types.register(OBJECT_PT_Test)