Rotazione oggetti

Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
  • Autore
    Articoli
  • #15076

    mikilake92
    Partecipante
    • Blenderista
    • Post sul forum 34

    Buoooooooooooooongiorno e tutti,

    Mi sto cimentando in un remake di avatar (il gioco). 😯 😯 😯

    Non pensate a cose assurde, niente livelli niente punteggi, solo on piano modellato, qualke albero low poly, tante foglioline, tanta vegetazione un pò ovunque e delle belle texture.

    Sono però incappato in un problemino,mi sono accorto che nel gioco (quello della ubisoft), i ciuffi d’erba si muovono in contemporanea con la camera, in modo che i piani rimangano sempre perpendicolari a quest’ultima.

    Provando però ad applicare un constraint “copia rotazione” al piano in modo che seguisse la camera, una volta avviato il gioco il piano rimane immobile (pur muovendo la camera con i mattoni logici).

    non vorrei intrapprendere la via della programmazione perchè non so una cippa, ma mi sembra l’unica strada….per ora.

    Spero in un vostro aiuto.

    PS: se qualcuno volesse provare in python, il piano dovrebbe seguire solo la rotazione della camera, e solo l’ungo l’asse Z globale. (a 360° ovviamente).

    Ancora grazie.

    #175774

    GiganteBaba
    Partecipante
    • Blenderista
    • Post sul forum 122

    sinceramente non ho capito molto, so solo che pochi giorni fa mi serviva cambiare la rotazione di un componente del mio gioco ad un certo grado ed ho scritto il seguente script:

    Code:
    from Blender import Mathutils
    armature = GameLogic.getCurrentScene().objects[“OBArmaturePlayer”]

    obj=armature
    tempMatrix = Mathutils.Matrix(obj.localOrientation[0],obj.localOrientation[1],obj.localOrientation[2])

    # transpose matrix and convert it to euler

    euler = tempMatrix.transpose().toEuler()

    # get the angle in Y axis (you can choose your prefered axis
    #print euler.x
    #print str(euler.x) + “-“+ str(euler.y) +”- “+ str(euler.z)

    euler.x=0.0
    euler.y=0.0
    euler.z=180.0
    armature.localOrientation=euler.toMatrix()

    #print str(euler.x) + “-“+ str(euler.y) +”- “+ str(euler.z)
    #print euler.toMatrix()

    I valori euler.x, euler.y, euler.z dovrebbero essere quelli presenti nella funzionalità  Object/Trasform Properties (oppure premi N) e nel camp RotX, RotY e RotZ.

    Potresti prendere i valori di euler.x ecc dalla camera ed applicarli a quello che deve ruotare. Che il python sia con te insomma. :mrgreen:

    Non è uno script perfetto, ci sono ancora i miei commenti e gli output commentati per il mio debug (i vari print). 🙄

    #175775

    mikilake92
    Partecipante
    • Blenderista
    • Post sul forum 34

    grazie per lo script,ora lo testo e poi t dico 🙂 🙂

    grazie ankora 🙂

Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)

Devi essere loggato per rispondere a questa discussione.