Search Unity

Map Magic World Generator - a node based procedural and infinite game map tool

Discussion in 'Assets and Asset Store' started by Wright, Mar 10, 2016.

  1. antony57

    antony57

    Joined:
    Sep 9, 2017
    Posts:
    28

    Yes I did that but I can't manage to flatten two different areas of two differents size :(
     
  2. Will-D-Ramsey

    Will-D-Ramsey

    Joined:
    Dec 9, 2012
    Posts:
    221
    Running into Mapmagic/Voxeland issues causing holes in the terrian
    upload_2017-12-1_21-19-15.png
    Any ideas?
     
  3. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    Hello,
    First, I love MapMagic. It has made making my dreams of terrain creation seem very possible.
    That being said, I want to learn more about modifying existing generators. I read through your examples of creating a new generator and am wondering if I need to create a new generator or if there is a way to manipulate an existing generator. Basically, I want to be able to switch out raw images on the raw image generator. I will have one large map and it will lead to the smaller procedurally generated maps. Rather than having bunches of separate scene each with their own MapMagic setup, I was hoping I could have one scene and just swap out the raw image, using code, when I need to switch locations. I plan on only having a 3x3 or 4x4 map for the MapMagic maps, with the center being the POI and the edges being dressing to put into context. Using spawners and seeds I can very placement enough, but changing the raw image would go a long way towards making it all look different and would allow me to focus on the rough details of each of the raw images for the POI areas.
    I hope this makes sense.

    -bop
     
  4. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    509
    I think it won't work like this because for Global Maps (Color map, tessellation map) we need RTP on each tile separately.
     
  5. belkovandrew

    belkovandrew

    Joined:
    Nov 19, 2014
    Posts:
    22
    Hello, suddenly I got this error and I can not pin my terrain tiles, did not change anything, only bought an asset called multiterrain brush... Not sure if its the reason...
    I'm using mapmagic with CTS, so I have to download a fix from your github long time ago, it was all fine but now i have this.. please help

    Prepare Error: System.NullReferenceException: Object reference not set to an instance of an object

    Prepare Error: System.NullReferenceException: Object reference not set to an instance of an object
    at MapMagic.Chunk.PrepareFn () [0x0000b] in C:\sources\r\Taiga\Assets\MapMagic\Main\Chunk.cs:212
    at MapMagic.ThreadWorker.PrepareFn () [0x0001d] in C:\sources\r\Taiga\Assets\MapMagic\Main\ThreadWorker.cs:505
    UnityEngine.Debug:LogError(Object)
    MapMagic.ThreadWorker: PrepareFn() (at Assets/MapMagic/Main/ThreadWorker.cs:518)
    MapMagic.ThreadWorker:UpdateApply() (at Assets/MapMagic/Main/ThreadWorker.cs:213)
    MapMagic.ThreadWorker:Refresh() (at Assets/MapMagic/Main/ThreadWorker.cs:143)
    MapMagic.MapMagic:Update() (at Assets/MapMagic/Main/MapMagic.cs:261)
    UnityEditor.EditorApplication:Internal_CallUpdateFunctions()

    MapMagic works good in the other scenes... but not in my mainscene
     
    Last edited: Dec 2, 2017
  6. ibyte

    ibyte

    Joined:
    Aug 14, 2009
    Posts:
    1,048
    @Wright I have a 8192 texture .tif file used as input for base height map. I get stair steps, what is the best way to take full advantage of the high resolution?

    stairStep.PNG
     
  7. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I've got a floating point error system working. Still not fully plugged into my game, but the test project works. I ran out to 15km without getting any errors. MapMagic is still trying to draw the preview outlines of the terrains incorrectly, but the terrains themselves are shifting seemlessly back to zero once reaching the threshold.

    Step 1:
    In WorldShifter.cs at line 14 I added:
    public static Vector2 totalShifted = new Vector2();
    Though this should probably an integer representing the total number of thresholds passed so we can go into the trillions.

    Step 2:
    In WorldShifter.cs at line 28 I added:
    totalShifted = new Vector2(totalShifted.x + x, totalShifted.y + z);

    Step 3:
    In WorldShifter.cs starting at line 36 I replaced the shift everything logic with precise definitions so you don't move you Enviro, you Managers, or whatever else. For this example it's just shifting the player and the terrain underneath the MapMagic parent, so you need to add anything else in here that you need shifted.
    Code (CSharp):
    1.  
    2.             //shift the player
    3.             GameObject player = GameObject.FindGameObjectWithTag("Player");
    4.             Vector3 oldPlayerPos = player.transform.position;
    5.             player.transform.position = new Vector3(oldPlayerPos.x + x, oldPlayerPos.y, oldPlayerPos.z + z);
    6.  
    7.             //shift the terrains
    8.             for (int t = 0; t < MapMagic.instance.transform.childCount; t++) {
    9.                 Vector3 oldTerrainPos = MapMagic.instance.transform.GetChild(t).position;
    10.                 MapMagic.instance.transform.GetChild(t).position = new Vector3(oldTerrainPos.x + x, oldTerrainPos.y, oldTerrainPos.z + z);
    11.             }
    12.  
    Step 4:
    In Extensions.cs at line 847 I add the WorldShifter.totalShifted values to the percieved MainCamera location, convincing MapMagic that we are actually at a different location than zero.
    camPoses[0] = mainCam.transform.position - new Vector3(WorldShifter.totalShifted.x, 0, WorldShifter.totalShifted.y);

    Step 5:
    In Chunk.cs at line 103 I add the totalShifted to the terrain.position OnCreate:
    go.transform.localPosition = coord.ToVector3(mapMagic.terrainSize) + new Vector3(WorldShifter.totalShifted.x, 0, WorldShifter.totalShifted.y);

    Step 6:
    In Chunk.cs at line 130 I again add the totalShifted to the terrain.position OnMove:
    terrain.transform.localPosition = coord.ToVector3(MapMagic.instance.terrainSize) + new Vector3(WorldShifter.totalShifted.x, 0, WorldShifter.totalShifted.y);

    And I think that's it!
    Would really be a big help if you could implement that @Wright or give me an answer as to when you plan to look into the problem with your superior programming skills. Also the terrains do not rename themselves properly which would be useful if they did, but not a big problem.

    Hope that helps anyone, it's been a problem of mine for a long long time.
     
    blacksun666 and chingwa like this.
  8. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20
    Встретил снова артефакт с текущими значениями curve

    Бегал вокруг сделал несколько снимков, (ключевое эта полоса, квадрат на снимке это тень от куба) отбежал на расстояние когда ландшафт должен исчезнуть и вернулся, артефакт исчез.



    Met again the artifact with the current values of curve

    Running around took some pictures, (the key this strip, the square in the picture is the shadow from the cube) ran off to a distance when the landscape should disappear and returned, the artifact disappeared.

    001.jpg 002.jpg 003.jpg


    Еще хотел узнать про некоторые возможности mapmagic

    Думаю над тем как сделать размещение объектов, камни-лес понятно, а допустим надо поставить дом в одном месте и что бы он так же создавался на других участках карты если есть подходящие для него условия, высота или же нахождение рядом определенного объекта тогда используется правило высоты, может еще что то, если на участке карты нет подходящего места то он не создается, можно это как сделать с помощью mapmagiс? может терайн как то можно пометить что все объекты размещенные определенным образом так же создавались и на других участках карты если есть все те же условия что на помеченом терайне? или можно как то разместить объект через визуальный редактор так что бы он создавался не на каждом сгенерированном терайне а через 3 к примеру или минимальное расстояние между размещением объектов можно настроить?
     
    Last edited: Dec 4, 2017
  9. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Locked chunks do not change after the regenerating terrain, so all of you changes will be kept. But note that it will really do nothing with the locked chunks (except some changes at the borders), so they might not weld well with the new chunks if the height was changed.

    hottabych, I wish that any MM user could solve the problem similar to the one you have just by reading the thread. I wish that any user from any country could understand all of the posts here. I don't want to switch this thread into Russian. There's no auto-translation in Unity forums the way it's done on Facebook, so could you make the further posts in English, or at least duplicate the Russian text with auto-translation, please?

    Here is the couple of examples:
    ObjectsByHeight1.jpg or ObjectByHeight2.jpg
    The second one is useful if you are using the Forest, Blend or other nodes to avoid assigning mask in each of them.

    You can do this in two ways:
    CombineFlatten2.jpg or CombineFlatten1.jpg

    Were there any errors in the console?

    Thanks!
    You can make a copy of RAW Input node (MatrixGenerators.cs) and make the changes you want, or just inherit the RAWInput, but I'd like to recommend you looking at the switch node - it will use one of the inputs depending on some static or generator variable ("on"). You just got to update it to work with the latest version, I've posted it a while ago so I'm not sure if it will work out of the box.

    I'm afraid tessellation will work with pinned terrains only :(

    It seems that MapMagic instance is not assigned... I don't know how that could happen - are you sure you have a MapMagic object is scene? Maybe it was removed or removed somehow?

    Since you are using the texture you have only 8 bits per channel. It does not matter if you've got 16-bit mode in .tif file - Unity converts it to 8bpc anyways. Try using the RAW Input - it supports 16-bit heightmaps, however I'd like to recommend you using 4K resolution or lower in this case. All of the fine details are should be added with the noise and other generators in MapMagic.

    malkere, thanks a lot! I've added these tips to the task description, I'm sure it will help a lot when I will be carrying it out.

    Yep, it's very hard to track. I will try to find out what's wrong with it.
     
    boysenberry and malkere like this.
  10. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I still can't get world height data to process:
    Code (CSharp):
    1.     public float GetWorldHeight (int worldX, int worldZ) {
    2.         MapMagic.GeneratorsAsset mapMagicGens = smallMM.gens; //finding current graph asset
    3.         MapMagic.Chunk.Results results = new MapMagic.Chunk.Results(); //preparing results
    4.         MapMagic.Chunk.Size size = new MapMagic.Chunk.Size(smallMM.resolution, smallMM.terrainSize, smallMM.terrainHeight);
    5.         Debug.Log(worldX.ToString() + " " + worldZ.ToString());
    6.         mapMagicGens.Calculate(worldX, worldZ, 1, results, size, TerrainsData.seed);
    7.         Debug.Log("is " + results.heights.CheckGet(0, 0).ToString());
    8.         return results.heights.CheckGet(0, 0);
    9.     }
    smallMM is just a reference to my MapMagic instance. Same as MapMagic.MapMagic.instance at this point. It breaks on the second debug:

    Code (CSharp):
    1. IndexOutOfRangeException: Array index is out of range.
    2. MapMagic.Matrix2`1[System.Single].get_Item (Int32 x, Int32 z) (at Assets/MapMagic/Main/Matrix2.cs:486)
    3. MapMagic.HeightOutput.Process (CoordRect rect, MapMagic.Results results, MapMagic.GeneratorsAsset gens, Size terrainSize, System.Func`2 stop) (at Assets/MapMagic/Generators/OutputGenerators.cs:83)
    4. MapMagic.GeneratorsAsset.Process (CoordRect rect, MapMagic.Results results, MapMagic.GeneratorsAsset gens, Size terrainSize, System.Collections.Generic.HashSet`1 changedTypes, System.Func`2 stop) (at Assets/MapMagic/Main/GeneratorsAsset.cs:429)
    5. MapMagic.GeneratorsAsset.Calculate (CoordRect rect, MapMagic.Results results, Size terrainSize, Int32 seed, System.Func`2 stop) (at Assets/MapMagic/Main/GeneratorsAsset.cs:231)
    6. MapMagic.GeneratorsAsset.Calculate (Int32 offsetX, Int32 offsetZ, Int32 size, MapMagic.Results results, Size terrainSize, Int32 seed, System.Func`2 stop) (at Assets/MapMagic/Main/GeneratorsAsset.cs:234)
    7. TerrainsManager.GetWorldHeight (Int32 worldX, Int32 worldZ) (at Assets/Scripts/Terrains/TerrainsManager.cs:483)
    8. EncounterManager.ChunkEnabled (Int32 chunkX, Int32 chunkZ, UnityEngine.Transform encounterParent) (at Assets/Scripts/Encounters/EncounterManager.cs:125)
    9. TerrainsControllerDistant.OnEnable () (at Assets/Scripts/Terrains/TerrainsControllerDistant.cs:48)
    10. UnityEngine.GameObject:SetActive(Boolean)
    11. MapMagic.MapMagic:Update() (at Assets/MapMagic/Main/MapMagic.cs:255)
    12.  
     
  11. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    I tried this, and the generator is created, but I don't see to actual work, to remind you, I needed a generator to spawn some things on a specific terrain and not to all.
     
  12. drsmetamoto

    drsmetamoto

    Joined:
    May 8, 2017
    Posts:
    12
    This looks quite nice. Wondering if it is possible to import/apply heightmaps which have been generated by real-world DEMS and use MapMagic for the rest of things? thanks, d
     
  13. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20
    Здравствуйте.

    По какой причине поддержка не всех клиентов которые приобрели map magic? Существует какая то выборка кому отвечать а кому нет?

    Некоторые вопросы остались без ответа в текущей теме и на почте так и не ответили, я ведь только интересовался возможностями приобретенной программы т.к. инструкции по эксплуатации на моем языке нет.



    Hello.

    For what reason does not support all customers who purchased a magic card? There is some kind of sample to whom to answer and who does not?

    Some questions were left unanswered in the current topic and they did not answer the post, I was only interested in the capabilities of the purchased program. there are no operating instructions in my language.
     
  14. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Here is the code:
    Code (CSharp):
    1. using System.Collections;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using MapMagic;
    5. using System;
    6.  
    7. [System.Serializable]
    8.     [GeneratorMenu (menu="Custom", name ="Select", disengageable = false)]
    9.     public class SelectGenerator : Generator
    10.     {
    11.         public Output output = new Output(InoutType.Objects);
    12.         public override IEnumerable<Output> Outputs() { yield return output; }
    13.  
    14.         public override void Generate (CoordRect rect, Chunk.Results results, Chunk.Size terrainSize,int seed,Func<float,bool> stop = null)
    15.         {
    16.             SpatialHash dst = new SpatialHash(new Vector2(rect.offset.x,rect.offset.z), rect.size.x, 16);
    17.          
    18.             if (rect.offset.x==1024 && rect.offset.z==2048)
    19.                dst.Add( new Vector2(1536,2560), 0,0,1); //position, height, rotation, scale
    20.             output.SetObject(results, dst);
    21.         }
    22.         public override void OnGUI (GeneratorsAsset gens)
    23.         {
    24.             layout.Par(20); output.DrawIcon(layout, "Output");
    25.         }
    26.     }
    27.  
    SingleObject.jpg

    I was thinking about using real world DEM data node, but still it's just an idea. Currently the only way to do it is to download the heightmap and use the RAW input.

    I try to provide the support to all of the customers. Neither I disfavor, nor prioritize any user. But since I get dozen of questions per day (and even more by email) I could miss something. It was not intentionally, sorry.

    No, you cannot use a custom-made terrain location with an object as a reference to spawn other objects on in a similar places.
     
  15. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20
    Ну тогда идея для следующей версии map magic ).

    1) скажем будет кнопка рядом с pin и lock с каким то названием

    2) с помощью этой копки можно пометить какой то террайн

    3) размещенные объекты на помеченном террайне будут включены в генерацию на других террайнов с учетом размещения по высоте

    4) выбрав помеченный терайн таким образом была возможность задать минимальную дистанцию между созданием объекта на следующем террайне,

    т.е. все объекты которые не клоны на этом помеченном террайне будут включены в генерацию на основе оригинального объекта по высоте и дополнительной настройке в террайне дистанции которая будет отвечать за минимальную дальность размещения.


    на выходе получится что можно будет пометить несколько террайнов, разместить на них необходимые объекты на определенной необходимой высоте, и задать дистанцию в самом терайне, думаю что это будет полезно для программы которая создает ландшафт размещает объекты определенными образами камни деревья, а с такой функцией можно будет и домики и нпс и все что угодно размещать, очень полезно было бы.




    Well then idea for the next version of map magic).

    1) say there will be a button next to pin and lock with some name

    2) with the help of this kopka, you can mark some kind of terrine

    3) the placed objects on the marked terrain will be included in the generation on other terraces taking into account the location along the height

    4) trusting therapy and the possibility of holding a minimum distance between the creation of an object on a subsequent terrain,

    those. all objects that can not be included in the generation, depending on how it will be responsible for the minimum distance.

    the output will be that you can mark several terrains, place the necessary objects on them at a certain required height, and set the distance in the terrain itself, I think it will be useful for the program that creates the landscape places objects with certain images of the stones trees, and with this function it will be possible and houses and nps and anything you want to place, it would be very useful.

    P.S. скажу даже больше, готов бы был бы доплатить 10$ за это дополнение к расширению map magiс, а если таких будет скажем 100 человек или больше то сумма станет существенней.
     
    Last edited: Dec 4, 2017
  16. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    509
    My terrain is pinned already. I'm not talking just about tessellation, no one global maps will work because as Tom said.

     
  17. ibyte

    ibyte

    Joined:
    Aug 14, 2009
    Posts:
    1,048
    @Wright thank you for the reply about large height map. I had better success with raw files.

    On another note I tried to pin a large number of chunks by mistake and this completely froze out my system. I know it’s still running but it has pegged everything so nothing else can be done. I consider this a bug as far a UX goes.
     
  18. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I used to use RTP with MapMagic procedurally.. it was tricky but it worked fine... It was a while ago though.. I think had a base terrain that was setup underneath the MapMagic gameobject and the newly generated tiles I would add the RTPengine script in runtime and they would automatically assume the setting of the parent terrain.

    Something like that... it worked though, it's definitely possible. I wasn't using tessellation or global maps, but each terrain had their own material. I even used those materials to create a tube world of meshes made using the terrain heightmaps generated by MM and the splat data stored in RTP. =o
     
  19. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    hmmm, is it normal that I have 2gb textures (memory usage) with a terrain 1000 size and 512 resolution with CTS without anything else loaded??
     
    Last edited: Dec 5, 2017
  20. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    I've been attempting to use the texture output alongside a texture input node. My goal is to be able to spread a single colormap texture across all generated terrains as a base color layer, using the scale and offset parameters just as I'm doing with the heightmap. However, when plugging the texture input into a texture layer the output comes across as a greyscale image, rather than full color. I can't seem to find anyway around this, and perhaps I'm misunderstanding what the graph is actually doing.

    This approach seems to be successful apart from the grey output, though I would love to be able to supply this directly into the 'Background' texture output layer instead. Any thoughts on what I'm doing wrong?

     
  21. Matt-Roper

    Matt-Roper

    <Of The Graphics> Unity Technologies

    Joined:
    Oct 27, 2015
    Posts:
    106
    Hey Wright,

    Love the product, it's amazing so far!

    You mention in the documentation there's an area for sharing asset profiles? I'd love to post some of mine and see others too, do you have a link for this?

    Cheers
     
    malkere likes this.
  22. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    I'll think about implementing it, but can't promise it will be done. And most probably the realization will be quite different.

    Actually MapMagic creates a separate material for each of the terrains, generates and assigns the control texture per-terrain too. But since you are using pinned terrains you can use RTP the usual way - by creating splat map (with Textures output) and assigning RTP component that will convert splatmap data to RTP control textures.

    It depends on the textures you are using, their quantity and resolution. 2Gb seems to be really a lot, though. Are you using the memory profiler to calculate the memory usage?
    MapMagic can eat a pretty significant amount of memory in editor by keeping the intermediate result of all of the nodes - this allows to change the terrain without re-calculating everything from scratch each time you change any value. This can be disabled, though, by turning off "Keep intermediate result" in settings.

    All of the MapMagic "maps" are just array of floats. They do not keep any color information. Consider them 32-bit "heightmaps" with only one channel available.
    The simplest solution is to split your texture in 3 or 4 grayscale images and use Texture input for each of them.

    Thanks!
    It's great you are going to share some of your graphs! Feel free to post them here: Community Biomes (or just email me if you don't want to register on GitLab).
     
  23. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20
    Спасибо что рассмотрите предложение, пускай будет по другому ) тут просто старался пример привести какой результат желаем. Буду ждать ответа по этому вопросу, пока другие приложения для unity от других разработчиков искать не буду, не тороплюсь.

    Хотел еще спросить, а будут ли когда нибудь видео по эксплуатации map magic на Русском? какой экшн в визуальном редакторе за что отвечает и какие параметры в нем на что влияют, и собственно примеры их использования


    Thank you for considering the proposal, let it be different) here I just tried to give an example of what result we want. I will wait for an answer on this issue, while I will not look for other applications for unity from other developers, I'm not in a hurry.

    I also wanted to ask, but will there ever be a video on operation map magic in Russian? what action in the visual editor is responsible for what and what parameters in it affect what, and actually examples of their use
     
  24. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    Ah I see. Great, thanks for the clarification!
     
  25. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    Yes I use the memory profiler to calculate memory usage. Well my end game uses around 2.5-3 gb (normal right?) memory in total, what I see is that when I enable generate infinite terrain for my build, sometimes I run into this:

    game.exe caused an Access Violation (0xc0000005)
    in module game.exe at 0023:017ab0f7.
    Error occurred at 2017-12-05_231710.
    C:\xxx\game\game.exe, run by.
    49% memory in use.
    0 MB physical memory [0 MB free].
    0 MB paging file [0 MB free].
    0 MB user address space [1005 MB free].
    Write to location 00276000 caused an access violation.

    Context:
    EDI: 0x00276000 ESI: 0x00102124 EAX: 0x000cb07c
    EBX: 0x000000ca ECX: 0x3fff23d6 EDX: 0x00000000
    EIP: 0x017ab0f7 EBP: 0x1c91fb00 SegCs: 0x00000023
    EFlags: 0x00010212 ESP: 0x1c91faf8 SegSs: 0x0000002b

    my system runs with 32gb of ram so I think thats ok.

    When I run with 1 terrain and no generation of terrain at runtime I have no problem. Also 2 of the testers run into this so I had to disable the generate infinite terrain for now.

    I use CTS with CSO generator, and Vegetation Studio for trees/grass. Will do some tests without these to narrow down the problem, just posted this in case anyone else has the same problem.

    edit: @Wright ok narrow it down and the problem, as I suspected, is the CSO (with CTS) textures. When I use native textures of MM everything works fine.
    What I did to recreate the problem: Had the CSO output and 1400 generate and remove range, and 1300 enable range (to have multiple terrains generate at runtime generating). That was happening with normal numbers of generate/remove too, just wanted to easily spot the bug. Weirdly with the same settings, and so many terrains generating/enabling, at editor all work fine. not even an error

    edit 2: So the fact that worked on editor got me thinking, and tried x64 build and now seems to work. I was very tight on the 32bit build (not reaching more than 3gb but still that was the problem I guess)
     
    Last edited: Dec 6, 2017
  26. Vagrod

    Vagrod

    Joined:
    Aug 4, 2017
    Posts:
    82
    I am using RTP + MM too, and I solved this problem by not using RTP node at all. After my terrain is generated, I run my custom editor script (one mouse click really) that generates individual global maps (tessellation and so on) for each tile and sets everything up using already fully prepared RTP component (my "template").

    Vegetation studio is now released (finally!), so I'm curious, will MM support this component? If so, in what time span? That would REALLY make everything much simpler (for open-world dev at least)
     
    Last edited: Dec 6, 2017
  27. MarkusGod

    MarkusGod

    Joined:
    Jan 10, 2017
    Posts:
    168
    https://www.awesometech.no/index.php/map-magic-infinite-terrain/
     
    Vagrod and Mazak like this.
  28. Palanai

    Palanai

    Joined:
    May 3, 2017
    Posts:
    12
    Hey folks,

    I am having an issue with setting up RTP for Map Magic. I followed the tutorial, yet the custom shader wont list the RTP layers in the map magic graph.



    I went through the tutorials from start to finish. All eight layers are set up in Relief Terrain Script in Map Magic, with normal and height map.

    The console is not giving me any error messages either. Went to the RTP Settings / Main and pressed the "Refresh All" button. Then clicked "Update Now" in the Custom Shader Output node. Nothing happens. Still lists as "no layers".

    Any help to fix what ever issue there is would be immensely appreciated.

     
  29. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Might this be related?

    We've exchanged vouchers/betas with Vegetation Studio developer, but didn't expect him making the integration first.
    Thanks, Lennart!

    Your RTP component is disabled. Maybe that's the cause of the issue?
     
    boysenberry and Palanai like this.
  30. SSL7

    SSL7

    Joined:
    Mar 23, 2016
    Posts:
    349
    I would ask the guy who reported this to build on x64 and test, although it seems he knows what he is doing and his tests are more advanced. Had a tester reporting that after an hour the fps dropped and he had the access alocation problem too, but again it was a 32bit build before. Will need more testing on my 64bit build now

    As for the VS integration, @LennartJohansen made it a month ago and although its pretty simple, it works very well.

    btw, are you planning a MicroSplat integration to CSO?
     
    Last edited: Dec 7, 2017
  31. Palanai

    Palanai

    Joined:
    May 3, 2017
    Posts:
    12
    Thanks for the quick response! Though I am afraid that did not change anything. I did another test after with a clean project and build in case there were any issues with the mod. Still not able to make it work.

     
    vonpixel likes this.
  32. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20
    Помню что говорили что много пишут и не все замечаете, если ответа не последовало я так понимаю повторно спрашивать надо?

    Хотел еще спросить, а будут ли когда нибудь видео по эксплуатации map magic на Русском? какой экшн в визуальном редакторе за что отвечает и какие параметры в нем на что влияют, и собственно примеры их использования

    I also wanted to ask, but will there ever be a video on operation map magic in Russian? what action in the visual editor is responsible for what and what parameters in it affect what, and actually examples of their use
     
  33. vonpixel

    vonpixel

    Joined:
    Oct 2, 2012
    Posts:
    31
    I was going to post about this exact same issue until I saw your post. Was hoping there would be an answer.

    Did the tutorial in the help documents about how to hook RTP up but its just dark shiny nothing- also the part of the tutorial here:
    "Select MapMagic object. In ReliefTerrain component, Layers tab, select each of the layers in Choose Layer (they are not visible by default) and assign it's diffuse, normal and height textures;"
    didnt seem to work for me at all. I had to add in a texture node first...

    One thing too that I noticedfrom the tut:
    "Go to RTP Settings / Main and press Refresh All button;"
    Wont work if you put RTP on the Map Magic Game Object (like Wright suggested in this thread) because there is no refresh button in the settings > main in RTP. It has to be on a terrain object for the refresh button to appear.

    Hopefully can figure this out because Ive been really loving MM so far.

    upload_2017-12-7_0-27-4.png
     
  34. Palanai

    Palanai

    Joined:
    May 3, 2017
    Posts:
    12
    I managed to get half a step further. You should be getting the error message in the console "There is no 'Renderer' attached to the "Map Magic" game object, but a script is trying to access it. You probably need to add a Renderer to the game object"

    When you set up RTP it does not seem to do everything automatically for you. What you are missing are two components for the Map Magic Game Object. Until you added one of them, the resfresh all button does not show up under RTP Settings / Main.

    One of these is the instant updater script. The second is a renderer. Once you added these two components to the Map Magic game object the "refresh all" button should pop up for you and the console error should no longer occur. You can see the two components listed in the screenshot in my latest post.
     
    vonpixel likes this.
  35. vonpixel

    vonpixel

    Joined:
    Oct 2, 2012
    Posts:
    31
    Thanks. Added those scripts. Tried again in a new project - still getting nothing. Might try the legacy method because I just cant get this custom shader node to work. I tested RTP on its own- looks great.
     
    Palanai likes this.
  36. Palanai

    Palanai

    Joined:
    May 3, 2017
    Posts:
    12
    In case you get it working with the legacy method, let me know. :)

    Same. RTP alone works just fine. Been using RTP for several months now. This is the first time I can not get it working.
     
  37. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    509
    Select all your terrain tiles include map magic game object, now assign relief terrain script to all and then it should work. be sure to remove custom shader node and use texture input node instead.

    When you want change a parameter of RTP use the one that is attached to map magic game object.
     
    Palanai likes this.
  38. Palanai

    Palanai

    Joined:
    May 3, 2017
    Posts:
    12
    Thank you! That works for what I need it for. :D
     
  39. belkovandrew

    belkovandrew

    Joined:
    Nov 19, 2014
    Posts:
    22
  40. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Unfortunately I have no plans for creating localized videos for any language. I'm recoding the sound along with the video, I find it convenient to do what I'm talking about and talk about what is actually going on. Some kind of stream, except that I'm making lots of takes per fragment to. So recording in a different language will require re-making a tutorial from scratch this way.

    I do, but can't say ETA yet.

    Just noticed that I have been using RTP 3.3g. I'm downloading the latest version and will look into it today.

    It looks like you have a CTS keyword enabled in scripting define symbols but no CTS installed. This might happen if you remove CTS folder outside Unity.
    If you sure you've got CTS installed try to
    - remove the "CTS" keyword from Scripting Define Symbols (Edit -> Project Settings -> Player)
    - wait until the scripts compile
    - restart Unity
     
    vonpixel likes this.
  41. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    And yet it seems to be working fine with RTP 3.3j. Here is a short video of the way to enable RTP with MapMagic in case you are doing something wrong:
     
    vonpixel likes this.
  42. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20
    "

    time 4.50 - bag?
     
  43. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Seems to be so. What were the coordinates of the terrain where the trees disappeared? Could you please take a screenshot of the whole graph?

    Похоже на то. Какие координаты были у террейна с исчезнувшими деревьями? Не могли бы вы сделать скрин графа целиком?
     
  44. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20
    Вот скрин (не понял что за "графа" но надеюсь то) всех настроек вместе с ошибкой, координаты 2,0 это я встречал не только с этими настройками, в первый раз такое встретил когда по вашему видео пытался камни разместить, но тогда еще не понимал что это возможный баг.
    55664.jpg

    вторым отдельно скрин настроек

    55665.jpg

    Второй баг репорт за неделю ))) надеюсь помогу улучшить программу, и жду новостей по поводу той идеи которую предложил.

    P.S. смог воспроизвести такую же проблему проблему на террайне 1.0
     
    Last edited: Dec 9, 2017
  45. vonpixel

    vonpixel

    Joined:
    Oct 2, 2012
    Posts:
    31
    Thanks for looking into it but I still have the exact same results as before. Ive done exactly as you've done in your help docs and tutorials. Ive tried on 2 different computers now. A few of the people at the studio I work at also are getting the exact same results as I am (which is nothing).


    Is there possibly another way to go about doing this?
     
  46. vonpixel

    vonpixel

    Joined:
    Oct 2, 2012
    Posts:
    31
    One thing I noticed is that for me I only get 4 warnings to fix where you get 5. The first one you have is putting RTP into the scene. Mine does not seem to have that option: upload_2017-12-9_12-12-13.png

    If I put RTP on the map magic node to try and fix that- i still get nothing- no layers exposed in MM
     
  47. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20


    time 1.35 bag?
     
  48. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20
  49. fenix6390

    fenix6390

    Joined:
    Nov 28, 2017
    Posts:
    20
    Здравствуйте
    Задался вопросом по поводу воды.
    Генератор гор и равнин замечательный а как к этим бесконечным горам добавить бесконечную воду, в пакете map magic не нашел бесконечной воды и видео про нее, если она есть можете рассказать как ее добавить а если нет можете добавить ее в пакет? просто без воды получается не совсем полноценный бесконечный генератор мира


    Hello
    Wondered about the water.
    The generator of mountains and plains is wonderful, but how to add infinite water to these endless mountains, in the package map magic did not find the endless water and video about it, if it is, you can tell how to add it and if you can not add it to the package? just without water it turns out not quite high-end infinite generator of the world
     
  50. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    vonpixel, odd thing, RTP check is pretty straightforward:
    Code (CSharp):
    1. if (rtp==null) rtp = MapMagic.instance.GetComponent<ReliefTerrain>();
    2. if (rtp==null) //if still not found - drawing warning with a fix
    Oh, that's worth trying: go to Edit -> Project Settings -> Player and see if you got "RTP" keyword in the Scripting Define Symbols field. If you don't - just add it manually after the last keyword and ";" sign. This will call script re-compile, and probably you'll get an error that will erase this keyword. Could you please post it here?

    If this keyword isn't erased - try to apply RTP again. Probably this time it will work.

    In both cases you've got an error in the console. Something related with a blend node. Could you please post it here?

    BTW, what's the reason in connecting all of the Blend inputs to the single node? Blend it's supposed to combine different maps together, using it to amplify the same map is not efficient (this could be done with the intensity value of the source node or curve generator) and non-trivial. Guess the issue is in using Blend node this way, but I'd like to see the error anyways to fix it.

    If you've got any error about the trees issue let me know about it too.


    В обоих случаях у вас ошибка в консоли. Не могли бы вы процитировать ее?

    Кстати, в чем смысл присоединения всех инпутов blend нода к одному и тому-же аутпуту? Предполагается, что Blend предназначен для смешиывания разеных карт. Использовать его для усиления то йже самой карты неэффективно (это можно сделать курвой или интенсивностью того нода). Скорее всего баг возникает из-за такого рода использования бленда, но хорошо бы мне увидеть ошибку чтобы починить ее в любом случае.

    И, похоже, в баге с деревьями тоже есть какая-то ошибка. Мне бы тоже хотелось ее увидеть.

    Could you please to repeat or quote that idea? Can't find it briefly looking through the thread.
    Можно попросить повторить или цитировать эту идею? Не могу найти, бегло просмотрев тему.

    You can use the water planes to create water - the way I've done it in the island tutorial. I've used a single plain for all of the sea, but guess it will be more efficient to split it into several planes and turn them on or off depending on their visibility with script.

    You can even scatter the water planes the way it's done with the standard objects to create lakes or puddles.


    Воду можно делать при помощи water planes - плоскостей с шейдером воды - как я это делал в туториале острова. Я использовал одну плоскость для всего моря - но, наверное, это не так эффективно как разделить ее на несколько и включать отдельные плоскости скриптами в зависимости от их видимости.

    Можно даже расставлять водные плоскости тем же самым способом что и все остальные объекты - к примеру, для создания озер или луж.
     
    vonpixel likes this.