Ich habe folgende Ausgangslage:
Ich hab n’char, der so gut wie fertig gerigged ist. Ich brauche jedoch ne Funktion, mit der er ein Objekt in die Hand nehmen kann und ich das Objekt nicht von Hand den Bewegungen des Chars angepassen muss.
Ideen:
Ich habe ein Nullobjekt, das im Objektmanager der Hand untergeordnet ist und per Xpresso dem Objekt die Globalen Koordinaten und Winkel übergibt. Soweit kein Problem, doch wie kann ich es machen, dass ich ein Benutzerdaten-Feld habe indem ich per Link ein Objekt reinziehen kann und dann dieses dem Nullobjekt folgt???
Mit dem Objektnode geht das nicht, die Referenz kann nicht per “Benutzerdaten” verändert werden…
machs doch ganz simpel und ohne viel trara:
dublizier dein objekt, welches in die hand genommen werden soll, und ordne die kopie der hand unter. jetzt keyst du bim orginal und bei der kopie die Sichbarkeit beim Rendern (oder wie das noch mal heisst), genau in den beiden Frames, in dem dein Char das Objekt in die Hand nimmt. Also das Orginal schaltest du aus, und das, das in der hand liegt, an.
Und schon sieht es so aus als wurde dein Char etwas in die Hand nehmen.
Der Zuschauer weiss ja nicht, wie boese du trickst…
Nicht gerade elegant, aber innerhalb von Sekunden eingerichtet.
hmm… ja schon nicht so elegant aber is mir eigentlich schnurz, es muss einfach beim Animieren fix gehen, denn unsere Zeit is verdammt knapp.
Du brachtest mich auf ne idee: vielleicht gehts, dass ich mit nem Instanz-objekt arbeite. Die Schaltung schaltet die Sichtbarkeit des Originalobjektes automatisch aus, und die Instanz ein, wenn ich nen Boolschalter “Halten” aktiviere. Das Instanzobjekt ordne ich einfach der Hand unter.
es gibt da auch noch den fixieren-tag, wenn du das objekt in die hand nimmst muss er eben aus sein und beim absetzen, oder vor der aufnahme eben an.
==> ein objekt, keinerlei expresso und auch ein ganz akzeptables ergebnis.
PS: das objekt sollte dan natürlich der hand untergeordnet sein
hmm… auch ein Ansatz, aber ich will beim Animieren ja nicht ständig in der Hirarchie herumwursteln. Hab etwa 20 Controller und mit dem sollen wir den Robo animieren. Unter den Animatoren sind eben auch nicht-Cinemaisten, da kommt so ne hirarchie-verschieb-lösung nich so gut. Höchstes wenn ich per xpresso die Hirarchie verändere… hmm..
wollte gerade die von gasch beschriebene Methode am einrichten… ich geb dann bescheid
Wenn ich dich richtig verstanden habe, sollte der Node “Link-Liste” helfen. Schmeiss alle in Frage kommenden Objekte in die Liste und mit Benutzerdaten steuerst du dann per Index das richtige an.
ich habs vorläufig so gemacht, dass ich ein Instanzobjekt in die Hirarchie gelegt habe und kann nun per Benutzerdaten (und natürlich Xpresso) ein beliebiges Objekt instantisieren.
Funktioniert nur halbwegs, da die Bones nun auch auf das Objekt in der Hirarchie wirken. Zusätzlich muss ich das in der Hand haltende Objekt aus dem Sichtfeld verschieben, da ein Unsichtbarmachen auch die Instanz beeinflusst.
Versuche morgen mal die Version mit der Linkliste… Tx
PS: Manno, hätt nicht gedacht, dass ich an so was “kleinem” so lange hab
Ich hab in Cinema4dcafe ein file gefunden und das Ganze nachgebaut und in unserem Char eingebaut… uiii…
Wie die Datei funktioniert:
Per xpresso wird die Globale Matrix des Handgelenks an ein Nullobjekt, das als Überobjekt des zu haltenden Objekts fungiert, übergeben. Dabei wird das zu haltende Objekt (das ja bekanntlich dem “halter”-Nullobjekt untergeordnet ist) per “fixieren”-Tag an Ort und Stelle gehalten.
Sobald nun Die Hand (oder ein anderes Objekt, dass den Gegenstand halten soll richtig ausgerichtet ist, deaktiviert man den “fixieren”-Tag am zu haltenden Objekt und schwupps: Das Objekt folgt der Hand… coolcool