🚀
PythonでBlenderのプログラミングを開始した Part1
概要
blenderの学習を兼ねて、Blender上のPythonをやってみた。
きっかけ
自分一人で開発するときはblenderでのアニメーションや各種素材の開発は簡略化したかった。
*一プログラマなので、節約したくて、自分一人で進めたかった。
成果物
実行方法
まず動かしてみたいという人は試してみてください。
- 
スクリプト選択ダイアログを開く  
- 
スクリプトファイルの選択 
 2-1.ファイルダイアログを選択
 2-2.テキストを開くボタンをクリック

- 「▷」ボタンをクリック

4.実行出来たらアニメーション側をループ再生で確認
4-1.Animationタブをクリック
4-2.アニメーションしたの「▷」ボタンでアニメーションをループ再生して動きを確認

実際に取り組んだもの
参考にさせていただきました。
コードの解説
既存のBlenderの拡張

タイトルラベルの設定
row.label内のtextがタイトルで、iconが左部分に表示したいアイコンを指定します。
row = layout.row()
row.label(text="ショップ情報", icon='WORLD_DATA')
メニュー内のボタンオブジェクト生成
オブジェクト名.operator("起動するid名")
row = layout.row()
row.operator("mycustom.button")
アニメーション部分
今回は、アニメーションをCSVなどで指定できるようにしたくて、以下のようにアニメーション情報をループするように作りました。

1.の処理
bpy上のオブジェクト情報を取得してきました。
obj = bpy.context.scene.objects[0]
2.の処理
CSVにする前のアニメーション情報を一覧
x,y,zの座標情報を持ったtupleのリストとして表現しています。
locations = (
    (0, 0, 2),
    (0, 3, 4),
    (0, 3, 8),
    (0, 13, 8),
    (5, 13, 8),
    (5, 23, 8),
)
3.の処理
keyframe_insertでアニメーションを設定
i = 0
for location in locations:
    obj.location = location
    obj.keyframe_insert(data_path="location", frame=5.0*i)
    i += 1
開発環境
blender2.91
参考資料
Blender拡張時に参考にさせていただきました。
ホロモンさんの拡張記事
アニメーションの「キーフレーム」の設定
blender2.90のapi資料
今回の開発をしたblenderのコミットログ
blenderの2.91で確認をしています。


Discussion