Animare le uv (personalizzazione Character)

Stai vedendo 4 articoli - dal 1 a 4 (di 4 totali)
  • Autore
    Articoli
  • #16297

    Qwerty
    Partecipante
    • Veterano
    • ★★
    • Post sul forum 456

    Nel gioco che sto realizzando il giocatore potrà  personalizzare il personaggio con un modesto assortimento di vestiti.

    La mia idea originale era di creare il personaggio e i vestiti come oggetti separati e imparentarli con un’armature comune.

    Al momento di avviare il gioco uno script avrebbe controllato il vestito richiesto e lo avrebbe aggiunto: a questo punto lo scheletro muovendo il personaggio avrebbe mosso anche il vestito.

    Ho fatto la prova ma mi sono accorto che facendo fare all’armatura alcuni movimenti mi uscivano parti del corpo dai vestiti.

    Ho sbagattato un bel po’ con le impostazioni e con i vertex group del vestito, ma non ho trovato modo di lasciare completamente dentro il corpo senza deformare orribilmente il vestito. 😥

    L’unica soluzione che mi è venuta in mente è quella di dipingere il vestito direttamente sul corpo, cambiare qualche coordinata uv e proseguire dipingendo gli altri vestiti. Il gioco dovrebbe poi scegliere le coordinate a seconda della personalizzazione.

    In sintesi: mi occorre sapere come animare le uv dal ge via script… Ma se qualcuno ha idee migliori ben venga!

    Ricordo di aver letto in questo forum qualche tempo fa di un modo per animare le coordinate uv… ma non riesco a trovarlo! 😳

    #184253

    Qwerty
    Partecipante
    • Veterano
    • ★★
    • Post sul forum 456

    Ok, ho trovato il post

    https://www.blender.it/forum/viewtopic.php?f=13&t=14708#p124280

    (Seconda soluzione)

    Dunque, ho capito che usando lo script

    Code:
    def main(cont):
    own = cont.owner
    me = own.meshes[0]

    for i in range(me.getVertexArrayLength(0)):
    v = me.getVertex(0, i)

    # move uv coords
    if ‘U’ in own[‘Dir’]:
    v.u = v.u + own[‘Speed’]
    if ‘V’ in own[‘Dir’]:
    v.v = v.v + own[‘Speed’]

    Si ottiene che le coordinate uv slittano lateralmente o verticalmente a una velocità  impostata.

    Peccato che la mia situazione sia un pelo più complicata… Ho bisogno che lo script cambi la coordinata uv di determinati vertici in determinate posizioni.

    Code:
    for i in range(me.getVertexArrayLength(0)):
    v = me.getVertex(0, i)

    Questa parte dello script seleziona uno alla volta tutti i vertici.

    Ci sono delle funzioni che selezionano i vertici di determinati Vertex Group uno alla volta?

    Forse potrei spostare le coordinate di quei vertici per un certo spazio, a seconda della posizione del vestito di base rispetto a quella del vestito da visualizzare.

    Insomma, inizio ad avere una piccola emicrania :oops:.

    Help!

    #184254

    Qwerty
    Partecipante
    • Veterano
    • ★★
    • Post sul forum 456

    Forse mediante una serie di oggetti separati… un oggetto per le gambe (che possono diventare pantaloni), uno per il torace e le braccia (maglia), uno per i piedi (scarpe)… Ma così corro il rischio che mi si aprano delle “crepe” tra un oggetto e l’altro se piego un’articolazione. 🙄

    Uhm…

    Si impone un esperimento.

    #184255

    Armageddon12
    Partecipante
    • Blenderista
    • Post sul forum 22

    come è andata a finire la discussione sui vestiti?

    sei riuscito a trovare una soluzione comoda, dato che ero interessato anche io a qualcosa del genere?

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

Devi essere loggato per rispondere a questa discussione.