Is it possible to have same (single) material object applied to different objects (mesh or curves) but have different key frames for each (mesh or curve)?
I want to fade-in my text (which is curve) like a window so the text appear fade-In gradually character wise. I have created a material slot, added TransparentBSDF and MixShader Node, but separate Material slot for each Character (curve) because each character fade-In start time index is slightly greater than the previous.
Currently I am doing this using Python Code (Blender 2.83)
fade_objects = bpy.context.selected_objects
frame_dif = 2
frame_length = 40
frame_start = 0
fade_frame_start = frame_start
fade_frame_end = fade_frame_start + frame_length
for fade_object in fade_objects:
# Create Material Object and Apply to character curve
mat = bpy.data.materials.new('Fade')
fade_object.data.materials.pop()
fade_object.data.materials.append(mat)
mat.use_nodes = True
mat.blend_method = 'BLEND'
nodes = mat.node_tree.nodes
links = mat.node_tree.links
#Creating New Nodes
node_transparent = nodes.new('ShaderNodeBsdfTransparent')
node_mixshader = mat.node_tree.nodes.new('ShaderNodeMixShader')
node_bsdf = nodes['Principled BSDF']
node_matout = nodes['Material Output']
#Linking Nodes
links.new(node_transparent.outputs['BSDF'], node_mixshader.inputs[1])
links.new(node_bsdf.outputs['BSDF'], node_mixshader.inputs[2])
links.new(node_mixshader.outputs['Shader'], node_matout.inputs['Surface'])
#Adding Key Frame for MisShader Node (Fade In)
node_mixshader.inputs['Fac'].default_value = 0
node_mixshader.inputs['Fac'].keyframe_insert('default_value', frame = fade_frame_start)
node_mixshader.inputs['Fac'].default_value = 1
node_mixshader.inputs['Fac'].keyframe_insert('default_value', frame = fade_frame_end)
#Add frame difference for next character for sliding effect
fade_frame_start += frame_dif
fade_frame_end += frame_dif
This code create n number of material slots as my n number of curves. Can I do this with single Material Object with different values for MixShader node for each curve?