Allgemein
News
News-Archiv
Partner
Netzwerk
Banner
Header
Media
Downloads
Impressum

The Elder Scrolls
Arena
Daggerfall
Spin-offs
Romane
Jubiläum
Reviews
Welt von TES
Lore-Bibliothek
Namens-
generator

FRPGs

Elder Scrolls Online
Allgemein
Fraktionen
Charakter
Kargstein
Technik
Tamriel-
Manuskript

Media

Skyrim
Allgemein
Lösungen
Tipps & Tricks
Steam-Kniffe
Review
Media
Plugins & Mods

Oblivion
Allgemein
Lösungen
Tipps & Tricks
Technik
Charakter
Media
Plugins & Mods
Kompendium

Morrowind
Allgemein
Lösungen
Tipps & Tricks
Media
Plugins & Mods

Foren
The Elder Scrolls Online
Hilfe & Diskussion

Skyrim
Hilfe & Diskussion
Plugins & Mods

Ältere TES-Spiele
TES-Diskussion
Oblivion-Plugins
Morrowind-Plugins

Community
Taverne zum Shalk
Adventures of Vvardenfell
Tales of Tamriel
Ergebnis 1 bis 15 von 15

Thema: Tutorials für das Construction Set

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    MaxikingWolke22's Tutorial für euer eigenes Sternzeichen-Gleichgewicht

    Guten Abend,
    ich selbst habe erst vor wenigen Tagen das Modden "gelernt" und wollte dem interessiertem Leser nun zeigen, wie er sich mit Hilfe des Konstruktions Sets die Spielbalance verändern kann. So werden etwa Sternzeichen geändert und attraktiver gemacht, Magiersternzeichen erhalten mehr Magieboni, und der Schlossöffnen-Zauber des Turm-Zeichens kann nun auch sehr schwere Schlösser öffnen (Durchschnittsschlösser findet man ab Level 10 ja nicht mehr so oft, sie werden dann langsam durch stärkere abgelöst).

    Ich werde dieses Tutorial nun in mehrere Schritte unterteilen; keiner davon besonders schwer. Nur ein bisschen Englisch sollte man verstehen.

    1. Genaue Liste gewünschter Änderungen anhand von Spielerfahrungen aufschreiben, damit man später nicht durcheinander kommt. Das ist nämlich sonst kein Vergnügen - allein an den Sternzeichen kann man dann Stunden sitzen, wenn man's zum ersten mal macht. Eine Tabelle mit vorher/nachher ist zu empfehlen.

    2. Natürlich das TES ConstructionSet (Oblivion) herunterladen. Gibt's links unter PlugIns/Programme. Dann installieren. Kommt immer gut!

    3. Öffnet das CS. Klickt oben links auf "File", dann auf "Data...", dann doppelklickt in der Liste all eurer PlugIns auf die Datei "Oblivion.esm". Es ist richtig, dass vor keinem der PI ein Kreuz ist. Vor Die Oblivion.esm-Datei ist eins gesetzt, also klickt ihr auf OK. Dann lädt er etwa eine halbe Minute, und dann habt ihr links die Liste mit "Actors", "Items", "Magic" usw.. Klickt ihr nun hier auf einen Reiter, so ist auf einmal alles voll von Namen und Zaubern etc., im Gegensatz zu vorher.

    4. Klickt oben in der Leiste, in der auch "File" zu finden war, auf "Character", dann auf "Birthsigns...". Nun seht ihr in einem Fenster eine Liste aller Sternzeichen. Die EditorID besteht aus "BirthSign" und dem englischen Namen des Sternzeichens, rechts daneben findet man den deutschen Namen, der auch im Spiel zu finden ist. Wählt eines durch einfachen Klick aus:
    - Unter "Full Name" steht der Name, der im Spiel bei der Auswahl und später beim Charakter zu finden ist, etwa "Der Atronach".
    - Unter "Description" findet man die Beschreibung, die bei der Auswahl in der Kaiserlichen Kanalisation am Anfang des Spiels zu lesen ist. Diese könnt ihr ändern, so steht z.B. beim Sternzeichen Krieger, dass die Stärke um +20 erhöht wird, obwohl Stärke und Konstitution um je +10 erhöht werden.
    - Unter "Spell" findet man die Zauber des Sternzeichens. Das ist beim Atronach einer, der aber mehrere Eigenschaften hat. Er heißt "BSAtronach". Das ist das für uns Interessante.
    - Unter "Constellation Image" sieht man das Bild, das im Spiel angezeigt wird. Hier kann man schrauben, muss man aber nicht. Heute lassen wir das mal!

    5. Jetzt geht's ans Modden! Den Zauber "BSAtronach" kann man leider nicht anklicken. Das macht einiges sehr viel unübersichtlicher, besonders für Anfänger. Dennoch kann man ihn ändern, wenn man nämlich links auf "Magic"\"Spell" klickt. hier sind ALLE Zaubersprüche im Spiel aufgelistet. sie werden aber unterteilt in: "An/Aus", "Eigenschaft", "Geringere Macht", "Krankheit" und "Zauber". Wir erinnern uns: Das Sternzeichen Atronach bedeutet: Magiebonus +150, Beeinträchtigte Magicka (wird also nicht regeneriert), und Zauberabsorbation 50 Punkte. Das sind alles Eigenschaften; Sie werden im Menü "Aktive Effekte" im Spiel als konstante Effekte aufgelistet. Andere Zauber von anderen Sternzeichen, die etwa 1x täglich gezaubert werden können, sind unter "An/Aus" zu finden, wie etwa "BSShadowMoonshadow", der "Mondschatten" des Diebes ("BS" steht für BirthSign, also Sternzeichen. Das erleichtert die Suche nach den Zaubern erheblich. "Shadow" steht hier für das Sternzeichen selbst, also "Schatten". Und "Moonshadow" ist der Name des Zaubers / der Eigenschaft).
    Wenn man nun unter "Eigenschaft" auf "BSAtronach" doppelklickt, sieht man folgendes:
    Eine Tabelle! Dadrin stehen drei Zauber:
    1) Magicka festigen; Stärke 150; Radius 0; Duration Selbst (ob der Zauber auf sich selbst, auf ziele oder auf Berühren angewendet wird) und die Kosten.
    2) Zauberabsorbtion 50 Punkte an Selbst
    3) Beeinträchtigte Magicka an Selbst

    Doppelklickt man jetzt - oder rechtsklickt und auf "Edit" klickt - auf diesen Zauber, so kann man die Parameter umstellen; etwa bei "Magnitude (Stärke)" 200 hineinschreiben. wenn man dann auf OK klickt, sind die Änderungen gespeichert. So kann man mit allen Sternzeichen verfahren - im Sternzeichen-Menü auf das gewünschte Sternzeichen klicken, dann den Zauber unter "Spell" suchen, draufklicken - Und ändern! Und auf OK klicken nicht vergessen! Hat man nun aber keine Liste, nach der man planmäßig vorgehen kann, so sieht man schnell alt aus, mit den ganzen Zaubern, die alle irgendwie "BS" heißen und so...

    6. Wenn man nun genug geändert hat - etwa den Sternzeichen, die nur Attributboni geben, noch andere Effekte hinzugefügt hat, wie etwa "Ausdauer festigen" für das Sternzeichen "Der Krieger", dann kann man auf "File" klicken - oben links - und auf "Save" gehen. dann habt ihr's gespeichert - und seid fertig! Klickt man nochmal auf "File" und "Data", und markiert man dann in der Liste das gerade erstellte PlugIn, so kann man noch den Namen und die Beschreibung ändern - etwa "MeinErstesPlugIn" oder "SternzeichenAusgleich1". Außerdem kann man, wenn man es auswählt - wie ganz am Anfang die "Oblivion.esm"-Datei - und auf "SetAsActiveFile" klickt, es nochmal bearbeiten.

    Vor dem Spielen im Launcher auf Spieldateien klicken und den Haken davorsetzen - fertig! Dann könnt ihr loslegen - aber leider nur mit nem neuen Charakter, oder mit einem, der noch im Sternzeichen-Auswahlmenü in der Kanalisation gespeichert wurde. Um mit einem vorhanden weiterzuspielen, bedarf es mehr Arbeit - denn dafür muss gescriptet werden. Das lassen wir aber vorerst!

    MaxikingWolke22

  2. #2

    Verwenden verschiedener Sprachen ohne Einsatz meherer *.esp-Dateien

    Ich begebe mich auch mal unter die Tutorial-Schreiber.

    Wie oben im Titel zu sehen wird hier nach und nach ein Tutorial entstehen, wie man ein mehrsprachiges Plugin erstellen kann, ohne für jede Sprache eine eigene *.esp zu benötigen.
    Für dieses Tutorial wird zumindest ein grundlegendes Scriptwissen vorausgesetzt, da sowohl das umbenennen der Items, als auch das feststellen der Sprache über Scripts erfolgt und ich mir nicht die Mühe machen will, dass Scripten auch noch extra zu erklären.

    Sofern man auf neue Objekte (z.B. Activators, Inventarobjekte, Zauber) verzichtet kann man das komplett mit Vanilla-Befehlen erreichen, allerdings bevorzuge ich immer die Variante mit OBSE.

    ACHTUNG:
    Ich habe in keinem Script die nötige Überprüfung nach OBSE/Pluggy eingefügt.
    Es wird davon ausgegangen, dass diese schon erfolgt sind.
    Sofern OBSE/Pluggy benötigt wird steht es dabei.




    Feststellen der Sprache
    Um die Sprache herauszufinden gibt es 4 Möglichkeiten (ich bin sicher, es gibt noch ein paar mehr, ich zähle hier aber nur diese 4 auf ):
    1. Bestimmen der Sprache durch Fragen des Users
      Einfach beim ersten Spielstart eine MessageBox und gut ist. Einziges Problem ist, dass man sich bei dieser MessageBox für eine Sprache entscheiden muss. Englisch dürfte hier die beste Wahl sein, da dass von den meisten verstanden wird.
      Das ganze könnte z.B. so aussehen:
      Code:
      scn QuDetermineLanguageScript
      
      short Stage
      short Language		;0=English, 1=German, 2=French, 3=Spanish, 4=Italian, etc.
      
      Begin Gamemode
      	if ( Stage )
      		if ( Language == -1 )
      			set Language to GetButtonPressed
      		else
      			StopQuest QuDetermineLanguage
      		enidf
      	else
      		set Language to GetButtonPressed
      		MessageBox "Which Language do you want to use?" "English" "German" "French" "Spanish" "Italian"
      	endif
      End
      Bei mir würde sich sowas nur auf English & Deutsch beschränken, einfach weil ich nicht mehr kann.
    2. Bestimmen der Sprache anhand des *.ini-Setting iLanguage unter [Controls].
      Gibt meistens verlässlich die Sprache an, steht aber eigentlich für die Tastatureinstellung (Language values: 0-English, 1-German, 2-French, 3-Spanish, 4-Italian). In Einzelfällen kann also die falsche Sprache gewählt werden.
      Benötigt den OBSE-Befehl GetNumericINISetting/con_GetINISetting.
      Code:
      scn QuDetermineLanguageScript
      
      short Language		;0=English, 1=German, 2=French, 3=Spanish, 4=Italian, etc.
      
      Begin Gamemode
      	set Language to GetNumericINISetting "iLanguage:Controls"
      	StopQuest QuDetermineLanguage
      End
    3. Bestimmen der Sprache anhand des Namens eines Vanilla-Objekts (z.B. eines Apfels)
      Funktioniert z.B. über die OBSE-Funktion CompareNames, könnte allerdings in Einzelfällen das falsche Ergebnis liefern falls ein anderes Plugin den Namen ändert.
      Code:
      scn QuDetermineLanguageScript
      
      short Language		;0=English, 1=German, 2=French, 3=Spanish, 4=Italian, etc.
      
      Begin Gamemode
      	set Language to ( ( CompareNames Apple AppleDV ) == 0 ) + ( ( ( CompareNames Apple AppleFV ) == 0 ) * 2 )	;kann noch beliebig mit weiteren Sprachen ergänzt werden
      	StopQuest QuDetermineLanguage
      End
      Unterstützt in der Form die Sprachen Englisch, Deutsch & Französich.
      AppleDV & AppleFV sind irgendwelche Objekte, die genauso heißen wie Apple in der jeweiligen Sprache.
      AppleDV heißt also Apfel, während AppleFV wahrscheinlich pomme (fragt am besten bei jemanden mit einer französischen Version nach) heißt.
    4. Bestimmen der Sprache anhand der Dateigröße der Oblivion.esm.
      Funktioniert über die Pluggy-Funktion GetFileSize. Die zu überprüfenden Werte für die Deutsche Version (Patch 1.2.0416) sind dabei 247876643 & 278038032, als RootID muss dabei natürlich 1 (Oblivion main folder) verwendet werden.
      Funktioniert absolut zuverlässig, solange der User die Oblivion.esm nicht verändert hat. Das sollte zwar eigentlich nie der Fall sein, aber User sind manchmal noch unvorhersehbarer, als Oblivion selbst.
      Code:
      scn QuDetermineLanguageScript
      
      short Language		;0=English, 1=German, 2=French, 3=Spanish, 4=Italian, etc.
      
      Begin Gamemode
      	set Language to ( ( ( GetFileSize -2000 1 ) == 247876643 ) || ( ( GetFileSize -2000 1 ) == 278038032 ) )	;Patch 1.2 ohne SI || Patch 1.2 mit SI; DV=1, alles andere =0
      	StopQuest QuDetermineLanguage
      End
      Unterstützt in der Form nur die Sprachen Englisch & Deutsch (heißt: alles Nicht-Deutsche wird Englisch).

    Bei jeder Möglichkeit sollte man meiner Meinung nach z.B. einen Konsolenbefehl einbauen, um die Sprache nachträglich zu ändern. Nur für den Fall, dass es sich um einen der Einzelfälle handelt, oder man sich später nochmal umentscheidet.
    Bei meinen Beispielen würde der so aussehen:
    Code:
    set QuDetermineLanguage.Language to X
    Wobei X für die gewünschte Sprache steht.
    Man muss dabei sicherstellen, dass dabei auch alle Werte, die damit zusammenhängen geändert werden. Wie das funktioniert beschreibe ich später.




    Anwendung
    So, jetzt habt ihr eine Variable, die euch die Sprache angibt. Das alleine nützt allerdings gar nichts, da man sie erst noch verwenden muss.

    Dialoge, Tagebucheinträge und ähnliches
    Bei Dialogen, Tagebucheinträgen, etc. funktioniert das, indem man von jedem für jede Sprache eine eigene Version hinzufügt und als zusätzliche Condition ein GetScriptVariable (bzw. GetGlobalValue falls ihr solche bevorzugt) mit Abfrage der jeweiligen Sprache hinzufügt.
    Allerdings sollte man eine Sprache (ich empfehle wieder einmal Englisch, wird einfach von den meisten Leuten verstanden) für den Fall verwenden, dass der gewählte Wert ungültig ist (heißt: die Sprache wird nicht unterstützt). Dazu schließt ihr einfach alle anderen Werte aus (Heißt: anstelle von == 0 mehrere Abfragen, wie z.B. != 1, != 2, etc.).




    Messages & MessageBoxen
    Bei Messages & MessageBoxen könnt ihr entweder im Script immer einen extra If-Block konstruieren (benötigt kein OBSE, ist aber sehr aufwendig und verschlingt eine Menge Platz), oder ihr verwendet stattdessen MessageEx & MessageBoxEx und lasst alles was Text ist durch %c darstellen. Dazu erstellt ihr für jede Sprache eine eigene Faction*, in deren Male Titles der jeweilige Text gespeichert wird. Die Faction für die verwendete Sprache speichert ihr dann in einer Ref-Variablen, welche ihr dann als ersten Parameter für %c angebt. Nachteil dieser Variante ist, dass das bei Variablen etwas kompliziert werden kann und, sofern man das als Nachteil sieht, dass es OBSE benötigt, trotzdem ist das meiner Meinung nach die zu bevorzugende Variante.

    *Man könnte anstelle der Faction auch einen Zauber mit lauter ScriptEffecten verwenden, wobei man den ScriptEffecten dann die entsprechenden Namen gibt. Ich finde die Variante mit der Faction aber weniger kompliziert und daher zu bevorzugen.

    Hier mal ein kleines Beispiel dazu:
    Ich will eine MessageBox darstellen, die dem Spieler den Wert einer Variablen mitteilt.
    Dabei nehme ich an , dass die entsprechende Faction schon der Ref-Variablen Faction der Quest QuDetermineLanguage zugewiesen wurde.
    Code:
    scn QuShowExampleMessageBox
    
    short var
    
    Begin Gamemode
    	if ( GetQuestRunning QuDetermineLanguage == 0 )
    		set var to GetRandomPercent
    		MessageBoxEx "%c%.0f", QuDetermineLanguage.Faction, 1, var	;anstelle von 1 kann auch ein anderer Parameter dargestellt werden, je nach dem in welchem Rang der Text gespeichert wurde
    	endif
    End
    Hierbei steht jetzt bei Rang 1 der englischen Faction z.B. folgendes:
    Zitat Zitat
    var has a value of
    währen bei der deutschen z.B. folgendes steht:
    Zitat Zitat
    var hat den Wert
    Wenn man jetzt von einer deutschen Sprache ausgeht und annimmt, GetRandomPercent hat 36 ausgegeben wird in der MessageBox folgendes zu lesen sein:
    Zitat Zitat
    var hat den Wert 36
    ----------------------------
    OK

    Factions & Zauber
    Hier gibt es jetzt mehrere Möglichkeiten. Entweder man erstellt für jede Sprache eine eigene Version, oder man benennt sie einfach um. Für letzteres wird OBSE benötigt.

    Um die Factions/Zauber selbst umzubenennen kann man ohne Probleme SetName(Ex) verwenden, das wirklich problematische sind hier die Einzelnen Ränge einer Faction, bzw. die ScriptEffekte eines Zaubers. Dafür benötigt man dann SetNthFactionRankNameEx, bzw. SetNthEffectItemScriptName(Ex).
    Bei Factions würde ich ganz klar für die Methode mit mehreren Factions, wo die verwendete dann anhand der Sprache ausgewählt wird, plädieren. Bei den Zaubern kommt es mir ehrlich gesagt vor allem auf die Anzahl der Skripteffekte an. Alle anderen muss man nämlich überhaupt nicht übersetzten.


    Zellen, Actors & andere Objekte
    Jetzt fehlen eigentlich nur noch Zellen, Objekte, NPCs und Kreaturen.
    Hier ist der Punkt erreicht, an dem sich die Möglichkeiten mit, bzw. ohne OBSE nicht nur im Komfort (bzw. der Möglichkeit Variablen zu verwenden) ausdrückt, sondern der bloßen Möglichkeit Objekte via Script umzubenennen.
    Mit OBSE funktioniert das ganz einfach: man verwendet SetNameEx und kann dabei sogar die gleiche Methode anwenden, wie bei den MessageBoxen. Einziger Unterschied ist, dass man das umzubenennende Objekt (bzw. den NPC/die Kreatur/die Zelle) entweder in einer Ref-Variablen zwischenspeichert und dann als letzten Parameter angibt (einzige Möglichkeit für Zellen), oder dass man eine Referenz desselben als CallingReference verwendet.

    Ohne OBSE wird das ganze etwas komplizierter. Zwar gibt es für Zellen mit SetCellFullName, sowie für NPCs und Kreaturen mit SetActorFullName Befehle diese umzubenennen, allerdings habe ich keinen für andere Objekte (z.B. Activators) gefunden.
    Sollte man nur Vanilla-Objekte verwenden kann man zwar auf ein Umbenennen von diesen Verzichten, trotzdem ist es sinnvoll zumindest die Zellen mit einem Beschreibenden Namen (z.B. Höhle) umzubenennen.
    Dazu muss man alle Namen in dem Script als String ausschreiben, was die Scriptgröße sehr schnell ansteigen lässt, so dass man wahrscheinlich sehr schnell an die Max_Script_Size stößt. Lässt sich zwar umgehen, ist aber trotzdem nervig.

    Alternativ kann man auch noch den Weg über doppelte Zellen/Objekte/etc. gehen, indem man für jede Sprache ein eigenes Objekt erstellt und alle Objekte einer nicht verwendeten Sprache via Disable entfernt. So muss man nur noch Exteriorzellen umbenennen: Objekte, NPCs & Kreaturen tauchen gar nicht auf (sind Disabled), für Interiorzellen bleibt nur die Tür zur Version mit der richtigen Sprachversion im Spiel sichtbar (Rest auch disabled), nur bei Exteriorzellen lässt sich das nicht anders beheben, aber dafür gibt es ja SetCellFullName.
    Nachteil ist halt, dass es ein massiver Aufwand ist, weil man alles doppelt & dreifach machen muss.




    Update bei nachträglicher Änderung der Sprache
    Wie vorhin schon geschrieben ist es ratsam eine Möglichkeit einzubauen, die Sprache nachträglich zu ändern. Leider ist das mit einem bloßen ändern der Language-Variablen nicht getan. Es muss noch die Faction in der Variablen getauscht, und die Objekte umbenannt werden. Für die Tagebucheinträge & Dialoge muss nichts mehr extra verwendet werden.

    Ich verwende hier als Beispiel mal den Pluggy-Methode (Dateigröße), zusammen mit einem Konsolenbefehl als Änderungsmöglichkeit:
    Code:
    scn QuDetermineLanguageScript
    
    int Init
    short Language		;0=English, 1=German, 2=French, 3=Spanish, 4=Italian, etc.
    short OldLanguage
    ref Faction
    
    Begin Gamemode
    	if ( Init )
    		if ( Language != OldLanguage )
    			set OldLanguage to Language
    			;Auswählen der Faction für MessageEx, MessageBoxEx & SetNameEx
    			if ( Language == 1 )	;German
    				set Faction to FactionDV
    			else
    				set Faction to FactionEV
    			endif
    			ActiSetNames.Activate Player 1
    		endif
    	else
    		set Language to ( ( ( GetFileSize -2000 1 ) == 247876643 ) || ( ( GetFileSize -2000 1 ) == 278038032 ) )	;Patch 1.2 ohne SI || Patch 1.2 mit SI; DV=1, alles andere =0
    
    		set OldLanguage to -1
    		set Init to 1
    	endif
    End
    Hierbei wird wieder nur die deutsche und englische Sprache unterstützt. Außerdem wird davon ausgegangen, dass ActiSetNames die Referenz eines Activators ist, in dessen Script in einem OnActivate-Block alle Objekte umbenannt werden (bzw. die Umbenennung geregelt wird).
    Natürlich kann man das auch auf die anderen Methoden übertragen.


    Das war es dann eigentlich auch schon.
    Ob es sich lohnt, den Aufwand auf sich zu nehmen um alles in einer *.esp-Datei zu haben muss jeder für sich selbst entscheiden.
    Bei größeren Projekten, die viele neue Sachen hinzufügen wage ich es zu bezweifeln, ansonsten kann es aber durchaus hilfreich sein immer nur einen Downloadlink angeben zu müssen und trotzdem alle Sprache dabei zu haben.
    Vor allem, wenn man sich dabei keine Sorgen machen muss, dass unbedarfte, ReadMe-Verweigernde User, alle vorhanden *.esp-Dateien aktivieren und dabei für komplettes Chaos sorgen. Wo nur eine *.esp vorhanden ist können nicht mehr aktiviert werden.
    Geändert von Low Post (30.12.2008 um 18:35 Uhr)

  3. #3

    Chucks Tutorial zum erstellen eigener Icons in ~10 Minuten

    Icons – Wie erstelle ich sie?
    by Chuck Norris



    ---- Vorwort:

    Öffters habe ich Mods gesehen, welche neue Kleidung, Waffen oder sonstige Items eingefügt haben. Manchmal hatten die Items aber keine Icons bzw. eigenständige Icons. Entweder wurde also zu einem unpassendem Icon aus Oblivion gegriffen oder das Icon wurde ganz weggelassen – Das Ergebnis war dann ein pinkes Quadrat. Nicht sehr schön.

    In diesem Tutorial erkläre ich euch möglichst Schritt-für-Schritt eine Möglichkeit, einfach Icons zu erstellen, sei es um heruntergeladene Mods zu ergänzen oder auch für eure eigene Mod.

    Als Voraussetzung setze ich nur Basiskenntnisse bezüglich des Construction Sets. Ich möchte hier wirklich nicht banale Dinge erklären müssen, z.b. wie man ein neues Objekt unter weapons anlegen kann.

    Bevor wir anfangen, möchte ich aber noch etwas sagen: Ja, ich kenne Growlfs Tutorial (http://www.ei-der-zeit.com/board/ind...d&threadID=178), aber dies ist viel zu umständlich, viel zu viel Aufwand für etwas so Kleines.

    Dieses Tutorial wirkt schon etwas länger, aber wenn man es 2-3 mal durchgearbeitet hat, sollte man die ganze Prozedur in ~ 10 Minuten schaffen.

    ---- Benötigte Tools

    1. The GIMP (http://www.gimp.org/) + das DDS-Plug-In (http://nifelheim.dyndns.org/~cocidiu...in32-2.0.7.zip)

    2. Das TES IV Constrction Set (http://theelderscrolls.info/?go=dlfi...id=56%29%28wer) (Wird eh gebraucht, um das Icon überhaupt an das Item zu legen.



    ---- Fangen wir an…

    Als allererstes brauchen wir das Item, welches wir als Icon abbilden wollen. Ich nutze in diesem Tutorial meine Nevan-Klinge:

    Bild: http://www.pic-upload.de/30.12.08/aih38m.jpg

    Ihr werdet anstatt des Schwertes euer Item verwenden, von dem ihr gerne ein Icon hättet.

    Okay, wenn wir das haben, öffnen wir das Constrction Set (Welches ich ab hier als CS abkürzen werde). Wir laden keine .esp, das wäre unnütz. Als nächstes erstellen wir eine Waffe. Werte, Verazuberung, etc lassen wir weg, das wäre auch nur Zeitverschwendung. Das Einzige, was wir machen, ist den Pfad zur .nif angeben (Sprich: Der Knopf „Add NIF file“) und eine ID eingeben. Mehr brauchen wir nicht.

    Wenn das getan ist, erstellen wir oben in der Leiste World -> Cells in der Tabelle links per Rechtsklick -> New eine neue Cell und geben in dem nun erscheinenden Fenster eine ID ein. Dann per „OK“ dieses Fenster und nochmal „OK“, um das Cellfenster zu schließen. Nun wählen wir die Cell im Cell View Fenster per Doppelklick unsere eben erstellte Cell aus. Wenn dann oben im Render Window die ID unserer Cell erscheint, haben wir`s.

    Als nächstes ziehen wir unser erstelltes Schwert per Drag&Drop in das Render Window und „schalten das Licht ein“ (oben in der Leiste mit den kleinen Bildern, die Glühbirne). Dann sollten wir ein Schwert mit völlig grauen Hintergrund haben.



    Okay, jetzt wird ein wenig schwieriger: Wir ziehen das Render Window über den ganzen Bildschirm:

    Bild: http://www.pic-upload.de/30.12.08/ljquep.jpg

    Nun ziehen wir unser Schwert so, wie wir es gerne als Icon hätten und drücken daraufhin die Taste Druck (Das ist die 2 Tasten über Enter und neben Rollen) einmal.



    ---- Die Erstellung des Icons



    Jetzt öffnen wir GIMP und klicken oben auf Bearbeiten und dann auf Einfügen. Nun sollten wir unserem Bildschirm sehen können, wie er aussah, als wir auf Druck gedrückt haben. Das ist gut so und auch richtig.

    Nun wählen wir das Werkzeug Rechteckige Auswahl aus (Zu finden im Werkzeugkasten ganz links oben) und zoomen auf 800% heran. Das können wir, in dem wir unten im Fenster auf den Pfeil neben der Prozentzahl klicken. Wir setzen dort auf 800%. Wir achten aber darauf, dass es in Pixel angegeben ist. Wenn nicht, stellen wir dies genau daneben auf Pixel. Wir sollten nun ein 8mal vergrößertes Bild haben.

    Nun ziehen wir einen Rahmen, welcher genau auf dem äußersten Pixel rechts unten im grauen Teil des Render Window beginnt und auf dem äußersten Pixel links oben auch beim Render Window endet. Das sollte dann so aussehen, wenn wir wieder herauszoomen:

    Bild: http://www.pic-upload.de/30.12.08/5wjijr.jpg

    Wir achteten aber unbedingt darauf, dass wir aber wirklich auch nur den grauen Teil auswählen! Sonst haben wir nachher nur unnötig mehr Arbeit.

    Weiter geht’s: Oben in der Leiste auf Bild -> Auf Auswahl zuschneiden. Nun haben wir ein komplett graues Bild, in dessen Mitte unser Schwert ist.

    Nun klicken wir im Werkzeugkasten auf Zauberstab. Das ist der Stab, drei Tools neben Rechteckige Auswahl und klicken einmal auf die graue Fläche im Bild. Alles Graue sollte nun ausgewählt sein.

    Wenn aber auch Teile des Schwertes ausgewählt werden, kein Problem: Wir wählen im Werkzeugkasten den Pinsel oder den Stift aus, stellen die Skalierung auf 0.01 und die Farbe auf schwarz. Nun zeichnen wir im 800%-Zoom eine Art Trennlinie, welche die Teile des Schwertes vom Grauen Abschnitt trennt und versuchen es nochmal mit dem Zauberstab. Wenn immer noch Teile im Schwert ausgewählt werden, machen wir die Linie ruhig länger. Wenn dann endlich nur das Graue markiert wird, machen wir folgendes: Wir klicken oben in der Leiste auf Ebene -> Transparenz -> Alphakanal hinzufügen. Dies fügt unter dem Bild eine transparente Ebene ein, die noch wichtig sein wird.

    Wenn Alphakanal hinzufügen grau und nicht anwählbar ist, macht nichts, das bedeutet, dass bereits einer vorhanden ist.

    Folgend stellen wir noch einmal sicher, dass auch nur das Graue markiert ist und drücken die Taste Entfernen. Nun sollte sich das Graue mit einer Art Schachbrettmuster getauscht haben. Das ist der Alphakanal.

    Nun ziehen wir per Rechteckige Auswahl ein auf den Pixel genaues Quadrat um das Schwert (Hier hilft wieder der 800%-Zoom), welche möglichst klein sein sollte. Oder, wenn das nur schlecht gehen sollte, ziehen wir ein Quadrat um die Klinge oder den Griff, sodass aber noch mindestens 40% davon Alphakanal ist. Nun wieder Bild -> Auf Auswahl zuschneiden. Als letzten Schritt wählen Bild -> Bild skalieren aus und skalieren das Bild auf 64 x 64 Pixel.

    Wie man sehen kann, nimmt das Icon Gestalt an. Als letzten Schritt speichern wir das Icon als .dds unter C:/Programme/Bethesda Softworks/Oblivion/Textures/Menus/Icons und fertig. Als .dds speichern wir, indem wir auf Datei -> Speichern unter klickt und als Dateinamen „>Iconname<.dds“ eingeben (Hier ohne <> und statt Iconname euern Dateinamen)



    Fertig! Das war’s, ihr habt nun auf relativ schnelle Art und Weise ein eigenes Icon erstellt. Das Ergebnis kann sich schon sehen lassen:







    ---- Abschließende Worte

    Diese Tutorial ist zwar ein Schritt-für-Schritt Tutorial, aber manchmal muss man schon ein wenig improvisieren. Was zum Beispiel, ihr habt eine Rüstung? Da müsste man zunächst per Nifskope eventuell die vorhandenen Arme entfernen (Also die menschlichen Arme, meine ich) und als Worldmodel das Rüstungsmodel auswählen. Das wäre eine Möglichkeit. Probiert ruhig herum. Vieleicht findet ihr sogar einfachere Mittel, ein Icon zu erstellen. Kreativität ist gefragt.
    Geändert von SirTroy (30.12.2008 um 14:59 Uhr)

  4. #4

    How not to do - Was man mit dem CS vermeiden sollte

    *mir schüchtern eine kleine Ecke such und anfang zu basteln*

    Bitte wenn erst am Ende oben verlinken. Ich werde wohl nicht alles auf einmal schreiben können. Und auch nicht wollen, aber vergessen werde ich es nicht, iiiirgendwann wird es vollbracht sein!

    Nach den spaßigen Erlebnissen des ersten Moddingversuches wollte ich mal eine Liste der Dinge machen, die man unbedingt vermeiden sollte.

    Falls es sowas schon gibt oder es als vollkommen überflüssig gesehen wird, bitte sagen. Aber mit Vorwarnung, damit ich meinen Text retten kann


    ---


    Was gibt es schöneres, man hat endlich das CS vor der Nase, halbwegs verstanden und kann seine Träume umsetzen! Neues Haus, neue Gegenstände, neue Zauber, alles kein Problem. Vielleicht will man es sogar mal veröffentlichen?

    So ging es mir am Anfang, voller Begeisterung und Elan, von Tutorial zu Tutorial und nach ein paar Tagen und gefühlten Ewigkeiten Arbeit die erste Ernüchterung: Scheiße, du hast da was gemacht, das auch unsaubere Mod genannt wird.
    Also mal angefangen zu lesen, viele nette Einträge, die meisten jedoch auf Englisch und irgendwie wieder sauber bekommen. Und doch, irgendwie bin ich alle paar Wochen wieder auf irgendetwas gestoßen, wegen dem ich Teile meiner Mod umschreiben musste. Auf Probleme, bei denen man eigentlich nur eins tun möchte: >_<
    Da das Construction Set bzw. Oblivion selbst mehr oder weniger Schuld an den Auswirkungen von Dingen ist, die man garnicht wirklich als "falsch" bezeichnen kann. Aber wie man es nennt ist dann auch egal, wenn das Spiel sich verabschiedet

    Deswegen möchte ich hier versuchen eine Liste der Dinge zu erstellen, die man unbedingt vermeiden sollte, wenn man mit dem Construction Set arbeitet (und sich selbst und anderen viele graue Haare ersparen will).



    - Unsaubere Mods -

    So eine Plugin-Datei ist eigentlich nichts anderes, als eine riesige Sammlung von Änderungen (und Ergänzungen) der normalen Obilvion-Spielewelt.
    Du willst ein Schwert dazu haben? Wird reingeschrieben.
    Du willst, dass ein Teller weiter rechts steht? Wird reingeschrieben.
    Du willst, dass ein NSC grüne Augen hat? Wird reingeschrieben.

    Zu Problemen kann es dann allerdings kommen, wenn mehr als ein Plugin verwendet wird. Denn es zählt immer nur die letzte Änderung, die geladen wird. Wenn ein Plugin einem NSC grüne Augen verpasst und ein anderes ihm einen Apfel ins Inventar legt, kann nur eins davon (ohne weitere Hilfsmittel, auf die ich hier nicht weiter eingehen möchte) im Endeffekt aktiv sein. Was in diesem Fall nun nicht weiter schlimm ist. Aber es könnte schlimm sein.
    Stell dir vor, du stehst in der Landschaft, betrachtest sie im CS, klickst hierhin und dorthin und verschiebst ausversehen einen Stein - nix großes. Aber es wird gespeichert. Diese Zelle und dieser Stein sind als geändert markiert. Und das in einem Plugin, das vielleicht nur an einer vollkommen anderen Stelle etwas vollkommen anderes ändern soll! Selbst wenn dieser Stein hinterher wieder haargenau an der gleichen Stelle liegt, ist es eine Änderung für das Spiel. Von der man alleine überhauptreingarnix bemerkt.
    Wenn nun aber ein anderes Plugin, in dieser Gegend, auch etwas ändert - beispielsweise die Bodenhöhe, weil es die Landschaft verschönert oder ein Haus baut, dann gibt es einen Konflikt. Einen vollkommen unnötigen und schwer zu erkennenden Konflikt. Je nachdem, was nun zuletzt geladen wird, kann es vorkommen, dass mitten in den Änderungen von Plugin b) eine einzige Zelle - die mit dem Stein aus Plugin a) - noch die alten Werte hat und Risse im Boden entstehen.
    Grundsätzlich sollte man also seine Erkundungstoren im CS nicht mit einem aktiven Plugin, das man auch speichern will, machen. Beim Rumstöbern in AI-Einstellungen, in Dialogen, in Zellen - viel zu schnell hat man etwas geändert, das man garnicht ändern will. Und will man doch etwas anfassen, etwa um Teile zu kopieren, bietet es sich an, die Zellen zu benutzen, die im Construction Set mit Warehouse anfangen. Hier können Konflikte genauso wie bei allem anderen entstehen - aber im Spiel wird man wohl nichts davon merken, da man diese Zellen normalerweise niemals betritt.

    Durch solche kleinen, ungewollten Änderungen, kann es zu schwerwiegenden Problemen mit anderen Plugins kommen. Deswegen sollte man seine Plugins immer darauf überprüfen und im Zweifelsfall säubern.

    Und wie geht das?

    Möglich ist es mit dem Construction Set selbst, allerdings sehr unkomfortabel.
    Wenn man ein Plugin lädt, hat man die Möglichkeit sich mit dem Knopf neben "Set as Active File" die Details anzusehen. Übersichtlich ist etwas anderes und bei den Bezeichnungen ist es garnicht so leicht, zu erkennen, was was ist. Deswegen bin ich damals gleich zu einem anderen Programm übergegangen: Tes4Edit.
    Dort kann man sich den Inhalt aller Plugins viel Übersichtlicher ansehen und gegebenenfalls unerwünschte Änderungen auch gleich löschen. Praktischerweise wird auch immer eine Sicherheitskopie von der geänderten Datei angelegt, aber sicher ist sicher - ehe man sein Jahresprojekt von irgendwelchen Dingen "befreit", kann auch eine eigene Sicherheitskopie nie schaden.
    Es gibt noch mindestens ein weiteres Programm, mit dem man Mods säubern (bzw. "cleanen") kann - und soweit ich gehört habe, vieles anderes auch: TES4Gecko. Dieses Programm kenne ich selbst allerdings noch garnicht.
    Der ConstructionSet Wiki Eintrag, der mir damals sehr geholfen hat und weitere Informationen hierzu bietet: Klick mich.
    Beide Programme können auch jeden Eintrag entfernen, der nur als geändert markiert ist, aber garnicht anders; zum Beispiel so ein Stein, der verschoben und dann zurückgestellt wurde und deswegen vollkommen überflüssig ist.



    - Gelöschte Referenzen -

    Ein Ärgernis, über das ich erst nach einer ganzen Weile eher durch Zufall gestolpert bin - und mich gleich mal ein paar Stunden Korrekturarbeit gekostet hat. Dadurch entsteht kein Fehler im laufenden Spiel, aber beim Beenden oder beim Laden eines Spielstands aus einer anderen Zelle kann es zu unserem heißgeliebten Crash kommen. Und zwar immer dann, wenn Teile des Originalspiels gelöscht wurden. Und wenn es nur ein kleiner Fels in der Landschaft war, sobald ein anderes Plugin ebenfalls irgendwie darauf zugreifen will, kommt es zum Absturz.

    Das lässt sich ja - wenn man es einmal weiß - ganz einfach vermeiden. Nichts löschen!
    Stattdessen neu rumschieben, auf Initially Disabled setzen oder beispielsweise unter dem Boden verstecken. Der Fantasie sind da keine Grenzen gesetzt, Hauptsache der Gegenstand bleibt vorhanden.



    - Recompile All -

    Das CS hat so seine Knöpfchen, die man besser nicht drücken sollte - und das hier ist einer davon! Im Scriptfenser findet man die Recompile All Option. Niemalsnicht drücken!
    Das bewirkt, dass alle Skripte neu compiliert werden - und als geändert in das Plugin geschrieben. Womit es mit so ziemlich und größtenteils allem inkompatibel ist, das irgendwas mit Scripten zu tun hat, zum Beispiel auch offiziellen Plugins. Einfach nie drücken.



    - Der Blackscreen-Bug -

    Spieler mit einer NVIDIA-Grafikkarte haben das Problem, dass sie in Innenräumen in denen Fog Near, Fog Far und Fog Clip Dist alle auf 0 stehen, einen komplett schwarzen Bildschirm bekommen können. Natürlich nicht schön. Es gibt Plugins, die das für alle Originalzellen beheben, indem sie - so alle 3 Werte 0 sind - einfach Fog NEar auf 0.0001 setzen. Schon kommt das nicht mehr vor.
    Wer also neue Interiors baut oder bestehende mit den 3 Werten auf 0 ändert, sollte daran denken, den ersten Wert auf 0.0001 zu setzen.
    Achtung: Das ist wirklich nur nötig, solange alle drei Werte sonst genau 0 sind!



    - Unsaubere Dialoge -




    - Dauerlaufende Skripte -

    Etwas, das die Performance unnötig beeinträchtigen kann: Skripte, die immer und immer wieder laufen. Ein Questscript läuft normalerweise alle 5 Sekunden, ein Objektscript in jedem Frame, solange der Spieler sich in der gleichen Zelle befindet und Skripte auf als Questobjekt markierten Dingen noch öfter! Da kann einiges zusammenkommen.

    Deswegen sollte man solche Skripe vermeiden, wann immer es möglich ist. Ein Skript, das einen Gegenstand hinzufügt und dann nie wieder gebraucht wird als Quest? Ganz einfach stopquest am Ende, statt einfach eine Variable zu setzen. Und immer überlegen, ob es nicht auch auf einem Activate-Block geht, oder einem Load-Block. Ob es wirklich GameMode sein muss. Ob man das nicht verhindern kann, falls man es nicht nochmal brauch. Ein guter Kandidat dafür wären auch Skripte, die man im Questverlauf nur einmal braucht. Solange es anders geht, sollte man es anders machen.



    - Bogen mit Reichweite 0 -

    Kurz und einfach: Keine Bögen mit Reichweite 0 erstellen. Das gibt einen Crash beim Ausrüsten.



    - PlaceAtMe -


    - Bestimmte Zellen
    - Achtung beim Kopieren von Dialogen
    - Lip Files gehen nicht mit dem neuen CS -> Erklärung zum parallelen nutzen des alten CS
    - Globale Variablen vermeiden, lieber Questvariablen nehmen
    - Kein PlaceAtMe
    - Nicht die Addtopic Funktion des Dialogfensters nutzen
    - MoveTo und SetPost im Schwimmen
    Geändert von Laulajatar (08.02.2009 um 02:24 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •