Hey Guys.
So there have been various threads and various requests about model dumping, HD model importing and so on.
They come up rarely, but its always the same questions, and most of the time its just people requesting something without considering how any of it could actually work, the point of this thread is to try and address that. And if I'm honest, a large number of users don't actually know any 3D software, throwing out suggestions like 'I'll just subdivide and reimport' or other nonsense.
The thread isn't me saying 'Add the support now!', I just figure instead of one of the awesome Dolphin devs scratching his/her head over the best way of doing it to please the users, we actually try to do a lot of the non-code work ourselves, suggesting a suitable pipeline, file formats and so on. This way, if it ever comes under consideration, some of the work will have been done, however small that may be.
File Formats
OBJ & mtl + the png files that get dumped in the rip.
- Pros
If Dolphin were to support OBJ dumping for all scene items then there would need to be an option to dump channel 0 or 1 (honestly it'd be easier to just autodump only the base channel, ignoring lightmaps)
FBX + the png files that get dumped in the rip.
- Pros
COLLADA/DAE
- Pros
Vertex Welding:
Other things worth discussing would be vertex welding, would it be best to export as is, or export with unwelded, or welded vertices, its no trouble to weld yourself, but some beginner users of 3D Software might be a bit confused at first.
Object Grouping:
Grouping objects could be done in any of the following ways, or not at all. I don't imagine most users have a preference.
I would suggest keeping the same conventions as the old texture dumping method, using the gameID plus a number ie: GQSEAF_01.obj GQSEAF_01.mtl
Dump types:
Having the choice to dump visible or all would be a nice feature, as automatically dumping all would most likely end up dumping collision meshes too.
Also being able to dump back faces would be great, but I'm unsure if this would be possible, as I know all engines cull these, which is then emulated by Dolphin, so I don't know how easy it'd be to override this specifically for dumping.
These are all the ideas I have for now, I'll update the post with any further ideas, by myself of by any discussion in this thread.
As I said this is merely to help the developers, and with any luck get a few users to actually consider the features and how they'd work, so lastly I'm going to quickly address model importing, as its usually requested alongside dumping.
Reimporting 3D Models and why its not as easy as you think:
We're still bound by the game engines themselves, so if the engine couldn't load more than 40k triangles in a particular scene, it'd break (I doubt many games have those values hardcoded of course, but things may start to lag). Dolphin might have a lot more power than the console, and give the engines a lot more breathing room, but they'll still have their own limitations such as number of bones, individual textures or objects on screen at a single time, most games will probably just lag a bit but some older and badly coded games may have a lot of values hardcoded and may not work with most edits.
Editing your model will almost indefinitely break it ingame unless you weightpaint the whole thing again, which means things like subdividing, smoothing, pulling verts in and out or adding extra polygons to a character (ie: creating an eyepatch model for mario, or a wizard hard for kirby). If you're able to do all that then dolphin would still have to support replacing of weights ingame.
Changing an objects shape may cause it to be out of the bounds set by its collision mesh. For example, adding a railing to a cliff edge won't do anything to block the player unless the collision mesh is adapted for this. If importing were ever to be possible, then it may also be possible to replace collision meshes too at some point I suppose.
I think that some talented people could create very good replacement models for Wii and GC games, but I think a lot of people need to know how much work will be involved, with a non-static object it wouldn't be as simple as just swapping out the model, you'd still be bound by the same number of bones and the same height/with (for the most part) of the original game.
So there have been various threads and various requests about model dumping, HD model importing and so on.
They come up rarely, but its always the same questions, and most of the time its just people requesting something without considering how any of it could actually work, the point of this thread is to try and address that. And if I'm honest, a large number of users don't actually know any 3D software, throwing out suggestions like 'I'll just subdivide and reimport' or other nonsense.
The thread isn't me saying 'Add the support now!', I just figure instead of one of the awesome Dolphin devs scratching his/her head over the best way of doing it to please the users, we actually try to do a lot of the non-code work ourselves, suggesting a suitable pipeline, file formats and so on. This way, if it ever comes under consideration, some of the work will have been done, however small that may be.
File Formats
OBJ & mtl + the png files that get dumped in the rip.
- Pros
- Supported by every 3D software known to man (plus photoshop)
- A well documented format
- One of the easiest formats to export to
- Mtl files are easy to edit in almost any text or hex editing software
- Only supports a single UV channel (So any game with lightmaps, its only going to export the lightmap channel or the standard channel)
- Doesn't support bones or animations
If Dolphin were to support OBJ dumping for all scene items then there would need to be an option to dump channel 0 or 1 (honestly it'd be easier to just autodump only the base channel, ignoring lightmaps)
FBX + the png files that get dumped in the rip.
- Pros
- Almost as well supported as obj files, most software supports this natively
- Supports animations and bones
- Supports multiple UV channels
- Not too well documented
- Gets updated yearly so its possible an update in your software might cause the file to be read incorrectly
- Not easy to edit the file outside of 3D Software
COLLADA/DAE
- Pros
- Not as widely supported, but supported by the big 3 softwares
- Supports animations and bones
- Supports multiple UV channels
- Not well documented
- Gets updated yearly so its possible an update in your software might cause the file to be read incorrectly
- Not easy to edit the file outside of 3D Software
Vertex Welding:
Other things worth discussing would be vertex welding, would it be best to export as is, or export with unwelded, or welded vertices, its no trouble to weld yourself, but some beginner users of 3D Software might be a bit confused at first.
Object Grouping:
Grouping objects could be done in any of the following ways, or not at all. I don't imagine most users have a preference.
- Group by texture/material
- Group by object (provided Dolphins export is able to determine whats what)
- Group by type, ie: Dynamic, animated, once again depends on Dolphins export method
I would suggest keeping the same conventions as the old texture dumping method, using the gameID plus a number ie: GQSEAF_01.obj GQSEAF_01.mtl
Dump types:
Having the choice to dump visible or all would be a nice feature, as automatically dumping all would most likely end up dumping collision meshes too.
Also being able to dump back faces would be great, but I'm unsure if this would be possible, as I know all engines cull these, which is then emulated by Dolphin, so I don't know how easy it'd be to override this specifically for dumping.
These are all the ideas I have for now, I'll update the post with any further ideas, by myself of by any discussion in this thread.
As I said this is merely to help the developers, and with any luck get a few users to actually consider the features and how they'd work, so lastly I'm going to quickly address model importing, as its usually requested alongside dumping.
Reimporting 3D Models and why its not as easy as you think:
We're still bound by the game engines themselves, so if the engine couldn't load more than 40k triangles in a particular scene, it'd break (I doubt many games have those values hardcoded of course, but things may start to lag). Dolphin might have a lot more power than the console, and give the engines a lot more breathing room, but they'll still have their own limitations such as number of bones, individual textures or objects on screen at a single time, most games will probably just lag a bit but some older and badly coded games may have a lot of values hardcoded and may not work with most edits.
Editing your model will almost indefinitely break it ingame unless you weightpaint the whole thing again, which means things like subdividing, smoothing, pulling verts in and out or adding extra polygons to a character (ie: creating an eyepatch model for mario, or a wizard hard for kirby). If you're able to do all that then dolphin would still have to support replacing of weights ingame.
Changing an objects shape may cause it to be out of the bounds set by its collision mesh. For example, adding a railing to a cliff edge won't do anything to block the player unless the collision mesh is adapted for this. If importing were ever to be possible, then it may also be possible to replace collision meshes too at some point I suppose.
I think that some talented people could create very good replacement models for Wii and GC games, but I think a lot of people need to know how much work will be involved, with a non-static object it wouldn't be as simple as just swapping out the model, you'd still be bound by the same number of bones and the same height/with (for the most part) of the original game.