🐥

PythonでBlenderのプログラミングを開始した Part2

2022/04/29に公開

概要

blenderの学習を兼ねて、Blender上のPythonをやってみた。
今回は、本職寄りの要素も掛け合わせてCSV連携をしてみた

システム構成図例

blender側のスクリプトで、csvファイルを読み込んでアニメーション再生をするタイプになります。

人の分離

元々は、デザインとアニメーションのようになっていました。

今回からは、CSVを設定する人とモデルやキャラクター構成をする2人に分離できました。

これで、チーム開発でアサインをして作業をお願いできる状態になるなーという状況で進めていきます。

きっかけ

チーム開発やマネージャーの話が流行っているので

  1. 作業を分割して依頼できる作り
    1-1. データとモデルファイルの分離

成果物

https://www.youtube.com/watch?v=oF9HPuQhpe8

既存のBlenderの拡張

CSVファイルの読み込み

定数リストから動的リストへコードを変更

元々はソースコードで固定指定だったのでtupleでしたが、list指定に切り替えます。

変更前
locations = (
    (0, 0, 2),
    (0, 3, 4),
    (0, 3, 8),
    (0, 13, 8),
    (5, 13, 8),
    (5, 23, 8),

)
変更後
locations = []
ファイルの絶対パスを指定して、CSVアニメーションを実行
with open("D:\\devellop\\DigitalPortal\\ContentsArtChallenge\\technicalartchallenge\\script\\animation.csv", newline='') as animationcsv:

    boxreader = csv.reader(animationcsv, delimiter=",")
    # x,y, zの順番でデータを設定
    for row in boxreader:
        locations.append([int(row[0]), int(row[1]), int(row[2])])

開発環境

blender2.91

参考資料

blender2.90のapi資料

https://wiki.blender.org/wiki/Reference/Release_Notes/2.90/Python_API

python標準のCSVモジュールの説明

https://docs.python.org/ja/3/library/csv.html?highlight=csv

今回の開発をしたblenderのコミットログ

blenderの2.91で確認をしています。

GitHubで編集を提案

Discussion