.[ ČeskéHry.cz ].
Pohyb po terenu

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Manox



Založen: 30. 07. 2007
Příspěvky: 140
Bydliště: Brno

PříspěvekZaslal: 23. červen 2008, 10:59:53    Předmět: Pohyb po terenu Odpovědět s citátem

Ahoj,

premyslim jak vyresit pohyb po terenu, ale ne takovy ten zakladni pro postavu. Chtel bych to udelat tak, ze gravitace je vzdy opacna k normalovemu vektoru trojuhelniku terenu, na kterem se nachazi objekt. Ve vysledku, kdyz si predstavime scenu, ktera ma treba tvar vrtule, tak na jedne strane bode normala v ose Z a na druhe treba v Y. Nejradeji bych do toho vubec netahal fyziku, chci jen, aby objekt "jezdil" po tom terenu, zadne skakni a dalsi blbovinky. Idelane, kdyby se na to dalo nejake namapovat 2D. Posun bych chtel jen ve dvou smerech a objekt bude podle toho jezdit po povrchu. Idealne prave aby posun a AI fungovalo jen nad 2D reprezentaci a pak se pozice ze 2D transformovala do 3D a nalepila na povrch.

Diky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Fila



Založen: 31. 07. 2007
Příspěvky: 853

PříspěvekZaslal: 23. červen 2008, 12:11:43    Předmět: Odpovědět s citátem

Nejsu si ted jisty, jestli chapu, co chces presne na pohybu resit. Jako spocitat, kdyz jsi v urcitem miste na terenu a dejmetomu chces se pohnout o metr rovne, tak jak ve skutecnosti pohyb vypada? IMHO muzes pohyb pocitat na normalni rovine a tu mapovat na povrch terenu (tedy pohnes-li se na rovine ve smyslu nejakeho 2D vektoru, pak tento vektor transformujes na rovinu, kterou tvori trojuhelnik terenu, na kterem se nachazis). Problem nastane, kdyz vyjedes z jednoho trojuhelniku na druhy -- tady musis zjistit, kdy jsi opustil rovinu danou jednim trojuhelnikem, udelat prislusne velky krok a zbytek pocitat pro novou rovinu.

Jinak obecna trojuhelnikova sit nejde prevezt na spojitou rovinu, to by snad ale nemuselo vadit (nevim, co presne tam ma pachat AI -- problem bych videl napr. v pathfindingu).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Manox



Založen: 30. 07. 2007
Příspěvky: 140
Bydliště: Brno

PříspěvekZaslal: 23. červen 2008, 12:19:41    Předmět: Odpovědět s citátem

Chapes to docela dobre, scenu bych chtel mit jen ve "2D" kvuli lepsimu hledani cest, pohyb klavesami ja taky jen ve 2 osach, ale scena by mela byt ve 3D. jde o to, kdyz zmacknu treba sipku doleva, zjisti jak se ma vubec pohnout ve 3D a tak. I pro AI, kdy se tam bude potloukat par postav jen tak, bude navigace mnohem lepsi jen ve 2D prostoru. Rovina asi neni to spravne slovo, spise neco jako graf, kde uzly jsou trojuhelniky a vazby jsou hrany mezi nimi.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 23. červen 2008, 12:32:57    Předmět: Odpovědět s citátem

Mám nějak problém představit si scénu ve tvaru vrtule. Razz
Vpodstatě jde o to, abys měl dva vektory, přední a vrchní. Vrchní je normála k trojúhelníku. Přední si na začátku nějak zvolíš a budeš s ním točit kolem vrchního. Jediný problém, který je, je přepočítat ten přední vektor při přechodu mezi dvěma trojúhelníky. Musí být totiž pořád kolmý na vrchní, který se mění podle konkrétního trojúhelníku.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Fila



Založen: 31. 07. 2007
Příspěvky: 853

PříspěvekZaslal: 23. červen 2008, 14:42:33    Předmět: Odpovědět s citátem

Manox napsal:
Chapes to docela dobre, scenu bych chtel mit jen ve "2D" kvuli lepsimu hledani cest, pohyb klavesami ja taky jen ve 2 osach, ale scena by mela byt ve 3D. jde o to, kdyz zmacknu treba sipku doleva, zjisti jak se ma vubec pohnout ve 3D a tak. I pro AI, kdy se tam bude potloukat par postav jen tak, bude navigace mnohem lepsi jen ve 2D prostoru. Rovina asi neni to spravne slovo, spise neco jako graf, kde uzly jsou trojuhelniky a vazby jsou hrany mezi nimi.


Ted budu mozna placat, neprogramuju 3D grafiku, takze su v tomto lajk, predstavuju si to nejak takto:
na 2D rovine mas vektor pohybu. Kdyz vezmes soustavu "vektor pohybu + normala roviny", preneses ji na trojuhelnik na 3D siti rotaci, kterou sjednotis normalu se zminene soustavy s normalou daneho trojuhelniku. Vektor pohybu se tim vyprojektuje na trojuhelnik a provedes uz jen translaci tak, aby zacinal v bode, ve kterem jsi byl na trojuhelniku v kroku v predchozim case.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1526
Bydliště: Telč

PříspěvekZaslal: 24. červen 2008, 08:35:57    Předmět: Odpovědět s citátem

Každý trojúhelník (nikoli vertex, jak bývá zvykem) by mohl mít svoji "Tangent Space" matrix. Zjistil bys trojúhelník, kde se nachází původní pozice, následně vzal jeho Tangent Space matrix a vynásobil jí vektor pohybu. Kdyby výsledná pozice byla již mimo trojúhelník, musel bys nejspíš přizpůsobit výšku a zanedbat nepřesnost. Nebo zaříznout transformovaný vektor pohybu podle rovin vytažených ze stran trojúhelníka a pohyb rozdělit na více trojúhelníků.
Tohle řeší ale jen posun, jak takhle udělat celý AI, Bůh ví :)

Pak mě ještě napadlo, že kdyby se podařilo nějak pěkně namapovat texturu, tak by se daly použít rovnou texturové koordináty. Ty by vlastně vytvořily mesh v 2D, po kterým by přímo mohla běhat AI a převod do 3D by už byl triviální. Ovšem jsou zde určité detaily:

Namapování může být někde "roztržené" a tak by se musely vytvořit "mosty":
V místech, kde reálný 3D mesh sousedí hranama, ale "2D" mesh ne, by se uložila informace o návaznosti. Kdyby došla AI na takovou hranu, musela by přejít na druhou stranu po tomto "logickém můstku".

Textura může být někde více či méně napnutá. Bylo by dobré porovnávat poměr vzdáleností vertexů v 3D a v 2D a určit tak rychlost pohybu. Pokud by byla textura namapovaná dobře, tohle by se nemuselo dělat a drobné chyby by se zanedbávaly.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna