Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Tidy Tile Mapper: Paint tile-maps from the Editor [Released]

Discussion in 'Assets and Asset Store' started by JFFM, Jan 21, 2012.

  1. atmuc

    atmuc

    Joined:
    Feb 28, 2011
    Posts:
    1,149
    i follow this tutorial; Tidy TileMapper Development_ Dynamic Mesh backgrounds. i added a color profile. on color profile i selected an image and clicked sample texture. it generated 4 colors options. To "Block:" boxes i cannot drag and drop anything. i try to drop item from \Assets\Tidy Tile Mapper\TidyBasicBlockSet\Prefabs.

    i dont have tile pack. what can i use for blocks?

    also there is no button for functional overlays. what i do to see it?
     
  2. BravadoWaffle

    BravadoWaffle

    Joined:
    Nov 17, 2012
    Posts:
    4
    Is anybody else having issues getting the Tidy Tile Pack to import into Tidy Tile Mapper? Running the latest versions of everything, dragged the blocks into the blocks folder, and hit refresh. But it doesn't seem to want to show the blocks. When I reimport Tidy Tile Mapper and the Tile Pack fresh, *sometimes* I can get one block to show up by hitting refresh, but not always. I can't for the life of me figure out how to get them in, other than spending 2-3 hours manually creating each block myself.

    Which come to think of it... I've already spent trying to get it to work in the first place, so I should have just started there. lol.
     
  3. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @Exploding Rabbit,

    Oh strange! I thought I'd removed all of the SetActiveRecursively() calls (and nested them into #if UNITY_4 and #if UNITY_3_5 etc preprocessor directives).

    I'll take a look.

    -JFFM
     
  4. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @atmuc,

    The Block prefabs are located in the Tidy Tile Mapper\Blocks\ directory (those located in the prefab directory are just variant prefabs).
    You should be able to drop these into the "Block:" box and the magic will begin to work.

    The "F" button was/is an experimental little test I was doing over a weekend for a dev video and has not made it into the tool as yet.

    -JFFM
     
  5. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @BravadoWaffle,

    I know you! :D

    I'm on the case. I'm not 100% what is happening there, it may be to do with TTM being a Unity 4.0 package and TTP being a Unity 3.5 package; I'm running some tests today.

    When I get it to work I'll upload an update.

    -JFFM
     
  6. Amen

    Amen

    Joined:
    Jul 24, 2012
    Posts:
    2
    Dear JFFM:

    I'm trying to spawn a roaming AI controller into blockmap at runtime ( The blockmap it's also generated at runtime ).
    And I disable the "Initialize On Awake" parameter on the AI prefab block, but still got some error message:

    -----------------------------------------------------------------------------------------------------------------------
    NullReferenceException
    UnityEngine.Transform.set_localPosition (Vector3 value) (at C:/BuildAgent/work/812c4f5049264fad/Runtime/ExportGenerated/Editor/UnityEngineTransform.cs:31)
    PathingEntity.UpdateMovement (Single deltaTime) (at Assets/Tidy Tile Mapper/Tidy Controllers/Controllers/EntityTemplates/PathingEntity.cs:216)
    PathingEntity.OnUpdateEntity (Single deltaTime) (at Assets/Tidy Tile Mapper/Tidy Controllers/Controllers/EntityTemplates/PathingEntity.cs:201)
    Entity.UpdateEntity (Single deltaTime) (at Assets/Tidy Tile Mapper/Tidy Controllers/Controllers/Entity.cs:135)
    Entity.Update () (at Assets/Tidy Tile Mapper/Tidy Controllers/Controllers/Entity.cs:127)
    -----------------------------------------------------------------------------------------------------------------------

    Could you help for how to add a AI controller at runtime correctly ? May I ask what version start to support this feature ?
    Thanks for your help :D

    by Amen
     
  7. atmuc

    atmuc

    Joined:
    Feb 28, 2011
    Posts:
    1,149
    Hi JFFM

    On Tidy TileMapper Development_ Dynamic Mesh backgrounds tutorial there are 4 backgrounds. i have just one. your product tutorial videos should contain just what your product have, otherwise i am confused :) maybe you should mention about prerequisites for your tutorial. i try to find what did i do wrong that i cannot see what you have on your tutorials. i think many blocks on your tutorial is from another commercial package. your tutorials look very nice with these extra package but it is not what i bought :-( generally people see a video and thinks how nice product it is then buy it. i still think your product is great but i also think it is better to use just tidy tile mapper package for tidy tile mapper tutorials.

    on this video you directly use your background images. how can i add background items to the "Tidy Tile Mapper" window?

    also is there way to recover chunks and block on hierarchy/scene when i accidentally delete them?
     
  8. atmuc

    atmuc

    Joined:
    Feb 28, 2011
    Posts:
    1,149
    i selected standard_block from the folder you pointed for 4 colors. i click populate map. it generates color map. i click play. i click debug : draw map. i get following error. what should i correct? i also tried it with empty block.

    i use 01_Tidy TileMapper_ Streaming Maps and Image-to-Map tutorial

    NullReferenceException: Object reference not set to an instance of an object
    StreamingMap.GetNodeAt (Int32 x, Int32 y, Int32 z) (at Assets/Tidy Tile Mapper/Tidy Streaming Maps/StreamingMap.cs:138)
    StreamingMap.InstantiateBlock (Vector3 coords) (at Assets/Tidy Tile Mapper/Tidy Streaming Maps/StreamingMap.cs:603)
    StreamingMap.DrawMap (Int32 focus_x, Int32 focus_y, Int32 focus_z, Int32 radius, Boolean bypassQueue) (at Assets/Tidy Tile Mapper/Tidy Streaming Maps/StreamingMap.cs:406)
    StreamingEditor.OnInspectorGUI () (at Assets/Tidy Tile Mapper/Tidy Streaming Maps/Editor/StreamingEditor.cs:61)
    UnityEditor.InspectorWindow.DrawEditors (Boolean isRepaintEvent, UnityEditor.Editor[] editors, Boolean eyeDropperDirty) (at C:/BuildAgent/work/812c4f5049264fad/Editor/Mono/Inspector/InspectorWindow.cs:863)
    UnityEditor.DockArea:OnGUI()
     
    Last edited: Feb 18, 2013
  9. Amen

    Amen

    Joined:
    Jul 24, 2012
    Posts:
    2
    Their a very useful code from JFFM to solve this problem:

    How can I add a AI controller block into blockmap at runtime.

    First, you need disable "Initialize On Awake" parameter on your AI script.

    And then, you need add this code after BlockUtilities.AddBlockToMap().

    Code (csharp):
    1. Block block = //The block you have added
    2.  
    3. Entity e = block.GetComponentInChildren<Entity>();
    4. e.InitializeEntity();
    That's it ! It works very well to me ;)
     
  10. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    Any chance you could publish your updates on the Asset Store using Unity 3.5.x instead of Unity 4.x? I still haven't updated to 4.x and now I can't use TTM. )c:
     
  11. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @Deozaan,

    I made a "3.5-friendly" version to push to the Asset Store, but it breaks for people using 4.0 (broken references). So it's one of those "half are unhappy / half are unhappy " scenarios.

    However - I've been sending out 3.5-friendly packages to anybody who emails me - so if you could flick me an email, I can send you a package.

    -JFFM
     
  12. atmuc

    atmuc

    Joined:
    Feb 28, 2011
    Posts:
    1,149
    hi jffm, i have 2 messages on previous page. can you check them?
     
  13. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi atmuc,

    Oh sorry about that - I completely missed them!

    (In reverse order)

    1) Streaming Maps null reference exception: I'm not quite sure what is happening here - could you send me a zipped-up sample project to the support email in your readme.txt file? I'll take a look at the scene and see what is going on.

    2) Unfortunately there is no way to recover an accidentally-deleted chunk (unless you've used the Delete Chunk button - in which case, populating the surrounding chunks will re-populate the missing chunk)

    3) To add a texture to your background, first create a material for this texture (this allows you to use normal mapping etc). Once you have done this, drag the material to the "Background material" field and click "Add Background material". You can then paint backgrounds as you like.

    I just used whatever textures I had on my desktop for the demo video, from memory. I think one of them is the skin from the example character controller that comes with the tool?

    I hope that helps!

    Regards,
    -JFFM

    Edit: Feel free to use the support email if you would like faster responses (I check the forums once a day, but my email is always on).
     
  14. cglave

    cglave

    Joined:
    Nov 24, 2012
    Posts:
    1
    This might be related to a NullReference I've been hitting when using the runtime API to modify blocks near where Entity controllers are placed. It's caused by the Entity being reinstantiated when its block gets refreshed.

    For now, I've hacked around it by adding the following at around line 509 of BlockUtilities.cs:
    Code (csharp):
    1.  
    2.                         if( b.name.IndexOf("Controller") == -1 )
    3.                             b.RefreshBlock();
    4.  
    I think a better fix might be having the block remember that it instantiated an Entity, and either skip refreshing itself, or pass a call on to the Entity to let stationary entities know that the map around them has been changed/refreshed.

    Hope this helps,
    Carl
     
  15. Arantor

    Arantor

    Joined:
    Mar 9, 2013
    Posts:
    2
    This might seem like a really stupid question, sorry in advance!

    I can see that TTM can handle 3D maps since you did it with Ball of Woe, but I'm not entirely clear if you can/how you would create a 3D map in the editor. For example, creating a level like in Ball of Woe but doing so by painting it out in the editor - I'm thinking of a rolling-ball type of game but with bigger levels, where the player goes off to explore what levels I've made, and has ramps and jumps to deal with.

    Would I need to create multiple 'top down' maps and stack them? Thanks in advance :)
     
  16. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @Arantor,

    Ah good question! I've been hoping somebody would ask about Ball of Woe.

    The way I'd go about achieving this in-editor is:

    1) Create a scene per 'phase' - where each phase is maybe .... 25 platforms high
    2) This will be a single map - using the 3D Layers of TTM on a forward-growing map to grow upward.
    3) Create a few of these scenes (each of that 25 platforms high or so) and starting and ending at joinable positions (so say - if you start in the centre, end facing the centre, so they join together)
    4) Done! Now you can either publish these prefabs and join them in a Master Scene and you've got your game OR
    4.5) You can place these end-to-end dynamically (even randomly) to achieve an endless roller.

    Good luck! I hope that's a little helpful.

    -JFFM
     
  17. sirius_002

    sirius_002

    Joined:
    Aug 16, 2012
    Posts:
    65
    Hi Joshua, could you please give me an idea of how I can make the platform controller chase the platform player when in range? Thanks!
     
  18. Arantor

    Arantor

    Joined:
    Mar 9, 2013
    Posts:
    2
    Hi JFFM, thanks for that, that makes a lot of sense (sorry I didn't reply sooner, been off doing other crazy things)

    What I had in mind works slightly differently but certainly doable with that approach, thanks :)
     
  19. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @sirius_002,

    Oh good question!

    Now you'll have to tolerate my bad memory for a moment (I'm not at my computer) - but I believe (believe) there is a "Make Movement Decision" function in the controller itself - this is where all of the main decision logic is processed. I think it's a virtual function, so you can override it in a derived class.

    At present, I believe (believe again) it's picking a random point in the world, or potentially just moving left and right?

    So instead - replace this decision with a decision that finds the PlayerController, gets their coordinate, and moves in the direction of that coordinate.

    That should get you on the way to chasing glory!

    I'll take a look when I get home. Reading the question made me smile because I can kind of picture the controllers chasing and ultimately jumping all over the main character.

    (Apologies for the lateness of my reply - the forums haven't been sending me my 'Thread changed' emails which I fully rely on. Actually, it's probably my spam folder filtering it)

    -JFFM
     
  20. sirius_002

    sirius_002

    Joined:
    Aug 16, 2012
    Posts:
    65
    Hi Joshua, thanks for the info, this definitely points me in the right direction. And don't stop (believing)!
     
  21. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    No, it has been a forum-wide issue. Notification e-mails were not being sent out until a couple of days after the fact. But things seem to be catching up, and notifications seem to be somewhat more timely the past day or two.
     
  22. ParallaxRealms

    ParallaxRealms

    Joined:
    Apr 2, 2013
    Posts:
    2
    Hello, I recently bought your tile mapper and I'm having a bit of trouble trying to figure out how to add gameObjects. Do you use OnCollisionEnter() script on a gameObject prefab and make a block in the editor with that? I don't quite understand how to detect whether the player is colliding with a tile, and I've watched all your videos but did not see an explanation of how to do this. I see you've mentioned OnBlockEnter, OnBlockExit, on what object do you attach these scripts? The player?

    Any help would be appreciated.
     
    Last edited: Apr 5, 2013
  23. khelegond

    khelegond

    Joined:
    Nov 20, 2012
    Posts:
    13
    Just leaving a quick note here... I bought this asset, and it is AWESOME.

    Not only that, but as soon as I had a little doubt, Joshua answered me in less than 1h! o_O

    Can't recommend enough!
     
  24. Banksy

    Banksy

    Joined:
    Mar 31, 2013
    Posts:
    376
    I just purchased TTM + The Maze Generator ......

    As expected from a newbie... I now have a couple of questions :)

    1.) Where's the "F" ?
    I'm wondering..... How can I bring up the "F" tidy functional overlays ?

    2.) Streaming Tiles:
    Is it possible to have the main character stay centred at x=0 (+- 5) z=0(+-5) the map move...
    ie. Imagine a marble game in a wooden box where the maze flows through it, you can move the entire game world in x,y,z since the marble reacts to gravity, the camera needs to constantly aim at the central world point 0,0,0. Basically what I'm planning to do, is have a dynamic camera that is able to move around the main character, so the camera will always point at origin x,y,z = 0 the character simply moves around the confines of the wooden box.
    I'm thinking since i have Unity Pro, I could use LOD blocking to occlude 95% of the map till it comes into view... yes ?

    3.) Rigid bodies Gravity :
    Can I add dynamic objects such as a ball... that has a rigid body attached to it. So for example could a ball interact in a "forward" generated scene.
    It just dawned on me that this being a "Tile based " game probably relies purely on movement from tile to tile so any movement by a rigid body object may simply bounce of the top of the tile or be confined to the inside of a single tile... That's been my experience after testing.. but I'm hoping perhaps I can hide or neutralise tiles that don't contain any geometry. I'd like to be able to fire for example a canon ball that arched in its trajectory.. is this possible ?

    Hhhmm.... I sure hope this is possible as my entire game my tiny universe depends on it !!! ;)

    Mick
     
    Last edited: May 2, 2013
  25. Tuni

    Tuni

    Joined:
    May 24, 2013
    Posts:
    74
    Are there any general tips to improve the performance of the TTM? I create a map, put in some blocks and Unity get slower with every block.
     
  26. Luca91

    Luca91

    Joined:
    Apr 13, 2013
    Posts:
    75
    I'm having some crashing issues with tidy since I've updated unity to 4.2 ... does anybody have this problem too ? :/
     
  27. KastroLee

    KastroLee

    Joined:
    Oct 8, 2013
    Posts:
    4
    I am also noticing it is very slow when trying to move the prefabs around after building a larger one (20 chunks wide 22 chunks height). We are using it for a 3d map in our game. Am I doing something wrong? When building I strip_all and then add prefab to the scene. If we try to move the prefab it is a big pain. Super slow...

    I am also seeing the same thing as Tuni when creating maps.
     
  28. Ben-BearFish

    Ben-BearFish

    Joined:
    Sep 6, 2011
    Posts:
    1,204
    I was reviewing different 2D Tile Map editors, and was wondering if your tilemap editor supports 2D sprites? So far all the videos and tutorials I've seen for Tidy Tile Mapper only show 3D blocks set in 2D planes.
     
  29. SweetBro

    SweetBro

    Joined:
    Jan 14, 2013
    Posts:
    69
    Is there a reason why Unity can't find BlockMap as a valid type, when I try to declare such a variable in JS?
     
  30. Tripwire

    Tripwire

    Joined:
    Oct 12, 2010
    Posts:
    442
    Just bought it but i can't seem to create my own blocks? Created a plane of 1,1,1 with a texture on it. Added it to a block. But when painting the block it's huge compared to the original ones that came with the package. Any help?
     
  31. BitseGames

    BitseGames

    Joined:
    Jul 16, 2012
    Posts:
    16
    I think a plane is 10X10. The tiles uses the scale of a cube not the plane. Had the same problem.
     
  32. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Just bought this asset and tried to create a map using default assets.

    I can create them fine, but I get this error every time.

    ArgumentException: Getting control 4's position in a group with only 4 controls when doing Repaint
    Aborting
    UnityEngine.GUILayoutGroup.GetNext () (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/GUILayoutUtility.cs:512)
    UnityEngine.GUILayoutUtility.DoGetRect (Single minWidth, Single maxWidth, Single minHeight, Single maxHeight, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/GUILayoutUtility.cs:305)
    UnityEngine.GUILayoutUtility.GetRect (Single width, Single height, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/GUILayoutUtility.cs:284)
    UnityEngine.GUILayout.Space (Single pixels) (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/GUILayout.cs:203)
    DopplerInteractive.TidyTileMapper.Editors.TidyBlockMapCreator.DrawMapVisibilityPanel () (at Assets/Tidy Tile Mapper/Editor/Editor Logic/TidyMapCreator.cs:3663)
    DopplerInteractive.TidyTileMapper.Editors.TidyBlockMapCreator.DrawWindow () (at Assets/Tidy Tile Mapper/Editor/Editor Logic/TidyMapCreator.cs:849)
    MapCreatorWindow.OnGUI () (at Assets/Tidy Tile Mapper/Editor/Editor Windows/MapCreatorWindow.cs:23)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/monoAndRuntimeClassLibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)

    Any help around here?
     
  33. Cybu

    Cybu

    Joined:
    Jun 1, 2014
    Posts:
    1
    I have exactly the same problem ... any help would be appreciated


     
  34. sfilo

    sfilo

    Joined:
    Oct 23, 2012
    Posts:
    30
    Hi,

    I have purchased the editor and I want to say that it's great.
    Is there any easy way of using 2d box colliders with the blocks? Also, do you have any plans in the foreseeable future for implementing 2d scene features?
     
  35. sfilo

    sfilo

    Joined:
    Oct 23, 2012
    Posts:
    30
    Hi,

    I found the answer for my question, it's easy enough, you just have to edit the standard_block, remove the mesh collider and add a 2d box collider.

    But I am also experiencing the problem reported by Cybu and castor76. Help :)
     
  36. Aesadai

    Aesadai

    Joined:
    Jun 10, 2014
    Posts:
    14
    Anyone know if this can be used for a top down 2D RPG style map (like Zelda Link to the Past)?
     
  37. ababab5

    ababab5

    Joined:
    Apr 15, 2014
    Posts:
    508
    Hi,

    do you have some tips to reduce the draw calls ? I create this game : http://barouch.fr/bouncy.php (iOS / Android / Amazon). But the performances are bad. Very Bad.

    Thank you very much in advance.

    Best regards,

    AB
     
  38. Zec

    Zec

    Joined:
    Jan 3, 2012
    Posts:
    10
    Hi there,

    First of all, I really like your library. But I'd like to report a bug that I tried to track down.
    When I try to add tiles in an entirely new Chunk that has no layers in it, the transform.y coordinate for the chunk never gets set according to it's depth. I've got a screenshot and some code for you:

    Here you can see a selected mapchunk that was just added through generating a new tile in a chunk/chunkset that previously didn't exist. The chunks transform.y-coordinate apparently never gets set so the chunk ends up at y=0, even though you can see in the inspector that the depth of the chunk actually is three. The chunk was supposed to end up next to the tile above it. For reference, I'm using GrowthAxis = Forward


    Here's the code I create it with right now, I use the BlockUtilities to create and modify a map.
    Code (CSharp):
    1. public void SpawnBlock(int x, int y, int depth)
    2. {
    3.     Block b = GameObject.Instantiate(BlockPrefab) as Block;
    4.     BlockUtilities.AddBlockToMap(Map, b, false, 0, false, x, y, depth, true, false);
    5.  
    6.     BlockUtilities.RefreshMap(Map, false);
    7. }
    After tracking the error down in your code for a while using Debug.Log, I found out that this is where the position gets set for this specific location (row 322 in MapChunk.cs), and as you can see the y coordinate just gets set to zero.
    Code (CSharp):
    1. Vector3 localPos = Vector3.zero;
    2.    
    3. if(positionAbsolute){
    4.     if(parentMap.growthAxis == BlockMap.GrowthAxis.Up){
    5.         localPos = new Vector3(-x * width,-y*height,0.0f);        
    6.     }
    7.     else{
    8.         //if(parentMap.growthAxis == BlockMap.GrowthAxis.Up){
    9.         localPos = new Vector3(-x * width,0.0f,-y*height);        
    10.         //}
    11.     }
    12. }
    13.    
    14. transform.parent = parentMap.transform;
    15. transform.localScale = new Vector3(
    16.                                     parentMap.tileScale.x * width,
    17.                                     parentMap.tileScale.y * height,
    18.                                     parentMap.tileScale.z
    19.                                     );
    20.    
    21. transform.localPosition = localPos;
    I'm circumventing the bug right now by creating a temporary tile on the bottom chunk before adding the desired chunk above, but it's quite a hassle and not really a proper solution.

    Apart from that, I have to say thanks for the great library!
     
    Last edited: Sep 4, 2014
  39. Marco-Sperling

    Marco-Sperling

    Joined:
    Mar 5, 2012
    Posts:
    620
    Hey there,
    this tool looks awesome and I wonder if it is still supported by the original author?
    His last post in this thread dates back to March 2013. The last news on his website seems to be from September 2012.
     
  40. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    My guess is no. )c:
     
  41. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    Kinda sad to see that there may no longer be supported, was about to buy this for a project or two but concerned if it'll even still work.
     
  42. ddesmond

    ddesmond

    Joined:
    Feb 9, 2010
    Posts:
    163
    It's even sadder when you purchase these plugins and they stop being supported
     
  43. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    The Unity Asset Store is probably worse is some ways than the iTunes App Store. There needs to be some gatekeeping here and weeding out of old unsupported assets (especially the tools types)