Oblivion:Idle Animations

Aus Skript-Wiki
Version vom 3. August 2008, 15:45 Uhr von Lars (Diskussion | Beiträge) (Nochmal nachgebessert)
Wechseln zu: Navigation, Suche

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 man 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 das 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

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.

http://www.ei-der-zeit.com/LexikonCSIV/pic/fenster-Idle_Animation.jpg

Idle Animation Daten

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

http://www.ei-der-zeit.com/LexikonCSIV/pic/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.

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 "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.

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

Bedinungen

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 das dieser NPC diese Animation nur dann ausführt, wenn er ein Essens-Package ausführt und hat einen niedrigen "Personality Actor" Wert.

Siehe auch 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

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.

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).

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.

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.

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 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 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 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, 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 Actor versuchen, diese Animation abzuspielen.

Idles werden manchmal basierend auf des Actors Ereignisse 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 an zu verschiedenen Zeiten basierend auf des Actors 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

A

Animations Befehle

G

GetIdleDoneOnce