blender3d.cz
http://blender3d.cz/forum/

Make parent
http://blender3d.cz/forum/viewtopic.php?f=7&t=2073
Stránka 12

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 :wink:

Dakujem vsetkym za pomoc. Dik :rolleyes:

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 :cry:

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 :D

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ľ.
Obrázek
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.

:oha: Ja mam zaujem. :D 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: 

:banana: 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 12 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/