LoginSignup
2
2

More than 3 years have passed since last update.

【Blender】マテリアルアニメーションのキーフレームをcsvから読み込んで登録

Last updated at Posted at 2020-08-02

やること

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]))#メタリックについて、改めてキーフレーム設定
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2