Model passable Problem

Posted By: Bloodangel

Model passable Problem - 02/03/10 13:53

Guten Tag, mein Problem ist folgendes:

Ich möchte eine unsichtbare Level begrenzung machen in Form einer Röhre. Gemacht hab ich diese Röhre in 3Ds Max dan in fbx exportiert und in mdl importiert. Habe Polygon angekreuzt und ins level getan.

Das Problem ist aber das wen man seitlich gegen diese Röhre läuft man einfach durch gehen kann, wenn man aber von oben dagegen läuft kan man nicht durch.
Was kan ich dagegen tun?

Vielen Dank freue mich auf Antworten^^



PS: Falls das hilft, ich hatte so ein ähnliches Problem in dem level schon einmal und zwar sollte dabei durch ein Großes Model bei berührung ein Script gestartet werden, aber es wurde nur an manchen stellen (mitte ca) ausgelöst.
Posted By: Superku

Re: Model passable Problem - 02/03/10 16:12

Probier das mal:

action unsichtbare_wand() {
wait(1); // !!!! ganz wichtig, da min/max im ersten Frame gesetzt werden (glaube ich :))
c_setminmax(my);
set(my,POLYGON);
}

Hatte ein ähnliches Problem mit einer großen Wippe, welche auch POLYGON gesetzt hatte. JCL meinte aber, dass es wahrscheinlich an min/max liegt, da nur die polygonale Hülle verwendet wird, wenn die Bounding Box theoretische getroffen würde.
Posted By: Bloodangel

Re: Model passable Problem - 02/03/10 17:16

Ah vielen Dank für die Antwort.

Leider bekomme ich mit damit angezeigt das set(my,POLYGON); ein bad or missing parameter/unknow function hat.

Habe schon rum probiert (an andere stellen gesetzt etc) half aber nicht.


PS: Ich benütze überigens C^^
Posted By: Jog

Re: Model passable Problem - 02/04/10 11:11

Hast du es damit schon probiert.

set(my,INVISIBLE);

Nur bei Level-Entities: Wird dieses Flag gesetzt, ist die Entity im Level unsichtbar, stellt aber für die Kollisionserkennung weiterhin ein Hindernis dar.
Posted By: Bloodangel

Re: Model passable Problem - 02/04/10 13:27

Ok auch dir danke^^

Also:
1. Ich habe das Problem mit missing parameter bei polygon gelöst, hatt aber leider trotzdem nichts gebracht q.q

2.Leider hat das Invisible auch nichts gebracht, das Problem ist ja leider auch das man durch gehen kan und nicht das man es sieht^^ Trotzdem aber danke^^
Posted By: Superku

Re: Model passable Problem - 02/04/10 13:28

Quote:
PS: Ich benütze überigens C^^


Was meinst du, das klassische C-Script? Dann muss es natürlich wie folgt lauten:

action unsichtbare_wand() {
wait(1); // !!!! ganz wichtig, da min/max im ersten Frame gesetzt werden (glaube ich :))
c_setminmax(my);
my.polygon = on; //oder wie es in C-Script heißt
}
Posted By: Bloodangel

Re: Model passable Problem - 02/04/10 13:50

Ja genau so hab ichs schon geändert danach startet es, leider hilft es so nicht.
Man kan immernoch von innen durchlaufen q.q
Posted By: muffel

Re: Model passable Problem - 02/04/10 14:03

Sicher das die Polygone in die richtige Richtung zeigen???

muffel
Posted By: Widi

Re: Model passable Problem - 02/04/10 14:51

Wenn du von innen nach aussen laufen kannst aber nicht umgekehrt, dann sind die Polygone wie muffel schon gesagt hat in der falschen Richtung. Oeffne deine Röhre im MED und gebrauche den Button "Flip Normals". Dadurch werden die Polygone umgedreht.
Posted By: Bloodangel

Re: Model passable Problem - 02/04/10 18:46

Ok habs mit flip normal versucht.

Leider falle ich immernoch genauso durch. Q.Q
Bin wirklich am verzweifeln^^
Posted By: Bloodangel

Re: Model passable Problem - 02/06/10 23:03

push tongue
*verzweifeltblick*
Posted By: Bloodangel

Re: Model passable Problem - 02/15/10 21:17

Mhh also das Problem hat sich leider bis heute nicht gelöst.
Man kan immernoch von der Seite durchlaufen.

Also ich hab die Polygone umgedreht und mit dem Script die Polygone angesetzt.
Was könnte es noch sein?
Posted By: Superku

Re: Model passable Problem - 02/15/10 22:29

Mach mal ein Video und youtube.
Posted By: Landixus

Re: Model passable Problem - 02/15/10 23:14

schick mal das Model
Posted By: Bloodangel

Re: Model passable Problem - 02/15/10 23:32

Also hier ist das Model:
http://www.megaupload.com/?d=INDCL686


Werde euch beiden gleich das Video schicken.
Leider kan ich dies nich Public machen.

Also wer den noch den link zum Video haben möcht schreibt bitte hier irgendwas, dan werde ich euch gleich per PN den Youtube link geben.
Posted By: Landixus

Re: Model passable Problem - 02/16/10 07:10

Das Model ist ja auch offen, das kann nicht funktionieren.

Mach einen neuen Cylinder, aber einen geschlossenen
Flag Polygon und BBox setzen und es wird gehen.

Für nen Cylinder braucht man übrigens nicht 3ds max!
Hier ein hübsches Beispiel:
http://www.cos-clan.quakeit.de/ff.mdl
Posted By: Bloodangel

Re: Model passable Problem - 02/16/10 12:35

Also das der Cylinder offen ist hängt damit zusammen, das ich auf den Tipp hin "Flip normals" gemacht habe.
Leider funktioniert es mit einem geschlossenen auch nicht.


Blöder weiße brauche ich einen 3ds Max Cylinder, da man mit 3dgs keine mit höherer Eckenanzahl machen kan. Oder ich weiß es einfach nicht wies geht tongue
Bei einem mit weniger Ecken hängt man bei vorbeilaufen unschön in den Ecken.
(Und man konnte manchmal dran hoch springen o.O?)


Überigens hatte ich, als ich es damals mit einem 3dgs Cylinder gemacht habe, kein Passable Problem.
Posted By: Landixus

Re: Model passable Problem - 02/16/10 13:21

Na dann üb noch ein wenig mit Max laugh

Nimm nen spline zieh den hoch und wandel ihn als editable poly.

Dann exportieren, geht laugh
Posted By: episch

Re: Model passable Problem - 02/16/10 13:45

vll liegt es daran das du dem player model in der c_move anweisung kein GLIDE zugewiesen hast
Posted By: jane

Re: Model passable Problem - 02/16/10 13:51

Hallo,

wenn du den Zylinder wie im Bild abänderst,
funktioniert es auch, und es sind wesentlich weniger Polygone.



Gruß Jane
Posted By: Bloodangel

Re: Model passable Problem - 02/16/10 16:09

Wow danke für die ganze Hilfe^^


@Landixus: Wie meinst du das eine spline hochziehen?
Habe das Model als "Object Cylinder" gemacht.
Ich weiß zwar wie man Lines macht aber nich wie man diese dan hochziehen kan.
Den mit Scale geht das ja nicht.
Sorry tongue

@episch: Also eigentlich ist ein Gilde zugewiesen also so:
c_move(my,nullvector,my.move_x,use_aabb | ignore_passable | glide);

@jane: Habs versucht wie auf deinem Bild, leider laufe ich immernoch durch Q.Q
Posted By: Landixus

Re: Model passable Problem - 02/16/10 18:04

Du machst mich echt fertig laugh

10000€ für nen Programm und schaffst kein Cylinder? :))))

Da nimm hin und dann in den Staub mit dir!

http://www.cos-clan.quakeit.de/wattnrohr.mdl

Ich hab es getestet!
Posted By: Bloodangel

Re: Model passable Problem - 02/16/10 19:09

Danke für das Model und sorry.

Ich bin echt am verzweifeln.
És liegt wohl nicht am Model.
Denn ich falle immernoch durch.

Liegt es vieleicht an meinem c_move?
Posted By: Landixus

Re: Model passable Problem - 02/16/10 19:32

Haken im WED bei Polygon und BBOX gesetzt?
Posted By: MasterQ32

Re: Model passable Problem - 02/16/10 19:41

kleine frage:
hast du das rohr auch so gedreht, dass es vertikal steht?
Posted By: Superku

Re: Model passable Problem - 02/16/10 19:49

Hier müsste der Fehler liegen:

c_move(my,nullvector,my.move_x,use_aabb | ignore_passable | glide);

Ich glaube nicht, dass use_aabb das polygon-Flag unterstützt.

EDIT: Soll heißen, du hast keine Kollisions-Erkennung, weil du dich schon im Model befindest.
Posted By: Bloodangel

Re: Model passable Problem - 02/16/10 21:31

Wirklich nett das so viele Helfen.

@Landixus: Ja die Hacken sind gesetzt

@Richi: Ja ist natürlich^^

@Superku: Ja das scheints zu sein.
Wenn ich das raus tu, laufe ich nich mehr durch^^
Allerdings ist da ein Problem.
Der Spieler bewegt sich in dem level auf einem Großem Zylinder. (Im Vid zu sehen)
Wen ich das use_aabb rausmache versinkt der Spieler ein Stück im Boden.
Das ist eine echte Zwickmühle Q.Q
Posted By: MasterQ32

Re: Model passable Problem - 02/16/10 21:53

kann ja sein laugh
Posted By: Superku

Re: Model passable Problem - 02/16/10 22:21

Quote:
Wen ich das use_aabb rausmache versinkt der Spieler ein Stück im Boden.


Das Problem ist doch nichts im Vergleich zum Anderen, liegt an deinem gravity code, ist min_z richtig gesetzt? (Sonst c_setminmax) Benutzt dein c_trace USE_BOX?
Posted By: Bloodangel

Re: Model passable Problem - 02/16/10 22:51

Also ein use_box benützen wir nicht.
Ich habe nun c_setminmax ins gravity script gesetzt.
Aber der Player kan sich danach nicht mehr richtig bewegen.

Ich kan ein Video machen wen das helfen würde ^^?
Posted By: Superku

Re: Model passable Problem - 02/16/10 23:50

Mach das mal und poste dein Bewegungs-Skript, bzw die relevanten Stellen.
Posted By: Bloodangel

Re: Model passable Problem - 02/17/10 00:48

Ok also hier wäre mal das gravity script:


FUNCTION game_gravity() {

result = c_trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000),ignore_me|ignore_passable);
c_setminmax(player);

//hier stehten sachen die mit dem Problem nichts zu tun haben.

my.velocity_z += (time * my.force_z) - (min(time*0.7,1) * my.velocity_z);
my.move_z = my.velocity_z * time;
}



Wen noch andere Stellen benötigt werden kan ich diese gerne zeigen.

Das Video werde ich dir gleich schicken.
Und wen noch jemand es möchte einfach wieder hier etwas schreiben.

Danke^^
Posted By: Superku

Re: Model passable Problem - 02/17/10 01:20

Ich schätze mal, game_gravity() wird einmal pro frame ausgeführt?
c_setminmax(player); ist dort leider total fehl am Platze, schreibe das an den Anfang deiner player-action außerhalb der while-Schleife.

result = c_trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000),ignore_me|ignore_passable);
Du schreibst gar nicht, wie result verarbeitet wird. Wie berechnet sich my.force_z ?

Und deine movement-Passage sieht nun wie aus?
Posted By: Bloodangel

Re: Model passable Problem - 02/17/10 15:28

Ich habe c_setminmax(player); an den Anfang der Player Action gesetzt ist auch außerhalb der Schleife aber es hat sich nichts geändert.

wegen my.force_z:

Code:
IF (result < 50) {
		IF (my.jumping_mode == 0) {
			my.force_z = -1 * result;
			IF (key_space == 0 && space_press == 1) { space_press = 0; }
			IF (key_space == 1 && space_press == 0 && my.movement_mode == 0 && my.animblend >= stand && my.animblend != jump && my.animblend != fall) {
				space_press = 1;
				my.jumping_mode = 1;
				my.force_z = 30; 
				my.blendframe = jump;
				my.animate2 = 0;
				my.animblend = blend;
			}
		}



Hier ist die Movment Passage die relevant ist:

Code:
c_move(my,nullvector,my.move_x,ignore_passable | glide);

	result = trace(vector(my.x,my.y,my.z - my.z_offset),vector(my.x,my.y,my.z - 4000));
	IF (result < 0) { my.z -= result; my.velocity_z = 0; }

	IF (target_enemy == null ) {
		IF (temp.y > 0) { rotate_entity(temp.x,30); }
	} ELSE {
		vec_diff(temp2.x,target_enemy.x,my.x);
		vec_to_angle(temp2.pan,temp2.x);
		rotate_entity(temp2.pan,30);
	}

	IF (my.movement_mode == 0) {
		my.gravity = 6;
		IF (my.move_x != 0 || my.move_y != 0) { 
			IF (my.animblend == stand) { 
				IF (key_shift == 1) { my.blendframe = walk; } ELSE { my.blendframe = run; }
			}
			IF (my.animblend == run && key_shift == 1) { my.blendframe = walk; }
			IF (my.animblend == walk && key_shift == 0) { my.blendframe = run; }
		} ELSE {
			IF (my.animblend > stand && my.animblend != jump && my.animblend != fall) { 
				my.blendframe = stand;
			}
		}


© 2024 lite-C Forums