Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

[RELEASED] Super Tilemap Editor

Discussion in 'Assets and Asset Store' started by CreativeSpore, Feb 21, 2016.

  1. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Yes, it supports procedural generation and it's really editing the tilemap in real time.
    The number of tiles depends on many thing like memory and the time spend to generate a tilemap.
    It uses only and integer to store the tile data, but it also uses a MeshFilter and MeshRenderer component for each chunk of 60x60 tiles. It will update the animates tiles of the visible chunks only, and will render also only the chunks visible to the Camera, so in performance you can have a big map if you want.
    I don't have a demo version of the tool, but you can check some demos made with Super Tilemap Editor:
    And here you can see an example in real time of a procedural generation of a tilemap in real time.
    https://twitter.com/CreativeSpore/status/728244635546624001
    https://twitter.com/CreativeSpore/status/762669372443914241
     
  2. ryanzec

    ryanzec

    Joined:
    Jun 10, 2008
    Posts:
    696
    @CreativeSpore I wanted to update to the beta version 2017.2 however now unity have a built-in TimeMap object that conflicts with yours. I know 2017.2 is still in beta but I was curious if they was any simple things I could do get to supertile map editor to work with 2017.2?
     
  3. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Hi there,
    In previous versions there was a harmless warning about the conflict, but I've been testing and find out, the editor freezes when pressing play.
    Fortunately renaming the class was not making the tilemap to miss the reference to the previous component.
    I will submit right now a new version with a fix for this, but until it is published, the way to fix it is just renaming the file and class Tilemap.cs to STETilemap that will be the new name for this class.

    These are the steps to fix this issue in Unity 2017:
    1. Rename Tilemap script to STETilemap
    upload_2017-9-28_12-53-23.png
    2. Rename the class selecting the Tilemap name and pressing Ctrl+R Ctrl+R (twice) in Visual Studio or Right Click -> Refactor -> Rename...
    upload_2017-9-28_12-52-53.png
     
    Last edited: Sep 28, 2017
  4. daltonspillman

    daltonspillman

    Joined:
    Sep 14, 2017
    Posts:
    5
    Don't mind the text below: the manual can be found in the Documentation folder after you install the asset.

    Hello @CreativeSpore,
    I am trying to access the manual linked at http://bit.ly/21hOwGX, but I am getting a "File not found" from Dropbox.
     
    Last edited: Sep 29, 2017
  5. ryanzec

    ryanzec

    Joined:
    Jun 10, 2008
    Posts:
    696
    @CreativeSpore Well I tried that and while it does seem to run and not crash Unity anymore I do get this error a bit in the console:

    which references the code:

    Code (CSharp):
    1. ParentTilemap.UpdateMesh();
    in the:

    Code (CSharp):
    1. OnValidate()
    method.

    My reasoning for wanting to update to the latest beta was to see if an issue I encountered in 2017.1 was fixed however after getting some help from the discord server, I was able to resolve the issue I ran into so I now have no real rush in updating.

    If you do want someone to beta test a version for 2017.3 however, just let me know and I would be happy to help out however I can.
     
  6. daltonspillman

    daltonspillman

    Joined:
    Sep 14, 2017
    Posts:
    5
    Sorry, I should have looked a little harder! I see it in the Documentation folder.
     
  7. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Are you updated with the last version? I have this null check I added in previous versions to fix that issue.
    upload_2017-9-29_10-56-0.png

    Thanks for offering your help by the way ;)
     
  8. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Glad you found it, but I would like to change that link wherever you found it. This is the good link right now, but it looks I missed some place to change:
    https://drive.google.com/open?id=0BxuhRM8zIOm8a3NlZHVqMGNVZWM
     
  9. daltonspillman

    daltonspillman

    Joined:
    Sep 14, 2017
    Posts:
    5
    Good deal, thank you. I found this link on your first post in this thread:
     
    CreativeSpore likes this.
  10. Captainlucky

    Captainlucky

    Joined:
    Sep 30, 2017
    Posts:
    1
    Hello ,

    Yestarday I update it to 1.4.4 and Unity to 20171.1f1

    In inspector, after click brush didnt allow me choose any tool, cant paint anything. I tried deleted old tilesets, brushes creat new one . Delete asset, download again . Close reopen Unity . I post here the problem but after restart pc it fixed by it self and I deleted the post.

    yestarday s errors;

    NullReferenceException: Object reference not set to an instance of an object
    CreativeSpore.SuperTilemapEditor.BrushBehaviour.GetOrCreateBrush (CreativeSpore.SuperTilemapEditor.STETilemap tilemap) (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Brush/BrushBehaviour.cs:138)
    CreativeSpore.SuperTilemapEditor.TilemapEditor.DoPaintSceneGUI () (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Editor/TilemapEditor.cs:692)



    NullReferenceException: Object reference not set to an instance of an object
    CreativeSpore.SuperTilemapEditor.BrushBehaviour.GetOrCreateBrush (CreativeSpore.SuperTilemapEditor.STETilemap tilemap) (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Brush/BrushBehaviour.cs:138)
    CreativeSpore.SuperTilemapEditor.TilemapEditor.OnBrushSelected (CreativeSpore.SuperTilemapEditor.Tileset source, Int32 prevBrushId, Int32 newBrushId) (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/Editor/TilemapEditor.cs:117)

    when i click it was go ;

    brushbehaviour.cs

    brush.m_brushTilemap.ColliderType = eColliderType.None;



    GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)




    Today after open Unity, This happen , when I select tilemap it says on inspector;

    "The associated script can not be loaded. Please fix any compile errors and assign a valid script"

    Tools not appear, cant paint nothing , in every scene same thing.

    And I got this errors;


    NullReferenceException: Object reference not set to an instance of an object
    CreativeSpore.SuperTilemapEditor.TilemapChunk.OnWillRenderObject () (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/TilemapChunk.cs:132)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)

    NullReferenceException: Object reference not set to an instance of an object
    CreativeSpore.SuperTilemapEditor.TilemapChunk.OnEnable () (at Assets/CreativeSpore/SuperTilemapEditor/Scripts/Tilemap/TilemapChunk.cs:281)


    The referenced script on this Behaviour is missing!

    The referenced script on this Behaviour (Game Object 'New Tilemap') is missing!

    After create new one this one also appear;

    GameObject (named 'New Tilemap') references runtime script in scene file. Fixing!

    New created tilemap is working and old broken one start working! Change scene , turn back scene old one broke again new one suffering same as yestarday , new warning appear;


    Unexpected top level layout group! Missing GUILayout.EndScrollView/EndVertical/EndHorizontal?
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)

    and same errors as yestarday.

    Close Unity reopen same problem.Why this errors ?

    How can I turn back old versions, is it posibble?
     
  11. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Hi there,

    Sorry for this issue. Changing a behaviour name is not nice for a project and sometimes thing could go messy, but this was the only way to fix the issues with Unity 2017.

    The best way to update to the last version v1.4.4 is first by renaming the Tilemap behaviour to STETilemap like it is explained in this post:
    https://forum.unity.com/threads/released-super-tilemap-editor.387330/page-18#post-3236700

    This way you won't have any compiler error if you were referencing the old Tilemap name instead of STETilemap because all the references will be changed before updating.
    Also, unity asset updater doesn't remove missing scripts, so if you only update the asset you will need to manually remove the previous Tilemap.cs file to fix the code errors.

    In your case it looks like the editor has lost the links to the script, all issues are realted with that.
    A way to fix this is this. But first, and just in case, you should make a backup of your project.
    Close Unity and remove the Library folder in the root folder:
    upload_2017-10-2_17-46-49.png
    Now open Unity and open this project again. All the assets will be compiled again and hopefully all missing scripts will be fixed. Be sure you don't have any code error and all the script were compiled successfully.
    If you still have issues let me know. I can also send you a previous version of the tool if you need it. But try this first.
     
    GamerPET likes this.
  12. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    New version of Super Tilemap Editor v1.4.4 available!

    Changelog:

    • IMPORTANT FIX: Tilemap has been renamed to STETilemap to fix issues using Unity 2017
    • ADDED TilemapVertexPaintUtils to help painting tilemap tiles
    • ADDED DrawDot to TilemapDrawingUtils
    • ADDED extra check in the collider generation of a tilemap to check if a neighbor tileId is valid
    • ADDED eBlendMode to specify the blending mode when setting the tile color
    • ADDED GetTileCenterPosition to TilemapUtils
    • CHANGE SetTileColor now uses a TileColor32 parameter to set the color of the tile vertices
    • CHANGED ClearColorChannel now is clearing the color channel with a clear color instead of removing the color channel and RemoveColorChannel is used to remove the color channel.
    • FIXED UpdateMesh now updates the tile color even if no tile was changed
    • FIXED when a tilemap component is removed the tilechunk children are removed as well
    • FIXED a bug in TilemapDrawingUtils.DrawLineMirrored when the start position was not (0, 0)
    • FIXED bug in TileGridControl where GUI.changed was set to false always when Display was being called
    Before updating to the new version, it's better to manually change the name of the Tilemap class to STETilemap, to be sure all references in your own code are renamed as well.
    Remember to rename the class name and the file name as described in this post
    Unity asset updater doesn't remove files, so if you updated the asset instead of download it again you need to remove the file Tilemap.cs to fix any code error.
    If you have a Missing Script error in the Tilemap component, follow the steps described in this post.
    If you need any help integrating the new version, don't hesitate to send an email to the support email creativespore(at)gmail.com.
     
    GamerPET likes this.
  13. TaylorAnderson

    TaylorAnderson

    Joined:
    Jul 28, 2012
    Posts:
    10
    Hello!

    This is a small thing, so don't be too rushed to try and fix it. But I was watching the Unite Austin presentation a few days ago where they used the Cinemachine 2D camera for a 2d camera and so I wanted to try to use it in my project. But in order to set the bounds for the camera, you need to supply a Collider. Is there any way to reference the Collider used in the editor?

    PS. I tried using Unity's native Tilemap editor and yours is still much better :p
     
  14. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Hi Taylor,
    I'm glad you found this tilemap editor better :)
    About your question, I guess you need to use a BoxCollider2D for the camera regions, isn't it?
    In that case, the tilemap colliders won't be useful unless I didn't understand you. But anyway, you can find the tilemap colliders in the hidden chunks if you check this option:
    upload_2017-10-7_11-41-11.png

    If you need a boxCollider2D with the size of the tilemap, you can use the tilemap property MapBounds to set the BoxCollider2D size properly. If you don't know how let me know and I will show you how.
     

    Attached Files:

    GamerPET likes this.
  15. jessejarvis

    jessejarvis

    Joined:
    Aug 9, 2013
    Posts:
    303
    I'm sure this is asked a lot but:

    1) Does this support procedural generation, and if not how difficult would it be to implement?

    2) Can you edit the tiles during runtime?

    I am looking to make a Sandbox game similar to Terraria in the manner of world creation and destruction. I am hoping for the game to procedurally generate a world in which the player can roam and have fun it, with the option of some static maps. I want to be able to dig for instance down into the terrain.

    Thanks!
     
  16. Khena_B

    Khena_B

    Joined:
    Aug 21, 2014
    Posts:
    273
    Gave Unity 2017.2 a try and their tilemap system is not even close to STE, keep up the good work and thank you for listening to the feedback!
     
    CreativeSpore likes this.
  17. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Yes, it was designed to be fast generating tilemaps in realtime, including colliders, autotiling, etc.
    It's really easy to generate a tilemap because they are boundless, so you just need to call SetTile or SetTileData at some position to place a tile, and call UpdateMesh to update the tilemap during the next update at once.
    Check this post for more information:
    https://forum.unity.com/threads/released-super-tilemap-editor.387330/page-18#post-3235805

    Also, I have attached the script used in the Roguelike demo to generate a procedural tilemap.
     

    Attached Files:

  18. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Thank you for your kind words and thanks for supporting this asset to make it better every day. I have an update prepared with a new mode for vertex paint, by the way. It will be available soon.
    https://twitter.com/CreativeSpore/status/916331507148558336
     
    Khena_B likes this.
  19. jessejarvis

    jessejarvis

    Joined:
    Aug 9, 2013
    Posts:
    303
    Thanks very much! :)
     
  20. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    New version of Super Tilemap Editor v1.4.5 available!

    Changelog:
    • ADDED define SUPER_TILEMAP_EDITOR to current build define symbols
    • ADDED Vertex Color Painting mode in the tilemap inspector view to paint the tile vertices using a brush
    • ADDED Divide blending mode
    • ADDED IterateTilemapWithAction to TilemapGroup
    • REMOVED eBlendMode.Normal and using eBlendMode.AlphaBlending by default.
    • OPTIMIZED Tilemap color channel update
    • FIXED intensity in VertexPaintCircle to affect only the alpha
    • FIXED RemoveColorChannel to update the tilemap mesh properly after calling UpdateMesh

    A new feature to paint tilemaps has been added. You can use it for many things like lighting, fog of war, etc.
    It has two modes of painting, Vertex and Tile.

    Tile Painting Move
    upload_2017-10-22_11-58-53.png

    Vertex Painting Mode
    vertexPaintDemo.gif
     
    Shodan0101 likes this.
  21. DeathdragonD

    DeathdragonD

    Joined:
    Sep 26, 2017
    Posts:
    1
    Hi,
    we are using the Super Tilemap Editor in our project, but found some "problems" or missing information regarding the Cell Size: The manual is missing the Button "R", in the "Map"-Tab of a Tileset.

    r_button.PNG

    By inspecting the code of the button I found out that it sets the Cell Size to "TilePxSize"/Tileset."PixelsPerUnit", but what I am missing is: Why is it using this formula and what in general does it do? Also a question with a concrete example: if we use 64px tiles with 100 PPU does this mean 0.64 would render the sprite compared to a normal sprite renderer from Unity with scale 1?

    Also what could be interesting for users is: What do you suggest using for Cell-Size, what do we have to consider when choosing one? Maybe that's something for the FAQ at the end? Also, is there a specific reason why a Cell Size of 0.1 scales one tile to the size of a standard Unity cube? Why isn't it 1?

    Also I think there is a small bug, because it only sets it for "X", but maybe that is wanted behavior.

    Thanks in advance.
     
    Last edited: Oct 25, 2017
  22. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Hi there,

    Thanks for telling me about the missing information regarding the 'R' (Reset) button. I have updated the manual and you can find the updated manual here:
    Super Tilemap Editor Online Manual

    About your questions, lets explain Cell Size a little bit.

    The same way, a sprite has its PixelsPerUnit property, to define the size in units of a pixel, an STETilemap has a CellSize attribute to define the absolute size of a grid cell in units. You should be able to change the X, and Y size and see the changes pressing "Refresh Map" button. If you use the value 0.1 maybe it will fit the small square of a big unit square:
    (example with a cell size of [0.1, 0.2])
    upload_2017-10-25_16-57-21.png

    Now, if you can change the Cell Size, what is the meaning of the PPU property in the tileset?
    Well, it is used to set the default cell size of a tilemap the first time you select a tileset for it or if you press the Reset button.
    So, if you select a different tileset by mistake, remember to press the 'R' button to change it to the default size again or the size will the the one set with the first tileset selected.

    If you want to keep the same pixel aspect ratio with your tilemaps and the separate sprites used in your game, you can use the same value for PPU in the sprites texture and the tileset to render them with the same pixel size.
    For example, a sprite from a texture of 64x64 pixels with PPU=100 will have the same size than a tile from a tilemap with a cell size of [0.64, 0.64], and this size will the the default size of the cell if the tileset uses tiles of 64x64 pixels with a PPU of 100.

    I hope it is more clear now, but don't hesitate to ask again if needed.
     
  23. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,480
    Would be cool if we can export to native unity tilemaps.
     
  24. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Thanks for your request, I will think about this.
     
    Lars-Steenhoff likes this.
  25. Khena_B

    Khena_B

    Joined:
    Aug 21, 2014
    Posts:
    273
    I'm having an issue with the tilemap's material, previously i used Shaderforge to make my shaders but i switched to Amplify Shader, i made a simple unlit shader and the tint color no longer affects the tilemap, my shader works on spriterenderers.

    Edit: Nevermind, it just needed a "Color" property
     
    Last edited: Oct 26, 2017
    CreativeSpore likes this.
  26. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,480
    Nice ! , even if its just for future compatibility, it will be a welcome feature,
     
    Last edited: Oct 28, 2017
  27. TobyM

    TobyM

    Joined:
    Apr 28, 2017
    Posts:
    7
    Hi I have a question about the colliders in STE: I'm using your tilemap editor together with the Corgi Engine. The engine provides a "ladder script" which, when added to a game object with a box or polygon collider 2D, enables climbing if it detects a collision with the player character (with a onTriggerEnter2D method). I thought I maybe could use a tilemap layer to quickly create some ladders within a scene. I tried to add the ladder script and other scripts which use a onTriggerEnter2D method and set the Collider 2D Type to Polygon Collider 2D, but it didn't seem to work as I hoped. So I wanted to ask, if its even possible to use a onTriggerEnter2D method with a STE Tilemap?
     
  28. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    I think you forgot to check the Trigger parameter:
    upload_2017-11-3_10-39-40.png
     
  29. TobyM

    TobyM

    Joined:
    Apr 28, 2017
    Posts:
    7
    I already tried that option. But I managed to solve the problem by adding a static Rigidbody2D to the tilemap layer (not really sure why that's the case, because I thought that it should be enough if only the character controller has a rigidbody to detect a collision). But still thank you for your reply!
     
    CreativeSpore likes this.
  30. ryanzec

    ryanzec

    Joined:
    Jun 10, 2008
    Posts:
    696
    @CreativeSpore So I have updated this library and updated to Unity 2017.2 and I have started to noticing rendering issues of the tilemap:

    Screen Shot 2017-11-03 at 10.53.29 PM.png

    Not sure if this is something related to updating super tilemap editor or Unity 2017.2 but not sure what it going on here.

    My renderer setting for the tilemap is:

    Screen Shot 2017-11-03 at 10.55.46 PM.png

    And the configuration for the PixelSnapPrite Material is:

    Screen Shot 2017-11-03 at 10.56.02 PM.png

    The lines only seem to happen when the game window is at certain sizes.

    Any help you might be able to provide would be great as with the previous versions of all this worked fine.
     
  31. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    I have noticed that each version of Unity is different regarding to these lines.

    But in all of them, you can fix this following these options:
    1. Set a value for "Inner Padding" 0.5 should be fine in most cases.
    2. Use the Atlas Editor Window to add extrusion between the tiles (1 or 2 pixels)

    Also I found using Pixel Snap is sometimes making the lines appear. I would uncheck pixel snap and use only one of the above solutions.
     
  32. ryanzec

    ryanzec

    Joined:
    Jun 10, 2008
    Posts:
    696
    @CreativeSpore Yea, I played with the pixel snap setting and noticed before that removing it would make things better but not perfect however the inner padding change does seem to resolve the issues, thanks.

    Another issue that I have noticed that right now is not an issue as I am dealing with procedurally generated maps right now which work fine (though it will be an issue at some point) is that I am getting errors when trying to use tilemaps in the editor:

    Screen Shot 2017-11-04 at 11.26.15 AM.png

    Just moving the mouse in the scene with a tilemap selected shows the error.

    If there is any other details that would be useful, let me know.
     
  33. Zymes

    Zymes

    Joined:
    Feb 8, 2017
    Posts:
    108
    Hey could you work on a 3D version of this? So you can make maps like Civilization games.

    The concept with the tiling is largely the same, just that you have a 3D space right?

    Thanks!
     
  34. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    This is probably a bug related to the change of name of the class Tilemap to STETilemap.
    Follow this post steps to fix the issue and let me know if it is still causing issues:
    https://forum.unity.com/threads/released-super-tilemap-editor.387330/page-18#post-3241654
     
  35. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    You can attach any prefab to any tile so you can attach a 3D object and place it when painting that tile in a tilemap.
    You can also change the transform of a tilemap, for example, change the Z position and create different layers for different heights. Also rotate it over the ZX plane so Y is Up for 3D games.
    upload_2017-11-6_12-54-25.png
     
  36. ryanzec

    ryanzec

    Joined:
    Jun 10, 2008
    Posts:
    696
    @CreativeSpore After reading your post I decision it would be best to just delete my copy and re-import from scratch which fixed the issue, thanks.
     
    CreativeSpore likes this.
  37. SirMonsoon

    SirMonsoon

    Joined:
    Nov 6, 2017
    Posts:
    2
    Hello,

    first of all, great work on this. Very fun to just paint maps with.

    I have a (probably really dumb) problem though: I can't get the OnTilePrefabCreation event to fire.

    There's a Player prefab with a class called "Player". In it, there's this code:
    eventcode.png
    When I run the game, nothing shows up in the console and _playerNumber never changes value. Any ideas?


    Thanks in advance.
     
  38. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Good to know you are having fun creating maps ;)

    About your question, that method is only called when the prefab is instantiated the first time. Or if you Refresh the tilemap.
    But checking your code, you could do this:
    Code (CSharp):
    1. void Start()
    2. {
    3.   _playerNumber = transform.parent.GetComponent<STETilemap>().GetTile(transform.position).paramContainr.FindParam("playerNumber").GetAsInt();
    4.    ....
    5. }
     
  39. SirMonsoon

    SirMonsoon

    Joined:
    Nov 6, 2017
    Posts:
    2
    Thanks for the quick reply.

    Does that mean the moment the prefab is instantiated in the editor, while placing it?

    I can see how that makes sense to pass "permanent" info like movement cost or healthpoints or something - but I'll try something along what you wrote for the more "dynamic" use case that I'm facing.

    Thanks!
     
  40. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    You are welcome ;)
    And yes, the prefab is instantiated when placing it.
     
  41. Shilo

    Shilo

    Joined:
    Jun 8, 2014
    Posts:
    20
    Hello, I love your asset. I am curious though, what are the pros and cons between this asset and Unity 2017.2's built in tilemap system? I haven't tried either yet and I'd love to know the key differences.
     
  42. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Hi there,
    Good question, I didn't try the built in solution a lot, but I was curious and tried it few days ago.
    They are both good tools to design tilemaps, but this is what I found missing in the unity built in tilemap editor (UTME) that you can find in Super Tilemap Editor (STME). If I missed something that it's already in the built in system let me know and I will edit the post:

    - In STME you can draw the tile colliders in the tile properties window and in the scene view. In Unity you can add a collider to the tile but it has to be a full collider, you can not edit the tile collider. Also, STME creates a seamless collider, it means, it only uses the minimum lines needed to close a collider area, for example, 3x3 tiles with full collider will generate a collider with 4 vertices enclosing the 3x3 tile square.
    upload_2017-11-14_12-2-30.png


    - In STME you can create subdivided tiles, for example, to create combination of different tiles for autotiling. I am not sure if this is possible in UTME.
    This article describes the use of subdivided tiles to create more combinations:
    http://blog.rpgmakerweb.com/tutorials/anatomy-of-an-autotile/
    In STME this feature is used for the CarpetBrush and A2x2 brush.

    - In STME you can create tile views. This is basically a selection of tiles from the tile palette or from the scene view (from a tilemap). You can save the selection as a tile view and select it later to display the tiles in the tile palette. You can find more information in the online manual:
    Online Manual

    - You can also create a prefab from a tile selection directly through the STME menu.


    - In STME you can attach a prefab to a tile and use the tile palette also to instantiate game elements. You have different options for this, like showing or not the tile where the prefab is attached. I find this useful to place game elements like a chest, a door, damage tiles like lava where the prefab can be only the collider with the logic to damage the player but keeping the tile image. Also, you can use the component TileObjectBehaviour that attached to a prefab will replicate the tile look. For example, you have a script to manage a breakable wall but you have many tiles that are breakable walls, you don't need to create a different prefab for each of them, you can use the TileObjectBehaviour and the instanced object will look like the tile wall where it was attached to using a single prefab.

    - In STME you have more painting tool options. I found only the rectangle and bucket in UTME. In STME you can draw a line, an ellipse or circle(filled or just the border), a rectangle (filled, with the border and using 9 slice). This video will show more about the drawing tools:


    - You can define the map bounds, even it's boundless and you can paint anywhere you can specify the current bounds and also have an option to avoid painting outside these bounds. I found this useful, for example, to use the bucket or fill tool. In UTME I was not use how much further it was going to paint when painting an empty area with the paint bucket. In STME the bucket is limited by the current map bounds.

    - In STME you have tilemap groups to manage different tilemaps easily. You can change properties like the collider mode, the sorting layer, the sorting order and the name. And you can select the active tilemap from the scene view or with '+' or '-' key.
    upload_2017-11-14_12-24-38.png

    - In STME the mesh data is not saved and that makes the scene file size really small if you compare scene files with a similar number of tiles.

    - In STME you can choose a brush as tile of another brush. For example, you can use a random brush to paint the wall in another brush used to paint an autotiled wall (in STME this brush is a RoadBrush). Also, remember you can attach also a prefab to a tile, so you can use a brush to place random placeables, for example.

    - You can see the brushes preview in the brush palette, including the animation if any, and filter the brushes by type. And the animated brushes are animated in the scene view.


    - As a new addition, you can now use vertex painting mode to paint a tilemap. Check it in these videos:
    https://twitter.com/CreativeSpore/status/916331507148558336
    https://twitter.com/CreativeSpore/status/922047989987860480

    - In STME you can use parallax factor in a tilemap. The tilemap will be updated according to the parallax factor even in the scene view when the editor is not playing the game so you can edit it as you will see it when playing the game by moving the sceve view camera:
    https://twitter.com/CreativeSpore/status/824254038279618560

    - You can also import TMX maps to STME. Not every Tiled map is supported, only maps made of single tiles (not animated or objects), but it's a start if you have maps in Tiled and you want to move to STME.

    - The work flow it's also different in both tools, you can check the work flow in the video tutorials for STME.

     
  43. Shilo

    Shilo

    Joined:
    Jun 8, 2014
    Posts:
    20
    @CreativeSpore
    Wow, I am very impressed with the detail and effort you put in your post for me. That shows great character and customer service. Thank you! I wish I could put equal effort into my reply, but I'm tired and honestly don't understand all of the features yet. I'm not sure if it was clear, is it safe to assume performance (in game) is relatively the same as Unity's tilemaps?

    I've tried your asset recently and I am very impressed with how rapid I can make maps. I was worried that I wouldn't be able to link gameobjects to tiles, but I'm glad that's a feature! From your post, there seems to be a few features I didn't know about. I can't wait to dig more into your wonderful asset.

    Also, I'm glad your asset has Tiled Map Editor support, but it seems your map editor is so good that I'm better off using STME by itself. Although, I still welcome further support for Tiled Map Editor!

    Keep up the good work and thanks again for such an awesome asset. I own both, Super Tilemap Editor and RPG Map Editor, and both are top knotch!
     
    CreativeSpore likes this.
  44. Shodan0101

    Shodan0101

    Joined:
    Mar 18, 2013
    Posts:
    140
    @CreativeSpore thx again for all the hard work and explaining the difference between UTME and STME! @Shilo get this asset its brilliant, you wont be disappointing and animated tiles is a huge feature imo! ;)
     
    CreativeSpore likes this.
  45. RecursiveFrog

    RecursiveFrog

    Joined:
    Mar 7, 2011
    Posts:
    350
    Hi CreativeSpore,

    This is an awesome library! I do have a question about normal maps, though. I'm trying to use a normal map to apply visual depth to the sprites in the Tilemap, but what's happening with the diagonal tiles is something like this in the image.

    Is there a good way to deal with this, besides writing a shader?
     

    Attached Files:

  46. Westy661

    Westy661

    Joined:
    Sep 13, 2015
    Posts:
    14
    Hi CreativeSpore,
    im considering buying the tilemap editor, but i have a few question before i can commit:
    - Is there an option to create isometric tiles with the asset? If so, can you point me to the direction where i can learn more about it?
    - Is the asset based unity's tilemaps?

    thanks in advance,
    peter
     
  47. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    I am not sure what is happening in the image. Maybe it's related with the shape of a tile? It is made of two triangles:
    upload_2017-11-16_11-44-2.png
    I am not sure if it is related with that. What shader are you using?
     
  48. CreativeSpore

    CreativeSpore

    Joined:
    Nov 6, 2014
    Posts:
    1,189
    Hi Peter,
    Thanks for taking your time to consider this tool. About your questions:
    - Is there an option to create isometric tiles with the asset? If so, can you point me to the direction where i can learn more about it?
    It is in the road map to give support for isometric and hexagonal tiles. But right now it is only working for rectangular tiles.
    The closest way to use isometric look right now (but using rectangular tiles) is by rotating the tilemap object 45 degrees in axis Z and 30 in axis X.
    In this example you can see you can see it works fine for ground tiles, but the other object like items, actors, will look rotated. But for these cases you can use a prefab attached to a tile rotated properly. Check this post when I explain the prefabs and the TileObjectBehaviour component to create tile as a gameObject.
    upload_2017-11-16_11-51-27.png

    - Is the asset based unity's tilemaps?
    No, it is not based on Unity tilemap system but you can use both at the same time if that is what you were asking.
    The full code is also included so you can made your own modifications to the tool or check the code if needed.
     
  49. Westy661

    Westy661

    Joined:
    Sep 13, 2015
    Posts:
    14
    Thanks for the answer!
    This is not the standard isometric perspective tho, i was looking for a non-square representation.
    Do you have an eta on true isomteric tilemaps, or it is not worth waiting for it? (I checked the forums, and i found some post about it being in development in may)

    thanks in advance,
    peter
     
  50. RecursiveFrog

    RecursiveFrog

    Joined:
    Mar 7, 2011
    Posts:
    350
    It is a Standard shader with a normal map. You're looking at one of the tiles from the Kenny Platformer set against my background. (It's the diagonal ground, either id 6 or 7). As you see, this tile's texture has half of its pixels set to alpha 0, so I would expect nothing to render where the alpha is 0 on the texture.

    However, the tilemap has a material with the Standard shader, and a normal map on that shader, to give it the illusion of depth and shadows. The problem is that on tiles with transparent alpha in the texture, the normal map is actually creating a sort of "ice cube" or "frosted glass" effect over the alpha 0 parts of the texture.

    One other thing I notice is that when I zoom in the camera close to the map, I see the seams in the tiles. This is true even if I don't use a normal map. Is there a good way to avoid seeing the seams when zoomed in?