====== 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 [[:glossar#Attachment]] (nachzuschauen im Model Viewer) des Parent-Entities. Als Parameter muss dazu der Name des [[:glossar#Attachment]]s 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 [[source:entities: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 [[half-life_2:entities:move_rope]] oder einem [[half-life_2:entities: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 [[half-life_2:entities#phys|phys_*]] Entity (z.B. ein [[source:entities:phys_lengthconstraint]]) verwendet werden. \\ ===== Bemerkungen ===== * Maximale Verschachtelungstiefe ist 4. D.h. an das letzte Entity einer 4er Kette kann nichts mehr geparentet werden.