blender3d.cz http://blender3d.cz/forum/ |
|
Make parent http://blender3d.cz/forum/viewtopic.php?f=7&t=2073 |
Stránka 1 z 2 |
Autor: | zgerbiak [ pon pro 12, 2005 7:22 pm ] |
Předmět příspěvku: | Make parent |
Toto by som potreboval prelozit do ludskej reci. Nejaky priklad konkretny. Prosim. Kód: makeParent
makeParent ( self, objlist, mode=0, fast=0, ) Makes self the parent of the objects in objlist which must be a list of valid Objects. If specified: mode 0: make parent with inverse 1: without inverse fast 0: update scene hierarchy automatically 1: don't update scene hierarchy (faster). In this case, you must explicitely update the Scene hierarchy, see: Blender.Scene.getCurrent().update() PS: Robim hru kde sa striela s kuse a chcem aby sip ostal prilepeny na objekte.. |
Autor: | Ash [ úte pro 13, 2005 9:48 am ] |
Předmět příspěvku: | |
Toto ti v hre nepomôže. Máš dve možnosti: a. vyrobíš verziu objektu so zapichnutým šípom a po zásahu ňou nahradíš pôvodný objekt - výhody: je to jednoduché; nevýhody: pre šípy, ktoré sa môže zapichnúť kdekoľvek, sa to nehodí, skôr pre meč v ruke. b. naprogramuješ si parent v hernom engine - pre objekt šípu budeš kopírovať orientáciu a pozíciu objektu, kde je zabodnutý, s úpravou transformačnej matice (posun šípu oproti stredu objektu a otočenie šípu oproti orientácii objektu). Ale aj tak je tam problém, ak je objekt animovaný cez kostru - neviem zistiť, ako sa dá určiť orientácia kosti tej časti modelu, kam sa šíp zabodol. |
Autor: | jm [ úte pro 13, 2005 10:24 am ] |
Předmět příspěvku: | |
ve chvili kdy se dotkne steny, mu vypni rigid body. tim ti zustane na miste a nespadne...jestli to je to co chces. jm |
Autor: | zdislav [ úte pro 13, 2005 4:55 pm ] |
Předmět příspěvku: | |
Najprv prelozim ten kod: makeParent je funkcia s dvoma povinnymi a dvoma nepovinnymi parametrami 1. parameter je typu Objekt (v BlenderGame) a udava Objekt, ktory sa stane rodicom (teda parent) objektu alebo objektov 2. par. je typ list (zoznam) Objektov, ktore sa stanu potomkami objektu v predchadzajucom parametri. Jeden objekt v zozname je takto: (obSip,) s dalsimi objektami je takto: (obSip, dalsiObjekt, tretiObjekt). Ta ciarka pre zatvorkou v jednopolozkovom zozname musi byt. dalsie parametre len prelozim: 3. 0 - spraví parent s inverziou 1 - bez inverzie 4. 0 - automaticky updatuje parent väzbu 1 - budeš musiet manualne updatovat prikazom Blender.Scene.getCurrent().update() nepovinne parametre by som nechaval defaultné priklad: if trefa == 1: makeParent(obStena, (obSip,)) Teraz k tomu sipu v objekte: ak sa objekt nebude pohybovat tak len to co pisal jm ak sa vsak bude hybat (nepriatel, tank) tak by som mu v okamihu narazu vypol celu fyziku (funkcia suspendDynamics() alebo podobna) a hned za tym naparentoval na nepriatela. Podobnu vec som robil a cudoval som sa preco parentnute objekty odlietavaju. Zistil som ze len vtedy ked maju zapnutu fyziku a ich parent je mimo pozicie [0;0] |
Autor: | zgerbiak [ úte pro 13, 2005 5:50 pm ] |
Předmět příspěvku: | |
Ash: a. to sa mi tam akosi nehodi ... b. nebude to moc narocne na procak??? jm: To som prave nemal na mysli, ale dobre zistenie, urcite to dakde vyuzijem. zdislav: juhuuu!!! super idem testovat Dakujem vsetkym za pomoc. Dik |
Autor: | Ash [ úte pro 13, 2005 5:56 pm ] |
Předmět příspěvku: | |
Zdislav, rád by som videl nejaký kus chodivého kódu v GameBlenderi, kde by bola funkcia makeParent() úspešne použitá. Som na to ohromne zvedavý! |
Autor: | zgerbiak [ úte pro 13, 2005 6:55 pm ] |
Předmět příspěvku: | |
Preco to nepozna? NameError: name 'makeParent' is not defined Skusal som aj importovat ale marna snaha |
Autor: | jm [ úte pro 13, 2005 7:47 pm ] |
Předmět příspěvku: | |
Ash píše: Zdislav,
rád by som videl nejaký kus chodivého kódu v GameBlenderi, kde by bola funkcia makeParent() úspešne použitá. Som na to ohromne zvedavý! ty si ale lapka jm |
Autor: | Ash [ stř pro 14, 2005 10:22 am ] |
Předmět příspěvku: | |
JM, ja? lapka? No vlastne áno, je to hneď pod mojím nickom... Ale včera v noci som nemohol spať, v hlave mi behali samé súčiny vektorov a inverzie matíc, tak som pred polnocou sadol ku kompu a vypotil demo na strieľanie šípov na otáčajúci sa cieľ. Zdrojový súbor nájdete na http://ashsid.szm.sk/download/arrows.blend, ak bude záujem napíšem tutoriál. PS. Šípy sa vystreľujú medzerou. |
Autor: | zgerbiak [ stř pro 14, 2005 5:16 pm ] |
Předmět příspěvku: | |
Ash píše: , ak bude záujem napíšem tutoriál.
Ja mam zaujem. Ked to uz pouzijem tak by som to aj rad pochopil. |
Autor: | Ash [ stř pro 14, 2005 5:27 pm ] |
Předmět příspěvku: | |
Mrkni sa na zdrojáky skriptov, sú celkom slušne komentované - niečo sa z toho dá pochopiť. A zvyšok je hlavne maticová algebra - mat.py obsahuje funkcie na prácu s 3x3 maticami - násobenie a inverziu. Čas na písanie tutoriálu budem mať najskôr cez tento víkend, najneskôr na Vianoce. |
Autor: | Ash [ stř pro 14, 2005 6:45 pm ] |
Předmět příspěvku: | |
Trochu som to demo vylepšil - teraz sa šípy zapichnú, len keď smerujú hrotom do terča, inak sa odrazia - predtým stačilo, aby sa terča dotkli ľubovoľným spôsobom a "prilepili sa". |
Autor: | Ash [ úte pro 20, 2005 12:09 pm ] |
Předmět příspěvku: | |
Čo som sľúbil, plním, tu je tutorial na dynamické pripájanie objektov. |
Autor: | zgerbiak [ úte pro 20, 2005 5:27 pm ] |
Předmět příspěvku: | |
Supeeer. |
Autor: | Ash [ pon úno 13, 2006 6:42 pm ] |
Předmět příspěvku: | |
Po skoro 2 mesiacoch, keď som prekladal tento tutoriál do angličtiny, som našiel fatálnu chybu vo vzorcoch a samozrejme aj v deme. Takže teraz je to už na pôvodnej adrese opravené. |
Stránka 1 z 2 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |