Blender のアドオンを作る
Blender をステージエディタとして使いたいので、パラメータをいじるためにアドオンを作る必要があった。
検索すればたくさん出てくるので参考にして実装。
import bpy bl_info = { "name":"AnimalRTS Addon", "description":"Addon for AnimalRTS", "category":"User"} class AnimalRTSPanel(bpy.types.Panel): bl_label = "Animal RTS" bl_space_type = 'VIEW_3D' bl_region_type = 'TOOLS' def draw(self, context): layout = self.layout obj = context.object row = layout.row() row.label(text="Object = " + obj.name) row = layout.row() row.prop(obj, "canEnter", text="can enter") row = layout.row() row.prop(obj, "objType", text="type") def register(): bpy.types.Object.canEnter = bpy.props.BoolProperty() bpy.types.Object.objType = bpy.props.EnumProperty(name="objType", description="Object Type", default="None", items=[ ('None','None','None'), ('HomeBase','HomeBase','HomeBase'), ('SubBase','SubBase','SubBase'), ('Bridge','Bridge','Bridge'), ]) bpy.utils.register_class(AnimalRTSPanel) def unregister(): bpy.utils.unregister_class(AnimalRTSPanel) if __name__ == "__main__": register()
とりあえずこんなメニューになる。
プロパティを追加するには、
bpy.props.BoolProperty
とか
bpy.props.EnumProperty
を使ってやれば良い。
(他のプロパティの参考:http://wiki.blender.org/index.php/Doc:2.6/Manual/Extensions/Python/Properties)
保存も自動でしてくれるようで便利。
で、てきとうに同じパスに書き出されるように、下みたいなのをてきとうな所に挿入。
def ExportAttributesFile(context, filepath): base, ext = os.path.splitext(filepath) f = open(base + '_attributes.txt', 'w') for obj in bpy.data.objects: f.write(obj.name + "," + str(obj.canEnter) + "," + str(obj.objType) + ",\n") f.close() return {'FINISHED'}
あと、とりあえずメッシュとレイの交差も実装したので、これで移動周りが書ける。
実機は GPU 速いけど、CPU は遅い感じなので気をつけよう。
LOD の指定とかもしたいんだけど、どういう風にしようかなー。