Parent

Parent ist englisch, und heisst auf Deutsch übersetzt „Eltern“ bzw „Elternteil“. Im Zusammenhang mit HL2 ist damit ein übergeordnetes Entity in einer Hierarchie gemeint, dessen untergeordneten Entities sich mit dem Parent-Entity mitbewegen.

Die Entities

Beinahe alle Entities - bis auf wenige Ausnahmen - haben einen Eintrag „Parent“ in ihren Option. Dort lässt sich der Name des übergeordneten Entities eintragen, mit dem sich dann das Entity mitbewegen wird.

Inputs/Outputs

Der Parent-Eintrag lässt sich sogar per I/O-Systen Ingame dynamisch ändern. Dazu haben fast alle Entities folgende Inputs:

Input Wirkung
KillHierarchy Entfernt das Entity und alle untergeordneten Entities.
SetParent Ändert das übergeordnete Entity (→ Parent-Eintrag)
SetParentAttachment Wenn das übergeordnete Entity Attachements hat, plaziert sich dieses Entity an einem dieser Punkte. (z.B. bei NPCs: Kopf, Hände, Füsse, etc)
SetParentAttachmentMaintainOffset Ändert das Parent auf eines der Attachment (nachzuschauen im Model Viewer) des Parent-Entities. Als Parameter muss dazu der Name des Attachments angegeben werden.
ClearParent Entfernt die Verbindung zwischen den Entities, so dass dieses Entity wieder frei ist.

Verwendung

  • Der Parent-Eintrag lässt das damals bei HL1 lästige Problem eines fahrenden Zuges mit Türen verschwinden. Denn mit dem Parent-Eintrag kann man jetzt bei den Türen den Namens des Zuges eintragen, und schon bewegen sie sich mit dem Zug mit.
  • Selbst bei den neuartigen func_physbox lassen sich untergeordnete Entities platzieren. So kann man Türen, Knöpfe, zerbrechliche Glassscheiben, Props, etc selbst an einem physikalischen Objekt befestigen.
  • Ebenfalls lassen sich Models, sogenannte Props, an einander befestigen. Auch bei NPCs ist das möglich. Bestes beispiel: Bei HL2 am Anfang hat Barney eine Maske auf, diese ist ein separates Models, dessen Parent Barney's Kopf ist, und sie sich deshalb nahtlos einfügt, und nicht zu unterscheiden ist.
  • Bei Seilen funktioniert das ebenfalls. So kann man einem move_rope oder einem keyframe_rope ebenfalls ein Objekt, ob physikalisch oder nicht, als Parent eintragen, wodurch sich dann das Seil physikalisch korrekt mitbewegt. Damit das Parent-Objekt des Seils sich jedoch so verhaltet, als wenn es an einem Seil hängt, muss zudem noch ein entsprechendes phys_* Entity (z.B. ein phys_lengthconstraint) verwendet werden.


Bemerkungen

  • Maximale Verschachtelungstiefe ist 4. D.h. an das letzte Entity einer 4er Kette kann nichts mehr geparentet werden.
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/entities/eigenschaften/parent.txt · Zuletzt geändert: 2011/05/28 08:53 von Adrian_Broher