Oblivion:Idle Animations: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
K
K
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
== Idle Animationen allgemein ==
 
== Idle Animationen allgemein ==
In Oblivion beinhaltet die Idle (unbeschäftigt) Animation Informationen darüber, welche Datei abgespielt wird, wie es auf das Skelett des Actors übertragen wird und unter welchen Voraussetzungen sie abgespielt werden. Der Idle Manager ist zum einen das Werkzeug, um Idle Animationen zu definieren und zum anderen das System mit dem im Spiel diese Idle Animationen gewählt werden. Diese Beschreibung soll nun näher bringen, wie das Tool benutzt wird und wie die Idle Animationen im Spiel genutzt werden.
+
In Oblivion beinhaltet die Idle-(unbeschäftigt)-Animation Informationen darüber, welche Datei abgespielt wird, wie sie auf das Skelett des Actors übertragen wird und unter welchen Voraussetzungen sie abgespielt werden. Der Idle-Manager ist zum einen das Werkzeug, um Idle Animationen zu definieren und zum anderen das System, mit dem im Spiel diese Idle Animationen gewählt werden. Diese Beschreibung soll nun näher bringen, wie das Tool benutzt wird und wie die Idle Animationen im Spiel genutzt werden.
 +
 
 +
"Idle Animation" kann man übrigens schlecht übersetzen, deswegen bleibe ich auch bei der englischen Bezeichnung. Prinzipiell sind Idle Animationen hauptsächlich die Animationen, die [[ob:NPC|NPCs]] "von selbst" ausführen. Also eben keine Kampf-Animationen und keine gescripteten Bewegungen. Idle Animationen dienen also unter anderem dazu, dass [[ob:NPC|NPCs]] - wenn sie keine direkte Aufgabe haben - nicht einfach auf der Stelle stehen, sondern sich auch bewegen, wenn sie nichts zu tun haben.  
  
"Idle Animation" kann man übrigens schlecht übersetzen, deswegen bleibe ich auch bei der englischen Bezeichnung. Prinzipiell sind Idle Animationen Hauptsächlich die Animationen, die [[ob:NPC|NPCs]] "von selbst" ausführen. Also eben keine Kampf-Animationen und keine gescripteten Bewegungen. Idle Animationen dienen also unter anderem dazu das [[ob:NPC|NPCs] - wenn sie keine direkte Aufgabe haben - nicht einfach auf der Stelle stehen (man möge mich korrigieren, falls das nicht stimmt).
 
  
 
== Die Idle Manager Dialog Box ==
 
== Die Idle Manager Dialog Box ==
Wähle im Menü "Gameplay" den Eintrag "Idle Animations...", um den Idle Manager Dialog aufzurufen. Auf der linken Seite befindet sich dabei eine Daten-Baumstruktur aller Idle Animationen, die es im Spiel gibt. Die rechte Seite der Dialog Box wird dazu genutzt um die entsprechenden Einstellungen für die ausgewählte Idle Animation vorzunehmen oder anzuschauen.  
+
Wähle im Menü "Gameplay" den Eintrag "Idle Animations...", um den Idle Manager Dialog aufzurufen. Auf der linken Seite befindet sich dabei eine Daten-Baumstruktur aller Idle Animationen, die es im Spiel gibt. Die rechte Seite der Dialog-Box wird dazu genutzt, um die entsprechenden Einstellungen für die ausgewählte Idle Animation vorzunehmen oder anzuschauen.  
 +
[[bild:fenster-Idle_Animation.jpg]]
  
http://www.ei-der-zeit.com/LexikonCSIV/pic/fenster-Idle_Animation.jpg
 
  
 
== Idle Animation Daten ==
 
== Idle Animation Daten ==
Die rechte Seite der Dialog-Box wird dazu genutzt um die Daten für die aktuell ausgewählte Idle Animation einzustellen.  
+
Die rechte Seite der Dialog-Box wird dazu verwendet, die Daten für die aktuell ausgewählte Idle Animation einzustellen.  
  
http://www.ei-der-zeit.com/LexikonCSIV/pic/fenster-Idle_Animation_rechts.jpg
+
[[bild:fenster-Idle_Animation_rechts.jpg]]
  
Das ID-Feld wird wieder einmal dafür genutzt der Idle Animationen einen einmaligen Namen zuzuweisen. Der Text wird niemals im Spiel angezeigt und hat daher Hauptsächlich einen Organisatorischen Zweck. Der Name sollte also möglichst verständlich und Übersichtlich gehalten werden.
+
Das ID-Feld wird wieder einmal dafür genutzt, der Idle Animation einen einmaligen Namen zuzuweisen. Der Text wird niemals im Spiel angezeigt und hat daher hauptsächlich einen organisatorischen Zweck. Der Name sollte also möglichst verständlich und übersichtlich gehalten werden.
  
Der Button rechts der ID ("Select Animation File") wird dazu benötigt um das KF-File für die Animation auszuwählen. Nur KF Files im IdleAnims Verzeichnis unterhalb des Verzeichnisses worin das NPC- oder Kreatur-Skelett Existiert kann ausgewählt werden.
+
Der Button rechts der ID ("Select Animation File") wird dazu benötigt, um das KF-File für die Animation auszuwählen. Nur KF-Files im IdleAnims-Verzeichnis unterhalb des Verzeichnisses, worin das NPC- oder Kreatur-Skelett existiert, kann ausgewählt werden.
  
Die Animation Group Section Dropdown-Liste wird dazu genutzt um auszuwählen, wie die Animation auf das Skelett abgespielt wird. Generell wird das auf "Special Idle" gesetzt, was bedeutet das das Spiel versucht, die Animation auf das ganze Skelett zu übertragen und Prioritäten benutzt um zu entscheiden, welche Bones ("Knochen") - wenn welche vorhanden sind - der Animation die gerade abgespielt werden, von der Idle Animation überschrieben werden.
+
Die Animation Group Section Dropdown-Liste wird dazu genutzt, um auszuwählen, wie die Animation auf das Skelett abgespielt wird. Generell wird das auf "Special Idle" gesetzt, was bedeutet, dass das Spiel versucht, die Animation auf das ganze Skelett zu übertragen und Prioritäten benutzt, um zu entscheiden, welche Bones ("Knochen") - wenn welche vorhanden sind - der Animation, die gerade abgespielt wird, von der Idle Animation überschrieben werden.
  
Die "Must Return a File"-Checkbox wird dazu genutzt um bei der Entscheidung zu helfen, wie der Idle Manager eine Idle Animation im Spiel heraussucht und wird später noch genauer erklärt. Generell, wenn keine Datei als Idle ausgewählt ist, bedeutet das, das es als Parent für andere Idles benutzt wird, wenn die Checkbox nicht aktiviert ist.
+
Die "Must Return a File"-Checkbox wird dazu genutzt, um bei der Entscheidung zu helfen, wie der Idle-Manager eine Idle Animation im Spiel heraussucht und wird später noch genauer erklärt. Generell, wenn keine Datei als Idle ausgewählt ist, bedeutet das, dass es als Parent für andere Idles benutzt wird, wenn die Checkbox nicht aktiviert ist.
  
Der Rest dieser Sektion des Dialoges wird für die Einstellungen der Bedingungen genutzt unter welchen die Idle oder eines seiner Children abgespielt wird.
+
Der Rest dieser Sektion des Dialoges wird für die Einstellungen der Bedingungen genutzt, unter welchen die Idle oder eines seiner Children abgespielt wird.
  
  
 
== Bedingungen ==
 
== Bedingungen ==
Jede Idle Animation beinhaltet einen Satz Bedingungen, die im Spiel dazu genutzt werden um zu entscheiden, wann oder wann nicht eine Idle abgespielt wird. Eine Animation eines [[ob:NPC|NPCs], der seinen Bauch festhält und mit einem lauten Rülpser eine Mahlzeit beendet, kann Bedingungen beinhalten, so dass dieser [[ob:NPC|NPC] diese Animation nur dann ausführt, wenn er ein Essens-Package ausführt und hat einen niedrigen "Personality Actor" Wert.
+
Jede Idle Animation beinhaltet einen Satz Bedingungen, die im Spiel dazu genutzt werden, um zu entscheiden, wann oder wann nicht eine Idle abgespielt wird. Eine Animation eines [[ob:NPC|NPCs]], der seinen Bauch festhält und mit einem lauten Rülpser eine Mahlzeit beendet, kann Bedingungen beinhalten, so dass dieser [[ob:NPC|NPC]] diese Animation nur dann ausführt, wenn er ein Essens-Package ausführt und einen niedrigen "Personality Actor"-Wert hat.
  
 
Siehe auch [[ob:Bedingungen|Bedingungen]] für mehr Informationen, wie man Bedingungen einsetzt.
 
Siehe auch [[ob:Bedingungen|Bedingungen]] für mehr Informationen, wie man Bedingungen einsetzt.
  
Der Idle-Datenstrukturbaum
 
  
http://www.ei-der-zeit.com/LexikonCSIV/pic/fenster-Idle_Animation_links.jpg
+
==Der Idle-Datenstrukturbaum==
  
Die linke Seite des Idle Manager Dialog-Box ist eine Baumstruktur-Ansicht und gruppiert die Idles. Dabei repräsentieren die Oberbegriffe all die verschiendenen Kreatur und NPC Skelette. Alle Idles die bei NPC-Skeletten genutzt werden können, werden als Children des Stammes "Charakter\_Male\IdleAnimations" angezeigt und alle Animationen die an einem Goblin-Skelett ausgeführt werden können werden im Stamm "Creatures\Gobil\IdleAnimations" angezeigt. Diese Hauptstränge werden dynamisch hinzugefügt, basierend darauf auf welchem Skelett sie bei den aktuell geladenen NPCs und Kreaturen sie abgespielt werden. Alle unterhalb des Hauptstammes ist eine potentielle Idle Animation die abgespielt werden kann.
+
[[bild:fenster-Idle_Animation_links.jpg]]
  
Mit einem Rechtsklick in diese Baumstruktur wird ein Popup-Menü aufgerufen, mit dem man vorhandene Idles löschen kann (delete), eine neue hinzufügen basierend auf die aktuell gewählte (Schwester/Sister-Objekt) (Insert Sibling), oder eine neue Idle erstellen als Child der aktuell gewählte (Insert Child).
+
Die linke Seite der Idle Manager Dialog-Box ist eine Baumstruktur-Ansicht und gruppiert die Idles. Dabei repräsentieren die Oberbegriffe all die verschiedenen Kreatur- und NPC-Skelette. Alle Idles, die bei NPC-Skeletten genutzt werden können, werden als Children des Stammes "Charakter\_Male\IdleAnimations" angezeigt und alle Animationen, die an einem Goblin-Skelett ausgeführt werden können, werden im Stamm "Creatures\Gobil\IdleAnimations" angezeigt. Diese Hauptstränge werden dynamisch hinzugefügt, basierend darauf, auf welchem Skelett sie bei den aktuell geladenen [[NPC|NPCs]] und Kreaturen sie abgespielt werden. Alles unterhalb des Hauptstammes ist eine potentielle Idle Animation, die abgespielt werden kann.
  
Dabei wird bei "Insert Sibling" eine neue Idle in den Selben Ordner erstellt wie die bereits gewählte. Sie wird also zu einem "Sister-Objekt". Mit "Insert Child" wird eine Idle erstellt, die in einem Unterordner der aktuell gewählten Idle angelegt wird.
+
Mit einem Rechtsklick in diese Baumstruktur wird ein Popup-Menü aufgerufen, mit dem man vorhandene Idles löschen kann (delete), eine neue hinzufügen, basierend auf der aktuell gewählten (Schwester/Sister-Objekt) (Insert Sibling), oder eine neue Idle erstellen, als Child der aktuell gewählten (Insert Child).
  
Dabei agiert eben ein Child-Objekt als Unterobjekt des darüberliegenden Objektes. Einfach gesprochen: Das oberobjekt ist das "Sitzen" und das Unterobjekt ist das "aufstehen". Wenn der Charakter aufstehen will (Child) muß er zunächst einmal im sitzenden Status sein (Parent). Natürlich kann ein Child wiederrum ein Parent für ein anderes Child sein.
+
Dabei wird bei "Insert Sibling" eine neue Idle in dem selben Ordner erstellt, in dem die bereits gewählte liegt. Sie wird also zu einem "Sister-Objekt". Mit "Insert Child" wird eine Idle erstellt, die in einem Unterordner der aktuell gewählten Idle angelegt wird.
  
Die "Move Up" und "Move Down" Buttons können dazu benutzt werden eine Idle in der Liste in Relation zu ihren Schwester-Objekten hoch oder runter zu bewegen (Mit anderen Worten also: Damit kann man einen Ordner/Idle innerhalb des Unterordners, in dem er sich befindet hoch oder runterbewegen, aber nicht in einen Ober- oder Unterordner).
+
Hier agiert eben ein Child-Objekt als Unterobjekt des darüberliegenden Objektes. Einfach gesprochen: Das Oberobjekt ist das "Sitzen" und das Unterobjekt ist das "Aufstehen". Wenn der Charakter aufstehen will (Child), muss er zunächst einmal im sitzenden Status sein (Parent). Natürlich kann ein Child wiederum ein Parent für ein anderes Child sein.
  
Wenn eine Idle gelöscht wird, werden auch alle Childs (Unterobjekte) gelöscht (ist klar; wer nicht mehr sitzt, braucht auch nicht mehr aufstehen).
+
Die "Move Up"- und "Move Down"-Buttons können dazu benutzt werden, eine Idle in der Liste in Relation zu ihren Schwester-Objekten hoch oder runter zu bewegen (mit anderen Worten also: damit kann man einen Ordner/Idle innerhalb des Unterordners, in dem er sich befindet hoch oder runterbewegen, aber nicht in einen Ober- oder Unterordner).
 +
 
 +
Wenn eine Idle gelöscht wird, werden auch alle Childs (Unterobjekte) gelöscht (ist klar: wer nicht mehr sitzt, braucht auch nicht mehr aufstehen).
  
 
Wenn eine neue Idle als Child eingefügt wird, wird sie als erstes Child unter der aktuell ausgewählten Idle eingefügt (also in einen neuen Unterordner). Wenn eine neue Idle als Sibling (Schwester) eingefügt wird, so kommt sie gleich unter/hinter die aktuell ausgewählt Idle (im selben Ordner).
 
Wenn eine neue Idle als Child eingefügt wird, wird sie als erstes Child unter der aktuell ausgewählten Idle eingefügt (also in einen neuen Unterordner). Wenn eine neue Idle als Sibling (Schwester) eingefügt wird, so kommt sie gleich unter/hinter die aktuell ausgewählt Idle (im selben Ordner).
  
  
== Der Idle Manager im Spiel ==
+
== Der Idle-Manager im Spiel ==
 
=== Idles auswählen ===
 
=== Idles auswählen ===
Wenn der Idle Manager aufgerufen wird um eine Idle für einen Actor auszusuchen, wird er als erstes die Hauptstränge des Datenbaumes durchsuchen um herauszufinden, welche Idles auf das Skelett des Actors ausführbar sind. Dann fängt er an die erste Child-Idle in seinem Unterordner durchzusehen um zu sehen, welche Bedingungen der Idles erfüllt sind. Wenn sie nicht erfüllt ist, sieht er sich die Bedingung des nächsten Childs an (die Sibling / Schwester). Wenn der Actor dann die Bedingungen für eine Idle erfüllt und die Bedingungen für keine seiner Childs (Unter-Idles) erfüllt sind (oder er keine Childs hat) wird diese Animation abgespielt.
+
Wenn der Idle-Manager aufgerufen wird, um eine Idle für einen Actor auszusuchen, wird er als Erstes die Hauptstränge des Datenbaums durchsuchen, um herauszufinden, welche Idles auf das Skelett des Actors ausführbar sind. Dann fängt er an, die erste Child-Idle in seinem Unterordner durchzusehen, um zu sehen, welche Bedingungen der Idles erfüllt sind. Wenn sie nicht erfüllt ist, sieht er sich die Bedingung des nächsten Childs an (die Sibling / Schwester). Wenn der Actor dann die Bedingungen für eine Idle erfüllt und die Bedingungen für keine seiner Childs (Unter-Idles) erfüllt sind (oder er keine Childs hat), wird diese Animation abgespielt.
 +
 
 +
Wenn der Idle Manager eine Idle ausgewählt hat, der eine KF-Datei angehängt ist, wird er diese aufrufen und sobald sie geladen ist abgespielen. Wenn die Idle, die gewählt ist, keine KF-Datei hat, können zwei Dinge passieren, wenn man sich auf das "Must Return"-Flag verlässt. Wenn die Idle ohne KF ein "Must Return"-Flag aktiviert hat, wird sie übersprungen, so als hätte der Actor die Bedingung nicht erfüllt und der Idle-Manager geht zum nächsten Sibling-Objekt im aktuellen Ordner. Wenn das "Must Return"-Flag nicht aktiviert ist, wird keine Datei zurückgegeben und keine Idle abgespielt.
  
Wenn der Idle Manager eine Idle ausgewählt hat dem eine KF-Datei angehängt ist wird er diese aufgerufen und sobald sie geladen ist abgespielt. Wenn die Idle, die gewählt ist, keine KF-Datei hat können zwei Dinge passieren wenn man sich auf das "Must Return" Flag verlässt. Wenn die Idle ohne KF ein "Must Return"-Flag aktiviert hat, wird sie übersprungen, so als hätte der Actor die Bedingung nicht erfüllt und der Idle Manager geht zum nächsten Sibling-Objekt im aktuellen Ordner. Wenn das "Must Return"-Flag nicht aktiviert ist, wird keine Datei zurückgegeben und keine Idle abgespielt.
+
Als Beispiel: Ein [[ob:NPC|NPC]] sitzt auf einen Stuhl und es wird nach einer Idle gefragt, wird er sich wohl am ehesten für die "SittingIdles" qualifizieren, bei denen der "GetSitting" abgefragt wird, aber keine KF-Datei angehängt ist. Wenn aus irgendwelchen Gründen nun die Bedingungen der Child-Idles darunter nicht erfüllt werden, wird "SittingIdles" zurückgegeben. Wenn das "Must Return"-Flag nicht aktiviert wäre, würde keine Datei zurückgegeben und der Actor wird keine Animation abspielen. Wenn die "Must Return"-Flag aber aktiviert ist, gehen wir zurück zu den "SittingIdles" in der Liste und der Actor wird vielleicht eine Idle abwickeln, die für einen sitzenden Charakter nicht angemessen wäre.
  
Als Beispiel: Ein [[ob:NPC|NPC] sitzt auf einen Stuhl und es wird nach einer Idle gefragt, wird er sich wohl am ehesten für die "SittingIdles" qualifizieren, bei denen der "GetSitting" abgefragt wird, aber keine KF-Datei angehängt ist. Wenn aus irgendwelchen Gründen nun die Bedingungen der Child-Idles darunter nicht erfüllt werden, wird "SittingIdles" zurückgegeben. Wenn das "Must Return"-Flag nicht aktiviert wäre, würde keine Datei zurückgegeben und der Actor wird keine Animation abspielen. Wenn die "Must Return"-Flag aber aktiviert ist, gehen wir zurück zu den "SittingIdles" in der Liste und der Actor wird vielleicht eine Idle abwickeln, die für einen sitzenden Charakter nicht angemessen wäre.
 
  
 
=== Wenn Idles im Spiel abgespielt werden ===
 
=== Wenn Idles im Spiel abgespielt werden ===
Idles können über Scripts erzwungen werden. Wenn die Funktion "[[ob:PickIdle|PickIdle]]" von einem Actor aufgerufen wird, wird der Idle Manager versuchen eine Idle dafür auszusuchen. Wenn eine Idle zurückgegeben wird, ist diese an der Reihe und wird abgespielt. Das kann im Spiel an einem Actor getestet werden, in dem man ihn in der Game-Console (^) auswählt und "PickIdle" eingibt. Der Name der gewählten Idle-Datei wird angezeigt und wenn du zum Spiel zurückkehrst wird der [[ob:Actor|Actor]] versuchen, diese Animation abzuspielen.
+
Idles können über Scripts erzwungen werden. Wenn die Funktion "[[ob:PickIdle|PickIdle]]" von einem Actor aufgerufen wird, wird der Idle-Manager versuchen, eine Idle dafür auszusuchen. Wenn eine Idle zurückgegeben wird, ist diese an der Reihe und wird abgespielt. Das kann im Spiel an einem Actor getestet werden, indem man ihn in der Game-Console (^) auswählt und "PickIdle" eingibt. Der Name der gewählten Idle-Datei wird angezeigt und wenn du zum Spiel zurückkehrst wird der [[ob:Actor|Actor]] versuchen, diese Animation abzuspielen.
  
Idles werden manchmal basierend auf des [[ob:Actor|Actors]] Ereignisse im Spiel abgespielt. Wenn ein [[ob:Actor|Actor]] umgefallen ist und auf dem Boden liegt, ist es die Aufgabe des Idle-Managers eine KF-Datei auszuwählen, die den [[ob:Actor|Actor]] wieder aufstehen lässt. Wenn ein [[ob:Actor|Actor]] sich im Kampf entscheidet aufzugeben, wird der Idle-Manager die entsprechende Idle dazu auswählen. Während ein [[ob:Actor|Actor]] schläft oder isst, wird der Idle Manager ständig nach neuen Animationen abgefragt, die zur aktuellen Aufgabe passend sind. Auch während eines Dialoges mit dem Spieler oder einem [[ob:NPC|NPC] wird nach Idles gefragt, die das Gespräch mit Gesten oder anderen Idles untermalen. Dabei sowohl beim Sprecher als auch beim Zuhörer.
+
Idles werden manchmal basierend auf den [[ob:Actor|Actor]]-Ereignissen im Spiel abgespielt. Wenn ein [[ob:Actor|Actor]] umgefallen ist und auf dem Boden liegt, ist es die Aufgabe des Idle-Managers eine KF-Datei auszuwählen, die den [[ob:Actor|Actor]] wieder aufstehen lässt. Wenn ein [[ob:Actor|Actor]] sich im Kampf entscheidet aufzugeben, wird der Idle-Manager die entsprechende Idle dazu auswählen. Während ein [[ob:Actor|Actor]] schläft oder isst, wird der Idle-Manager ständig nach neuen Animationen abgefragt, die zur aktuellen Aufgabe passend sind. Auch während eines Dialoges mit dem Spieler oder einem [[ob:NPC|NPC]] wird nach Idles gefragt, die das Gespräch mit Gesten oder anderen Idles untermalen. Dabei sowohl beim Sprecher als auch beim Zuhörer.
  
Idles können auch an zu verschiedenen Zeiten basierend auf des [[ob:Actor|Actors]] Energie-Level abgespielt werden. [[ob:Actor|Actors]] mit niedrigem Energie-Level werden wohl sehr viel öfters Pause machen und sich ausruhen, als Actors mit höherem Energielevel. Wenn der untere Körper des [[ob:Actor|Actors]] sich ausruht, wird eine Idle ausgewählt, bis der Energie-Timer abgelaufen ist und eine neue Idle abgespielt wird.
+
Idles können auch zu verschiedenen Zeiten basierend auf dem [[ob:Actor|Actor]]-Energie-Level abgespielt werden. [[ob:Actor|Actors]] mit niedrigem Energie-Level werden wohl sehr viel öfters Pause machen und sich ausruhen, als Actors mit höherem Energielevel. Wenn der untere Körper des [[ob:Actor|Actors]] sich ausruht, wird eine Idle ausgewählt, bis der Energie-Timer abgelaufen ist und eine neue Idle abgespielt wird.
  
  
Zeile 70: Zeile 73:
 
[[ob:GetIdleDoneOnce|GetIdleDoneOnce]]
 
[[ob:GetIdleDoneOnce|GetIdleDoneOnce]]
  
[[Kategorie: Grundlegendes Wissen|Animations, Idle]]
+
[[Category:Animation-Funktionen|Animations, Idle]]
 +
[[Category:Editor-Bedienung|Idle Animations]]

Aktuelle Version vom 25. März 2010, 19:11 Uhr

Idle Animationen allgemein

In Oblivion beinhaltet die Idle-(unbeschäftigt)-Animation Informationen darüber, welche Datei abgespielt wird, wie sie auf das Skelett des Actors übertragen wird und unter welchen Voraussetzungen sie abgespielt werden. Der Idle-Manager ist zum einen das Werkzeug, um Idle Animationen zu definieren und zum anderen das System, mit dem im Spiel diese Idle Animationen gewählt werden. Diese Beschreibung soll nun näher bringen, wie das Tool benutzt wird und wie die Idle Animationen im Spiel genutzt werden.

"Idle Animation" kann man übrigens schlecht übersetzen, deswegen bleibe ich auch bei der englischen Bezeichnung. Prinzipiell sind Idle Animationen hauptsächlich die Animationen, die NPCs "von selbst" ausführen. Also eben keine Kampf-Animationen und keine gescripteten Bewegungen. Idle Animationen dienen also unter anderem dazu, dass NPCs - wenn sie keine direkte Aufgabe haben - nicht einfach auf der Stelle stehen, sondern sich auch bewegen, wenn sie nichts zu tun haben.


Die Idle Manager Dialog Box

Wähle im Menü "Gameplay" den Eintrag "Idle Animations...", um den Idle Manager Dialog aufzurufen. Auf der linken Seite befindet sich dabei eine Daten-Baumstruktur aller Idle Animationen, die es im Spiel gibt. Die rechte Seite der Dialog-Box wird dazu genutzt, um die entsprechenden Einstellungen für die ausgewählte Idle Animation vorzunehmen oder anzuschauen. Fenster-Idle Animation.jpg


Idle Animation Daten

Die rechte Seite der Dialog-Box wird dazu verwendet, die Daten für die aktuell ausgewählte Idle Animation einzustellen.

Fenster-Idle Animation rechts.jpg

Das ID-Feld wird wieder einmal dafür genutzt, der Idle Animation einen einmaligen Namen zuzuweisen. Der Text wird niemals im Spiel angezeigt und hat daher hauptsächlich einen organisatorischen Zweck. Der Name sollte also möglichst verständlich und übersichtlich gehalten werden.

Der Button rechts der ID ("Select Animation File") wird dazu benötigt, um das KF-File für die Animation auszuwählen. Nur KF-Files im IdleAnims-Verzeichnis unterhalb des Verzeichnisses, worin das NPC- oder Kreatur-Skelett existiert, kann ausgewählt werden.

Die Animation Group Section Dropdown-Liste wird dazu genutzt, um auszuwählen, wie die Animation auf das Skelett abgespielt wird. Generell wird das auf "Special Idle" gesetzt, was bedeutet, dass das Spiel versucht, die Animation auf das ganze Skelett zu übertragen und Prioritäten benutzt, um zu entscheiden, welche Bones ("Knochen") - wenn welche vorhanden sind - der Animation, die gerade abgespielt wird, von der Idle Animation überschrieben werden.

Die "Must Return a File"-Checkbox wird dazu genutzt, um bei der Entscheidung zu helfen, wie der Idle-Manager eine Idle Animation im Spiel heraussucht und wird später noch genauer erklärt. Generell, wenn keine Datei als Idle ausgewählt ist, bedeutet das, dass es als Parent für andere Idles benutzt wird, wenn die Checkbox nicht aktiviert ist.

Der Rest dieser Sektion des Dialoges wird für die Einstellungen der Bedingungen genutzt, unter welchen die Idle oder eines seiner Children abgespielt wird.


Bedingungen

Jede Idle Animation beinhaltet einen Satz Bedingungen, die im Spiel dazu genutzt werden, um zu entscheiden, wann oder wann nicht eine Idle abgespielt wird. Eine Animation eines NPCs, der seinen Bauch festhält und mit einem lauten Rülpser eine Mahlzeit beendet, kann Bedingungen beinhalten, so dass dieser NPC diese Animation nur dann ausführt, wenn er ein Essens-Package ausführt und einen niedrigen "Personality Actor"-Wert hat.

Siehe auch Bedingungen für mehr Informationen, wie man Bedingungen einsetzt.


Der Idle-Datenstrukturbaum

Fenster-Idle Animation links.jpg

Die linke Seite der Idle Manager Dialog-Box ist eine Baumstruktur-Ansicht und gruppiert die Idles. Dabei repräsentieren die Oberbegriffe all die verschiedenen Kreatur- und NPC-Skelette. Alle Idles, die bei NPC-Skeletten genutzt werden können, werden als Children des Stammes "Charakter\_Male\IdleAnimations" angezeigt und alle Animationen, die an einem Goblin-Skelett ausgeführt werden können, werden im Stamm "Creatures\Gobil\IdleAnimations" angezeigt. Diese Hauptstränge werden dynamisch hinzugefügt, basierend darauf, auf welchem Skelett sie bei den aktuell geladenen NPCs und Kreaturen sie abgespielt werden. Alles unterhalb des Hauptstammes ist eine potentielle Idle Animation, die abgespielt werden kann.

Mit einem Rechtsklick in diese Baumstruktur wird ein Popup-Menü aufgerufen, mit dem man vorhandene Idles löschen kann (delete), eine neue hinzufügen, basierend auf der aktuell gewählten (Schwester/Sister-Objekt) (Insert Sibling), oder eine neue Idle erstellen, als Child der aktuell gewählten (Insert Child).

Dabei wird bei "Insert Sibling" eine neue Idle in dem selben Ordner erstellt, in dem die bereits gewählte liegt. Sie wird also zu einem "Sister-Objekt". Mit "Insert Child" wird eine Idle erstellt, die in einem Unterordner der aktuell gewählten Idle angelegt wird.

Hier agiert eben ein Child-Objekt als Unterobjekt des darüberliegenden Objektes. Einfach gesprochen: Das Oberobjekt ist das "Sitzen" und das Unterobjekt ist das "Aufstehen". Wenn der Charakter aufstehen will (Child), muss er zunächst einmal im sitzenden Status sein (Parent). Natürlich kann ein Child wiederum ein Parent für ein anderes Child sein.

Die "Move Up"- und "Move Down"-Buttons können dazu benutzt werden, eine Idle in der Liste in Relation zu ihren Schwester-Objekten hoch oder runter zu bewegen (mit anderen Worten also: damit kann man einen Ordner/Idle innerhalb des Unterordners, in dem er sich befindet hoch oder runterbewegen, aber nicht in einen Ober- oder Unterordner).

Wenn eine Idle gelöscht wird, werden auch alle Childs (Unterobjekte) gelöscht (ist klar: wer nicht mehr sitzt, braucht auch nicht mehr aufstehen).

Wenn eine neue Idle als Child eingefügt wird, wird sie als erstes Child unter der aktuell ausgewählten Idle eingefügt (also in einen neuen Unterordner). Wenn eine neue Idle als Sibling (Schwester) eingefügt wird, so kommt sie gleich unter/hinter die aktuell ausgewählt Idle (im selben Ordner).


Der Idle-Manager im Spiel

Idles auswählen

Wenn der Idle-Manager aufgerufen wird, um eine Idle für einen Actor auszusuchen, wird er als Erstes die Hauptstränge des Datenbaums durchsuchen, um herauszufinden, welche Idles auf das Skelett des Actors ausführbar sind. Dann fängt er an, die erste Child-Idle in seinem Unterordner durchzusehen, um zu sehen, welche Bedingungen der Idles erfüllt sind. Wenn sie nicht erfüllt ist, sieht er sich die Bedingung des nächsten Childs an (die Sibling / Schwester). Wenn der Actor dann die Bedingungen für eine Idle erfüllt und die Bedingungen für keine seiner Childs (Unter-Idles) erfüllt sind (oder er keine Childs hat), wird diese Animation abgespielt.

Wenn der Idle Manager eine Idle ausgewählt hat, der eine KF-Datei angehängt ist, wird er diese aufrufen und sobald sie geladen ist abgespielen. Wenn die Idle, die gewählt ist, keine KF-Datei hat, können zwei Dinge passieren, wenn man sich auf das "Must Return"-Flag verlässt. Wenn die Idle ohne KF ein "Must Return"-Flag aktiviert hat, wird sie übersprungen, so als hätte der Actor die Bedingung nicht erfüllt und der Idle-Manager geht zum nächsten Sibling-Objekt im aktuellen Ordner. Wenn das "Must Return"-Flag nicht aktiviert ist, wird keine Datei zurückgegeben und keine Idle abgespielt.

Als Beispiel: Ein NPC sitzt auf einen Stuhl und es wird nach einer Idle gefragt, wird er sich wohl am ehesten für die "SittingIdles" qualifizieren, bei denen der "GetSitting" abgefragt wird, aber keine KF-Datei angehängt ist. Wenn aus irgendwelchen Gründen nun die Bedingungen der Child-Idles darunter nicht erfüllt werden, wird "SittingIdles" zurückgegeben. Wenn das "Must Return"-Flag nicht aktiviert wäre, würde keine Datei zurückgegeben und der Actor wird keine Animation abspielen. Wenn die "Must Return"-Flag aber aktiviert ist, gehen wir zurück zu den "SittingIdles" in der Liste und der Actor wird vielleicht eine Idle abwickeln, die für einen sitzenden Charakter nicht angemessen wäre.


Wenn Idles im Spiel abgespielt werden

Idles können über Scripts erzwungen werden. Wenn die Funktion "PickIdle" von einem Actor aufgerufen wird, wird der Idle-Manager versuchen, eine Idle dafür auszusuchen. Wenn eine Idle zurückgegeben wird, ist diese an der Reihe und wird abgespielt. Das kann im Spiel an einem Actor getestet werden, indem man ihn in der Game-Console (^) auswählt und "PickIdle" eingibt. Der Name der gewählten Idle-Datei wird angezeigt und wenn du zum Spiel zurückkehrst wird der Actor versuchen, diese Animation abzuspielen.

Idles werden manchmal basierend auf den Actor-Ereignissen im Spiel abgespielt. Wenn ein Actor umgefallen ist und auf dem Boden liegt, ist es die Aufgabe des Idle-Managers eine KF-Datei auszuwählen, die den Actor wieder aufstehen lässt. Wenn ein Actor sich im Kampf entscheidet aufzugeben, wird der Idle-Manager die entsprechende Idle dazu auswählen. Während ein Actor schläft oder isst, wird der Idle-Manager ständig nach neuen Animationen abgefragt, die zur aktuellen Aufgabe passend sind. Auch während eines Dialoges mit dem Spieler oder einem NPC wird nach Idles gefragt, die das Gespräch mit Gesten oder anderen Idles untermalen. Dabei sowohl beim Sprecher als auch beim Zuhörer.

Idles können auch zu verschiedenen Zeiten basierend auf dem Actor-Energie-Level abgespielt werden. Actors mit niedrigem Energie-Level werden wohl sehr viel öfters Pause machen und sich ausruhen, als Actors mit höherem Energielevel. Wenn der untere Körper des Actors sich ausruht, wird eine Idle ausgewählt, bis der Energie-Timer abgelaufen ist und eine neue Idle abgespielt wird.


Weiterführende Themen

GetIdleDoneOnce