No ja som ale myslel, vytvoriť to pomocou skriptu (tam sa dá nastaviť všetko okolo harmonického oscilátora, i keď to celkom fyzikálne nesedí...mass je v objekte, tuhosť v skripte):
cube_6DOF = PhysicsConstraints.createConstraint(obj1_ID, obj2_ID, constraintType, pivotPos_X, pivotPos_Y, pivotPos_Z, pivotAxis_X, pivotAxis_Y, pivotAxis_Z) cube_6DOF.setParam(3, 0.0, 0.0) cube_6DOF.setParam(4, 0.0, 0.0) týmito dvoma riadkami sa zablokuje rotácia v osi x a y (po osi z necháme, ide o torznú pružinu, ale v princípe, dá sa to prenastaviť - tieto rotácie sa zrejme chápu v lokálnom zmysle daného objektu, čo sa fakt hodí) cube_6DOF.setParam(17, 50.0, 1) týmto sa nastaví oscilátor v osi z (15 x 16 y 17 Z, druhý parameter je tuhosť, tretí je akási éterická konštanta, ktorá vracia objekt do pôvodnej pozície...nechať radšej na 1)
obj1 je parent ("záves"), obj2 je child (objekt), constraint type sa dáva 12 (generic 6 degrees of freedom constraint type) a ostatné zatiaľ nie sú dôležité. Problém v Blender 2.57 (od 2.5 vyššie) je, že klasicky mi funguje načítanie objektu, len sa pred neho nepíše OB..., čiže NIE takto: obj1 = objList["OBZaves"] ale TAKTO: obj1 = objList["Zaves"] nuž, ale konzolka (btw, treba ju zapnúť v záložke help, to čo je za blbosť?) frfle, že nepozná ID...navyše mi nefunguje print dir, najnovšie by rado importovalo bge a nie GameLogic...a tak, je to hrozne dohaluzené, a neviem, čo s tým...ani help mi už nechce chodiť, takže fakt neviem, ako mám do toho constraintu načítavať IDéčka objektov...
edit: miesto Naprava_ID (Naprava = objList["Naprava"]) som skúsil Naprava.ID, nič a tak som skúsil len Naprava na čo mi, logicky, vyhodil "integer is required" (čiže ID)...uch! Čo teraz, ako fakt? edit2: podarilo saaaaaa! na zistenie IDčka objektu stačí napísať Naprava.getPhysicsId(), najnovšie je to teda PhysicsId a je to prístupné ako parameter.
|