Jump to content

Search the Community

Showing results for tags 'tutorial'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements
    • The Daily Kerbal
  • Kerbal Space Program 2
    • KSP 2 Discussion
    • KSP 2 Dev Diaries
    • KSP 2 Suggestions & Development Discussion
    • Show and Tell
  • Kerbal Space Program
    • KSP Discussion
    • KSP Suggestions & Development Discussion
    • Challenges & Mission ideas
    • The Spacecraft Exchange
    • KSP Fan Works
  • Community
    • Welcome Aboard
    • Science & Spaceflight
    • Kerbal Network
    • The Lounge
  • Gameplay and Technical Support
    • Gameplay Questions and Tutorials
    • Technical Support (PC, unmodded installs)
    • Technical Support (PC, modded installs)
    • Technical Support (PlayStation 4, XBox One)
  • Add-ons
    • Add-on Discussions
    • Add-on Releases
    • Add-on Development
  • Making History Expansion
    • Making History Missions
    • Making History Discussion
    • Making History Support
  • Breaking Ground Expansion
    • Breaking Ground Discussion
    • Breaking Ground Support
  • International
    • International
  • KerbalEDU Forums
    • KerbalEDU
    • KerbalEDU Website

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website URL


Skype


Twitter


About me


Location


Interests

  1. In KSP2, players learn basic flight concepts in a virtual simulator that can be accessed anytime the game is paused. Here's Jon Cioletti testing his new tutorial shader. In a way, it's like the Kerbals are playing KSP... inside KSP. Whoa.
  2. A Brand New Series… Part Tutorial, Part Let’s Play, it is A Very Basic Space Program
  3. Planet Texturing Guide Repository This thread will aim to deliver a range of guides and tutorials to cater for those who wish to create planetary textures using a variety of methods, software and mod plugins. Please feel free to contribute any material you think would be suitable to list within this archive and I will endeavor to keep it up to date. ------------------------------------------------------------------------------------ Celestial Body Creation Theory World Generation - by Tyge Sjöstrand Atmosphere Calculators - by OhioBob ------------------------------------------------------------------------------------ Map Making Making Maps Using Photoshop (... and a little Wilbur) - by Jeremy Elford: Turning your hand drawn sketch into a detailed alpha map A Basic Alpha Map Aged, Parchment with a creation method for mountain ranges, trees and trails. One of many options to colour your map 4 ways to give your map a relief using height maps - using Wilbur for one of them. The Genesis of Israh: A Tutorial (Amazing tutorial using Photoshop, Wilbur & Fractal Terrains) - hosted on World of Gotha Eriond: A Tutorial for GIMP & Wilbur - by Arsheesh Creating Mountains and Other Terrains in Photoshop - by Pasis Realistic Mountains with Photoshop and Wilbur - by Miguel Bartelsman Mountain Techniques using Wilbur and GIMP - by Torq Simply Making Mountains in GIMP & Wilbur - by Ludgarthewarwolf Making Mountains for the Artistically Challenged - by Unknown Painting Heightmaps for Satellite Style Maps - by Theleast Quick Guide for Bumpmaps in Photoshop (Combining Colour and Normals for presentations) - by Pasis Saderan (Creating Land/Ocean maps in Photoshop) - by Tear Realistic Coastlines in Photoshop/GIMP - by Old Guy Gaming Terrain in Photoshop, Layer by Layer- by Daniel Huffman Procedural Planet Textures using Adobe After Effects - by Poodmund How to Make Prodedural Gas Giant Textures using Gaseous Giganticus on Windows 10 - by Poodmund How To Make Gas Giant Textures for Kerbal Space Program Mods - by GregroxMun Gas Giant Texturing Tutorial - by Galileo How to Horizontally Wrap/Create Horizontally Tile-able Textures - by Poodmund Removing Polar Pinching/Distortion from your Planet Map textures - by Poodmund ------------------------------------------------------------------------------------ Software Tutorials Wilbur: Filling basins and incise flow to make eroded terrain Wilbur: Using the tessellation tool Wilbur: Rivers Wilbur: Going from a sea mask to a terrain Wilbur: Rivers and lakes Wilbur: Islands Wilbur: How to generate realistic(ish) terrain below Sea Level Fractal Terrains Tutorials - by Old Guy Gaming ------------------------------------------------------------------------------------ KSP Plugin Tutorials Setting Up EVE Cube Maps - by Poodmund Axially Tilted EVE Textures (Cyclones/Auroras) - by Poodmund PQS Mod:VoronoiCraters Guide - by OhioBob ------------------------------------------------------------------------------------ Software Links NASA's GISS: G.Projector - Global Map Projector Wilbur - Free, extremely powerful noise based terrain generation Fractal Terrains - Noise based terrain generation and colouring, based on Wilbur, License required Libnoise Designer - Procedural Noise Generation tool using Libnoise library. Executable file located in \Bin\LibnoiseDesigner.exe GIMP - Free image manipulation software Paint.net - Free image manipulation software ------------------------------------------------------------------------------------ Please contribute to the above and I will list it in an appropriate section if suitable.
  4. Hi all, I am very new to add-on development, and I was wondering why part attach nodes are written in the CFG if they're configured in Unity along with the materials, CoM etc. (photo of node lines in the CFG) Also, a little side question, does anyone know of any good tutorials for developing parts? The one on the KSP wiki is quite outdated.
  5. To all new budding planet modders, and perhaps older ones, this is a tutorial on how to create a decent looking texture for a rocky planet. Requirements: GIMP GIMP is a free plugin you can download that is my platform of choice for texturing, and it's what I will be using in this tutorial: Firstly, after you've opened up GIMP, click File > New, and create a new page. The Dimensions are VERY IMPORTANT if you want the texture to work. Use a 2*1 texture, which comes in 1024-512, 2048-1024, and 4096-2048 sizes, you can continue going up if you want, but I would recommend 2048-1024 textures for rocky planets and 4096-2048 for gas giants. In this tutorial, I will be demonstrating a smaller rocky planet. Next, choose a color to fill the page with after you have created it. This will be your theme color. It can be pretty much anything, but I would recommend staying away from purple/pink colors due to it being unrealistic, but it's your texture! In this tutorial I'm using a blue theme color, but the method works for a lot of other colors. Switch the brush to Acrylic 01 and cover most of the texture in variations of the base color. Don't sweat if it's not seamless, we'll worry about that later. Now, using the smudge tool, blend all the various patches together. If you were to export that into a texture for your planet, it would work, but would probably have a horrible looking seam as you are about to see. Go to Layer > Transform > Offset and click. In the X field, put in half the length, or the width of your image, in this case it being 1024. This is what the texture would look like if you wrapped it around a sphere, note the obvious seam cutting through the image. How do we remedy this? Using the smudge tool, blend the two sides of the texture together until the seam is no longer visible. Repeat Layer > Transformation > Offset once more by putting the width of the image in the X field, and you will go right back to where it was before. Now, go to the Filter's tab, click distorts and click of the Polar Coordinates. This is what the planet would look like from the north pole. Look at all that polar distortion! Use the smudge tool once more, and blend the poles to your satisfaction. Now, click on Polar Coordinates once more, to turn back to it's original format, then use Polar Coordinates once more, but disable (or enable) Map from top. This is now the opposite pole. Use the smudge tool again to your liking on the top pole to rid the texture of the polar distortions. Congratulations, you now have a texture! Now, before you save the image, click on the Filters Tab, go to Map, and open the Map Object tab. Change Map To: to Sphere, disable the wireframe, enable transparent background and enable Updating Live. If you go to the orientation tab, and change the y axis, you can look at a mini preview of your planet! Now, you can leave the texture as it is, or you can add surface features, such as craters, canyons, and mountains. Remember to export, not save the image, and make sure to save it as a .png and .dds file (either one works), and place it in the folder of choice. Other resources that might help creating planets: The Kopernicus Wiki: A pretty good documentation of the basics of Kopernicus @OhioBob's Atmosphere Calculator: If you want to create an atmosphere @Poodmund's Planet Texturing Guide Repository: For more fancy tips and tricks on making planet textures. In game examples: (From my Mod, Japris Stellar Neighborhood)
  6. After a couple days of research and understanding the Real Solar System files, I've finally figured out how to change the date in RSS DateTimeFormatter. It's not too complicated and just takes a few minutes. The first thing you need to do is go into your Kerbal Space Program file (with your GameData and whatnot) and type into your file explorer's search bar, "persistent.sfs". Depending on how many saved games you already have, there will be the same number of these "persistent" files. Choose any because what this will do is going to affect all your saved games (if you don't want your other games to have a different date, take them out of the KSP saves folder). Once the .sfs file is opened, you need to scroll down until you see "UT" which itself is under "FLIGHTSTATE". Next to UT is a set of numbers. For those that don't understand what these numbers mean, they represent the number of seconds since the start of the game. This is what you need to change to have the save game set to a different date. Now you must figure out the number to replace the current one. Go to this website and, depending if your desired is before or after, put 1/1/1951 (the default date in Real Solar System) in Start Date or End Date. Then put the desired date in the opposite date section. For an example, I will use the beginning of 1942 as the replacement date. Click Calculate Duration and look for the large bolded text saying the number of days in between (3,287 days as per the example year). Now it's time for some quick maths. Multiply the number of days by 4 (as Kerbin days are 1/4 of an Earth day) then multiply that number by 6 and multiply again by 3,600 (found that out here). You now have your replacement number. Go back to your persistent.sfs file and delete the number already in UT and type in the new calculated number (of course not with commas). If your wanted date comes before 1/1/1951, then put a dash in front of it to make it a negative number. When done, save the file and close out of it. There you go. But before you go back in the game, there's one more thing you will need to do. What this is going to do will just make the planets and moons correctly aligned accurately according to the new date. Go into the Real Solar System file that you have in GameData and look for "RSSKopernicusSettings.cfg". Within it, scroll down (but not really because it's close to the top) until you see "Epoch". It will also have a set of numbers next to it. Epoch, in astronomical terms, is a fixed date that is relative to planetary/stellar measurements. The number you will see (-31542641.784) is the epoch for midnight, January 1, 1951. You need to replace this epoch with another that is accurate to your new in-game date. Use this website to find the epoch by typing in the date that you had replace the default earlier (just type in 12:00 A.M. for the time and keep it at GMT (Greenwich Mean Time) as that it the time zone RSS uses) and clicking Human Date to Timestamp. Your epoch replacement (-883612800 for the 1942 example) will be next to Epoch Timestamp. Copy the number (if it has a dash to make it a negative number, keep this) and go back to RSSKopernicusSettings.cfg. Select the epoch number and then paste (Ctrl and V at the same time) to replace it while also deleting it at the same time. Save the .cfg file and close out of it. You've now fully completed the new in-game RSS DateTimeFormatter date. Go to your KSP save game that has the changed date and you can see now that the date is, in fact, changed. Head into the Tracking Station and look to see the different planet alignments. Unless you have a clever eye, and you probably won't be able to tell anyway, but the planets really have moved since you changed the epoch.
  7. After seeing this question asked before and not seeing a satisfactory answer I tried to come up with my own answer. First, we need to establish the reference direction that the longitude of ascending node (LAN) is measured against. See for example this post for a definition, the reference direction points from Kerbin to Kerbol on day 1 (lets ignore the tiny difference of 0.00159rad because the mean anomaly of Kerbin is 3.14 and not Pi in this assumption.). The next needed part is that a solar (Kerbol) day is a little longer than the sidereal rotation of Kerbin. Looking at the picture below one can piece together the global longitudinal angle in the Kerbol (different from the coordinates on Kerbin). At 0 degrees longitude on day 1 year 1 the global longitude is 90 degrees. At KSC the lat/long coordinates are about 0,-75, so that on day 1 year 1 the global longitude is 90-75 = 15 degrees Due to the rotation of Kerbin the global longitude increases by 360 degrees over 1 day, i.e. 1 degree per minute, plus ... The difference between sidereal day and solar day is adding 360 degrees per complete sidereal orbit, or 21600/9203545*360 degrees per full day. Now putting this all together the time x (in minutes) after 0:00h in UT to have the KSC at global longitude LAN on day d can be calculated with this formula (not showing the algebra): x = LAN - (90 + <launch longitude>) - (d-1)*21600/9203545*360 As an example, to launch at global longitude 90 degree, on day 60 the calculation yields x = 25.15m. So, if the Kerbals launch at 0:25h at KSC on day 60 with an inclination their resulting orbit will have a LAN of about 90 degrees. Hope this helps. I tried it, but please let me know if you find errors.
  8. I made a series of illustrated tutorials for orbital rendezvous & docking. There are 4 techniques. For a link to all the images in a single imgur album, click here. Hohmann Transfer Rendezvous: Orbit Phasing Rendezvous (easy radial-burn version): Orbit Phasing Rendezvous (more efficient prograde-burn version): Parallel Orbit Rendezvous: Changes: v7 - Adjusted phrasing in one chart and updated drawing of spacecraft in all 4 charts. v6 - Fixed a typo in the Hohmann transfer's step 6. v5 - Added 2 techniques (for a total of 4). v4 - Spelling error corrected. v3 - Refined instructions for final approach, docking indicators now also includes Navball Docking Alignment Indicator, more notes on how to be efficient. v2 - Split into 2 versions: efficient & easy. v1 - Original version.
  9. As i say in the video, i've had a couple PMs and tried helping a few folks out on the forums who've posted asking how to texture for KSP, so i thought i'd throw together a basic guide on how i go about doing things. Hope it helps!
  10. Newer versions of KSP support Unity’s updated UI system (technically available since KSP 1.0, but only really practical since 1.1), which is a major improvement over the old OnGUI system. Rather than rebuilding the UI every frame using the esoteric GUILayout and GUI system, the new Unity UI is built using standard Unity objects and hierarchies. This significantly improves performance, reduces the garbage created, and allows for some fancy effects that weren’t practical with OnGUI. The only problem is that building the new UI entirely through code is extremely tricky, to the point of being impractical in all but the simplest cases. So there are basically two options for using the new UI. One is built into KSP and is perfect for creating relatively simple windows that don’t require much customization. This is the PopupDialog system, it uses notations similar to the old GUILayout system, but generates a new Unity UI object. There is a thread with more details on PopupDialogs and some examples. The other option is to build your UI in the Unity editor, export it as an AssetBundle, and load it into KSP. There are also two options for how to handle this. You can create the UI in Unity without importing any assemblies into the Unity editor. When you load this UI into KSP you will need to manually hook up all of the elements through code. Things like the function called by a button, or the string of a text element will all have to be manually assigned. This is OK for simpler UIs, but can become prohibitively tedious for more complex UIs. Sarbian’s GC Monitor is an example of this type of UI. For a more complex UI it can be simpler to import an assembly directly into the Unity editor, allowing you to set button, or toggle listeners, and to store references to UI elements where needed. The only problem here is that you cannot import an assembly that refers to KSP’s Assembly-CSharp.dll, the primary KSP assembly. This means that any mod using a Unity UI will need two assemblies, one to handle the KSP side of things, and another that can be imported into Unity and will handle the UI side of things. The KSP assembly can keep a reference to the UI assembly, but the UI assembly can’t refer to the KSP assembly, since that will refer to Assembly-CSharp (this would create a kind of nested Unity project in the code, which Unity won't accept). This means that communication between the two assemblies will be difficult. It's worth noting here, that while you can't import any references to the KSP assembly in your Unity project, nothing is preventing you from adding that reference to your code outside of Unity. If you are careful you can setup your code in such a way that only a single assembly is needed. This would require either doing all of the Unity UI work before hooking things up to KSP, or just walling off anything that refers to KSP code into separate classes that could be disabled when you need to import the assembly into Unity. This tutorial doesn't cover this option, but this is another option that you can use and could get around some of the complicated interface-based techniques discussed below. But before we get to that we can go over some of the basics of Unity UI creation (generic UI creation is also broadly similar to KSPedia creation, which is covered in its own tutorial). I won’t go into too much detail, since there are a number of very thorough tutorials and examples available. Check out some of these; pay particular attention to the RectTransform as that is the core positioning component of all UI elements, and it can be quite tricky to get a handle on. Using Basic Orbit as an example project we’ll go over several different areas of UI creation, starting with making a simple, static window, one that can’t be re-sized and has a fixed amount of UI elements. I’ll be using the same formatting as in the KSPedia tutorial, with Unity Editor screen elements Bolded and UI objects and elements Bolded and Italicized. The code for Basic Orbit is available on GitHub. Much of the methods used here come from Kerbal Engineer Redux (which uses the Unity UI only for its toolbar button), its source and Unity project can be found on its GitHub page. This is the window we’ll be creating and hooking up to KSP today. It controls the visibility and some options for other screen objects. Section 1: Software and Tools: Required: Unity – Current KSP version (1.9.1) is using Unity 2019.2.2f1 KSP Part Tools – The current package includes what is needed for generating Asset Bundles and the legacy Part Tools files It should be noted that anyone familiar with Unity who can write their own asset bundle script doesn't need to worry about the Part Tools, just write the script for building an asset bundle and you can use the version of Unity that matches KSP If you do so make sure that any scripts you add to the project are placed in a folder called Editor somewhere within your Unity project's Assets folder To start with we need a new Unity project (I’m using Unity 5.2.4f1, since this is the version supported by the KSP Part Tools - KSP 1.4.x uses Unity 2017, but earlier versions should still work; KSP 1.8 and above uses Unity 2019.2). I would suggest making a separate project folder for each UI, you can create a new project in the Unity startup window, you can then copy the KSP Part Tools files into that project’s Asset folder, or just import them into Unity in the normal way. We only need the Part Tools for the Asset Compiler function, which we’ll get to later. Unity Project Setup: The first step is to install Unity and add the Part Tools package. Once Unity is installed open it and create a project for KSP (there are probably other tutorials that cover setting up Unity in more detail; that isn’t really covered here). Go to the Assets Tab along the top -> Import Package -> Custom Package -> Select the PartTools_AssetBundles.unitypackage file This will load all of the bits necessary for KSPedia creation Now you want a new scene; the Hierarchy Window should only have the Camera, which we want because it allows us to view the UI as it will be in-game In the Main Window you’ll want to be in the #Scene Tab, in 2D mode, using regular Shaded mode Section 2: Creating the UI: All Unity UI windows must be the child of a Canvas element, so we’ll need to add one here. In general, we don’t need to export this Canvas, since our UI can be added directly to one of KSP’s Canvases, but we need it in the editor to actually see anything we create. Add a Canvas: GameObject Tab -> UI -> Canvas This adds the Canvas element and the EventSystem The default properties should be fine, you’ll want to set Pixel Perfect on, since most KSP canvas’ seem to use this, it simply makes sure that all UI elements are snapped to pixel edges Render Mode should be on Screen Space – Overlay, this is for basic UI styles, a simple window on the screen To this Canvas we then add a Panel: Right-click on the Canvas -> UI sub-folder -> Panel The Panel is the basic window object, this is where we add buttons, labels, images, and so on The Panel has a RectTransform, a Canvas Renderer, and an Image element The RectTransform controls the window size and position The Canvas Renderer is a required component for any UI element that will actually be drawn on-screen The Image is the window background image By default, the Panel is the same size as the Canvas and uses the Stretch Anchor, meaning it will always stretch to the size of the Canvas, we obviously don’t want this Click on the Anchor image (the blue arrows, or red lines) in the RectTransform element and select the Middle-Center Option, with red lines crossing in the center You may end up wanting the Anchor to be Top-Left and the Pivot to be 0, 1, but you can leave them as they are for now This will set the Anchor to the center of the Panel, and will change the available RectTransform Fields, we can now directly set the size of the Panel, and they will be fixed Once we set the Panel size it will look like this: The Pivot (blue circle) and Anchor (white arrows) are in the center and the borders are marked in the corners with the blue dots Adding Elements to the Window: We’ll go over the background images used for the window, and more complex anchoring and pivot functions later, but for now, we can start adding the UI elements to this simple window. Basic UI elements can be added by right-clicking on any object in the Hierarchy Window and selecting a UI object The Add Component button can be used to add those same elements, or any other Unity object or script To start with we’ll add a few Text labels and some Toggles that look like buttons For Text elements just right-click the Panel and select a Text object under the UI tab To position the element we can drag it to the desired location, it should snap to the center line The width and height can be changed by dragging the edges, or by changing their values in the RectTransform properties Dragging the edges will make the element un-centered, whereas editing the height and width in the RectTransform will adjust the element’s size based on its pivot position (centered by default) Since this window is fixed we don’t need to worry about the anchor position, but if you want to make sure that an element stays at the top of the window you can change the anchor to Top-Center, or Top-Right if you want it stay in that corner, this can help when making a UI if you are frequently adjusting the window size For fixed Text elements we can just type in the Text Field whatever we want, for dynamic elements (which are set by something in-game) we’ll cover them later The Text properties: size, style, alignment, color, etc… can all be adjusted in the Text element’s properties A quick note about hierarchy and draw order here: Elements lower in the hierarchy are always drawn above higher elements This means that child elements are drawn over their parents, and siblings are drawn in order from last to first, with last on top Now to add some Toggle Buttons, since this a group of three related Toggles we can put them all under one parent object Right-Click on the Panel and select Create Empty, this will add a simple RectTransform with no UI elements We can adjust its position, size and anchor so that it can hold the Toggles and be fixed relative to the top of the window Now add a Toggle element directly to the new empty object (all Unity objects can be renamed by double-clicking on the in the Hierarchy window) Unity doesn’t have native Toggle Buttons, so the element created here is a standard toggle with a label and checkbox We can adjust these elements to work as a Toggle Button just by changing their size and positions (and some code that we’ll get to later) We need to go from this: To this (yes it looks odd, but we’ll get to specifics in a bit): Creating a Toggle Button and Adjusting the RectTransform: To make what we need we basically only have to adjust the RectTransform component for each UI element in the Toggle element. The Toggle itself is made up of a Toggle Script, which controls actually activating and deactivating it, the Background Image, which by default is the empty checkbox, the Checkmark Image, which is only shown when the Toggle is put into the “on” state, and a Text Label. We want this Toggle to look like a standard KSP button, so the images should fill the entire object and the text should be centered The Background Image will be set to standard KSP button styles (the regular button, a brighter button for when the mouse is over the element, and a darker button for when the mouse is actually clicking on it) and the Checkmark Image will be set to the darker, pressed KSP button; since the Checkmark Image is drawn over the Background Image, it will hide the standard button images when the Toggle is on To do this we need to adjust the Background and Checkmark Image RectTransforms to fill the entire object We set the Anchor to Stretch-Stretch (four blue arrows), this will make the element stretch to fit the size of its parent, it also replaces the size and position fields with offsets, so if we want an element to stretch with its parent, but always have 10 pixel borders around the edge, we can set each field to 10, here we want them all set to 0, the same size as its parent We do the same with the Checkmark Image For the Label, we generally want some padding around the edges, and the text should be changed to centered alignment We’ll get into actually assigning images to these elements later on, for now these are all using the default Unity UI element sprites (which can be seen in KSP in the debug window and a few other places) We can also replace the Text label with an Image element, this will simply draw an icon over the Toggle Button rather that a label Images can be imported into Unity by simply copying them into a folder in the Unity Project’s Asset folder, or by dragging them directly into the Unity Editor’s Project Window Images should be imported as Sprite (2D and UI) and the Generate Mip Maps toggle should be off Filling in the other UI elements: I’m not going to go over how to add all of the different UI elements. There are numerous UI tutorials that thoroughly cover different element types; sliders, standard buttons, and text labels are all fairly straightforward to add. For static windows it isn’t too complicated, the RectTransform can get quite complicated, but the best way to understand it is to simply play around with it and change values to see what happens. More complicated UI layouts, and variable size windows will be covered later on. Exporting the Asset Bundle: To load anything into KSP we’ll need to actually export all of our prefabs as an AssetBundle using the Asset Compiler from the KSP Part Tools. The method for this is similar to that described in the KSPedia tutorial, just without the KSPedia Database steps. Drag any prefabs into the Assets folder in your Project Window (this would be the Panel that we added to the Canvas at the start for our window) Set the AssetBundle name in the Properties Panel in the lower right Then open or go to the Asset Compiler window -> Create (for your bundle) -> Update -> Build This will export a file into the AssetBundles folder in your Unity Project, it should have the .ksp file extension Section 3: Hooking up the UI: Now to get to the fun part. By making use of the Unity Editor we can assign methods to all of the toggles and buttons, store references to text elements so they can be updated later, spawn new windows, and much more. To do this we need to make a new assembly that can be imported into the Unity Editor. Any MonoBehaviours defined in this assembly can then be added as scripts to our UI objects. These can be scripts that control specific behaviors, like switching text colors when mousing-over an element, or that control the various window functions. I’ll be referring to the assembly that is imported into the Unity editor as the Unity Assembly, and the assembly that uses KSP code as the KSP Assembly. Unity Assembly: We create our Unity Assembly the same as any other, it should use .Net 3.5, but it should only add references to UnityEngine and UnityEngine.UI, it should not have any references to KSP assemblies. For our KSP Assembly we create that as always, and we add a reference to our new Unity Assembly. This means that the KSP Assembly can call any public methods from the Unity Assembly, modify any public fields, and implement interfaces. But the Unity Assembly can’t directly communicate with the upstream KSP Assembly, or directly use any KSP code. There are a few ways around this, we could use some sort of listener and events system to trigger methods in the KSP Assembly or use interfaces in the Unity Assembly. We’ll be using the interface method. To simplify importing your assembly into Unity you might want to add a post-build event to your VS project that copies the assembly into the Unity folder: copy /y "$(TargetPath)" "C:\YourUnityProjectFolder\Assets\Plugins\" Creating Scripts for Unity: Any class that inherits from a Unity MonoBehaviour can be imported into Unity and added as a component to any other Unity object. To import an assembly into the Unity Editor just drag the .dll into your Unity project’s Asset folder, there should be a separate Plugins folder Once it is imported you can add the script to any Unity object: Add Component -> Scripts -> Your.Assembly.NameSpace -> YourScript Now the script is added to that object and a new instance will be instantiated whenever that object, or its parent object is created These scripts can accomplish several things They can store references to elements of the UI that need to modified by the script They can add behaviors to elements, such as controlling text color, or for replacing standard Unity Text elements with KSP’s new vector font Text Mesh Pro elements They can be used to assign listeners to buttons, toggles, sliders, etc… For the simple window that we’ve already created we have a Text element that needs to be updated in-game (the little mod version label), and several toggles. Because we want to set the initial state of some of these toggles (one controls whether a separate window is open or closed, so if it’s already open that toggle should be set to the on state), and because we want some of the toggles to affect others, we need to store references to the Toggle elements. And we need to assign listeners to the Toggle scripts. Any field with Primitive Types, or Unity Object Types can be set in the script then assigned to in the Unity Editor Storing these fields allows for easy access in the script using UnityEngine; using UnityEngine.UI; namespace BasicOrbit.Unity.Unity { [RequireComponent(typeof(RectTransform))] public class BasicOrbit_Example : MonoBehaviour { [SerializeField] private Toggle m_OrbitToggle = null; [SerializeField] private Toggle m_OrbitDragToggle = null; [SerializeField] private Toggle m_OrbitSettingsToggle = null; [SerializeField] private Text m_VersionText = null; } } Note the RequireComponent attribute at the top, this simply means that the specified types must also be present on the same GameObject All UI elements that actually draw something on the screen (images, text, etc…) require a CanvasRenderer, for example If that component isn’t present on the object it will be added when you add the script Public fields will automatically be added to the script’s Inspector tab You can set attach the [NonSerialized] attribute to public fields to prevent them from being shown in the editor or serialized Private fields can be added by attaching the [SerializeField] attribute (unity chops off the m_ part of the field's name in the Inspector window) These fields can be filled in by simply dragging the desired elements into their respective fields, or by selecting the little circle to right of the field and selecting the element from a list of all valid elements in the project, or by filling in the desired value for primitive types Now we can access these fields from any instance of the script, though it is still a good idea to check if they are null, in case of errors made when setting up the UI, or exporting your prefabs To access or update these properties we just use these references public void updateVersionText(string newText) { if (m_VersionText != null) m_VersionText.text = newText; } public void setInitialToggle(bool isOn) { if (m_OrbitToggle != null) m_OrbitToggle.isOn = isOn; } One thing to note about setting Toggle states like this, whenever you change a Toggle’s isOn field, it will trigger that Toggle’s Listener Events, so anything you or anyone else has attached to this Toggle will be triggered. One way of getting around this is to have a Bool set to False while you are doing the initial setup. Then set your Toggle Listener to not do anything when the Loaded Flag is False, after the setup is complete you can set the Flag to True. Now to add listeners to Toggles and Buttons. The Unity UI attaches listeners to Unity Events triggered by a Button, Toggle, Slider, etc… Any public method that meets the requirement of that particular event can be added as a listener. public void OrbitPanelToggle(bool isOn) { if (!loaded) return; if (m_OrbitToggle == null) return; //Turn on Orbit Panel } public void OrbitDragToggle(bool isOn) { if (m_OrbitDragToggle == null) return; //Turn on Orbit Panel drag state } public void OrbitSettingsToggle(bool isOn) { if (m_OrbitSettingsToggle == null) return; //Spawn Orbit Panel settings window } public void myButtonListener() { //Methods with no arguments can be added to any button or to any other element if the argument does not need to be specified } public void mySliderAlpha(float alpha) { if (!loaded) return; if (m_AlphaText != null) m_AlphaText.text = alpha.ToString("P0"); //Change panel background alpha } Inside the Inspector tab for any Unity element with a Unity Event there is a section for adding listeners, you can add more by selecting the plus button on the bottom. Add a listener by first selecting an object for the little box below the “Runtime Only” box This will be the object that contains the script which has your listener You can either drag the object into the box, or select it from the list using the little circle In this case we select the parent Panel object, which has our example script The specific method is then selected in the box on the right This box has a list of all components attached to the selected object Select the Example script which will then show a list of all public methods that can be chosen Now we can just basically repeat these steps wherever needed. If you need access to an object somewhere, just add a reference to it in your script and assign it in the editor. If you need more listeners, just add them. More complicated behaviors will be explained later. One thing to note about Buttons, Toggles, etc, is the Transition and Navigation elements in their Inspector tabs. Transition refers to how the element behaves in its different states Sprite Swap transitions mean that different sprites are used for the normal state, when the mouse is over the object, or for when the mouse is clicking on the object Color Tint just adjusts the color tint for the attached Image element in those same states Animation uses Unity Animations to design more complex behaviors This is something that will be covered more later, but KSP generally uses Sprite Swap transitions, and for this example these states will all be setup in-game Navigation refers to keyboard navigation and is generally something that should be deactivated When you click on an object it will become the “active” object until you click somewhere else unless Navigation is disabled This means that the element will remain in the Highlighted state Section 4: Assembly Communication: Now that we have our UI hooked up to the Unity Assembly we need to get it communicating with the KSP assembly. There are probably several ways of handling this, but I’ve been using Interfaces in the Unity Assembly to handle it. The basic idea is to create one or more interfaces with the methods and fields needed to send information between the two assemblies, then we add those interfaces to objects in our KSP Assembly. This basically serves two purposes, the interface us used to set the initial state of the UI when it is created, using information from KSP, this could be persistent data, or just anything that can be altered at run time, like the name of a vessel. And it allows for the UI elements to make changes on the KSP side, by setting persistent data, or triggering a KSP-related function. In our last example we had a window with several Toggle elements, a Text field, and a method for the alpha Slider, so the interface contains what is needed to setup those elements, and to transfer data to the KSP Assembly for persistent storage. namespace BasicOrbit.Unity.Interface { public interface IExample { string Version { get; } bool ShowOrbit { get; set; } float Alpha { get; set; } } } The Version string is read-only, since the UI does nothing to alter it The Show Orbit bool is read to set the initial state, but can also be set by the UI when clicking on the Toggle The Alpha float is also used to set the initial state, and needs to be updated when changing the Slider value So now we can set the UI’s initial state by implementing our interface on an object in the KSP Assembly and calling the Setup method. private IExample exampleInterface; public void setInitialState(IExample example) { if (example == null) return; exampleInterface = example; if (m_VersionText != null) m_VersionText.text = example.Version; if (m_OrbitToggle != null) m_OrbitToggle.isOn = example.ShowOrbit; if (m_AlphaSlider != null) m_AlphaSlider.value = example.Alpha; if (m_AlphaText != null) m_AlphaText.text = example.Alpha.ToString("P0"); loaded = true; } public void OrbitPanelToggle(bool isOn) { if (!loaded) return; if (m_OrbitToggle == null) return; if (exampleInterface != null) exampleInterface.ShowOrbit = isOn; //Turn on Orbit Panel } public void mySliderAlpha(float alpha) { if (!loaded) return; if (exampleInterface != null) exampleInterface.Alpha = alpha; if (m_AlphaText != null) m_AlphaText.text = alpha.ToString("P0"); //Set panel background transparency } Note that we store a reference to the interface for use by the listener methods Make sure to set the Loaded Flag to true if needed The code for actually turning on the separate panel, or changing the background image’s alpha channel can all be handled within the Unity Assembly Section 5: Turning it On: Now we have to be able to actually turn on the UI. To do this we need a reference to the UI Prefab and a button somewhere to trigger the UI. We can let KSP load the AssetBundle that was exported from Unity, anything with a .ksp file extension should be loaded, or we can load it ourselves (KSP won’t load it twice, so there is no duplication of resources doing it this way; you can also just remove the .ksp extension to hide it from KSP’s asset loader). I’ve been loading it myself, it works find, and it allows me to open it immediately upon starting KSP. If we need to process or update all of the prefabs it can be useful to load in all of the prefabs, but to generate a window all you really need is the primary prefab (anything that will be created directly by the KSP Assembly). We can store prefabs as references in our Unity scripts by adding a serializable GameObject. A simple KSPAddon can be used to manually load and store a reference to the prefab: [KSPAddon(KSPAddon.Startup.Instantly, true)] public class BasicOrbitLoader : MonoBehaviour { private static GameObject panelPrefab; public static GameObject PanelPrefab { get { return panelPrefab; } } private void Awake() { string path = KSPUtil.ApplicationRootPath + "GameData/YourMod/PrefabFolder"; AssetBundle prefabs = AssetBundle.LoadFromFile(path + "/your_bundle_name"); panelPrefab = prefabs.LoadAsset("Your_Prefab_Name") as GameObject; } } Then we need an object that implements our interface; this can get its data from a persistent settings file, or a scenario module, from in-game data, or any other suitable source: [KSPAddon(KSPAddon.Startup.Flight, false)] public class BasicExample : MonoBehaviour, IExample { private string _version; private static BasicExample instance = null; public static BasicExample Instance { get { return instance; } } private void Awake() { instance = this; _version = "Assembly Info Version"; } public string Version { get { return _version; } } public bool ShowOrbit { get { return BasicSettings.Instance.showOrbitPanel; } set { BasicSettings.Instance.showOrbitPanel = value; } } public float Alpha { get { return BasicSettings.Instance.panelAlpha; } set { BasicSettings.Instance.panelAlpha = value; } } } To open the window we just need to setup a toolbar button as normal and use the Open function to start the UI: BasicOrbit_Example window; private void Open() { if (BasicOrbitLoader.PanelPrefab == null) return; GameObject obj = Instantiate(BasicOrbitLoader.ToolbarPrefab, GetAnchor(), Quaternion.identity) as GameObject; if (obj == null) return; obj.transform.SetParent(MainCanvasUtil.MainCanvas.transform); window = obj.GetComponent<BasicOrbit_Example>(); if (window == null) return; window.setInitialState(BasicExample.Instance); } The arguments in the Instantiate method are used to set the window’s position and rotation The rotation is set to zero Here the position is set using the Toolbar Button’s GetAnchor method There are several canvases that could be used, but in general the MainCanvas will probably be best We can get a reference to the UI script since it is attached to the newly instantiated object The window can be closed by either hiding it or destroying it You can hide the window by setting its gameObject.SetActive(false) This can be used if the window has a complicated initial setup and you don’t want to keep repeating that This should be enough to get a basic window into KSP. Future sections will go over dynamic UI generation and UI layouts elements, specific UI features, KSP-style UI elements, and using TextMeshPro for all text elements. They should also, hopefully, be much shorter, since they won’t have to cover so much information. If you want to setup your UI with the legacy Unity GUI style elements, they are available for free on the Asset Store. You will need to import them into Unity and use the Sprite Editor to set the Splicing lines properly (so that the images stretch to fit whatever size is needed). After that you can simply drag the sprites into your Image elements wherever needed.
  11. Tutorial covers the basics of the UI, how the timeline works, as well as examples & tips to make things far easier to work with. Breaking Ground - Robotics Tutorial on Youtube
  12. So... I heard there was going to be tutorials in KSP 2! Saw some pictures of them, and I thought the cartoony style reminded me of one specific YouTuber explaining guy. I think that the voice actor who does Kurzgesagt: In a Nutshell should voice the tutorials. If anyone has ever watched one of those videos, then you will know what I mean.
  13. When I installed it correctly, it started make parts looks weir is it a a bug or I install too many mods (Real plume, Tundra exploration, Kerbal planetary base, and scatters)
  14. Here you will find all the necessary tools as well as tutorials, guides and snippets of info relevant to KSP modding. If you come across any information that you think should be added to this thread please post a reply here. Before you start: 1. Please visit the General Add-on Affairs forum and check out member requests. It's better if you make something that people actually want. 2. Read all links marked as "Important" ================ Table of Contents ================ 1. List of Free and Open Source Tools 1.1 Modding Tools 1.2 Other Tools 2. Not-So-Free Tools 3. Modding Reference Material 4. Modding Information Links 4.1 Common Problems and Solutions 4.2 General Information 4.3 Modelling 4.4 Texturing 4.5 Licensing 4.6 Video Tutorials 4.7 Text Tutorials 4.8 Miscellaneous 4.9 Unity/Configs 4.10 Addons For Modders 4.11 Plugin Development =============================== List of Free and Open Source Tools =============================== MODDING TOOLS Unity - Game engine This is where you rig, animate, and otherwise set up and compile the part files. Important - YOU MUST USE UNITY 4.2.2 or earlier. Newer Unity versions do not support legacy animation which are still used by KSP.Part tools: 0.23 Part Tools thread Other FloatCurve Editor - A unity package for visualising and designing FloatCurves for your configuration files. Also read the KSP floatCurves guide MBM to PNG texture converter - Unity script. Can convert whole folders including subfolders I recommend you read the 0.23 and 0.20 Part Tools posts by Mu, they are very informative. If you're having trouble unzipping on a Mac, look here. Blender - Full featured 3D editor. Used for creating the 3D assets and animating. Can also be used for texturing, rendering stills and video. Blender Plugins: Taniwha's mu Import/Export MultiEdit - Allows you to edit a group of separate objects as a single object. Very useful for unwrapping multiple models on a single texture. KSPBlender - Blender addon for importing .craft files. Blender Bundled Plugins: You might need to enable these in Preferences. Print3D - Calculates volume (useful for judging resource capacity) and surface area of mesh objects, as well as does other things useful if you're making models for 3D printing. GIMP - Raster graphics editor The best free program for creating textures and other graphics. GIMP Plugins: NormalMap plugin - Generate normal maps from greyscale bump maps. Krita - Raster graphics editor Includes some very useful tools not found in GIMP. Check out the features page .MaPZone - Procedural texture generator Very powerful texture generator with a compositing interface DDS4KSP - KSP to DDS texture converter Use this to allow KSP to load textures faster. Inkscape - Vector graphics editor UV layouts exported from Blender can be edited with this. It's also useful as a secondary program for textures if you need to create precision curves. xNormal - Texture generator You can generate normals maps, and various masks for your textures. NVidia Melody - Normal map baking program Bake normal maps from high-poly models. NormalMap-Online Online tool for generating Normal, Displacement, Ambient Occlusion and Specular maps Meshlab - Mesh editor You can use this to convert various mesh types. Notepad++ - Text editor Use this for editing configuration files. Change language to python to identify bracket pairs and collapse/extend modules. Hexplorer - Hex editor You can use this to spec the components of compiled mu files. DO NOT EDIT FILES unless you know what you're doing. OTHER TOOLS Open Broadcaster Software- Video capture / Streaming Self explanatory. You can use it to showcase your mod. Lightworks - Full featured video editing program Edit and add effects to your videos. Requires registration, however it really is the best free editor out there. ================ Not-So-Free Tools ================ Quixel dDo - Procedural texture generator that adapts to the shape of your model. The old legacy version is free but it requires Photoshop, which is not free. Link is at the bottom. Direct link ======================== Modding Reference Material ======================== Blender Model Donation - Donate or download unused models started by other forum members. NASA 3D Resources - Copyright-free models and textures. Important. The models are too high poly to use directly. Linear aerospike MiG-105 Spiral photos Dragon RCS in action Kennedy Space Center - Lots of great photos of NASA vehicles. Shuttle flight deck and Shuttle lower deck interactive high-res 360 panoramas. Launch Photography - Various space- and spacehip-related photos. Air and Space Museum's Udvar-Hazy Center Nasa audio - For sound editors. Scroll down for links to huge archives of mission transmissions, rocket and shuttle sounds, and "sounds" of space phenomena. ======================== Modding Information Links ======================== COMMON PROBLEMS AND SOLUTIONS Invisible mesh / Models not updating Invisible mesh / Models too small Stack nodes not attaching Part with animation not loading Empty Resource containers have negative cost Rescaled models revert to original size Cannot edit/create emissive animations - Unity downgrade tutorial Infinite resource usage Curved geometry boolean operations and shader issues / Vertex normals issues - Whole thread is very worth the read. GENERAL INFORMATION Stock Parts List Part Modelling Guidelines - Out of date / almost never updated. CFG File Documention on the wiki Modding information page from before the forum wipe - Download of the old page MODELLING Kerbal EVA model hierarchy - useful for people who want to modify the Kerbal EVA model / animation itself Part orientations in the VAB, SPH, and Unity - Image Part scaling with rescaleFactor A rough model of a Kerbal for modelling reference Basic Blender tutorial for making a propellent tank - by Technical ben Triangle count for parts snippet Cylinder face numbers Lots of snippets, read the entire thread Kerbal stair-climbing ability: staircase step height KSP vs. Blender coordinate systems - by orson / MKSheppard; in essence, Blender uses Z+/Z- for up/down, but Unity uses Y+ and Y- instead TEXTURING MBM to PNG texture converter - Unity script. Can convert whole folders including subfolders MBMUtilities - Standalone converter. For single or groups of files. MBM to PNG or TGA; TGA or PNG back to MBM Intermediate Texturing Guide Intermediate Texturing Guide - Panels and Edge Damage Texture Format Information - Worth giving the whole thread a read. Important DDS Quick Guide - Important Please use DDS! Fixing texture seams (gaps in the texture on the model) Memory usage of textures Creating a normal map Normal map file naming - Very important with relation to memory usage Importing models, Generating UV's, Editing and Exporting to .DDS in Photoshop CS6 ext LICENSING All addons posted on any official Squad website must have a license - Forum Rule 4.2 License Selection Guide VIDEO TUTORIALS Twitch Broadcasts by RoverDude - Lots of videos showing the workflow for part modding from start to finish: Model and Art concept, modelling, animating, UV unwrapping, map baking, texturing stockalike style. Good comments + voiced thoughts. Tutorial: Unity and Part Tools Setup + Model/Texture Import, Setup and Export to KSP - video by Tiberion Series by Nifty255 - This covers the very basics. Vol. 1 Ep. 2 - Game Models and Textures - This covers proper model and texture setup in Blender, setup and exporting through Unity, and even goes into setting up animations. and - These two cover things on the programming side: modules, plugins, .dlls, etc. - How KSP saves and loads its data, from part configs, to ship designs, to entire game saves. Tutorials by nli2work Discussion thread for the following tutorials. - Exterior/Interior Unity setup; export to KSP; slight config error near the end. ~1hr - Error corrected and explained; External/Internal basic function checks ~15min - Spawning IVA in Unity; populating IVA with Props and Light ~35m - Internal Props; ~16min - Basic Engine setup; with Emissive, Gimbal, and Fairing - Engine setup with EFFECT{} Plugin Tutorials by Cybutek TEXT TUTORIALS Making a simple engine in Wings 3D, from start to finish. MISCELLANEOUS Official Unity tutorials Unity Layers and Tags KSP floatCurves guide - Important for many Part Modules Important A snippet on ISP and fuel density Creating a new resource Stock Parts Costs and Balance Spreadsheet for 0.24 FlagDecal, Docking port IDs, PNG Unity import bug Unofficial 0.25 modding info UNITY/CONFIGS Getting started Unity to KSP: A Detail Tutorial - written by Kerbtrek Part Tools 0.20, Blender, Unity and KSP - written by Cheebsta Example Config file for loading a .Mu file into the game - written by Tiberion TUTORIAL: Getting Started With Unity - written by Nutt007, includes a video for 0.15 Tutorial:Making and asset from start to finish Air Intakes Intakes for jet engines Intake area explanation Airlock (Actually a hatch, but it's called an airlock in KSP) Adding airlocks and ladders to parts - Airlock collider must extend beyond the ladder collider to allow the click menu. Airlock positioning 1 Airlock positioning 2 Airlock positioning 3 Animation Blender to Unity animation tutorial - written by Xellith Exporting an Animation from Blender Looped animation Anim Switch details for repeating animation in reverse Repeating animation in reverse - Old Start point in animation for VAB snippet Attach nodes (Radial attachment) Transform-based NODE{} - New better way. Requires srFix .Radial attach coordinates - Old way Tweaking attach nodes snippets - Old way Collision meshes Collision Mesh snippets Normal mesh use Exploding Kerbals Cargo Bays NoAttach tag - Prevents surface attachment for specific colliders. Contract Testing ModuleTestSubject Control Surfaces Creating a control surface Decouplers Decoupler modules Docking Ports Adding a docking node in Unity Stock Docking Port in Unity - Image Docking port IDs "Control from here" for docking ports - Useful if your part alignment is different from your docking port direction. Emissive textures Emissive tutorial - new thread - written by CardBoardBoxProcessor Emissive tutorial - old thread - written by CardBoardBoxProcessor Setting up an emissive on a light - Big pictures Stopping toggleable emissives showing up lit in VAB/SPH thumbnails Looping an emissive Throttle-response emissive snippet If you have problems with the latest Unity version Engines See Video Tutorials above first. [HOWTO] Airbreathing Engines in KSP 1.0 Quick how-to on setting up a thrustTransform for an Engine Snippet on thrustTransforms Unity hierarchy for Gimballing nozzles ModuleGimbal and ModuleJettison - config settings. Trouble shooting why an engine might not work Multiple nozzles Example - Unity package and compiled part with config. Engine Fairings See Video Tutorials above first. To make fairings in VAB/SPH thumbnail invisible, set the fairing objects tag to Icon_Hidden. You will need to create a new tag to do this. Example image of the tag Removing the fairings from stock engines See above for an example engine. Flag Decal Flag decal module Positioning the decal GameDatabase 0.20+ specific config extras IVA See Video Tutorials above first. IVA Tutorial - written by TouhouTorpedo - old? 0.17 IVA tutorial - I have no idea if this is still relevant, I've not tried to do any IVA's Alternate camera for IVA portraits Stock IVA orientation reference Ladders Adding airlocks and ladders to parts Landing gear Discussion of a WIP landing gear. Lots of useful information Stock Landing Gear in Unity - Image Landing gear snippets - Spread out through the thread Landing legs Animated Landing leg w/ suspension tutorial 0.22 Landing Leg module in Unity - Image Launch stability enhancer / Launch tower Launch Clamp How-To (Tutorial) FASA Launch Tower tutorial Lights Some tips for setting up lights Model definition Replacing "mesh" with "MODEL{}" Scaling attach nodes with MODEL{} Parachutes Stock Parachute in Unity - Image Components of a parachute RCS RCS Tutorial Rover wheels Wheel rigging, setup and fault finding - Video tutorial. Guide with Unity scene example Stock Rover Wheel in Unity - Image Changing wheel torque Science Science and mods! Solar Panels Stock Folding Solar Panels in Unity- Image Setting up suntracking solar panels Powercurve explanation Sounds Using EFFECTS nodes to play custom sounds How to get custom sounds to play without a plugin - Pre-0.23 info Stack nodes Transform-based NODE{} - Allows you to easily add nodes with transforms. Makes angled nodes easier to implement. Temperature Quick guide to temperature rules Textures and Shaders Adding a normal map Faking detail with a normal map Fixing unwanted texture transparency Unwanted transparent faces Potential fixes for incorrect shading PNG versus TGA loading time Welding Example of using 0.20+ MODEL{} modules to combine parts MODEL{} tutorial - Learn How to Weld! - written by johnsonwax - GONE! MODEL{} tutorial - Intermediate Welding and Part Scaling - written by johnsonwax Wings Wing creation mini tutorial ADDONS FOR MODDERS These addons extend the functionality available for mod creators and help with mod development Tools DevHelper - Bypass main menu to automatically load any saved game LoadOnDemand - Important. Loads textures as needed, reducing the memory footprint and speeding up load times without loss of quality. Not actively developed but community fix is available. ModuleMirror - Mirror symmetry for asymmetrical parts Part Icon Fixer & Tweaks - Rescales part icons in the VAB and SPH to more appropriate sizes. RCS Build Aid - Provides visual clues about ship movement under thrust from RCS or engines. Great for if you're making replica ships srFix - Important. A fix for the currently non-functioning NODE{} HINGE_JOINTs. Mods Adaptive Docking Node - Create non-androgynous docking ports or ones that attach to more than one port size/type. BDArmoury - Includes a .50 cal turret unity package as an example if you want to make your own weapons Community Resource Pack - Community-defined resources. Check in here before defining a new resource. Connected Living Space / Config How-To - API for inhabitable areas and passable/impassable parts. DMagic Module Science Animate - versatile plugin for science experiments Ferram Aerospace Research / Deriving FAR values for a wing using Blender Firespitter / Firespitter Module Documentation - various aircraft-related modules as lots of others. HotRockets! - Particle FX Replacement Infernal Robotics / How to make robotic parts - Create controllable robotic parts that rotate or translate. JSIPartUtilities - Let's you toggle meshes and colliders on and off, and other things Kerbaloons / How to make your own balloon part using KerBalloons - Create baloons Kethane - Majir restricts the use of some modules Modular Fuel Tanks - Create user-configurable resource tanks. Module Manager - allows patching of configs at runtime without overwriting OpenParticleEmitter - Kethane-derived alternate particles module. Source code only Open Resource System - Karbonite (An open Kethane alternative) uses this. Also see Community Resource Pack Raster Prop Monitor - Configure aircraft and spaceship monitors in IVA Real Fuels - Makes resources and their measurements based on real science. SmokeScreen - Extended FX plugin Texture Animation Util - Scrolls textures on a mesh randomly or smoothly. Toolbar - Add a visible toollbar button to your plugin PLUGIN DEVELOPMENT I would love someone with Plugin experience to point out helpful threads for this Add-on Posting Rules CompatibilityChecker - Source code for plugin authors to implement a checker that shows a message if their mod is incompatible with the user's version of KSP and/or Unity KSP API Documentation Official PartModule Documentation Starting out on Plugins KSP Plugin Framework - Plugin Examples and Structure - by TriggerAu, very recent and up to date Example plugin projects to help you get started - by TaranisElsu The official unoffical help a fellow plugin developer thread Wiki page on Plugins Creating your first module - on the Wiki Info on spawning objects and applying gravity - Includes example code, links to more examples, and some useful hints. How to animate a part with multiple animations? Great info on Kerbal transforms, bones, rig, FSM, states (ragdoll, idle, sumble, run etc) Some really good info on writing Unity CG shaders. Even if you're not going to write a custom shader yourself, it still gives you a great insight into what the various bits of the KSP shaders actually control and output. Info on loading and using custom shaders into KSP Misc Plugin Information Kethane Code Snippet for an incorrect installation warning. Public domain license.
  15. I wanted to share my complete series for KSP Made Easy. I want to help new playere start a science mode playthrough and teach them the techniques and skills ive gained after years of ksp. This series teaches new players how to build their first rockets, their first aircraft. Their first flight to mun, and minmus orbit, their first space station and their first mun and minmus landing. I wanted to make sure that there was a fresh tutorial for ksp, as I know the steep learning curve required. In this series, I do my best to not use complicated terms, explain everything the best I can, and show you the simplest, while not always the best, ways of getting to your locations. Each lesson builds upon the last. And before you know it, you are a ksp master. Come check out the series, let me know how I did, and share it with other new players to help them get started in this amazing game.
  16. KSP - Ultimate Tutorial This is meant to be a step by step guide for new players (but old players are welcome), updated for 1.10 and 2020. This is a WIP so the tutorial may not be complete. This is made to be the tutorial I wanted to find when I started playing. The progression of this tutorial follows the game progression. i.e Game Menu -> Difficulty -> Building a rocket -> etc. The full menu is in the spoiler. If you are looking at this while it is WIP, it will show you a proposed road map of what I will add. I am open to suggestions about adding topics, moving topics, and if you have something you want to add, PM me with the info. I will add it and credit you for the info. Also good places to go are the KSP discord, the KSP reddit, and the KSP wiki. Scott Manley and Matt Lowne also have good video tutorials if you are more interested in that. The forums have great information also, but if you are reading this, you probably have found the forums. EDIT: Also a good video tutorial can be found here.
  17. Hello ! Vous connaissez Kerbal Space Challenge ? ^^ Cette association que je préside vous propose de nombreuses activités sur le jeu KSP, notamment les Challenges qui ont lieu deux fois par an qui constituent une occasion unique de partage et d'émulation communautaire. Nous disposons de deux sites complets incluant pas mal d'articles et des forums, et qui disposent notamment du meilleur tuto francophone que vous puissiez trouver aujourd'hui Nous avons bien sur une présence sur les réseaux au travers d'un Twitter et d'un Discord super actif et bonne ambiance, rejoignez-nous vite ! Quelques liens pratique pour tout savoir et nous retrouver : - La FAQ de la bonne humeur pour TOUT comprendre à KSC ! - Les tutos KSP Suivez l'Guide pour tout maitriser du jeu ! - Le Discord pour bavarder avec plus de 300 autres passionnés ! - Le Twitter de presque 2000 followers qui n'attend que vous pour les atteindre ! - Tu veux voir à quoi ça ressemble un Challenge ? Assieds toi bien Voila voila ! Au plaisir de te retrouver parmi nous, n'hésite pas si tu as des questions :p
  18. Hello ! Je crois que je n'ai jamais présenté les Suivez l'Guide ici même Il s'agit à mes yeux et humblement des meilleurs tutos Fr sur le jeu que vous puissiez trouver :p J'ai en tout cas tout fait pour qu'il s'agisse d'une référence impérissable, aussi générique que possible, même dans quelques années. Les différents chapitres traitent en profondeur des sujets abordés, de manière aussi exhaustive et pédagogique que possible, mêlant les mots aux images, gifs et vidéos pour illustrer au mieux chaque aspect. Il est même question d'y trouver des Crafts et Save pour disposer d'un contexte commun et d'exercice d'application ! Ces quelques guides ne concernant pas que les débutants, loin s'en faut, la plupart des joueurs confirmés ne connaissant pas / n'appliquant pas le Gravity Turn correctement, si l'on parle par exemple de la mise en orbite J'espère que les chapitres disponibles vous plairont, et je suis preneur de vos retours ! https://kerbalspacechallenge.fr/category/tuto-guide/
  19. Collection of exampels for module manager "Why do I have to perform some experiments multiple times at the same location to max out my sciencegain?" When I asked me this question the Xth time, I started looking arround for a solution, and I found it: module manager. This neat little "plugin" allows you to write custom patches to change the behaviour of parts and some mechanics of KSP. With the help of the official Handbook I figured out a way to achieve my goal: Now, even this is a verry simple patch, it took me quite a while and some help from the community to figure it all out. So I thought for people like me I just post a few things I've done so far and just hope some others do the same to help everyone who wants to learn how to make custom patches. Here is another thing I did: If you need some help finding ideas or a parts name here are 2 usefull links: A basic one Click Me! and a more detailed, advanced one Click Me! It would be nice to see some things other people have done since thats what I'm looking for. So if you have something please share it (doesn't have to be a rainbow like mine) So the "rainbowthing" might have been a bit too much. However: IF you like to post some patches (and I hope you do) please do it in the following format: Give the thing a title, make that title bold and and set the font size to 16, then make a spoiler and put the code inside the spoiler. Awsome Example:
  20. I wrote a tutorial for running an Earth-Moon Shamrock Cycler using Kerbal Space. I used the RealSolarSystem package so this really is Earth-Moon, not Kerbin-Mun. Here are links to the Wiki page and video tutorial. I wrote this because when I become a space tourist I want to visit the Moon in the comfort of a big cycler cruise ship. Yes, I'm willing to wait a few years. Tutorial: Earth-Moon Aldrin Cycler - Kerbal Space Program Wiki youtube KSP Earth-Moon Aldrin Cycler tutorial The tutorials are based on the Shamrock cycler from Aldrin's recent paper: https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20160004674.pdf
  21. Three methods of orbital rendezvous 1. Direct Transfer - Uses some techniques previously illustrated by Snark here: https://forum.kerbalspaceprogram.com/index.php?/topic/189763-illustrated-guide-to-docking/ 2. Maneuver Nodes 8:26 3. Sphere of Influence 17:36 Efficiency Results (leftover): 1. Direct (1627 m/s) 2. Maneuver Nodes (1875 m/s) 3. SOI (2212 m/s) MODS: "ClickThroughBlocker" "ContractConfigurator" "ModuleManager" "Toolbar" "SCANsat" "Trajectories" "ZeroMiniAVC" "PersistentRotation" "InterstellarFuelSwitch" "KSPInterstellarExtended" "FilterExtensions" "PhotonSailor" "BetterBurnTime" "HideEmptyTechNodes" "InterstellarFuelSwitch-Core" "TweakScale" "CommunityResourcePack" "HeatControl" Music: “Algorithms” (edited for length with fade-in/fade-outs around cuts) Chad Crouch / Podington Bear soundofpicture.com License: https://creativecommons.org/licenses/by-nc/3.0/
  22. Ya hace tiempo quería hacer esto por aquí. Un lugar donde recopilar todos los tutoriales que hice y haré sobre Kerbal. Una miniatura con el enlace a cada uno y una breve descripción del contenido. Lo iré actualizando según realice nuevos. Un saludo y ojalá sea útil. 1- Cómo construir un avión con piezas básicas Tutorial en el que detallamos las bases aerodinámicas para construir un avión desde el principio con piezas básicas para poder volar. Hablamos de conceptos básicos como el centro de masas, el centro de sustentación y el centro de empuje. Esto nos permitirá hacer aviones a diferentes escalas aplicando estos mismos conocimientos. 2- Delta-V ¿Qué es eso? Explicación del Delta-V y para qué sirve. La base de Kerbal es entender el Delta-V. Nos permite saber perfectamente hasta donde puede llegar nuestro cohete. 3- TWR (thrust to weight ratio) ¿Qué es eso? Explicación del TWR y por qué es importante. El valor thrust to weight ratio nos permite saber si nuestro cohete tiene la potencia suficiente para despegar en diferentes cuerpos celestes. 4- ISP (specific impulse) ¿Qué es eso? Explicación del ISP y por qué debemos tenerlo en cuenta. Con el valor ISP de un motor podemos saber su eficiencia. Elegir un motor adecuado para cada situación es clave en Kerbal. 5- Mejorar 10 FPS a cambio de romper las físicas del juego Opción desesperada que nos permitirá aumentar los fotogramas por segundo en Kerbal modificando el reloj de cálculo de las físicas. Sólo recomendable cuando el rendimiento es extremadamente malo. 6- Instalar Mods fácilmente con CKAN Guía rápida de cómo instalar mods en Kerbal con el administrador CKAN. Solventando ciertas preguntas sobre mods a lo largo del vídeo. 7- Asparagus - Etapas de cohetes eficientes Una de las mejores formas de ganar eficiencia en un cohete es la distribución de las etapas con alimentación cruzada. Explicamos en detalle las ventajas de utilizar este sistema. 8- Docking - Cómo hacer un acoplamiento en órbita Hacer una acoplamiento entre naves es básico para explorar el sistema solar en Kerbal. Repaso rápido a cómo hacer una órbita, un encuentro y tras esto cómo acoplarnos en órbita. 9- Cómo añadir nubes en Kerbal De stock Kerbal no incluye nubes en los planetas con atmósferas. Detallamos cómo hacerlo con mods, de forma ligera para apenas afectar al rendimiento así como con mods más demandantes como Scatterer a cambio de una mejora visual importante. 10- Interceptar otros planetas y volver a Kerbin. Visitar las lunas de Kerbin es sencillo pero otros planetas es algo diferente. Repasamos cómo igualar planos orbitales, localizar la ventana de lanzamiento adecuada con el ángulo de fase y cómo utilizar a nuestro favor la trayectoria de nuestra nave. 11- Orbitar en Kerbal desde el principio y con piezas básicas El primer objetivo en Kerbal es poner algo en órbita de Kerbin. Al principio puede parecer complicado, pero con piezas muy básicas podemos llegar a la órbita sin necesidad de motores potentes ni cohetes enormes. 12- Llegar a la superficie de Mun o Minmus y volver a Kerbin, con piezas básicas Llegar por primera vez a la superficie de Mun es una grata experiencia y es sorprendente lo sencillo que resulta cuando utilizamos de forma óptima piezas básicas para la construcción de nuestro cohete. 13- Controles y atajos de teclado en Kerbal Un repaso a los controles y atajos de teclado en Kerbal, tanto para la construcción en el edificio de ensamblaje de vehúculos, así como el control de naves o kerbals tanto en tierra como en vuelo. Además en la descripción del vídeo quedan enlaces a los controles con mando para consolas. (Este vídeo es algo insulso y poco entretenido, después de todo únicamente son controles). PD: Me gustaría subtitularlos todos en inglés para que puedan llegar a más gente pero es un arduo trabajo. Por si alguien tiene mucho tiempo está abierta la opción desde Youtube para subir subtítulos. Simplemente es ir al vídeo en concreto y a la derecha de los iconos de like pulsando el icono de puntos (...) y seleccionando la opción 'añadir traducciones'.
  23. Hello, and welcome to the amazingly named thread where we post help and pics of stuff to build. it’s not like I’ve dug, but it doesn’t seem like anyone made this yet, so time to make it! while I don’t have any myself, I wanted to make a thread where people posted advice and tutorials centered around teaching. I want to make a place where people go around at teach, to name a few: launchers! Probes! Space station modules! Moar!! So go and teach, I guess
  24. I'm playing on ps4. When I do the 3rd tutorial, Intermediate Construction, the game gets stuck as soon as I enter the VAB. Wernher Von says enter VAB. So I enter the VAB. Then once inside he tells me about all the wonderful things we'll be building so, I hit the X button for the next screen. The screen blinks, it says "saving..." in the top right corner but nothing else. I can keep hitting X and it's just more of the same, blink, saving... nothing. I shut down the console, reinstalled the game, nothing works... please help.
×
×
  • Create New...