WorldForge model AssetPack available now

Hey monkeys,



I added an option to auto-create an assetpack from the GPL worldforge models to AssetPack projects in jMP. It automatically converts the binary ogre files, probes the models for needed assets etc… The most interesting result is that now you can install the worldforge models with one click in jMP :slight_smile:



This AssetPack needs the latest nightly update of the SDK as it uses new functions in the AssetPack library. To use it, just open the AssetPack browser (where the project tab is) and then select “online assetpacks”. Click the “install” link to install the assetpack. If you cannot see the content after downloading has finished, press the “update” button in the assetpack browser.



Not all materials and combinations are imported yet (strangely enough materials and meshes only fit for the default material in worldforge) and maybe I will add extended support for characters etc… lets see. For now you got quite a lot of assets that can be used as prettier placeholders than boxes :wink:



http://i.imgur.com/1GZD2.png



Cheers,

Normen



P.S. To add models not just to a scene but as standalone j3o files to your project, you currently need to have a model from that project open to specify the target project this way. E.g. you open a scene from your project and then select “Add to Project” in the Assetpack Browser

8 Likes

Haha that is just great!



Thanks a lot!!! The project I’m currently tinkering with is in dire need of goot ancient building and units. Will download immediately :slight_smile:

Good to hear :slight_smile: This will also be very convenient for making SDK demo videos, I guess you’ll see a lot of these assets in the coming videos :wink:



I improved the “Add to Project” function a bit, it now shows a selection of projects if multiple are open. A build is running (the nightly failed for some reason) to incorporate the latest changes to the SDK AssetPack support.



Edit: Found a bug in the OgreXML loader when using MaterialExtensions which causes the faulty repeat for some models textures. Should be in the update center in a few minutes, since the models in the assetpack are OgreXML the fix will apply for newly added models from the AssetPack.

1 Like

This is excellent; we always love seeing our media being used in different places!

However, I must ask you to update the pack to reference the correct license (as specified here: https://svn.worldforge.org:886/svn/media/trunk/LICENSING.txt ). It’s either the GPL v2 (or later) or the GFDL v1.1 (or later).



I saw the GPL 3 being referenced in the xml file (which is actually correct, since it’s a later version of GPL v2; but I think it would be preferable to have the extended option of the original licenses), but I couldn’t find this referenced in the IDE. For the individual assets the IDE also presented a “license” field, but that was empty.



You mentioned you had some issues with some combinations of meshes and materials? I could probably help.

I’m also curious to how your import feature handles the materials, as we use quite a lot of inheritance and aliases.

Hey Erik. The assetpack actually has the GPL as main “license file” but the single items dont display it… In theory one can put a different license to each asset but the single items should display the “global” license when theres none specified for that item, I’ll add this functionality as soon as possible. Thanks for the reminder, I am aware of the friendly but existing license :slight_smile:



The materials… Yeah, I don’ quite understand how for example the malebuilder or the different textures/materials for the animals are supposed to work… When I started the assetpack I was kind of expecting the “extra” materials to have the same internal name as the default assets so that one can load a model with this or that material… Now however I found out that each model has one of these materials specified, with a unique name, and that the other materials have different names. I don’ even know how to combine that with our OgreXML loader except assigning the materials later, “in-game” to the geometry objects… Any insight on how this is supposed to work would be great!



Thanks for the feedback,

Normen

@erikogenvik The fix for the AssetPack browser is in svn and I am uploading a new version of the AssetPack that contains the version of the GPL license you posted.

For the material problem, you mentioned aliasing, do you do that at the loading state? Any hint at some lists or similar that contain the necessary info? It does not seem like the naming schemes are 100% consistent, I already tried reducing it to the last word before any underscore (e.g. dress_burlap) but it doesn’t work very well…

About your questions on how our importer handles the referencing, we have a mechanism in place to map names for material bases and their internal texture/map names to our own shaders/materials. So this could also be extended to support whatever kind of mapping is needed for this :wink:



To all who are unsure about what the GPL license means for their games, it does not mean that your game has to be open source or GPL. It only means that all new artwork you base on this artwork (e.g. new animations for models, new models using the provided textures) also have to be published under the GPL.

Hi, I’m not sure how much of the Ogre script system you have knowledge of. I don’t want to sounds patronizing, which is tricky without knowing at what level to start at. But if I understand you correctly you’re wondering how we’re using aliasing in the materials?

Pretty much all of our materials inherit from any of the materials found here: https://svn.worldforge.org:886/svn/media/trunk/resources/ogre/scripts/materials/base.material

The Ogre script system has a pretty basic, but very powerful, inheritance mechanism. Together with the alias mechanism, which basically can just be seen a “variable lookup” mechanism, it’s possible to get quite powerful materials. So, for example, this quite simple material definition https://svn.worldforge.org:886/svn/media/trunk/3d_objects/items/food/textures/country_bread/ogre.material will in fact be expanded to a material with eight different techniques. Which one that is activated depends on the capabilities of the gfx card (shader support for example) and the settings of the client.



The naming scheme for the materials is to base it upon the location of the main diffuse texture (which always should be named “D.png”, such as https://svn.worldforge.org:886/svn/media/trunk/3d_objects/items/food/textures/country_bread/D.png) and then remove everything before either “3d_objects” or “3d_skeletons” and replace it with “/global”. And then also remove any “textures” path segments. So the aforementioned path ends up as “/global/items/food/country_bread”. However, there are some inconsistencies, as the material in this example has a different name, with “white” tacked on to the end. The cause is lax naming policy; we’re trying to get better here. :slight_smile:



Again, I don’t know if my into to the Ogre script system was what you’re looking for, or if you already knew that.



Btw, great writeup on the issue of GPL media!

Thank you for the explanations, this is known to us and we have a mapping system in place. I was more asking about the specific material files in the svn repository. For example theres a mesh under 3d_objects/creatures/chicken/chicken.mesh and it has a material reference to a material called “/global/creatures/chicken/red”. Now there is a material that has this internal name, under 3d_objects/creatures/chicken/textures/red/ogre.material. However, it seems as if the other materials, e.g. under 3d_objects/creatures/chicken/textures/greychicken/ogre.material are meant to be put on the chicken mesh as well. However, they do not have the internal name specified in the mesh file but a unique one. So I was wondering if you take care of the mapping in the loader stage or later in the game.



Cheers,

Normen

Ah, the mapping information is contained elsewhere. While the media is client agnostic, it’s currently mainly used by the Ember client. It uses its own system for combining meshes, material, lights, sound and particles into Models, which then represent ingame entities. The definitions for those are found here: https://github.com/worldforge/ember/tree/master/src/components/ogre/modeldefinitions

The different variants for the chicken for example are defined here: https://github.com/worldforge/ember/blob/master/src/components/ogre/modeldefinitions/chicken.modeldef . As you can see, it defines a couple of different “parts”, where each “part” uses different materials.

This is then bound to game data through the https://github.com/worldforge/ember/blob/master/src/components/ogre/modeldefinitions/entitymappings.entitymap.xml file.

Thanks, thats exactly what I was looking for :slight_smile:

Is there a way to download this pack even with the assetbrowser beeing unavailable due to https://code.google.com/p/jmonkeyengine/issues/detail?id=601&thanks=601&ts=1378519958 ?

Hi there,

Where do I find the nightly builds? When I click the link I just get a file not found error.

Are the nightly builds located elsewhere

Nightlies wouldn’t help either, there is some missconfiguration at the server side as it seems (just follow the link I posted in my last reply). Until that is fixed, we will have no access to nightly builds or the asset browser… Not even when you compile the SDK from source (like I tried already just before filing the bug)…