【Blender2.8 Python】整列パネルをつくる

Sponsored Links

Pocket

オブジェクトの座標を揃えるためのパネルをつくってみました。コードを実行すると、3DビューのプロパティパネルにArrangementという名前のパネルが追加されます。適当なオブジェクトにobj1とobj2という名前をつけて、ボタンを押すと整列が実行されます。

仕様

  1. X、Y、Zごとに、整列を実行するボタンをパネルに配置する
  2. ボタンを押すと、シーンに配置されている”obj1″と”obj2″というオブジェクトに対して整列を実行する
  3. 整列はobj1を基準として行う。(obj1をキーオブジェクトとする)

コード

パネルの用意

ボタンを配置するためのパネルを定義するクラスです。

bl_~の値にパネルの名前や配置先などを指定しています。今回は3Dビュー上のNキーを押すと表示されるプロパティシェルフに表示する設定にしてあります。

draw()内で、self.layout.operator()に追加するボタンのクラスを渡します。

ボタンの用意

どの座標軸の場合もほぼ同じ内容です。

bl~でパネルのときと同様に、ボタンの名前や表示名を設定します。bl_idnameで大文字を指定するとエラーが起きてしまうので全て小文字で指定してあります。

execute()内にボタンを押したときの処理を記述しています。今回は単純にobj2の座標値をobj1の座標値に置き換えているだけです。

作成したクラスの登録

一通りクラスの用意が出来たら、Blenderから扱えるようにbpy.utils.register_class()を使って登録処理をします。

最初に作成したクラス一覧のタプルを用意して、ループを使ってから全てのクラスを登録するようにします。この処理は他のスクリプトをつくる場合でも共通の処理のようです。

Pocket

Sponsored Links

コメントを残す

メールアドレスが公開されることはありません。