schlafender Zombie

Die scripted_sequence kommen bei tausenden Aktionen vor. Sie werden bei triggerbaren Aktionen/Animationen verwendet. Fast alle Aktionen in Half-Life2 wurden mit diesen Entities gemacht (z.B der Combine_Guard am Anfang in der Trainstation, der einem befielt, eine Dose in den Mülleimer zu schmeissen). Mit ihnen kann man alle Animationen der Npc's abrufen und abspielen.

Aufbau

npc_zombie

Für die Benutzung der Scripted_Sequence brauchen wir zuerst einmal den Npc, der eine Sequenz durchführen soll. Wir brauchen logischerweise einen npc_zombie. Setzt ihn ungefähr an die Position, wo er später sein soll. Die eigentliche Positionsbestimmung nimmt aber die Scripted_Sequence vor.
npc_zombie.jpg
Gebt ihn den Namen Zombie (oder einen ähnlichen).

Outputs

Nun brauchen wir noch 2 Outputs.

output1.jpg

  • Der erste Output gibt an, dass wenn er vom Spieler getroffen wird (OnDamaged), spielt er die Animation (BeginSequence) der Sequence (zombie_seq) ab, was ja logisch ist, sonst würde er immer liegen bleiben, egal, ob man auf ihn schiesst.
  • Der zweite Output gibt an, dass wenn der Zombie vor der Sequenz getötet wurde (OnDeath), wird der Trigger, der später die Animation auslösen würde (zombie_trigger), gekillt (Kill).


Scripted_Sequence

Jetzt plazieren wir eine Scripted_Sequence exakt dort, wo der Zombie später liegen soll.
seq.jpg

Einstellungen

Wir brauchen folgende Einstellungen:

  • Name - zombie_seq (Wichtig für die Outputs vom Zombie!)
  • Target Npc - Zombie
  • Pre Action Idle Animation - slump_a (das ist eine schlafende Animation, ihr könnt euch alle Animation der Npcs mit dem Modelviewer anschauen.)
  • Action Animation - slumprise_a (das ist jetzt eine Animation, wo der Zombie aufsteht.)
  • Search Radius - 512
  • Move To Position - Instantaneous (Somit ist der Zombie bei Spielstart sofort an der Sequenz, ohne sich bewegen zu müssen)
Flags

Folgende Flags müsst ihr aktivieren:

  • Start on Spawn - Somit wird die Pre Action Idle Animation gleich am Anfang ausgeführt.
  • No Interruptions - Die Animation wird nicht unterbrochen.
  • Override AI
  • Priority Script

Weckgeräusch

Wir brauchen nun erstmal noch ein Weckgeräusch, welches wir mit einem ambient_generic erzeugen.

  • Name - wakesound
  • Sound Name - Hier könnt ihr natürlich nehmen was euch gefällt. Geht einfach mal tools→Soundbrowser und sucht nach einem Zombie Sound der passt. Ich habe hier jetzt einfach mal npc/zombie_poison/pz_alert1.wav angegeben.
Flags
  • Start Silent
  • Is NOT looped

Auslöser

Wir brauchen nun noch einen Auslöser, also einen Trigger. Hier ist der beste trigger_once, weil die Animation sowieso nur einmal ausgeführt werden kann. Plaziert es soweit um den Zombie, dass es logisch erscheint, dass der Zombie durch den Spieler geweckt wird.
trigger.jpg
Gebt ihm den Namen zombie_trigger. Wir brauchen nun folgende Outputs:
output2.jpg

  • Der erste Output gibt an, dass wen der Spieler den Trigger auslöst (OnTrigger), wird die Sequenz zombie_seq abgespielt (BeginSequence).
  • Der zweite Output gibt an, dass wenn der Spieler den Trigger auslöst (OnTrigger), wird der wakesound abgespielt (PlaySound).


Der Trigger müsste jetzt ausserdem ein Input vom Zombie bekommen haben.


Beispielmap

Nachwort

Es scheint hierbei auch eine Methode mit dem npc_template_maker zu geben, diese hat bei mir allerdings nicht funktioniert!

Die Verwendung aller Dokumente einschließlich der Abbildungen ausschließlich zu nichtkommerziellen Zwecken. Verbreitung des Dokuments auf Speichermedien, (insbesondere auf CD-ROMs als Beilage zu Zeitschriften und Magazinen oder sog. "Mission-Packs" etc.) ist untersagt.
 
half-life_2/tutorials/schlafender_zombie.txt · Zuletzt geändert: 2011/05/23 14:44 von Adrian_Broher