Bones für eigene Bewegung nutzen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Bonkers

Betreff: Bones für eigene Bewegung nutzen

BeitragMo, Jun 13, 2005 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Um das "Gefühl" für B3D zu bekommen habe ich erstmal mit ein paar Fingerübungen angefangen.
Zwei Kugeln, zwei (lange) Zylinder und fertig war ein schickes Mehrkörpersystem. (System mit 4 Freiheitsgraden, keine Torsion)
Soweit klappt alles auch ganz gut. Ich kann die Animation zum "berühren" eines bestimmten Punktes berechnen und sie wird "live" ausgeführt.

Allerdings habe ich auch festgestellt das es in manchen Situationen zu unschönen Überschneidungen kommt.

Also habe ich mir das ganze System in Milkshape aus dem "ganzen" hergestellt und mit 2 Bones versehen.

Nun meine Frage: Kann ich in B3D die Bones direkt ansprechen und ihre Lage im Raum verändern?

Mit FindChild und GetChild finde ich zumindestens die Einzelteile, aber was kommt danach (bzw. wie positioniere ich sie neu)?
 

Dreamora

BeitragMo, Jun 13, 2005 23:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du das ganze als B3D aus Milkshape exportierst, dann wirst du Bones wie die anderen Meshes über FindChild finden und (wenn ich mich nicht irre) über die Entitybefehle entsprechend verändern.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Bonkers

BeitragDi, Jun 14, 2005 7:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm...also ich gehe bisher so vor:
(Die Bones heißen bone1,bone2 und die daran befindlichen Meshs arm1 und arm2)

Ich möchte nur den ersten "Teilabschnitt" erstmal bewegen:

mks =LoadMesh("mks.b3d") ; Mesh des MKS laden
bone = FindChild(mks,"bone1")
arm1 = getchild(mks,bone)

Bis hierhin läuft es ohne Fehler.

Wenn ich jetzt jedoch ein:

MoveEntity arm1,x#,y#,z#

mache, bekomme ich immer eine Fehlermeldung...

Henry

BeitragDi, Jun 14, 2005 7:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Afaik musst Du mit LoadAnimMesh das Entity laden, sonst funktioniert FindChild und GetChild nicht.
Aiya Eärendil Elenion Ancalima!

All you have to decide is what to do with the time that is given to you.

Robsite.de ist eine Anlaufstelle für Tutorials und Tools, die Noobs das Leben leichter machen!
Forensuche ist nicht nur als Lückenfüller in den oberen Links gedacht!
 

Bonkers

BeitragDi, Jun 14, 2005 7:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich an Stelle von "LoadMesh" "LoadAnimMesh" benutze, kommt trotzdem eine Fehlermeldung wenn ich es versuche mit "MoveEntity" zu bewegen.

Also irgendwie habe ich hier noch einen Denkfehler drin...bloß wo?
 

Dödel

BeitragDi, Jun 14, 2005 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast ja auch arm1 nicht... Du hast nur Bone und kannst deshalb auch nur bone bewegen.
 

Bonkers

BeitragDi, Jun 14, 2005 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke...das war der Denkfehler!

Ich schreibe nochmal für alle die irgendwann mal das selbe Problem haben, den (meinigen) vollständigen Lösungsweg hin:

BlitzBasic: [AUSKLAPPEN]


körper = LoadAnimMesh(\"modell.b3d\")
körperteil = FindChild(körper,\"Bone-Name\")
[...]
MoveEntity körperteil,x#,y#,z#
 

Dödel

BeitragDi, Jun 14, 2005 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte bitte.
Genauso gehörts.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group