Community Forum Supporto Utenti Supporto Sistemi particellari, fisica e simulazioni non-sense rigid bodies su scala ridotta (e molto altro)

Stai visualizzando 21 post - dal 1 a 21 (di 21 totali)
  • Autore
    Post
  • #838998
    joaulo
    Partecipante
    @joaulo

    Dopo qualche mese di pausa ho deciso di ritornare a concentrarmi su alcuni progetti in sospeso e mi sono scontrato subito su un problema… più problemi assurdi. Quando Blender inizia a fare così divento matto. Non so nemmeno da dove cominciare perchè i problemi sono molteplici, quindi partiamo dalla meta finale: voglio simulare un oggetto piccolo e cavo che si rompe ed i frammenti cadono sul piano sottostante.

    Detta così sembra semplice, ho fatto decine di volte tutorial di cubi che si infrangono qua e là eppure stavolta è tutto diverso.

    Ecco quello che ho provato a fare: ho creato un oggetto qualsiasi per i test, in questo caso una sfera con uno spessore quindi con interno cavo:

    ho impostato le unità di Blender in cm e la sfera ha diametro 2cm.

    Ho utilizzato l’addon “cell fracture” per ottenere i frammenti della sfera e qui iniziano già i primi problemi. Nonostante tutte le prove sui parametri non sono riuscito a far convergere la simulazione e alla fine non sono riuscito ad ottenere i frammenti (non abbastanza da ricostruire la sfera).

    Però se scalo la sfera di 100 volte e quindi la faccio diventare 2m di diametro ecco che cell fracture funziona senza problemi:

    anche se non tiene assolutamente assolutamente conto dello spessore e mi riempie l’interno della sfera di frammenti come se fosse piena:

    Ho pensato che la colpa fosse della forma (non gli piacciono le sfere?!?) quindi ho riprovato con un cubo e come nel caso della sfera ho creato uno spessore sulle pareti e quindi cavo all’interno. Anche in questo caso con un cubo di 2cm cell fragment non converge ma con un cubo di 2m ce la fa e mi crea frammenti corretti, mantenendo la cavità interna:

    Diciamo pure che non ho capito perchè la sfera non va bene e il cubo invece si. La cosa è già preoccupante perchè la forma finale su cui vorrei applicare l’effetto non sarà semplice come un cubo ma… diciamo che non siamo ancora arrivati nemmeno al problema principale.

    Quindi il problema principale: ho un oggetto frammentato appoggiato su un piano. I frammenti sono rigid body attivi. Il piano è un rigid body passivo. Faccio partire la simulazione e i frammenti esplodono in tutte le direzioni come una bomba.

    Prova e riprova, tocco tutti i parametri e non riesco a fare nulla esplode sempre e comunque invece di crollare al suolo.

    Allora ho provato a ripartire dalle basi, ho creato lo stesso cubo di 2m, questa volta pieno (senza spessore e cavità), l’ho frammentato, ho applicato i rigid body e tutto funziona come dovrebbe… nessuna sorpresa, tutto perfetto.

    Allora ho provato con una sfera piena e poi con una cava.

    Poi con un cilindro pieno e con uno cavo.

    E il risultato è sempre lo stesso, il solido pieno si comporta correttamente, quello cavo esplode sparando frammenti ovunque.

    E per aggiungere la ciliegina sulla torta non è finita qui. Se prendo la simulazione del cubo solido pieno di 2m che funziona correttamente e scalo tutti i frammenti (prima di far partire la simulazione mentre sono ancora a forma di cubo) alla dimensione di 2cm, ricalcolo la simulazione e il comportamento è assurdo… i pezzi cadono in verticale e si fermano sul piano e non si muovono o ruotano nella caduta.

    A questo punto dopo tutto il giorno a fare prove getto la spugna (per oggi) e spero che qualcuno mi illumini la via.

    Prima di chiudere, ci tenevo ad aggiungere che non ho sperimentato a caso e non ho scritto qui per pigrizia, ho letto la documentazione, ho guardato seguito e provato decine di tutorial e ho anche cercato nei vari forum/social per problemi simili… ma non ho trovato nulla di utile.

    Non so se c’è un Obi Wan Kenobi tra di voi ma… è la mia ultima speranza! 😉

    #839002
    Steamboy
    Partecipante
    @divanAssociato

    Trovi sempre argomenti interessanti 😀

    Applicando il cell fracture senza modificare niente ho ottenuto questo!

    #839015
    joaulo
    Partecipante
    @joaulo

    Grazie @divan per il supporto sei sempre presente! :+1:

    Anche io ho la sensazione di infilarmi un po’ troppo spesso nei guai con Blender ma ti garantisco che non lo faccio apposta, anzi quando pianifico le attività cerco sempre la strada più semplice… è che poi quando le metto in pratica si complica tutto… 😥

    Ora però non capisco…. il tuo funziona perfettamente ed è quello che vorrei ottenere. Vedo che hai usato Blender 2.90.1 mentre io la 2.91.0… che sia lì la differenza?

    Provo subito con una versione più vecchia.

    La tua sfera che diametro ha?

    (e comunque che rabbia… ci son stato dietro tutto il giorno e non sono riuscito a farlo funzionare e tu te ne esci così come se bastasse uno schiocco di dita? Pentiti. :rage:  :sleepy: )

    #839020
    joaulo
    Partecipante
    @joaulo

    mmm… ok allora effettivamente c’è una differenza tra la 2.91 e quelle prima… ho utilizzato la 2.83.10 perchè l’avevo già sul PC, con la 2.83 riesco a frammentare la sfera cava, con la 2.91 no.

    Però rimane il problema della simulazione, a me continua ad esplodere:

    Proverò a rifare tutto da capo (ho usato il file che avevo generato con la 2.91) e vediamo se cambia qualcosa.

    #839027
    joaulo
    Partecipante
    @joaulo

    La stessa scena ricreata da zero in 2.83 con le impostazioni di default ha una simulazione ancora diversa… a metà tra esplosione e caduta:

    continuo a non capirci nulla.

    In ogni caso anche con la 2.83 se la sfera la faccio di 2cm cell fragment non riesce a frammentarla.

    E se prendo i frammenti della sfera di 2m e li scalo a 2cm, ricalcolo il bake e ottengo il big bang con la creazione di un campo di asteroidi che fluttuano sul piano:

    Per quanto il momento della creazione dell’universo sia emozionante… non è quello che volevo ottenere  :sleepy:

    #839029
    Steamboy
    Partecipante
    @divanAssociato

    Premetto che ho fatto solo due test tra il lasso di tempo che intercorre fra quando Alessandro Passariello chiude la live di Blender Italia e si attende il collegamento di Francesco Andresciani , comunque la sfera è due metri come la crea Blender e funziona, mentre se creo la simulazione da una sfera piccola di 2 cm di diametro  si incasina tutto, ho ovviato creando i pezzi dalla sfera grande e poi scaldandola prima di fare partire la simulazione funziona…. Ma la simulazione risulta troppo veloce, i pezzi cadono immediatamente a terra, un po’ troppo veloce!

    #839030
    Steamboy
    Partecipante
    @divanAssociato

    Sto pensando a una cosa, forse non è la versione di Blender ma potrebbe essere la sfera la causa del fatto che la tua sfera sembra essere piena e non cava… Mi spiego io quando ho creato la sfera, in edit mode ho copiato la sfera stessa e quindi l’ho scalata, ma poi ho ribaltato le normali della sfera interna, se tu non le avessi ribaltate Blender potrebbe sempre considerare una unica sfera!

    #839035
    joaulo
    Partecipante
    @joaulo

    Interessante… proverò così. Io ho creato lo spessore in edit mode facendo prima estrudi e poi scala…

    Proverò anche a ricalcolare le normali, anche se mi sembra di essere ancora parecchio lontano dalla soluzione.

    Grazie mille per il supporto!

    #839054
    joaulo
    Partecipante
    @joaulo

    ciao @divan ti confermo che facendo attenzione alle normali riesco a frammentare correttamente la sfera grande cava anche con la 2.91. Non mi spiego perchè il ricalcolo automatico delle normali funzioni diversamente a seconda dei casi ma è il problema minore.

    Rimane il fatto che mi è impossibile non far esplodere la sfera e ottenere una simulazione decente su piccola scala (qualche centimetro).

    Continuerò a fare prove, perchè purtroppo è un passaggio fondamentale del mio progetto e non posso aggirarlo, in qualche modo devo risolvere.

    #839076
    joaulo
    Partecipante
    @joaulo

    Torno sul problema a valle di molte altre prove 🙁

    Se creo un file ex-novo con una sfera (dimensione di default) applico cell fracture (impostazioni di default) applico rigid bodies (impostazioni di default) la simulazione è corretta. A meno dei frammenti sul piano che continuano a “vibrare” ma questo è un problema noto e si risolve modificando alcuni parametri.

    E qui sembra finalmente isolato il problema di fondo: appena tocco qualsiasi cosa, la sfera invece di precipitare inizia ad esplodere. E dopo che si innesca questa situazione, non c’è NULLA che posso fare per ripristinare la situazione precedente 🙁 quindi anche se rimetti i parametri iniziali la situazione non torna come prima e la sfera continua ad esplodere.

    Se chiudo Blender, lo riapro e riparto con un file nuovo tutto si ripete come appena descritto.

    Allora mi sono concentrato sul rigid body world e ho notato qualcosa di strano… quando clicco su “Delete All Bakes” ho l’impressione che non succeda nulla. Il conteggio degli eventuali frame in cache rimane inveriato e non si riazzera.

    Ho fatto una controprova, ho eliminato il rigid body world, ho riassegnato i ridig body alla sfera e tutto è tornato a funzionare. Quindi il problema sembra legato in qualche modo alla cache dei rigid body che dopo il primo calcolo non viene pulita e con modifiche successive dei settaggi si sporca ed impazzisce.

    Il problema è che non si può fare bake su file e non so come fare a ripulire prima di fare prove e modifiche… in questa situazione mi diventa impossibile regolare i parametri della simulazione!

    PS: tutte queste prove le ho fatte in Blender 2.91, proverò con la LTS per vedere se si comporta allo stesso modo.

    #839081
    Steamboy
    Partecipante
    @divanAssociato

    Ciao joaulo, ho fatto anch’io altri test, ma non sono andato oltre quello che hai fatto tu, mi pare comunque di aver letto da qualche parte di qualcuno che affermava che Blender lavora bene con la fisica solo con dimensioni grandi! Continuo a seguirti comunque 😃👍

    #839084
    joaulo
    Partecipante
    @joaulo

    Non ti sbagli @divan 🙁

    Ho trovato questo stralcio nel manuale di Blender:

    la parte evidenziata è piuttosto chiara in merito… quindi ho un problema di fondo dovendo animare frammenti piuttosto piccoli, molto sotto i 20cm. Ho provato con margin 0 e in effetti migliora un po’. Ora capirò cosa fare.

    Un piano drastico potrebbe essere portare tutto il progetto a Blender Units: “None” e considerare una blender unit = 1cm invece che 1m, ma dovrei scalare tutto il progetto, asset, telecamere, luci, keyframes, ecc.ecc. di 100 volte con probabili effetti indesiderati… è un sacco di lavoro in più imprevisto.

    Rimango comunque perplesso per il problema della cache che non si cancella. Già quello mi aiuterebbe a fare delle prove sensate senza dover ripartire da capo ad ogni modifica. Nel manuale di Blender relativamente alla cache nel Rigid Body World leggo:

    Questo è il manuale della 2.91 ma io non ho nè Free Bake nè Free All Bakes. Ho solo Delete All Bakes che non sembra funzionare… 🙁

    #839190
    joaulo
    Partecipante
    @joaulo

    Aggiornamento sulla tematica: ho rinunciato per ora a lavorare in piccolo, non arrivo da nessuna parte… forse sul piccolo le leggi della fisica di Blender non valgono? (entriamo nel campo quantico?)

    Però ho migliorato l’approccio lavorando in grande:

    1. il cell fracture ha un parametro margin che mi ha ingannato perchè di default sembra settato a zero, invece cliccandoci sopra si scopre che di default è 0.001

    2. una volta frammentato l’oggetto, applico rigid body active e di default sembra che funzioni ma appena tocco qualcosa ricomincia ad esplodere, ma sono passato alle impostazioni Shape: “Mesh” e inizialmente esplode ancora di più ma successivamente regolando il parametro Sensitivity ad un valore inferiore al “margin” utilizzato in cell fracture finalmente non esplode più.

    Spero di essermi spiegato bene, se qualcun altro avesse bisogno di altre info sono a disposizione, nel frattempo marco come risolto il topic anche se non sono riuscito a risolvere il tema principale che era la simulazione su piccola scala, ma pare che per quello almeno per il momento non ci sia soluzione.

    #839226
    globante
    Partecipante
    @globante

    Ciao di solito lavoro con le piccole scale ovvero in millimetri. E la simulazione che hai descritto l’ho fatta con Blender da 2.83 fino alla 2.91 e funziona sempre a quella scala. Il valore di Margin lo tengo settato su 0,04 mm.

    Adesso mi sorge un dubbio, hai tolto alla prima sfera che hai usato per la deframmentazione il rigidbody? Poiche se è attivo e si trova a contatto con gli altri pezzi quelli esplodono.

    #839267
    joaulo
    Partecipante
    @joaulo

    ok… sono sorpreso. Avevo appena gettato la spugna, però non capisco.

    Ti confermo che la sfera di partenza non c’entra, quando la frammento non è un rigid body e la tolgo prima di trasformare in rigid bodies i frammenti.

    Non capisco perchè a te funziona in mm e nel mio file esplode tutto e la simulazione è sbagliata.

    Come mai nel video che hai postato cadono solo alcuni frammenti e non tutti?

    #839273
    globante
    Partecipante
    @globante

    Cadono solo alcuni frammenti in quanto ho reso solo quelli come rigid body per l’animazione. Se ti fa piacere potresti mettere il tuo file a disposizione per darci una occhiata. Magari scopriamo l’arcano 🙂 o magari no.

     

     

    #839284
    joaulo
    Partecipante
    @joaulo

    Il mio file con solo sfera piano e frammenti è di 7Mb e non me lo fa caricare nel sito…

    Ho provato a caricarlo su un altro sito in beta che ho trovato, spero funzioni: https://pasteall.org/media/c/0/c014e709ef00fdbe0f1ae1f6994bc65f.blend

    E grazie per il supporto!

    #839373
    globante
    Partecipante
    @globante

    Ho scaricato il file, e gli ho dato una occhiata. Da quello che ho potuto notare, hai fatto più volte delle prove  con il “Cellfracture” e più volte hai applicato il RigidBody sui vari elementi.

    All’apparenza sembra tutto apposto, ma la sfera continua a “esplodere”. Ci sono diverse cose da comprendere quando si mette in campo la fisica in Blender.

    Prima cosa fondamentale, gli oggetti dopo essere stati scalati devono subire l’assestamento della scalatura tramite la procedura di “applicare la scala”. Operazione banale ma proprio perché ripetitiva è causa di dimenticanza. Se imparassimo a scalare gli oggetti quando si trovano in EditMode, quella fase di assestamento, putrebbe essere evitata e per questo ti rimando ad un contenuto video al seguente indirizzo:

    Seconda cosa, quando applichi un RigidBody ad un oggetto, Blender crea una copia per tutto il mondo ovvero per la scena. E lo trovi come riferimento attivo “RigidBodyWorld” nel pannello “Scene Properties” (dove si fa il Bake per intenderci). Se lo cancelli da quel Pannello,  poi applichi un’altro RigidBody allo stesso oggetto o ad un’altro, Blender crea un’altra copia di RigidbodyWorld ma con un numero affianco “RigidbodyWorld.001”.

    Solo che, sull’oggetto che  aveva ricevuto il primo RigidBody non si è cancellato Blender se lo ricorda e applicando un secondo RigidBody, è come se il tuo oggetto entri in collisione ed esplode.

    Allora la cosa è: a parole diventa molto complicato. Posso illustrarti con un video, come cancellare le operazioni ridondanti e come ripristinare il tuo file (che ripeto non ha nulla di sbagliato), solo che dovresti autorizzami a rendere pubblico il tuo file, in quanto mi servo di un canale Youtube per file video di grandi dimensioni e per aiutare altre persone a risolvere i loro problemi in Blender.

    Fammi sapere. globante.

    #839374
    joaulo
    Partecipante
    @joaulo

    Grazie mille @globante sei stato molto chiaro.

    In realtà avevo capito che il problema fosse proprio un rigid body applicato in precedenza ma non mi è chiaro come fare pulizia (ho fatto un purge all ma non è bastato).

    Se vuoi utilizzare il file fai pure, se farai un video su questo argomento lo guarderò con interesse, mi aiuterà a colmare una lacuna 🙂

    PS: sono consapevole della differenza tra scalare in edit o in object mode e della importanza di applicare la scala e come hai intuito…… dimenticanza 😉

    #839499
    globante
    Partecipante
    @globante

    Come promesso lascio il link al video per i chiarimenti su RigiBody e ripristino del file:


    @joaulo
    ti ringrazio per la tua approvazione sull’uso pubblico del tuo file di riferimento e per avermi dato la possibilità di dedicarmi ad un argomento tanto particolare quanto sconosciuto.

    Buona visione.

     

    #839510
    joaulo
    Partecipante
    @joaulo

    Grazie mille @globante ho guardato il video ed è stato molto istruttivo. Ho capito che probabilmente ho fatto confusione e qualche pasticcio perché essenzialmente la sequenza di passaggi che hai eseguito sono gli stessi che credo in qualche modo di aver fatto anch’io. Temo però di non aver mai fatto veramente pulizia completa prima di ripartire dimenticando probabilmente ogni volta qualcosina portando quindi ogni simulazione successiva alla confusione più totale.

    Domani riproverò sicuramente ad eseguire le operazioni daccapo in sequenza come hai mostrato tu e ti farò sapere se così facendo riesco a risolvere ma non ho dubbi.

    Ho anche imparato qualcosa di nuovo perché non conoscevo la scorciatoia che hai utilizzato per assegnare velocemente i rigid body a tutti i frammenti, io di solito andavo nel menù per selezionare Copy from Active.

    Grazie ancora per la pazienza e per il supporto, a buon render-e!

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