Page 1 of 2 12 LastLast
Results 1 to 10 of 20

Thread: Milkshape Tutorial

  1. #1

    Milkshape Tutorial

    First off, Milkshape is not free. It costs $35. Significantly cheaper and much more suited to low-poly modelling than most comparable software. There are plenty of tutorials available on it.
    http://chumbalum.swissquake.ch/

    I will be including a milkshape 3d file setup specifically for exporting to KSP that includes:
    http://www.captainslug.com/temp/ksptut.zip
    + Materials for your part and node_collider, with shininess, specularity, and other settings setup to closely match the in-game appearance of other parts.
    + Simple mesh showing part orientations relative to KSP
    + Textures used in tutorial

    Part One: Modeling


    1. First step is to create a basic shape. With cylinders you can specify the number of sides, how many stacks, and how to close the ends of the shape. Make sure to check 'Snap to Grid' so your part is scaled to be exactly 1 meter square. Left click and drag from one grind intersection to another.

    2. Now you need to Move your part precisely by entering the coordinates in the boxes so that its center of mass will be the same location as the origin (0,0,0 for X,Y,Z). Enter the coordinates then hit the MOVE button next to the coordinate entry fields. If your part went the wrong way, Undo, and change the affected direction to a negative.

    3. Now you can Scale your simple shape to the final size of the part you are trying to create. Here I am making a 3m x 3m x 0.25m cylinder.

    4. The Y axis indicator is in the way of something I need to select. So I can select it with the following options, then Hide it (CTRL + H).

    5. With the Y axis now hidden, I can use select By Vertex and Ignore Backfaces to choose the top surface of the cylinder.

    6. I'm going to make this cylinder into a ring, so I need to Extrude the top of the cylinder to add a stack to it. I'm going to enter a distance to extrude to, which will make moving it back to where it came from much easier later.

    7. With the top face Extruded, I can now Scale it. I don't want it to move along the Y axis when being scaled, so I have checked 'Center of Mass'.

    8. After moving the newly Extruded stack back down a precise amount to put it back at the same height where it came from, I can extrude again to make the inside of the ring.

    9. Now I can just Delete the top and bottom of the original cylinder.

    10. The inside and outside of the cylinder are going to make it difficult to select the next set of faces, so I'm going to select them and Hide them.

    11. Now I can select the top of the ring easily. First I'm going to make a Duplicate (CTRL + D) of it. Then I'm going to Mirror it from top to bottom. Now I have a top and a bottom side of complete the ring.

    12. Now I Unhide the inside and outside, select all verteces, and Weld them (CTRL+ W). However, the smoothing I end up with looks a little odd.

    13. If I assign the top and bottom of the ring to a different smoothing group, the ring looks a bit better.

    14. And if I regroup the ends of the ring, the inside, and the outside from eachother apart from each other then UV-mapping them will be much easier.
    [img width=50 height=50]http://captainslug.com/rej_2.gif[/img][img width=50 height=50]http://captainslug.com/rej_3.gif[/img][img width=50 height=50]http://captainslug.com/rej_4.gif[/img][img width=50 height=50]http://captainslug.com/rej_5.gif[/img][img width=50 height=50]http://captainslug.com/rej_7

  2. #2

    Re: Milkshape Tutorial

    Part Two: UV-mapping

    15. Select all of the Groups that make up the ring. Go to the Materials tab and select Material__25, then press Assign. tutorial.png, as shown, should be the image file loaded for that material.

    16. Press CTRL + T to bring up the Texture Coordinate Editor. Cylinders that you made from the Model tab will already have a good and usable mapping assignment. However the default assignment area covers the entire image, and we need to scale it down to just cover part of the texture.

    17. Click Move, then left-click the top left corner of the texture. This yellow crosshair indicates the current Origin coordinate.

    18. With the Origina coordinate placed, you can use Scale to shrink the texture mapping down to the area you want to cover.

    19. Select another Group from the drop-down box. Faces created through extrusion will not have a useful assigned texture coordinate. So you will need to select a Region of the texture, then Left-click and drag to create a Region on the texture. Select the orientation from the next drop-down box, then click Remap. The verteces/faces selected in the group will be remapped to fit that Region of the texture from the selected orientation.

    20. There are plenty of way to alter your texture map to get the most use out of a single image. But you haven't actually made the texture yet.

    21. You still need to make a wireframe template to draw your texture onto. To do this you need to apply a temporary flat color image as the texture file. A medium or charcoal dray works well

    22. Regroup all of the groups for the ring. Delete any extra meshes you don't want in-game. KSP loads the mesh faster with fewer groups anyways.

    23. Open the Texture Coordinate Editor again. Now that you have all of the faces in one group, you have a populated wireframe template. Take a screen capture of it, then paste and crop it in whatever software you are using to make your texture. Save it over the solid color texture, and reload the image file in Milkshape to confirm its alignment on the mesh.

    Now you can create your texture. Each time you save your texture you will need to reopen it from the Materials tab in Milkshape to see the changes.
    [img width=50 height=50]http://captainslug.com/rej_2.gif[/img][img width=50 height=50]http://captainslug.com/rej_3.gif[/img][img width=50 height=50]http://captainslug.com/rej_4.gif[/img][img width=50 height=50]http://captainslug.com/rej_5.gif[/img][img width=50 height=50]http://captainslug.com/rej_7

  3. #3

    Re: Milkshape Tutorial

    Part Three: Exporting to KSP

    24. Duplicating some of the steps from Part One, you will need to make a node_collider mesh from a simple shape, scaled to match your visual mesh.
    It will need to: have the '02___Default' material assigned to it, be a single group named 'node_collider', and be a convex shape in order to work correctly.

    25. Now you are ready to export your mesh into a part folder you have created for your new part. Name your folder without using underscores. It mush include a /texture directory in it (with a texture file in it). The part.cfg file that references the correct mesh and texture file names as well as having a unique part name will also be required.
    The orientation of your part in-game is affected by both the node parameters in the part.cfg, and the accurate interpretation of the node_collider in your mesh. Either being incorrectly loaded could result in your part loading out of the alignment you are expecting.

    26. You will need to define in your part.cfg file where your attachment nodes are. If the Scale in your part.cfg is set to 1.0, then you can get these location values directly from the mesh within milkshape. They appear in the lower left corner, or you can view coordinates of selected verteces by using Manual Edit from the Vertex menu, then check the box labels 'Show Only Selected'.
    If your part is scaled correctly it shouldn't be too hard to estimate these coordinates correctly. A stackable 1 meter tall part that is centered on the part origin will have a top node at 0.0,0.5,0.0 (x,y,z) and a bottom node at 0.0,-0.5,0.0 and the orientation for both nodes will be 0.0,1.0,0.0 (UpX, UpY, UpZ).

    27. Using the SDK Partlab provided on the KSP home download page, open your new part. As shown, this is what a part looks like if loaded with a wireframe template texture.
    If the part loads in the correct size and orientation without producing any significant errors in the upper dialog box, then you can move on to testing it in-game.

    28. Now you have to start possibly the most annoying part of the process. Refining the part.cfg file to get the part to actually do what you want it to.


    That about covers the basics
    There is a great deal about part.cfg files that I still don't understand. I can rarely get them to work perfectly the first time. And getting parts to interact with each other the way you want them to takes a lot of trial and error. This guide will at the least help you get through the creation of mesh files and UV-mapping.
    [img width=50 height=50]http://captainslug.com/rej_2.gif[/img][img width=50 height=50]http://captainslug.com/rej_3.gif[/img][img width=50 height=50]http://captainslug.com/rej_4.gif[/img][img width=50 height=50]http://captainslug.com/rej_5.gif[/img][img width=50 height=50]http://captainslug.com/rej_7

  4. #4

    Re: Milkshape Tutorial

    Absolutely lovely

    Working on my own part as I type this. I am having two issues though:

    1) The view controls on the 3D render view are... extremely sensitive to say the least. I was able to get it centered on the model with the snap-view-to command but zooming in and out jumps a mile a wheel click. Really annoying as I'm trying to check my textures up-close.

    2) I'm having serious issues with proper texture tiling, argh!

  5. #5

    Re: Milkshape Tutorial

    Quote Originally Posted by Frostiken View Post
    The view controls on the 3D render view are... extremely sensitive to say the least. I was able to get it centered on the model with the snap-view-to command but zooming in and out jumps a mile a wheel click. Really annoying as I'm trying to check my textures up-close.
    In the render view you have several options for zoom. Ranging from fastest to slowest: SHIFT + Mouse Wheel, Mouse wheel, or SHIFT + hold Left-Click and drag. CTRL + Left-Click drag in any pane will pan.
    Right clicking any pane gives you the options of 'Frame All' or Frame Selection'

    UV-mapping takes a great deal of practice.
    [img width=50 height=50]http://captainslug.com/rej_2.gif[/img][img width=50 height=50]http://captainslug.com/rej_3.gif[/img][img width=50 height=50]http://captainslug.com/rej_4.gif[/img][img width=50 height=50]http://captainslug.com/rej_5.gif[/img][img width=50 height=50]http://captainslug.com/rej_7

  6. #6

    Re: Milkshape Tutorial

    Thanks, Slug

    [spoiler][/spoiler]
    [spoiler][/spoiler]


    I'd like to take a stab at making a Minuteman III to accompany my most lovely W88 warhead, but that took me about 5 hours. Not to complain, but I don't think I have the kind of time it would take to create something as major as all the rocket stages and such - certainly not to any degree of complexity yet.

  7. #7

    Re: Milkshape Tutorial

    That's actually quite speedy for a first run-through. You'll only get faster with practice.
    The more shortcut keys you're familiar with and the more you understand how to use all of the functions together to get the shape you want the faster you'll be.

    But yes, modeling and texture are time-consuming.
    [img width=50 height=50]http://captainslug.com/rej_2.gif[/img][img width=50 height=50]http://captainslug.com/rej_3.gif[/img][img width=50 height=50]http://captainslug.com/rej_4.gif[/img][img width=50 height=50]http://captainslug.com/rej_5.gif[/img][img width=50 height=50]http://captainslug.com/rej_7

  8. #8

    Re: Milkshape Tutorial

    Next question - how would I go about adding in new triangles?
    [spoiler]
    [/spoiler]

    Here's my model. In order to get higher quality on the UV map, I want to add a few subdivisions by hacking it in three pieces.

    I tried using the 'Subdivide' options but I get something like this:

    [spoiler][/spoiler]

    Well, that has the vertices where I want, but I need them connected in a big 'ring', so I need to get an edge to go all the way around them. I tried using the 'turn edge' feature but I couldn't get it to work right, I have a really hard time selecting the proper faces like this... I have it in 'select faces' and when I just click one triangle, like 12 more randomly around the place select as well.


    Now I need to do the opposite - remove an edge. Here you can see a problem:

    [spoiler][/spoiler]

    What a waste of triangles. Obviously I should be able to remove those extraneous edges without impacting the visible model whatsoever. Shouldn't affect anything at all, really. So how the hell do I do it?

    I've tried google but even with 'milkshape' in the search I get results for every damn program scattered throughout...




    Finally - the big one - and this is probably a conceptual misunderstanding of how this all really works.

    [spoiler][/spoiler]

    This is what the underside of my model looks like. I painted a spherical bulge on it, but then I decided I wanted to make that 'bubble' an actual part of the 3D model. Now, obviously I can just drag a sphere into it, but how does this really work? If I drag a sphere, I can put it into the right position and maybe delete some of the extra bits, but it would be best if everything was snapped together, wouldn't it? I know modeling isn't like making an old Half-Life 1 .bsp map where gaps and orphaned edges cause it to explode, but doesn't that leave a bunch of unused triangles and make the entire thing really quite inelegant and ugly? How would I *really* extrude a semi-spherical bubble into there without it being a messy half-assed glob?

  9. #9

    Re: Milkshape Tutorial

    If it's another 'ring' of verteces you want, you need to use the extrude tool to add another stack. Select all of the faces above the 'ring' from which you want to extrude, then from the Extrude tool input the distance along the Y axis you want to extrude, then hit the Extrude button.
    You will have a new stack. The 'ring' of verteces can be scaled to the diameter you want, then you can move the verteces of the tip back to their original location.
    [img width=50 height=50]http://captainslug.com/rej_2.gif[/img][img width=50 height=50]http://captainslug.com/rej_3.gif[/img][img width=50 height=50]http://captainslug.com/rej_4.gif[/img][img width=50 height=50]http://captainslug.com/rej_5.gif[/img][img width=50 height=50]http://captainslug.com/rej_7

  10. #10

    Re: Milkshape Tutorial

    Thanks, that worked - so regarding this spherical protrusion... where the problem lies is that I have my protrusion modeled, but it's not 'part' of the actual model - this is going to complicate UV mapping to say the least. Is there a way to 'fuse' it into the existing faces so that they're subdivided amongst the actual faces that already exist?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •