Das abprallen bei einer entity KOMPLETT ausschalten

Posted By: xxxxxxx

Das abprallen bei einer entity KOMPLETT ausschalten - 04/02/11 20:59

Hallo,
mich wunderts das mab das abprallen einer entity bei physX nicht komplett ausschalten kann mit "pXent_setelasticity(Was_auch_immer, 0);" gibt es immer noch abprall efekte(auch wenn es auf beide entities angewendet wurde). Wie geht das?
und nochwas(passte nicht mehr ganz):
Bei meiner ragdoll habe jeweils die pan-achsen der gelenke gesperrt, jetzt bewegt sie sich teilweise ruckartig und springt auch hier hilft die gedachte function"pXent_setiterations(Was_auch_immer, 128);" nicht - auch wenn ich einen wert um die 500 nehme frown
xxxxxxx
Posted By: rojart

Re: Das abprallen bei einer entity KOMPLETT ausschalten - 04/03/11 11:53

Originally Posted By: xxxxxxx
mich wunderts das mab das abprallen einer entity bei physX nicht komplett ausschalten kann mit "pXent_setelasticity(Was_auch_immer, 0);" gibt es immer noch abprall efekte(auch wenn es auf beide entities angewendet wurde). Wie geht das?

0 sorgt dafür, dass das Objekt so wenig wie möglich abfedert.

Ich würde stattdessen nur mit pXent_settype(Was_Auch_Immer,0,0); versuchen.

Originally Posted By: xxxxxxx
Bei meiner ragdoll habe jeweils die pan-achsen der gelenke gesperrt, jetzt bewegt sie sich teilweise ruckartig und springt auch hier hilft die gedachte function"pXent_setiterations(Was_auch_immer, 128);" nicht - auch wenn ich einen wert um die 500 nehme
xxxxxxx

Ich verstehe nicht ganz was du meinst, ein beispiel code?

Posted By: xxxxxxx

Re: Das abprallen bei einer entity KOMPLETT ausschalten - 04/03/11 12:14

zu 1: es soll ja nachwievor fallen und sich drehen nur nicht abprallen. wenn ich pXent_settype(Was_Auch_Immer,0,0); benutzen würde wäre es kein phyX objekt mehr...
zu 2: ab und zu ruckt das gelenk einfach ich hab keinen plan woran das liegt, es passiert nicht wenn ich die pan achse frei gebe. Die bewegung sieht nicht mehr wie eine bewegung aus, es sieht wie eine direkt veränderung der winkel aus. wie gesagt für sowas sollte eigentlich diese eine function gut sein aber wenn im manual schon 16 als hoher wert beschrieben wird und es bei 500 immer nochnet klapt...

eigentlich habe ich versucht mit 1 das zu verhindern weil die teile meiner ragdoll ja zusammenstoßen können und so könnte ja das irgendwie entstehen.
xxxxxxx
Posted By: MasterQ32

Re: Das abprallen bei einer entity KOMPLETT ausschalten - 04/03/11 12:45

hey
zu 1: ich denke mal, du willst nicht, das deine ragdoll rumhüpft, wenn sie irgendwo runterfällt, oder?
zu 2:
ich würde die winkel nicht sperren, jedenfalls nicht in einer 3D-Umgebung
weil dadurch passieren genau die dinge, die du uns beschreibst....
ich denke mal, deine ragdoll ist mit joints zusammengepappt, oder?
weil dann sperr einfach den pan-winkel in deinem joint
Posted By: xxxxxxx

Re: Das abprallen bei einer entity KOMPLETT ausschalten - 04/03/11 13:03

zu 1: ja ich will verhindern das sie abprallt und bei hohen diztancen wurde man ja auch net rumhüpen sondern viel mehr einen großen roten fleck hinterlassen sick grin
zu 2:
ich sperr bereits den pan winkel im joint(natürlich setzte ich das auchnoch im gelenk)
Code:
Motion[0] = NX_D6JOINT_MOTION_LOCKED;
Motion[1] = NX_D6JOINT_MOTION_LOCKED;
Motion[2] = NX_D6JOINT_MOTION_LOCKED;
Motion[3] = NX_D6JOINT_MOTION_LOCKED;
Motion[4] = NX_D6JOINT_MOTION_FREE;
Motion[5] = NX_D6JOINT_MOTION_FREE;


xxxxxxx
Posted By: MasterQ32

Re: Das abprallen bei einer entity KOMPLETT ausschalten - 04/03/11 13:23

ich glaube du hast den falschen winkel gesperrt, hab damit eigentlich noch nicht experimentiert, probiers halt einfach mal, jeden winkel einzeln zu sperren und schau dann, welcher am besten passt
Posted By: xxxxxxx

Re: Das abprallen bei einer entity KOMPLETT ausschalten - 04/03/11 13:39

hmmm... ich hab jetzt das mal probiert! allerdings kriege ich bei jedem winkel diesen effekt, nur unterschiedlich stark!
pan: stark
tili: sehr schwach
roll: etwas stärker als pan
bei pan und roll springt die ragdoll auch hoch!(->wegen zuckem und nicht wegen dem abprall)

der pan winkel sieht abgesehne von den nebeneffekten am besten aus desshalb wollte ich eigentlich den sperren!
die winkel-sperre ist auch nur fürs erste! später werde ich mit freiheitsgraden arbeiten, aber das würde dann wahrscheinlich noch wilder ausehn...
xxxxxxx
Posted By: rojart

Re: Das abprallen bei einer entity KOMPLETT ausschalten - 04/03/11 15:22

Welchen ragdoll code verwendest du denn, eigenes?
Posted By: xxxxxxx

Re: Das abprallen bei einer entity KOMPLETT ausschalten - 04/03/11 16:05

jo eigenen ragdoll code! der start ging recht gut, doch immoment wird es immer schwiriger, zuerst das problem mit 3 ungleiche gelenke an einer entity(momentan ist die lösung ewentuel nicht für die kommenden motoren geignet und ungenau zum bewegen! aktuelle lösung-> ich habe einfach es so gemacht das der körper in meinem fall das zweite gelenkteil bildet). momentan ist es einfach nur ein fallender und zuckender körper, das was es sein soll, nur das zucken muss weg! frown
der code ist jetzt etwas lang und ich nehme an das sich das kaum einer durchlesen würde trotzdem:
Click to reveal..
Code:
///////////////////////////////
#include <acknex.h>
#include <default.c>
#include <ackphysx.h>
///////////////////////////////

ENTITY* Kopf;
ENTITY* OberarmR;
ENTITY* UnterarmR;
ENTITY* HandR;
ENTITY* OberarmL;
ENTITY* UnterarmL;
ENTITY* HandL;
ENTITY* Bein1R;
ENTITY* Bein2R;
ENTITY* FussR;
ENTITY* Bein1L;
ENTITY* Bein2L;
ENTITY* FussL;
ENTITY* Body1;
ENTITY* Body2;
ENTITY* Body3;
ENTITY* Hals;
ENTITY* Skelett;
ENTITY* Plane;

function main()
{
	vec_set(screen_size,vector(1200,900,0));
	ENTITY* to;
	var Motion[6];
	video_window(NULL,NULL,0,"PhysX Grundsteuerung");
	physX_open();
	pX_setsteprate(512, 8, NX_TIMESTEP_VARIABLE);
	pX_setccd (1);
	level_load("");
	Motion[0] = NX_D6JOINT_MOTION_LOCKED;
	Motion[1] = NX_D6JOINT_MOTION_LOCKED;
	Motion[2] = NX_D6JOINT_MOTION_LOCKED;
	Motion[3] = NX_D6JOINT_MOTION_LOCKED;
	Motion[4] = NX_D6JOINT_MOTION_FREE;
	Motion[5] = NX_D6JOINT_MOTION_FREE;
	
	wait(5);
	
	Plane = ent_create(NULL, nullvector,NULL);
	Kopf = ent_create("Kopf.mdl",nullvector,NULL);
	OberarmR = ent_create("ArmR1.mdl",nullvector,NULL);
	UnterarmR = ent_create("ArmR2.mdl",nullvector,NULL);
	HandR = ent_create("HandR.mdl",nullvector,NULL);
	OberarmL = ent_create("ArmL1.mdl",nullvector,NULL);
	UnterarmL = ent_create("ArmL2.mdl",nullvector,NULL);
	HandL = ent_create("HandL.mdl",nullvector,NULL);
	Bein1R = ent_create("BeinR1.mdl",nullvector,NULL);
	Bein2R = ent_create("BeinR2.mdl",nullvector,NULL);
	FussR = ent_create("FusR.mdl",nullvector,NULL);
	Bein1L = ent_create("BeinL1.mdl",nullvector,NULL);
	Bein2L = ent_create("BeinL2.mdl",nullvector,NULL);
	FussL = ent_create("FusL.mdl",nullvector,NULL);
	Body1 = ent_create("Body1.mdl",nullvector,NULL);
	Body2 = ent_create("Body2.mdl",nullvector,NULL);
	Body3 = ent_create("Body3.mdl",nullvector,NULL);
	Hals = ent_create("Hals.mdl",nullvector,NULL);
	Skelett = ent_create("Skelett.mdl",vector(0,0,5000),NULL);
	to = ent_create(NULL,nullvector,NULL);
	
	vec_for_bone(Body1.x,Skelett,"Main");
	vec_for_bone(Body2.x,Skelett,"Body");
	vec_for_bone(Body3.x,Skelett,"Body1");
	vec_for_bone(Hals.x,Skelett,"Body2");
	vec_for_bone(Kopf.x,Skelett,"Head");
	vec_for_bone(OberarmR.x,Skelett,"ArmR");
	vec_for_bone(UnterarmR.x,Skelett,"ArmR1");
	vec_for_bone(HandR.x,Skelett,"HandR");
	vec_for_bone(OberarmL.x,Skelett,"ArmL");
	vec_for_bone(UnterarmL.x,Skelett,"ArmL1");
	vec_for_bone(HandL.x,Skelett,"HandL");
	vec_for_bone(Bein1R.x,Skelett,"LegR");
	vec_for_bone(Bein2R.x,Skelett,"LegR1");
	vec_for_bone(FussR.x,Skelett,"FootR");
	vec_for_bone(Bein1L.x,Skelett,"LegL");
	vec_for_bone(Bein2L.x,Skelett,"LegL1");
	vec_for_bone(FussL.x,Skelett,"FootL");
	
	pXent_settype(Plane, PH_STATIC, PH_PLANE);
	pXent_settype(Kopf, PH_RIGID, PH_CONVEX);
	pXent_settype(OberarmR, PH_RIGID, PH_CONVEX);
	pXent_settype(UnterarmR, PH_RIGID, PH_CONVEX);
	pXent_settype(HandR, PH_RIGID, PH_CONVEX);
	pXent_settype(OberarmL, PH_RIGID, PH_CONVEX);
	pXent_settype(UnterarmL, PH_RIGID, PH_CONVEX);
	pXent_settype(HandL, PH_RIGID, PH_CONVEX);
	pXent_settype(Bein1R, PH_RIGID, PH_CONVEX);
	pXent_settype(Bein2R, PH_RIGID, PH_CONVEX);
	pXent_settype(FussR, PH_RIGID, PH_CONVEX);
	pXent_settype(Bein1L, PH_RIGID, PH_CONVEX);
	pXent_settype(Bein2L, PH_RIGID, PH_CONVEX);
	pXent_settype(FussL, PH_RIGID, PH_CONVEX);
	pXent_settype(Body1, PH_RIGID, PH_CONVEX);
	pXent_settype(Body2, PH_RIGID, PH_CONVEX);
	pXent_settype(Body3, PH_RIGID, PH_CONVEX);
	pXent_settype(Hals, PH_RIGID, PH_CONVEX);
	
	pXent_setelasticity(Plane, 0);
	pXent_setelasticity(Kopf, 0);
	pXent_setelasticity(Hals, 0);
	pXent_setelasticity(Body1, 0);
	pXent_setelasticity(Body2, 0);
	pXent_setelasticity(Body3, 0);
	pXent_setelasticity(OberarmR, 0);
	pXent_setelasticity(UnterarmR, 0);
	pXent_setelasticity(HandR, 0);
	pXent_setelasticity(Bein1R, 0);
	pXent_setelasticity(Bein2R, 0);
	pXent_setelasticity(FussR, 0);
	pXent_setelasticity(OberarmL, 0);
	pXent_setelasticity(UnterarmL, 0);
	pXent_setelasticity(HandL, 0);
	pXent_setelasticity(Bein1L, 0);
	pXent_setelasticity(Bein2L, 0);
	pXent_setelasticity(FussL, 0);
		
	pXcon_add(PH_6DJOINT,Body1,Body2,0);
	vec_for_bone(to.x,Skelett,"Body");
	pXcon_setparams1(Body1, to.x,NULL,NULL);
	pXcon_set6djoint(Body1,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,Body2,Body3,0);
	vec_for_bone(to.x,Skelett,"Body1");
	pXcon_setparams1(Body2, to.x,NULL,NULL);
	pXcon_set6djoint(Body2,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,Body3,Hals,0);
	vec_for_bone(to.x,Skelett,"Body2");
	pXcon_setparams1(Body3, to.x,NULL,NULL);
	pXcon_set6djoint(Body3,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,OberarmR,Body3,0);	
	vec_for_bone(to.x,Skelett,"ArmR");
	pXcon_setparams1(OberarmR, to.x,NULL,NULL);
	pXcon_set6djoint(OberarmR,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,OberarmL,Body3,0);
	vec_for_bone(to.x,Skelett,"ArmL");
	pXcon_setparams1(OberarmL, to.x,NULL,NULL);
	pXcon_set6djoint(OberarmL,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,Hals,Kopf,0);
	vec_for_bone(to.x,Skelett,"Head");
	pXcon_setparams1(Hals, to.x,NULL,NULL);
	pXcon_set6djoint(Hals,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,UnterarmR,OberarmR,0);
	vec_for_bone(to.x,Skelett,"ArmR1");
	pXcon_setparams1(UnterarmR, to.x,NULL,NULL);
	pXcon_set6djoint(UnterarmR,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,UnterarmL,OberarmL,0);
	vec_for_bone(to.x,Skelett,"ArmL1");
	pXcon_setparams1(UnterarmL, to.x,NULL,NULL);
	pXcon_set6djoint(UnterarmL,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,HandR,UnterarmR,0);
	vec_for_bone(to.x,Skelett,"HandR");
	pXcon_setparams1(HandR, to.x,NULL,NULL);
	pXcon_set6djoint(HandR,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,HandL,UnterarmL,0);
	vec_for_bone(to.x,Skelett,"HandL");
	pXcon_setparams1(HandL, to.x,NULL,NULL);
	pXcon_set6djoint(HandL,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,Bein1R,Body1,0);
	vec_for_bone(to.x,Skelett,"LegR");
	pXcon_setparams1(Bein1R, to.x,NULL,NULL);
	pXcon_set6djoint(Bein1R,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,Bein1L,Body1,0);
	vec_for_bone(to.x,Skelett,"LegL");
	pXcon_setparams1(Bein1L, to.x,NULL,NULL);
	pXcon_set6djoint(Bein1L,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,Bein2R,Bein1R,0);
	vec_for_bone(to.x,Skelett,"LegR1");
	pXcon_setparams1(Bein2R, to.x,NULL,NULL);
	pXcon_set6djoint(Bein2R,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,Bein2L,Bein1L,0);
	vec_for_bone(to.x,Skelett,"LegL1");
	pXcon_setparams1(Bein2L, to.x,NULL,NULL);	
	pXcon_set6djoint(Bein2L,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,FussR,Bein2R,0);
	vec_for_bone(to.x,Skelett,"FootR");
	pXcon_setparams1(FussR, to.x,NULL,NULL);		
	pXcon_set6djoint(FussR,Motion,NULL);
	
	pXcon_add(PH_6DJOINT,FussL,Bein2L,0);
	vec_for_bone(to.x,Skelett,"FootL");
	pXcon_setparams1(FussL, to.x,NULL,NULL);
	pXcon_set6djoint(FussL,Motion,NULL);

	pXent_setiterations(Kopf, 128);
	pXent_setiterations(Hals, 128);
	pXent_setiterations(Body1, 128);
	pXent_setiterations(Body2, 128);
	pXent_setiterations(Body3, 128);
	pXent_setiterations(OberarmR, 128);
	pXent_setiterations(UnterarmR, 128);
	pXent_setiterations(HandR, 128);
	pXent_setiterations(Bein1R, 128);
	pXent_setiterations(Bein2R, 128);
	pXent_setiterations(FussR, 128);
	pXent_setiterations(OberarmL, 128);
	pXent_setiterations(UnterarmL, 128);
	pXent_setiterations(HandL, 128);
	pXent_setiterations(Bein1L, 128);
	pXent_setiterations(Bein2L, 128);
	pXent_setiterations(FussL, 128);

	vec_set(camera.x,vector(1000,0,0));
	vec_set(camera.pan,vector(180,15,0));
	while(1)
	{
		pX_pick();
		wait(1);
	}
}


die modelle sind so das man nur die position setzten muss.
xxxxxxx
Posted By: xxxxxxx

Re: Das abprallen bei einer entity KOMPLETT ausschalten - 04/04/11 20:47

ist es die engine schuld oder bin ich einfach nur zu dumm?
also findet ihr irgendwo fehler/stellen wo etwas nicht wie gedacht verlaufen könnten????
xxxxxxx
© 2024 lite-C Forums