🚀
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