Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Ferr2D Terrain Tool

Discussion in 'Assets and Asset Store' started by koujaku, Oct 9, 2013.

  1. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    I looked at it a bit! I didn't delve too far into it though, I wasn't very impressed. It looked to me like a direct rip of Ferr2D without any major improvements. They didn't learn from my mistakes either, they actually copied those too. If I was going to re-write Ferr2D with a team of Unity engineers, I would definitely have gone a different route.

    I did chat with their 2D team a long while back after I first saw SmartSprite. Nice people for sure! We were hoping to work together in some form or another, but things didn't end out lining up.

    Ferr2D turned 4 years old late last year! After working and thinking about path based code and Unity extensions for so long, I really know everything sooo much better than I did then. Like, I have 3 Unity certifications now, and even helped write questions for one of them! Ferr2D 2.0 is definitely coming this year, and from all the stuff I've learned, it's going to be pretty killer.

    If they release SmartSprite, it might be able to compete with Ferr2D as it is now, but I don't think it'll hold a candle to some of my upcoming features :)
     
    MechEthan, Lars-Steenhoff and BTStone like this.
  2. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
    Line 810 is:

    Code (CSharp):
    1. 804: if (sharpCorners)
    2. 805: {
    3. 806:   MergeCorner(ref curr, ref curr);
    4. 807: }
    5. 808: if (curr.Count > 0) result.Add(curr);
    6. 809:
    7. 810: return result;
    Pretty weird huh

    I haven't modified the code in any way, the reason the line numbers don't match up is I used Visual Studio's auto-formatting as I like to read code a specific way.

    Also, yeah this has been happening on and off since the first time I added Ferr2D to the project. I haven't used Ferr2D on other projects so it could be specific to my project
     
  3. sleekdigital

    sleekdigital

    Joined:
    May 31, 2012
    Posts:
    133
    Feeling ignored :(
     
  4. maltakereuz

    maltakereuz

    Joined:
    Mar 29, 2015
    Posts:
    43
    I wounder nobody have problems with "blocks and edges" like me, in #1238.
     
  5. sleekdigital

    sleekdigital

    Joined:
    May 31, 2012
    Posts:
    133
    1. If you don't mind leaving one of the sides blank in your terrain material you can just switch to that side as needed. That said, the ability to toggle edges on/off per side would be nice. Until then I just use the same "side" for both left and right when I need to have the option to turn off an edge.
    2. I would just minimize the amount of seams by not breaking it up into quite so many pieces... Only create a new terrain when you really need to.

     
  6. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    Inner caps are used when the corner's outer angle is less than 180! If you're thinking of the top edge, this is basically when the path goes up at a corner instead of down. It's an occasion where people might want to do different art for the caps, climbing stuff instead of dangling bits.

    I haven't tested it much, I don't think I even have a usage case in my example assets! If it's not working as described, definitely let me know!
     
  7. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    I definitely understand this one, and do have plans to solve this procedurally the future! I've been working on some knifing tech that'll allow me to actually cut the terrain mesh/colliders up into a grid automatically.

    My suggestion in the meantime would be to design your seams differently, a little more context sensitive than just a grid, so there's fewer seams you need to hide. The solution @sleekdigital has is also pretty solid too, and probably matches a little better with what you're looking for!
     
  8. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    Yeah, I'm still a bit baffled. What sort of collider settings are you using? If I can repro it on my end, I should be able to fix it.
     
  9. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
    At the moment I've got Create Collider ticked, most of my Ferr2D objects are Inverted Closed, but some are Closed. everything else is mostly default. So it's a PolygonCollider2D with all the other Collider options default. I've tried it with Prebuilt Colliders too but doesn't seem to make a difference.

    It's probably going to be very hard to reproduce it on your end, today weirdly it's only crashed maybe once or twice, whereas other days it can crash quite a lot.

    I suppose if you are rewriting a lot of this stuff it's not going to matter in the long run. I hope you get around to it soon though! :)
     
  10. maltakereuz

    maltakereuz

    Joined:
    Mar 29, 2015
    Posts:
    43
    Thank you for idea. It would work for me, but if i make right edge empty for all terrains, only to make some bottom terrains invisible, then i must manually adjust ALL terrains in level, and set all right edges to be actually left. Pretty annoying. But thank you, this is a working solution (which generates an overhead of manual job.

    Or i could make two copies of each terrain, one normal and one with left-right hack. And use edgeless copy for seam-terrains only. But having all terrains twice is also does not make life very simple.

    So i better first try just disable edge drawing with if-instruction. My suggestion is something like this could work:
    Code (CSharp):
    1.  
    2. public class Ferr2DT_PathTerrain {
    3.  
    4.    public bool ignoreTop;
    5.    public bool ignoreBottom;
    6.    public bool ignoreLeft;
    7.    public bool ignoreRight;
    8.  
    9.    ...
    10. }
    11.  
    12. public interface IFerr2DTMaterial {
    13.     ...
    14.    Ferr2DT_PathTerrain src;
    15. }
    16.  
    17. public class Ferr2DT_Material {
    18.    ...
    19.    public Ferr2DT_SegmentDescription GetDescriptor(Ferr2DT_TerrainDirection aDirection) {
    20.        if (src == null) {
    21.            Log.Warn("Terrain must be always set for material for ignore edges feature");
    22.        } else {
    23.            if (aDirecction == TOP && src.ignoreTop) {
    24.                return new Ferr2DT_SegmentDescription();
    25.            }
    26.        }
    27.        ...
    28.    }
    29. }
    But seams problem is acutally vice versa: level must be composed from little modular peaces and edges should be avoided. Cutting a big terrain into grid would be nice too, but i dont really understand how it will help with seams.
     
    Last edited: Jan 17, 2018
  11. maltakereuz

    maltakereuz

    Joined:
    Mar 29, 2015
    Posts:
    43
    Curves look very nice and appropriate for terrains! Waiting for it!

    Is it planned only Bezier curves? Catmull rom curves are pretty much the same, but are easier to handle, since the splines always go through control points, what is not the case for bezier. For example a popular "Curvy" asset uses catmull rom, not bezier as default type.
     
  12. Rodlaiz

    Rodlaiz

    Joined:
    Jul 30, 2013
    Posts:
    32
    Hello, I'm loving your package! It's a great library.
    I have a question. When I choose Gradient in the Color Vertex Type. Is there a way to have a global gradient ? I mean:
    Right now the gradient is automatically fixed to the size of my terrain. I would like that the start and the end of the gradients were conditioned to the width of the screen. In that way if I do different modules of terrains I can combine them seamless. (I hope my question make sense) Thank you
     
  13. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    Ferr2D actually uses Catmull-Rom for curves right now! That was actually my exact thought when I first implemented it, I didn't want to be handling all the control points that Bezier needs! The problem is that this sacrifices a significant amount of control, you need to add a ton of extra verts to get specific Catmull-Rom curves, making it even more tedious than working with Bezier handles.

    There's two things that really changed my mind!
    I found it's quite easy to automatically calculate Bezier control points that look good, which makes it just as simple to work with as Catmull-Rom. You'll only ever need to play manually with Bezier handles if the auto handles aren't good enough for you. The key thing is that the choice will be present!
    And, it's really easy to represent sharp corners and flat path segments with Bezier! This allows me to just represent everything as a single curve, instead of switching between a "smoothed or unsmoothed" mode and chopping up the path into curved segments. Simpler code, less room to make bugs, and more options available to the designer :) You can mix and match curved and sharp terrain!

    So yeah, I'm extremely happy with changing over to Bezier, and I'm 100% certain you'll enjoy it too!
    Ferr2D does not do any sort of global gradient, sadly! It's all local. That does raise an interesting question though, I'll have to think about that.

    In the meantime, here's some code you can play with. You'll probably need to tweak it for your specific case, or build an interface for it, but it might suffice. You'll probably need to run it anytime you change a terrain, but that's not too bad for a final pass :) Combine it with Preserve Vert Color mode if you want it to look ok while editing.
    Code (CSharp):
    1. public class GradientWorld {
    2.     [MenuItem("Tools/World Gradient")]
    3.     public static void Execute() {
    4.         float    startX    = 0;
    5.         float    endX      = 10;
    6.         Gradient gradient  = new Gradient();
    7.         gradient.colorKeys = new GradientColorKey[]{ new GradientColorKey( Color.white, 0 ), new GradientColorKey( Color.black, 1 ) };
    8.  
    9.         var terrains = Object.FindObjectsOfType<Ferr2DT_PathTerrain>();
    10.         for (int i = 0; i < terrains.Length; i++) {
    11.             Mesh mesh = terrains[i].GetComponent<MeshFilter>().sharedMesh;
    12.             GradientMesh(mesh, startX, endX, gradient);
    13.         }
    14.     }
    15.     public static void GradientMesh(Mesh mesh, float startX, float endX, Gradient gradient) {
    16.         Vector3[] verts = mesh.vertices;
    17.         Color  [] cols  = new Color[mesh.vertexCount];
    18.         for (int i = 0; i < verts.Length; i++) {
    19.             cols[i] = gradient.Evaluate(Mathf.Clamp01((verts[i].x-startX)/(endX-startX)));
    20.         }
    21.         mesh.colors = cols;
    22.     }
    23. }
     
    Lars-Steenhoff likes this.
  14. maltakereuz

    maltakereuz

    Joined:
    Mar 29, 2015
    Posts:
    43
    Sounds very interesting. I am curious what this auto handles look like. Probably "corners" from #1247 are theese auto handles.


    I think i did it:


    I have added hide edges to visuals section. Here is diff patch, if somebody needs it, here is a git-diff-patch. (i moved ferr2d to Libs directory so paths are not correct)

    Note some points if you want to use it:
    • I just did it, so it is not tested at all. May be it has some performance problems. Not sure if it is ok to reference terrain in every Ferr2DT_Material.
    • May be it would be better to hide certain edges, not all top/left/right edges once. So in this image:

    Hide edges is set to Left. As you can see all edges manually set to left are hidden, not only left side.
    • All my prefabs are updated now, like this

    Looks harmless, but what if i want to update Ferr2D...
    • It makes no sense to hide all 4 edges. Is it simpler just to switch terrain type to Fill Only.
    • I did not really got difference between Ferr2DT_TerrainMaterial and Ferr2DT_Material. To adjust only the first class looks work well.
    But it looks to solve seams problem pretty easy, so i will risk to use this modification.

    upd
    Ferr2DT_Material must be updated the same way as Ferr2DT_TerrainMaterial. Otherwise it does not work for user-defined terrains. Only for build-ins.
     
    Last edited: Jan 17, 2018
  15. BTStone

    BTStone

    Joined:
    Mar 10, 2012
    Posts:
    1,167
    Uh! Could you, by chance, list some of the upcoming features?
     
  16. Ashlanfox

    Ashlanfox

    Joined:
    Apr 14, 2015
    Posts:
    3
    Thanks for the amazing asset, it works perfectly!
    I'm just having some issues with the infinite terrain, but more specifically with the Randomize Edge. When I play the demo on your website terrain edges are not reloading each time a vertex is added (which is typically what I want) but when I run the demo inside the package (6 - ExampleInfiniteTerrain) I can clearly see that edges are being re-rendered.
    I haven't changed anything in the inspector (random edge is activated). Anyone else having this issue?

    Edit: By the way if I wanted my generated terrain to have a specific angle (down hill effect kind of), how should I proceed?

    Thanks again for the excellent support through the years!
     
    Last edited: Jan 19, 2018
  17. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    Randomize edge might be a bit of a problem! I've since changed the way that texture segments are generated to get a way better visual quality, and it doesn't really allow for consistent placement necessary for that feature to work as intended.

    For a runner style game, I've definitely shifted my thinking to a prefab-based style of generating terrain! Make a bunch of prefabs, and then spawn them as the player runs on. It's simpler, looks better, is more configurable, and doesn't suffer from mesh-rebuilding hitches. I'll try and remember to re-do the demo scene to reflect that!
     
  18. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    I also wanted to mention that I'm starting work on a big update! Planning to have it done in the next two weeks or so, but it may take a little longer for me to get it ready for the Asset Store.

    The primary feature will be the new path system! Bezier curves and arc corners. Should also fix all the closing segment issues you guys have been having.

    Ferr2DPathingUpdate.gif
    Arc corners in-action, without any closing segment issues :)

    Since I'm mucking about in the edges, I'll also be re-doing a lot of the collision code. I'm not 100% sure what that'll look like yet, but I think you'll end up with something a little better!

    I'll also be looking into additional edge overrides, so you'll have the 4 auto: top, left, right and bottom, but also some additional for hiding an edge, or for unique segments of some sort!

    @BTStone I don't know if I want to commit to many future features! Some of them may come as separate packages, and some of them may never end up becoming reality. I have a lot of ideas revolving around 2D lighting right now, and a lot of features that may come from my procedural content framework! I'm mostly just excited about a whole pile of cool things :)
     
  19. AlcyonGames

    AlcyonGames

    Joined:
    Sep 16, 2016
    Posts:
    39
    Let me congratulate you on this amazing asset!, it's getting better and better!!
     
  20. Ashlanfox

    Ashlanfox

    Joined:
    Apr 14, 2015
    Posts:
    3
    I'll look into that method then :)
    Quick question about how to implement the prefab-based style of generating terrain.
    If at a time t with last terrain A, if I need to instantiate another terrain (B) for my runner how should I approach the merging of A and B? Adding a vertex to B path at position of A path last vertex position? Keeping an end and begin vertex path slope of zero?

    Update looks neat! Keep it up =)
     
    Last edited: Jan 23, 2018
  21. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,795
    can you also make a pixel art mode, for pixel perfect snapping?
     
  22. Ashlanfox

    Ashlanfox

    Joined:
    Apr 14, 2015
    Posts:
    3
    Here's koujaku answer based on my previous post (and thanks again for your help):

    twitter.PNG
     
  23. AlcyonGames

    AlcyonGames

    Joined:
    Sep 16, 2016
    Posts:
    39
    Hi Koujaku!, first of all, let me congratulate you over Ferr Vertex Painter, I didn't knew you were working on a different asset too. Regarding that asset, you don't have a forum yet (at least listed on your webpage or asset store) and I had a couple of questions that I posted on your youtube videos regarding Ferr2D. I think you're more active here on the forums than on youtube.

    1.- Would you do a video showcasing it over a Ferr2D material?, also. Can you for example have a Ferr2D Terrain with 3 textures, for example a cave rock material, then a moss material for blending and also blending a third one -> Water, and then apply flow only on the water?. THANKS!

    2.- Does everything of Vertex Painter works with Ferr2D then? blend, flow, etc?

    Thanks! I was just so suprised to see that asset. Really amazing!
     
  24. v-line

    v-line

    Joined:
    Feb 13, 2013
    Posts:
    10
    Hi. Im working with Unity 2017.3 and all the Ferr in scene controlls disapeared.

    I can edit the verts positions through the inspector, but not in the scene view using the mouse.

    I tried to crate an empty 2017.3 project and imported the package directly fromt the Assets Store. But still can not see the controlls .



    Update:
    From time to time, I see this eeror in the console (even in empty project with only Ferr2D imported):
    ArgumentOutOfRangeException: Argument is out of range.
    Parameter name: index
    System.Collections.Generic.List`1[Ferr2DT_TerrainDirection].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
    Ferr2DT_PathTerrain.GetSegments (System.Collections.Generic.List`1 aPath, System.Collections.Generic.List`1& aSegDirections) (at Assets/Ferr/2DTerrain/Scripts/Ferr2DT_PathTerrain.cs:1185)
    Ferr2DT_PathTerrain.GetColliderVerts () (at Assets/Ferr/2DTerrain/Scripts/Ferr2DT_PathTerrain.cs:662)
    Ferr2DT_PathTerrainEditor.OnInspectorGUI () (at Assets/Ferr/2DTerrain/Editor/Ferr2DT_PathTerrainEditor.cs:318)
    UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor[] editors, Int32 editorIndex, Boolean rebuildOptimizedGUIBlock, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1245)
    UnityEditor.PopupCallbackInfo:SetEnumValueDelegate(Object, String[], Int32)
     
    Last edited: Jan 29, 2018
  25. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
    Make sure your Ferr components aren't collapsed in your Inspector window, like this:

    upload_2018-1-30_13-49-4.png

    Ensure they're opened up, like this:

    upload_2018-1-30_13-49-31.png
     
  26. v-line

    v-line

    Joined:
    Feb 13, 2013
    Posts:
    10
    Thanks for your help, but it didn't work. I also checked that the inspector is not in the Debug mode.

    Update: I sent an email to the support, and Nick Klingensmith answered me super fast. For now, I'm waiting for the next update, but maybe someone will have an idea about the issue.

    I found some additional symptomes:
    1. Seems that it works in new project created in unity 2017.2 with even if I open it in Unity 2017.3 afterwards
    2. If I create an empty project in 2017.3, it doesn't work
    3. For projects, where it doesn't work I found another strange thing. When I try to check/uncheck Closed tick in the Ferr2d_Path, it doesn't change the state and the bottom edge disappears
     
  27. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
    Just for reference I am running 2017.3 on Windows 10, and Ferr2D is working fine for me, so it's definitely something to do with your installation. I'd suggest completely reinstalling Unity, trash your asset store downloads and redownload and try again.
     
  28. v-line

    v-line

    Joined:
    Feb 13, 2013
    Posts:
    10
    Thanks. I will try to make a fresh install and see if it helps.
     
  29. PowerhoofDave

    PowerhoofDave

    Joined:
    Jun 26, 2015
    Posts:
    58
    Hi Koujaku, loving Ferr2D! We're using it for our project http://regularhumanbasketball.com and it's been brilliant so far!

    An issue I found I thought I'd report- When I hit apply on any prefab in a scene, any references it has to scene objects are reset to null. It seems to be caused by these lines in Ferr2DT_Builder.cs
    Code (CSharp):
    1. if (PrefabUtility.GetPrefabParent(Selection.activeGameObject) == o) {
    2.     PrefabUtility.RevertPrefabInstance(Selection.activeGameObject);
    3. }
    I've hacked it so that it only does that for objects that contain terrains for now, but not sure what the real solution is. Using Unity 5.6 if that helps.
     
  30. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
    I've noticed a similar issue - for me sometimes when I save the scene after doing a bunch of edits on a prefabbed ferr2d object all my changes are gone. It doesn't happen all the time and not too sure what causes it or how to recreate it reliably yet
     
  31. shotoutgames

    shotoutgames

    Joined:
    Dec 29, 2013
    Posts:
    224
    Great asset but my game uses a 3d character as player. Any tips on how to create levels compatible with 3d characters.
    More or less looking for a way to maybe add some Z depth to the "platform" materials created when designing a level.
     
    Last edited: Feb 5, 2018
  32. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
    @marvalshot Ferr2D has an option to generate colliders automatically using 3D colliders instead of 2D ones:

    upload_2018-2-6_16-51-29.png
     
  33. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
  34. shotoutgames

    shotoutgames

    Joined:
    Dec 29, 2013
    Posts:
    224
    Turned that on previously with no luck but it looks like it's a problem with my player ground detection not Ferr :) . Thanks! Also is there a feature list for 2.0 available.
     
  35. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
    @koujaku Is there some way to create/Add a Ferr2D Path Terrain component in runtime?

    I'm writing a script that duplicates my Ferr level to use as a drop shadow effect and I'm trying to copy the component to a newly generated gameobject in runtime, but it looks like Ferr2DT_PathTerrain expects all of its settings to be set up before you enter play mode. If I add the component and then immediately set up its settings it's too late and errors come up as TerrainMaterial is not yet set by then

    I've got it working perfectly if I pre-build the shadow ahead of time, no errors, but if I do it in Awake() or Start() well it kind of works but it throws an error
     
    Last edited: Feb 9, 2018
  36. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    This is a trick I've used on occasions! If you want to delay Awake/Start until everything is set up, try deactivating the GameObject first! My workspace is in a weird state with all the 2.0 work, so I haven't tested it out, but it should do it!
    Code (CSharp):
    1. GameObject go = new GameObject();
    2.  
    3. // deactivate the GameObject, prevents Awake/Start messages from occuring
    4. go.SetActive(false);
    5.  
    6. SomeComponent c = go.AddComponent<SomeComponent>();
    7. c.Init(12);
    8.  
    9. // everything set up, now let it receive those messages!
    10. go.SetActive(true);
    I've seen that one, and even written a partial fix for it, but I haven't found a solution that I'm happy with yet! The issue is that when applying changes to a prefab, Ferr2D will detect changes and rebuild the mesh immediately afterwards. This results in a new mesh saved in the scene in addition to the mesh saved with the prefab. Double the meshes, extra file size we don't want!

    Reverting the entire prefab restores the prefab's copy of the mesh properly, but does seem to unfortunately eliminate scene references. Selectively updating the mesh reference would seem to be a simple fix, but for some reason isn't as trivial as it should be =/ Hopefully I'll have a proper fix for that with 2.0
     
  37. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    The 2.0 update is primarily a re-write of the path code. Since that's so core to Ferr2D, it also ends up being a re-implementation of pretty much everything! (hence 2.0) So while the new feature list is somewhat small, most existing features will be improved incrementally, and a lot of bugs will be gone. I'll also have a nicer, more flexible codebase that will allow for more interesting updates in the future.

    The big change is the path tool, of course. I posted a gif earlier, but here's a few more :) Note that these are development gifs, so the final thing does look a little different from some of these.

    Ferr2DCornerModes.gif
    The new control point types!

    Ferr2DLegacyStretch.gif
    Curves are waaay higher quality! Also, a legacy system that will support old v1 terrains side-by side, for an easier upgrade.

    Ferr2DMultiSelect.gif
    Multi-select without holding Ctrl+Shift! You can also see here that I've spent a bit of time de-cluttering the UI, there should be far fewer handles lying about in general.

    There's a lot more small stuff, and I'll have a complete list later. Right now I'm working on re-implementing the Segment Lock Mode, that's the last really big item left before the beta will be ready! :)
     
  38. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
    Wow, that's so.. obvious I can't believe I didn't think about doing it this way haha. Thanks for that and can't wait for the 2.0 beta
     
  39. AlcyonGames

    AlcyonGames

    Joined:
    Sep 16, 2016
    Posts:
    39
    @koujaku would you please answer these questions? or open a forum for Ferr Vertex Painter? I'm really really interested on that asset!

    Also is it possible on Ferr Vertex Painter that the textures write to the Z buffer? That way I can use ferr2D better with perspective camera, horizontal planes (that cause "overlapping errors" by using sorting layers) and also use Depth of Field, Motion Blur, etc. Those post processing effects read on the Z.
     
  40. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    I would like to make some sort of a forum for Ferr Vertex Painter, but I don't spend quite enough time on this one as is! (Sorry, I try.) Best way to get in touch with me is always the support email, but pinging me on Twitter works too!

    I'll definitely be making a video for Vertex Painter + Ferr2D! Once I'm finished with the Ferr2D 2.0 beta, I'll be going through a documentation sprint where I'll bring all the Ferr2D docs up to date before full release, Vertex Painter tie-ins included.

    Everything in Vertex Painter should work on anything with a mesh! I added extra tie-ins to Ferr2D to preserve painting data when you make modifications to the terrain. Without those, you'd lose all paint data when it rebuilds! But also a few other things to make the experience a little nicer :)

    Mixing flow and texture blending on the same material isn't going to work as is, but it's a nice thought! I've been planning to add support to some shader graph tools like the new one in 2018.1, though I haven't checked if it supports extensions like Amplify does! That way you can make whatever blended shaders you can dream up! But I have a few other tools to update before I get to that.

    Z buffers and transparent materials are the bane of graphics programmers everywhere! This is a complex topic that as far as I know, doesn't have a good generic solution just yet. Painting Z-values unfortunately isn't likely to help much, and post effects may need to be specifically built to operate in a transparency-heavy environment.

    I've heard of Depth of Field effects that will split the scene into foreground/background textures, blur the background and then combine. It's not as nice as a more accurate DoF model, but it would likely work regardless of transparencies!

    I may do some research on this topic in the future, I might be missing some more recent tricks. If anyone knows more about this topic, I'd be glad to hear about it!
     
    AlcyonGames likes this.
  41. smartnspiffy

    smartnspiffy

    Joined:
    Jun 22, 2016
    Posts:
    9
    Hi,

    I'm looking for a way to make the top of my terrain's collider a different physics material than the other sides. Is there a way to do that?

    Thanks,

    Ori Pessach
     
  42. AlcyonGames

    AlcyonGames

    Joined:
    Sep 16, 2016
    Posts:
    39
    Thank you for all the clarification. Don't worry, I know you're busy with Ferr2D and other stuff. But let me tell you that Ferr Vertex Painter is going to be awesome, and is already really good! Take your time, we will use it for sure in the future on our recent project (We are Alcyon Games the guys on twitter behind Elyra: Echoes from the Void, can't change the forum name).
    Yeah I know that Z-depth just doesn't work with transparency and I suppose that Vertex painter use it to blend textures. Btw, blending textures with flow textures would be really good.

    Thank you again for the response!
     
  43. arvzg

    arvzg

    Joined:
    Jun 28, 2009
    Posts:
    586
    @koujaku I mentioned this before but it got a bit lost amongst the other messages:

    Also not sure if this is already going to be fixed with all the rewrites in 2.0, but there's another bug that's also been killing me. If you turn a gameobject that has a ferr on it into a prefab, when you save your scene ferr automatically does a revert on itself, reverting any changes to the gameobject since the last time you applied changes to the prefab.
     
  44. TeaDino

    TeaDino

    Joined:
    Nov 10, 2016
    Posts:
    1
    Hi,

    Thanks Koujaku and co for making such a great tool! It's working awesome. I have encountered a strange problem however:

    When I revisited a terrain object to add more path points and to also rescale a point, the size of the terrain shrinks.

    Pic below shows the bottom tiles breaking off and revealing the sky behind them, which is not how it was before. Also, the neighboring platform on the upper right was also affected.


    Pic Below: What the base platform looked like in comparison, before it broke size (left). Note that all tiles on all four directions are generally larger. I checked the inspector and the broken terrain(right) was not at a 1-1-1 scale like the base terrain on the left. It shrunk, somehow. The colliders themselves did not change size.


    I tried doing CTRL+Z to revert the change but nothing happened?
    I will note that all the terrains in the scene that were broken/shrunk at the same time were duplicates of eachother, so maybe that has something to do with it?

    Thanks,

    Teadino
     
  45. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    This looks pretty weird! Have you looked at your scene in 3D? It looks like your terrains might be rotated on the x-axis or something. That plus a combination of large z-offsets may be making those holes. Smaller z-offsets are always better :)

    This one is on my radar! I have a partial fix, but not one I'm happy with yet. I will aim to have it fixed properly in 2.0.
     
  46. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    I just sent out beta versions of Ferr2D 2.0 yesterday! I'll be running the beta for current Ferr2D owners while I'm working on new documentation, so there's still plenty of time to sign up and try it out if you're interested!

    Fill out the form here, and I'll get a copy to you, probably by the end of the day: https://goo.gl/forms/VJyBav39L55Sj9JJ2

    Here's some other new things I put in!

    Ferr2DNewEdgeOverrides.png
    Additional edge types! You can now add as many edge types as you like! The first four behave automatically as usual, and the rest are accessible through the edge override feature :) Terrain Materials now contain collision data, so you don't have to set that up on every single terrain object anymore, -and- you can also apply physics materials to specific edges!

    Ferr2DCastleExample.PNG Per-cap offsets and collider info, so lining things up, especially for inner corners, is much easier now! Offsets are also now related to PPU, so changing the PPU won't mess up your cap alignment!
     
    AlcyonGames likes this.
  47. smartnspiffy

    smartnspiffy

    Joined:
    Jun 22, 2016
    Posts:
    9
    Hi,

    I downloaded the beta and I'm trying to get something done with it - it's not clear how to do most of the things you show in the screenshots in this thread. Is there any documentation?

    Specifically, when I create a terrain it defaults to spline mode. How do I disable that, or at least, how do I create sharp corners?

    Thanks,

    Ori Pessach
     
  48. koujaku

    koujaku

    Joined:
    Aug 28, 2013
    Posts:
    321
    I'm still working on the documentation for the new version, all that I have so far is what I sent you in the email :) I'll definitely have that done before I release it! You're more than welcome to email me a question if something isn't clear.

    I did write this in the email, (apologies for making that long, I was trying to be thorough) but if you hold 'C' and click on a control point, it'll switch control point modes. Currently, adding a new control point will use the mode of the control points next to it, but I'm open to feedback there. Please do send me an email if you have opinions on that! :) Control points default to Sharp on new terrains.
     
  49. tomraegan

    tomraegan

    Joined:
    Mar 28, 2016
    Posts:
    99
    Hi!

    Well done on your app. Hope it's rewarding for you to develop, because it's surely one of the best apps out there.

    I did a search and couldn't find recent reference to it, but is there a way to atlas sprites using Ferr2D?
     
  50. tomraegan

    tomraegan

    Joined:
    Mar 28, 2016
    Posts:
    99
    Wow, I feel serendipitous...first time ;)

    Just signed up for the beta after watching some fancy new youtube tutorials.
     
unityunity