Utilizator:
Parola:
Am uitat parola... | Cont nou!


Articole Resurse Echipe Competiții Proiecte Forum DevBlogs Locuri de muncă GDROMag Issue#1 GDROCon 2007

 
Forum » Programare » Grafică » integrare caracter




Pagina 1 din 1 [ 1 ]

Mesaj Info autor
    Postat la 24 Jun 2008 19:01:07    Subiect: integrare caracter
boboS info:

boboS:

Am un caracter animat care fuge pe un teren. El este intr-o capsula care defapt ea fuge iar caracterul are aceeasi pozitie ca ea si doar da din picioare. In fine. Ideea e ca oricat as incerca tot intra picioarele in pamant la deal sau daca nu da impresia ca leviteaza putin.

Am incercat asa: Un ragdoll se misca dupa skeletul anumatiei. Adica pozitia picioarelor ragdollului e aceeasi cu cea a meshului cand e animat dar ragdollu e afectat si de fizica adica de teren. Am incercat ca atunci cand ragdollu atinge pamantul sa se opreasca (asa face de la fizica sa nu intre in pamant) iar atunci si matricea de transfrmare la animatie sa fie controlata de ragdoll. Am incercat doar sa afectez matricea (sa o opresc sau sa inmultesc cu o translatie in sus) dar iese o foarte mare varza vizuala. Opriri bruste, cateodata parca face crize de sare picioru in toate partile si animatia nu e nici pe departe smooth.

Sa continui asa sau altfel? Oare sa incerc sa animez picioarele doar cu forte in engineul de fizica? Ar fi greu si creca nici CPU-ul nu ar fi prea fericit. As putea sa inregistrez o simulare de fuga in PhysX si sa vad ce forte s-au folosit (care le misc cand inregistrez)dar ar fi munca de titan.

"Noi ne facem ca muncim , ei se fac ca ne platesc"


Status:
Înregistrat pe:
03 Oct 2006 15:53:21
Vârsta: 26 ani
Mesaje: 961
Locatie: Galați
Programator

 
    Postat la 24 Jun 2008 19:19:51    Subiect: < fara subiect >
Dark info:

Dark:

Iti trebuie un IK pentru picior. In varianta simpla, la fiecare frame pui piciorul unde vrea animatia, calculezi daca se intersecteaza cu terenul si daca da muti effector-ul pe teren. Un IK cu originea la sold si effector-ul la talpa se ocupa de pozitionarea genunchiului astfel incit sa ai o pozitie cit de cit naturala pentru picior cu talpa pe teren. Daca ai un joint in plus pentru degetul mare, il scoti si p-ala din teren daca penetreaza si rotesti corespunzator joint-ul din calcii, ca sa nu intre cu talpa prin pamint cind sta pe un deal (daca dealul e abrupt tot arata nenatural, da' mai bine decit sa treaca prin teren).

In varianta mai complicata faci un neam de retargeting la animatie. Trebuie sa stii key-urile din animatie in care talpa atinge pamintul (adica sa le marcheze animatorul), calculezi in avans unde o sa pice urmatorul pas, iei inaltimea terenului de acolo si scalezi animatia astfel incit sa se produca intre inaltimea de la pasul curent si inaltimea de la pasul urmator. Arata mai natural decit corectia chioara la fiecare frame pentru ca ajusteaza toata animatia, nu se trezeste brusc ca in mijlocul pasului ai trecut prin teren. O bruma de detalii incepind din slide-ul 22 din prezentarea asta.

Ambele solutii se folosesc destul de mult in jocuri. Daca terenul nu e foarte accidentat scapi cu solutia mai simpla, dar daca ai variatii mari de inaltime pe distante mici arata aiurea.

"Am crezut ca esti ceva mai avansat" - Nekitu, 2008 A.D.
Autobaza


Status:
Înregistrat pe:
12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 740
Locatie:
Programator

 
    Postat la 24 Jun 2008 20:13:11    Subiect: < fara subiect >
boboS info:

boboS:

Deci in concluzie la partea a doua in functie de teren modific mai mult sau mai putin translatia matricii osului in jos, (toata translatia piciorului, lungimea cat misca osu pana la teren)/ (frameuri) = matricea pe frame (sau cu cat modific indicii de translatie) ?Doar ca si celelalte oase trebuie sa le modific daca il misc pe asta da nu mi se pare imposibil. la varfu degetelor o sa pun o sfera ff mica sa nu intre laba in pamant(avand in vedere ca laba piciorului nu e animata).
Cred ca mai problematic ar fi sa calculez distanta chiar din punctul ala unde va calca..

Ultima editare efectuată de boboS pe 24 Jun 2008 20:40:09; 1 editări în total

"Noi ne facem ca muncim , ei se fac ca ne platesc"


Status:
Înregistrat pe:
03 Oct 2006 15:53:21
Vârsta: 26 ani
Mesaje: 961
Locatie: Galați
Programator

 
    Postat la 25 Jun 2008 01:01:54    Subiect: < fara subiect >
boboS info:

boboS:

Btw Granny are suport pentru asa ceva?

LE: $12,500.00 OMFG NEVERMID!!!1

Ultima editare efectuată de boboS pe 25 Jun 2008 01:03:38; 1 editări în total

"Noi ne facem ca muncim , ei se fac ca ne platesc"


Status:
Înregistrat pe:
03 Oct 2006 15:53:21
Vârsta: 26 ani
Mesaje: 961
Locatie: Galați
Programator

 
    Postat la 25 Jun 2008 11:31:51    Subiect: < fara subiect >
Dark info:

Dark:

Pentru metoda a doua trebuie sa ai un canal in animatie in care artistul spune cit de departe e talpa de sol (0 = pe sol, 1 = maxim de departe). La runtime folosesti canalul asta pentru a remapa miscarea verticala a calciiului intre inaltimile date de teren. Daca nu ai canalul asta poti aplica prima metoda, dar nu-ti va pune picioarele pe sol cind cobori o panta, doar le va scoate din teren cind urci.

Pentru a recalcula rotatiile genunchiului si soldului trebuie sa aplici un algoritm de IK. Pentru cazul asta cu doua oase exista solutii analitice, sau poti folosi un algoritm mai generic, cum ar fi Cyclic Coordinate Descent sau chestiile alea din MD pe care le-a dezgropat Chris Hecker.

O prezentare foarte buna a diverselor metode de a face IK se gaseste pe pagina lui Hecker.

Pentru niste idei de implementare (cum sa marchezi animatiile, cum sa calculezi rotatia oaselor dupa ce ai directia data de solver, etc.) vezi pe-aci. E o metoda ceva mai simpla decit remapping-ul despre care vorbeste Tom Forsyth, dar mai buna decit simpla rezolvare a intersectiilor.

PS: evident ca Granny poate face asta, e cea mai dotata biblioteca de animatie care exista.

"Am crezut ca esti ceva mai avansat" - Nekitu, 2008 A.D.
Autobaza


Status:
Înregistrat pe:
12 May 2007 20:12:30
Vârsta: ? ani
Mesaje: 740
Locatie:
Programator

 
    Postat la 25 Jun 2008 12:54:00    Subiect: < fara subiect >
c0mas info:

c0mas:

IK e una dintre chestiile pe care multi studenti le considera degeaba la ora de robotica, dar care totusi are multe aplicatii in gaming.

Asta era metoda generica pe care o predau oamenii:
http://www.google.com/search?hl=en&q=denavit+hartenberg

Ultima editare efectuată de c0mas pe 25 Jun 2008 12:54:30; 1 editări în total

Do what you love, money will follow!


Status:
Înregistrat pe:
19 Apr 2007 13:41:50
Vârsta: 35 ani
Mesaje: 337
Locatie: Bucuresti
Programator
Dream Builder Studios
 

Pagina 1 din 1 [ 1 ]


Server time: 02:38:52 24.05.2012



[ Termeni si conditii | Contact | F.A.Q. | Funny Pictures ]

© 2006 - 2012 Copyright 7thFACTOR Entertainment - All rights reserved