zturtleman / mm3d

Maverick Model 3D is a 3D model editor and animator for games.
https://clover.moe/mm3d
GNU General Public License v2.0
114 stars 22 forks source link

Adding a point to a model with frame animations #140

Closed quakemmo closed 2 years ago

quakemmo commented 4 years ago

... doesn't work right now. Is there a way to do this or am I being delusional? Thanks.

zturtleman commented 4 years ago

It may be possibly using "menubar -> Model -> Merge Model...", otherwise no. The limitation of editing frame animated models apparently exist because of undo memory usage. It should be possible to add it and it's something I would like to happen. I haven't looked into it though.

From MM3D manual; http://clover.moe/mm3d_manual/olh_quakemd2.html

Because of the enormous overhead of saving undo information for animations upon insertion and deletion of vertex and face primitives, you are not allowed to add or remove primitives from a model that has frame animations. You may, however, merge another existing model into the one you are working on. This is another reason why it is best to work with MM3D files and skeletal animations and only export MD2 files when necessary.

quakemmo commented 4 years ago

Thank you for your reply.

What would be your advice? I'm working on an IOQ3-based modification and I'd like to use existing MD3 models lying around the internet, many of them are interesting in their own way, they bring us back in the 2000s etc. Essentially all of them are bundled as the upper/lower/head md3 file, the animation.cfg file and the texture image files, without skeletal animation information.

However, I'd need to be able to add points and also add additional animations.

Do you think I'm wasting my time trying to do it with Maverick 3D and the existing MD3 files? Any kind of a different pipeline you'd suggest?

Also, am I beating up a dead horse sticking to MD3? Should I just go ahead and only use MDR at this point? In which case, is there a way to convert MD3 to MDR? I understand that MDR uses skeletal animation only and converting frame animations to skeletal sounds like reversing a one-way function to me, but I'm pretty ignorant about these things.

I know it's a lot of questions - thanks for bearing with me. Again, thank you for keeping all these projects alive.

zturtleman commented 4 years ago

This is a difficult task. Even if Maverick allowed adding points, you would have to manually set the position/rotation for each animation frame (tedious / impossible to keep consistent). Manually creating new vertex animations is also very tedious / impossible to keep mesh from deforming.

Converting the vertex animations to skeletal would definitely seem like the way to go. Though I don't know what software supports this.

Using MD3 or a skeletal format, like MDR or IQM, in ioquake3 is mainly a trade off between performance (MD3 is faster) or memory usage (skeletal formats use less). IQM offers better quality than MD3 and MDR so it's mostly preferable. Though if you aren't running into huge memory usage (caused by high poly count and/or frame count) then MD3 would probably still be fine to use.

I wrote more about the model formats on the ioquake3 forum.

Exporting Quake 3 players in IQM and MDR format from Maverick is stuck unfinished feature limbo.

m-7761 commented 4 years ago

For the record I've worked on all of this here (https://github.com/mick-p1982/mm3d/issues/1) and there's no "undo memory usage" problem to speak of. Bear in mind this is a demonstration build, but if you just need to do a one off task you can see if you can do it or not.

zturtleman commented 2 years ago

I added support for adding/removing points in fcf167a75c5851d5f4979b1477cb7b1afa045502.