Community › Forum › Coding › Script, addon e temi › Come animare la traslazione di un vertice di una mesh triangolare? Ricerca per: Taggato: script Questo topic ha 1 risposta, 2 partecipanti ed è stato aggiornato l'ultima volta 3 anni, 11 mesi fa da pKrime. Stai visualizzando 2 post - dal 1 a 2 (di 2 totali) Autore Post 8 Ottobre 2020 alle 9:01 #831876 DavideMembro @davide1623 Ho una mesh triangolare e ho utilizzato uno script in Python per traslare un suo vertice (condivido con voi tutti gli script utilizzati, in caso possa essere utile a qualcuno). Il mio dubbio è il seguente: come posso creare un’animazione per questa traslazione utilizzando solamente script Python? import bpy obj = bpy.context.object edge = obj.data.edges[0] #An edge, the first one vIndex1 = edge.vertices[0] #Get the indices of the vertices of this edge vIndex2 = edge.vertices[1] v1 = obj.data.vertices[vIndex1] #Get the corresponding vertices v2 = obj.data.vertices[vIndex2] vCoord1 = v1.co #Get their coordinates vCoord2 = v2.co edgeVector = vCoord2 – vCoord1 #The vector formed by these two vertices edgeVector.normalize() #So that it has 1 unit length distance = 0.5 #Say we want to move v2 of this distance of 0.5 units v2.co += edgeVector * distance #Translate the vertex # Create a triangle mesh import bpy # Initialize our vertices vert=[(0,0,0),(10,0,0),(5,10,0)] # Add face face=[(0,1,2)] # Create mesh and related object my_mesh=bpy.data.meshes.new(“Triangle”) my_obj=bpy.data.objects.new(“Triangle”,my_mesh) # Set object location in 3D space my_obj.location = bpy.context.scene.cursor.location # make collection new_collection = bpy.data.collections.new(‘new_collection’) bpy.context.scene.collection.children.link(new_collection) # Link object to the scene collection new_collection.objects.link(my_obj) # Create object using blender function my_mesh.from_pydata(vert,[],face) Effettuare il login per mettere i like 23 Novembre 2020 alle 18:37 #835115 pKrimePartecipante @pkrime1305189309 ciao! Vuoi ottenere un’animazione che possa essere mandata in play ed eventualmente renderizzata, o semplicemente visualizzare una transizione quando esegui lo script? Nel primo caso potresti aggiungere la tua funzione all’handler frame_change_pre Nel secondo caso puoi impostare un ciclo che faccia progredire la posizione del vertice lungo la media tra origine e destinazione, richiamando sleep e update a ogni iterazione Effettuare il login per mettere i like Autore Post Stai visualizzando 2 post - dal 1 a 2 (di 2 totali) Devi essere connesso per rispondere a questo topic. Accesso Nome utente: Password: Mantienimi connesso Accesso