[SOURCE] Physikalische Rampe
Fangen wir also an. Als erstes bauen wir uns einen kleinen Raum, mit einer Wand und einem Loch, wo dann der Fahrstuhl reinkommt.
Dan fangen wir an mit der Rampe. Einfach ein Brett, in func_physbox umwandeln und den Namen "Rampe" geben.
Dann noch den Henkel dran, wieder zu func_physbox, und den Namen Rampen_henkel.
Jetzt kommen vorne und hinten an die Rampe jeweils ein phys_hinge-entity. Wie hier auf dem bild anordnen.
In den Properties jeweils bei Entity 1 die Rampe angeben, bei Entity 2 den Henkel. Bei dem Hinge an dem Henkel hinten, muss noch der Flag "No Collisions until brake" aktiviert werden.
So. Jetz zu dem Fahrstuhl, wo was Schweres draufgeworfen werden muss.
Einfach aus ein paar Brushes eine Plattform in das Loch bauen (Ich hab noch einen Pfoisten mit dazugebaut, wo dann das Seil dranhängt), zu func_physbox machen und den kreativen Namen "Fahrstuhl" geben. Wichtig ist, den Flag "MotionDisabled" zu aktivieren, damit die Plattformn och nciht runterfällt!
Jetz bauen wir uns eine kleine Rampe zum hochlaufen, wovonaus man etwas in den Fahrstuhl werfen/schubsen kann. Ich zeige hier auch gleich, wie der Fahrstuhl "auswählt", ob das Objekt schwere genug ist. Ich habe mal ein Fass und eine Waschmaschine als prop_physics auf die Plattform gestellt. Die Waschmaschine bekommt den genialen namen "Waschmaschine", das Fass bleibt ein unbeschriebenes Blatt.
Nun kommt in den Fahrstuhl ein trigger_once, der dann den Fahrstuhl zu Fall bringt.
Nun brauchen wir ein Entity. und zwar das "filter_activator_name". Dieses Entity bekommt den Namen "Filter", und bei Filter Name geben wir "Waschmaschine" an, also unser Schweres Objekt.
Jetz gehen wir wieder in die Einstellungen des Trigger_once. Bei "Filter Name" soltle man jetz schon im Drop-Down_Menü "Filter" auswählen können.
Das machen wir. Der Trigger wird jetz nur auf Objekte reagieren, die der filter_activator_name zulässt, in unserem Falle die Waschmaschine. Das Fass ist dem Trigger egal. Darauf wird er keine Reaktion zeigen.
Jetz noch bei den Flags das Häkchen vor "Clients" entfernen, und vor "Physic Objects" setzen.
Jetz kommt der Output des Triggers. Er sollte so aussehen:
Nochmal zur zusammenfassung: Der Trigger wird jetz, sollte ein Object, was durch den Filter kommt, ihn berühren, den Fahrstuhl wieder den physikalischen Kräften entgegensetzen, worauf er herunterfallen wird.
Doch wie bekommen wir die Rampe jetz dazu, sich im Gegenzug herraufzubewegen?
Ganz einfach. Erstmal machen wir ein paar Seile, nur zur Optik, mit move_rope. In etwa, wie hier:
Bei den eingekreisten nicht vergessen, ein parent anzugeben. Bei dem linken wäre das der Henkel, bei dem rechten der Fahrstuhl.
Jetz setzen wir oben auf den henkel ein info_constraint_anchor und geben ihm den Namen "rampen_anchor". bei Parent tragen wir wieder den Rampenhenkel ein.
Jetz setzen wir ein phys_constraintsystem und geben ihm den simplen namen Constraintsystem.... Wo das Entity sitz, ist egal.
Jetz setzen wir an den "Knotenpunkt" (wenn man so will....) ein weiteres Entity, und zwar ein phys_pulleyconstraint. Bei Entity 1 geben wir den Fahrstuhl an, bei Entity 2 den rampen_anchor. Bei ConstraintSystemManager geben wir noch Namen des phys_constraintsystem an, also "constraintsystem".
Nun gehen wir in einem der Fenster Top, side oder front mit dem Mauszeiger in den weißen Kreis, wo der Mauszeiger zu einem weißen Kreuz wird.
Mit gedrückter Maustaste ziehen wir den Kreis nun an die Stelle über dem anchor an dem Balken. Nach dort soll die Rampe ja angehoben werden.
Das wars schon. Jetz nochmal zu den Einstellungen des pulleyconstraints. Bei "Additional Lenght" und "Pull Gear Ratio" kann man mit positiven/negativen Werten bewirken, dass zum Beispiel der Fahrstuhl weniger runtersackt, die Rampe aber weiter hochgezogen wird und so weiter. Muss man ein bisschen damit rumspielen^^
So, das wars jetz aber.