Blenderっていいですよね。
モデリング・スカルプト・モーショングラフィック・3Dアニメーション・2Dアニメーション・レンダリング・・・・・。
アニメーションの中割の作成からロトスコープまで・・・・。
それでいてFree。
無敵すぎませんか?
ありがとうBlender Organization。
そんなこんなで、世界中にユーザーがおりコミュニティの活動も活発です。
ネットで調べれば大体のことは教えてくれます。
が、
情報の大半は英語圏のもので、翻訳すればわかるものの、日本語でBlenderを運用している私たちにとっては”どの項目がどこにあったっけ?”と探すことが手間であります。
”Mesh to Points”ってどこや?
”Triangulate”ってなんや?
みたいなことがよくあるかと思います。
そこで、ボタン一発で表示言語を切り替えるアドオンを作りました。
bl_info = {
"name": "Language Toggle",
"author": "milvinae",
"version": (1, 0),
"blender": (4, 4, 0),
"location": "メインメニュー > 切替",
"description": "登録した2つの言語をワンクリックで切り替えるアドオン",
"category": "Interface",
}
import bpy
# -----------------------------------------------------------------------------
# アドオンプリファレンス
# -----------------------------------------------------------------------------
class LANGUAGE_TOGGLE_Preferences(bpy.types.AddonPreferences):
bl_idname = __name__
lang1: bpy.props.StringProperty(
name="言語1コード",
description="例: 'ja_JP', 'en_US', 'fr_FR' など",
default="ja_JP",
)
lang2: bpy.props.StringProperty(
name="言語2コード",
description="例: 'en_US', 'ja_JP' など",
default="en_US",
)
def draw(self, context):
layout = self.layout
layout.label(text="切り替え対象の言語を設定します。")
layout.prop(self, "lang1")
layout.prop(self, "lang2")
# -----------------------------------------------------------------------------
# 言語切替オペレーター
# -----------------------------------------------------------------------------
class LANGUAGE_OT_toggle(bpy.types.Operator):
bl_idname = "wm.language_toggle"
bl_label = "言語切替"
bl_description = "登録された2言語を切り替えます"
def execute(self, context):
prefs = bpy.context.preferences.addons[__name__].preferences
lang1 = prefs.lang1
lang2 = prefs.lang2
current = bpy.context.preferences.view.language
new_lang = lang2 if current == lang1 else lang1
bpy.context.preferences.view.language = new_lang
bpy.ops.wm.save_userpref()
self.report({'INFO'}, f"言語を切り替えました: {new_lang}")
return {'FINISHED'}
# -----------------------------------------------------------------------------
# メニュー
# -----------------------------------------------------------------------------
class LANGUAGE_MT_menu(bpy.types.Menu):
bl_label = "切替"
bl_idname = "LANGUAGE_MT_menu"
def draw(self, context):
layout = self.layout
layout.operator("wm.language_toggle", text="言語切替", icon='FILE_REFRESH')
prefs = bpy.context.preferences.addons[__name__].preferences
layout.separator()
layout.label(text=f"言語1: {prefs.lang1}")
layout.label(text=f"言語2: {prefs.lang2}")
# -----------------------------------------------------------------------------
# メニューバーに追加
# -----------------------------------------------------------------------------
def draw_menu(self, context):
self.layout.menu(LANGUAGE_MT_menu.bl_idname)
# -----------------------------------------------------------------------------
# 登録・解除
# -----------------------------------------------------------------------------
classes = (
LANGUAGE_TOGGLE_Preferences,
LANGUAGE_OT_toggle,
LANGUAGE_MT_menu,
)
def register():
for cls in classes:
bpy.utils.register_class(cls)
bpy.types.TOPBAR_MT_editor_menus.append(draw_menu)
def unregister():
bpy.types.TOPBAR_MT_editor_menus.remove(draw_menu)
for cls in reversed(classes):
bpy.utils.unregister_class(cls)
if __name__ == "__main__":
register()
<インストール方法>
1.上記コードをコピペして”language_toggle.py”でファイル保存
2.メインメニューの”編集(Edit)” - ”プリファレンス(preference)” - ”アドオン(add-ons)”
右上の▼の”ディスクからインストール(install from disk)” から”language_toggle.py”をインストール
アドオンの詳細に、2つ言語を指定できる箇所があります。
切り替えボタンでこの2つの言語を即座に入れ替えることができる仕組みです。
インストールするとメインメニューに切り替えタブができていることが確認できます。
切替タブ内の”言語切替”を押すと・・・?
英語から日本語へ即座に切り替えることができました!
いちいちプリファレンスを開く必要がないのでとても快適です!
アレどこだっけ?この機能なんだっけ? な時にぜひご活用ください。
見ていただきありがとうございました!