Author Topic: Merricksdad's Middledark Tileset  (Read 7876 times)

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« on: December 29, 2015, 10:12:42 pm »


               

I'm moving my Underdark set conversation to this thread to keep myself from burying the Granitelands tileset.


 


Here's the first screen shot from in game, using a simple texture applied to everything. This is the second 3x3 tile group which represents a bridge over or through something. It is not properly smoothed, and has no quality mesh features yet. Nor does it have any entryways.


 


ZnQUKp3.png


 


While playing around with a new 3x3 this morning (of a deep pit with circular ramp going down two floors), I came across a specific combination of gmax modifiers which gives a similar feel to this from ToEE


 


y1_GalebDuhr1.jpg


 


All it needs after that is some quality textures and it's good to go.


 


I am having some simple issues with the walkmesh. I must have not made sure the walkmesh was lined up, because there seems to be a seam on the z-axis, as well as x/y plane. I can't walk from tile to tile without using Debug + key. Somewhat annoying is all.


 


After having seen this in actual game view, I think a higher base wall needs to be given to all the tiles. This is 500cm, and I was planning to have height transitions be 500 as well. Now I'm not so sure. If I go double that with height, 500 transition is still good, and will look good.


 


I'm still torn on ceiling appearance. I want to definitely add ceilings, but because the rooms are all 3x3, only part of the ceiling will be revealed if I used fading tiles. Should I make the ceiling permanent? Or should I make it placeables? I might be able to get away with making a few common ceilings for all 3x3 rooms (up to 20 of them now), which can be made to fit ALL the rooms I have so far, even though they are different shaped around the border tiles.



               
               

               
            

Legacy_henesua

  • Hero Member
  • *****
  • Posts: 6519
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #1 on: December 30, 2015, 12:15:08 am »


               

Since the roof would be transparent when viewed from above, I would not sweat tile fade.



               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #2 on: December 30, 2015, 04:45:04 am »


               

Same room with basic tile finished. No placeable details present. You can see the doorway is a standard shape, but you can place any number of door inserts in that location, including a solid wall to cover the hole.


 


mUYbwnC.png


 


As mentioned in the other thread, these are the intended transition inserts:


  • No door, open large corridor

  • No door, open small corridor

  • Common wood and metal doors, small corridor

  • Secret door, looks like wall, can walk through it anyway

  • Secret door, looks like wall, on detect: changes appearance to obvious mechanical wall (actual type varies)

  1. rolls sideways into a slot

  2.    
  3. falls into slot in the floor

  4.    
  5. lifts up and locks open

I've used about a yard of space all around the walkable area as a slight ramp up and down. This softens all the edges, and gives the builder about a meter of work room around the edges of any cliff top, as well as cliff bottom. This also includes the outer wall bottoms.


 


I very likely won't be including any black backing on any of the tiles. This helps with being able to see through them from the back side, and may prevent other camera issues.


 


Like in SCL, I plan to have at least 2, normally 4, variety placeables for at least one location in each room. Anything a bridge can go over will have these options:


  • deep chasm, dark, and lined with jagged rocks

  • chasm filled with slow, flowing water

  • alternate cap causing a raised area instead of sunken area, to be covered with flowstone and cave spikes

  • alternate cap causing a solid raised area, similar to outer walls.

Where a right and left location exist on the same tile group, right and left locations will each have a placeable set. Placeables will be named according to tile group name. For instance, if the tile group is named BridgeRoom01, the placeables will be BridgeRoom01_01_01 for custom region #1, alternate #1. To make this super simple to use, the placeables will be centered on the parent group's center tile center point. Then you simply rotate it in 90 degree increments to set it to the desired orientation.


 


Unlike the Granite Lands tileset, with this one, I can release a room at a time, and add additional customizing placeables whenever I feel I have a few hours. With school starting in just two weeks, that is great news for me.


So here is the rundown of intended terrain types again:


  • Solid Rock (into which you place the prefab caves)

  • Small Corridor (connects rooms through solid rock)

  • Large Corridor (same as small one, but often has no visible ceiling, and can make height transitions)

  • Chasm (into which you place another type of prefab to be released later)

  • Chasm Bridge (connects chasm-space prefabs)

  • Dark Lake (non-walkable dark, rough water)

  • Lake Dock (like a corridor out onto the water)

  • Cavern (compatible with Rock, Chasm, and Water, as well as 2x2 prefabs with no outer wall)

All solid rock prefabs are made to fit into solid rock terrain, except a few. One 6x6 prefab opens into the dark lake for an interesting view. Another opens into open chasm with a waterfall. Another opens into open chasm with a height transition built into the rock face.


 


As mentioned, at least one 2x2 group is made to be placed into a user-constructed cavern terrain. This lets you set the shape and size of a "boss room" or use later prefabs which fit on a flat cavern floor, such as man-made structures, or an entire city.


 


I have no intentions of transferring OC underdark structures into this Middledark Tileset, but there is nothing stopping anybody from doing so.



               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #3 on: December 30, 2015, 04:49:50 am »


               

After I get a few of these completely finished, I have 8 more prefabs to build, some with underground rivers, others with fantastic magical locations. One with a waterfall coming down from the ceiling into a pool, and one with a shallow mud-swamp area in the center.



               
               

               
            

Legacy_YeoldeFog

  • Sr. Member
  • ****
  • Posts: 415
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #4 on: December 30, 2015, 08:08:30 am »


               

'<img'>  I need that tileset now!



               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #5 on: December 30, 2015, 02:29:19 pm »


               

Everyone needs some underdark once in a while!



               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #6 on: December 30, 2015, 02:35:21 pm »


               

Ok, so the texture used above is just one I randomly picked which was previously used as an under cliff texture on my mountain tilesets. For the middledark region, I actually want a more grayscale color, as this is supposed to be much deeper than your normal cave system. I'm also thinking to leave tiny cave elements like soda straws and popcorn to the Karst Caves variety of this set, where the rock is lighter and more banded.


 


I think I mentioned this elsewhere, but I want a lowerdark setting too, which is really alien looking, and super dark, like your torch won't even show you what it should, as if the plane of shadow is somehow interfering with reality. Down there, I also want to have lava and acid pool options, where normally you would just have water and pits.


 


At this point, I'm thinking that the majority of the lower and upper tilesets will just be recolors, and I'll then make a placeables set that matches the need for that set. These rooms are going to be so versatile, it should be just as easy to convert them to anything else doing these same changes again later. Others can certainly join.


 


As I mentioned, I'll probably release the tileset room by room, so you can make use of them immediately, or start making your own mods and placeables right away.



               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #7 on: December 30, 2015, 03:28:09 pm »


               

I haven't the time yet to make a video of how I make these, so let me just give a rough draft so you know.


 


I start by using the GMAX line tool. To create a base box, I first place my border verts using that line tool. One click at each 10m mark around the outer edge. * I'll discuss an alternate method later.


 


After my border points are plotted, I adjust those point individually to make sure they are at the proper locations. I ignore the actual position of the object, and focus more on making sure the points are at the proper locations. I can adjust the pivot later.


 


If you would rather fix the points via code, you can use this function on the selected object:



fn roundNearestInteger n = (
    (floor(n+0.5))
)

fn fixTileBoundaryPoints obj = (
   local n = numKnots obj 1
   for v = 1 to n do (
      local vert = getknotpoint obj 1 v
      
      vert.x = (roundnearestinteger (vert.x/500.0))*500.0
      vert.y = (roundnearestinteger (vert.y/500.0))*500.0
      setknotpoint obj 1 v vert
   )
   converttosplineshape obj
)

fn massFixTileBoundaryPoints = (
   for obj in selection do (
      fixTileBoundaryPoints obj
   )
)

massFixTileBoundaryPoints ()

Simply place the code in a new script window. Select the object to be fixed, and then run the script on that object.


 


*Alternately, you can create a plane object, with the proper number of cells (cols and rows) equal to the number of finished tiles you will have in this group. Position the shape where you need it, and verify the width and height is correct. Now with the shape selected, on the modifier panel, set to edges level, push the button that says "select open edges", and then click "create shape from edges". This will create a secondary object, so you can delete the first plane.


 


With your border shape created, make sure it is planar, and I also suggest aligning it to world zero Z. If you don't do this, sometimes the auto-fill mechanism will try to target the wrong verts, making some really strange shapes.


 


Now you are ready to draw your shape. Select the line tool again, and start drawing. I don't suggest making smooth curves, as this substantially increases the poly count, and generally makes a mess with later parts of this process. Be sure to close the spline shape. If you accidentally don't finish the shape, you can also merge splines, or weld line edges, to complete the spline. You can also continue the spline from inside that object's modpanel.


 


This first shape should be your outer wall. Use it like you are drawing your walkmesh, or otherwise the general shape of your floor inside your outer wall.


 


Now you can start drawing other shapes inside your first one. I use this region to draw the pits and raised sections. Again, simply draw closed splines, making sure not to cross segments with previous splines.


 


By the end of this step, you should have a general layout of your tile group as if you are looking at a pencil drawing. If your third level of splines is actually multiple objects, you should bind them into one object by using the attach command. If you don't do this, you will need to do a lot of work later.


 


Now, to create a 3D representation of that line set, select all the splines of your group, except the outermost border box. Clone all those shapes and leave them right where they are.


 


Select your outer border spline. On its modpanel, under "Interpolation", set the "Steps" to 0. This makes it so any smooth curves you might have accidentally made are reverted to point-point-lines. YOU WANT THIS.


 


Now with your border spline selected and fixed, attach a single copy of the next inner spline, and convert the combination to an editable mesh. This instantly fills in the space between the two splines without throwing faces outside the region.


 


Repeat the process as before, except select first the second copy of the second spline, and attach a copy of the next inner spline. Remember, you should have previously bound any level 3 splines into one spline previously. If you had not, then all additional splines will be covered over when you convert this region to a mesh. Don't forget to set your Interpolation steps to zero with each spline pair you convert to mesh.


 


Now that you have 2d objects created from your drawing, you need to attach them together. If you have not already done so, now might be a nice time to slip in a trick to adjust the actual location of the group. To do the trick, simply make another object and place it at your desired location. On a 3x3 tile group, I choose the centermost tile center position. So make a box or plane or something at that position. Then attach all the shapes you created from the splines. Now delete the element representing your position fixer object. Now all your shapes have that cheat object's position as their base coordinates. You'll still need to fix a bit of this later when you slice the tiles.


 


With all your shapes connected, switch to vertex mode and weld all the verts with threshhold 0.1. This will turn all your shapes into one continuous object, with each region being a selectable polygon.


 


To create your 3D structure, first select the outermost polygon region. This should be your outer wall section. Now extrude it up, locally, by whatever your intended wall height will be. If you find that extruding it up bends the wireframe inward or outward, you can use a more specific extrusion method by supplying this code in the listener:



fn extrudeAllFacesStraightUp obj d:500.0 = (
   local faceList = #{1..(getNumFaces obj)}
   meshop.extrudeFaces obj.mesh faceList d 0.0 dir:[0,0,1]
)

extrudeAllFacesStraightUp selection[1] d:500.0

*Note: to make this work on only selected faces, you need to modify this script slightly. I'll update it later.


 


This script forces the vector of extrusion to be exactly world-up. To extrude straight down, change d to -500.


 


Your second shape region should not need to be modified in this way. So select your third region and determine if you intended to go up or down with it. Run the script again, or use the mod panel to extrude the faces up or down.


 


If you want to create a cave tile which is similar to mine, use this to-do list:


  1. select all the polygons in your shape

  2.    
  3. move them to position Z 1000

  4.    
  5. select everything but the outer wall shape

  6.    
  7. extrude down 750

  8.    
  9. scale selected shapes to 105%

  10.    
  11. extrude down another 250

  12.    
  13. scale selected shapes to 85%

  14.    
  15. select individual pits regions separately

  16.    
  17. extrude down 500

  18.    
  19. scale selected shapes to 90%

  20.    
  21. repeat step 8 for all pits

If you scale a shape which does not have an average center of the tile group center, your scale will translate toward the average center. You can either use this to your advantage, adding noise to the finished product, or you can write a script to fix it if that is not what you want. I will tell you right now, if you are not scaling a perfect box, it will go skew, as mentioned.


 


If you scale a shape, like that on a 6x3 tile group, the long side will scale down or up much faster than the shorter side. If you don't want that, you can use a FFD box instead. I'd suggest just using a 2x2 and modify your wall change manually to your liking. Repeat for any extruded shape. I don't bother, and instead use these numbers for 6x3 tile groups:


  • First extrusion down: 102% scale

  • Second extrusion: 92% scale

  • Third extrusion(s): 90% scale

I find that those numbers also look good on 6x6 and 5x6 tiles. Anything not to your liking can be manually modified later.


 


Ok, now you have a basic 3d shape of your tile group. Next, you want to fix your edges. I suggest making your object a middle gray color. Now select all edges on the shape and make them visible using the modpanel command. Flip all the edges which might cause problems later, such as:


  • self clipping edges

  • too many edges from the same vert

  • two or more edges sharing almost the exact same path

  • regions where if you manipulate the shape just slightly, the edge will self-clip, or otherwise flip to point a face downward

I tend to use the outermost points on the mesh to calculate exactly where I want my edges to go. If I end up with a shape that a child could easily paint by numbers, then I am happy with it. No slivers. No thin long shards. The closer your triangle is to 90*45*45 the better.


 


To reproduce my smoothing techniques on your model do this list:


  1. select all edges

  2.    
  3. on the edges modpanel, push Autoedge with a threshold of 15

  4.    
  5. weld any verts which are nearer than 50cm

  6.    
  7. weld verts where your pits touch or nearly touch the outer wall

  8.    
  9. select edges at the lip of your pits, excluding those that are also wall edges

  10.    
  11. chamfer selected edges by 50 (or 100 if you want a wider transition)

  12.    
  13. check edges for self-clipping and adjust as needed

  14.    
  15. select edges around the outer wall base, excluding those that are also pit edges

  16.    
  17. chamfer selected edges by 50

  18.    
  19. check edges for self-clipping and adjust as needed

  20.    
  21. smooth all faces to group 1

  22.    
  23. select the outermost polygon (top of the wall)

  24.    
  25. smooth the wall top to group 2

  26.    
  27. Select all edges

  28.    
  29. redo Autoedge with threshold 15

Now your floor should be a single selectable polygon. Other portions of your tile group should also be easily selectable. You can now manually modify regions, such as under a bridge, or areas you want to trail off into darkness at the edge of a tile.


 


To get the whole thing to be one texture like I showed above, use the UV Coordinate Modifier : *MapScalar. I don't know if this is available on all max versions, but it shows up on my GMAX with NwMax installed.


 


 


I'll detail how to build walkmeshes from this setup further down. It has do do with that first set of vertices you built on the outer rim. Don't lose those verts.



               
               

               
            

Legacy_YeoldeFog

  • Sr. Member
  • ****
  • Posts: 415
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #8 on: December 30, 2015, 05:19:28 pm »


               


Ok, so the texture used above is just one I randomly picked which was previously used as an under cliff texture on my mountain tilesets. For the middledark region, I actually want a more grayscale color, as this is supposed to be much deeper than your normal cave system.




 


I really liked that texture and the color of the cave!


               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #9 on: December 30, 2015, 06:26:33 pm »


               

Well then, I'll just pack that texture too, and you can flip between the two at will '<img'>



               
               

               
            

Legacy_YeoldeFog

  • Sr. Member
  • ****
  • Posts: 415
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #10 on: December 30, 2015, 09:28:44 pm »


               


Well then, I'll just pack that texture too, and you can flip between the two at will '<img'>




 


*happydance* 


 


When can I get the tileset? '<img'>


               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #11 on: December 30, 2015, 09:51:09 pm »


               

Nowhere yet '<img'>  And it only has this one room so far, so it won't be very exciting if you could. Next I am going to do one of the height transition 3x6 tiles to make sure that looks good as is too. If not, I'll make another modification before continuing. Rather than having to modify a shitload of finished tiles.


 


I spent a few hours today working on some of the doors, since all the rooms are going to have at least one entry, if not 6. Another thing I am trying to do is standardize a door insert that I can just set inside of a square cut out, instead of having to physically cut every door hole on every tile, which is just terribly time consuming.


 


I also need to make sure that the height transition is going to line up correctly and work as expected before I continue. What I'm planning to do is just clone the base rock tile off for the entire of the height transition basic needs. Then I'll perform all the height transition magic within the tile groups, instead of letting users run wild with it. Most of the transitioning will happen within corridor runs anyway, as far as I suspect, but I do have rooms with 2 height transitions already built into them (just without the door openings cut out.


 


So back to doors: what I'm doing is cutting a standard hole in every tile group edge where a door would be (based on SCL rooms). All groups with doors so far only have doors at 2nd from edge tiles. So if the room is 3x3, there are maximum 4 doors, and each of the 4 doors is perpendicular to the tile center. On 6x3 tiles, long sides house two door slots, and short sides house one. 5x6 and 6x6 rooms are fairly specific, so they only have one normal exit, and sometimes one mid-tile exit which leads to another area.


 


I also started working on a group that should be able to make use of donut tiles. There is a method that lets you define a random tile within a larger group, and I'm trying to figure out if I can manage that donut hole tile AFTER laying the group. For instance, if I have a 3x3 group, and the center tile can hole one of three options, I want to be able to lay one of those options inside the center, or otherwise, hit erase on it repeatedly, until the desired donut hole shows up. The alternative is to produce a SET entry for all 3 options in the middle. I have a 6x5 tile group which is similar, but has 2 interchangeable regions. One is a floor design, like a summoning circle, while the other is a pulpit or sacrificial table.


Even if I can't do this with the post-place option, I am still doing it in a reasonable number of tiles by simply making two groups using the same tile indices, so I'm happy either way.



               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #12 on: December 30, 2015, 10:56:20 pm »


               

How about this 6x3 room with max 5 doors, a height transition ramp, and a pit?


 


4U9C1OE.png



               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #13 on: December 30, 2015, 11:44:33 pm »


               

I think I can get away with making just one shared tile for all the doors on almost all the tile groups. Very happy with that. Now to just move a few verts here and there and I should have two full groups to view hopefully tomorrow morning.


 


Also finding many other portions I can just simply skew a bit and turn them into much smaller tile groups. This should make pumping out the entire set very easy.



               
               

               
            

Legacy_MerricksDad

  • Hero Member
  • *****
  • Posts: 2105
  • Karma: +0/-0
Merricksdad's Middledark Tileset
« Reply #14 on: December 31, 2015, 02:51:00 am »


               

Second coffee tonight and working insanely on dissecting tiles from tile groups. So far, I found probably 20 concave corners I can save out separately, with near equal flat wall counterparts. I also found parts I can use as a chasm crosser, with and without bridges, much like a stream. It can end mid-tile, or recede into/under a wall. I also found enough parts to make a small collection of 2x1 corner entryways and interesting nooks. Still much of it will require some 2x2 and 3x2 sections. I think I can also do a 3x1 ramp, with both left and right sides, and a middle slope, which will allow you to make a really wide ramp, or otherwise build a room that continuously slopes down "forever", with or without pits on the sides.


 


But... time for some TV.