AttachMesh

Kategorie: Objekte / Darstellung
Ab Engineversion: 1.0 OC

Beschreibung

Befestigt ein Mesh an einem anderen. Wenn für mesh eine ID angegeben wird, so wird das Mesh der entsprechenden Definition verwendet. Wenn für mesh ein Objekt angegeben wird, so wird dessen aktuelles Mesh verwendet, inklusive aller Animationen oder weiterer angehängter Meshes. Dabei wird jedoch nur die Grafik angehangen, das Objekt selbst bleibt weiter an seiner gegenwärtigen Position. Der Rückgabewert ist eine Nummer mit Hilfe derer das Mesh mit DetachMesh wieder gelöst werden kann.

Syntax

int AttachMesh(any mesh, string parent_bone, string child_bone, array transformation, int flags, int attach_number);

Parameter

mesh:
ID oder Objekt des Meshes das angehängt werden soll.
parent_bone:
Bone am Mesh des aufrufenden Objekts an dem das anzuhängende Mesh befestigt werden soll.
child_bone:
Bone am Mesh des anzuhängenden Objekts mit dem es befestigt werden soll.
transformation:
[opt] Transformation im Koordinatensystem des anzuhängenden Meshes, die auf selbiges angewandt wird. Das Array sollte 12 Integer-Einträge haben die eine 3x4-Matrix beschreiben wobei jeder Wert in Promille (1000 = 100%) angegeben ist. Die Matrizen können auch mit Trans_Identity, Trans_Translate, Trans_Rotate und Trans_Scale erzeugt und mit Trans_Mul kombiniert werden.
flags:
[opt] Zusätzliche Flags die das Verhalten des angehängten Meshes beeinflussen. Mehrere Werte können durch | getrennt angegeben werden. Die folgenden Werte sind erlaubt:
Wert Beschreibung
AM_DrawBefore Normalerweise wird das Mesh des Objekts selbst vor dem des angehängten Meshes gezeichnet. Wenn dieses Flag angegeben wird so wird jedoch das angehängte Mesh zuerst gezeichnet. Im Normalfall macht das keinen Unterschied da durch einen Z-Puffer sichergestellt wird, dass die Darstellung richtig ist. Wenn allerdings eines oder beide der Meshes Alpha Blending benutzen dann wird die Zeichenreihenfolge relevant da es sonst vorkommen kann dass ein Mesh hinter einem (teilweise) durchsichtigen Teil des anderen Meshes unsichtbar wird.
AM_MatchSkeleton Normally the attached mesh uses its own animations. If this flag is set, then the attached mesh uses the animation data of the parent mesh for all bones that have the same name as a bone in the parent mesh skeleton.
attach_number:
[opt] If given, refers to the number of the attached mesh to which to attach this mesh. This results in nested mesh attachments. This parameter can only be used if it refers to an attached definition, not an attached object. In order to attach a mesh to attached objects, call this function directly on the attached object.

Anmerkung

If an object is used for a mesh then the "MeshTransformation" property of the attached mesh will not be applied. Instead the parameter transformation can be used to transform the attached mesh.

Beispiel

AttachMesh(Bow, "pos_hand1", "main");
Gibt einem Clonk einen Bogen in die Hand wenn im Clonkscript ausgeführt. Der Bogen wird mit seinem Bone "main" an den Bone "pos_hand1" des Clonks gehängt.
Siehe auch: DetachMesh, SetAttachBones, SetAttachTransform, Trans_Identitiy, Trans_Mul, Trans_Rotate, Trans_Scale, Trans_Translate
Clonk-Karl, 2010-04