Search the Community

Showing results for tags 'tutorial'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements
    • The Daily Kerbal
  • General KSP
    • KSP Discussion
    • Suggestions & Development Discussion
    • Challenges & Mission ideas
    • The Spacecraft Exchange
    • KSP Fan Works
  • 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
  • Community
    • Welcome Aboard
    • Science & Spaceflight
    • Kerbal Network
    • The Lounge
  • Making History Expansion
    • Making History Missions
    • Making History Discussion
    • Making History 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


Location


Interests

Found 81 results

  1. Janderklander

    ENCENDIDO SUICIDA

    Buenas: Además de las formas tradicionales de tomar tierra, tenemos el "Suicide Burn" o "Encendido Suidica", sólo apto para valientes con nervios de acero....
  2. 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.
  3. A basic Podracer with a building tutorial. Craft File: https://kerbalx.com/GillyMonster/Tutorial-Building-a-Star-Wars-Podracer
  4. I had been trying to to do this. I wanted a network of relay communications satellites so i could use unmanned vessels. As you know, you need a satellite network like this so the unmanned vessels always have communications with Kerbin. Anyway I also wanted the network of satellites evenly spaced out in their orbit. I couldn't find any tutorials on this that explained the math so I went ahead and derived the math myself and made a tutorial video for the community at large. So Enjoy
  5. Note to the moderator: I'm unsure if this is the proper forum. I looked around and it seemed best suited for this category. If you feel it belongs elsewhere, please move it with my blessing. Once the post is approved and has found it's proper home, feel free to remove all text with strikethrough. Or I'll edit later myself... whichever is more appropriate. Thanks for your work! My first post! Glad to be here. I've been a KSP player on-and-off since Early-Access. Amazing, how far it has come! I love the mods available... so much so that I often install too many or take a risk on outdated builds. Then, kablooey! KSP does something crazy or dies. That's when I need to figure out which mods are working properly, which one's can be patched by yours truly, which ones should get a bug report and which ones to remove entirely. I hope my method can help others quickly do the same. GL/HF/DIY! WHAT IS THIS FOR? This may be helpful if you are a DIY-minded soul and your game is crashing or acting strange and you want to try and identify which mod is causing it. For the proactive among us, this is even better for making sure all your mods' assemblies, classes, etc are properly loading and interacting with KSP... before you run into some unforeseen, mod-related "thing" 30 minutes into a mission. WHY NOT JUST LOOK AT THE CONSOLE? Of course, the quickest way to check for errors when they occur is to Alt-F12 into the console and read the latest entries. That doesn't always give you the full picture, though (and it certainly won't work is KSP has crashed). For that, you need to open up the infamous ksp.log file, located in your KSP base folder, to look for errors, warnings and surrounding information. Ksp.log is a standard-ish Unity log file; full of cryptic data that can nail down a point of failure such as a troublesome mod or a corrupt game file. WHY IS THIS BETTER THAN LOOKING AT KSP.LOG THE NORMAL WAY? Parsing a lengthy, black and white text file is not easy for most folks. So, I offer this quick tutorial on using AnalysePlugin to get at the relevent bits. A process i use at work as a devops engineer, analyzing all kinds of logs, to great effect. Like many application log files, within ksp.log you'll find irrelevant, deprecated entries and crucial data all are mixed up into one hot mess. Mining the log for the relevant bits can help you identify a troubled mod and get back to playing your game now, rather than guessing at which mod to remove or waiting hours or days for someone on the forum to analyse your ksp.log for you. This method helps you get to the relevant information within ksp.log quickly. With a little practice, this will also help you make more effective bug reports to mod developers here and on github. You'll be able to help them help you by pointing out relevant log entries, to assist them in debugging your issue (along with uploading a full ksp.log file as an attachment, of course!). OK, I'M SOLD! HOW DO I SET THIS UP? Download and install Notepad++ (NPP). If you already have it, great. (optional step: forget your default text editor ever existed ) https://notepad-plus-plus.org/download Once you have NPP installed, open 'er up and go to the "Plugins" drop-down menu, directly to the left of the "Window" menu, at the top of the application. You should see an entry in the Plugins drop-down called "Plugin Manager". If it's there, move to step 3. If not, get it here: https://github.com/bruderstein/nppPluginManager, install plugin manager and restart NPP. From the Plugins menu, open Plugin Manager and make sure it can access the Internet, so it can update the repository. After the repo has been downloaded, check the "Available" tab for "AnalysePlugin". This plugin will allow us to use a simple set of parameters to highlight and group the errors and warnings in ksp.log, making the job of finding problems much easier on the eyes and brain. Check the box next to AnalysePlugin and click Install. Restart Notepad++. Now, open your ksp.log file in Notepad++. From the Plugins menu, open AnalysePlugin. The screen will split into three parts. The top left is still the raw ksp.log file you just opened. At top right, the AnalysePlugin interface. The bottom is currently empty; this is where our errors and warnings will show. But first, we need to tell the plugin what to look for. How? Meet me at step 5! Welcome to step 5, thanks for coming. Now, you could tell the plugin what to look for manually...OR... load a pre-defined set of parameters instead! Let's not re-invent the wheel today; that would be very Kerbal-ish. So, here's a free wheel, pre-invented: a super-simple definition file for AnalysePlugin to find warnings and errors. It's something I plan to expand on by exempting deprecated Unity warnings and known irrelevancies... but this basic xml file suits our purposes for the moment. Grab "analyse_ksp_log.xml" from my OneDrive, here: https://1drv.ms/u/s!AtC9nbX8Ht1DmslnhdzUgFKSD9IiIg and save it. Save it to your KSP folder, Notepad++ folder or anywhere you like... just be able to get to it for the next step. Go back to Notepad++ and look at the AnalysePlugin panel. Under "Visualization" you'll see a group of nine buttons, three down and three across. The top-right button says "Load"; click it. A file open window appears. Navigate to wherever you saved analyse_ksp_log.xml. Select it and confirm. Now you should see a few entries in the AnalysePlugin's search grid, where once it was empty. Head back to the same group of nine buttons - at bottom-right, click on "Search". Eureka! The bottom panel should now be filled with grey and red lines. Our gold in the mine, so to speak. Grey/Yellow indicates a Warning, Red/White is an error. The plugin has also bookmarked each line in the raw ksp.log. Nice. (You can make the text in the bottom panel bigger or smaller with Ctrl+MouseWheel Up/Down - this works in the top panel also.) NOW WHAT? When you click on an error or warning in the bottom panel, the top panel will scroll to that entry in the log, so you can look at all the information surrounding it and get an idea of what happened. This is insanely useful for figuring out what's actually going on in regard to a particular log entry. Errors and warnings are a start but, often there will be critical information related to a problem in the surrounding entries. DOES KSP NEED TO BE SHUT DOWN? Nope! This process is great for troubleshooting in real-time. You can perform some actions in the game, switch to Notepad++, hit search on the plugin and see if there were any errors generated by your actions. For best results in real-time, open the KSP console, select debugging on the left-side menu and place a check in the box next to "Immediately Flush Log File To Disk". Remember to turn this off when you are done as it may affect performance if KSP is constantly logging direct to disk. SO. MUCH. GREY. AND. RED! Keep in mind, not every warning or error is a problem that needs solving. For instance, if you have a mod with wheel parts like Airplane Plus you may see wheelcollider warnings that are erroneous and can be ignored. Some KSP errors are strictly Unity boilerplate stuff and can be disregarded. For example, you may see a false-positive anti-aliasing error that is deprecated by Unity but, has not yet been removed. Some mods include assemblies or configs to work with other mods... mods you may not have... those might throw a dependency warning or other error when they do not find the other mod, which is fine. Remember, even with this method, there is still some work to be done on your part to learn what is of concern and what can be disregarded. Google is your friend. Duck Duck Go is family I WANT MORE INFO ON THE BOTTOM PANEL! If you want to see "LOG" level entries in the bottom panel along with the ERR and WRN entries: go to AnalysePlugin, in the grid, place a X in the box on the top row, next to "[LOG". Be advised that LOG WRN and ERR are not the only prefixes in ksp.log. The bottom panel is not the full picture of what's going on. Treat it like an index. HOW ELSE CAN I USE NOTEPAD++ WITH KSP? A user-defined language file for Notepad++ by forum-member genericeventhandler is useful in conjunction with this process, if you decide to take the next step and dive into some of your mod's .cfg files. It makes those easier to read by properly coloring comments, delimiters and common keywords. He explains how to use it in his post, linked below. If you have any Notepad++ related issues, Plugin Manager issues, etc... please go through those support channels before posting here. This post assumes that if you want to analyse your own ksp.log file you are also good to install applications and manage plugins. My OneDrive will be active forever if I have anything to do with it... and I do... but, if the OneDrive link to analyse_ksp_log.xml is not working, do let me know. Here's a dropbox mirror, just in case: https://www.dropbox.com/s/sa460qo72jstxwf/analyse_ksp_log.xml?dl=0 I'm an infrequent visitor but, I have turned on notifications, in case anyone needs a clarification. I'm not a ksp.log analyzing service... there are plenty of folks on the forum who can help you with that. This is a self-help post. Happy analyzing!
  6. 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 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 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.
  7. 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 means that communication between the two assemblies will be difficult. 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.4.3) is using Unity 2017.1.3p1 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). 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.
  8. Xvar - Planes on Other Planets Variation Highlights: Collaborative/friendly competitive opportunity for real time flight data comparison between students on adjacent machines both in cases of flying on the same planet or on different planets (easier & more engaging than printing flight reports for comparison ;-) using the EDU flight recorder to improve/change flight. Mission Editor: Condition triggers, Menu flow & button naming style built to be one example useful to inspect when going through TG mission building tutorial. A Topic to share mission building help tips, details, fun, & further variations of 3 related KerbalEDU Missions at these links. NOTE: these were built in KerbalEDU 1.3.1 I have not yet tried them in 1.4.5: Original: by TG Rami Variation: Xvar: Flight Recorder & Improved Menu, Story, Internals, etc DRAFT Variation: WIP: Xvar: FAR compare original rocket sledge with one adjusted for FAR aerodynamics model mod (NOTE: this version was built in 1.3.1 & has at least one broken menu link I need to fix & I have not yet run it in 1.4.5 with the FAR Continued backport): X FAR Planes on Other Planets EDIT V4.sfs .craft files: Rocket Sledge Kerbin.craft FAR Rocket Sledge Kerbin BALANCED.craft Specific changes in Xvar - Planes on Other Planets: preset* EDU Flight recorder, relevant 'idea sparks' story line, explosive feedback draws attention to significance of velocity at impact: (turned off joint & part 'safety cheats') smoother menu flow, easier to follow event/button labeling system 'under the hood' in case you would like to learn mission editing from or modify this mission (*note: currently only some of the flight recorder parameters are available to preset in the mission editor.) Specific changes in Xvar - FAR Planes on Other Planets: above changes plus, added a 2nd rocket sledge tuned for the FAR aerodynamics model placed next to Rami's original one so the difference in flight characteristics can be observed & explored added 2 function tools to the FAR sledge in case you want to track custom data in the flight recorder Mission use TIPS:
  9. linuxgurugamer

    Mod Adoption Tutorial

    A forum user, @Murdabenne requested that I share how to do an adoption of a mod. So, last week I showed an adoption while on Twitch Stream, and have finished writing up the steps here. The video is available at the end of the OP. These instructions and the files are available on Github: https://github.com/linuxgurugamer/KSP-Build-Scripts/releases/tag/0.0.1 They are all licensed using the GPLv3 This process has evolved over time; the first mods I adopted didn't use these, and each one was a customized setup. As time went on I developed this process, with the following goals in mind: Consistency Repeatability Ease of setup Easy to follow While not perfect, they do the job for me. Occasionally I run into a mod which has an odd layout or setup, which can usually be dealt with by rearranging folders, or some other minor changes. This discussion will not be going into any issues about coding or bug fixing,etc. These scripts are based on the following directory layout: modmaindir |-> GameData |-> ModDir |-> Plugins |-> Sourcedir The GameData should contain all files needed for a release Abbreviations used VS - Visual Studio IDE - Integrated Development Environment Overview and Dependencies These scripts are based on the following directory layout: modmaindir |-> GameData |-> ModDir |-> Plugins |-> Sourcedir The GameData should contain all files needed for a release Overview and Dependencies Dependencies These instructions are based on using Microsoft Visual Studio 2017 Community version, available here: https://www.visualstudio.com/free-developer-offers/ The 7Zip packaging program is required for the final packaging, available here: http://www.7-zip.org/ The JQ program is required to parse the JSON version file, available here: https://stedolan.github.io/jq/download/ Overview Part of the process involves adding a file, AssemblyVersion.tt, to the codebase. This file is called a "Text Template", and is used to create the AssemblyVersion value which is then stored in the final DLL There are two batch files, deploy.bat and buildRelease.bat. The "deploy.bat" used to copy the DLL to the GameData directory, and then to copy the complete release to a test install. The "buildRelease.bat" is used to create the final zip file for release While the packaging program can be changed to an alternative (with appropriate changes to the "buildRelease.bat" file, the JQ program is required and not replacable. The assumption is also made that the mod is downloaded and ready to be worked on. Instructions 1. Create the GameData folder if it doesn't exist If it doesn't exist, then copy the latest release of the mod into the GameData folder 2. Find the .version file (if it exists) and copy it to the top level directory. If it doesn't have a .version file, create one in the top level directory 3. You can either copy the AssemblyVersion.tt to the main mod folder, or create a new TextTemplate in the project (using MS Studio) and do a copy/paste operation. If you copy it over, you will need to add the file to the project in the IDE 4. Edit the AssemblyVersion.tt file, update the following line: string versionfile = @"CompletePathTo.version"; Replace the "CompletePathTo.version" with the path to the .version file. 5. Remove or comment out the following line from the file AssemblyInfo.cs (usually located in the "Properties" folder inside your C# project): [assembly: AssemblyVersion("1.0.0.0")] 6. If there are any Pre-build steps in VS, copy them to a save place and delete them. 7. If there are an Post-build steps in VS, copy them as well 8. Add the following to the Pre-build event command line. This line is based on using Visual Studio 2017, installed on the X drive: set textTemplatingPath="%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\texttransform.exe" %textTemplatingPath% "$(ProjectDir)AssemblyVersion.tt" 0. Copy the two files, deploy.bat and buildRelease.bat to the main mod folder 10. You need to update the deploy.bat and the buildRelease.bat with the following values: H to point to your test KSP install: set H=R:\KSP_1.3.1_dev GAMEDIR to the name of the mod folder: set GAMEDIR=xxxxx GAMEDATA to point to the GameData folder: GAMEDATA="GameData" VERSIONFILE to the name of the .version file: VERSIONFILE=%GAMEDIR%.version In most cases, the VERSIONFILE is built from the GAMEDIR, but some mods use a different name 11. For the buildRelease.bat, you have to update the following as well: If existing, LICENSE to the license file: set LICENSE=License.txt If existing, README to the Readme file: README=ReadMe.md Set RELEASEDIR to where you want the zip file: RELEASEDIR=d:\Users\jbb\release 12. If you want to use a different program than 7z, change it in the next line. If you do, you will have to change the options to the zip program at the end of the file: set ZIP="c:\Program Files\7-zip\7z.exe" 13. In the IDE, right-click on the Solution in the Solution Explorer, and select "Add -> New Solution Folder", give the folder a name SolutionItems 14. Right-click on the SolutionItems folder, and select Add -> Existing item..., add the two files just copied and the .version file 15. Add the following to the Post-build event command line, replace the "xxxxx" with the complete path to the top level directory of the mod: start /D xxxxx /WAIT deploy.bat $(TargetDir) $(TargetFileName) if $(ConfigurationName) == Release ( start /D xxxxx /WAIT buildRelease.bat $(TargetDir) $(TargetFileName) ) 16. Make sure the .version file has the correct values. 17. Now, set the Visual Studio configuration to Debug, and do a test compile. 18. If all is correct, it will compile the code, copy the DLL to the destination folder, and then copy the complete release to your test KSP installation 19. Finally, change the VS config to "Release" and rebuild the mod. This time it will add the step to pack up the entire release and leave it in the RELEASEDIR I did an online stream when I used most of this to adopt a small mod, you can watch it here:
  10. A replacement for stock engine particle FX. If you are tired of seeing the same old effects, HotRockets is for you! Note: SmokeScreen + ModuleManager are required dependencies. Download the legacy version here (compatible with KSP 1.1): Download HotRockets Note that HotRockets is primarily my set of replacements for stock engines. I no longer support FX packs for mod engines, but you are able to use the HotRockets assets for your mods. Many mods now make use of HotRockets assets to improve engine FX; some will add support for mod engines, and some have additional features for stock and mod engines such as resized plumes or easily added preconfigured effects. Mods using HotRockets art assets Kerbin Shuttle Orbiter B9 Aerospace Space Shuttle System Realplume Realplume stock configs Mods with HotRockets support for new engine parts Vens Stock Revamp License: HotRockets Art Assets: http://creativecommons.org/licenses/by-nc/4.0/ Powered by SmokeScreen + ModuleManager(by Sarbian): http://opensource.org/licenses/BSD-2-Clause Screenshots of HotRockets effects in-game: -------------- Basic guide for getting custom particles functioning in the game The method for getting custom engine FX working is fairly simple with the new system, but unfortunately was not covered by an official tutorial on the forum. This will be a small guide for getting them working in game and it will leave the details of the effect up to you. Note: the effect being animated like a heat effect is not necessary with the ModuleEnginesFX system. 1) Game objects Create an empty game object at the origin that you will use for exporting. This will have a partTools component on it that you will use to write the .Mu file to your FX folder. Create an empty object as a child of the exporter object. This object will have the KSPParticle Emitter script on it. I call mine 'emit'. This allows you to easily tweak the position of the effect within the actual exported object. I also make an additional object and name it smokePoint so I am able to move the smoke transform away from the flame transform, but this is not required. 2)Texture Create a new material for each effect you make. This will ensure you don't overwrite the properties of another effect you have. I work with all of my effects in one unity scene by duplicating exporter objects and changing what I need to, so once I duplicate an effect, I create a new material in Unity and add a texture to it. Assign your material to the particle effect using the "Material" property on your KSPParticle Emitter. To create the appearance of a glowing flame, you will need to use the KSP/Particles/Additive shader. Create a 256x256 or smaller image file with alpha that you can use for the effect. Creating the actual image file is fairly straightforward if you look at the current files being used, but I will say that for a transparent additive effect even your strongest colors must have extremely low alpha, almost making the effect invisible. To create a smoke effect, you will want to use Alpha Blended instead of the additive shader. 3) Parameters on the KSPParticle Emitter This is how you will control the style of the effect you make. It will most likely require a lot of small changes and reloading the game to see your effect, because it will not look the same in Unity. So enjoy experimenting =). A couple important ones: Simulate World Space - this parameter, if unchecked, will keep your effect local to the transform it's on. This is how you create a flame that looks like one cohesive effect, and not something that sprays in every direction or curves. While you would use this for smoke, having an effect with the box checked in addition to one without it will cause HUGE errors in the current version of KSP, and is the reason my effects use stock smoke right now. Nothke and I spent tons of time trying every method to get around it, but a plugin or fix by Squad seems to be necessary, and I am not a plugin creator. Energy - the lifetime of your particles. With the current system, this seems to be one of the parameters along with growth that can only be changed in the Unity editor. Emission - amount of particles emitted. Use as low an amount as possible while achieving the effect you want. I have used ranges near 150 or as high as 350 for my FX. Shape - controls the shape of the emitter, mine use Ellipsoid. Local Velocity - you will want at least 10+ velocity on Z for a fast looking effect. Most of the other parameters are something that just needs be be experimented with to get the style you want. Try animating the color of your effect, and lowering the alpha as it progresses through each color. Shadows - all of my effects have Casting and Receiving unchecked. When you think you have the parameters set the way you want, select the PartTools object and click "write" to export the .Mu file and texture to your chosen folder. 4) Game configuration file For adding an effect into the part config for an engine, I will typically comment out each line of the old effects, preserving them if needed, then highlight the following lines in the config MODULE { name = ModuleEngines thrustVectorTransformName = thrustTransform and paste this to replace them: EFFECTS { powerflame { MODEL_MULTI_PARTICLE { name = flamethrust modelName = MP_Nazari/FX/flamestandard transformName = thrustTransform emission = 0.0 0.0 emission = 0.05 0.99 emission = 0.75 1.21 emission = 1.0 1.25 speed = 0.0 1.70 speed = 1.0 1.65 } AUDIO { channel = Ship clip = sound_rocket_hard volume = 0.0 0.0 volume = 1.0 1.0 pitch = 0.0 0.2 pitch = 1.0 1.0 loop = true } } powersmoke { PREFAB_PARTICLE { name = flamethrust2 prefabName = fx_smokeTrail_light transformName = smokePoint emission = 0.0 0.0 emission = 0.05 0.0 emission = 0.075 0.25 emission = 1.0 1.25 speed = 0.0 0.25 speed = 1.0 1.0 localOffset = 0, 0, 1 } } engage { AUDIO { channel = Ship clip = sound_vent_medium volume = 1.0 pitch = 2.0 loop = false } } disengage { AUDIO { channel = Ship clip = sound_vent_soft volume = 1.0 pitch = 2.0 loop = false } } flameout { AUDIO { channel = Ship clip = sound_explosion_low volume = 1.0 pitch = 2.0 loop = false } } } MODULE { name = ModuleEnginesFX //engineID = rocketengine runningEffectName = powersmoke directThrottleEffectName = powerflame thrustVectorTransformName = thrustTransform Edit the path to any effect files, change effect properties or add modules as needed. -For the method to add this to an existing engine with ModuleManager, see the actual config file included with HotRockets. -Note that powersmoke and powerflame are simply what I wanted to name my effects for flames and smoke. You can create your own effect name. -If you use two flame particles in one effect, give them each a unique entry under "name" -Remember to make the thrustTransform in the effect match the transform you want in the engine. -EngineID is used for multiple-mode engines, check the rapier config to see the setup for that. -Emission curves within each effect: you may have seen curves used in a few other modules when modding KSP. This is also fairly simple. The first number is the level of engine power, the second is the percentage of emission/speed/etc divided by 100. I believe that covers everything needed to get a custom engine effect working.
  11. I am pretty new in the modding community and i couldnt find good tutorials for making IVA's. The only thing i know is that you need a model for the outside and one for the inside. What would interest me is : - How do you make the inside - How do you manage it in Unity (parenting etc.) - What cfg scripts do you need - How do you integrate mods like [JSI/A.S.E.T/MAS/NearFutureProps] It would help if you could make a tutorial like this I know there are some guides on how to do it on the forum but they are either very old or just confusing. Thank you for your help IceTitan
  12. Hi, here is my KSP Mission builder tutorial series for KSP Making History expansion. Here I will be covering how to create missions, how to edit mission parameters, test etc Episode 01 - Simple Rescue Mission (Basics) Episode 02 - Pre-made Craft & Part Failures Episode 03 - Adding Flavor with Catch All Nodes Reserved for future use
  13. maculator

    Module manager exampels

    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:
  14. I've been trying to re-size a few specific parts, so far with no success. I downloaded Tweakscale, but the documentation included with it is not very extensive. I've searched for tutorial videos, but all the ones I've found so far are just brief reviews saying how great it is... I'm confused. Do I need to insert the proper Tweakscale module manually into each .cfg file of the parts I want to resize? Is there something about the recent updates (1.4.1) that's blocking the functionality that's supposed to be happening? Is there a tutorial somewhere for someone who is essentially a monkey coder (=can copy what else is there and follow patterns, but have no deep understanding of it)?
  15. As I'm studying landing gears for AirplanePlus, I dug through piles of pieces of information in the forums and searching through KSP coding through google as well because of the lack of proper documentary for it. Here's a concise visual and textual guide to the compilation of my knowledge, hopefully made easier than longer texts and covering almost everything needed to make basic deploying landing gears What you need: -Have a 3D Modeling Software -Create the model -Make sure it has proper model hierarchy Put it in Unity and here are the pictures: We will use two models from my mod. It might seem cluttered but the important colors are pink and yellow. Do not be confused by the different global orientations of the two models. It only suggests that it will determine which is front in KSP but the wheel will have different front than the global. --- Once exported, part configs come next: That's basically gist of the landing gears. Here's for the mirroring of the assymetric parts: Note that mirrored parts ALSO mirror FXModuleLookAtConstraint and lights making it impossible to have proper Drag Braces and Lights on Asymmetric Landing Gears. And I spelled Asymmetric wrong in my mod. I can't believe this. So what are you waiting for, download my mod now make your own landing gear now! --- If I missed anything, or you need to know anything, don't be afraid to ask. I only included the basics, mostly. Step by step tutorial for landing leg:
  16. I collected a few "good to know" items for players starting out, maybe there are also some things for more experienced players in here:
  17. Hi there, i am quite new to this game. did not find yet - maybe somebody helps me here: i can not click on the orbs of a vessel to create maneuver plans or align orbits. (pilots Level? Development of a buildin?) i saw a youtube video and bought the game imidiate. The wiki-page for the Career mode is (only english) very lets say "short"... There are many things i figured out the hard way and much more i don't know. 1) Something i missed when i did not read all hints (maybe there was no hint) that i should take a look at mission control to accept missions if i am able to do them. I really run out of money before i randomly found that small building. 2) I would not like to cheat or do stupid things "just because they give most science". Some science-runs on kerbal might be better done with an airplane rather than with a rocket - it is really hard to aquire a stable flight with a rocket but with enough parashutes you can touch down with a small craft and even make the EVA science or any mission with < 10000m targets. (and for groundtargets, you can roll arround between the the 3 objectives)
  18. I'm wondering how to construct a Kraken Drive, or a glitch device to harness physics bugs to generate a nonzero force on a vessel. It must be small enough to fit somewhat-comfortably in a (closed) Mk2 long cargo bay. I'm really looking for a rough tutorial than a prebuilt thing. Also, don't link me to the wiki page about it, it didn't help at all
  19. KnedlikMCPE

    Video tutorials

    This is where you can post video tutorials for ksp. My new tutorial for newbies
  20. (I'll teach you how to make that) Introduction This is a step by step guide to creating, exporting, and editing a skybox to make it ready for KSP. I made my first skybox mod the other day and several people wanted me to make a tutorial on how to make skyboxes in Space Engine. I haven't found any other tutorials on the subject so I guess I'm making one. Step 1: Download Space Engine Go here to download the latest version of Space Engine. Space Engine is a free game that simulates the universe. It includes real and procedurally generated stars, nebulae, and galaxies. Step 2: Finding a location in Space Engine You can either fly around (w, a, s, d, to move, q and e to rotate, scroll wheel to change speed, left mouse to pan) or use the search button to search for a specific star, nebula, or galaxy that exists in real life. For this tutorial I will be making a skybox of the Crab Nebula, but you can choose your own location. To go to the location, hit "Go to". Step 3: Positioning Once you've found a location, you will want to position yourself in the place you would like your skybox. I recommend aligning yourself with the galactic plane so it is flat across the center of the screen. You can move inside a nebula as well. Here is what my screen looked like from within the crab nebula: Step 4: Settings There are a lot of different settings in Space Engine. To access settings, press escape -> settings -> graphics. The settings we will be focusing on are overbright and desaturate dim stars. You can play around with other settings, but these 2 settings mainly control how many stars are visible in your skybox. Lower levels of overbright = less visible stars and higher levels of overbright = more visible stars. If you want LOTS of stars in your skybox, 50-60 is a good number for this setting. I also frequently change the overbright setting to get the desired effect. The next setting is desaturate dim stars. Higher values of this setting make all but the brightest stars white and colorless. Lower values of this setting make the dimmest stars have slight color. It's a subtle difference, but personally I prefer to leave this in the lowest setting possible. That way when we edit the image later we get a more colorful skybox. Here are my settings: You can always change these to you liking. Step 5: Exporting Once you have your desired settings, we will export our skybox. Press escape -> editor -> export skybox. In the resolution box, you will put 4096 if you want a 4k skybox, but you can put whatever resolution you want. You should to save it as a .png. Leave the alpha box unchecked. Here is what my export screen looked like: When your ready to export, hit export. This may take a few minutes. Next, navigate to your Space Engine folder. By default (on windows), it is C:\SpaceEngine\export You should have something that looks somewhat like this: You can open up the pictures and see if you're happy with them. If you want to make changes, just go back into space engine, change what you want to, and re-export. WARNING: every new export will override the old files. If you want to keep your exported images, move them to a new folder before exporting again. Step 6: Preparing for KSP To actually change the skybox in KSP, you will need to install the latest version of Texture Replacer Replaced. You can't just put these pictures into KSP yet. First you need to change the names so Texture Replacer can read them. Rename the files as follows: Rename sky_neg_x to GalaxyTex_NegativeX Rename sky_neg_y to GalaxyTex_NegativeY Rename sky_neg_z to GalaxyTex_NegativeZ Rename sky_pos_x to GalaxyTex_PositiveX Rename sky_pos_y to GalaxyTex_PositiveY Rename sky_pos_z to GalaxyTex_PositiveZ Now you should have something that looks like this: Now let's test it. In your KSP folder, navigate to Gamedata -> TextureReplacerReplaced -> default Copy your files into the default folder and boot up KSP! In theory, you now have a beautiful skybox: However, Space Engine isn't perfect and it looks like some of the sides of our skybox are in the wrong place! This happens sometimes when you export from Space Engine. It only seems to happen sometimes, but it isn't hard to fix! In this case, I renamed: GalaxyTex_NegativeY to GalaxyTex_PositiveY and then GalaxyTex_PositiveY to GalaxyTex_NegativeY You may need to move 1 of them out of the folder temporarily because windows doesn't accept 2 files with the same name in the same folder. Then you need to rotate the GalaxyTex_PositiveY. To do this, right click on the picture, click edit with photos, crop and rotate, click rotate twice, done, save. There is some trial and error to get the right rotation with this one. Just rotate, boot up ksp, and try again. Sometimes there will also be seams in your skybox where you can clearly see the edge between 2 sides. The fix for this is re-exporting the skybox from Space Engine. Now let's boot up KSP again! In theory all the sides of you skybox are lined up with no seams. If there are no problems with your skybox so far, you can move onto the next step. Step 7: Photo Editing Now here is where you make your skybox more interesting. You can play around with photo settings to get the desired effect and make your skybox pop! You can use Photoshop or even the default Windows photos app! I will show how to do it in the Windows photos app because I don't have much experience with Photoshop. You will right click the photo and click edit with photos. Then click adjust. There are little arrows next to light and color. Click those to bring down more options. Now here is where you just play around with photo settings. There's no particular guide for this part, just experiment and create something amazing! I do recommend dragging the color slider all the way to the right for a more colorful skybox though. These can make your skybox truly unique. Make sure to use the same adjustments for each photo though, otherwise it will look quite strange. Always keep a copy of the original photos in case you mess up with the adjustments. Step 8: Screenshots and Sharing! Take some screenshots of you complete skybox! If you're feeling up to it, you can release it as a mod on Spacedock, Curse, and The Forums. Make sure to read the add-on posting rules first. Here is the finished product of this tutorial: This skybox will be available for download HERE with my other skyboxes. Thank you for reading! I hope you learned something. I look forward to seeing what you can make! Be sure to post your creations down below! If you have any questions, feel free to ask me in the comments.
  21. I'm new at this game and it was really fun until I got to the docking training. I can't for life clear this stage. Struggle to get the interception markers correct and if I get them correct I will never ever get near the stranded ship, maybe I see it and then everyhing goes really wrong. I follow the guide point to point but no luck at all. Right now I feel that this is the most money wasting game I ever paid for. I know it will be hard to dock but to clear a training session? What will motivate me to continue playing this game if I can't even clear the trainings... Can someone give me a step by step tutorial on how to solve this stage?
  22. I need a tutorial on how to build Kraken Drives in the versions mentioned in the title. If someone has a download that'll fit inside a mk2 cargo bay, that would also be acceptable
  23. 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.
  24. (I'll teach you how to make that) Introduction This is a step by step guide to creating, exporting, and editing a skybox to make it ready for KSP. I made my first skybox mod the other day and several people wanted me to make a tutorial on how to make skyboxes in Space Engine. I haven't found any other tutorials on the subject so I guess I'm making one. Step 1: Download Space Engine Go here to download the latest version of Space Engine. Space Engine is a free game that simulates the universe. It includes real and procedurally generated stars, nebulae, and galaxies. Step 2: Finding a location in Space Engine You can either fly around (w, a, s, d, to move, q and e to rotate, scroll wheel to change speed, left mouse to pan) or use the search button to search for a specific star, nebula, or galaxy that exists in real life. For this tutorial I will be making a skybox of the Crab Nebula, but you can choose your own location. To go to the location, hit "Go to". Step 3: Positioning Once you've found a location, you will want to position yourself in the place you would like your skybox. I recommend aligning yourself with the galactic plane so it is flat across the center of the screen. You can move inside a nebula as well. Here is what my screen looked like from within the crab nebula: Step 4: Settings There are a lot of different settings in Space Engine. To access settings, press escape -> settings -> graphics. The settings we will be focusing on are overbright and desaturate dim stars. You can play around with other settings, but these 2 settings mainly control how many stars are visible in your skybox. Lower levels of overbright = less visible stars and higher levels of overbright = more visible stars. If you want LOTS of stars in your skybox, 50-60 is a good number for this setting. I also frequently change the overbright setting to get the desired effect. The next setting is desaturate dim stars. Higher values of this setting make all but the brightest stars white and colorless. Lower values of this setting make the dimmest stars have slight color. It's a subtle difference, but personally I prefer to leave this in the lowest setting possible. That way when we edit the image later we get a more colorful skybox. Here are my settings: You can always change these to you liking. Step 5: Exporting Once you have your desired settings, we will export our skybox. Press escape -> editor -> export skybox. In the resolution box, you will put 4096 if you want a 4k skybox, but you can put whatever resolution you want. You should to save it as a .png. Leave the alpha box unchecked. Here is what my export screen looked like: When your ready to export, hit export. This may take a few minutes. Next, navigate to your Space Engine folder. By default (on windows), it is C:\SpaceEngine\export You should have something that looks somewhat like this: You can open up the pictures and see if you're happy with them. If you want to make changes, just go back into space engine, change what you want to, and re-export. WARNING: every new export will override the old files. If you want to keep your exported images, move them to a new folder before exporting again. Step 6: Preparing for KSP To actually change the skybox in KSP, you will need to install the latest version of Texture Replacer Replaced. You can't just put these pictures into KSP yet. First you need to change the names so Texture Replacer can read them. Rename the files as follows: Rename sky_neg_x to GalaxyTex_NegativeX Rename sky_neg_y to GalaxyTex_NegativeY Rename sky_neg_z to GalaxyTex_NegativeZ Rename sky_pos_x to GalaxyTex_PositiveX Rename sky_pos_y to GalaxyTex_PositiveY Rename sky_pos_z to GalaxyTex_PositiveZ Now you should have something that looks like this: Now let's test it. In your KSP folder, navigate to Gamedata -> TextureReplacerReplaced -> default Copy your files into the default folder and boot up KSP! In theory, you now have a beautiful skybox: However, Space Engine isn't perfect and it looks like some of the sides of our skybox are in the wrong place! This happens sometimes when you export from Space Engine. It only seems to happen sometimes, but it isn't hard to fix! In this case, I renamed: GalaxyTex_NegativeY to GalaxyTex_PositiveY and then GalaxyTex_PositiveY to GalaxyTex_NegativeY You may need to move 1 of them out of the folder temporarily because windows doesn't accept 2 files with the same name in the same folder. Then you need to rotate the GalaxyTex_PositiveY. To do this, right click on the picture, click edit with photos, crop and rotate, click rotate twice, done, save. There is some trial and error to get the right rotation with this one. Just rotate, boot up ksp, and try again. Sometimes there will also be seams in your skybox where you can clearly see the edge between 2 sides. The fix for this is re-exporting the skybox from Space Engine. Now let's boot up KSP again! In Theory all the sides of you skybox are lined up with no seams. If there are no problems with your skybox so far, you can move onto the next step. Step 7: Photo Editing Now here is where you make your skybox more interesting. You can play around with photo settings to get the desired effect and make your skybox pop! You can use Photoshop or even the default Windows photos app! I will show how to do it in the Windows photos app because I don't have much experience with Photoshop. You will right click the photo and click edit with photos. Then click adjust. There are little arrows next to light and color. Click those to bring down more options. Now here is where you just play around with photo settings. There's no particular guide for this part, just experiment and create something amazing! I do recommend dragging the color slider all the way to the right for a more colorful skybox though. These can make your skybox truly unique. Make sure to use the same adjustments for each photo though, otherwise it will look quite strange. Always keep a copy of the original photos in case you mess up with the adjustments. Step 8: Screenshots and Sharing! Take some screenshots of you complete skybox! If you're feeling up to it, you can release it as a mod on Spacedock, Curse, and The Forums. Make sure to read the add-on posting rules first. Here is the finished product of this tutorial: This skybox will be available for download HERE with my other skyboxes. Thank you for reading! I hope you learned something. I look forward to seeing what you can make! Be sure to post your creations down below! If you have any questions, feel free to ask me.
  25. cratercracker

    How to draw abstract art. (tutorial)

    Hey careless forum! How is it going? Maybe you know me by my collection of abstract art. If you are not familiar with it here is the link- LOL So after you've seen what you are going to learn now, lets begin working. Class 1, Topic 1.- Babysteps. So, now, you will need to find MS Paint. (sorry i don't know whether there is paint in Mac, but if there is do your best) After you've found Paint, lets begin with very simple task: 1. Choose any color you want in Pallete, which you will find in the right corner. (except entrirely black or entirely white) 2. Find button (close to pallete, a bit more to the left), there will be 4 sizes of lines. Pick the 3 pixel size. (you can acknowledge the size by hovering over it) 4. Find ''Figures" button, it is somewhere in the middle, just a tiny bit to the right. Now lets find rhombus (flipped square), place it in the middle of the picture. Then, using simple strait lines,lets make the grid. I won't explain it, i will just say two things: it makes stuff 3d, just copy it. Now lets paint it. Now i will give you a clue how to use light and shadow. By your IMAGINATION place somewhere (in the corner, down,up) a light emmitter. Take you base color and make 4 versions of it: one brighter than the base color, base color itself, a little bit darker than base color and the darkest one. (not entirely black, just darker) Find the right coloring tool. (i don't remember how is it called, it is just a picture of tin can with paint spillt out, sorry) Now place the color in such order: Brighter- closer (to light emmitter) Darker-Further. Here is what you're supposed to get: That is your first drawing! Congratullations if you made it so far. Class 2 Topic 1- Void Voids are great decoration to any drawing, they can be used as atmospheres of planets, special effects and if you are an abstract artist it is a little, yet great way to show something in 3D. Due to technical difficulties, I am able to show you only the end result. Sorry. So, currently, we need to create another drawing, then we need to paint the whole background black. Now, lets put something into the center, it can be absolutely everything, just not very big, probably as big as our previous drawing scaled down to 1/2 of its previous size. Now to the drawing.. Lets choose a certain color and make a square out of it, make sure it is far enough from out object in the center. (Make sure the color is bright enough) Lets put another square, witch is a little bit smaller than the previous one, make sure they are close to each other (20 millimeters) Paint the space between them, it should be colored the same color as the squares are. Then, make a few (6 or more, or less) variations of the color that are darker than the previous. Conduct the same operation until you will end up with absolute darkness. You should get something like this: (The central thing is unnecessary) If it will have enough response, i will make another lesson. POST YOUR THINGUS