Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Elrohir

Pages: [1] 2 3
1
German corner / Re: "Anhängsel"-Objekte oder Child-Objects?
« on: July 16, 2009, 09:54:04 pm »
Nungut, dann werde ich es mit den berechnungen versuchen.. das problem ist natürlich erstmal, die passenden vertexe für die berechnung von der Figur zu bekommen... Denn auch wenn mir bekannt ist, dass man darauf per PolygonManager zugreifen kann, so muss natürlich zuerst der richtige puntk gefunden werden, was wohl eine weile dauern kann, und dann muss eben auch irgentwie bei einem punkt herausgefunden werden, welcher von der figur es ist^^
Aber gut, das werde ich mit ein bisschen Geduld und spucke wohl herausbekommen.... werde mich dann wiedermelden, sobald es geklappt hat (oder ich kläglich gescheitert bin^^) :)

2
German corner / Re: "Anhängsel"-Objekte oder Child-Objects?
« on: July 16, 2009, 07:15:13 pm »
Also, es sei denn natürlich, es gibt eine methode um die texturen alle in eine zu komprimieren, und diese textur dann richtig aufzutragen, die ich bissher übersehn habe (und ich rede nicht von stundenlangem rumprobieren, bis endlich alles sitzt^^)

3
German corner / Re: "Anhängsel"-Objekte oder Child-Objects?
« on: July 15, 2009, 04:48:09 pm »
in der tat, müsste klappen, ein interessanter ansatz =) vielen dank mal wieder =)

EDIT: das MD2-forrmat wäre zwar eine lösung, doch wie schon bei einem alten thread erwähnt scheue ich dies, weil man nur eine textur verwenden kann, und bei meinen modellen nunmal nur zu häufig mehrere zum tragen kommen... insbesondere da bei den MD2-files die Texturen doch nachträglich nach dem laden in jPCT aufgetragen werden müssen, und dann würde es mit der richtigen positionierung und skalierung doch eh probleme geben :o

4
German corner / "Anhängsel"-Objekte oder Child-Objects?
« on: July 15, 2009, 02:33:29 am »
Guten Abend,

mal wieder treibt mich eine weitere Frage, zu der ich bissher keine Antwort zu finden imstande war, hierher...
In der feud-demo hattest du eine Waffe als child-objekt dem Charakter zugewiesen....somit hat sie sich bei bleibender hand-position ja auch super mitbewegt...
Doch was geschieht, wenn sich die Hand bewegt? ist es möglich, quasi eine art "Ausrüstung" festzulegen, die dann an bestimmten korperstellen mitbewegt wird?
wenn man z.B. einem charakter einen knüppel in die hand gibt, dass bei einer schlagbewegung dieser knüppel entsprechend der Handbewegung mitbewegt wird?
Allerdings müsste dies unabhängig von dem knüppel geschehen... denn man könnte zwar einfach eine animation des charakters mit knüppel machen, doch mit diesem System kommt man nciht weiter, wenn man verschiedene "Waffen" nur auswahl hat, und mehrere Charaktere... ab einem gewissen grad kann man ja nichtmehr sämtliche kombinationen animieren und dementsprechend aufrufen....
gibt es in jPCT somit eine Möglichkeit, bestimmte Gegenstände einander "anzupassen"?

MfG
Elrohir

EDIT: die frage stelle ich, insbesondere dieses Beispiel, weil ich mich mit der programmierung eines kleines rollenspiels beschäftige, und natürlich sollen die Charaktere auch individuelle Ausrüstung tragen und an- und ablegen können ;)

5
German corner / Re: Sprunghafte drehungen und verschiebungen...
« on: June 18, 2009, 11:58:20 am »
ja, genau diese steuerung war es, die wir versuchten, zu erlangen^^
Vielen dank für deine hilfe :)

6
German corner / Re: Sprunghafte drehungen und verschiebungen...
« on: June 15, 2009, 08:35:54 am »
So, ich denke mal, das passt noch in dieses Thema, da es immer noch relevant ist...
undzwar geht es jetzt darum, dass nach einigem rumprobieren festgestellt wurde, dass bei den drehungen immer noch eine rotation um die y-achse vorhanden ist, obwohl bei der Methode ja lediglich die x- und z-achse verwendet wurden.
Ein speichern der bereits gedrehten werte dürfte allerdings nichts ändern, denn wenn man die maus nur in Y- oder X-richtung verschiebt, dann dreht sich der character auch wie gewollt um die jeweilige Achse. Nur in Kombination dieser beiden drehungen wird der character auch anders gedreht, sodass die Welt quasi auf dem kopf stehen kann, nachdem man die camera eigentlich vertikal um den character gedreht hat...
vermutlich dafür zu ändernder code-abschnitt:
Code: [Select]
float differenceX = mousemapper.getDeltaX();
float differenceY = mousemapper.getDeltaY();
SimpleVector line = new SimpleVector(differenceX, 0,
differenceY);
Matrix m = line.normalize().getRotationMatrix();
m.rotateAxis(m.getXAxis(), (float) -Math.PI / 2f);
camera.rotateAxis(m.invert3x3().getXAxis(), line.length() / 200f);[/coe]

7
German corner / Re: Sprunghafte drehungen und verschiebungen...
« on: May 26, 2009, 05:13:54 pm »
Allerherzlichsten Dank! :)

Die Gravitation hatte ich erst genommen, weil es ein charakter werden sollte, der auf dem boden läuft, doch zu vorführungszwecken erschien ein fliegender Charakter als erstes Modell passender ;)

Zu den Rotationen: ich dachte leider, die Rotationen würden das Gradmaß verlangen... aber in der tat habe ich mich selber schon stark gewundert, warum die Ergebnisse nicht den erwarteten entsprachen^^

zum world.checkCollision: ich hatte gedacht, dass man immer die Welt nehmen muss, weil diese ja alle Objekte in sich "vereint"... danke für die Aufklärung :)


Zusammengefasst: hilft mir sehr weiter! :)^^

8
German corner / Re: Sprunghafte drehungen und verschiebungen...
« on: May 22, 2009, 03:32:59 pm »
Kann das irgendwie gerade nicht runterladen...die Sanduhr erscheint und nichts passiert, wenn ich auf deinen Link klicke...ist der Server unten?

hm, probiers am besten nochmal, also, ich habs grad nochmal versucht, und es hat ohne probleme funktioniert :o

Aber falls nicht, habe es nochmal auf nem andern server hochgeladen:
http://download.lima-city.de/schattenmagier/3DTestview.rar

9
German corner / Re: Sprunghafte drehungen und verschiebungen...
« on: May 21, 2009, 01:51:30 pm »
hm, irgentwie will es immer noch nicht so ganz...

Habe jetzt einmal alle nötigen dateien in nem ordner zusammengestellt... ich hoffe mal, du kannst was damit anfangen...
Den quellcode von der bewegung etc. findest du in dem src-ordner..
Die ausführbare datei ist dementsprechend die 3D testview.jar

Ich hoffe sehr, dass eine lösung für das problem gefunden werden kann... (beziehe mich hierbei auf die interessanterweise immer noch vorhandene rotaten NICHT um den mittelpunkt des charakters, und die inzwischen auch leider nicht mehr ganz passende rotation....)

http://upload.worldofplayers.de/files3/VRY503DTestview.rar

10
German corner / Re: Sprunghafte drehungen und verschiebungen...
« on: May 18, 2009, 10:18:56 pm »
Den Drehpunkt kannst du mit setRotationPivot(...) setzen. Ansonsten kann ich wirklich nur schwer folgen gerade... ??? Du setzt die Translation mittels character.setTranslationMatrix(new Matrix()); immer zurück, ermittelts eine neue in Richtung der Achsen der Rotationsmatrix und rechnest die permanent in das Mesh rein mittels translateMesh()...also erstmal solltest du wirklich diese translateMesh()-Aufrufe loswerden. Die brauchst du nicht und die sind schrecklich langsam und das Resultat ist schwer zu handhaben, weil das Objekt dann eben nicht mehr da im Objectspace steht, wo es mal war, sondern irgendwie bei (-1000, 1981,88232)...das versteht kein Mensch mehr hinterher.
Wenn du character.setTranslationMatrix(new Matrix()); und translateMesh(); rauslässt, sollte das Resultat eigentlich sehr ähnlich dem jetzigen sein.

Die Steuerung in GuildWars kenne ich nicht, deswegen verstehe ich das hier wohl auch nicht...also du drehst du Kamera um die Figur...ok...also sagen wir mal, die sehe die Figur danach so, dass ich auf ihre rechte Seite schaue. Jetzt bewege ich die Figur nach vorne und...da verlässt es mich...wer "holt" hier jetzt welche Bewegung von wem nach?

Nungut, das mit der translationsmatrix und dem translatemesh konnte ich wieder entfernen... ich kannte das mit dem rotationpivot leider nicht, und dachte, dass dabei dann das rotationskoordinatensystem verschoben würde...

nja, also das rotieren klappt jetzt fast... nur irgentwie verschiebt sich die position des charakters immer noch teilweise, was aber vermutlich durch die fehlerhafte bewegung ausgelöst wird...
ich werde morgen mal versuchen, das zu beheben, indem ich von dem up-und side-vector der Camera den orthogonal dazu liegenden Vector berechne, und dann den und den Side-vector bei der bewegung benutze statt wie bisher die axen, da diese ja immer in die gleiche richtung zeigen...

zu der letzten frage: an diesem punkt dreht sich die figur dann erst so, dass die kamera nicht mehr von der seite draufguckt, sondern eben wieder von hinten.... deswegen speichere ich halt, wie weit sich die kamera um das objekt gedreht hat, und drehe das objekt dann soweit nach, dass die kamera bei einer bewegung immer genau von hinten draufguckt...

11
German corner / Re: Sprunghafte drehungen und verschiebungen...
« on: May 18, 2009, 09:06:24 pm »
ok, nach einigen weiteren tests habe ich glaube ich das hauptproblem, auf dem das alles basiert ausfindig gemacht...
undzwar dreht sich der charakter nicht in seinem zentrum, sondern er dreht sich um den startpunkt...
Allerdings habe ich noch keine lösung gefunden, um das koordinatensystem für die drehung in den charaktermittelpunkt zu transferieren...
habe schon drüber nachgedacht, den charakter einfach zurückzubewegen.. sah dann  so aus:

Code: [Select]
if(publickeys.up || publickeys.down || publickeys.left || publickeys.right){
            Matrix mat = character.getTranslationMatrix().cloneMatrix();
            character.setTranslationMatrix(mat.invert());
            character.translateMesh();
                    character.getRotationMatrix().setIdentity();
            character.rotateY(-rotychar);
            character.rotateX(rotxcharnew);
            character.rotateY(rotychar + rotycharnew);
            rotxchar += rotxcharnew;
            rotychar += rotycharnew;
            rotxcharnew = 0;
            rotycharnew = 0;
            character.rotateMesh();
            character.setTranslationMatrix(mat);
            character.translateMesh();
}

jedoch funktionierte es auch damit nicht..
nja, aber auf jeden fall löst das das verschieben problem, da der charakter dann ja von der gedrehten stelle aus sich weiterbewegte, beim zurückdrehen um nicht nicht bewegten drehpunkt, war der abstand zu der kamera, die sich korrekt verhielt natürlich verändert..


ja, diese zeile konnte ich auch streichen....
Nun, was ich erreichen will ist, dass man bei aktiviertem rechtsklick die kamera um den charakter drehen kann...
wenn man sich bewegt, soll der charakter die drehung mitvollziehn... also auch nach drehung der kamera und späterem beginn der bewegung diese drehung "nachholen".... ist mit der steuerung in spielen wie guild wars gut zu vergleichen denke ich ;)

ein kompilierbares beispiel habe ich jetzt leider nicht zu hand, werde die tage aber zusehn, dassich eins zusammenstelle, wenn es bis dahin nicht gelöst ist ;)

EDIT: das backposition speicher einfach den simplevector der momentanen position ab ;)

12
German corner / Re: Sprunghafte drehungen und verschiebungen...
« on: May 18, 2009, 08:37:18 pm »
Hmm, also so ad hoc fällt mir auf, dass

Code: [Select]
character.getTranslation().set(0,0,0);

nicht den Zweck erfüllen wird, für den es vermutlich gedacht war. Der Rückgabewert von getTranslation() ist immer ein neuer Simplevector, keine Referenz auf die Translation des Objekts an sich. Besser wäre:

Code: [Select]
character.getTranslationMatrix().setIdentity();

Weiterhin macht

Code: [Select]
character.translateMesh();

die Translation permanent im Mesh...ich denke nicht, dass es das ist, was du machen willst.

Ohne jetzt jede Zeile einzeln durchgegangen zu sein, denke ich, dass es vielleicht schon helfen könnte, wenn du beide Zeilen ersatzlos streichst.


Nunja, nur habe ich dann das problem, dass der charakter sich gar nicht mehr bewegt, wenn ich diese beiden zeilen ersatzlos streiche....
Also, um genau zu sein isses so, dass sich die kamera beim bewegen halt bewegt... der char nicht... und wenn ich rotiert habe, dann bewegt sich die kamera aber immer noch in die axialrichtung des vorigen koordinatensystems.... also das muss iwi schon da hin...

ok, das ist jetzt komisch.... wenn ich das translatemesh drinlasse, dann dreht bewegt sich der char mit... aber nach der drehung trotzdem noch in die gleiche richtung...
allerdings habe ich das gefühlt, dass sich der charakter gar nicht so weit bewegt, dass dessen zentrum dann auch an der position liegt...
denn wenn ich dann die kamera drehe, dreht sie sich scheinbar um einen punkt irgentwo VOR dem charakter.... undzwar weiter vorne, je länger ich ihn bewege...
Desweiteren fällt mir noch auf, dass das bild dann halt immer flackert, weil die cam ja kurzzeitig in dem charakter ist, und wieder rauszoomt... wie kann man ein neuzeichnen währrenddessen umgehen? :o

EDIT: hm, ok, das mit dem neuzeichnen lässt sich ja mit einer boolean-variable einfach steuern.. aber das andre is mir bissher schleierhaft, wieso das nicht funktioniert :o

13
German corner / Sprunghafte drehungen und verschiebungen...
« on: May 17, 2009, 05:59:47 pm »
Guten Abend...
Mein ziel ist es derzeit, eine Kamera nach dem klicken der rechten Maustaste um einen charakter herumdrehen zu können, und nur, wenn man den charakter bewegt,soll dieser mitgedreht werden...
Und falls er sich nicht bewegt, wird der dreh-wert gespeichert und danach auf den charakter angewendet...

So, allerdings habe ich noch kleinere Probleme.... undzwar zuckt die darstellung teilweise, aber das ließe sich hoffentlich noch beheben, und das größere problem, dass du bewegungsrichtung irgentwie scheinbar wahllos ist, obwohl ich mir immer die achsen der Rotationsmatrix hole...
Desweiteren verschiebt sich der charakter von der mitte des Bildschirms aus.... was nicht unbedingt der erwünschte effekt ist^^
Hier einmal der code:
der character ist ein object3D und die camera halt das Camera-objekt... sollte wohl alles durch die namensgebung ersichtlich sein, hoffe ich...

Code: [Select]
character.setTranslationMatrix(new Matrix());

    SimpleVector pos = new SimpleVector(0,0,0);
    pos.add(new SimpleVector(0, ellipsoid.y, 0));
            SimpleVector dir = world.checkCollisionEllipsoid(pos, grav, ellipsoid, 1);
            pos.add(new SimpleVector(0, -ellipsoid.y, 0));
            dir.x = 0;
            dir.z = 0;
            pos.add(dir);
            pos.add(new SimpleVector(0, ellipsoid.y, 0));
           
if(publickeys.up){
SimpleVector temp = character.getRotationMatrix().getZAxis();
                temp.scalarMul(-moveSpeed);
                temp = world.checkCollisionEllipsoid(pos, temp, ellipsoid, 8);
                pos.add(temp);
                temp.add(dir);
}
if(publickeys.down){
SimpleVector temp = character.getRotationMatrix().getZAxis();
                temp.scalarMul(moveSpeed);
                temp = world.checkCollisionEllipsoid(pos, temp, ellipsoid, 8);
                pos.add(temp);
                temp.add(dir);
}
if(publickeys.right){
SimpleVector temp = character.getRotationMatrix().getXAxis();
                temp.scalarMul(-moveSpeed);
                temp = world.checkCollisionEllipsoid(pos, temp, ellipsoid, 8);
                pos.add(temp);
                temp.add(dir);
}
if(publickeys.left){
SimpleVector temp = character.getRotationMatrix().getXAxis();
                temp.scalarMul(moveSpeed);
                temp = world.checkCollisionEllipsoid(pos, temp, ellipsoid, 8);
                pos.add(temp);
                temp.add(dir);
}
if(publickeys.lookUp){
//camera.moveCamera(Camera.CAMERA_MOVEUP, 10);
}
if(publickeys.lookDown){
//camera.moveCamera(Camera.CAMERA_MOVEDOWN, 10);
}
            pos.add(new SimpleVector(0, -ellipsoid.y, 0));
            synchronized(character){

                character.getTranslation().set(0,0,0);
                character.translate(pos);
                character.translateMesh();
                pos.add(character.getBackPosition());
                character.setBackPosition(pos);
                character.setCenter(pos);
                synchronized(camera){
                camera.moveCamera(Camera.CAMERA_MOVEIN, 300);

                    //camera.setPositionToCenter(character);
        if(publickeys.rotatex){
        float rotynew = 0;
        float mousexnew = mousemapper.getMouseX();
        float difference = -(mousexnew - mousex);
        if(difference>0)
        rotated=true;
        rotynew = difference/210;
        if(rotynew!=0)
        mousex = mousexnew;
        float mouseynew = mousemapper.getMouseY();
        difference = -(mouseynew - mousey);
        if(difference>0)
        rotated=true;
        float rotxnew = difference/210;
        if(rotxnew!=0)
        mousey = mouseynew;
        //camera.rotateCameraY(-roty);
        camera.rotateCameraX(-rotx);
        camera.rotateCameraY(rotynew);
        camera.rotateCameraX(rotx + rotxnew);
        //camera.rotateCameraY(roty + rotynew);
        rotx += rotxnew;
        roty += rotynew;
        rotycharnew += rotynew;
        rotxcharnew += rotxnew;   
        }
       
                    if(publickeys.up || publickeys.down || publickeys.left || publickeys.right){
                    if(rotated){
            character.getRotationMatrix().setIdentity();
            character.rotateY(-rotychar);
            character.rotateX(rotxcharnew);
            character.rotateY(rotychar + rotycharnew);
            rotxchar += rotxcharnew;
            rotychar += rotycharnew;
            rotxcharnew = 0;
            rotycharnew = 0;
            character.rotateMesh();
                    rotated=false;
                    }
                    }
                    camera.moveCamera(Camera.CAMERA_MOVEOUT, 300);

                }
            }

14
German corner / Re: Animation -> verbundene polys
« on: April 14, 2009, 10:02:27 pm »
Aha, super!

Also, falls es dich interessiert, das ganze sieht dann so aus: http://www.thyalae.eu/index.php?mod=downloads&search=video (divX codec von nöten) :) (das erste video... die andern sind übrigens direkt aussem editor aufgenommen, und nicht per jPCT....)

15
German corner / Re: Animation -> verbundene polys
« on: April 14, 2009, 09:40:08 pm »
Ja, die Anzahl Punkte schwankt. Das tut sie bei mir schon, wenn ich die einzelnen Modelle in DeepExploration anzeigen lasse. Dann klappt das mit der Interpolation natürlich nicht, weil letztendlich ja Punkte und nicht Polygone interpoliert werden. Du musst irgendwie erreichen, dass die Punktanzahl konstant bleibt. Womit erstellst, bzw. exportierst du die Teile?

Habe das problem inzwischen gelöst... im 3ds-exporter gab es eine einstellung, dass ab nem bestimmten wert iwi die punkte zusammengeführt werden oder so ähnlich... kaum stellte ich das aus, hat alles funktioniert :)

Pages: [1] 2 3