About Store Forum Documentation Contact
Donations:
178$/mo



Post Reply 
Mesh ID reference functionality
Author Message
Demostenes Offline
Banned

Post: #1
Mesh ID reference functionality
When I change name of directory (for example with meshes) using rename button in EE typical file browsing dialog, references in .obj are not updated, so after next restart, links are broken.

Actually this is quite big problem, because once you have huge project with thousands of meshes, materials, etc... you must do from time to time some cleaning, reorganizations. etc...and this usually means moving items, renaming directories and so on. So engine must be able to relink all references when changing structure (of course by using engine tools).

For example I move material to other directory, links are updated. I move mesh to other directory, links are updated. I move texture to other directory, links are updated.

We have now cca 20k working files (meshes, textures, materials) in our project directory and without this would be quite impossible to keep it compact. It is impossible to keep predefined structure during such big project.

AFAIK EE is now using unique IDs for objects, so this could be further extended for this. Linking will be done using ID (not path) and there will be small database with information, where is each ID (object) stored. And such database can be easily updated during any move/rename operation.
(This post was last modified: 12-27-2011 06:18 PM by Demostenes.)
12-27-2011 06:00 PM
Find all posts by this user Quote this message in a reply
Esenthel Offline
Administrator

Post: #2
RE: Mesh reference bug/missing functionality
Hi,

the ID works only for game objects as unique identifier so each object is unique.

All resources are accessed by paths, not by ID's. The thing you're asking is more like feature request and not support issue.

If mesh accesses material from the same folder, then the path to the material from the mesh will be stored as relative. If material is from other folder, then full path (relative to DataPath) will be used.
This path scheme applies to all other references.
Obj->mesh,phys. Mesh->material. Material->GfxTextures, etc.

The idea seems interesting, however currently I'm not thinking of implementing it.
12-28-2011 10:23 PM
Find all posts by this user Quote this message in a reply
Demostenes Offline
Banned

Post: #3
RE: Mesh reference bug/missing functionality
(12-28-2011 10:23 PM)Esenthel Wrote:  The idea seems interesting, however currently I'm not thinking of implementing it.

Can we implement this with company licence? Or this linking is too deep in core?
12-29-2011 03:21 AM
Find all posts by this user Quote this message in a reply
Esenthel Offline
Administrator

Post: #4
RE: Mesh reference bug/missing functionality
this would require full engine source
12-29-2011 03:16 PM
Find all posts by this user Quote this message in a reply
rndbit Offline
Member

Post: #5
RE: Mesh reference bug/missing functionality
(12-29-2011 03:21 AM)Demostenes Wrote:  
(12-28-2011 10:23 PM)Esenthel Wrote:  The idea seems interesting, however currently I'm not thinking of implementing it.

Can we implement this with company licence? Or this linking is too deep in core?

i see no reason why you cant implement something like this yourself.

say you could have something like items.xml that would define item id, mesh, materials, etc.. game would take item id and load parameters from xml based on this id. as for reorganizing - guess you would also need to code a little tool (maybe total-commander like) that would move files and update xml with appropriate paths. NCSOFT did this in Lineage2 (tho they were not using xmls, but rather custom format).
12-30-2011 06:54 PM
Find all posts by this user Quote this message in a reply
Demostenes Offline
Banned

Post: #6
RE: Mesh reference bug/missing functionality
(12-30-2011 06:54 PM)rndbit Wrote:  say you could have something like items.xml that would define item id, mesh, materials, etc.. game would take item id and load parameters from xml based on this id. as for reorganizing - guess you would also need to code a little tool (maybe total-commander like) that would move files and update xml with appropriate paths. NCSOFT did this in Lineage2 (tho they were not using xmls, but rather custom format).

Id depends, if API enables you to access everything you need for this, especially to override default reading. And Esenthel already wrote, that without full source it cant be done. And since full source is priced like nobody will every buy it, it cant be done.
(This post was last modified: 12-30-2011 07:12 PM by Demostenes.)
12-30-2011 07:12 PM
Find all posts by this user Quote this message in a reply
evldmn Offline
Member

Post: #7
RE: Mesh ID reference functionality
What engine works like that? I've never heard of it. What you have to do is make a registry or something or a database in excel or access or whatever and write everything you do. And when you change lil bits of things remake them there too.
And also esenthel objects does this better. You have those static meshes and stuff all lying around, you just link them to a new object you need and voila.
And you CAN write your own tool. Just don't use esenthel's editor for moving/replacing things make your own.
01-03-2012 11:36 AM
Find all posts by this user Quote this message in a reply
Demostenes Offline
Banned

Post: #8
RE: Mesh ID reference functionality
(01-03-2012 11:36 AM)evldmn Wrote:  And also esenthel objects does this better. You have those static meshes and stuff all lying around, you just link them to a new object you need and voila.

I was not speaking about this, this is something totally different.

(01-03-2012 11:36 AM)evldmn Wrote:  What engine works like that? I've never heard of it.

For example unity3D. Or any other engines with resource library. Check it. It is only chance how to manage big project with multi-people team and dont get crazy.

(01-03-2012 11:36 AM)evldmn Wrote:  What you have to do is make a registry or something or a database in excel or access or whatever and write everything you do. And when you change lil bits of things remake them there too.

Be serious grin We have 20k files in project. Should I employ two people just for actualizing such sheet?
If you are working alone on some small project, this is of course not big problem. But once you have more files and team, you will find out what I am talking about. Who experienced this knows very well...
When you have multiple people working on the project, it is very easy to break links (somebody will move obj, mesh or texture and forget to actualize everything and voala, you have problem). And when you have huge world, such broken link will easy go unnoticed into production. Exactly this is reason, why engines have this feature, to prevent this kind of bugs.
(This post was last modified: 01-03-2012 01:27 PM by Demostenes.)
01-03-2012 01:27 PM
Find all posts by this user Quote this message in a reply
Esenthel Offline
Administrator

Post: #9
RE: Mesh ID reference functionality
With some effort you could make a tool that does automatic renaming of files/folders and resources referencing them.
Since you can manually load objects/meshes etc and change their properties.
The only resource that currently can't be loaded manually is the Edit::Area (world areas)
01-03-2012 05:30 PM
Find all posts by this user Quote this message in a reply
Demostenes Offline
Banned

Post: #10
RE: Mesh ID reference functionality
(01-03-2012 05:30 PM)Esenthel Wrote:  With some effort you could make a tool that does automatic renaming of files/folders and resources referencing them.
Since you can manually load objects/meshes etc and change their properties.
The only resource that currently can't be loaded manually is the Edit::Area (world areas)

Thanks, for me is important, that it can be done. This is all I need to know.
(This post was last modified: 01-04-2012 08:32 PM by Demostenes.)
01-04-2012 08:32 PM
Find all posts by this user Quote this message in a reply
Post Reply