Search Unity

  1. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  2. Improved Prefab workflow (includes Nested Prefabs!), 2D isometric Tilemap and more! Get the 2018.3 Beta now.
    Dismiss Notice
  3. Want more efficiency in your development work? Sign up to receive weekly tech and creative know-how from Unity experts.
    Dismiss Notice
  4. Participate with students all over the world and build projects to teach people. Join now!
    Dismiss Notice
  5. Build games and experiences that can load instantly and without install. Explore the Project Tiny Preview today!
    Dismiss Notice
  6. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

TC2 Node Painter - The TC2 extension for painting the world!

Discussion in 'Assets and Asset Store' started by Seneral, Feb 5, 2017.

  1. coverpage

    coverpage

    Joined:
    Mar 3, 2016
    Posts:
    384
    Thanks for the support :) I'll drop a positive review, this is definitely recommended.
     
    Seneral likes this.
  2. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Thank you, much appreciated:)
     
  3. username132323232

    username132323232

    Joined:
    Dec 9, 2014
    Posts:
    396
    Hi. Can Node Painter "paint" a fence?
     
  4. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hey, seen you post on the TC2 thread.
    I'm afraid it's not something possible with either TC2 or my painter plugin. If TC2 could do it based on masks, that would be amazing (like, fence an area). But since your asking to paint fences manually, there are dedicated tools for that already:)
    I suggest you to take a look into these!
    Seneral
     
    username132323232 likes this.
  5. username132323232

    username132323232

    Joined:
    Dec 9, 2014
    Posts:
    396
    Thanks for clearing this up!
     
  6. vankor

    vankor

    Joined:
    Apr 6, 2017
    Posts:
    3
    is it posible to have size smaller 0.005 , i want paint walking path on terrain but brush too big with 0.005. something like 0.001 would be cool.
     
  7. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hi,
    thanks, I'll implement that for the next version. Actually have a new update planned for next week aswell as some tutorials. Stay tuned! :)
    Seneral
     
  8. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hello everyone,
    just published the first tutorial in a small series for TC2 Node Painter!


    It covers installation notes, revision of the two included examples, setup of a simple height painter from scratch aswell as a detailed explanation of the cache system.

    Hope you enjoy it:)
    Seneral
     
  9. paul_h

    paul_h

    Joined:
    Sep 13, 2014
    Posts:
    24
    Hi Seneral, thanks for your work.
    I am giving a first try to node painter but I am stuck on painting on multi tile terrains, it seems only the center tile gets painted. Could you give us a quick workflow hint for this feature?
    Thanks!
     
  10. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hi Paul,
    Well it does work without limitations on multiple tiles so I can only assume that your canvas isn't transformed correctly (or your node).
    Remember, the painter is, just like a node, only an image with definite borders, so you have to make sure the canvas fills the whole terrain.
    So just make sure you scale your object/node with your painter up (for 2x2 tiles, a factor of 2).
    If you already started painting on the center and don't want to loose that, you can also choose to EXTEND the canvas so that you get additional border areas around your normal canvas. For that, go to the resize section, multiply your current canvas resolution with the scale factor and hit extend:) It will also change the objects scale of course.

    Hope that helps you:)
    Seneral
     
  11. paul_h

    paul_h

    Joined:
    Sep 13, 2014
    Posts:
    24
    Sorry Seneral,
    my fault.. simply the TC2 node size defaults to the size of the central tile, so it must be scaled by hand to fit all the tiles. Then the painter script can be applied :)
     
  12. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Ah sure, no problem:) Make sure to use actual transform scale though!
    Seneral
     
  13. Vanidash-Studios

    Vanidash-Studios

    Joined:
    Mar 9, 2016
    Posts:
    71
    what would be the best way to flatten certain areas (make them completly horizontal)?
    Also is it possible to make a road system? painting a road with a splat texture and make the terrain to flat down only the path that was painted with the road texture?
    Sorry im kinda new to the asset
     
  14. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hi!
    You have both the Replace and Lerp blend modes to achieve that, although lerp is a bit softer and probably more natural. In combination with the shortcut to sample the height under the brush (Ctrl+Left Click) it works pretty good:) Also you have the smnoothen mode of course which will achieve the same when a very large bias is choosen, you can try that, too.

    Roads are theoretically possible, yes. With painting splats I think you mean painting with a painter, splats are only for textures... Setup and painting are a bit tricky though, so I recommend a dedicated and automated pathing solution that was specifically built for this, like the upcoming Sentieri.
    Problem is, TC2 needs both a mask and a height to specify a path. You can do that with a bit of skill! Still, painting will be annoying, because you'll constantly have to adjust the paint height when painting paths at an angle.

    Hope that helps a bit,
    Seneral
     
  15. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hey,
    after a long time, I just release a new update, with some GUI improvements (you can finally edit channels in the multi format:) ) and massive internal cleanup.
    @vankor Minimum brush size has also been lowered! 0.001 should be enough for now, can go down to pixel level even at 2k resolution now.

    From the Changelog Version 1.5:
    Seneral
     
  16. khos

    khos

    Joined:
    May 10, 2016
    Posts:
    645
    Hi, I have owned TC1 + 2 for a while, never tried your plugin/module, but see you are making a WaterSimulation, I would be interested to try this out in my game/sim, is there a way we can try or buy this?
     
  17. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Interesting you ask. It was a project from about a year and a half ago, but just a few days ago started working on it again:)
    If you're only interested in the water simulation aspect, no problem, can send you a version (nothing official). Erosion I'm currently working on:)
    Just PM me, starting to compile a project now!
    Seneral
     
  18. khos

    khos

    Joined:
    May 10, 2016
    Posts:
    645
    Thanks for your reply, I'd be interested to give it a try for sure, will I be able to make my own water flows? How does it work? I'm looking to create a river or so in a Jungle scene for my game I'm working on. Maybe I can wait for your signal when you're ready etc?
     
  19. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Ah, well it is not a river creation tool. It is currently a raw heightmap-based water simulation. Some use it for simulative aspects of a game, but for a normal river
    1. it is overkill, a fixed river needs no simulation
    2. it is visually unpleasing, currently uses a cheap shader by me

    For normal river creation, you'd use a tool like sentieri for generation (for procedural rivers), and River Auto Material for shading or manual creation:) That is as of now the best solution in unity as far as I'm aware. Of course you could also use Aquas, although that plays better in seas rather than rivers...

    Hope this helps:)
    Seneral
     
  20. khos

    khos

    Joined:
    May 10, 2016
    Posts:
    645
    No probs, but your screenshots/video looks really nice :) maybe better simulation than others?
     
  21. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Confused if you're talking about TC2 Node Painter now or the erosion simulation:D
    As for the erosion simulation, I aim for a multipurpose system for terrain processing, a bit more than normal erosion. Don't think there's anything close to this is on the store currently...
    Plans for that tool:
    1. An standalone erosion filter for terrains (like you would expect)
    2. An interactive terrain creation mode similar to this
    3. Using byproducts of the erosion simulation as masks for other terrain parts (see this at 31:40)
    Of course, again tightly integrated with TC2 but if I can also with other tools. But, the base will be standalone. Also, integrations with VS and Sentieri are planned:)
    Anyway, enough for that, it's still relatively early in production:)
    Seneral
     
  22. khos

    khos

    Joined:
    May 10, 2016
    Posts:
    645
    Ah, I was referring to your erosion demo on http://www.levingaeher.com/index.html
    If I can test/buy this let me , I would be willing to use it.
     
  23. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Alright, was confused because you referred to a video. If you want to test the water simulation, I can send you a copy privately, just remember what I said before: If you're searching for a river solution, this is not your solution most probably:)
    Seneral

    Edit: Btw, the water simulation as it is now is comparable to the interaction simulation of these assets:
    Dynamic Water System, Water Tool, Realistic Water, even Ultimate Water System (based on PlayWay)
    so it's nothing special (without erosion etc.)
     
    Last edited: Nov 5, 2017
  24. Mattness

    Mattness

    Joined:
    Apr 18, 2017
    Posts:
    8
    Hi,

    I ran into a problem related to Node Painter. I made a quite simple Island with TC some time ago and now added the latest Version of Node Painter to tweak Hights and Spaltmapping a bit.

    After entering Play Mode I experienced a very poor Frame Rate and so I used the Profiler to find out what is happening. To my surprise CPU-Load was very high and more of 90 Percent of the CPU-Time was consumed by NodePainter.Update() (see Screenshot)

    I really wonder why this happens. I mean, aren't TC and Node Painter supposed to be Design-Tools that are running in the Editor and that are not necessary at Runtime and so should not consume Time in the running game....

    Zwischenablage-1.png
     
  25. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Yes, they are. This is strange indeed. Will have a look at this immediately!
    Two options I see right now.
    First, do you somehow animate or move the object the node is on? This might trigger a rebuilt.
    Or more likely, it could be that the cache asset in one of your painters is missing. You can check it by clicking on the E button above the canvas preview and checking if the object field is assigned to a cache asset.
    Worst case could be that it searches for the cache asset and refreshes the database each frame...
     
    Last edited: Nov 17, 2017
  26. Mattness

    Mattness

    Joined:
    Apr 18, 2017
    Posts:
    8
    Yes, looks like the caching item ist missing, or moreover it seems like the Node Painter Script ist not able to find/load the Cache asset.
    When create a new Canvas it is working for some time but is loosing the link to the cache asset after some time.
    For example, when I close and open the TC Window several times (waht I do usually when working on my notebook due to lack of screen space) the link to the cache asset gets lost.
     
  27. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hm there has to be a different tie. Also, what unity version are you using?
    Helps me narrow it down, have two different paths depending if you have 5.6 and higher or not...
    Currently trying to track it down:)

    Edit: Btw, it looks for a default path based on ID and name of the canvas. If it cannot find it, yes, the cache reference is lost. usually that does not happen even after a rename because the cache is referenced as an object, but pre 5.6 it may in certain cases it seems.
    But you can always manually assign the cache file again (find the correct one and drag it into the cache asset field) and it should work again:)
     
    Last edited: Nov 17, 2017
  28. Mattness

    Mattness

    Joined:
    Apr 18, 2017
    Posts:
    8
    I'm on 5.6.0 and as long as the Cache is found Frame-Rate ist over 100 FPS.

    I created a completly new TC-Layer now and attached Node Painter to the Node, created a Canvas, presses on the E Button and Cache-Field is set to None.
    Edit: and no additional File in Node Painter/Cache was created. And no Error Message in Debug Log/Console

    Could it be a Problem that this Project is synced via Collab to my PC at Work where the Project is Placed on a different Drive/Path?
     
    Last edited: Nov 17, 2017
  29. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hm, could be related to loosing references... But not to the performance problem, that's for sure. That is tracked, but still fixing some other stuff related to the cache file getting lost. (Edit: serious stuff)

    After creation it is normal that the cache asset is null, it is only created when saving along the scene (This is what creates problems sometimes as it requires an AssetDatabase lookup during the serialization phase. This also causes the 5.6 split, pre 5.6 it gets a bit problematic).
    But as you run 5.6 it should theoretically not be a problem...
    I'm tracking it down atm, will update as soon as I got a fix!
     
    Last edited: Nov 17, 2017
  30. Mattness

    Mattness

    Joined:
    Apr 18, 2017
    Posts:
    8
    Sounds great :)
     
  31. Mattness

    Mattness

    Joined:
    Apr 18, 2017
    Posts:
    8
    Hi, me again!

    Today I wanted to work on another older project and it was a bit frustrating in the beginning because painting heigt did not work at all.
    I took me some time to realize that it was due to the fact that the Terrain was rendered by RTP with Tesselation and that TC/NP do not change the combined height map of RTP. Of course not the fault of TC/NP but it may be useful to add a sentence about this in a FAQ.

    Another thing that "got on my nerves" ;-) ist a scaling issue.
    An image in a TC-Node normally has a size of 2048x2048 and when I created a new Node Painter Canvas of 2048x2048 it only covered 2/3 of TCs image size. I have to add a scaling factor of 1.5 to the Node's transform to make it fit.
    I suspect this is related to the fact that the terrain was initially created with a size of 2000x2000 by the Buttons in the Terrain Area and then a bit later resized to 3000x3000.

    Of course it is not a big deal to add the scale but when I forget it paining will affect the worng spots. I think it would be better for the workflow if a Node Painter Canvas by default covered the whole TP-Image-Area......
     
  32. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hm RTP integration of TC2 should take care of this afaik, are you sure you have it enabled (TC2Area object)?

    Regarding the size, I'll take a look. Problem is I do not want to diverge from the standard behaviour of nodes (as the painter itself should not change sizes behind the back of the user). So instead I think of adding some kind of obvious indication as to how large the paintable area is in the scene view:)
    If you do happen to notice your boundaries are way smaller than you expected, you can always extend the canvas outwards using the Resize/Extend option. This will add pixels and space to the canvas borders while the existing stuff stays in place.
     
  33. Mattness

    Mattness

    Joined:
    Apr 18, 2017
    Posts:
    8
    Yes. Definitively. TC can generate and assign Global Colormap and Global Nomalmap for RTP but does not generate a combined Height/Nomal-Map that ist used for Tesselation by RTP and is put into the same Input Slot as otherwise the Global Normal Map would be.
    At least not Version 2.5 that I have in my project and in the release notes of later releases it is not mentioned that this was added.

    Yes, great, Expand will do the Job and add the needed scaling factors to the transform. Somehow I have always used resize till now :rolleyes:
     
  34. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Yep, might forward that to Nathaniel.
    Cool:) Well, both have their uses. Expand is not only changing the transform, but the actual placement of the existing canvas in the whole canvas. Think of cropping in/out to a new resolution without resizing the existing content.
    Resize on the other hand is, obviously, resizing the same existing content to a new resolution.
    I have planned some extended control over that, in terms of a Scene Helper that allows you to rescale and transform your canvas how you like. This gives you more option incase you only want to extend in one direction, for example.
    Seneral
     
  35. Ryry36

    Ryry36

    Joined:
    Nov 10, 2017
    Posts:
    32
    Hi I just purchased this and I'm having major lag. I'm using unity 2017.2. I followed the video tutorial and as soon as I add the node painter script it lags to 2-10FPS which is to low to make changes accurately. The demo scene works fine which is unusual. After reading the rest of the forum I'm having the same problem that the cache is missing. It never starts with it. How can I create one? Sorry I'm new to unity!
     
    Last edited: Dec 14, 2017
  36. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hi Ryry,
    That is a bug in the current version that causes the script to repeatedly update and search the assetdatabase for the cache file if it's missing (which is default for every new painter until you save it with the scene and a cache file is created). Depending on the project size, some severe lag can be observed, which is why it wasn't noticeable in my test project.
    Problem is, I'm also still facing a crash in pre 5.6 which is causing me to hold back the update until now. If you sent me you're invoice ID I can send you the patch privately (this goes for everyone)...
    As a temporary workaround, just immediately save the scene after creating a painter to force a cache asset (on a backup if you wish).
    Sorry about that inconvenience!
    Best regards,
    Seneral
     
  37. Ryry36

    Ryry36

    Joined:
    Nov 10, 2017
    Posts:
    32

    Thank you! That's an easy fix so no need for the new update until the actual release! Btw great tool now that it works!
     
  38. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Cool! Will make sure to get it ready in time...
    Seneral
     
  39. NotQuiteSmith

    NotQuiteSmith

    Joined:
    Oct 27, 2013
    Posts:
    62
    Bought this today and it's making everything easier - however it looks like I just lost the last 2 hours of work :-(. I created/sculpted the terrain, ran the project to test, all looked good. Stopped Unity, reloaded the scene and the terrain is gone. When I zoom out, it looks like the entire 2048x2048 map has been set to max height. Any ideas?

    Update: If I click the TC2 "Refresh" button, the Node Painter "Value Format New Canvas Preview Window" is almost completely white. The terrain I painted is barely visible as slightly darker smudges on the canvas (the terrain was quite subtle). I've tried exporting this image to photoshop and inverting it, etc. There's some alpha in the image and it's not clear how I can get my image data back.
     
    Last edited: Dec 24, 2017
  40. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Huh this is definitely new... never seen a canvas inverted after loading.
    Can you send me a screenshot or the canvas cache file? You get the cache file by clicking 'E' and with the project panel open click the object field, it should highlight the . bytes file in the cache folder.
    Currently sitting with my family, Christmas and all, but I'll try taking a look at it:)
    One though, did you play with the modification tab in the painter? There you can directly modify the canvas, although not invert...
    Best regards,
    Seneral
     
  41. NotQuiteSmith

    NotQuiteSmith

    Joined:
    Oct 27, 2013
    Posts:
    62
    Hope you had a nice Christmas :) Spent time with family here too so only just getting back to this! I just didn't want to start doing terrain if it was going to happen again :-(. Added a screenshot.
     

    Attached Files:

  42. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Yep, thanks, hope you too:) Agreed, although as I've never seen that before, it seems an edge case.
    What I need is info of whether you touched the modifications, and maybe the cache file to see the specifications.
    There's no code that actively inverts the colors though so I'm a bit clueless right now. One possibility is that is reads the data wrong, but that's unlikely and would most likely result in an other artifact than inversion.
    One possibility, what OS are you on? I have a suspect it's something along the lines of BigEndian/SmallEndian bytes mixed up and my code does not handle that correctly... In that case, can you open the height painting demo scene and look if it loads correctly?
    If it does, do a small painting change to it and save it again and look if it loads again... Depending on the results, the cache file indeed could help alot! :)
    You could just pack/zip all the cache files in the Node Painter/Cache folder:)
    Thanks for your assistance in fixing this,
    Seneral

    PS, I was just about to revamp my whole system today, probably an offline phase of one whole day...
     
  43. NotQuiteSmith

    NotQuiteSmith

    Joined:
    Oct 27, 2013
    Posts:
    62
    Thanks - totally understand if you need to revamp!
    OS is Windows 10. Redoing scene now and looks OK so far. I played with modifications only briefly and only used the "Set" to put baseline height to 0.02 I think (hard to remember - playing around a lot). Demo scenes all looked OK (they worked out of the box although I had the issue where an unsaved scene caused lag). And...you're going to love this...I think I just overwrote that cache file by hitting "set height" again and saving/running the scene. I'd say that your forehead is hitting the desk about now! I need to get some things finished so I'll just carry for now! If I manually copy the cache folder, will that allow me to manually restore if the issue happens again?

    FYI I painted terrain in demo scene, save, reload, all looks OK.
     
  44. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Ok, so no issue with cache file most probably except if it is more or less random (highly unlikely). So probably some one-time error (I would assume), maybe with internal graphics. Did it happen a second time?
    Yes you can just take a copy of the whole folder or only your painter's cache file and you can restore that version...
    Just hit 'E' in your painter above the canvas preview and hit the object field with the project window open and it will highlight the correct cache file that it is using:) You can even, in Unity, duplicate the cache file, and if the original one is corrupted again, drag the copy in the cache field (in the 'E' header), from then on the painter will use the copied cache file instead of the origingal one:)
    Seneral
     
  45. NotQuiteSmith

    NotQuiteSmith

    Joined:
    Oct 27, 2013
    Posts:
    62
    Cool thanks. I'll manually backup and proceed - if it happens again I can send cache file. Thanks!
     
  46. NotQuiteSmith

    NotQuiteSmith

    Joined:
    Oct 27, 2013
    Posts:
    62
    Hi. I just got the same issue that Mattness had in Nov 2017 (just above on this forum page) - where a missing cache file caused NodePainter.Update to use 98% of the processor. Easily fixed by copying the cache file - but my question is that, since it's not usual to keep external modules (like NodePainter) in source control, it means these cache files aren't being saved along with my project. Could you tell me which NodePainter files I should move to source control? Is it just these cache files? Do they have to be in that cache subfolder or can I create/move them into a source-controlled location?

    Thanks!
     
  47. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hi, I already do have a fix for that, previously held it back because of a different error. Will submit it in the next days, and also raising the minimum required version to 5.3.8...

    Regarding cache files and source control, you can just move them around and it will work because it references them, but incase something goes wrong you need to reassign the cache file manually. A better option is to move the whole folder and configure node painter to use that folder instead (NP Settings window/ cache folder). Then, also include the settings file that has been created in the ProjectSettings folder so the folder change is also embedded in the source control:)
    Hope that helps!
    Seneral
     
  48. NotQuiteSmith

    NotQuiteSmith

    Joined:
    Oct 27, 2013
    Posts:
    62
    I now have the cache files in a new folder and under source control - works great - thanks!
     
    Seneral likes this.
  49. txarly

    txarly

    Joined:
    Apr 27, 2016
    Posts:
    173
    Hi,

    When i save the project in Unity, al the cachefiles disappear from the tc2 nodes,so i have click each node and to load them all one by one(i have many node painter nodes).Is there a way to load all of them at the same time or a way to avoid this behaviour?

    thanks
     
  50. Seneral

    Seneral

    Joined:
    Jun 2, 2014
    Posts:
    1,144
    Hi! This is definitely unexpected behaviour, never seen that before... What unity version are you using?