(Ziel-)Null-Objekt nur innerhalb eines Objektes bewegen lassen (maybe mit Xpresso?)

Master-E

Erfahrenes Mitglied
Hi Leute.

Da ich mich nicht besonders gut mit Xpresso auskenne (und auch bisher wenig damit gemacht hab) will ich euch mal fragen wie ich folgendes mit Expresso lösen kann:

Ich hab ein Null-Objekt das als Ziel eines Scheinwerfers dient.
Dieses (Ziel-)Null-Onjekt soll sich aber nur innerhalb eines Objektes bewegen dürfen
Beispiel: eine Scheibe oder ein Zylinder (also die Grenze soll im Kreis verlaufen)

jetzt wüsste ich gerne wie ich das mit Xpresso (oder eine leichtere Methode) lösen könnte

Wenn mir jemand helfen kann, dann tut das bitte ^^ :D

Danke schonmal im Voraus

Greets, Master-E
 
Hi!

Also ich hoff mal du kannst die Schaltungen wenigstens zusammenstecken ;-)
Also als erstes wür ich mal einen Node für dein 0O erzeugen. Jeden der drei Positionsausgänge führst du dann in einen Begrenzen Node hinein, dort stellst du dann jeweils die Bewegungsfreiheit ein. Anschließen führts du die Werte wieder in eine zweite 0O-Node hinein. Dann bleibt der körper schonmal innerhalb eines Würfels.

Das ganze könntest du dann noch verfeinern, indem du die Grenzen der Begrenzungsnodes mit einem "echten" Würfel kombinierts.

Für eine Kugel solltest du dir mal die Maxpnhomepage ansehen. Dort wir ein XPresso Tutorial zum Download angeboten (unter Dokumentation)

Auch interessant wäre die Möglichkeit mit Thinking Partcles zu arbeiten.
Du erzeugst einen einzelnen Partikel, und lässt ihn in deinem Objekt entstehen, lässt ihn aber von den Innenwänden abprallen. Jetzt nimmst du noch einen Gravitationsnode, und ziehst mit voller Kraft den Partikel richtung dem Nullobjekt. Die Positionsdaten des Partikels überträgst du wieder auf ein eanderes Nullobjekt

Ist ne gute Übung, um in Xpresso reinzukommen ;)
 
Hi!

Anbei ein Weg über ein zweites "Null-Objekt":
"target" versucht "move" zu erreichen, wenn move außerhalb Reichweite "Konstante", dann wird der "Radius" auf eben diese Konstante gesetzt...

Liebe Grüße,
Mark.
 

Anhänge

  • maxradius.jpg
    maxradius.jpg
    38,7 KB · Aufrufe: 32
Ah danke für die schnellen Antworten!

Werd dann mal das versuchen was ihr mir gsagt habt :)

meld mich dann wieder ;)


Greets, Master-E
 
(sorry wegen doppelpost ^_^°)

Also ich hab grad rumprobiert und mir überlegt ob man das nicht einfacher machen könnte..

Also dass man z.B. die Position des 0-Objektes einfach auf den Radius des Zylinders Beschränkt.

Also ungf so: wenn Zylinderradius 100 ist, X/Y position des 0-Obj. maximal 100m von X=0/Y=0 entfernt.

Bei mir will es aber nur nicht klappen.. wenn ich das so aufbau wie ich mir das vorstelle dann wird auf einmal mein zylinder total dünn und lang oO

hab das so gemacht:

[suchscheinwerfer Ziel (Position)]<-------->[(Max) Beschränkung (Ausgang)]<------->[(Radius) Bewegungsradius]

(würd ja gern nen Screen posten aber ich peil das mit meiner neuen Tastatur nicht -.-")

könntet ihr mir nen tipp geben wie ich das vieleicht auf die weise machen könnte? (würds nämlich viel lieber selber machen als Xpressions abzuschreiben ^^)
 
Zuletzt bearbeitet:
Hi!

Hm, es tut mir leid, Deinen Ansatz verstehe ich überhaupt nicht. :(

Grundsätzlich: Du kannst nicht direkt Deinen Abstand setzen. Wenn Dein Ziel-Objekt den Radius übersteigt, weißt Du zwar wie groß der Abstand ist, aber diesen ändern geht nicht, da es ja unendlich viele Positionen mit dem gewünschten Abstand gibt: alle Punkte auf dem Kreis/der Kugel um Dein Zentrum... ;)

Wichtig ist also, daß Du die "Richtung" des Ziel-Objekts kennst, um - gemeinsam mit dem Abstand - zu einer eindeutigen Position zu kommen -> Polarkoordinaten.
Die Polarkoordinaten habe ich in obigem Beispiel einfach durch das zweite Null-Objekt gefaket (die Normale ist ja ein Vektor der länge Null, der in "Richtung" Ziel schaut).

Alternativ kannst Du also die Position Deines Ziel-Objekts in Polarkoordinaten wandeln, Du erhälst dann den Winkel Phi und den Radius r. Ist nun r zu groß, diesen korrigieren. Anschließend wieder Phi und Radius in Positionskoordinaten umwandeln und dem Ziel-Objekt zuführen...

...so wäre halt der Weg über Mathe, ob's evtl. getrickst einfacher geht, weiß ich nicht ;)

Liebe Grüße,
Mark.
 
Ok ich bau dann doch lieber deine Xpression nach ^^

Aber eine Frage: Wo finde ich die Nodes [Allgemein|Normale] und [Allgemein|real] ?

[edit] Ah Ok habs gefunden :D

greets, Master-E


[EDIT] SUPI! DANKE! HAT GEKLAPPT :D
 
Zuletzt bearbeitet:
Hi!

Mal ein ganz anderer Ansatz per Ray-Kollision:
Schneidet die "Verbindungslinie: Mittelpunkt eines Polygonobjekts - move" das Polygonobjekt, setze "inner" auf die Schnittposition. Sonst übernehme die Position von "move" ... "inner" bleibt im Polygonobjekt, auch, wenn "move" dieses verläßt... :)

Liebe Grüße,
Mark.

//edit: ups, Bildchen vergessen...
//edit2: ups2, nun hat es bereits geklappt ... verbuchen wir's als "Wochenendzuschlag" :)
 

Anhänge

  • innerobjekt.jpg
    innerobjekt.jpg
    23,1 KB · Aufrufe: 22

Neue Beiträge

Zurück