Community Forum Coding Script, addon e temi Come animare la traslazione di un vertice di una mesh triangolare?

Taggato: 

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #831876
    Davide
    Membro
    @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)

     

    #835115
    pKrime
    Partecipante
    @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

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.