Skip to content

manikin!

manichin 1.1

AGGIORNAMENTO!! migliorato anti-aliasing e aggiunta ombra. ora sì che è figo 🙂

AGGIORNAMENTO!! seguendo il consiglio del grande Paolo Calloni ho evidenziato il punto del manichino che si posiziona dov’è il mouse così da essere più chiaro l’utilizzo del programma. L’idea iniziale era di colorarlo in verde o giallo ma poi il mio daltonismo ha preso il sopravvento e l’ho fatto magenta 😮

Ecco qua il mio ultimo lavoretto! cominciamo con un pò di note sul programma e di seguito il mio solito sproloquio/Post-morten 🙂

 

Come anticipato nel post precedente, questo programma serve a posizionare un manichino 3D, i comandi sono:

Premendo e rilasciando il tasto sinistro del mouse senza muoverlo, selezioni un pezzo. S
e invece premi e muovi il mouse senza rilasciarlo , il programma ruota il pezzo selezionato verso il mouse, in modo da fare combaciare l’estremità opposta al centro di rotazione col mouse, ad esempio: se selezioni la coscia il ginocchio tenderà ad andare verso il mouse. Se ti avvicini al centro di rotazione il pezzo si girerà verso di te (o lontano da te se premi control). Se invece quando clicchi col mouse premi il tasto control (non dopo che hai premuto perché abbiamo appena visto cosa fa’) orienti il pezzo selezionato, questo mi è venuto un po’ male, il concetto sarebbe che ruoti su un piano perpendicolare al pezzo e la parte che era orientata verso il mouse continua ad esserlo mentro lo muovi.

Col tasto centrale e la rotellina del mouse cambi la vista, il tasto centrale ruoti intorno al manichino, con la rotella ti avvicini/allontani da lui, se invece premi control, il tasto centrale serve a spostare il manichino nella vista, la rotella cambia la focale della camera (con un simpatico effetto ottico dovuto al fatto di cambiare la distanza in base al cambio di focale).

Direi che questo è tutto, con F1 cambi la visione dell’help a schermo, con F2 attivi/disattivi le collisioni, anche se sono un po’ sperimentali quelle. In teoria dovrebbe essere possibile definire un altro modello da usare al posto del manichino creato da me, usando un’altro file XML di configurazione, ma è talmente complicato che prefirisco non descriverlo qui, forse scrivero’ qualcosa durante le feste, in caso aggiornerò post e zip.

Ed ora il post-morten! Come si nota dal rendering, questo programma parte dal precedente, per quanto riguarda il rendering. E quella parte non l’ho cambiata per niente, pensavo di vedere come attivare il rendering delle linee col’antialiasing hardware oppure mettere un sistema di illuminazione oppure ambient occlusion così da dare un po’ di spessore al rendering.

Ed invece mi sono concentrato sull’usabilità: questo programma ha cambiato modo di essere usato un po’ di volte mentre lo facevo, è questo il bello di prototipare! l’idea iniziale era di schizzare una linea col mouse (schizzare nel senso di schizzo) e l’arto si posizionava in quella direzione parallelo allo schermo. Implementato questo ho visto che il risultato finale era troppo dipendete dalla camera il che mi costringeva a continue rotazioni intorno al modello per posizionare l’arto come volevo!

Allora ho provato ad implementare un sistema di rotazione, un po’ come se ci fosse un cerchio parallelo alla camera quando premi col mouse, a secondo di quanto muovi il mouse sul cerchio ruoti lungo l’asse della vista, se diminuisci il raggio del cerchio ruota verso di te se lo aumenti ruota allontanandosi da te. E l’idea era: con CTRL schizzi una direzione inizione e poi lo posizioni dove vuoi con la rotazione. Ma questo sitema di rotazione che mi sembrava tanto bello quando l’ho pensato, si è rilevato invece incredibilmente difficoltoso da usare, in più premendo vicino al centro di rotazione dava risultati casuali. Non domo ho fatto che se cliccki vicino al centro di rotazione allora l’arto si orienta verso il cursore come se schizzassi una direzione se clicchi lontano ruota. Questo mi ha portato a capire che io volevo posizionare effettivamente l’altra estremita del pezzo selezionato, come alla fine ho fatto.

Purtroppo ruotando così il pezzo, spezzo e volentieri me lo ritrovavo orientato in modo strano, stavo cercando di capire cosa potesse essere quando ho pensato che la cosa era relativamente importante, visto che sarebbe stato utile potere ruotare il pezzo lungo l’asse che di solito vado a settare cosa abbastanza semplice da implementare anche se non è venuta benissimo. così sono arrivato all’attuale configurazione del tasto sinistro.

Ho quasi subito deciso che il tasto sinistro sarebbe stato per manipolare il modello mentre il centrale per manipolare la vista, fortunatamente la classe che gestisce la cam

era l’ho scritta diverso tempo dà e l’ho dovuta solo adattare, è stato divertente fare il cambio di focale, con questo strano effetto di adattamento.

È stata pure divertente la mia piccola incursione nel campo della fotografia per capire come scrivere la focale in mm. A quanto ho capito questi mm sono la distanza tra la pellicola e la lente, quindi l’angolo di focale dipende dalla dimensione della pellicola! la cosa mi ha davvero stupito, comunque nel mio programma presumo che la pellicola sia alta 24mm (imposto la focale Y quando programmo) per tutti i curiosi la formula è:

Direi che siamo arrivati agli sviluppi futuri, come al solito se il programma piace è probabile che ci lavorerò ancora su, ad esempio stavo pensando di supportare modelli flessibili come questo. oppure di limitare di più il movimento di alcuni pezzi così da potere supportare modelli come questo 🙂

Sarebbe bello potere importare delle immagini con un sistema di camera-match e salvare l’attuale stato per poterlo riusare o salvare l’immagine senza dovere fare stamp 😀

Ma coma ho già detto è solo un prototipo, però direi che alla fine si posiziona abbastanza bene il manichinino, la posizione “cagante” l’ho fatta davvero in 2minuti, ed lo scopo era proprio definire in fretta posizioni.

All’ultimo ho pensato di che le collisioni sarebbero state utili, quindi ho provato ad implementarle, purtroppo ci sono dei problemi col ritorno indietro in caso di collisioni e col mio pessimo modello, visto che attivandole il gomito piega al massimo di circa 80� 🙂 .

Probabilmente questo è il mio ultimo post dell’anno, quindi se hai letto fino a qua ti meriti davvero tanti auguri per un felice 2009.

5 Comments

  1. admin admin

    Ops… corretto il link 🙂

  2. Fabio Cannamela Fabio Cannamela

    Perry sei mitico
    come sempre.

  3. nawoa nawoa

    This is very interesting; It’s rather buggy currently but shows a lot of potential for sure!

  4. admin admin

    buggy? where? it is so simple that is difficult it has bug….

    The only think that i don’t like very well is that when “we enter” in the rotation sphere the angle does a jump, but it is because the angle is varying very quick for high value of cosine.

    Anyway, thank you very much for trying 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

*