オブジェクトのリストを保存する
ある一定のグループのオブジェクトに一つ一つアクセスしたい場合、二つ方法があるようです。
- あらかじめ、たとえば "Hoge***" という名前を付けておいて、bpy.ops.object.
select_pattern("Hoge*") を使う。ただし、これはすべて選択されてしまう。 - グループに入れて直接アクセス
たとえば "Pixels" というグループを作ったとして、そこには次のようにアクセスします。
>>> bpy.data.groups["Pixels"]
bpy.data.groups['Pixels']
中身のオブジェクトは、objects にあります。例えば名前を表示したい場合は、
>>> for ob in bpy.data.groups["Pixels"].objects:
... print(ob.name)
obが本体なので、動かすなりなんなり好きにできます。
独自プロパティを好きなBlender Objectに追加する。
この辺りに、「Blender Objectに好きなプロパティを埋め込める」と書いてあります。
http://wiki.blender.org/index.php/Dev:Source/Data_System/ID_Property
しかし、任意のオブジェクトを持てるようにはなっていません。たとえば list(1,2,3,4)というのを設定するとBlender のプロパティに変換されます。
Modal Operator でBlender実行中に任意のオブジェクトを保持する。
Blenderで任意のオブジェクトを持つには, Modal Operator を定義し、そのメンバ変数として持つのが正しいようです。Modal operatorは画面をロックしないので、インスタンスが生成されるとその中のオブジェクトはBlenderが動いている間保持され続けます。
http://wiki.blender.org/index.php/Dev:JA/2.5/Py/API/Overview
かつ、Modal Operator は Timer の機能を持っており、一定時間ごとに実行するコードはこちらで指定することが出来ます。
No comments:
Post a Comment