De/Emancipation Grid: Difference between revisions
Innocentive (talk | contribs) (Page creation part 1) |
Innocentive (talk | contribs) (Addition to unfinished page) |
||
Line 28: | Line 28: | ||
=== Schritt 1: Erstellung der Emitter-Modelle === | === Schritt 1: Erstellung der Emitter-Modelle === | ||
Klicke auf der linken Seite des Hammer-Editors auf das Entitäten-Werkzeug https://developer.valvesoftware.com/w/images/3/32/Mt-entities.png.<br> | Klicke auf der linken Seite des Hammer-Editors auf das [[Hammer Entity Tool:de|Entitäten-Werkzeug]] https://developer.valvesoftware.com/w/images/3/32/Mt-entities.png.<br> | ||
Wähle nun auf der rechten Seite des Editors in dem mit 'Objects' betitelten Auswahlmenü ein prop_static aus.<br> https://developer.valvesoftware.com/w/images/3/33/Objects_prop_static.png<br><br> | Wähle nun auf der rechten Seite des Editors in dem mit 'Objects' betitelten Auswahlmenü ein prop_static aus.<br> https://developer.valvesoftware.com/w/images/3/33/Objects_prop_static.png<br><br> | ||
Jetzt kannst Du durch einfachen Mausklick in dem 3D-Ansichtsfenster (üblicherweise im oberen linken Viertel) an der gewünschten Stelle in der Map die Punkt-Entität prop_static erstellen. | Jetzt kannst Du durch einfachen Mausklick in dem 3D-Ansichtsfenster (üblicherweise im oberen linken Viertel) an der gewünschten Stelle in der Map die Punkt-Entität prop_static erstellen. | ||
Als nächstes klicke links in Hammer auf das Auswahl-Werkzeug https://developer.valvesoftware.com/w/images/f/fa/Mt-selection.png.<br> | Als nächstes klicke links in Hammer auf das [[Hammer Selection Tool|Auswahl-Werkzeug]] https://developer.valvesoftware.com/w/images/f/fa/Mt-selection.png.<br> | ||
Doppelklicke damit auf den roten Kasten im 3D-Ansichtsfenster, der das prop_static-Objekt repräsentiert, oder drücke Alt | Doppelklicke damit auf den roten Kasten im 3D-Ansichtsfenster, der das prop_static-Objekt repräsentiert, oder drücke {{key|Alt|Enter}}, um die Objekteigentschaften (Object Properties) zu öffnen.<br> | ||
https://developer.valvesoftware.com/w/images/3/3f/Object_Properties_prop_static.png<br><br> | https://developer.valvesoftware.com/w/images/3/3f/Object_Properties_prop_static.png<br><br> | ||
In dem Eigenschaftenfenster doppelklicke nun auf den Eintrag 'World Model', wodurch der 'Model Browser' geöffnet wird. Dort gib unten links im 'Filter' den Begriff 'fizzler' ein, wodurch darüber sämtliche verfügbaren Modelle aufgelistet werden, deren Name 'fizzler' enthält.<br> | In dem Eigenschaftenfenster doppelklicke nun auf den Eintrag 'World Model', wodurch der 'Model Browser' geöffnet wird. Dort gib unten links im 'Filter' den Begriff 'fizzler' ein, wodurch darüber sämtliche verfügbaren Modelle aufgelistet werden, deren Name 'fizzler' enthält.<br> | ||
Line 40: | Line 40: | ||
Schließe nun das Objekteigenschaften-Fenster, falls Du das noch nicht getan hast, und klicke das Modell des Fizzler-Emitters im 3D-Ansichtsfenster einfach an, so dass es ausgewählt ist. Nun kannst Du es ohne Weiteres kopieren, indem Du | Schließe nun das Objekteigenschaften-Fenster, falls Du das noch nicht getan hast, und klicke das Modell des Fizzler-Emitters im 3D-Ansichtsfenster einfach an, so dass es ausgewählt ist. Nun kannst Du es ohne Weiteres kopieren, indem Du | ||
* Strg | * zuerst {{key|Strg|C}} (Kopieren) und dann {{key|Strg|V}} (Einfügen) drückst, | ||
* es in einem der 2D-Ansichtsfenster mit der Maus (gedrückte linke Maustaste) verschiebst, '''''während Du die Shift-Taste gedrückt hältst''''', oder | * es in einem der 2D-Ansichtsfenster mit der Maus (gedrückte linke Maustaste) verschiebst, '''''während Du die Shift-Taste gedrückt hältst''''', oder | ||
* den Mauszeiger über eines der vier Ansichtsfenster führst und eine Pfeiltaste betätigtst, '''''während Du die Shift-Taste gedrückt hältst'''''. | * den Mauszeiger über eines der vier Ansichtsfenster führst und eine Pfeiltaste betätigtst, '''''während Du die Shift-Taste gedrückt hältst'''''. | ||
Line 54: | Line 54: | ||
Dementsprechend müssen drei Brushes den Emitter seitlich und hinten umrunden. Dabei können die seitlichen Brushes durchaus die seitlichen Wände sein, in denen der Emitter eingebaut ist. Auf der Rückseite des Emitters muss aber auf jeden Fall ein weiterer Brush ergänzt werden, es sei denn, dort befindet sich bereits die Rückseite einer weiteren Wand. Beachte, dass der 'Kasten', in den der Emitter eingesetzt ist, gegebenenfalls auch oben und unten abgeschlossen werden muss, insbesondere wenn es sich bei der Emitter-Wand um eine Abschlußwand Deiner Map handelt, da sonst ein Leak entsteht. | Dementsprechend müssen drei Brushes den Emitter seitlich und hinten umrunden. Dabei können die seitlichen Brushes durchaus die seitlichen Wände sein, in denen der Emitter eingebaut ist. Auf der Rückseite des Emitters muss aber auf jeden Fall ein weiterer Brush ergänzt werden, es sei denn, dort befindet sich bereits die Rückseite einer weiteren Wand. Beachte, dass der 'Kasten', in den der Emitter eingesetzt ist, gegebenenfalls auch oben und unten abgeschlossen werden muss, insbesondere wenn es sich bei der Emitter-Wand um eine Abschlußwand Deiner Map handelt, da sonst ein Leak entsteht. | ||
Erstelle die notwendigen Brushes zunächst mit einer Nodraw-Textur und [[Applying Textures|texturiere]] erst danach nur die sichtbaren Seiten der Brushes. Wenn es sich bei den Wänden um Außenwände Deiner Map handelt, ist dieser Schritt nun abgeschlossen. Sollten die Brushes, die den Emitter umgeben, jedoch innerhalb der Map liegen, sollten sie auf jeden Fall zu [[func_detail|func_details]] verbunden werden. | Erstelle die notwendigen [[Basic Construction:de|Brushes]] zunächst mit einer Nodraw-Textur und [[Applying Textures|texturiere]] erst danach nur die sichtbaren Seiten der Brushes. Wenn es sich bei den Wänden um Außenwände Deiner Map handelt, ist dieser Schritt nun abgeschlossen. Sollten die Brushes, die den Emitter umgeben, jedoch innerhalb der Map liegen, sollten sie auf jeden Fall zu [[func_detail|func_details]] verbunden werden. Dies geht am schnellsten, indem man die einzelnen Brushes zusammen oder einzeln mit dem Auswahl-Werkzeug auswählt und danach {{key|Strg|T}} drückt. | ||
=== Schritt 3: Erstellung des Emanziaptionsfeldes === | === Schritt 3: Erstellung des Emanziaptionsfeldes === | ||
[[image:Fizzler_Brush.png|right|thumb|Der Fizzler-Brush hat eine Breite von 1 und schließt im Emitter genau dort ab, wo ursprünglich die Wand war.]]Nun erstellen wir einen [[Brush]], der die Maße 128 x 128 x 1 besitzt. Hierfür klicken wir wie schon bei der vorherigen Erstellung von Brushes in der linken Leiste von Hammer auf das [[Hammer Block Tool:de|Block-Werkzeug]] https://developer.valvesoftware.com/w/images/a/a4/Mt-block.png. Dann wählen wir auf der rechten Seite des Hammer-Programms die Nodraw-Textur aus und zeichnen den Brush in den 2D-Ansichtsfenstern so, dass er genau zwischen die Fizzler-Emitter passt. Der Brush sollte nun eine Breite von 128 Einheiten haben, 128 Eiheiten hoch und genau eine Einheit dick sein.<br> | |||
[ | Als nächstes binden wir diesen Brush an eine Entität, indem wir {{key|Strg|T}} drücken. In dem erscheinenden Fenster für die Objekteigentschaften des Brushes wählen wir 'trigger_portal_cleanser' aus und betätigen 'Übernehmen' bzw. 'Accept'. https://developer.valvesoftware.com/w/images/1/11/Object_Properties_trigger_portal_cleanser.png<br><br> | ||
Jetzt muss nur noch das Keyvalue 'Visible' auf 'Yes' umgestellt werden und der Fizzler ist funktionell fast fertig. Standardmäßig wirkt eine trigger_portal_cleanser nämlich nur auf Spieler, weswegen wir noch dessen sogenannte Flags bearbeiten müssen. Wir klicken in dem Objekteigenschaften-Fenster oden den Reiter 'Flags' an, versehen dort des Kästchen neben 'Physics Objects' mit einem Häckchen und klicken wieder einmal auf 'Übernehmen' bzw. 'key|Accept'. | |||
https://developer.valvesoftware.com/w/images/e/e7/Object_properties_trigger_portal_cleanser_flags.png<br><br> | |||
Der Fizzler ist jetzt einsatzbereit, kann aber wegen der Nodraw-Textur im Spiel noch nicht gesehen werden. | |||
=== Schritt 4: Texturierung des Emanzipationsfeldes === | === Schritt 4: Texturierung des Emanzipationsfeldes === |
Revision as of 05:51, 4 February 2013
Ein Emanzipationsfeld (üblicherweise als Fizzler bezeichnet) ist ein spezielles Energiefeld in Portal 2, das
- die Portalkanone des Spieler zurücksetzt und dabei eventuell gesetzte Portale auflöst,
- es verhindert, Portale auf dahinter liegende Flächen zu schießen, und
- Objekte zerstört, die es berühren.
Das Emanzipationsfeld in Portal 2 besteht aus aus zwei Teilen:
- einer Brush-Entität (trigger_portal_cleanser) als eigentliches Emanzipationsfeld und
- mindestens zwei Punkt-Entitäten (prop_static oder prop_dynamic) mit Modellen der Emitter.
In Portal kommt zu diesen beiden Teilen als drittes noch
- ein Partikelsystem-Emitter (info_particle_system)
dazu.
Instanz
Wie für die meisten Testelemente in Portal 2 gibt es auch für dieses Spielelement eine Instanz. Allerdings ist die Fizzler-Instanz statisch und hat eine feste Größe von 128 x 128 Einheiten, weswegen seine Verwendbarkeit stark eingeschränkt ist. Sie wurde speziell dafür entworfen, in den Ausgangsbereichen der Testkammern in Verbindung mit einem Turbinenaufzug eingesetzt zu werden. Es gibt drei Instanzen dieses statischen Fizzlers:
- Schwarz/sauber: sdk_content\maps\instances\gameplay\fizzler_black_clean_128x128.vmf
- Schwarz/dreckig: sdk_content\maps\instances\gameplay\fizzler_black_dirty_128x128.vmf
- Weiß/dreckig: sdk_content\maps\instances\gameplay\fizzler_white_dirty_128x128.vmf
Manuelle Erstellung
Dieses Tutorial soll selbst für Benutzer mit wenig oder gar keiner Kenntnis von Hammer leicht verständlich sein. Wir werden einen statischen Fizzler erstellen, der ein Feld von 128 x 128 Einheiten abdeckt.
Schritt 1: Erstellung der Emitter-Modelle
Klicke auf der linken Seite des Hammer-Editors auf das Entitäten-Werkzeug https://developer.valvesoftware.com/w/images/3/32/Mt-entities.png.
Wähle nun auf der rechten Seite des Editors in dem mit 'Objects' betitelten Auswahlmenü ein prop_static aus.
https://developer.valvesoftware.com/w/images/3/33/Objects_prop_static.png
Jetzt kannst Du durch einfachen Mausklick in dem 3D-Ansichtsfenster (üblicherweise im oberen linken Viertel) an der gewünschten Stelle in der Map die Punkt-Entität prop_static erstellen.
Als nächstes klicke links in Hammer auf das Auswahl-Werkzeug https://developer.valvesoftware.com/w/images/f/fa/Mt-selection.png.
Doppelklicke damit auf den roten Kasten im 3D-Ansichtsfenster, der das prop_static-Objekt repräsentiert, oder drücke Alt+↵ Enter, um die Objekteigentschaften (Object Properties) zu öffnen.
https://developer.valvesoftware.com/w/images/3/3f/Object_Properties_prop_static.png
In dem Eigenschaftenfenster doppelklicke nun auf den Eintrag 'World Model', wodurch der 'Model Browser' geöffnet wird. Dort gib unten links im 'Filter' den Begriff 'fizzler' ein, wodurch darüber sämtliche verfügbaren Modelle aufgelistet werden, deren Name 'fizzler' enthält.
https://developer.valvesoftware.com/w/images/0/02/Model_Browser_Fizzler.png
Wähle mit einem weiteren Doppelklick das Model 'props\fizzler.mdl' aus, wodurch Du zurück in die Objekteigenschaften des prop_static gelangst. Nun musst Du nur noch 'Übernehmen' bzw. 'Accept' anklicken und das Modell wird geladen und sollte in den Ansichtsfenstern angezeigt werten. Falls das nicht geschieht, speichere die Map, beende Hammer und starte das Programm neu. Nach dem Laden der Map, müsste das Fizzler-Modell angezeigt werden.
Schließe nun das Objekteigenschaften-Fenster, falls Du das noch nicht getan hast, und klicke das Modell des Fizzler-Emitters im 3D-Ansichtsfenster einfach an, so dass es ausgewählt ist. Nun kannst Du es ohne Weiteres kopieren, indem Du
- zuerst Strg+C (Kopieren) und dann Strg+V (Einfügen) drückst,
- es in einem der 2D-Ansichtsfenster mit der Maus (gedrückte linke Maustaste) verschiebst, während Du die Shift-Taste gedrückt hältst, oder
- den Mauszeiger über eines der vier Ansichtsfenster führst und eine Pfeiltaste betätigtst, während Du die Shift-Taste gedrückt hältst.
Nun hast Du die zwei benötigten statischen Emitter-Modelle in Deiner Map.
Schritt 2: Positionierung der Emitter-Modelle
Jetzt ist es Zeit, die beiden Modelle an dem richtigen Ort in der Map zu positionieren. Dafür schiebst Du die Modelle in Deiner Map an zwei gegenüberliegende Wände, so dass sich die Modelle genau anschauen. Dies lässt sich am einfachsten über das 2D-Ansichtsfenster bewerkstelligen, in dem die Aufsicht (top x/y) auf Deine Map verfügbar ist. Wie Du ein Modell rotieren kannst, erfährst du hier. Beachte, dass die Wände genau 128 Einheiten entfernt voneinander sein müssen, da die in Schritt 4 vorzunehmende Texturierung des eigentlichen Emanzipationsfeldes sonst nicht einwandfrei möglich ist. Sollte der Abstand zwischen den beiden Wänden größer oder kleiner sein, folge bitte dem anschließenden Tutorial für 'Größere und kleinere Fizzler'.
Das Fizzler-Modell ist erst richtig positioniert, wenn es derart in der Wand liegt, das die beiden seitlichen Lamellen genau auf der Wand aufliegen. Bei dieser Position überdeckt die Wand Teile des Emitters.

Dementsprechend müssen drei Brushes den Emitter seitlich und hinten umrunden. Dabei können die seitlichen Brushes durchaus die seitlichen Wände sein, in denen der Emitter eingebaut ist. Auf der Rückseite des Emitters muss aber auf jeden Fall ein weiterer Brush ergänzt werden, es sei denn, dort befindet sich bereits die Rückseite einer weiteren Wand. Beachte, dass der 'Kasten', in den der Emitter eingesetzt ist, gegebenenfalls auch oben und unten abgeschlossen werden muss, insbesondere wenn es sich bei der Emitter-Wand um eine Abschlußwand Deiner Map handelt, da sonst ein Leak entsteht.
Erstelle die notwendigen Brushes zunächst mit einer Nodraw-Textur und texturiere erst danach nur die sichtbaren Seiten der Brushes. Wenn es sich bei den Wänden um Außenwände Deiner Map handelt, ist dieser Schritt nun abgeschlossen. Sollten die Brushes, die den Emitter umgeben, jedoch innerhalb der Map liegen, sollten sie auf jeden Fall zu func_details verbunden werden. Dies geht am schnellsten, indem man die einzelnen Brushes zusammen oder einzeln mit dem Auswahl-Werkzeug auswählt und danach Strg+T drückt.
Schritt 3: Erstellung des Emanziaptionsfeldes
Nun erstellen wir einen Brush, der die Maße 128 x 128 x 1 besitzt. Hierfür klicken wir wie schon bei der vorherigen Erstellung von Brushes in der linken Leiste von Hammer auf das Block-Werkzeug https://developer.valvesoftware.com/w/images/a/a4/Mt-block.png. Dann wählen wir auf der rechten Seite des Hammer-Programms die Nodraw-Textur aus und zeichnen den Brush in den 2D-Ansichtsfenstern so, dass er genau zwischen die Fizzler-Emitter passt. Der Brush sollte nun eine Breite von 128 Einheiten haben, 128 Eiheiten hoch und genau eine Einheit dick sein.
Als nächstes binden wir diesen Brush an eine Entität, indem wir Strg+T drücken. In dem erscheinenden Fenster für die Objekteigentschaften des Brushes wählen wir 'trigger_portal_cleanser' aus und betätigen 'Übernehmen' bzw. 'Accept'. https://developer.valvesoftware.com/w/images/1/11/Object_Properties_trigger_portal_cleanser.png
Jetzt muss nur noch das Keyvalue 'Visible' auf 'Yes' umgestellt werden und der Fizzler ist funktionell fast fertig. Standardmäßig wirkt eine trigger_portal_cleanser nämlich nur auf Spieler, weswegen wir noch dessen sogenannte Flags bearbeiten müssen. Wir klicken in dem Objekteigenschaften-Fenster oden den Reiter 'Flags' an, versehen dort des Kästchen neben 'Physics Objects' mit einem Häckchen und klicken wieder einmal auf 'Übernehmen' bzw. 'key|Accept'.
https://developer.valvesoftware.com/w/images/e/e7/Object_properties_trigger_portal_cleanser_flags.png
Der Fizzler ist jetzt einsatzbereit, kann aber wegen der Nodraw-Textur im Spiel noch nicht gesehen werden.
Schritt 4: Texturierung des Emanzipationsfeldes
[Zu ergänzen]
Dynamischer Fizzler
[Zu ergänzen]