Erstellen der Bälle aus dem letzten HL² Level (func_combine_ball_spawner)

30.03.2006

So, wie es der Titel schon sagt, soll hier erklärt werden, wie man die Energiebälle, wie es sie im letzten HL² Level (der „Zitadelle“) gibt, erstellt. Am Ende gehe ich noch auf verschiedene Anwendungsmöglichkeiten ein.

Rein theoretisch ist dieses Entity recht leicht zu handhaben. Allerdings bin ich noch niemals auf ein dermaßen verbuggtes Entity gestossen, wodurch schon ein paar Schwierigkeiten hinzu kommen. Nachdem ich aber inzwischen bei fast allen Funktionen weiß, ob und wie sie funktionieren, bzw. welche Funktionen nicht funktionieren, schreibe ich dieses Tutorial.

Hier nun als erstes ein Bild, wie die Kugeln überhaupt aussehen. Es handelt sich dabei um einen Screenshot aus HL²; nur die gelben Bälle sind zunächst einmal wichtig, alles andere muss durch extra Entities erstelt werden:

Also los. Das Entity, das die Bälle spawnen lässt, ist das Brushentity func_combine_ball_spawner. Erstellt also mit dem Brushtool einen Brush (die größe ist im Moment noch egal, dazu später), belegt ihn mit der trigger-Textur und macht ihn per Rechtsklick ⇒ Tie to Entity oder der Tastenkombination Strg+T zu func_combine_ball_spawner.

Nun zu den Properties:
Name und Origin muss ich wohl nicht erklären.
Dann zu Angles und Pitch Yaw Roll. Dabei gibt es vor allem eines zu beachten: lasst am besten die Finger davon! Standardgemäß bewegen sich die Bälle von der Unterseite des Spawners senkrecht bzw. schräg (auch dazu später) nach oben. Auch mit der Einstellung Down unter Angles könnt ihr sie sich nicht nach unten bewegen lassen. Waagrechte Bewegungen durch Angabe von Gradzahlen sind zwar möglich, lassen sich aber nicht wirklich kontrollieren. Zumindest war das bei mir so, und ich habe wirklich viel ausprobiert. Stellt also am besten garnichts ein, sondern lasst die 0 stehen.
Unter Ball count gebt ihr an, wie viele Bälle sich innerhalb des Spawners befinden. Werden Bälle entfernt, spawnen entsprechend viele neue nach.
Min ball speed und Max ball speed sind eigentlich auch logisch. Dort wird die niedrigste/höchste Geschwindigkeit angegeben, mit der sich die Bälle im Spawner bewegen.
Bei Ball radius und Ball type kommen die nächsten Bugs ins Spiel: beide Angaben haben keinerlei Auswirkungen.
Wenigstens die Ball respawn time funktioniert, allerdings auch nur mangelhaft. Eigentlich könnt ihr hier angeben, wie lange es nach dem Entfernen eines Balles aus dem Spawner in Sekunden dauert, bis dafür ein neuer Ball spawnt. Das ist aber nicht ganz richtig. Zu der angegebenen Zeit werden nämlich immer 8 Sekunden dazu gezählt. Wenn ihr also 5 Sekunden angebt, dauert es 13 Sekunden, bis ein neuer Ball spawnt. Ausnahmen bilden 0 Sekunden und darunter. Gebt ihr 0 an, wird erst nach 12 Sekunden ein neuer Ball gespawnt, wenn ihr negative Zahlen angebt, kommt überhaupt kein neuer Ball. Es ist also nicht möglich, durch die Angabe von -7 das Spawnen eines neuen Balles nach 1 Sekunde zu erzwingen (8-7=1).

Das waren erstmal die normalen Einstellungen, nun zu den Flags.
Start inactive ist klar, wird es aktiviert, sind die Bälle nicht vorhanden, bis der Spawner durch einen Imput aktiviert wird.
Viel interessanter ist das Flag Combine Power supply. Um die Wirkung dieses Flags richtig erklären zu können, muss ich erstmal erklären, was passiert, wenn es nicht aktiviert ist. Dann spawnen die Kugeln nämlich irgendwo an der Unterseite des Spawners und bewegen sich dann schnurgerade nach oben, bis sie auf ein Hinderniss stossen. Dann verschwinden sie und es spawnt an der Unterseite des Spawners ein neuer Ball; sofort nach dem Verschwinden des anderen, nicht erst nach der respawn time. Wird das Flag aktiviert, ist das anders. Die Bälle spawnen zwar auch an der Unterseite des Spawners, bewegen sich aber nicht senkrecht nach oben, sondern in einem beliebigen Winkel, der aber in jedem Fall so ist, dass der Ball bei seinem Austritt aus dem Spawner die Oberseite desselben durchfliegt. Das ist am besten mit einem Bild zu verdeutlichen:

beispielbild2

Blau ist der Spawner, grüne Linien sind mögliche Flugbahnen, rote Linien Beispiele für unmögliche.
Ausserdem verschwinden die Bälle mit diesem Flag nicht einfach, sondern fliegen zum Spawner zurück, wenn sie auf ein Hinderniss treffen. Von dort werden sie wieder ausgesandt und fliegen also immer zwischen dem Spawner und Hindernissen hin und her.
Eine weitere Besonderheit, die durch das Flag entsteht ist, dass einmal aus dem Spawner entfernte Bälle auch wieder aufgenommen werden können, sofern sie nicht vorher durch zu langes Festhalten mit der Physgun oder zu viel Schaden zerstört werden.

Noch ein paar Tipps:
Macht die Spawner nicht zu flach wenn ihr das Flag Combine Power supply aktiviert habt, da sonst die Flugbahnen der Kugeln zu schlecht berechenbar werden.
Bis zu einer Seitenlänge von 20 Units spawnen alle Bälle an der selben Stelle im Spawner, da dies genau ihrer Größe entspricht. Bei einer Größe unter 20 Units spawnen die Bälle übrigens auch.
Verwendet ihr eine Seitenlänge von unter 20 Units und habt die Min und Max Speed auf dem gleichen Wert, sind die Bälle nicht zu unterscheiden, da sie alle an der selben Stelle spawnen und sich gleich schnell bewegen. Unter Umständen kann das aber auch gut aussehen, da die Bälle dann voluminöser wirken. Allerdings sieht es etwas seltsam aus, wenn man einen Ball ohne deutlich sichtbare Wirkung aus dem Spawner nehmen kann. Macht dies also am besten nur, wenn man keine Bälle aus dem Spawner nehmen kann.

Ich denke, das war es zu diesem Entity.

Um die Bälle aus dem Spawner nehem zu können, wird in HL² die starke Physcannon benötigt, darum erkläre ich für die, die es nicht wissen, auch noch, wie man diese ins Spiel bringt. Es kursieren viele Namen für diese Waffe; "starke Physcannon", "ultra oder mega Physcannon", "Zero-Point Gravity Gun" usw. Einigen wir uns zumindes für dieses Tutorial bitte auf "blaue Gravitygun".
Setzt zuerst mit dem Entity-Tool (Shift+E) das Pointentity weapon_physcannon in die Map. Dies ist die ganz "normale" Physcannon. Damit sie zur blauen Gravitgun wird, benötigt ihr hier nun das Entity env_global, das ihr auf die gleiche Art wie die Gravitgun an eine beliebige Stelle in der Map setzt. öffnen nun die Properties und geht zum Eintrag Initial State. Dort wählt ihr On aus. Als nächstes wählt ihr den Eintrag Global State to set und stellt dort Super phys gun is enabled ein. Das Flag Set initial state lasst ihr aktiviert. Jetzt ist die normale Gravitgun zur blauen Gravitgun geworden.

Die Bälle alleine machen allerdings nichts her. Für Effekte wie auf dem Bild ganz oben oder dem direkt unter direkt unter diesem Absatz sind noch weitere Entities erforderlich.

Ganz genau kann ich darauf hier nicht eingehen; einerseits, weil ich bei den für die Effekte zuständigen Entities selbst noch Wissenslücken habe und andererseits, weil dies den Rahmen dieses Tutroials sprengen würde. Ich kann und werde jedoch erklären, für welche Effekte welches Entity zuständig ist. In den meisten Fällen reicht das sowiso, da die Einstellungen oft selbsterklärend sind.

Der weisse Lichtstrahl, an dem die Bälle entlang gleiten, wird durch ein env_beam erzeugt. Dieses befindet sich am obersten bzw. untersten Punkt der Flugbahn der Bälle und strahlt in Richtung eines info_targets, das sich auf der jeweil anderen Seite der Flugbahn befindet.
Dass der in den Spawner geschossene Combine schwebt, wird durch einen trigger_vphysics_motion verursacht, der sich direkt um die Flugbahn der Bälle befindet. Wichtig ist hier, dass die Bälle durch einen Filter von dem Effekt ausgeschlossen werden.
Für die Blitze und das anschließend Auflösen des Combines ist ein trigger_physics_trap verantwortlich. Auch hier ist wieder der Filter wichtig, der die Bälle ausschließt.
Bei den blauen, leuchten Punkten, die oben und unten bei dem einzelnen Ball im ersten Bild zu sehen sind, handelt es sich um env_citadel_energy_core. Der blaue Schimmer um die Gesammtkonstruktion dort wird durch ein func_illusionary erzeugt, welches mit einer Textur mit Alphakanal belegt ist.

Genau genommen hält mich nur der trigger_vphysics_motion von einer genaueren Beschreibung ab. Allerdings ist dies von den für die Effekte verantwortlichen Entities auch das am erwähnenswerteste, da die anderen selbsterklärend sind. Darum nur eine so grobe Beschreibung der Effekte.

Eine fertige Konstruktion eines Combine Ball Spawners, eines trigger_vphysics_trap, eines trigger_vphysics_motion und was sonst noch dazu gehört, ist im HL² Prefab combine_ballspawner zu finden. Dieses lässt sich mit dem Block Tool erstellen, es befindet sich in der Kategorie Prefabs HL2. Wer die .vmf direkt öffnen möchte, findet sie unter dem folgenden Pfad:

...\SteamApps\<accountname>\sourcesdk\bin\prefabs\Prefabs HL2\combine_ballspawner.vmf
				

Nun noch eine kleine Anmerkung für HL²: DM: dort ist die blaue Gravitgun nicht verfügbar, allerdings kann man dort die Bälle auch mit der normalen Gravitgun bewegen.

Die Samplemap, die unten zum Download steht, zeigt eine von vielen Möglichkeiten.

Das wars auch schon, ich hoffe, ihr habt trotz des schwachen Endes etwas verstanden und vielen Dank fürs Interesse!

El Supremo

• Download

Download der Samplemap:

tutorial_combine_ball_spawner.zip (~52 KB)


Aktualisieren
Aktualisieren!


RSS Feed
RSS Feed


Valides XHTML 1.0

Valides CSS 2.1

Valides RSS 2.0