Landscape
Landscape
Some compilation on the landscape creating stuff knowledge gathered so far for me (aquiles)
Links
- http://dev.ryzom.com/projects/ryzom/wiki/InstallingMaxPlugins
- http://dev.ryzom.com/projects/ryzom/wiki/ImportingMaxAssets
- http://dev.ryzom.com/projects/ryzom/wiki/WorldEditor
- http://dev.ryzom.com/projects/ryzom/wiki/UseWorldEditor
- http://www.opennel.org/confluence/display/NEL/CreatingALandscape
- http://www.opennel.org/confluence/display/NEL/NeLLigo
- http://www.opennel.org/confluence/display/NEL/LandscapeCollisions
- http://dev.ryzom.com/boards/17/topics/2479
- http://dev.ryzom.com/boards/17/topics/2069
- http://dev.ryzom.com/boards/16/topics/1604
IRC
- 15.06.2010
(12:46:57) aquiles: so if i want this cool opening door, i have to do it with the worldeditor? (12:47:07) kervala: yep :) (12:47:17) aquiles: but doesnt he also needs some sheets as basic? (12:47:25) aquiles: like the yubo sheet to add the yubo (12:47:59) kervala: door animations are handle only by client :( (12:48:04) kervala: there are static data (12:48:20) kervala: but teleportation is handled by server (12:48:46) kervala: for example, when you are with a friend (12:48:50) kervala: and you open the door (12:48:59) kervala: your friend will not see the door open (12:49:51) aquiles: because of the standard animation of the door object (12:50:10) kervala: yep i think (12:50:36) kervala: sheets are only for dynamic objects (12:50:40) kervala: "entities" (12:51:00) kervala: such barrels, towers, etc... (12:51:05) kervala: creatures (12:51:06) kervala: npc (12:51:18) kervala: towns are static :( (12:51:33) aquiles: and defined in ig? (12:51:40) kervala: yep (12:52:21) kervala: basically .ig is a list of .shape with a position and some flags :) (12:52:22) aquiles: ok how do i create them, is it simple by worldeditor adding shapes? (12:52:52) kervala: you create .ig with 3dsmax (12:53:01) kervala: and in worldeditor (12:53:07) kervala: you place .ig on ligo (12:53:23) kervala: but i never tried :p (12:53:30) aquiles: ah ok slowly i get it :) (12:53:31) kervala: for example, Pyr is a .IG (12:53:44) kervala: and Fyros continent is a landscape (12:53:50) aquiles: looks like a new tutorial content :) (12:53:51) kervala: when you are only using landscape (12:54:02) kervala: there is no content at Pyr location :( (12:54:05) kervala: it's empty (12:54:10) kervala: there is a big hole :p lol (12:54:26) kervala: you have to put Pyr IG there :) (12:55:15) kervala: and even in Pyr, some entities are missing because they dynamic :) (12:55:23) kervala: barrels for example are not in Py IG (12:55:26) kervala: Pyr IG (12:55:41) aquiles: complicated system (12:55:57) kervala: yep but IG have all coordinates already generated (12:56:06) kervala: for Pyr at least (12:56:42) kervala: if you want to add possibility to destroy a city wall (12:56:49) kervala: you should remove this wall from IG (12:56:57) kervala: and create a entity with a sheet :) (12:57:08) kervala: so you will be able to spawn/despawn it :) (12:58:16) Kaetemi: advantage of the IGs is that the lighting and shadows are precalculated (12:59:09) Kaetemi: which also allows you to place a lot of static lights (12:59:19) kervala: yep :) (13:02:14) Kaetemi: igs from the max zones (13:02:33) Kaetemi: you can add stuff to igs in max, as well as in worldeditor for the trees and such (13:02:54) Kaetemi: but no idea how that works :p
- 17.06.2010
[10:28] <aquiles> Kaetemi: Hi, hows the pipeline going? [10:32] <Kaetemi> as usual :p [10:33] <Kaetemi> i'll work on it during the weekend :) [10:54] <aquiles> Kaetemi: ah ok, looking through the py files at the moment [10:56] <aquiles> Kaetemi: for the moment id just like to now which file i have to edit in max to add like eg a static house object to newbyland [11:07] <aquiles> Kaetemi: could u give me a hint on that, i mean there is nothing like a newbieland.max. im kinda lost :( [11:09] <aquiles> there must be some place to define all the igs [11:53] <Kaetemi> the newbieland landscape max files are not online yet :) [12:25] <aquiles> kervala: hey kervala, you said yesterday or the day before that i create .ig with 3dsmax. Do you know anything more about this. i mean .ig are not directly to open with 3dsmax, arnt they? [12:28] <Kaetemi> in the nel export tool in max go to nel node properties and you should be able to set objects ref a .shape and tell them what .ig they're part of [12:30] <aquiles> ok thx, and how do they now at which coordinate to place it? [12:32] <aquiles> because it was said that .ig already have all coordinates generated [12:34] <kervala> aquiles: i don't know how to create them :p [12:34] <kervala> i just succeeded to load them and use them in c++ code :) [12:35] <kervala> and when i don't change position, it's placed at the right location [12:35] <kervala> but perhaps that depends [12:35] <kervala> there are small ig and huge ig [12:56] <Kaetemi> they're part of the zones you paint so it's automatically done [12:56] <Kaetemi> when you paint zones that have ig :p [13:45] <sfb> aquiles: A .building sheet has a reference to IGs. [13:45] <sfb> aquiles: <STRUCT><ATOM Name="builded_ig" Value="somefile.ig"><ATOM Name="name" Value="sorryNoIdea"></STRUCT> [13:53] <sfb> aquiles: When you make a zone you name it like this: ##_AA [13:53] <sfb> aquiles: This refers to its upper left corner's coordinates. [13:53] <sfb> aquiles: Calculate it like this: X = 160 * ALPHA, Y = 160 * - NUM [13:53] <sfb> aquiles: So lets say there is a zone called ''4_ac.zone'', this means that its upper left coordinates are ''320, -480''
- 9.5.2010
07:31 < Kaetemi> 108km by 16km rather 07:31 < Kaetemi> that's the maximum space for all total landscape 07:31 -!- Phaelae [Phaelae@c-67-186-18-133.hsd1.pa.comcast.net] has joined #ryzom 07:31 < Kaetemi> and yes 07:32 < Kaetemi> it's so they can split up tilebanks for the landscape 07:32 < Kaetemi> for the textures 07:32 < Kaetemi> texture tiles 07:32 < Kaetemi> so one continent has this set of textures, etc 07:33 < letto> i see , do they have nameclashes ? 07:33 < letto> on textures 07:36 < Kaetemi> no 07:36 < Kaetemi> just to save on ram, cause the tilebank, or at least a low res version of it, is loaded fully into ram 07:36 < Kaetemi> as far as i know 17:14 < sfb> You edit the actual landscape geometry in 3DSMAX 17:14 < Narusia> thank you ace 17:14 < sfb> You'll also define the zone information via the ligoscape plugin 17:15 < sfb> You also need to export the zone and run it through the build_gamedata pipeline to prepare the zone and burn in shadows. 17:15 < Krystlih> sfb: are you creating tiles in 3ds, or the whole landscape? 17:15 < sfb> Before you do this it is helpful to use your ligo primitive that defines the zone to layout in world editor 17:15 < sfb> Zones. 17:17 < sfb> So high level you create the zone geometry in 3DS and define the ligo parameters for the zone 17:17 < sfb> Then in World Editor you lay the zones out 17:17 < sfb> The idea is that you'll make a set of zones that can seamless transition 17:17 < Kane_Hart> ace was \\Amiga the storage server or something 17:17 < sfb> And so rather than modelling the entire continent as one large mesh you create "lego" zones that you can "paint" like tile sin World Editor 17:19 < Kane_Hart> sfb how do you texture the zone? 17:19 < kerozcak> kkszysiu: http://dev.ryzom.com/projects/ryzom/wiki/BuildForLinuxCmake 17:19 < sfb> Kane_Hart: You define a tile bank and the open the patch painter in 3DSMAX 17:19 < Kane_Hart> so you paint it sort like any 3d terrain editor sort of? 17:19 < sfb> http://www.opennel.org/confluence/display/NEL/TileTextures 17:19 < sfb> http://www.opennel.org/confluence/display/NEL/CreatingATileBank 17:19 < sfb> http://www.opennel.org/confluence/display/NEL/VegetableSets 17:19 < sfb> Yeah, the 3D terrain editor is 3DSMAX 17:21 < sfb> The idea Nevrax had was that you would make tiles to paint your landscape 17:21 < sfb> Then you could make landscapes that you would paint like tiles in World Editor 17:21 < sfb> Allowing you to rapidly "paint" a continent. 17:25 < sfb> So when that landscape is placed those objects come with it and their shadows/etc are baked into the landscape. 17:26 < sfb> a zone would be something like 4_ac.zone 17:26 < Kane_Hart> ahh 17:26 < sfb> or 4_ac.max 17:26 < Kane_Hart> OHHH 17:26 < Kane_Hart> so you stich them 17:26 < pekayatt> hey guys, there's any place that I can find a documentation a little bit more explained than the code it self? 17:26 < sfb> You don't 17:26 < Kane_Hart> well you know what I mean 17:26 < Kane_Hart> put them togeather 17:26 < Kane_Hart> I thought it was like 17:26 < sfb> In Ryzom you define them and you define how they transition to other landscape zones 17:26 < Kane_Hart> 1 big map 17:26 < sfb> And the build_gamedata pipeline stitches them. 17:26 < sfb> Nope. 17:26 < sfb> In World Editor you "paint" a .zone file into a location 17:27 < Kane_Hart> so the newb island 17:27 < Kane_Hart> is several max files? 17:27 < sfb> Then build_gamedata takes yoru ligoscape, the .zones, etc and stitches them, generates PACS collision info, bakes shadows, etc. 17:27 < sfb> Yes 17:27 < Kane_Hart> ryzom_assets\Database_proto\Landscape\Zones\test_zones 17:27 < Kane_Hart> I need to get plugins all I see is squars 17:27 < Kane_Hart> squares 17:27 < sfb> Squares with arrows? 17:28 < sfb> That means your tilebank isn't loaded or the textures in your tilebank are missing or your texture in general is missing 17:28 < sfb> The arrows point the UV direction on the surface. 17:28 < Kane_Hart> ok let me try 17:29 < Kane_Hart> good I got this on my ssd i keep closing it :P 17:29 < Kane_Hart> loads pretty fast 17:29 < sfb> No one in the community has used the ligoscape plugin for MAX 17:29 < sfb> So getting a fresh zone from MAX into World Editor is unknown. 17:31 < sfb> http://www.opennel.org/confluence/display/NEL/NeLLigo 10:56 < Kaetemi> you make landscape patches in 3ds max, export them to zones, and you should be able to mix them together into a landscape with worldedit 11:02 < Kaetemi> you can also make a complete landscape directly in 3ds max, split up in patches of 5x5 quad 160m by 160m, and export them by location name 11:02 < Kaetemi> http://www.opennel.org/confluence/display/NEL/NeLCreateLandscape 21:15 < Kaetemi> a landscape is split up in patches "zones" which are stitched together 21:15 < Kane_Hart> OHH 21:15 < Kaetemi> 160m by 160m 21:15 < Kane_Hart> so you design the full zone then you split it? 21:15 < Kaetemi> actually 21:15 < Kaetemi> for ryzom 21:16 < Kaetemi> they designed different zone building blocks 21:16 < Kaetemi> so corner, wall, ground, etc 21:16 < Kaetemi> and used worldedit i think to paint zones together into a landscape 22:33 < Kaetemi> Kattalunikes: there's a fundamental issue with that 22:35 < Kaetemi> the assets as they are are split into 4 ecosystems, desert, jungle/forest, lake and prime roots 22:36 < Kaetemi> the desert textures in the jungle ecosystem do not look exactly as the desert ecosystem 22:37 < Kaetemi> you're gonna have to take that into account when designing the landscape 22:37 < Kaetemi> microvegetation (grass and so on) for jungle for instance is not available in desert ecosystem 22:38 < Kaetemi> as they're seperately built, and the amount is limited for optimization purposes 22:38 < Kaetemi> other than landscape and microvegetation, though, all the other models (trees and buildings) and content can be freely placed in any landscape :) 22:39 < Kaetemi> Kattalunikes: do you have 3ds max installed? 22:40 < Kaetemi> make a quad patch that's a multiple of 160 units large, and split it up in about 32 meters per quad, so that's 5 quads per 160 meters 22:41 < Kaetemi> and model your landscape with that quad patch, negatively extrude to build tunnels, etcetera 22:41 < Kaetemi> water is just a large plane 22:41 < Kaetemi> split the patch up into patches of 160 by 160 units 22:42 < dnk-88> :) 22:42 < Kaetemi> throw nel patch convert tool over them 22:42 < Kaetemi> collapse 22:42 < Kaetemi> go to nel tile tool and select the tilebank (ace, gimme the .bank files!) 22:42 < Kaetemi> select all your patches 22:43 < Kaetemi> throw a nel paint modifier on them all at the same time 22:43 < Kaetemi> and go to paint mode 22:43 < Kaetemi> hold space to select texture 22:43 < Kaetemi> and start painting 22:43 < Kaetemi> close 22:43 < Kaetemi> collapse the paint modifier on each of the patches seperately 22:43 < Kaetemi> run the gamedata build pipeline :P 19:21 < Kane_Hart> the IG files do what 19:21 < Kaetemi> they place static objects in the landscape 19:21 < Kaetemi> such as large buildings and cities :) 19:21 < Kane_Hart> ohh like tree's 19:21 < Kane_Hart> ahh 19:21 < Kaetemi> maybe trees too 21:51 < Kaetemi> building takes about 500mb space 21:53 < kerozcak> so if i understand correctly, we can create own jungle land with it? 21:53 < kerozcak> from tiles 21:53 < Kaetemi> you can modify newbieland in the world editor yes 21:53 < Kaetemi> and they're called bricks apparently, not tiles, tiles are the textures :p 21:53 < kerozcak> cool 21:54 < kerozcak> ok 21:54 < Kaetemi> ligo bricks :p 21:54 < kerozcak> it's ligo because lega is trademarked? ;) 21:54 < kerozcak> lego* 21:55 < Kaetemi> there's a story somewhere :p 21:56 < Kaetemi> http://dl.kaetemi.be/nel/scripts/build_gamedata_py_012.7z (36 MB) 21:56 < kerozcak> so it's all bricks from newbieland, or jungle continent? 21:57 < Kaetemi> jungle ecosystem 21:57 < Kaetemi> there's 4 (yes 4) ecosystems 21:57 < Kaetemi> newbieland, matis, zorai, nexus, etc all use the jungle ecosystem 21:57 < Kaetemi> ecosystem contains the microvegetation, tilebanks and ligo bricks 22:00 < Kaetemi> so right now you have all jungle tiles available in ligo edit, but they're all missing their igs, and i can only release the max files (and thus igs) that are already in use by newbieland, so you'll be limited to the set that's already in use, unless you add your own tiles :) 22:01 < Kaetemi> so jungle ecosystem will be stripped down to newbieland :P 22:01 < Kaetemi> http://dev.ryzom.com/projects/ryzom/wiki/BuildGamedata <- see structure of projects :p 22:01 < Kane_Hart> =) 22:01 < kerozcak> but there's also some parts of lakes in newbieland (that island) 22:02 < kerozcak> right? 22:02 < Kaetemi> is part of jungle data 22:02 < kerozcak> ah ok 22:02 < Kaetemi> there's only a limited set of sand in the jungle data though 22:02 < Kane_Hart> so is there 4 or 5 tilesets? 22:02 < Kaetemi> 4 tilebanks 22:03 < Kaetemi> in W:\database\Landscape\_texture_Tiles\jungle you'll only see 1 sand tileset 22:04 < Kaetemi> that is what's used for the sand in newbieland 22:04 < Kaetemi> W:\database\Landscape\_texture_Tiles\desert has lots of sand 22:04 < Kaetemi> W:\database\Landscape\_texture_Tiles\lacustre has different sand and grass 22:05 < Kane_Hart> =) 22:05 < kerozcak> but what you mean by 'you'll be limited to the set that's already in use'? isn't desert and other ecosystems in assets? 22:05 < Kaetemi> ligo bricks 22:05 < Kaetemi> are not in the assets 22:06 < Kaetemi> you have to make your own landscape :) 22:06 < Kaetemi> and i strongly recommend doing it, cause it's quite fun :p 22:06 < kerozcak> but you still need 3ds for that :) 22:06 < Kane_Hart> I want to use what we got 22:07 < Kane_Hart> and maybe in the future community build more 22:07 < Kaetemi> you *can* use a flat ligo brick, and a heightmap ;p 22:07 < kerozcak> yes it's a good start :) 22:07 < Kaetemi> it supports heightmap out of the box :p 22:07 < kerozcak> that's cool 22:08 < kerozcak> it will be one ligo brick with heightmap for whole terrain, or each ligo brick has own heightmap? 22:08 < Kaetemi> but the bricks that come with newbieland should be enough for creating a different terrain for starting out 22:08 < Kaetemi> it's a heightmap for the continent 22:08 < Kaetemi> you need to preconfigure the range of the continent in the project settings 22:08 < kerozcak> (sorry if i'm asking silly question, i just didn't read much about NeL terrain yet) 22:09 < Kaetemi> heightmap is not documented but it's fairly easy 22:10 < kerozcak> but you can't create these cool walls with heightmap :) 22:10 < Kaetemi> exactly ;p 22:10 < Kaetemi> the heightmap is intended for adding noise onto your fancy landscape with walls 22:10 < Kaetemi> so it's not completely flat =:) 22:10 < Kane_Hart> so was there bugs with the current newbie island tiles 22:11 < Kane_Hart> like I always used them and they would use random ugly shapes and stuff 22:11 < Kaetemi> i don't think it goes fully automated, you need to do some work placing the bricks :p 22:12 < Kaetemi> also, if you don't intend to change the config of the build pipeline, stay within the current size of the newbieland 20:45 < Kaetemi> so you can model a whole large piece at once in max 20:46 < kerozcak> nice 20:47 < Kaetemi> and the build pipeline can add a heightmap plus a noise map on top of your landscape 20:47 < kerozcak> but why split it then? 20:47 < Kaetemi> zone need to be split into square .zone files of 160x160 :) 20:48 < kerozcak> ah ok 20:48 < Kaetemi> this is a 3*160x3*160 http://dl.kaetemi.be/ryzom/newbieland_lake.png
- 07.08.2010
Trees and faunaKaetemi every tree has a .plant file under L:\leveldesign Kaetemi should have 16:17 Kaetemi if im not mistaken 16:19 Kaetemi under L:\leveldesign\Game_elem\Plant\ecosystem\jungle\common Kaetemi they're not in the public folders 16:20 Kaetemi they exist but are not released 16:21 Kaetemi they contain like Kaetemi <ATOM Name="Plant Name" Value="Big tree"/> Kaetemi <ATOM Name="Shape" Value="JU_S2_big_tree.shape"/> Kaetemi etc 16:23 Kaetemi then there are the .flora files Kaetemi which contain multiple plants and the density that they're placed in 16:24 Kaetemi there are some in L:\leveldesign\World\Lesfalaises(matis)\lespalais Kaetemi also not public 16:25 Kaetemi they are like Kaetemi <ATOM Name="File name" Value="FO_S2_spiketree.plant"/> Kaetemi <ATOM Name="Density" Value="0.005"/> dnk-88 *.vegetset contain multiple plants and the density Kaetemi veget set is for grass Kaetemi no? dnk-88 yes Kaetemi vegetset is linked to zone tiles Kaetemi and that magically works 16:27 dnk-88 then should take it out ryzom shard data Kaetemi plants are built into igs Kaetemi that's different Kaetemi the .flora also has like <ATOM Name="Jitter_Pos" Value="1"/> Kaetemi <ATOM Name="Scale_Min" Value="0.5"/> Kaetemi <ATOM Name="Scale_Max" Value="1.5"/> Kaetemi so the .flora is used to generate the locations of trees 16:56 Kaetemi there's an obscure way to generate the flora primitives, but then again if you need to generate it from the world editor, there should be a .primitives file that contains the flora
Buildings
17:00 Kaetemi building looks like Kaetemi <?xml version="1.0"?> Kaetemi <FORM Revision="" State="modified"> Kaetemi <STRUCT> Kaetemi <ATOM Name="builded_ig" Value="gen_autel_kami.ig"/> Kaetemi <ATOM Name="name" Value="uiBuildingKamiAltar"/> Kaetemi </STRUCT> Kaetemi </FORM> Kaetemi nothing much special it seems 17:01 Geringer Does gen_autel_kami.ig generated using 3ds max? Kaetemi export pipeline shooouuuld export that yes Kaetemi but it's also in the client data already