#やること
Blenderの、マテリアルアニメーションのキーフレーム設定を、画面で直接行うのではなく、時間と色を指定したcsvファイルをスクリプトで読み込んで実行します。
以下では、初期画面に出てくる立方体のうちの2面に、新たにマテリアルup,sideを貼った状態で、その2つのマテリアルの各々へ、色とメタリックの変更を行います。
読み込むファイルは、Cドライブ直下にcsvフォルダを作り、その下にlist.csvを置く設定にしています。
Blenderのマテリアルアニメーションのキーフレーム機能については、Benjamin『Blender2.8 3DCG スーパーテクニック』(ソーテック社)のp376を参照してください
#環境
Blender2.83
csvファイルの各項目
マテリアル名,キーフレーム,RBG値のR,RBG値のB,RBG値のG,アルファ値,メタリックの値
#csvファイル
list.csv
up,1,0.800000, 0.000000, 0.000000, 1.000000, 0.0
up,50,0.000000, 0.800000, 0.000000, 1.000000, 0.0
up,100,0.000000, 0.000000, 0.800000, 1.000000, 1.0
side,1,0.000000, 0.800000, 0.000000, 1.000000, 0.0
side,50,0.000000, 0.000000, 0.800000, 1.000000, 0.0
side,100,0.800000, 0.000000, 0.000000, 1.000000, 1.0
#スクリプト
import bpy
import csv
import os
with open("C:/csv/list.csv","r") as f:#Windowsの場合のパスの書き方
reader = csv.reader(f)
for row in reader:
#色の指定。inputs[0]へ
bpy.data.materials[row[0]].node_tree.nodes['Principled BSDF'].inputs[0].default_value[0] = float(row[2])
bpy.data.materials[row[0]].node_tree.nodes['Principled BSDF'].inputs[0].default_value[1] = float(row[3])
bpy.data.materials[row[0]].node_tree.nodes['Principled BSDF'].inputs[0].default_value[2] = float(row[4])
bpy.data.materials[row[0]].node_tree.nodes['Principled BSDF'].inputs[0].default_value[3] = float(row[5])
bpy.data.materials[row[0]].node_tree.nodes['Principled BSDF'].inputs[0].keyframe_insert(data_path="default_value",frame=int(row[1]))#色を指定した後で、そこへキーフレームを設定。csvの項目の並び順とは異なる
#メタリックの指定。inputs[4]へ
bpy.data.materials[row[0]].node_tree.nodes["Principled BSDF"].inputs[4].default_value = float(row[6])
bpy.data.materials[row[0]].node_tree.nodes['Principled BSDF'].inputs[4].keyframe_insert(data_path="default_value",frame=int(row[1]))#メタリックについて、改めてキーフレーム設定