Oblivion:Idle Animations: Unterschied zwischen den Versionen
Keris (Diskussion | Beiträge) K |
Keris (Diskussion | Beiträge) K |
||
Zeile 74: | Zeile 74: | ||
[[ob:GetIdleDoneOnce|GetIdleDoneOnce]] | [[ob:GetIdleDoneOnce|GetIdleDoneOnce]] | ||
− | |||
[[Category:Animation-Funktionen|Animations, Idle]] | [[Category:Animation-Funktionen|Animations, Idle]] | ||
[[Category:CS-Bedienung|Idle Animations]] | [[Category:CS-Bedienung|Idle Animations]] |
Version vom 24. September 2008, 15:39 Uhr
Inhaltsverzeichnis
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.
http://www.ei-der-zeit.com/LexikonCSIV/pic/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.
http://www.ei-der-zeit.com/LexikonCSIV/pic/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
http://www.ei-der-zeit.com/LexikonCSIV/pic/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.