Modding Tutorials

  • node_attach ist der Parameter der festlegt, "wo man am Teil die Teile anbauen kann". Wenn man einen 1.25m Tank hat, dann muss bei Node_attach 1.25m stehen, damit die Teile die an den Tank angebaut werden auch auf der Hülle des Tanks angebaut werden und nicht irgendwo inner oder außerhalb des Tanks. Wenn du einen 2.5m Tank hast, gibst du halt ein:
    node_attach = 2.5, 0.0, 0.0, 1.0, 0.0, 0.0, 1
    Frage damit geklärt? :)

  • node_attach ist der Parameter der festlegt, "wo man am Teil die Teile anbauen kann". Wenn man einen 1.25m Tank hat, dann muss bei Node_attach 1.25m stehen, damit die Teile die an den Tank angebaut werden auch auf der Hülle des Tanks angebaut werden und nicht irgendwo inner oder außerhalb des Tanks. Wenn du einen 2.5m Tank hast, gibst du halt ein:
    node_attach = 2.5, 0.0, 0.0, 1.0, 0.0, 0.0, 1
    Frage damit geklärt? :)

    jo 8)


    Hinzugefügt: 17.07.2014 - 21:24


    Bei mir besteht keine Möglichkeit, meine Modeldaten als Blendfile in Unity zu importieren und beim fbx import mach ich anscheinend immer was falsch. Es muss doch was zufinden sein, wie man es richtig Importiert.


    Außerdem scheinen die abgelesenen Koordinaten für die Nodes falsch zu sein.

    Einmal editiert, zuletzt von StarEagle93 ()

  • Welche Unity Version benutzt du? Es gab letztens ein Update, welches ich jedoch übersprungen hab, vielleicht hat sich da irgendwas geändert vom Import her, was ich jedoch bezweifle.


    Mit den Nodes: Die X&Y Achse sind in Unity im Gegensatz zu Blender vertauscht, du musst die Zahlen also aus Unity dort eingeben, nicht aus Blender. Um eine Node zu erstellen auf der Hochachse musst du in der cfg die 2. Zahl durch die Höhe der Node ersetzen. Auch ist wichtig das du bei Kommazahlen kein Komma sondern ein Punkt verwendet wird, also zum Beispiel
    1.25, 0.0, 0.0...
    Die Kommata dienen zur Abgrenzung der nodes. Der Dreher kann schnell passieren.

  • Unity version ist 4.5.1f3.


    Naja, ich schlag mich jetzt nicht mehr mit dem Blend. Import rum, ich importier das ganze jetzt als Obj oder fbx, nur das problem ist da, was ich bei den einstellungen in Blender beim Export beachte muss.


    Mich würde auch intressieren, wie ich die Node Position in Unity definieren kann, da man die zahlen wie du geschrieben hast aus blender nicht nehmen kann.

  • Hm, die Idee finde ich ziemlich gut, aber ich befürchte das du um das zu verwirklichen ein Plugin schreiben musst. Du könntest natürlich mehrere thrustTransforms benutzen und diese im Spiel je nach Bedarf zündest. Das ist aber ziemlich umständlich. Ich würde es lieber mit dem Gimbal Dingens machen. Du legst einfach fest wie weit das Triebwerk bzw der Schub maximal schwenkbar sein soll (Ich schätze du solltest da dann 90º einsetzen). Statt der Öffnungen an der Seite machst du 4 Schlitze, einen für jede Achse, also von unten bis zur Hälfte des Triebwerks. So kannst du das Triebwerk im Spiel dann steuern.


  • Hm, die Idee finde ich ziemlich gut, aber ich befürchte das du um das zu verwirklichen ein Plugin schreiben musst. Du könntest natürlich mehrere thrustTransforms benutzen und diese im Spiel je nach Bedarf zündest. Das ist aber ziemlich umständlich. Ich würde es lieber mit dem Gimbal Dingens machen. Du legst einfach fest wie weit das Triebwerk bzw der Schub maximal schwenkbar sein soll (Ich schätze du solltest da dann 90º einsetzen). Statt der Öffnungen an der Seite machst du 4 Schlitze, einen für jede Achse, also von unten bis zur Hälfte des Triebwerks. So kannst du das Triebwerk im Spiel dann steuern.

    Ich kann mir ja gerne ein Plugin schreiben, da ich ja die funktionen mit VS einsehen kann, steht zwar keine beschreibung bei, aber so schwer dürfte es ja gar nicht sein, denn mit dem Gimbal ist es ja wieder weit entfernt von meiner idee, denn das Triebwerk soll das Schiff weiter nach vorne drücken, wärend bei einer Pitch, Yaw oder Roll eingabe gleichzeitig dann ein etwas schwächerer Schub aus einer der 4 Seitlichen Öffnungen kommt


    Also anders formuliert, ein Triebwerk mit seitlichen Schubdüsen. Das Triebwerk soll nähmlich auch nicht an dem RCS System geknüpft sein, sondern das man die Schubdüsen des Triebwerks über das Rechtsklickmenü an oder auszuschalten.


    Naja, aber zu erst muss ich das Triebwerk fertig modellieren und textureren.


    Edit:

    Zitat

    Die X&Y Achse sind in Unity im Gegensatz zu Blender vertauscht, du musst die Zahlen also aus Unity dort eingeben, nicht aus Blender.

    Da bin ich gerade ein bischen verwirrt, denn in deinem Tutorial schreibst du, das die zahlen aus Blender sind und mir schreibst du es umgekehrt. Ich bin mich am fragen, wie ich in Unity an die Koordinaten der oberen fläche meines Triebwerks kommen soll?

    Einmal editiert, zuletzt von StarEagle93 () aus folgendem Grund: Flüchtigkeits Fehler ausgebessert.

  • Jaa, das fragen sich viele. Sofern dein Triebwerk in Blender auf der Mitte liegt, bzw die obere Seite des Triebwerks (Also X-&Y-Achse = 0), so merkdt du dir einfach nur die Höhe der Seite wo die Node sein soll. In Unity gibst du diese Zahl (Zb. 1.245) in dem Kästchen für die Z - Achse ein. Ggf kannst du auch mit rumschieben eines leeren Gameobjects die ungefähren Koordinaten der Nodes ermitteln, welches jedoch sehr unzuverlässig ist.

  • Ich habe aus Langeweile einfach mal schnell einen "KSP Node Converter" in C# geschrieben, in den man die Daten aus Blender eingibt und der dann automatisch die Node erstellt. Er ist auf Englisch, da ich gedenke, ihn im englischen Forum zu veröffentlichen - da bin ich mir aber noch unsicher.


    Erklärung der Felder:


    Name: Name der Node
    Blender-X: X-Koordinate in Blender
    Blender-Y: Y-Koordinate in Blender
    Blender-Z: Z-Koordinate in Blender
    Size: Größe der Node
    Scale: Scale-Wert der part.cfg


    Das Programm ist in Mono kompiliert, es sollte also auf Windows und Linux laufen.


    ACHTUNG! Linux-Nutzer müssen die Kommazahlen mit einem Punkt eingeben (1.0), Windows-Nutzer hingegen mit Komma (1,0). Ich werde allerdings versuchen, diesn Fehler zu beheben!


    Gruß,
    Thomas

    Dateien

    Durch das Lesen dieser Nachricht stimmst du meiner EULA zu.


  • Hey Thomas! Die Idee ist genial, das suchen der richtigen Node Positionen war einer der größten Ärgernisse in der Modderei für mich.


    So, ich habe einfach mal eine Phantasie Höhe angegeben, 1.525. Leider ist jedoch das hier herausgekommen:

    Vielleicht habe ich was falsch gemacht, aber Windows User sollen das ja mit Komma eingeben. In dem Feld wo man die Größe der Node (Size) geht es ja bei 1 los und hört bei 5 auf, die Stock Größen der Nodes fangen aber bei 0 für 0.625m Teilen an und gehen bis 3. Und ein kleiner Verbesserungsvorschlag wäre: Beim Feld "Name" solltest du davor in einem grauen Kästchen "node_stack_" einfügen, damit man weiß das man nur noch bottom/ top etc einfügen muss. Wenn diese Sachen behoben sind dann ist das auf jeden Fall eine gigantische Hilfe!

  • OK, Jeb danke für das Feedback. Das mit der Node hab ich doch glatt Verpennt, hab da was mit dem Durchmesser verwechselt. Ansonsten werden ich mich gleich an die Überarbeitung machen. ;)


    Dass da bei dir eine größere Zahl herauskommt liegt daran, dass du die Zahl bei "scale" mit einem Punkt angegeben hast - es müssen wirklich ALLE Kommazahlen so geschrieben werden!


    Gruß,
    Thomas


    Dickes, fettes EDIT:


    Ich habe die oben genannten Probleme behoben und ich habe gleichzeitig das Problem mit den Kommazahlen gelöst, ihr könnt die Zahlen nun wahlweise mit Komma oder Punkt schreiben - allerdings scheint es auf Linux nun überhauptnicht zu funktionieren, da muss ich mal schauen, in wieweit Mono mit VSC# kompatibel ist. :wacko:

    Dateien

    Durch das Lesen dieser Nachricht stimmst du meiner EULA zu.


    2 Mal editiert, zuletzt von Thomas P. ()

  • Hast du dem Modell in Unity eine Textur gegeben?

    Durch das Lesen dieser Nachricht stimmst du meiner EULA zu.


  • Hast du dem Modell in Unity eine Textur gegeben?

    Das Problem hat sich irgendwie von selber gelöst, nach dem ich noch mal das Material in das GameObject gezogen habe.


    Und hier hab ich mal eine ganz grobe version meines Triebwerkes, wobei ich sagen muss das gimbel range auf 90° wohl zu heftig ist, desweiteren frag ich mich, wo der fehler liegt, dass das Triebwerk ein bischen breiter ist als, die 1.25m stockteile und warum die koordinaten der Nodes wieder nicht stimmen.


    Ich werde das Triebwerk aber später noch mal ganz neu modellieren und bessere texturen machen (ja ich hab die texturen mit GIMP selber gemacht :D )

  • Sieht doch garnicht so schlechte aus. Zur Größe: Hast du in deiner part.cfg rescaleFactor = 1.0 eingesetzt? Wenn dort nur scale steht dann wird es nicht in der richtigen Größe angezeigt! Evtl passen dann auch die Koordinazrn, ansonsten schick mir das Triebwerk mal und dann kann ich dir die Nodes machen wenn du möchtest StarEagle:)

  • Hier das Triebwerk, mit den Blend, Unity Files und der das fertige mit der Part.cfg: Hier


    Jetzt hat es wenigsten schon die richtige größe nach dem ich noch rescaleFactor = 1 und scale = 1 hinzugfügt habe, aber die node sitzt immer noch nicht richtig. Also das kommt nähmlich ein bischen komisch rüber, wenn man das ding an dem Struktur teil, das wie ein docking port aussieht drann anbaut und im Triebwerk dann die Luftschleuse zusehen ist.

  • Also ich konnte eigentlich nicht wirklich einen Fehler entdecken. Das mit der "Luftschleuse" hängt damit zusammen das du nicht den höchsten Punkt des Triebwerks genommen hast um die Koordinaten für die Node zu benutzen, sondern nur den 2. höchsten Punkt. Deshalb verschwindet ein Teil des Triebwerks sobald du es an ein anderes Teil anbaust in dem anderen Teil, weil die Node ein Stück zu tief sitzt. Du musst die Node in der cfg einfach durch das hier ersetzen:

    Zitat

    node_stack_top = 0.0, 0.08046, 0.0, 0.0, 1.0, 0.0, 1

    Und dann sollte auch alles funzen!


    Ps.: 80kN Schub und so hohe Effizienz? Da müssen die NASA Leute aber noch viel forschen um das hinzubekommen :D