Hey,
Ich bin mir sicher es gibt hier viele Leute die gerne mal einen eigenen Mod erstellen würden, die wenigsten wissen jedoch wie, und da es keine vernünftigen Tutorials auf deutsch gibt, habe ich mich entschieden hier eine Sammlung von Tutorials zu machen. Die Tutorials sind von mir erstellt und gehen von "Ein einfaches Triebwerk erstellen" über "Die part.cfg", wo alle Komponenten der part.cfg erklärt werden und wie man sie anwendet bis zu "IVA`s erstellen" und noch vieles mehr. Die Vorraussetzung ist das man Notepad, Blender sowie die kostenlose Version von Unity hat. Außerdem sollte man wissen wie man sich in Blender bewegt, wer das nicht weiß kann ja mal auf Youtube gucken, dort gibt es viele gute Tutorials. Die Links zu den Programmen gibts hier:
Unity - http://unity3d.com/unity/download
Blender - http://www.blender.org/download/
Ich versuche die Tutorials einfach zu machen und für jeden leicht verständlich. Außerdem sind die Tutorials stark bebildert, um es noch verständlicher zu machen. Angehängt habe ich die Tutorial Dateien, diese sind nach den Tutorials benannt. In den .zip Archiven befinden sich jeweils 2 Ordner, einmal der Ordner xxx_source mit dem fertigen Blender Modell und der nicht texturierten UV Map zum selbst anmalen und einmal die fertigen Spieldateien.
Ein
einfaches Triebwerk erstellen
In diesem
Tutorial werde ich euch zeigen wie man ein einfaches Triebwerk erstellt.
Voraussetzung ist das man sich ein wenig in Blender auskennt.
Modellieren
1) Zuerst fügen wir einen Cylinder hinzu: Add-->Mesh-->Cylinder
2) Unten Links sollte jetzt ein Fenster
erscheinen mit dem Titel Add Cylinder (statt
Cylinder kann dort auch Sphere oder Cone stehen, je nachdem was wir für ein
Objekt hinzugefügt haben)
3) In diesem
Fenster setzten wir bei Vertices 24 ein,
dies ist die normale Einstellung welche auch die Stock Teile nutzen. Unter Radius können wir jetzt beispielsweise 1.25 oder 0.625 einsetzten, 1.25m würde der Größe der 2.5m Teile entsprechen
und 0.625m würde der Größe der 1.25m Teile entsprechen. Die Tiefe ist eigentlich
egal. Ich habe einen Radius von 1.25m gewählt.
4) Mittels
der TAB Taste gelangen wir in den Edit
Mode, man kann jedoch auch über die Leiste unten zwischen den beiden Modi
wechseln. Im Edit Mode gehen wir auf Face
select, um eine ganze Seite auszuwählen. Das Edge select werden wir später noch fürs Unwrapping benötigen.
5) Mit der
Taste N öffnen wir das Transform Fenster. An unserem Cylinder
wählen wir die untere Seite aus. Im Transform Fenster erscheint dort die
Position dieser Seite. Wenn man als Tiefe standartmäßig 2 ausgewählt hat, steht
dort:
·
Der
rote Pfeil steht für die X-Achse
·
Der
grüne Pfeil steht für die Y-Achse
·
Der
blaue Pfeil steht für die Z-Achse, also für die Hochachse
Standartmäßig
sollte im Transform Fenster unter Median also stehen:
0
0
-1
Die untere
Seite befindet sich also an der Position X=
0 Y=0 X=
-1 (Die Angaben sind in Meter)
6) Mit dem blauen Pfeil ziehen wir nun unsere
angewählte Seite nach oben. Für die Feineinstellung benutze ich immer noch
einmal das Transform Panel, ich bin kein großer Fan vieler Kommazahlen. Ich
habe die Position der Seite jetzt auf 0,0,0.9
festgelegt (0.9 deshalb da die obere Seite im Plusbereich ist und nicht bei 0
liegt). Das Objekt sieht jetzt so aus.
7) Die
untere Seite immer noch markiert, drücken wir „STRG“+“E“. Nun sollte eine Auswahl erscheinen. Dort gehen wir auf Mark Seam:
Dies ist für
das spätere Unwrapping wichtig. Nachdem wir diese Seite markiert haben,
erscheint am Rand eine rote Linie. An dieser Linie wird später das Objekt
„aufgeschitten“, um es besser texturieren zu können. Mehr dazu wenn wir soweit
sind.
Mit der
Taste E, welche für Extrude steht, extrudieren wir jetzt
die untere Seite, das heißt, wir „holen aus der Seite etwas hinaus“, welches
den selben Durchmesser hat. Mit der Maus können wir diese neue Seite an einen
beliebigen Punkt ziehen. Ich habe die Seite zur Position X= 0 Y= 0 X= -0.5 gezogen. Mit der Taste S, welche für Scale steht, skalieren wir die untere Seite nun. Wie man sieht
werden die Seiten oberhalb der skalierten Seite mit skaliert. Nach dem
skalieren erscheint ein neues Fenster:
Dort setzen
wir die Zahlen 0.4 0.4 0.4
ein, um die Seite auf 40% der vorigen Größe zu skalieren. Das Objekt sieht
jetzt so aus:
9) Erneut
extrudieren wir mit Taste E die Seite, diesmal auf die Position 0 0 -1.3. Anschließend skalieren wir
die Seite auf 1.6 fache Größe. (Also
3 mal 1.6 im Resize Fenster eingeben).
Das Triebwerk sieht nun so aus:
10) Erneut
extrudieren wir, einfach mit der Maus die neue Seite ein Stück weit
herausziehen. Im Transform Panel setzen wir die Position jetzt auf
X = 0
Y = 0
Z= -1.3
Jetzt ist
unsere extrudierte Seite wieder in der Seite aus der wir extrudiert haben
verschwunden. Mit S skalieren wir
die Seite nun auf 0.95 (wieder in
allen 3 Fenstern eingeben!). Mittels „STRG“+“E“
öffnen wir wieder das Fenster in dem wir zuletzt eine Seite als Seam
markiert haben. Unter dem Punkt Mark Seam befindet sich ein Punkt namens Clear Seam. Das wählen wir an und jetzt
ist unsere Seite nicht mehr mit einem roten Rand markiert. Jetzt sollte das Triebwerk so aussehen:
11) Mit
Taste E extrudieren wir jetzt diese Seite, um Innenleben ins Triebwerk zu
bringen. Diese extrudierte Seite habe ich jetzt einfach auf die Position
0
0
0
Gesetzt. Nun
skalieren wir diese Seite auf den Faktor 0.2.
Als letztes markieren wir die derzeit angewählte Seite wieder als Seam (Über „STRG+E“). Das Grundmodell des Triebwerks haben wir
jetzt geschafft.:
11) Nun, um
das Triebwerk auf das Unwrapping vorzubereiten, gehen wir auf Edge Select
Und
markieren eine beliebige Kante. Mit „STRG“+Rechsklick
wählen wir alle darunterliegenden Kanten aus, bis ins innere des
Triebwerks. Mit STRG+E markieren wir dies jetzt als Seam. Das sollte dann wie
folgt aussehen:
12) Bevor
wir weitermachen, speichern wir dieses Modell (FileàSave as…). Ich
habe es in einem Ordner auf C: gespeichert und Tut_engine.blend genannt.
Unwrapping
13) Wenn man
zurück in Blender auf den oberen Rand des Rahmens geht, kann man mit einem
Rechtsklick auf Split Area gehen
(Klickbereich ist im Bild rot markiert).
14) Jetzt
haben wir ein neues Fenster. Unten rechts gehen wir auf das Symbol
Und wählen
dort UV/ Image Editor aus.
15) Zurück
bei unserem Triebwerk gehen wir auf dieses Symbol:
Damit wird
das Objekt leicht durchsichtig, sodass man leicht alle Faces auswählen kann.
Wir wählen also im Edit Mode wieder Face
select an. Die Rückseite des Triebwerks wird nun schemenhaft dargestellt:
Mit der
Taste b erscheint ein Kreuz. Wenn
man die linke Maustaste festhält, und das Triebwerk markiert, werden, da wir es
als leicht durchsichtig markiert haben, alle Faces markiert. Unter Mesh Tools (Links am Rand) gehen wir
zum Punkt UV Mapping und gehen auf
den Balken Unwrap.
Dort
erscheinen jetzt mehrere Optionen, ich benutze die Unwrap Funktion, bei den
anderen hatte ich mit unter starke Probleme. Wir gehen also unter Unwrap auf Unwrap. In unserem neuen
Fenster welches wir erstellt haben erscheint jetzt folgendes:
Dort werden alle
Faces angezeigt und auf ein 2D-Modell übertragen. Wenn wir mit den Mausrad
scrollen (in der Leiste unten) kommen wir hier hin:
Dort klicken wir drauf, so können wir alle Faces
auswählen, welche zusammen gruppiert sind. Mit den Tasten G (verschieben), R
(rotieren) und S (skalieren) habe ich die Gruppen ein bisschen vom Rand
wegbewegt. Nun ist unsere UV-Map fertig. Zurück am Anfang der Leiste gehen wir
auf UVs und wählen dort den obersten
Punkt an (Export UV Layout). Als
Namen der UV Map habe ich ausgewählt: Tut_engine.png
. Nun gehen wir auf Export UV Layout.
Damit wären wir mit dem erstellen der UV Map fertig und brauchen damit das 2.
Fenster nicht mehr.
16) Zurück im ersten Fenster mit unserem Triebwerk gehen
wir in den Object Mode. Unter den Object Tools rechts am Rand gehen wir
unter dem Punkt Shading auf Smooth.
Nun ist das Triebwerk nicht mehr eckig, sondern abgerundet.
Jedoch wird auffallen, das das Modell an manchen Stellen komisch „verschmiert“
aussieht (Siehe Bild). Um auch das zu beheben, gehen wir in der Leiste rechts
auf den Punkt Object Modifiers und
dort dann auf Add modivier.
Da klicken wir dann drauf und gehen unter Generate auf den Punkt Edge Split. Nun müssen wir nur noch in
der Leist wo wir eben den Modifier hinzugefügt haben auf Materials gehen und dann auf New.
Nachdem erstellen eines neuen Material für das Triebwerk
sind wir in Blender fürs erste fertig- bei den Material einstellungen können
wir alles so lassen, daher gehe ich nicht genauer darauf ein.
17) Zu guter letzt speichern wir das Triebwerk erneut, ich
habe es Tut_enginefull.blend genannt.
Erstellen eines neuen (KSP) Projekts in Unity
Ich arbeite mit dem kostenlosen Bildbearbeitungsprogramm
Paint.net, daher ist es möglich das bestimmte Schritte abweichen, je nachdem
was ihr für ein Programm verwendet.
18) Zunächst öffnet ihr Unity. Dort geht ihr oben links
unter File auf New Project. Daraufhin erscheint ein Fenster. Ihr müsst dort nur
den Namen eures Projekts eingeben, den Rest könnt ihr so lassen. Das Projekt
wird standartmäßig unter Dokumenten gespeichert. Ich habe das Projekt
Tut_project genannt.
19) Im Dokumente Ordner sollte jetzt ein Ordner namens Tut_project sein (oder wie auch immer
ihr euer Projekt genannt habt). Diesen Ordner öffnet ihr. In diesem Ordner
sollten sich diese weiteren Ordner befinden:
Ihr öffnet den Assets
Ordner, in diesen Ordner fügt ihr alle Elemente für eure Teile ein. Damit
die Teile aber auch in KSP funktionieren, müssen zuerst die KSP Part Tools hinzugefügt werden. Ihr
kopiert einfach den Ordner Part Tools in
den Assets Ordner. Dann geht ihr in der Task Leiste auf das Unity Symbol.
Es kann nun einen Augenblick dauern, da Unity jetzt alle Daten des Part Tool
Packages importiert. Nachdem dies geschehen ist, geht ihr in den Ordner, wo ihr
die Dateien des Triebwerks gespeichert habt.
Das Triebwerk in Unity aufsetzen
20) Ihr kopiert die
Daten Tut_enginefull.blend sowie die
UV Map Tut_engine.png. Im Unity
Projekt Ordner geht ihr wieder in den Assets Ordner, wo sich bereits der Part
Tools Ordner befindet. Der Übersicht halber erstellt ihr einen weiteren Ordner, ich habe ihn Parts genannt. In den Parts Ordner habe
ich einen Ordner namens Tut_engine erstellt,
dort werden die beiden Triebwerks Dateien hineinkopiert. Dann geht ihr zurück
in Unity. Nachdem die Daten importiert worden sind, sollten unten in der Leiste zwei Ordner
auftauchen: Part Tools und Parts. Ihr öffnet den Parts Ordner.
In diesem öffnet ihr den Tut_engine Ordner.
21) Im Tut_engine Ordner befinden sich jetzt 3 Dateien:
Im Materials Ordner hat Unity ein Material für das Objekt
erstellt. Wir wählen die Datei Tut_engine.blend
aus und ziehen die Datei mit der
gedrückten linken Maustaste in die Hierarchy Leiste:
22) Neben unserer Tut_engine Datei befindet sich dort
bereits eine weitere Datei, die Main
Camera. Mit einem Rechtsklick können wir diese löschen, dies ist jedoch
nicht unbedingt nötig.
23) Wir klicken auf die Tut_engine Datei. Im Fenster in der Mitte wird das Objekt mit einem
blauen Gitter markiert. Rechts im Bild erscheinen einige Optionen:
Mit einem Rechtsklick auf den Punkt Animator und anschließend auf Remove
Component können wir den Animator löschen, diesen Punkt benötigen wir
nicht, da unser Modell nicht animiert ist. Die Leiste sieht jetzt so aus:
24) Hier
Klicken wir auf diffuse, dort wählen wir KSPà Bumped, oder was auch immer ihr für einen Shader nehmen wollt, er muss sich nur
im KSP Ordner befinden. Ich bevorzuge aber den Shader Bumped. Nun, da wir den
Shader Bumped ausgewählt haben, erscheinen zweierlei Dinge:
Einmal der Punkt _Main
Tex: Dort klicken wir im Feld rechts daneben auf Select. Es öffnet sich ein weiteres Fenster, dort wählen wir dann
unsere Textur aus, in diesem Fall Tut_engine.
Nun betrachten wir das Triebwerk einmal genauer. Wie man sieht, ist nun die
Textur der UV Map, welche wir vorher in Blender erstellt haben, auf unser
Triebwerk projeziert worden. Um sicherzugehen, das uns beim Unwrappen keine
Fehler unterlaufen sind, schauen wir uns das Triebwerk einmal von allein Seiten
an. Sollte irgendwo eine schwaze Fläche auftauchen, so haben wir einen Fehler
gemacht. Dies ist jedoch nicht der Fall und das Triebwerk sieht so aus:
Texturieren
25) Ich habe einfach, da es schneller geht, ein paar
Texturen aus dem Internet heruntergeladen. Mit einem beliebigen
Bildbearbeitungsprogramm fügen wir die Texturen ein und speichern das ganze
anschließend. Fertig texturiert, sieht das Triebwerk so aus:
Das wars auch schon wieder mit dem texturieren, es ist so
ziemlich das einfachste, zumindest bei nicht allzu detailierten Modellen.
Das Triebwerk zum Triebwerk machen
26) Damit wir das Triebwerk auch anfassen können und damit
es mit anderen Objekten kollidieren kann müssen wir ein Collider erstellen. Das ist recht einfach. Wenn wir das Triebwerk ausgewählt haben,
gehen wir oben rechts auf den Punkt select.
Dort setzen wir einen Haken bei dem Punkt Generate Colliders.
Um die Einstellungen zu speichern, gehen wir am unteren
Rand auf Apply. Jetzt wird der
Collider automatisch erstellt.
27) Die Collider sind zwar erstellt, aber damit das
Triebwerk auch kollidieren kann, muss man noch eine Kleinigkeit machen: Bei den
Punkt Mesh Collider müssen wie einen
Haken setzten bei Convex, damit das
Objekt auch wirklich mit anderen kollidieren kann.
28) Sobald wir den Haken bei Convex gesetzt haben, bildet sich um das Triebwerk herum ein grünes
Gitternetz. Dieses zeigt uns, wie der Collider um das Objekt herum aufgebaut
ist. Der Collider ist nicht auf dem Triebwerk erstellt, sonden geht vom
breitesten Punkt zum schmalsten Punkt. Das heißt, wenn zwischen dem breitesten
und dem schmalsten Punkt etwas schmales ist, geht der Collider einfach daran
vorbei und geht zum schmalsten Punkt nach unten. Dies genügt uns aber für unser
einfaches Triebwerk, schließlich sollen ja keine Teile seitlich ans Triebwerk
gebaut werden. Der Collider des Triebwerks sollte so aussehen wie im vorigen
Bild.
29) Damit das Triebwerk auch wirklich ein Triebwerk ist
und Schub erzeugen kann, muss man ein neues Game Object erstellen. Dafür geht man oben in der Leiste auf GameObject und dann auf Create empty. Rechts im Transform Panel setzt ihr nun die
Position des Game Objects auf 0 , 0 , 0. Oben über dem Transform Panel
gebt ihr nun den Namen des Objects ein.
30) Nun müsst ihr unter dem Punkt Rotation - und das ist jetzt
ganz wichtig – Das
Game Object so drehen das der blaue Pfeil nach unten zeigt, also um 90°
(90,0,0). Der blaue Pfeil
zeigt also in Richtung der Triebwerksflamme. Nun müsst ihr noch den Namen von dem
Game Object umändern in thrustTransform (siehe
Bild oben). Jetzt muss der thrustTransform Punkt noch nach unten gezogen
werden, damit der thrustTransform Punkt nicht innerhalb des Colliders ist und
damit abgelenkt wird. Um den optimalen Punkt zu finden, welcher nicht innerhalb
des Colliders nicht liegt und welcher nicht zu weit vom Objekt entfernt ist,
muss man zurück in Blender gehen, dort den tiefsten Punkt des Modells auswählen
und im Transform Panel bei der Z-Achse die
Position merken (In diesem Fall ist die Position -1.3m). In Unity muss dann
unter der Y-Achse -1.3 eingetragen
werden, ich füge noch eine 0.05 hinzu, damit der thrustTransform auch wirklich
nicht im Collider liegt. Ihr müsst also -1.35
bei der Y-Achse eintragen. So
sollte es jetzt aussehen:
31) Jetzt müsst ihr
ein weiteres Game Object hinzufügen
(GameObjectàCreate empty). Das könnt ihr eigentlich nennen
wie ihr wollt, ich habe es Tut_Engine_full
genannt. Die Position setzt ihr auf 00 0.
Die Rotation ist egal.
32) Jetzt wählt ihr die Datei Tut_enginefull im Hierarchy Fenster aus (links) und zieht es mit
der linken Maustaste in das Game Objec Tut_Engine_full.
Das selbe macht ihr mit dem thrustTransform Punkt. Links neben dem
Tut_Engine_full Objekt erscheint ein kleines liegendes Dreieck. Wenn ihr dort
drauf klickt, erscheint der thrustTransform und das Tut_enginefull Objekt.
Diese beiden Dateien sind jetzt also unter dem Tut_Engine_full gruppiert.
33) Jetzt wählt ihr das Tut_Engine_full Game Objectaus.
Rechts im Bild geht ihr nun auf Add
Component.
34) Dort wählt ihr KSP-->Part Tools.
35) Dort sollte jetzt, es sei denn ihr habt vorher bereits
einmal ein Teil geschrieben, Set
GameData directory erscheinen. Da klickt ihr drauf und im sich öffnenden
Fenster klickt ihr auf Set Data dir.
In dem neuen Fenster erstellt ihr dann einen neuen Ordner, nennt ihn GameData
und geht auf auswählen.
36) Zurück in Unity erscheint jetzt rechts am Rand
folgendes:
Unter Model Name wählt
ihr statt NewModel model, so heißen
die Standart Modelle in KSP. Beim Texture
Format wählt ihr MBM aus. Bei File URL könnt ihr rechts auf Set gehen. So könnt ihr in eurem
GameData Ordner einen neuen Ordner erstellen, dort werden dann die Dateien
hineingeschrieben. Ich habe den Ordner Tut_engine
genannt. Das sollte jetzt also so aussehen:
37) Jetzt geht ihr auf Write. Nun schreibt Unity eur Triebwerk, also die Texturen und das
Modell in euren festgelegten Ordner. Öffnet ihr diesen, so solltet ihr zwei
Dateien finden:
Eine model.mu Datei
und eine Tut_engine.mbm Datei. Der
Name der Textur ist übrigens egal, standartmäßig heißen diese zwar model000 und
model001, bei vielen Teilen und Texturen im Unity Project dauert es aber bis
man die richtige Textur gefunden hat.
38) Wenn ihr nur ein Teil testen wollt, könnt ihr einfach
den Ordner in eurem Unity GameData Ordner kopieren in dem die Dateien drin
sind. Diesen Ordner kopiert ihr dann einfach in euren KSP GameData Ordner.
part.cfg anpassen
39) Als letzten Schritt müssen wir noch die part.cfg erstellen, also die Datei die
dem Spiel sagt was für Parameter dieses Teil hat, was für ein Teil es ist und
wie es funktioniert. Man muss keine neue part.cfg erstellen, ich kopiere immer
die part.cfg des Rockomax Skipper Triebwerks.
Diese cfg findet ihr unter (…)KSP_win\GameData\Squad\Parts\Engine\engineLargeSkipper
.
Diese part.cfg kopiert ihr und fügt sie in eurem
Triebwerksordner ein.
40) Die part.cfg öffnet ihr mit Notepad. Die cfg ist eigentlich selbsterklärend. Ihr müsst
eigentlich nur den Namen des Triebwerks und vielleicht den Schub verändern. Also
ganz am Anfang der cfg unter Name Tutengine
und unter //editor parameters bei
title = Tut Engine eingeben. Falls
ihr möchtet könnt ihr jetzt auch noch den Schub verändern, für dieses einfache
Tutorial lasse ich den Schub jedoch. Damit ihr das Teil auch anbauen könnt,
müssen jetzt noch die node definitions angegeben werden. Um die Positionen der
nodes für euer Teil herauszufinden, geht ihr in Blender und wählt die oberste
Fläche aus. Diese befindet sich in einer Höhe von 1.0. Unter node_stack_top in
eurer cfg fügt ihr also ein:
0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 2 . Für die untere
node macht ihr dasselbe. Ihr wählt die unterste Fläche an, welche sich in einer
Höhe von -1.3m befindet. Unter node_stack_bottom fügt ihr also 0.0, -1.3, 0.0, 0.0, 1.0, 0.0, 2 ein. (Falls ihr noch mehr Informationen über die
part.cfg und die node_definitions möchtet, ich arbeite an einem Tutorial welche
die part.cfg komplett auseinander nimmt und welches alles möglichst genau und einfach
erklärt.) Jetzt sind wir fertig, speichern die part.cfg ab und starten KSP.
Damit wären wir fertig.
Viel Spaß mit eurem ersten Triebwerk!
In diesem Tutorial werde ich erklären wie man Animationen in KSP sichtbar macht. Ich werde nicht erklären, wie man eine Animation erstellt, dafür gibts genug YoutTube Videos
1) Wenn ihr eure Animation erstellt habt, speichert ihr das ganze ganz normal als .blend Datei ab und importiert es in Unity.
2) In Unity wählt ihr unten im Auswahlfenster eure Datei aus, meine heißt einfach Test. Sobald ihr diese Datei ausgewählt habt erscheint oben rechts die Import Settings.
3) Dort in der Leiste geht ihr auf den Reiter "Rig".
4) Hinter dem Punkt "Animation Type" wählt ihr "Legacy" aus und bestätigt das ganze.
5) Rechts neben dem Reiter "Rig" befindet sich der Reiter "Animations". Dort geht ihr drauf. Das ganze sieht dann so aus:
Hier könnt ihr den Start und Endpunkt einstellen, eigentlich ist der jedoch so eingestellt das der Anfangs-und Endpunkt so gesetzt it das es genau am Anfang & Ende der Animation startet bzw endet. Auch könnt ihr hier den Namen der Animation ändern, also von "Default Take" zu wie auch immer ihr eure Animation nennen wollt. Ansonsten solltet ihr alle anderen Einstellungen so lassen.
Unten rechts seht ihr ein kleines Fenster "Preview". Dort könnt ihr euch eure Animation anschauen. Zum Schluss geht ihr auf Apply um eure Einstellungen zu übernehmen.
6) Wenn ihr jetzt wieder auf euer Animiertes Teil geht, seht ihr einen Komponenten (Animation):
Ihr solltet den Haken bei "Play Automatically" entfernen, es sei denn ihr wollt das eure Animation zufällig abgespielt wird.
7) Zum Schluss erstellt ihr noch Collider, diese werden animiert sein, also mit der Animation übereinstimmen, ihr müsst also einfach nur Collider erstellen und das wars. Nun schreibt ihr das Teil wie gewohnt.
Damit KSP die Animation auch erkennt müsst ihr nun folgendes in die part.cfg eintragen:
MODULE
{
name = ModuleAnimateGeneric
animationName = Test
startEventGUIName = Open
endEventGUIName = Close
}
Bei "animationName" setzt ihr einfach den Namen eurer Animation rein, in meinem Fall Test. Ist euer Animationsname "hfakf" setzt ihr dort "hfakf" ein. Bei startEventGUIName könnt ihr das einsetzen was in KSP stehen soll um die Animation zu beginnen, dort könnte also auch "activate" stehen. Bei endEventGUIName setzt ihr das ein womit die Animation rückwärtsgespielt wird, also wo sich ein Solar Segel beispielsweilse wieder einfährt. Dort könnte man wenn man am Anfang "activate" geschrieben hat also "deactivate" eintragen.
Nun könnt ihr eure eigenen Animationen ins Spiel einfügen!
Hier erkläre ich was die part.cfg macht und was man dort alles einstellen kann...
Zuerst einmal suchen wir uns irgendeine part.cfg eines Stock Teils heraus und öffnen diese mit Notepad (Oder womit auch immer). Ich habe mir jetzt einfach die part.cfg des Jumbo Tanks genommen (KSP_win\GameData\Squad\Parts\FuelTank\fuelTank3-2).
Dort steht folgendes (Das grüne dadrunter ist meine Erklärung):
PART
"Hallo, ich bin eine part.cfg"
{
name = fuelTank3-2
Während des Ladebildschirms sieht man welche Teile grade geladen werden, in diesem Fall würde man dort also sehen: fuelTank3-2. Diese Kürzel werden in den Stock Configs immer zusammengeschrieben, dies ist jedoch nicht zwingend erforderlich, man kann diese Namen also auch auseinanderschreiben.
module = Part
Ist bei fast allen Teilen so, nur bei Flügeln ist es anders. Bei Flügeln muss dort stehen module = Winglet
author = NovaSilisko
Dort könnt ihr euren "Künstlernamen" eintragen, in meinem Fall Jebediah Kerman
mesh = model.mu
Dieser Eintrag sagt der .cfg eigentlich nur, welches Mesh geladen werden soll (Also welches modell). Wenn ihr für jedes einzelne Teil einen einzelnen Ordner angelegt hat, dann könntet ihr dort auch hinschreiben mesh = blablalbafuiafaw1478.mu . Wenn euer Mesh jedoch einfach model.mu heißt, und ihr bei mesh = blablalbafuiafaw1478.mu eingetragen habt, dann sucht KSP nach diesem Dateiname in eurem part Ordner, jedoch wird KSP diese Datei nicht finden, da euer mesh ja "model.mu" heißt. Wenn ihr jedoch alle Teile bzw meshes in einem Ordner habt, ist dieser Eintrag sehr hilfreich, ansonsten ist er eigentlich überflüssig, sollte aber nicht gelöscht werden.
rescaleFactor = 1
Dies ist ein sehr sehr wichtiger Eintrag. Ohne diesen Eintrag wird euer part in KSP nicht in der Größe angezeigt in der ihr es erstellt habt. Wenn ihr das Teil mit einem Durchmesser von 1.25m erstellt habt, hat es im Spiel einen Durchmesser von 2.891irgendwas Metern. Wenn also euer Teil im Spiel nicht ordentlich skaliert angezeigt wird, dann guckt immer erst in die cfg nach dem rescaleFactor. In manchen cfgs kann es vorkommen das dort steht scale = 1 , dieser Eintrag bringt im Prinzip jedoch nichts. Also immer schön dran denken den rescaleFactor einzufügen.
Übrigens: Wenn ihr eine echte Rakete 1:1 nachgebaut habt, diese im Spiel jedoch auf Kerbal Größe verkleinert werden soll, dann könnt ihr dort ganz einfach rescaleFactor = 0.64 eintragen, denn die Teile in KSP sind nur 64% so groß wie die Teile in echt wären. Ziemlich praktisch also dieser Eintrag.
node_stack_top = 0.0, 3.75, 0.0, 0.0, 1.0, 0.0, 2
node_stack_bottom = 0.0, -3.75, 0.0, 0.0, 1.0, 0.0, 2
node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1
Ein sehr wichtiger Eintrag. Ohne die nodes geht garnichts, denn ohne die Nodes könnt ihr das Teil nicht anbauen. Schauen wir uns das also mal genauert an:
Am Anfang steht immer node_stack_... Meist folgt darauf top oder bottom . Es muss jedoch nicht zwangsweise mit top oder bottom enden, ihr könnt auch sagen node_stack_middle_right = ... oder node_stack_fjai147812 = ... . Wichtig ist nur das am Anfang immer node_stack_...steht, denn sonst werden die Nodes nicht als Nodes erkannt.
Die ersten 3 Zahlen stehen für die Position der Node auf folgenden Achsen (Der Reihenfolge nach):
X-Achse Y-Achse Z-Achse
Die folgenden 3 Zahlen stehen für die Rotation der Node (Der Reihenfolge nach):
X-Achse Y-Achse Z-Achse
Diese Zahlen sollten so bleiben, es sei denn ihr wollt das euer Teil nur gedreht anbaubar ist.
Zum Schluss ist nach einem Komma noch eine Zahl:
node_stack_top = 0.0, 3.75, 0.0, 0.0, 1.0, 0.0, 2
Die letzte Zahl steht immer für die größe der Node.
Auflistung der Zahlen für die bestimmten Node Größen:
0 = Node für Teile mit Durchmesser 0.625m
1 = Node für Teile mit Durchmesser 1.25m
2 = Node für Teile mit Durchmesser 2.5m
3 = Node für Teile mit Durchmesser 3.75m
Ihr solltet diese Nodegrößen unbedingt anpassen, denn bei kleinen Teilen mit großen Nodes wird es schwierig diese anzubauen, wenn mehrere große Nodes nebeneinander sind!
TechRequired = heavierRocketry
In welchem Ast des Techrees man das Teil findet und freischalten kann.
entryCost = 34200
?
cost = 10500
Wie viel das Teil im Editor kostet, die Preise für alle Teile werden mit dem 0.24er Update überarbeitet um mit dem neuen Geldsystem besser zu funktionieren.
category = Propulsion
In welcher Kategorie findet man das Teil im Editor? Es gibt folgende Kategorien:
Pods
Propulsion
Control
Structural
Aero
Utility
Science
subcategory = 0
Es gibt mehrere Seiten im Auswahlmenü im Editor. 0 heißt das das Teil auf eine beliebige Seite gesetzt wird.
title = Rockomax Jumbo-64 Fuel Tank
manufacturer = Rockomax Conglomerate
description = The largest tank available from Rockomax, the Jumbo-64 holds a vast amount of fuel in a friendly orange insulated container. Contrary to popular belief, the Jumbo-64 is NOT orange flavored and should NOT be tasted.
Hier kann man das Teil ein wenig beschreiben, es ist aber nicht zwingend nötig.
attachRules = 1,1,1,1,0
Hier wird festgelegt, wie das Teil angebracht wird und wie Teile an ihm befestigt werden. Es gibt folgende Werte (von links nach rechts):
stack: Kann das Teil an den "stack"-nodes angebracht werden? (Sollte man eig. immer auf "1" setzten.)
srfAttach: Kann das Teil an den "attach"-nodes angebracht werden?
allowStack: Eig. das selbe wie "stack".
allowSrfAttach: Können Parts radial an das Teil angebracht werden?
allowCollision: Kann man das Teil in ein anderes bauen, ohne PartClipping zu aktivieren? (Verwende das, falls du nodes hast, die im Objekt sind.)
Man sollte bei den Werten nur 1 setzten, wenn man auch die entsprechenden Nodes gesetzt hat, weil die Einstellung sonst sinnlos wäre.
mass = 4
Das Leergewicht des Teils, ohne Treibstoff oder sonstige Resourcen.
dragModelType = default
Das Luftwiederstandsmodell, man sollte es auf default lassen, da es im Stock-Spiel keine weiteren Modelle gibt.
maximum_drag = 0.2
minimum_drag = 0.3
Maximaler / Minimaler Luftwiederstand, den das Teil beim ungelenkten Flug durch die Athmospere ausübt.
angularDrag = 2
Wieviel Luftwiederstand übt das Teil aus, wenn es in der Athmospere bewegt wird?
crashTolerance = 6
Wie stabil ist dein Teil? (Wenn dort also = 6 steht, dann bleibt das Teil heile wenn es mit 5m/s aufschlägt, sobald es schneller als 6m/s ist wird es explodieren.
breakingForce = 200
Wieviel hält die Verbindung zu anderen Teilen aus?
breakingTorque = 200
Welche Gegensteuerung eines SAS hält das Teil aus?
maxTemp = 2900
Bei welchen Temperaturen wird dein Teil zerstört?
RESOURCE
Verleiht dem Teil einen "Tank" für eine Resource.
{
name = LiquidFuel
Name der Resource (Alle Namen der Resourcen findet man unter GameData/Squad/Resources/ResourcesGeneric
amount = 2880
Wie viele Einheiten sind im Tank enthalten? (Mann kann zum Beispiel 0 eintragen, wenn der Tank wenn man das Teil auswählt keinen Treibstoff enthalten soll. Wichtig ist jedoch das die Zahl bei amount = xxx nicht höher sein darf als die Zahl bei maxAmount = ... , sonst kann es passieren, das das Spiel abstürzt.
maxAmount = 2880
Wie viele Einheiten passen in den Tank wenn er komplett aufgefüllt ist?
}
RESOURCE
{
name = Oxidizer
amount = 3520
maxAmount = 3520
--> Siehe das selbe wie oben
}
}
Die letzte Klammer sagt das die part.cfg abgeschlossen ist.
Es gibt viele verschiedene Module, ich habe sie hier mal aufgelistet:
MODULE
{
name = ModuleCommand
minimumCrew = 1
}
--> Dieses Modul gibt an ob Kerbals in der Kapsel spawnen sollen. Bei minimumCrew gibt man an wie viele Kerbals mindestens benötigt werden um die Kapsel zu kontrollieren.
RESOURCE
{
name = ElectricCharge
amount = 150
maxAmount = 150
}
--> Das RESOURCE Module gibt an, ob das Teil eine Resource enthält. Bei name = ... gibt man an was für eine Resource das ist (Hier ElectricCharge), amount gibt an wie viel aktuell im Teil drin ist und maxAmount gibt an wie viel Strom maximal in die Batterie passt. Das ganze lässt sich simpel auf andere Resourcen wie LiquidFuel oder Oxidizer übertragen.
MODULE
{
name = ModuleSAS
}
--> Dieses Modul gibt an ob ein SAS (Reaction Wheel) im Teil enthalten ist.
MODULE
{
name = ModuleReactionWheel
PitchTorque = 15
YawTorque = 15
RollTorque = 15
--> Hier gibt man an wie Stark das SAS ist, in diesem Fall 15 "Kräfte" auf jeder Achse.
RESOURCE
{
name = ElectricCharge
rate = 1.2
}
--> Bei rate gibt man an wie viel, in diesem Fall Strom, das SAS bei Benutzung braucht.
###Weitere Module folgen###
Danke an Thomas P. Kerman für die Unterstützung bei diesem Tutorial!
###Texturieren###
- Beim texturieren von umfangreichen Teilen mit vielen verschiedenen Farben kann man bevor man mit dem richtigen texturieren anfängt die einzelnen Teile des 3D Modells farbig markieren, damit fällt es später beim richtigen texturieren leichter zu erkennen was man da eigentlich anmalt. Beispiel:
...Weitere Dinge die das Modden vereinfachen...