2016-03-23 6 views
1

Ich suche nach einer Möglichkeit, ein neues Material zu erstellen und es auszuwählen, um Knoten in diesem Material zu erstellen und die Werte in diesen Knoten zu animieren. Dies ist der Code, den ich eigentlich haben:Wie kann ich ein Material erstellen, es auswählen, neue Knoten mit diesem Material erstellen und sie animieren?

mat = bpy.ops.material.new() 
mat_nodes = bpy.data.materials['USDiscoMaterial'].node_tree.nodes 

Aber eigentlich mit diesem Code Blender wird das aktuelle Material mit „USDiscoMaterial“ und erstellt eine neue umbenennen aber nicht auswählen. Und wenn ich einen Knoten in diesem Material erstellen möchte?

+0

Für Blender-spezifische Fragen sollten Sie mehr Feedback auf [blender.stackexchange] (http://blender.stackexchange.com) erhalten - möglicherweise finden Sie auch einige Ihrer Fragen dort existieren. – sambler

Antwort

0

Sie können ein neues Material zu erstellen, die Knoten (für Zyklen) verwendet, um mit -

mat = bpy.data.materials.new(name='USDiscoMaterial') 
mat.use_nodes = True 
mat_nodes = mat.node_tree.nodes 
mat_links = mat.node_tree.links 
# a new material node tree already has a diffuse and material output node 
output = mat_nodes['Material Output'] 
diffuse = mat_nodes['Diffuse BSDF'] 

einen neuen Knoten Sie node_tree.nodes.new('type'), wo die Liste der verfügbaren Knotentypen verwenden, um hinzufügen on this page finden. Die meisten Knoten speichern ihre bearbeitbaren Werte in den Eingabesockets, die zum Verbinden von Knoten verwendet werden. Wenn ein Knoten Werte ohne eine Eingabeverbindung hat, können Sie die Eigenschaftsnamen in der API-Referenz für jeden Knoten finden.

noise = mat_nodes.new('ShaderNodeTexNoise') 
noise.inputs['Detail'].default_value = 5.0 
cur_frame = bpy.context.scene.frame_current 
noise.inputs['Detail'].keyframe_insert('default_value', frame=cur_frame) 

Fort das Material, das Sie auch zwischen den Knoten Links hinzufügen müssen arbeiten -

mat_links.new(noise.outputs['Color'], diffuse.inputs['Color']) 

Nach Überprüfung, dass es ein verfügbares Material Schlitz in dem Objekt ist, dass Sie das Material auf das Objekt zuweisen können.

+0

Und wenn ich einen Rauschmodifikator hinzufügen möchte? –

+0

Das gleiche wie ich Ihren [anderen] kommentiert habe (http://stackoverflow.com/questions/36116085/blender-pythonhow-can-i-animate-the-factor-value-in-the-mix-node-with -python/36123834 # comment60021839_36123834) – sambler