Namen der Objekte aus den 3ds Dateien lesen? Geht das?

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

 

vanjolo

BeitragFr, März 11, 2011 0:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Kevin hat Folgendes geschrieben:

Ich möchte ja z.B. in EINER 3DS Datei 2 Autos als Meshs haben, aber es soll sich nur eins bewegen! Weil sonst würden es ja zu viele 3ds Dateien werden.


Very Happy

Das must du über Bones, Joints, Childs lösen...
Das Prinzip ist immer das selbe.

Du erstellst ein Mesh. Dann erstellst Du Joints (Bones) (das sind virtuelle Punkte im Mesh) und mit diesen Verbindest Du die Vertics die Du trennen willst.

mal ein Beispiel schnell gemacht...

Autorennbahn (Mesh)

user posted image

Die Modelle sind hier nicht einzeln geladen sondern in einem Mesh.
Über Find Child kannst du nun jeden joint ansprechen und mit ihm machen was du willst. Z.b. die Autos im Kreis fahren lassen.

Das ist alles.
***************************
in Entwicklung:
Tank Battles - Panzeraction
Pacific Battles - Rundenstrategie
abgeschlossenes Projekt: Harrier Assault
 

Kevin

BeitragFr, März 11, 2011 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir Klappt es nicht so wie es soll.
Das Viereck (map) soll sich in eine andere Farbe bekommen, das funktioniert nicht!
Das FindChild läd ja den Meshnamen aus einer 3DS Datei.

Code: [AUSKLAPPEN]
Graphics3D 640, 480, 0, 2
SetBuffer BackBuffer()
Kamera = CreateCamera()
PositionEntity Kamera, 0,150,0
RotateEntity Kamera, 90,0,0

light = CreateLight(1)
RotateEntity light, 90, 0, 0

ball = LoadMesh ("ball.3ds")



While Not KeyDown(1)
   RenderWorld
   entity = FindChild(ball, map)
   If entity > 0 Then EntityColor entity, 69,139,116
   Flip
Wend
End

Dottakopf

BeitragFr, März 11, 2011 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Für Milkshape user:

Noch ein kleiner Tipp wenn du die Unter-Objekte über dess Joints identifizierst(geht ja garnicht anders) dann setzte lieber den letzten Joint doppelt oder den letzten joint als reserve. Musste leider feststellen das Milkshape probleme verursacht wenn man versucht den zu letzt erstellten joint zu manipulieren oder abzufragen.

~EDIT~ Soweit ich es noch im Kopf habe ist Milkshape Keysensetive... also Groß und Kleinschreibung beachten.
Rechtschreibfehler gelten der allgemeinen Belustigung!
  • Zuletzt bearbeitet von Dottakopf am Fr, März 11, 2011 21:20, insgesamt einmal bearbeitet
 

Kevin

BeitragFr, März 11, 2011 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber mein Problem löst sich dadurch nicht...

Xeres

Moderator

BeitragFr, März 11, 2011 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Du wendest FindChild ja auch falsch an.
Code: [AUSKLAPPEN]
FindChild(ball, "name ist ein String!")
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Kevin

BeitragFr, März 11, 2011 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch wenn ich map in Anführungsstriche setze, färbt sich der Würfel nicht!

Dottakopf

BeitragFr, März 11, 2011 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
~EDIT~ hab den fehler schon... du musst das mesh mit LoadanimMesh(....) laden !!!
Er läd sonst keine Animationen, und die dafür benötigten Joints....

~Edit~ und ein UpdateWorld() tut deinem Code auch gut.. schließlich willst du ja das sich das mesh "updatet" (UpdateWorld wird vor RenderWorld ausgeführt...)


hm wir können dir so nicht genau sagen wo das problem ist.
Da wirst dich durch Debuggen müssen. Schau doch erstmal ob du das child/Joint findest

beispiel: (ausm kopf..)
Code: [AUSKLAPPEN]


mesh = loadanimmesh(" .... " )


child = findchild("mesh," joint name")
debuglog child



wenn das handle des Joints > 0 ist dann hast du schonmal den joint gefunden und das Problem liegt wo anders. Wenn der Joint nicht gefunden wird musst du nochmal milkshape und lade sequenzen ansehen.
Natürlich musst du den debugger an machen Smile
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

Kevin

BeitragFr, März 11, 2011 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
aber ich Arbeite nicht mit Milkshape sondern mit Anim8or!
 

vanjolo

BeitragSa, März 12, 2011 8:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Dottakopf hat Folgendes geschrieben:
Für Milkshape user:

Noch ein kleiner Tipp wenn du die Unter-Objekte über dess Joints identifizierst(geht ja garnicht anders) dann setzte lieber den letzten Joint doppelt oder den letzten joint als reserve. Musste leider feststellen das Milkshape probleme verursacht wenn man versucht den zu letzt erstellten joint zu manipulieren oder abzufragen.


Das habe ich noch nie beobachtet und ich arbeite seit der ersten Version mit Milkshape. Ich denke mal du hast eher eine Problem mit dem Assignen von Vertics.
***************************
in Entwicklung:
Tank Battles - Panzeraction
Pacific Battles - Rundenstrategie
abgeschlossenes Projekt: Harrier Assault

Dottakopf

BeitragSa, März 12, 2011 12:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Kevin... ich habe in meinen Post ziemlich genau einen Lösungsvorschlag angeboten.

weist schon... mal debugwerte uns mitteilen. Bzw. mal damit anfangen das das Mesh mit dem befehl

Code: [AUSKLAPPEN]
LoadanimMesh(....)


geladen werden muss.
Zudem braucht man ein

Code: [AUSKLAPPEN]
 Updateworld


im code weil sonst wird sich da mit den objekten ned viel tun...

Zum Thema Milkshape.. das war ja nur ein Hinweis. Ich kann den Bug bei allen meiner Spielermodels replizieren. Abhilfe verschafft nur das Joint erstellen in einer anderen Reihenfolge. Wobei der letzte immer nur buggy angesprochen werden kann.

Iwo hier im Portal habe ich meinen Fehler mal genau beschrieben. Bin nur grad zu faul zum suchen.
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

Kevin

BeitragSa, März 12, 2011 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs gelöst !

Ich habe unten beiCode: [AUSKLAPPEN]
   If entity > 0 Then EntityColor entity, 69,139,116
vergessen entity mit child zu tauschen^^ mann ich bin auch blöd!

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group