Zaloguj się, aby obserwować  
querkis

To, czego rynek gier komputerowych potrzebuje najbardziej

202 postów w tym temacie

Dnia 17.07.2008 o 21:36, k13 napisał:

Z tego co pamietam, to właśnie głównie w tych aplikacjach do tworzenia grafiki 3D animuje
się modele, a następnie exportuje do silnika :P

No wlasnie nie, mozna tak robic ale jest metoda animowania calego box mesha w silniku, i jest ona prostsza bo nie masz wtedy problemu z timingami. Nie napisalem ze nie robi cie tego w aplikacjach 3d tylko ze robienie w silniku jest prostsze.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zaciekawiłeś mnie ^^ ... Mógłbyś coś więcej powiedzieć o tym animowaniu w(na) silniku ?
W jakim sensie nie ma problemów z timingiem ? Nie ma timeline''a ?
I które silniki mają taką opcje ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Widziales moze w jakims MMO jak NPC nagle pojawial sie wlasnie w T-pose? Dzieje sie tak szczegolnie jak server jest zlagowany, wlasnie wtedy NPC ktory powinien respnac pojawia sie ale silnik gry nie jest w stanie go zanimowac bo ma desynch z serverem. Te tryb animacji postaci stosuje sie wlasnie w grach MMO, w grach singleplayer nadal stosuje sie tradycyjny system animacji przy pomocy programow graficznych. Natomiast sprawa jest inna kiedy trzeba synchronizowac animacje pomiedzy wieloma klientami na raz, przeciez nie moze tak byc ze np. Ty na swoim kompie juz machnales mieczem, obciales komus glowe a on nawet nie widzi zadnej Twojej akcji. Wiesz, nie zaglebialem sie dokladnie w to, natomiast wyjasnial mi to moj kumpel ktory jest programista i wielkim fanem MMO. Jego praca mag. nawet dotyczyla protokolow sieciowych wykorzystywanych w MMO. W kazdym razie zrobilismy kiedys jakas prosta postac w 3dmax, on to wrzucil do jakiegos unigine czy innej nebuli i mi tlumaczyl. Mysle ze trzeba by podrazyc temat troche bardziej. Ale spojrz np. na mozliwosci takiego Unigine:

# Mesh (static geometry)
# Dynamic mesh (generated on-the-fly)
# Skinned mesh (bone-based animation) with support of animation blending
# Morphing mesh (key frame animation) with support of animation blending

Albo na takiego Torque:
Incorporate animated models with ease using Torque Game Engine''s mesh engine animation system.
# Allows for the use of animated multi-bone skeletons for dynamic, flexible character actions with a high level of detail.
# Dynamic projected shadow maps.
# Mesh vertex deformation animation.
# Support for multi-layered animation.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Podlubalem glebiej. To jest Skeletal Animation i polega na tym ze masz mesh z bones i vertexami z wagami. Animujesz to na przyklad, surprise surpise, przy pomocy directx w realtime. Dlatego dziala to glownie w MMO kiedy silnik musi reagowac na zmiany wprowadzane przez graczy a nie predefiniowane zachowanie mobow.
Zreszta OGRE engine tez to ma:
Skeletal animation, including blending of multiple animations and variable bone weight skinning
http://www.ogre3d.org

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

>># Mesh (static geometry)
zwykła nieruchoma bryła :)

>># Dynamic mesh (generated on-the-fly)
ubrania bądź liny powiewające na wietrze, czy liście w crysis''ie reagujące na wiele czynników występujących w grze =)

>># Skinned mesh (bone-based animation) with support of animation blending
zwykła animacja szkieletowa pod która można podpiąć np ragdoll''a

>># Morphing mesh (key frame animation) with support of animation blending
zwykła animacja obiektu do którego nie są podpięte żadne ''kości'' np otwierające się drzwi.

TGE przeglądałem i znalazłem tylko ''Puppeteer'', jednak jest dość mało informacji o nim...Pewnie jest to kolejny program do ''łączenia'' animacji.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A tu masz wyjasnienie czemu wlasnie nie stosuje sie animacji klasycznej np. z 3dmaxa czy maya.

Animation of characters in 3d can be done in several ways. The first real 3d games did all their animation by exporting the entire animated mesh frame by frame from whatever 3d modeller they we''re using. This is sufficient for simple animations, but poses problems in matter of memory usage, especially when the animations become more complex. This is because for every frame in the animation, the entire mesh (all the vertices and normals) has to be stored in memory to be able to flip through the frames in realtime.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Idzie mi o to że główne animacje, czy to przy użyciu motion capture, czy ręcznej animacji, są wykonywane w oddzielnych programach, a następnie exportowane do silnik. Przy użyciu narzędzi stworzonych do tego silnika, animacje te są łączone np bieg + przeładowanie broni. Przykładem łączenia animacji może być WoW .. podczas gdy się rozglądasz, głowa naszej postaci obraca się wraz z kamera, gdy reszta ciała jest w spoczynku ''idle'' bądź wykonuje inna czynność. :)

Oczywiście nie wszystkiego tu jestem pewien ;P

20080717231305

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No wlasnie ja tez do konca pewien nie jestem jak to dziala, ale w tym linku co Ci podalem wyzej gosc opisuje jak animowac mesha oprogramowujac go odpowiednio. Chyba trzeba by miec jakiegos magika od C++ czy tam C# i DirectX zeby nam to opowiedzial. Z tym ze obawiam sie ze polowy moglibysmy nie zrozumiec. Oni mowia czasem jak wyrocznia delficka.
P.S.
Tak na marginesie, tytul tego threada jest absolutnie od czapy :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Znalazlem jeszcze takie cos:

Skeletal animation is a modelling technique in which, in general, a polygonal or other solid mesh is connected and deformed by a collection of joints and bones.

A bone may be connected to other bones, via joints. A bone may have one ''parent'' joint, and several children. Each bone''s angle and position will be computed in relation to its parent, and the parent of that, etc, until there is no parent.

Bones consist of a length, an angle (or quaternion), and children bones. The drawer will start at the root bone, rotate the vertices/part of mesh affected by the bone. It will then draw the bone''s children, in relation to the parent bone, in the same manner. The result of this is a new mesh, that is deformed to fit the bone structure.

The advantages of this, over simply altering the position of vertices in pre-set fashions (such as in Quake) are smoother animation playback, easier animation creation, and the ability for dynamic movement of limbs.
Dynamic animation, such as ragdoll physics, where a man caught in an explosion could fly away from the impact, and react to the environment as if his muscles were completely relaxed, is possible. As is blending of different animations, to create a seamless rendition from walking to running, or talking and walking.

Here is some pseudo code, to describe the basic idea of writing a skeletal animation renderer:
function bone($bone, $matrix)
{
rotate $matrix by the angles of $bone
add vertices in $bone to new array, rotating each by $matrix
translate $matrix by the length of $bone
for each child of $bone, recurse this function with the matrix we now have and add vertices to the array
return the array of vertices
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dzięki :D napewno się przyda. W tej grze bedzie mniej animacji, a wiecej dzialan z fizyką. postac sama sobie ustali gdzie ma postawic nogę zeby się nie wywalic. Na schodach ma stawiac stopy rzeczywscie na schodach, a nie gdzies pod ziemią, czy w powietrzu - schodząc. Kapujesz?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Haha o programowaniu to mi nawet nie mów ... moje C++ skończyło się na napisaniu pętli :P

Ale ogólnie z tego co czytam to widzę że wszystko opiera się na przypisaniu wierzchołków modelu do kości =)
Dzięki temu że animacja jest uproszczona do kości to możliwe jest łączeni różnych sekwencji animacji w jedną, czy łagodne przejścia miedzy jedną animacją a drugą. Czyli nie ma tak że postać biegnie i nagle w ułamku sekundy znajduje się w pozycji leżącej ( beż żadnej animacji pomiedzy tymi stanami )

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.07.2008 o 23:37, nolhal napisał:

Dzięki :D napewno się przyda. W tej grze bedzie mniej animacji, a wiecej dzialan z fizyką.
postac sama sobie ustali gdzie ma postawic nogę zeby się nie wywalic. Na schodach ma
stawiac stopy rzeczywscie na schodach, a nie gdzies pod ziemią, czy w powietrzu - schodząc.
Kapujesz?


rozumiem że będziesz korzystał z euphoria engine =) http://www.naturalmotion.com/euphoria.htm

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak dotad najwiekszym sie to nie udalo. W LoTRo, AoC, DaoC zapewne tez i WoW czasem jedna bryla przenika przez druga. Gdyby to bylo takie proste to juz dawno istnialby odpowiedni model kolizji i deflectorow zastosowany w grach, a firma ktora pierwsza to zrobila nie omieszkalaby trabic o tym na caly swiat. Nawet w grach SP przenikanie obiektow wystepuje. I wiesz, nie chce Cie zniechecac, ale w takich firmach jak Blizz, Mythic czy Turbine siedza ludzie ktorzy zeby zjedli na robieniu takich rzeczy, na dodatek oni biora gruba kase za to. Ale, zawsze masz szanse byc tym pierwszym ktoremu sie uda. No to go ahead young padawan. I pamietaj co mowil mistrz Yoda:
Nie próbuj! Rób albo nie rób. Prób nie ma. ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Moj braciak mowi ze mam pisac to sam w Phytonie uzywac tego silnika OGRE czy cos. Narazie umiem blendera a wyglada na to ze tylko ja sie narazie tym zajme bo moj bart ma prace i woguel i mowi ze neiznajdzie czasu na baiwenie sie w to ;( Moglem to przewidzec... a taki fajny system walki mial byc...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.07.2008 o 23:43, k13 napisał:

Haha o programowaniu to mi nawet nie mów ... moje C++ skończyło się na napisaniu pętli
:P

Ale ogólnie z tego co czytam to widzę że wszystko opiera się na przypisaniu wierzchołków
modelu do kości =)
Dzięki temu że animacja jest uproszczona do kości to możliwe jest łączeni różnych sekwencji
animacji w jedną, czy łagodne przejścia miedzy jedną animacją a drugą. Czyli nie ma tak
że postać biegnie i nagle w ułamku sekundy znajduje się w pozycji leżącej ( beż żadnej
animacji pomiedzy tymi stanami )


To o czym ty mowisz to to jest jaksi chustowy blending... wlansie ja bledning bym fizyką chcia lzastapic.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach


Nieiwem czy slyszeliscie o krzywych bezjera czy jakos tak. za pomocą niewielu punktow mozna stworzyc wmiare doklandy model. (pczywscie nie taki 5000 wieszchołkoweic ^^) tak cche sie bawic w modelowanie. Co do kolizji modeli (znasczy szkieletow) to będą przeciez modele dla fizyki zbudowane z samych kulek i kresek. A kulka to wiadomo punkt i promien - pbliczenie kolizji nieobciaza CPU

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.07.2008 o 23:48, nolhal napisał:

Moj braciak mowi ze mam pisac to sam w Phytonie uzywac tego silnika OGRE czy cos. Narazie
umiem blendera a wyglada na to ze tylko ja sie narazie tym zajme bo moj bart ma prace
i woguel i mowi ze neiznajdzie czasu na baiwenie sie w to ;( Moglem to przewidzec...
a taki fajny system walki mial byc...


Nie martw się .. nie jesteś jedyną osobą która chciała stworzyć własną gre MOO, i jej się nie udało =)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 17.07.2008 o 23:45, k13 napisał:

rozumiem że będziesz korzystał z euphoria engine =) http://www.naturalmotion.com/euphoria.htm


To moze powinien juz zaczac zbierac kase? Bo to pare zlotych kosztuje chyba. Btw. ladnie to wyglada w porownaniu z ragdollem. Ciekawe jak w zastosowaniach, jest juz jakas gra ktora korzysta z tego silnika? Bo z tego co wiem to StarWars The Force Unleashed ma ale jeszcze nie jest release.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować